CSS / JS bearbeiten

Schon in Website Baker gab/gibt es die ziemlich schlecht dokumentierte Möglichkeit, die CSS-Dateien eines Moduls über das Backend zu bearbeiten. Hierzu muß das Modul die Funktion edit_module_css() aufrufen und dieser seinen eigenen Verzeichnisnamen mitliefern. Module mit einer entsprechenden Funktionalität sind z.B. Download Gallery 2 oder Bookings.

Mit BlackCat CMS Version 1.1 wird die bisherige Funktionalität erweitert. Alte Module können die Datei genauso aufrufen wie bisher:

// Das umgebende if kann auch weggelassen werden, es diente 
// zur Rückwärtskompatibilität mit alten WB-Versionen
if(function_exists('edit_module_css')) {
	edit_module_css('download_gallery');
}

Dies generiert ein Formular mit einer Schaltfläche (Beispiel aus der Download Gallery, leicht gekürzt):

<form method="post" action="http://xxx/modules/edit_module_files.php" name="edit_module_file">
    <input type="hidden" value="12" name="page_id">
    <input type="hidden" value="28" name="section_id">
    <input type="hidden" value="download_gallery" name="mod_dir">
    <input type="hidden" value="backend.css" name="edit_file">
    <input type="hidden" value="edit" name="action">
    <input type="submit" value="Bearbeite CSS">
</form>

In Website Baker und LEPTON sowie BlackCat CMS v1.0.x wird auf diese Weise nur eine Schaltfläche generiert, nämlich für die erste gefundene Datei (backend.css bzw. frontend.css). Im folgenden Formular kann man dann wiederum per Schaltfläche zwischen den beiden Dateien hin und her schalten, sofern beide vorhanden sind.

BlackCat CMS ab Version 1.1 zeigt bei zwei vorhandenen Dateien auch zwei getrennte Schaltflächen an.

Neue Module können statt dessen die erweiterte Funktionalität benutzen. Diese besteht darin, alle vorhandenen CSS- und JS-Dateien im Modulverzeichnis aufzulisten und zur Bearbeitung anzubieten. Auch hierzu kann die benötigte Schaltfläche über einen Funktionsaufruf erzeugt werden:

    CAT_Helper_Addons::getEditModuleFilesButton($mod_dir,true);

Es existieren auch entsprechende Dwoo-Plugins, daher können beide Varianten auch direkt aus dem Ausgabetemplate aufgerufen werden:

    {edit_module_files_button('<MODULNAME>')}
    {edit_module_css('<MODULNAME>')}

In beiden Fällen ist der Platzhalter <MODULNAME> durch den Verzeichnisnamen des aufrufenden Moduls zu ersetzen.