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.)

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.

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.

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.

Wenn die Startseite vom Typ Erweiterter Inhalt ist und der Inhaltstyp wird wieder auf den standard Inhaltstypen geändert, muss die Startseite erneut als solche gesetzt werden.

Wenn die Parameterwerte mit Hilfe von Smarty verarbeitet werden sollen, bedenken Sie, dass bestimmte Daten im Backend nicht bzw. nicht immer verfügbar sind.
Dies betrifft z.B. {$content_id}, {$page_alias} oder {title} etc., da diese Daten noch nicht existieren, wenn die Seite gerade erst erstellt wird.
Manche Daten sind darüber hinaus nur dann verfügbar, wenn die Seite explizit im Frontend gerendert wird.
Es empfiehlt sich in solchen Fällen ein extra Plugin oder UDT zu erstellen, in dem man entscheiden kann was passieren soll, wenn derartige Daten nicht existieren.

Wenn die SVN Version verwendet wird, die Datei /modules/AdvancedContent/lang/ext/de_DE.php löschen.

Benutzerdefinierte Block-Typen

Eigene Block-Typen können mit ein wenig Programmierkenntnissen mit Hilfe des Verzeichnisses /module_custom/AdvancedContent/lib/ im Stammverzeichnis selbst erstellt werden.
Falls nicht vorhanden, muss diese Verzeichnisstruktur selbst erstellt werden. Dabei muss auf Groß- und Kleinschreibung geachtet werden.
In diesem Verzeichnis legt man eine php-Datei nach folgendem Schema an: class.acBlockType_[name des blocktyps].php
Der name des Blocktyps muss kleingeschrieben werden.
In dieser Datei definiert man eine Klasse, die genauso heißt wie der Teil des Dateinamens zwischen 'class.' und '.php'.
Diese Klasse muss von der Basisklasse 'acContentBlockBase' abgeleitet werden.
Im Konstruktor der Klasse muss als erstes der Konstruktor der Basisklasse aufgerufen werden.
Bsp.:
Dateiname: class.acBlockType_foo.php
Inhalt:

class acBlockType_foo extends acContentBlockBase
{
	function __construct(&$content_obj, &$params = array())
	{
		parent::__construct($content_obj, $params);
		
		# eigene Eigenschaften für diesen Blocktypen aus den Parametern auslesen
		$this->SetBlockProperty('bar', isset($params['bar']) ? $params['bar'] : '');
	}
	
	public function GetBlockInput()
	{
		# eigenes Inputfeld für diesen Blocktypen definieren
		return 'Here should be a very special foo input.';
	}
}

Für weitere Informationen über mögliche Funktionen eines Blocktyps gibt es hier eine generierte API Dokumentation.
Für detailiertere Beispiele, wie Block-Typen aufgebaut sein können, kann man auch einfach einen Blick in die Dateien im Verzeichnis /modules/AdvancedContent/lib/ werfen.

Welche Parameter sind verfügbar?

Mit Hilfe folgender Parameter beim Erstellen von Inhaltsblöcken im Seiten-Template können diese Funktionen verwendet werden:

(alle Parameter sind optional)

Standard Paramater:

(siehe auch Tag-Hilfe des {content}-Tags)

Erweiterte Parameter:

Zusätzliche Parameter für Text-Blöcke:

Parameter für Checkboxen: keine weiteren Parameter.
Hinweis: verwenden Sie den Parameter default=1 um eine Checkbox als Voreinstellung zu aktivieren

Parameter für Colorpicker: keine weiteren Parameter

Parameter für Slider: (siehe auch Dokumentation des verwendeten jQuery Slider Plugins)

Parameter für Dropdowns/Mehrfachauswahl:

Parameter für Datumsblöcke:

Parameter für "multi_input":

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-2012, 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.