Beliebige Elemente dynamisch mit PHP einbinden
Veröffentlichungsdatum: 07. November 2019
Änderungsdatum: 12. Februar 2021
weblication cms mobile first php dynamisch weblic platzhalter wElementdata
Ein Weblic® liefert hierzu die erforderliche Basis.
Über das BASE Mobile First Weblic® "Element mit dynamischen Platzhaltern einbinden" sind Sie in der Lage, beliebige Elemente mit Hilfe von PHP direkt in der Seite zu dynamisieren.
Beispiel 1: Bild per Zufall setzen
Soll z.B. ein Bildelement mit Zufallsbilder angezeigt werden, kann statt dem Bildpfad der Platzhalter wElementdata:src eingetragen werden, welcher dann im vorangestellten PHP-Skriptbereich festgelegt wird.
PHP-Quelltext, um den Bildpfad für das nachfolgende Beispiel dynamisch zu setzen.
$imagesDir = wRepository::grepDocumentsDir('/devAssets/img/devblog/lurchi', '(jpg|png)');
$elementdata['src'] = $imagesDir[rand(1, count($imagesDir) - 1)];
$elementdata['title'] = 'Lurchi in einer Zufallsfarbe';Wenn Sie die Seite aktualisieren, ändert sich das Bild zufällig.
Beispiel 2: Abhängig von der Tageszeit begrüßen
Text und Hintergrundbild werden abhängig von der Tageszeit ausgegeben
if(date('H') < 12){
$elementdata['backgroundImage'] = '/devAssets/img/devblog/daytime/morning.jpg';
$elementdata['text'] = 'Guten Morgen';
}
else if(date('H') < 18){
$elementdata['backgroundImage'] = '/devAssets/img/devblog/daytime/day.jpg';
$elementdata['text'] = 'Guten Tag';
}
else if(date('H') < 22){
$elementdata['backgroundImage'] = '/devAssets/img/devblog/daytime/evening.jpg';
$elementdata['text'] = 'Guten Abend';
}
else{
$elementdata['backgroundImage'] = '/devAssets/img/devblog/daytime/night.jpg';
$elementdata['text'] = 'Gute Nacht';
}Guten Morgen
Beachten Sie, dass dynamisch eingebundene Weblics ggf. aktualisiert werden müssen, damit sich diese dynamisch einbinden lassen.
- Wie kann ich mit PHP beliebige Elemente dynamisch in eine Weblic-Seite einbinden?
- Über die Funktion „Element mit dynamischen Platzhaltern einbinden“ können beliebige Elemente mithilfe von PHP direkt in der Seite dynamisiert werden.
- Wie setze ich ein Bild per Zufall in einem dynamisch eingebundenen Element?
- Statt eines festen Bildpfads wird der Platzhalter „wElementdata:src“ verwendet. Im PHP-Skriptbereich wird dann ein zufälliger Dateipfad aus dem entsprechenden Bilderordner in <code class="codeInline">$elementdata['src']</code> gesetzt. Nach dem Aktualisieren der Seite wird das Bild zufällig geändert.
- Welches PHP-Schema wird im Beispiel „Bild per Zufall setzen“ verwendet?
- Im Beispiel werden die Bilddateien über <code class="codeInline">wRepository::grepDocumentsDir(...)</code> ermittelt und anschließend ein zufälliges Element ausgewählt: - <code class="codeInline">$imagesDir = wRepository::grepDocumentsDir('/devAssets/img/devblog/lurchi', '(jpg|png)');</code> - <code class="codeInline">$elementdata['src'] = $imagesDir[rand(1, count($imagesDir) - 1)];</code> - Optional: <code class="codeInline">$elementdata['title'] = 'Lurchi in einer Zufallsfarbe';</code>
- Wie kann ich Text und Hintergrundbild abhängig von der Tageszeit ausgeben?
- Im PHP-Skript prüfst du die aktuelle Stunde mit <code class="codeInline">date('H')</code> und setzt je nach Bereich die Werte für <code class="codeInline">$elementdata['backgroundImage']</code> und <code class="codeInline">$elementdata['text']</code> (z.B. Morgen, Tag, Abend, Nacht).
- Welche Logik nutzt das Beispiel „Abhängig von der Tageszeit begrüßen“ genau?
- Das Beispiel unterscheidet anhand der Stunde: - <code class="codeInline">date('H') < 12</code>: „Guten Morgen“ (morning.jpg) - <code class="codeInline">date('H') < 18</code>: „Guten Tag“ (day.jpg) - <code class="codeInline">date('H') < 22</code>: „Guten Abend“ (evening.jpg) - sonst: „Gute Nacht“ (night.jpg)
- Müssen dynamisch eingebundene Weblics nach Änderungen aktualisiert werden?
- Ja. Dynamisch eingebundene Weblics müssen gegebenenfalls aktualisiert werden, damit sich diese dynamisch einbinden lassen bzw. Änderungen wirksam werden.
- Woher bekomme ich die Basis, um Inhalte dynamisch einzubinden?
- Laut Seite liefert ein „Weblic®“ die erforderliche Basis. Zusätzlich wird über „Element mit dynamischen Platzhaltern einbinden“ die Dynamisierung per PHP ermöglicht.