Scripte importieren
Entstanden ist diese Funktionalität, weil ein Mitstreiter in Sachen CMSimple_XH von Seite zu Seite unterschiedliche Scripte und mitunter auch mehrere Scripte zur gleichen Zeit einsetzen wollte, die im Bereich zwischen <head> und </head> in die template.htm inkludiert werden sollten.
Statt mit vielen verschiedenen Versionen des Templates zu arbeiten, habe ich mir eine Routine überlegt, die mit einem Steuerwort = Bit-Maske die richtigen Scripte zum Importieren selektiert. Eine Bit-Maske (also Wert einer Stringvariablen) deshalb, damit sie im Eingabeformular von Morepagedata für jede einzelne Seite definiert werden kann.
Zuerst war die Idee eine HEX-Zahl zu verwenden. Deren binäres Format sollte dann mit jeder Binärstelle ein Script aktivieren oder nicht importieren (base_convert($hexadecimal, 16, 2);)
. Daher kommt es, das scriptimporter.php auf bis zu 16 Scripte ausgelegt ist (könnte bei Bedarf ohne Probleme erweitert werden).
Die Hex-Zahl habe ich dann jedoch wieder fallenlassen, da sie nicht auf einen Blick erkennen läßt, welche Scripte aktiviert werden. Ich habe also eine normalen String verwendet, dessen einzelne Zeichen nur 0 oder 1 sein dürfen.
Wenn man sich also eine Tabelle in etwa folgendem Stil macht, kann man sehr elegant das Steuerwort für eine bestimmte Seite des Web bestimmen:
Zuordnung von Script-Namen zur Stelle in der Bit-Maske
Script-Name 1 | ||||||||||||||||
Script-Name 2 | ||||||||||||||||
Script-Name 3 | ||||||||||||||||
Script-Name 4 | ||||||||||||||||
Script-Name 5 | ||||||||||||||||
Script-Name 6 | ||||||||||||||||
Script-Name 7 | ||||||||||||||||
Script-Name 8 | ||||||||||||||||
Script-Name 9 | ||||||||||||||||
Script-Name 10 | ||||||||||||||||
Script-Name 11 | ||||||||||||||||
Script-Name 12 | ||||||||||||||||
Script-Name 13 | ||||||||||||||||
Script-Name 14 | ||||||||||||||||
Script-Name 15 | ||||||||||||||||
Script-Name 16 | ||||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Bit-Maske für den scriptimporter.php |
Soll also Script 3 und 5 aktiviert werden muss die Bit-Maske lauten: 00101
Es ist nicht notwendig die Bit-Maske nach der letzten 1 mit 0 auf 16 Stellen aufzufüllen.