Hallo,
ich habe mal ein CMS geschrieben, welches HTML-Templates mittels DOMDocument() und der Methode loadHTML() so zerlegt, dass ich am Ende ein Multi-Array habe aus Elementen, Kindelementen und den entsprechenden Attributen.
Ziel ist, dass ich Templates durch Plugins dynamisch erweitern kann, wenn ich bspw. eine Lightbox für eine Bild schreibe.
Das Plugin erweitert darin das Multi-Array bspw. in der Form:
Nun ist diese Lösung in soweit unschön, dass wenn sich die Struktur des Templates ändert, ich die Plugins ebenfalls ändern muss.
Also habe ich einen Analyzer geschrieben, der mir die Arrayposition eines Elements herausgibt:
Der Rückgabewert von $eRes ist dann bspw.
Da ich aber das Attribut "rel" mit dem Wert "lightbox" zurückgeben muss, behelfe ich mich mit der hässlichen Variante:
Hat jemand von euch eine Idee wie man das eleganter lösen kann? Ich bin gerade inspirationslos.
Schöne Grüße
NTDY
ich habe mal ein CMS geschrieben, welches HTML-Templates mittels DOMDocument() und der Methode loadHTML() so zerlegt, dass ich am Ende ein Multi-Array habe aus Elementen, Kindelementen und den entsprechenden Attributen.
Ziel ist, dass ich Templates durch Plugins dynamisch erweitern kann, wenn ich bspw. eine Lightbox für eine Bild schreibe.
Das Plugin erweitert darin das Multi-Array bspw. in der Form:
$aTemp['children']['0']['children']['0']['children']['0']['children']['0']['rel'] = 'lightbox';
Nun ist diese Lösung in soweit unschön, dass wenn sich die Struktur des Templates ändert, ich die Plugins ebenfalls ändern muss.
Also habe ich einen Analyzer geschrieben, der mir die Arrayposition eines Elements herausgibt:
$eRes = MyTools->findFirstElementInArray('a', $aTemp);
Der Rückgabewert von $eRes ist dann bspw.
['children']['0']['children']['0']['children']['0']['children']['0']
Da ich aber das Attribut "rel" mit dem Wert "lightbox" zurückgeben muss, behelfe ich mich mit der hässlichen Variante:
eval('$aTemp' . $eRes . '[\'rel\'] = \'lightbox\'');
Hat jemand von euch eine Idee wie man das eleganter lösen kann? Ich bin gerade inspirationslos.
Schöne Grüße
NTDY