Skip to content

Erweiterte Layout Einstellungen (settings Array)

blackcoder87 edited this page May 20, 2024 · 12 revisions

Über ein Array "settings" können in der config.php eines Layouts Einstellungsmöglichkeiten angegeben werden. Diese werden zentral im Admincenter unter Layouts und dort "Erweiterte Einstellungen" angezeigt. Der Administrator kann dort die Einstellungen vornehmen.

Übersicht Layouts mit Einstellungen

Einstellmöglichkeiten des Layouts

Dies bietet sich an, wenn man z.B. Banner oder Texte über eine Einstellungen änderbar gestalten möchte. Ebenfalls bietet sich an, dass hier z.B. Schriftfarben und Ähnliches konfigurierbar sind.

Beispiel settings-Array

'settings' => [
    'logourl' => [
        'type' => 'mediaselection',
        'default' => 'application/layouts/privatlayout/images/logo.png',
        'description' => '',
        ],
    'title' => [
        'type' => 'text',
        'default' => 'Free Private Layout',
        'description' => '',
        ],
    'button1switch' => [
        'type' => 'flipswitch',
        'default' => '1',
        'description' => '',
        ],
]

Eine Einstellmöglichkeit kann hier anhand der Attribute "type", "default" und "description" beschrieben werden. Im Beispiel sieht man drei Einstellungen mit den Bezeichnungen "logourl", "title" und "button1switch". Diese Bezeichnungen werden in den Sprachdateien des Layouts gesucht und falls vorhanden wird dann die entsprechende Übersetzung angezeigt.

Mit "type" wird der Typ der Einstellmöglichkeit angegeben. Hier gibt es eine Vorauswahl an Typen.

Aktuell verfügbare Typen:

Typ Beschreibung Unterstützt ab
bscolorpicker Bootstrap Farbauswahl 2.1.32
ckeditorbbcode CKEditor mit BBCode entfernt, 2.1.32 bis 2.1.60
ckeditorhtml CKEditor mit HTML 2.1.32
ckeditorhtmlfrontend CKEditor mit HTML fürs Frontend 2.1.52
colorpicker Standard HTML5 Farbauswahl 2.1.32
flipswitch Ilch 2 typischer Bootstrap Schalter 2.1.32
mediaselection Medien-Auswahl 2.1.32
text Text 2.1.32 (40 Zeichen), ab 2.1.59 mit 255 Zeichen
textarea Textarea 2.1.59
url URL 2.1.37

Mit "default" gibt man einen Standardwert an.

"description" dient dazu eine Beschreibung der Einstellmöglichkeit in Form eines "Translation-Keys" anzugeben. Die Übersetzung wird in den Sprachdateien des Layouts gesucht. Diese wird direkt unter der jeweiligen Einstellung angezeigt.

Im Layout können die vom Administrator vorgenommenen Einstellungen wie folgt genutzt werden:

$this->getLayoutSetting('title')

Es ist noch möglich eine Abtrennung anzeigen zu lassen. Die Abtrennung wird je nach Position im Array angezeigt:

'test' => [
    'type' => 'separator',
    ],

'test' wäre im diesem Beispiel ein "Translation-Key". Der Typ "separator" hat keine Attribute wie "default" und "description".

Änderungen von Einstellungen

Sollten bei einem Update des Layouts z.B. Einstellungen umbenannt werden, ist es empfehlenswert wenn bereits vorhandene Einstellungen des Nutzers unter der alten Bezeichnung ("key") migriert werden um einen "Datenverlust" der getroffenen Einstellungen zu vermeiden.

Hierfür muss innerhalb der getUpdate-Funktion in der config.php-Datei des Layouts entsprechender Code eingefügt werden. Dies ist vergleichbar mit der Vorgehensweise bei Modulen, daher siehe auch:

getUpdate Funktion

Es können Funktionen aus dem "LayoutAdvSettings"-Mapper und das entsprechende Model "LayoutAdvSettings" genutzt werden.

LayoutAdvSettings Mapper

Modules\Admin\Mappers\LayoutAdvSettings

https://github.com/IlchCMS/Ilch-2.0/blob/master/application/modules/admin/mappers/LayoutAdvSettings.php

LayoutAdvSettings Model

Modules\Admin\Models\LayoutAdvSettings

https://github.com/IlchCMS/Ilch-2.0/blob/master/application/modules/admin/models/LayoutAdvSettings.php

Wiki für ilch-2

Benutzer

  • Inhaltsverzeichnis
    Hier findet man u.a. die Installationsanleitung, sowie Fehler- und Problem-behebungen

Entwickler

  • Inhaltsverzeichnis
    Hier findet man Informationen zum Script, Konzept und dem Programmierstil

Designer

  • Inhaltsverzeichnis
    Hier findet man Informationen über den Aufbau und Anpassung von Layouts und Modulen

Video-Tutorials


Clone this wiki locally