Die Insert-Klasse

Mit der in WBCE 1.4 eingeführten Insert-Klasse hat sich das Verhalten der Funktion register_frontend_modfiles geändert. Faktisch erscheinen die darüber aufgerufenen Frontend-Bestandteile nicht mehr an der Position, an der sie im Template aufgerufen werden, sondern reihen sich in sinnvoller Weise unter Berücksichtigung der Platzhalter in den Frontend-Output-Quelltext ein.

Die  Insert-Funktionalität gibt Modulentwickler:innen und Poweruser:innenn die Möglichkeit, von überall zusätzliche Scripte und/oder StyleSheets dort im DOM zu platzieren (=bei einer Queue anzumelden), wo man sie braucht.

Verwendet werden die Methoden der Class "I", die in der framework/I.php definiert sind. Weitere Informationen siehe in den dortigen Kommentaren.

Beispiele:

 

I::insertCssFile

einzeln:

<?php
I::insertCssFile(TEMPLATE_DIR . '/css/components.css', 'HEAD TOP-');
?>

Mehrere mit einem Aufruf:

<?php
I::insertCssFile(
  array(
    TEMPLATE_DIR . '/css/components.css',
    TEMPLATE_DIR . '/css/icons.css',

    TEMPLATE_DIR . '/css/responsee.css',
    TEMPLATE_DIR . '/css/wbcetik.css',
    TEMPLATE_DIR . '/owl-carousel/owl.carousel.css',
    TEMPLATE_DIR . '/owl-carousel/owl.theme.css', ), 'HEAD TOP-' );
?>

I::insertMetaTag

<?php
I::insertMetaTag(
  array (
    "setname" => "viewport",
    "name" => "viewport",
    "content" =>
    "width=device-width, initial-scale=1.0"
  )
);
?>

oder z.B.

I::insertMetaTag(
  array (
    "setname" => "description",
    "name" => "description",
    "content" => PAGE_DESCRIPTION
  )
);

I::insertTitle

<?php
I::insertTitle(PAGE_TITLE);
?>

I::insertJsFile
<?php
I::insertJsFile(array(
                TEMPLATE_DIR . '/js/responsee.js',
                TEMPLATE_DIR . '/owl-carousel/owl.carousel.js',
                TEMPLATE_DIR . '/js/wbcezon.js'
        ), 'BODY');
?>

Anhand der erwähnten Platzhalter kann beim Aufruf der Insert-Methoden genau festgelegt werden, an welcher Position im Dokument die jeweiligen Inhalte eingefügt werden.

D.h.  wenn eine JS-Datei vor dem schließenden </body>-Tag, also der Position  JS  BODY BTM-
erscheinen soll, würde der Aufruf lauten:

I::insertJsFile('irgend-ein-javascript.js', 'BODY BTM-');