0251 / 590 837 15
info@a-coding-project.de
;

Settingswidget (CMS)

Der letzte CMS-Beitrag ist schon ein paar Tage her, aber ich war nicht unfleißig: In dieser Revision wurden 20 Dateien bearbeitet. Einen Großteil davon macht das Settingswidget aus.

Mit diesem Widget kann man die globalen Einstellungen für einzelene Ordner und deren Unterordner überschreiben. Was ich damit zum Beispiel machen möchte, ist eine ContentLion installation für mehrere Websites zu benutzen. Kleines Beispiel:

Man kann im Dashboard einfach über die Breadcrumb durch die Ordner navigieren und dabei im Widget für diesen Ordner und deren Unterordner überschreiben.

Die Installationsurl könnte backend.stevieswebsite.de heißen. Darin gibt es zwei Unterordner: SteviesWebsite und ContentLion. Mit den Globalen Einstellungen müssten jetzt beide Seiten den gleichen Titel und das gleiche Layout haben – Unsinn. Mit dem Settingswidget können wir für den ContentLion oder zum Beispiel ein schwarzes Design nehmen. Dieses wird dann nur für Seiten in diesem Ordner verwendet.

Das /system/plugins/settingswidget/settingswidget.php greift auf unsere settingsform zurück:

<?PHP
  class SettingsWidget extends WidgetBase{
    public function load(){
      $this->headline = $GLOBALS['language']->getString("SETTINGS")." (".$GLOBALS['language']->getString("FOLDER").")";
      $settings = new SettingsForm();
      $settings->role = 3;
      $settings->template = "plugin_settingswidget_widget";
      $settings->dir = $_SESSION['dir'];
      $settings->url  = Settings::getInstance()->get("host").$_GET['include'].".html";
      if(isset($_GET['dir'])){
        $settings->url  .= "?dir=".$_GET['dir'];
      }
      if(isset($_GET['areatype'])){
        $settings->areaType = $_GET['areatype'];
      }
      if(isset($_GET['area'])){
        $settings->area = $_GET['area'];
      }
      if(isset($_GET['role'])) $settings->role = $_GET['role'];

      $this->content = $settings->getCode();
    }
  }
?>

In der Settingsform wird ab jetzt die dir-Funktion ausgeführt.

Neben dem Settingswidget habe ich noch einige veraltete Funktionen ausgetauscht und den Cache ein wenig verändert. Alle Änderungen stehen in r72 und werden gleich auch als Update zur Verfügung stehen.