Ludwig wrote:auf der Suche nach einer Möglichkeit, den Admin-Bereich im Editier-Modus anders zu gestalten als im Vorschau-Modus, bin ich auf dies gestoßen.
Sehr schön! Sicher auch eine gute Ergänzung für die
Tipps&Tricks im Wiki.
Ludwig wrote:Wünschenswert wäre natürlich, wenn eine solche Klasse oder id bereits durch CMSimple_XH generiert wird.
Der einfache Weg (ala <?php echo $onload?>) ist leider nicht möglich, da dies natürlich wieder eine Anpassung an den (bestehenden) Templates erfordern würde. Man könnte das allerdings auch in XH_finalCleanUp() durchführen. Kurz zur Erklärung: XH_finalCleanUp() wird am Ende eines jeden Requests aufgerufen, und dort wird das vollständige HTML noch einmal bearbeitet (u.a. wird dort das Adminmenü injiziert).
Lieber wäre mir aber eine Möglichkeit, dass Plugins (und sonstige Erweiterung) sich endlich in XH_finalCleanUp() einklinken können, um dort dann beliebige Manipulationen am auszuliefernden HTML vornehmen zu können. Denkbar wäre eine Funktion, mit der ein Callback registriert werden kann (etwa XH_registerCleanUpFunction), dem das HTML übergeben wird, und der das geänderte HTML zurück liefert. Diese Callbacks würden dann eben in XH_finalCleanUp() aufgerufen werden.
Dann wäre z.B. folgendes möglich:
Code: Select all
if (XH_ADM) {
XH_registerCleanUpFunction('addBodyClass');
}
function addBodyClass($html)
{
return preg_replace('/<body /', '<body class="adminedit" ', $html);
}
Für Templates, die bereits eine Klasse für <body> definieren, müsste die Funktion entsprechend angepasst werden.