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:
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-' );
?>
<?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
)
);
<?php
I::insertTitle(PAGE_TITLE);
?>
<?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-');