Letzte Bearbeitung:

Logo fhs-basic-all V. 2.0
© by Karl Richard Lembach

scriptimporter.php

Mit der scriptimporter.php können gezielt einzelne oder multiple die Funktionen im Bereich <head> - </head> eingebunden werden, die nur bei einzelnen Seiten mitgeladen werden sollen. In der Regel sind dies externe Scripte und PHP-Dateien, die nicht Bestandteil des CMS sind. Insbesondere ist das interessant, wenn sich einzelne Scripte als gegenseitig unverträglich erweisen. Außerdem wird dadurch vermieden unnötigen Code mit der Seite zu laden.

Welche externen Dateien oder Codeschnipsel mit der Seite geladen werden entscheidet die Bit-Maske, die im Reiter Mehr des Editorfensters eingestellt wird. Dabei gibt es wie bei einem Mäuseklavier für jede Stelle nur 1 oder 0 als möglichen Zustand. Zurzeit ist die Breite des Steuerausdruckes auf 16 Bit begrenzt (kann jedoch bei Bedarf vergrößert werden).
Wird ein anderes Zeichen als 1 oder 0 in diesem Steuerausdruck verwendet wird eine Fehlermeldung ausgegeben und die weitere Verarbeitung der Datei abgebrochen. Für jede Stelle des Steuerausdruckes wird geprüft, ob der Wert des Bits gleich 1 ist. Wenn ja, wird der an entsprechender Stelle eingefügte Code ausgeführt. Dies kann auch ein include-Befehl sein.

<?php // *** Abhängig vom Wert der Variablen $ScriptImporter2021 werden zusätzliche Code-Zeilen in die Templatedatei importiert. ***
$anzahl = strlen(substr($ScriptImporter2021, 0, 16)); // Anzahl der Stellen
if (!($anzahl > 0)) { // Wenn Anzahl nicht größer 0 ist -> ende
// echo '<!-- keine Bit-Maske vorhanden -->'."\n";
goto ende;
}
$flagger = array();
for ($i = 0; $i < $anzahl; $i++) {
$zeichen = substr($ScriptImporter2021, $i, 1);
if (($zeichen <> "0") and ($zeichen <> "1")) {
echo "<!-- \n ******************************************************************************************************\n
Die Morepagedata-Variable \$ScriptImporter2021 enthaelt mindestens ein Zeichen, das nicht 0 oder 1 ist.\n
Ihr Wert lautet: $ScriptImporter2021\n
******************************************************************************************************\n -->\n";
$ImporterError = 1;
goto ende;
}
$flagger[$i] = $zeichen; // Jede Stelle wird in einem Array-Element gespeichert
}
echo '<!-- Anzahl der Masken-Marker '.$anzahl.' -->'."\n";
$i = 0;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script 1 -->

Hier Befehle für das erste Script einfügen.
<!-- Ende des Codes von Script 1 -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script 2 -->

Hier Befehle für das zweite Script einfügen.
<!-- Ende des Codes von Script 2 -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

weitere Befehle einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
$i = $i + 1;
if ($i > $anzahl) {goto ende;}
if ($flagger[$i] == 1):?>
<!-- HTML-Code für Style und Script <?php echo ($i+1);?> -->

Befehle für das 16. Script einfügen
<!-- Ende des Codes von Script <?php echo ($i+1);?> -->
<?php
endif;
ende:
// *** zurück zum Template *** ;?>

Anders als bei den übrigen Dateien dieses Templates sind hier die Kommentarzeilen mit Bedacht als HTML-Kommentare eingebaut. Dies soll bei evtl. notwendiger Fehlersuche im Quellcode der Webseite schnell erkennbar machen, ob und wenn ja, von welcher Scriptimplementierung der Fehler herkommt.