Contenido-Modul: john_dynamic_content

flexible & dynamische Inhaltsgestaltung

Einleitung

Über das Modul können im Editor-Bereich dynamisch Inhaltsblöcke erzeugt werden. Die feste Zuordnung von z.B. Text- und Bild-Elemente über Module und Vorlagen wird dadurch aufgelöst. Es können moderne, dynamische und funktionelle Seiten beliebig gestaltet werden
Hierzu wird auf frei hinterlegtbare Templates zurückgegriffen, in denen auf einfache Art und Weise die CMS-Typen von Contenido verwendet werden können. Jeder CMS-Typ kann pro Template bis zu 9 Mal verwendet werden. 

Contenido-Modul: john_dynamic_content 

Version: 1.2.2 - 29.04.2024  
Ab Contenido 4.9
PHP 7.3+, 8.x
Lizenz: 39,00 Euro netto pro Domain

Bedienung

Mit dem Modul john_dynamic_content können Inhalte in Contenido beliebig zusammengestellt werden. Ist das Modul eingebunden, sehen Sie eine gelbe Zeile mit der Vorlagenauswahl. Hierüber können Sie Inhaltszeilen dynamisch erzeugen. Eingefügte Inhaltszeilen können über das Aufklapp-Menü oben rechts des jeweiligen Bereiches nachträglich konfiguriert werden.  

Wie füge ich eine neue Inhaltszeile ein?

Wählen Sie aus dem Ausklappmenü eine gewünschte Vorlage aus und fügen sie diese hinzu, in dem sie auf das Plus drücken. Die ausgewählte Vorlage wird  an das Ende des Moduls eingefügt.

Wie verschiebe ich eine Inhaltszeile ein?

Fahren sie mit der Maus in die obere, rechte Ecke der Zeile, die sie bearbeiten möchten. Es klappt automatisch das Konfigurationsmenü aus.

Klicken sie auf den blauen Pfeil nach oben oder unten, um die Zeile um eine Position in die jeweilige Richtung zu verschieben.

Wie lösche ich eine Inhaltszeile?

Fahren Sie mit der Maus in die obere, rechte Ecke der Zeile, die sie löschen möchten. Es klappt autoatmisch das Konfigurationsmenü aus. 

Klicken Sie auf den roten Papierkorb, um die Zeile zu löschen. Es werden sofort die Inhaltszeile und alle Inhalte der Zeile entfernt.

Kann ich das Template einer Zeile ändern?

Dies ist die Kernfunktionalität des Moduls. Fahren Sie mit der Maus in die obere, rechte Ecke der Zeile. Sie sehen das aktuell ausgewählte Template. In der Auswahlliste können Sie einfach ein neues Template auswählen.

Alle Inhaltsfelder bleiben dabei bestehen, sodass sie gefahrlos zwischen den Templates hin und her wechseln können.

Einschränkungen: 

  • Anzahl der Inhaltsspalten ist die Verfügbarkeit freier Content-IDs. 
  • Die Content-IDs werden aufgebaut: 500 + 10000 + ID in 10er Schritten.
  • Es können pro Template max. 9 CMS-Elemente pro Typ pro Template verwendet werden. 
  • Die Anzahl 9 ist in der Controller-Klasse konfigurierbar. Achtung nach Änderung sind die bisherigen Inhalte nicht mehr verwendbar! Nicht empfohlen. 

Hinweise zu den Templates: 

- Templates müssen wie folgt benannt werden: type.*.tpl
- Templates verwenden Smarty-Syntax
- Die erste Zeile des Templates wird als Templatename in den auswahlen verwendet. Nutzung {* Templatename *}
- CMS-Typen werden wie folgt verwendet:
 
CMS_Tag - Backendeditor / Frontendausgabe
{$CMS_HTML[1]} - Erzeugt ein HTML-Editor-Feld / eine normale HTML-Ausgabe
{$CMS_TEXT[1]} - Erzeugt ein mehrzeiliges Text-Feld / eine normale Text-Ausgabe mehrzeilig
{$CMS_HEAD[1]} - Erzeugt ein einzeiliges Text-Feld / eine einzeile Text-Ausgabe (kann z.B. auch für CSS oder Klassen verwendet werden)
{$CMS_PIFAFORM[1]} - Erzeugt die Pifa-Einbindung / Anzeige Formular
{$CMS_FILELIST[1]} - Erzeugt die Formlist-Auswahl / Anzeige Formlist
{$_CMS_FILELIST[1]} - Anzeige Formlist / Anzeige Formlist
            [files] => [pfad_im_uploadverzeichnis] => Array
        (
            [filename] => bild_01.png
            [path] => pfad_im_uploadverzeichnis
            [extension] => jpg
            [filesize] => 549478
            [filemodifydate] => 1710345186
            [filecreationdate] => 1710345186
            [metadata] => Array
                (
                )
                [extension] = png
            [thumb] = https://bild.example/thumbnail_01.png
            [lightbox] = https://bild.example/bild_01.png
            )
            [title] => Formlist-Titel
{$CMS_LINK[1]} - Erzeugt die Linkauswahl / Link
{$CMS_IMGEDITOR[1]} - Erzeugt die Bildauswahl / keine Ausgabe
{$CMS_IMG[1]} - Erzeugt folgende Ausgabe in Backend / Frontend
    [src] => https://www.john-softwareentwicklung.de/cms/upload/header/tomatoes-1583145_1920.jpg
    [filePath] => /home/users/web1/www/johnsoftwareentwicklung.de/cms/upload/header/tomatoes-1583145_1920.jpg
    [descr] => 
    [width] => 1920
    [height] => 1344
    [title] => 
    [idupl] => 4
    [idclient] => 1
    [filename] => tomatoes-1583145_1920.jpg
    [dirname] => header/
    [filetype] => jpg
    [size] => 669565
    [status] => 0
    [author] => 48a365b4ce1e322a55ae9017f3daf0c0
    [created] => 2022-01-18 21:58:53
    [lastmodified] => 2022-01-18 21:58:53
    [modifiedby] => 48a365b4ce1e322a55ae9017f3daf0c0
    [meta] => Array
        (
            [id_uplmeta] => 4
            [idupl] => 4
            [idlang] => 1
            [medianame] => 
            [description] => 
            [keywords] => 
            [internal_notice] => 
            [author] => sysadmin
            [created] => 2022-01-18 21:58:59
            [modified] => 2022-01-18 21:58:59
            [modifiedby] => 
            [copyright] => 
        )
)
  

Besonderheit: 

Vorangestellte Unterstriche bei den CMS-Typen geben auch im Backend Frontendausgaben an. 
Beispiel: {$_CMS_TEXT[1]} - normale Textausgabe / normale Textausgabe
 

Variablen im Template: 

{$templateTypeId}
{$isBackendEditMode}
 

Verwendungsbeispiel: 

{$CMS_IMG[1].src} für das Bild
{$CMS_IMG[1].filename} für den Dateinamen
{$CMS_IMG[1].meta.author} für den Benutzer
 

Hinweise Anpassung für Form_assistant / PIFA-Plugin: 

Für die Erzeugung des Codes muss eine Funktion angepasst werden: 
contenido/plugins/form_assistant/classes/class.content.type.pifa_form.php
Ca. Zeile 730: - Funktion generateViewCode()  muss vollständig ersetzt werden durch
    public function generateViewCode() {
        /* Changes Christian John for john dynamic content */
        $classObject = get_class($this);
        $form = new $classObject($this->_rawSettings, $this->_id, []);
        return $form->buildCode(); 
     }