Was macht dieses Modul?
Dieses Modul bietet einen weiteren Inhaltstypen "Erweiterter Inhalt".
Mit diesem Inhaltstypen kann die Administration beim Bearbeiten von Seiten flexibel gestaltet werden, indem man im Seiten-Template den einzelnen Inhaltsblöcken weitere Parameter hinzufügt.
Inhaltsblöcke können in Form verschiedener Input-Felder wie Dropdowns, Mehrfachauswahlfelder oder Checkboxen dargestellt werden.
Die Input-Felder können weiterhin in eigenen Tabs angezeigt oder in Gruppen zusammengefasst werden.
Außerdem hat man die Möglichkeit, Seiten oder einzelne Blöcke nur für bestimmte Gruppen des FrontEndUsers Moduls freizugeben.
Weiterhin können Seiten ein Start- und ein Enddatum erhalten, womit Seiten automatisch aktiv/inaktiv werden.
Die erweiterten Einstellungen können von übergeordneten Seiten übernommen werden.
Die Parameter können außerdem mit Hilfe von einfachem Smarty-Syntax dynamische Werte enthalten.
D.h. man kann z.B. das Ergebnis eines benutzerdefinierten Tags, eines Plugins, eines Moduls oder einfach nur eines Globalen Inhaltsblockes als Wert für einen Parameter einsetzen lassen.
Hinweis: In manchen Fällen empfielt es sich, anstelle des normalen {content} Tags den {AdvancedContent} Tag zu benutzen. (Groß- und Kleinschreibung beachten)
Die Fehlermeldung "Parameter [X] is not known by Module [Modulname]" kann damit z.B. umgangen werden.
Wie wird es verwendet?
Nach der Installation wird der Administration ein weiterer Menüpunkt "Erweiterungen->Erweiterter Inhalt" hinzugefügt.
Hier können verschiedene Einstellungen vorgenommen werden.
Beim Bearbeiten von Seiten steht nun ein weiterer Inhaltstyp "Erweiterter Inhalt" zur Auswahl, der die Funktionen des Moduls bereitstellt.
WARNUNG!
Wenn Sie das Modul deinstallieren, ohne alle Seiten vom Typ 'Erweiterter Inhalt' wieder zurück auf den Standard-Inhaltstypen zu setzen, funktioniert Ihre CMSms Installation nicht mehr!
Stellen Sie sicher, dass alle Seiten vom Typ 'Erweiterter Inhalt' vor der Deinstallation wieder geändert oder gelöscht werden! (nutzen Sie die Moduleinstellung 'Aktion beim Deinstallieren' umd dies automatisch vorzunehmen.)
Mit Hilfe folgender Parameter beim Erstellen von Inhaltsblöcken im Seiten-Template können diese Funktionen verwendet werden:
Welche Parameter sind verfügbar?
(alle Parameter sind optional)
Standard Paramater:
(siehe auch Tag-Hilfe des {content}-Tags)
-
(optional) block (string)
-
Ermöglicht das Hinzufügen mehrerer Inhaltsblöcke. Beim Bearbeiten einer Seite wird für jeden Block ein eigenes Input-Feld angezeigt.
Bsp.: {content block="Zweiter Inhaltsblock"}
Hinweis: Der Name des Inhaltsblocks darf nur Buchstaben, Zahlen und Unterstriche enthalten. (keine Leer- oder Sonderzeichen, Umlaute etc.). Anderenfalls wird der Blockname ähnlich dem Seitenalias entprechend konvertiert.
-
(optional) wysiwyg (true/false)
- Wenn dieser Wert auf false gesetzt wird, wird in der Administration beim Bearbeiten von Seiten kein WYSIWYG Editor für diesen Block verwendet.
-
(optional) oneline (true/false)
- Wenn dieser Wert auf false gesetzt wird, wird in der Administration beim Bearbeiten von Seiten nur ein einfaches einzeiliges Text-Input-Feld angezeigt.
-
(optional) default (string)
- Stabdardinhalt beim Erstellen neuer Seiten.
-
(optional) label (string)
- Die Eingabeaufforderung für den Inhaltsblock in der Administration beim Bearbeiten von Seiten. Wenn dieser Parameter fehlt, wird der unkonvertierte Wert des Parameters block verwendet.
-
(optional) assign (string)
-
Weist den Inhalt dieses Blocks auf der Internetseite einer Smarty Variablen zu.
Bsp.: {content assign="pagecontent"}
{table_of_contents thepagecontent="$pagecontent"}
Erweiterte Parameter:
-
(optional) block_type (text,checkbox,dropdown,select_multiple,date,multi_input,slider,colorpicker)
- Gibt an, in welcher Form der Inhaltsblock in der Administration beim Bearbeiten von Seiten angezeigt werden soll.
-
(optional) page_tab (string)
-
Mit diesem Parameter können Inhaltsblöcke in der Administration beim Bearbeiten von Seiten in bestimmten Tabs angezeigt werden.
Mögliche Werte sind z.B. "main" ( = Tab "Hauptmenü"), "options" ( = Tab "Optionen"), oder jeder andere beliebige Wert (erzeugt automatisch einen weiteren Tab).
Man kann somit z.B. eine Checkbox im Tab "Optionen" hinzufügen oder einen eigenen Tab erstellen..
-
(optional) block_tab (string)
- Mit diesem Parameter können die Inhaltsblöcke nochmals in weitere "Untertabs" innerhalb der "Haupttabs" unterteilt werden.
-
(optional) block_group (string)
-
Mit diesem Parameter kann man mehrere Inhaltsblöcke in einem Fieldset gruppieren.
Die Gruppen können auch auf mehrere Tabs verteilt werden.
-
(optional) active (true/false)
-
Wenn dieser Wert auf false gesetzt wird, ist der Block deaktiviert.
Deaktivierte Inhaltsblöcke werden weder in der Administration beim Bearbeiten von Seiten, noch auf der Internetseite angezeigt.
-
(optional) editor_groups (string)
-
Dieser Parameter ist ähnlich den "Zusätzlichen Bearbeitern" einer Seite. Er gilt allerdings nur für einzelne Inhaltsblöcke.
Mit diesem Parameter können Inhaltsblöcke nur von bestimmten Benutzegruppen der Administration bearbeitet werden.
(Name der Benutzergruppe eintragen; mehrere Gruppen mit Komma getrennt)
-
(optional) editor_users (string)
-
Dieser Parameter ist ähnlich den "Zusätzlichen Bearbeitern" einer Seite. Er gilt allerdings nur für einzelne Inhaltsblöcke.
Mit diesem Parameter können Inhaltsblöcke nur von bestimmten Benutzern der Administration bearbeitet werden.
(Name des Benutzers eintragen; mehrere Benutzer mit Komma getrennt)
Hinweis: wenn die Parameter editor_users und editor_groups nicht verwendet werden, können die Blöcke von jedem Benutzer bearbeitet werden.
Die Werte haben keinen Einfluss, wenn der Benutzer der Gruppe "Admin" angehört.
Um einem Benutzer zu erlauben alle Inhaltsblöcke unabhängig von den beiden Parametern zu bearbeiten, muss der Benutzer einer Gruppe angehören, die die Berechtigung "Manage all AdvancedContent Blocks" hat.
-
(optional) feu_access
-
Dieser Parameter legt fest, welche Benutzergruppen des FrontEndUsers Moduls diesen Block auf der Internetseite sehen dürfen.
(ID der Benutzergruppe angeben; mehrere IDs mit Komma getrennt)
-
(optional) feu_action (true/false)
-
Dieser Parameter gibt an, ob anstelle des Inhaltsblocks das Login-Formular des FrontEndUsers Moduls angezeigt werden soll, wenn dieser Block nur für bestimmte Benutzergruppen freigegeben und der Besucher nicht eingeloggt ist.
Hinweis: Das Formular wird nur ein einziges Mal angezeigt.
-
(optional) allow_none (true/false)
- Gibt an, ob der Block leer sein darf oder nicht.
Wenn dieser Wert auf false gesetzt wird und der Inhalt des Blocks ist leer, wird der Wert des Parameters default verwendet.
Wurde der Block mit dem Plugin {content_image} erstellt, fehlt die Option "Nichts" im Bild-Dropdown.
-
(optional) smarty (true/false)
-
Schaltet die Verarbeitung der Parameterwerte mit Hilfe von Smarty ein/aus.
Wenn dieser Wert auf true gesetzt wird, wird jeder Parameter mit Hilfe der Smarty Template Engine verarbeitet.
Hinweis: Die Werte müssen als Smarty-Syntax gekennzeichnet werden. Hier können aber nicht Standard Smarty-Begrenzer ({...}) verwendet werden, da es zu Fehlern auf der Internetseite führt.
Daher werden stattdessen die Zeichen ::: als Begrenzer verwendet.
Bsp.: {content block="Kategorien" label="Wählen Sie eine Kategorie" block_type="dropdown" items=":::global_content name='categorylist':::" smarty="true"}
-
(optional) description (string)
- Eine detailiertere Beschreibung des Inhaltsblocks.
-
(optional) collapse (true/false)
-
Gibt an, ob ein Block in der Administration beim Bearbeiten von Seiten ein- (true) oder ausgeklappt (false) sein soll.
Hinweis: ist immer false, wenn der Parameter no_collapse=true verwendet wird.
-
(optional) no_collapse (true/false)
-
Wenn dieser Wert auf false gesetzt ist, kann der Blocke nicht zusammengeklappt werden.
Hinweis: wenn der Wert auf true gesetzt ist, ist der Parameter collapse automatisch immer false.
-
(optional) required (true/false)
-
Gibt an, ob ein Block ein Pflichtfeld ist (true) oder nicht (false).
Parameter für Checkboxen:
-
(optional) default (true/false)
-
Aktiviert/Deaktiviert die Checkbox als Standardwert.
Hinweis: "1" = aktiviert; "0" deaktiviert
Bsp.: {content block_type="checkbox" default=1}
Parameter für Colorpicker: keine weiteren Parameter
Parameter für Slider: (siehe auch Dokumentation des verwendeten jQuery Slider Plugins)
-
(optional) step (int)
-
Zählschritte in denen die Werte geändert werden
-
(optional) heterogeneity (string)
-
(optional) dimension (string)
-
Einheit hinter den Werten.
-
(optional) limits (true/false)
-
(optional) scale (string)
-
(optional) calculate (string)
-
Eine Javascript-Funktion zur Berechnung der angezeigten Werte
-
(optional) onstatechange (string)
-
Eine Javascript-Funktion die ausgeführt werden soll, sobald der Wert geändert wird
-
(optional) callback (string)
-
Eine Javascript-Funktion die ausgeführt werden soll, nachdem der Wert geändert wurde
Parameter für Dropdowns/Mehrfachauswahl:
-
(optional) items (string)
- Die Bezeichnung der einzelnen Einträge. (mit einem bestimmten Zeichen getrennt - Standard ist | (pipe))
-
(optional) values (string)
- Die Werte der einzelnen Einträge. (mit einem bestimmten Zeichen getrennt - Standard ist | (pipe))
Hinweis: wenn es weniger Werte als Bezeichnungen gibt, werden die restlichen Bezeichnungen als Werte verwendet (und umgekehrt).
-
(optional) default (string)
-
Ausgewählte Standardwerte (mit einem bestimmten Zeichen getrennt - Standard ist | (pipe))
Hinweis: Verwenden Sie nur die Werte der Einträge als Standardwert, nicht die Bezeichnungen der Einträge.
-
(optional) delimiter (string)
- Das Trennzeichen mit dem die Bezeichnungen, Werte und Standardwerte voneinander getrennt werden. (Standard ist | (pipe))
- (optional) size (integer)
- Die Höhe des Inputfeldes, wenn
block_type="select_multiple" verwendet wird.(Standard ist die Anzahl der Einträge)
- (optional) sortable (true/false) - nur bei select_multiple
-
Wird dieser Wert auf true gesetzt, werden die Einträge nicht als Mehrfachauswahlfeld angezeigt, sondern als eine Liste mit Checkboxen, die neu sortiert werden kann.
Jede Zeile einthält die Bezeichnung des Eintrags und eine Checkbox mit dem Wert des Eintrags.
Hinweis: Es wird nur die Reihenfolge der ausgewählten Einträge gespeichert. Ausgewählte Einträge werden immer als erstes angezeigt.
Nicht ausgewählte Einträge stehen darunter in der Reihenfolge, wie sie im Template definiert wurden.
Parameter für Datumsblöcke:
-
(optional) step_hours (int)
-
Zählschritte der Stunden im Uhrzeit-Dropdown. (Standard ist 1)
-
(optional) start_hour (int)
-
Beginn der Stunden im Uhrzeit-Dropdown. (Standard ist 0)
-
(optional) end_hour (int)
-
Ende der Stunden im Uhrzeit-Dropdown. (Standard ist 12 oder 23 - abhängig vom Parameter show24h)
-
(optional) show24h (true/false)
-
Wenn dieser Wert auf false gesetzt wird, werden die Stunden in 12h Anzeige mit AM/PM angezeigt. (Standard is true)
-
(optional) step_minutes (int)
-
Zählschritte der Minuten im Uhrzeit-Dropdown. (Standard is 10)
-
(optional) start_minute (int)
-
Beginn der Minuten im Uhrzeit-Dropdown. (Standard ist 0)
(optional) end_minute (int)
-
Ende der Minuten im Uhrzeit-Dropdown. (Standard ist 59)
-
(optional) show_clock (true/false)
-
Wenn dieser Wert auf false gesetzt ist, wird kein Uhrzeit-Dropdown angezeigt. (Standard ist true)
Hinweis: Bei false wird als Uhrzeit 00:00 Uhr gespeichert
-
(optional) date_format (string)
-
Das strftime Datumsformat für die Anzeige auf der Internetseite.
Parameter für "multi_input":
-
(optional) inputs
-
Eine Liste von Input-IDs, die in den Moduleinstellungen erstellt wurden. (mehrere Werte mit Komma getrennt)
Es können dieselben IDs mehrfach verwendet werden.
-
(optional) value_delimiter (any string)
-
Ein Trennzeichen für die einzelnen Werte des jeweiligen MultiInputs.
Standard ist "<!-- multi_input_value_dellimiter -->"
-
(optional) input_delimiter (any string)
-
Ein Trennzeichen für die einzelnen MultiInputs.
Default is "<!-- multi_input_dellimiter -->"
-
Was ist ein multi_input?
Ein multi_input ist ein Block, der aus mehreren Inputfeldern bestehen kann.
Diese können in den Moduleinstellungen festgelegt werden. Dabei gilt für jeden multi_input derselbe Syntax wie in einem Seitentemplate beim Erstellen eines Inhaltsblocks.
MultiInputs können verwendet werden, um verschiedene Werte in einem einzigen Inhaltsblock zu speichern, wobei für jeden Wert unterschiedliche Inputfelder verwendet werden können.
Diese Blöcke kann man z.B. verwenden, um eine Liste mit Modulen und zugehörigen Parametern anzuzeigen.
Beispiel eines MultiInputs im Seitentemplate:
{content block="module" label="Seitenmodule" block_type="multi_input" inputs="module,module,module,module"}
Beispiel für einen MultiInput der über die Moduleinstellung erstellt werden kann (Name="module"):
{content block="module selection" block_type="dropdown" items="|News|Gallery|Menu"}
{content block="module params" block_type="text" oneline=true}
Wie sieht das nun beim Bearbeiten einer Seite aus?
Es wird ein Fieldset mit der Legende "Seitenmodule" angezeigt.
In diesem Fieldset wird der MultiInput "module" viermal angezeigt.
D.h. es gibt vier Zeilen mit je zwei Inputfeldern. Ein Dropdown und ein einzeiliges Textinput.
Was wird gespeichert?
Das Modul speichert die Werte als einen einzelnen Inhaltsblock. Dabei werden die einzelnen Inputfelder mit dem input_delimiter voneinander getrennt und deren Wert mit dem input_value_delimiter.
Nehmen wir mal an, es wurde das Newsmodul viermal ausgewählt, jedoch mit unterschiedlichen Parametern wie z.B. category="1", category="2", category="3", category="4".
In der Datenbank wird folgendes für diesen Block gespeichert:
News<!-- multi_input_value_delimiter -->category="1"<!-- multi_input_delimiter -->
News<!-- multi_input_value_delimiter -->category="2"<!-- multi_input_delimiter -->
News<!-- multi_input_value_delimiter -->category="3"<!-- multi_input_delimiter -->
News<!-- multi_input_value_delimiter -->category="4"
Im Seitentemplate kann man nun den Inhalt dieses Blocks anhand der Trennzeichen aufteilen und die ausgewählten Module inkl. ihrer jeweiligen Parameter aufrufen.
Komplettes Beispiel:
{* Inhaltsblock erstellen und der Variable $modules zuweisen *}
{content block="meine_seitenmodule" block_type="multi_input" inputs="Module,Module,Module,Module" assign="modules"}
{* Inhalt der Variable $modules in ein Array aufteilen und in der Variable $modules speichern; somit haben wir die MultiInputs *}
{assign var=modules value="<!-- multi_input_delimiter -->"|explode:$modules}
{* jeden MultiInput durchgehen *}
{foreach from=$modules item="module"}
{if $module != ''}
{* die Werte des MultiInputs in ein Array aufteilen; somit haben wir Modulname und Parameter *}
{assign var=module_items value="<!-- multi_input_value_delimiter -->"|explode:$module}
{if $module_items[0] != ''}
{* Modul aufrufen *}
{if isset($module_items[1])}
{eval var=$smarty.ldelim|cat:'cms_module module="'|cat:$module_items[0]|cat:'" '|cat:$module_items[1]|cat:$smarty.rdelim}
{else}
{eval var=$smarty.ldelim|cat:'cms_module module="'|cat:$module_items[0]|cat:'"'|cat:$smarty.rdelim}
{/if}
{/if}
{/if}
{/foreach}
Support
Dieses Modul bietet keine kommerzielle Unterstützung. Es gibt jedoch einige Möglichkeiten, Hilfe zu finden:
Bitte melden Sie Fehler oder Verbesserungsvorschläge auf der Projekt-Homepage.
Copyright und Lizenz
Copyright © 2010-2011, Georg Busch (NaN) <georg.busch@gmx.net>. Alle Rechte vorbehalten.
Dieses Modul wurde unter der GNU Public License veröffentlicht. Sie müssen dieser Lizenz zustimmen, bevor Sie das Modul verwenden.
Laut den Nutzungsbestimmungen der GPL wird diese Software so veröffentlicht wie sie ist.
Sie erhebt keinerlei Anspruch auf einwandfreie Funktion.
Das Modul wurde erstellt, in der Hoffnung nützlich zu sein.
Es besteht keinerlei Garantie auf einen einwandfreien Nutzen.
Bitte lesen Sie die Nutzungsbedingungen für ausführliche Informationen.