So,
hier mal ein neuer Inhaltstyp (Inhalt 2) + Plugin ({content2}). (siehe Anhang)
Das Plugin und der zugehörige Inhaltstyp sind Modifikationen des regulären Plugins {content} bzw. Inhaltstyps "Inhalt".
Der Inhaltstyp kombiniert unter anderem die beiden Tags {content} und {content_image}.
Das Plugin {content2} ist optional und nur nötig, wenn man die volle Funktionalität des {content_image}-Plugins zusammen mit dem Inhaltstyp "Inhalt 2" verwenden möchte.
(Der Tag {content_image} funktioniert derzeit nicht mit dem neuen Inhaltstyp; ließe sich bei Bedarf aber noch ändern)
Desweiteren lassen sich über Parameter weitere Optionen für den Inhaltstyp hinzufügen.
Im Prinzip funktionieren alle zusätzlichen Felder wie eigene Inhaltsblöcke.
Das hat den Vorteil, dass man kein zusätzliches Plugin benötigt um an die Daten der zusätzlichen Felder heranzukommen.
Die werden einfach mit dem Plugin {content} mit ausgegeben.
D.h. mit dem Parameter "block" können ja bisher im Backend weitere Editor-Felder erzeugt werden.
Ich habe das ganze so umgeschrieben, dass man damit jede Art von Input-Feld erzeugen kann.
Die Art des Feldes wird über einen weiteren Parameter "type" definiert.
(default ist "text" d.h. ein Textarea mit WYSIWYG-Editor; weitere Möglichkeiten sind image, checkbox, dropdown und select_mutliple)
Weiterhin kann man sich über die Parameter "block_tab" und "page_tab" den Aufbau des Backends selber zusammenstellen.
Mit "page_tab" kann man festlegen in welchem Tab der Inhaltsblock angezeigt werden soll.
Man könnte rein theoretisch mit {content page_tab='options' ... } im Tab "Optionen" weitere Checkboxen oder Editor-Felder anzeigen lassen.
Existiert im Backend kein mit "page_tab" angegebener Tab, wird einfach einer erstellt.
Somit kann ich einen eigenen Tab erstellen, in dem weitere Optionen verfügbar sind.
Mit dem Parameter "block_tab" kann ich innerhalb eines Tabs weitere Tabs erstellen lassen.
Somit kann man zusätzliche Inhaltsblöcke/Optionen innerhalb eines Tabs zu weiteren Tabs gruppieren.
Insgesamt lässt sich damit etwas mehr Übersichtlichkeit im Backend erreichen.
Anwendungsbeispiel:
Code: Select all
{content block_tab="Hauptinhalt" label="Inhalt"}
{content block_tab="Inhaltsblock 2" label="zweiten Block im Frontend anzeigen" type="checkbox" checked="true" assign="show_block2"}
{if $show_block2!=''}
{content block_tab="Inhaltsblock 2" label="Inhalt 2"}
{/if}
Damit werden im Backend im Tab "Hauptmenü" zwei weitere Tabs angezeigt.
Ein Tab "Hauptinhalt" mit WYSIWYG-Editor und ein Tab "Inhaltsblock 2" mit einer Checkbox und einem weiteren WYSIWYG-Editor.
Mit Hilfe der Checkbox kann man individuell für jede Seite, die auf diesem Template beruht, festlegen, ob der zweite Block (egal ob er etwas beinhaltet oder nicht) angezeigt werden soll.
Welche Parameter sind noch möglich?
Eigentlich alle, die auch beim normalen Inhalt möglich sind.
Für genauere Beschreibung schaut in die Taghilfe des content-Tags oder des content2-tags.
block (optional)
über diesen Parameter kann mehr als ein Inhaltsblock auf einer Seite erstellt werden.
wysiwyg (true/false) (optional)
Ein-/Ausschalten des Editors für die Bearbeitung.
oneline (true/false) (optional)
Zeigt beim Bearbeiten für den Inhalt ein einfaches Input-Feld an ()
value (optional)
Standardinhalt beim Erstellen einer neuen Seite. (funktioniert nur bei Blocktyp "text")
type (text,image,checkbox,dropdown,select_multiple) (optional)
Mit diesem Parameter kann bestimmt werden, welche Form der Inhalt hat.
Standard ist "text".
page_tab (optional)
Mit diesem Parameter kann festgelegt werden in welchem Tab der Inhaltsblock im Backend angezeigt werden soll.
Mögliche Werte sind "main" ( = Tab "Hauptmenü"), "options" ( = Tab "Optionen"), oder jeder andere beliebige Wert.
Existiert im Backend kein Tab mit dem angegebenen Namen, wird er automatisch hinter dem Tab "Optionen" erstellt.
block_tab (optional)
Mit diesem Parameter können die Inhaltsblöcke innerhalb eines Tabs nochmals in Tabs unterteilt/gruppiert werden.
label (optional)
Eingabeaufforderung für diesen Inhaltsblock.
assign (optional)
Mit diesem Parameter kann der Inhalt einer Smarty-Variablen zugewiesen werden.
Parameter für Blocktyp "checkbox":
checked (true/false) (optional)
Aktiviert/Deaktiviert die Checkbox beim Bearbeiten der Seite, wenn der Inhaltsblock vom Typ 'checkbox' ist.
Parameter für Blocktyp "dropdown"/"select_multiple":
items (optional)
Elemente des Dropdownfeldes/der Mehrfachauswahl beim Bearbeiten der Seite, wenn der Inhaltsblock vom Typ 'dropdown' oder 'select_multiple' ist. (mehrere Elemente duch Komma getrennt)
selected (optional)
Bereits ausgewählte Elemente des Dropdownfeldes/der Mehrfachauswahl beim Bearbeiten der Seite, wenn der Inhaltsblock vom Typ 'dropdown' oder 'select_multiple' ist. (mehrere Elemente duch Komma getrennt)
size (ganzzahl) (optional)
Höhe der Mehrfachauswahl beim Bearbeiten der Seite, wenn der Inhaltsblock vom Typ 'select_multiple' ist.
Parameter für Blocktyp "image":
(siehe Tag-Hilfe {content_image})
Verbesserungsvorschläge sind immer willkommen.
Im Anhang die Endung ".mpg" entfernen und dann entpacken.
Im Archiv sind zwei php-Dateien: function.content2.php und content2.inc.php
Die Datei
content2.inc.php einfach ins Verzeichnis
/lib/classes/contenttypes/ kopieren.
Die Datei
function.content2.php einfach ins Plugin-Verzeichnis kopieren und die Inhalte im Template mit {content2} aufrufen (dieses Plugin ist optional, der Inhaltstyp funktioniert auch mit dem regulären {content}-Tag; lediglich der Tag {content_image} funktioniert nicht mit diesem Inhaltstyp und für {content type="image" ... } wird nur der Pfad zum Bild ausgegeben)