Repository files navigation

CONTENIDO CMS Modul mpDynamicContent zum dynamischen Einbinden von beliebigen Content-Typen

Beschreibung

Das Modul mpDynamicContent erlaubt das Einbinden von beliebigen Content-Typen (z. B. CMS_HTMLHEAD, CMS_HTML, CMS_IMGEDITOR, usw.) in einen Container.

Damit lassen sich dynamisch mehrere Inhalte basierend auf Content-Typen in einem Layout ausgeben. Die Konfiguration kann direkt über die Editor-Ansicht des Artikels vorgenommen werden.

Standardmäßig werden alle vorhandenen Content-Typen unterstützt, Ausnahmen gibt es für CMS_IMG, CMS_IMGDESCR, CMS_LINK, CMS_LINKTARGET, CMS_LINKDESCR. Dafür gibt es die neuen Content-Typen CMS_IMGEDITOR und CMS_LINKEDITOR, die die bekannte Funktionalität übernehmen.

Es ist auch möglich, zu jedem Content-Typ ein Template auszuwählen.


Voraussetzungen

  • CONTENIDO >= 4.10.*
  • PHP >= 7.1 und PHP < 8.2
  • CONTENIDO Plugin "Mp Dev Tools"

Das benötigte Plugin (Package "mp_dev_tools.zip") von der GitHub-Seite herunterladen und in CONTENIDO installieren.


Installation/Verwendung

Die im Modulpackage enthaltenen Dateien/Sourcen sind wie im Folgenden beschrieben zu installieren. Die Pfade zu den Sourcen (CSS, JS und Templates) können von Projekt zu Projekt unterschiedlich sein und sind bei Bedarf anzupassen. Bei der Installationsbeschreibung wird davon ausgegangen, dass CONTENIDO in das DocumentRoot-Verzeichnis eines Webservers installiert wurde und das Mandantenverzeichnis cms ist.

Modulinstallation:

Den Modulordner mp_dynamic_content samt aller Inhalte in das Modulverzeichnis des Mandanten cms/data/modules kopieren. Danach sollte man im Backend die Funktion Module synchronisieren unter Style -> Module ausführen.

Einrichten des Moduls:

Dieses Modul in einer Artikelvorlage einrichten.

Einen Artikel erstellen, welches auf die Vorlage basiert.

In der Editoransicht des Artikels die gewünschten Optionen setzen.

Mandanten- oder Systemeinstellungen:

Mit folgender Mandanten- oder Systemeinstellung kann man die unterstützten Content-Typen konfigurieren. Mehrere Werte sind mit Komma zu trennen:

Typ: module_mp_dynamic_content
Name: supported_content_types
Wert: CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Ist die Einstellung nicht gesetzt, so wird dafür per default folgender Wert verwendet:

CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Basiseinstellungen (im Popup Dialog):

  • Container-Nummer: Die Container-Nummer die zum Erstellen der Inhalte verwendet werden soll. Die eingegebene Nummer sollte nicht im Layout vergeben sein und es sollte ausreichend Puffer zur nächsten im Layout verwendeten Container-Nummer sein, da das Modul die angegebene Container-Nummer für jeden konfigurierten Content-Typen hochzählt, z. B. Container-Nummer = 500, 5 Content-Typen, benötigter Container-Nummer Bereich = 500 - 505.

Content-Typ Einstellungen (im Popup Dialog):

Jeder Content-Typ Eintrag enthält 4 konfigurierbare Felder.

  • Beschreibung: Angabe der Beschreibung zum Content-Typ, wenn angegeben, wird es im Backend in der Editor-Ansicht als label-Element dargestellt

  • Content-Typ: Auswahl des zu verwendenden Content-Typen

  • Template: Auswahl des Templates, in dem der Inhalt des Content-Typ gerendert werden soll. Mitgeliefert werden 5 verschiedene Templates. Damit ein Content-Typ Template erkannt und korrekt im Auswahlfeld erscheint, muss es folgende Kriterien erfüllen.

    • Das Template muss im Modulverzeichnis im Ordner template liegen.
    • Der Dateiname des Templates muss mit dem Präfix "type." beginnen.
    • Die Erste Zeile des Templates sollte eine das Template beschreibende kurze Kommentarzeile sein.
  • Zusätzlicher Text: Dieses benutzerdefiniertes Feld kann für den eigenen Bedarf verwendet werden, z. B. für Ausgabe als reiner Text oder auch als Wert für ein class-Attribut. Im Template hat man Zugriff auf den Wert mit "$content.userdefined".

  • Aktionen:

    • Online Status: Content-Typ lassen sich online/offline stellen, dabei werde die Elemente mit dem Status offline bei der Ausgabe ausgelassen. Diese Inhalte können aber immer noch über die Suche im Frontend gefunden werden.

Changelog

2019-11-12 mpDynamicContent 0.1.3 (für CONTENIDO 4.9.x - 4.10.x)

  • bugfix: Mehrfachen Aufruf des Con.Loader callbacks unterbinden
  • change: Verwendung von unterstützten default Content-Typen, wenn Einstellung nicht gesetzt

2013-12-05 mpDynamicContent 0.1.2 (für CONTENIDO 4.9.x)

  • bugfix: Besseres Handling für das Laden von jQuery UI im Backend
  • bugfix: Anzeige des ausgewählten Bildes im Backend in der Editor-Ansicht
  • change: Laden und Ausgabe der benötigten Styles nur einmal pro Seite
  • new: Sortierung für Templates

2013-12-02 mpDynamicContent 0.1 (für CONTENIDO 4.9.x)

  • Erste Veröffentlichung des mpDynamicContent Moduls

mpDynamicContent Modul Links

About

CONTENIDO CMS module mpDynamicContent

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

CONTENIDO CMS Modul mpDynamicContent zum dynamischen Einbinden von beliebigen Content-Typen

Beschreibung

Das Modul mpDynamicContent erlaubt das Einbinden von beliebigen Content-Typen (z. B. CMS_HTMLHEAD, CMS_HTML, CMS_IMGEDITOR, usw.) in einen Container.

Damit lassen sich dynamisch mehrere Inhalte basierend auf Content-Typen in einem Layout ausgeben. Die Konfiguration kann direkt über die Editor-Ansicht des Artikels vorgenommen werden.

Standardmäßig werden alle vorhandenen Content-Typen unterstützt, Ausnahmen gibt es für CMS_IMG, CMS_IMGDESCR, CMS_LINK, CMS_LINKTARGET, CMS_LINKDESCR. Dafür gibt es die neuen Content-Typen CMS_IMGEDITOR und CMS_LINKEDITOR, die die bekannte Funktionalität übernehmen.

Es ist auch möglich, zu jedem Content-Typ ein Template auszuwählen.


Voraussetzungen

  • CONTENIDO >= 4.10.*
  • PHP >= 7.1 und PHP < 8.2
  • CONTENIDO Plugin "Mp Dev Tools"

Das benötigte Plugin (Package "mp_dev_tools.zip") von der GitHub-Seite herunterladen und in CONTENIDO installieren.


Installation/Verwendung

Die im Modulpackage enthaltenen Dateien/Sourcen sind wie im Folgenden beschrieben zu installieren. Die Pfade zu den Sourcen (CSS, JS und Templates) können von Projekt zu Projekt unterschiedlich sein und sind bei Bedarf anzupassen. Bei der Installationsbeschreibung wird davon ausgegangen, dass CONTENIDO in das DocumentRoot-Verzeichnis eines Webservers installiert wurde und das Mandantenverzeichnis cms ist.

Modulinstallation:

Den Modulordner mp_dynamic_content samt aller Inhalte in das Modulverzeichnis des Mandanten cms/data/modules kopieren. Danach sollte man im Backend die Funktion Module synchronisieren unter Style -> Module ausführen.

Einrichten des Moduls:

Dieses Modul in einer Artikelvorlage einrichten.

Einen Artikel erstellen, welches auf die Vorlage basiert.

In der Editoransicht des Artikels die gewünschten Optionen setzen.

Mandanten- oder Systemeinstellungen:

Mit folgender Mandanten- oder Systemeinstellung kann man die unterstützten Content-Typen konfigurieren. Mehrere Werte sind mit Komma zu trennen:

Typ: module_mp_dynamic_content
Name: supported_content_types
Wert: CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Ist die Einstellung nicht gesetzt, so wird dafür per default folgender Wert verwendet:

CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Basiseinstellungen (im Popup Dialog):

  • Container-Nummer: Die Container-Nummer die zum Erstellen der Inhalte verwendet werden soll. Die eingegebene Nummer sollte nicht im Layout vergeben sein und es sollte ausreichend Puffer zur nächsten im Layout verwendeten Container-Nummer sein, da das Modul die angegebene Container-Nummer für jeden konfigurierten Content-Typen hochzählt, z. B. Container-Nummer = 500, 5 Content-Typen, benötigter Container-Nummer Bereich = 500 - 505.

Content-Typ Einstellungen (im Popup Dialog):

Jeder Content-Typ Eintrag enthält 4 konfigurierbare Felder.

  • Beschreibung: Angabe der Beschreibung zum Content-Typ, wenn angegeben, wird es im Backend in der Editor-Ansicht als label-Element dargestellt

  • Content-Typ: Auswahl des zu verwendenden Content-Typen

  • Template: Auswahl des Templates, in dem der Inhalt des Content-Typ gerendert werden soll. Mitgeliefert werden 5 verschiedene Templates. Damit ein Content-Typ Template erkannt und korrekt im Auswahlfeld erscheint, muss es folgende Kriterien erfüllen.

    • Das Template muss im Modulverzeichnis im Ordner template liegen.
    • Der Dateiname des Templates muss mit dem Präfix "type." beginnen.
    • Die Erste Zeile des Templates sollte eine das Template beschreibende kurze Kommentarzeile sein.
  • Zusätzlicher Text: Dieses benutzerdefiniertes Feld kann für den eigenen Bedarf verwendet werden, z. B. für Ausgabe als reiner Text oder auch als Wert für ein class-Attribut. Im Template hat man Zugriff auf den Wert mit "$content.userdefined".

  • Aktionen:

    • Online Status: Content-Typ lassen sich online/offline stellen, dabei werde die Elemente mit dem Status offline bei der Ausgabe ausgelassen. Diese Inhalte können aber immer noch über die Suche im Frontend gefunden werden.

Changelog

2019-11-12 mpDynamicContent 0.1.3 (für CONTENIDO 4.9.x - 4.10.x)

  • bugfix: Mehrfachen Aufruf des Con.Loader callbacks unterbinden
  • change: Verwendung von unterstützten default Content-Typen, wenn Einstellung nicht gesetzt

2013-12-05 mpDynamicContent 0.1.2 (für CONTENIDO 4.9.x)

  • bugfix: Besseres Handling für das Laden von jQuery UI im Backend
  • bugfix: Anzeige des ausgewählten Bildes im Backend in der Editor-Ansicht
  • change: Laden und Ausgabe der benötigten Styles nur einmal pro Seite
  • new: Sortierung für Templates

2013-12-02 mpDynamicContent 0.1 (für CONTENIDO 4.9.x)

  • Erste Veröffentlichung des mpDynamicContent Moduls

mpDynamicContent Modul Links

About

CONTENIDO CMS module mpDynamicContent

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

CONTENIDO CMS Modul mpDynamicContent zum dynamischen Einbinden von beliebigen Content-Typen

Beschreibung

Das Modul mpDynamicContent erlaubt das Einbinden von beliebigen Content-Typen (z. B. CMS_HTMLHEAD, CMS_HTML, CMS_IMGEDITOR, usw.) in einen Container.

Damit lassen sich dynamisch mehrere Inhalte basierend auf Content-Typen in einem Layout ausgeben. Die Konfiguration kann direkt über die Editor-Ansicht des Artikels vorgenommen werden.

Standardmäßig werden alle vorhandenen Content-Typen unterstützt, Ausnahmen gibt es für CMS_IMG, CMS_IMGDESCR, CMS_LINK, CMS_LINKTARGET, CMS_LINKDESCR. Dafür gibt es die neuen Content-Typen CMS_IMGEDITOR und CMS_LINKEDITOR, die die bekannte Funktionalität übernehmen.

Es ist auch möglich, zu jedem Content-Typ ein Template auszuwählen.


Voraussetzungen

  • CONTENIDO >= 4.10.*
  • PHP >= 7.1 und PHP < 8.2
  • CONTENIDO Plugin "Mp Dev Tools"

Das benötigte Plugin (Package "mp_dev_tools.zip") von der GitHub-Seite herunterladen und in CONTENIDO installieren.


Installation/Verwendung

Die im Modulpackage enthaltenen Dateien/Sourcen sind wie im Folgenden beschrieben zu installieren. Die Pfade zu den Sourcen (CSS, JS und Templates) können von Projekt zu Projekt unterschiedlich sein und sind bei Bedarf anzupassen. Bei der Installationsbeschreibung wird davon ausgegangen, dass CONTENIDO in das DocumentRoot-Verzeichnis eines Webservers installiert wurde und das Mandantenverzeichnis cms ist.

Modulinstallation:

Den Modulordner mp_dynamic_content samt aller Inhalte in das Modulverzeichnis des Mandanten cms/data/modules kopieren. Danach sollte man im Backend die Funktion Module synchronisieren unter Style -> Module ausführen.

Einrichten des Moduls:

Dieses Modul in einer Artikelvorlage einrichten.

Einen Artikel erstellen, welches auf die Vorlage basiert.

In der Editoransicht des Artikels die gewünschten Optionen setzen.

Mandanten- oder Systemeinstellungen:

Mit folgender Mandanten- oder Systemeinstellung kann man die unterstützten Content-Typen konfigurieren. Mehrere Werte sind mit Komma zu trennen:

Typ: module_mp_dynamic_content
Name: supported_content_types
Wert: CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Ist die Einstellung nicht gesetzt, so wird dafür per default folgender Wert verwendet:

CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Basiseinstellungen (im Popup Dialog):

  • Container-Nummer: Die Container-Nummer die zum Erstellen der Inhalte verwendet werden soll. Die eingegebene Nummer sollte nicht im Layout vergeben sein und es sollte ausreichend Puffer zur nächsten im Layout verwendeten Container-Nummer sein, da das Modul die angegebene Container-Nummer für jeden konfigurierten Content-Typen hochzählt, z. B. Container-Nummer = 500, 5 Content-Typen, benötigter Container-Nummer Bereich = 500 - 505.

Content-Typ Einstellungen (im Popup Dialog):

Jeder Content-Typ Eintrag enthält 4 konfigurierbare Felder.

  • Beschreibung: Angabe der Beschreibung zum Content-Typ, wenn angegeben, wird es im Backend in der Editor-Ansicht als label-Element dargestellt

  • Content-Typ: Auswahl des zu verwendenden Content-Typen

  • Template: Auswahl des Templates, in dem der Inhalt des Content-Typ gerendert werden soll. Mitgeliefert werden 5 verschiedene Templates. Damit ein Content-Typ Template erkannt und korrekt im Auswahlfeld erscheint, muss es folgende Kriterien erfüllen.

    • Das Template muss im Modulverzeichnis im Ordner template liegen.
    • Der Dateiname des Templates muss mit dem Präfix "type." beginnen.
    • Die Erste Zeile des Templates sollte eine das Template beschreibende kurze Kommentarzeile sein.
  • Zusätzlicher Text: Dieses benutzerdefiniertes Feld kann für den eigenen Bedarf verwendet werden, z. B. für Ausgabe als reiner Text oder auch als Wert für ein class-Attribut. Im Template hat man Zugriff auf den Wert mit "$content.userdefined".

  • Aktionen:

    • Online Status: Content-Typ lassen sich online/offline stellen, dabei werde die Elemente mit dem Status offline bei der Ausgabe ausgelassen. Diese Inhalte können aber immer noch über die Suche im Frontend gefunden werden.

Changelog

2019-11-12 mpDynamicContent 0.1.3 (für CONTENIDO 4.9.x - 4.10.x)

  • bugfix: Mehrfachen Aufruf des Con.Loader callbacks unterbinden
  • change: Verwendung von unterstützten default Content-Typen, wenn Einstellung nicht gesetzt

2013-12-05 mpDynamicContent 0.1.2 (für CONTENIDO 4.9.x)

  • bugfix: Besseres Handling für das Laden von jQuery UI im Backend
  • bugfix: Anzeige des ausgewählten Bildes im Backend in der Editor-Ansicht
  • change: Laden und Ausgabe der benötigten Styles nur einmal pro Seite
  • new: Sortierung für Templates

2013-12-02 mpDynamicContent 0.1 (für CONTENIDO 4.9.x)

  • Erste Veröffentlichung des mpDynamicContent Moduls

mpDynamicContent Modul Links

About

CONTENIDO CMS module mpDynamicContent

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

CONTENIDO CMS Modul mpDynamicContent zum dynamischen Einbinden von beliebigen Content-Typen

Beschreibung

Das Modul mpDynamicContent erlaubt das Einbinden von beliebigen Content-Typen (z. B. CMS_HTMLHEAD, CMS_HTML, CMS_IMGEDITOR, usw.) in einen Container.

Damit lassen sich dynamisch mehrere Inhalte basierend auf Content-Typen in einem Layout ausgeben. Die Konfiguration kann direkt über die Editor-Ansicht des Artikels vorgenommen werden.

Standardmäßig werden alle vorhandenen Content-Typen unterstützt, Ausnahmen gibt es für CMS_IMG, CMS_IMGDESCR, CMS_LINK, CMS_LINKTARGET, CMS_LINKDESCR. Dafür gibt es die neuen Content-Typen CMS_IMGEDITOR und CMS_LINKEDITOR, die die bekannte Funktionalität übernehmen.

Es ist auch möglich, zu jedem Content-Typ ein Template auszuwählen.


Voraussetzungen

  • CONTENIDO >= 4.10.*
  • PHP >= 7.1 und PHP < 8.2
  • CONTENIDO Plugin "Mp Dev Tools"

Das benötigte Plugin (Package "mp_dev_tools.zip") von der GitHub-Seite herunterladen und in CONTENIDO installieren.


Installation/Verwendung

Die im Modulpackage enthaltenen Dateien/Sourcen sind wie im Folgenden beschrieben zu installieren. Die Pfade zu den Sourcen (CSS, JS und Templates) können von Projekt zu Projekt unterschiedlich sein und sind bei Bedarf anzupassen. Bei der Installationsbeschreibung wird davon ausgegangen, dass CONTENIDO in das DocumentRoot-Verzeichnis eines Webservers installiert wurde und das Mandantenverzeichnis cms ist.

Modulinstallation:

Den Modulordner mp_dynamic_content samt aller Inhalte in das Modulverzeichnis des Mandanten cms/data/modules kopieren. Danach sollte man im Backend die Funktion Module synchronisieren unter Style -> Module ausführen.

Einrichten des Moduls:

Dieses Modul in einer Artikelvorlage einrichten.

Einen Artikel erstellen, welches auf die Vorlage basiert.

In der Editoransicht des Artikels die gewünschten Optionen setzen.

Mandanten- oder Systemeinstellungen:

Mit folgender Mandanten- oder Systemeinstellung kann man die unterstützten Content-Typen konfigurieren. Mehrere Werte sind mit Komma zu trennen:

Typ: module_mp_dynamic_content
Name: supported_content_types
Wert: CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Ist die Einstellung nicht gesetzt, so wird dafür per default folgender Wert verwendet:

CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Basiseinstellungen (im Popup Dialog):

  • Container-Nummer: Die Container-Nummer die zum Erstellen der Inhalte verwendet werden soll. Die eingegebene Nummer sollte nicht im Layout vergeben sein und es sollte ausreichend Puffer zur nächsten im Layout verwendeten Container-Nummer sein, da das Modul die angegebene Container-Nummer für jeden konfigurierten Content-Typen hochzählt, z. B. Container-Nummer = 500, 5 Content-Typen, benötigter Container-Nummer Bereich = 500 - 505.

Content-Typ Einstellungen (im Popup Dialog):

Jeder Content-Typ Eintrag enthält 4 konfigurierbare Felder.

  • Beschreibung: Angabe der Beschreibung zum Content-Typ, wenn angegeben, wird es im Backend in der Editor-Ansicht als label-Element dargestellt

  • Content-Typ: Auswahl des zu verwendenden Content-Typen

  • Template: Auswahl des Templates, in dem der Inhalt des Content-Typ gerendert werden soll. Mitgeliefert werden 5 verschiedene Templates. Damit ein Content-Typ Template erkannt und korrekt im Auswahlfeld erscheint, muss es folgende Kriterien erfüllen.

    • Das Template muss im Modulverzeichnis im Ordner template liegen.
    • Der Dateiname des Templates muss mit dem Präfix "type." beginnen.
    • Die Erste Zeile des Templates sollte eine das Template beschreibende kurze Kommentarzeile sein.
  • Zusätzlicher Text: Dieses benutzerdefiniertes Feld kann für den eigenen Bedarf verwendet werden, z. B. für Ausgabe als reiner Text oder auch als Wert für ein class-Attribut. Im Template hat man Zugriff auf den Wert mit "$content.userdefined".

  • Aktionen:

    • Online Status: Content-Typ lassen sich online/offline stellen, dabei werde die Elemente mit dem Status offline bei der Ausgabe ausgelassen. Diese Inhalte können aber immer noch über die Suche im Frontend gefunden werden.

Changelog

2019-11-12 mpDynamicContent 0.1.3 (für CONTENIDO 4.9.x - 4.10.x)

  • bugfix: Mehrfachen Aufruf des Con.Loader callbacks unterbinden
  • change: Verwendung von unterstützten default Content-Typen, wenn Einstellung nicht gesetzt

2013-12-05 mpDynamicContent 0.1.2 (für CONTENIDO 4.9.x)

  • bugfix: Besseres Handling für das Laden von jQuery UI im Backend
  • bugfix: Anzeige des ausgewählten Bildes im Backend in der Editor-Ansicht
  • change: Laden und Ausgabe der benötigten Styles nur einmal pro Seite
  • new: Sortierung für Templates

2013-12-02 mpDynamicContent 0.1 (für CONTENIDO 4.9.x)

  • Erste Veröffentlichung des mpDynamicContent Moduls

mpDynamicContent Modul Links

About

CONTENIDO CMS module mpDynamicContent

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

CONTENIDO CMS Modul mpDynamicContent zum dynamischen Einbinden von beliebigen Content-Typen

Beschreibung

Das Modul mpDynamicContent erlaubt das Einbinden von beliebigen Content-Typen (z. B. CMS_HTMLHEAD, CMS_HTML, CMS_IMGEDITOR, usw.) in einen Container.

Damit lassen sich dynamisch mehrere Inhalte basierend auf Content-Typen in einem Layout ausgeben. Die Konfiguration kann direkt über die Editor-Ansicht des Artikels vorgenommen werden.

Standardmäßig werden alle vorhandenen Content-Typen unterstützt, Ausnahmen gibt es für CMS_IMG, CMS_IMGDESCR, CMS_LINK, CMS_LINKTARGET, CMS_LINKDESCR. Dafür gibt es die neuen Content-Typen CMS_IMGEDITOR und CMS_LINKEDITOR, die die bekannte Funktionalität übernehmen.

Es ist auch möglich, zu jedem Content-Typ ein Template auszuwählen.


Voraussetzungen

  • CONTENIDO >= 4.10.*
  • PHP >= 7.1 und PHP < 8.2
  • CONTENIDO Plugin "Mp Dev Tools"

Das benötigte Plugin (Package "mp_dev_tools.zip") von der GitHub-Seite herunterladen und in CONTENIDO installieren.


Installation/Verwendung

Die im Modulpackage enthaltenen Dateien/Sourcen sind wie im Folgenden beschrieben zu installieren. Die Pfade zu den Sourcen (CSS, JS und Templates) können von Projekt zu Projekt unterschiedlich sein und sind bei Bedarf anzupassen. Bei der Installationsbeschreibung wird davon ausgegangen, dass CONTENIDO in das DocumentRoot-Verzeichnis eines Webservers installiert wurde und das Mandantenverzeichnis cms ist.

Modulinstallation:

Den Modulordner mp_dynamic_content samt aller Inhalte in das Modulverzeichnis des Mandanten cms/data/modules kopieren. Danach sollte man im Backend die Funktion Module synchronisieren unter Style -> Module ausführen.

Einrichten des Moduls:

Dieses Modul in einer Artikelvorlage einrichten.

Einen Artikel erstellen, welches auf die Vorlage basiert.

In der Editoransicht des Artikels die gewünschten Optionen setzen.

Mandanten- oder Systemeinstellungen:

Mit folgender Mandanten- oder Systemeinstellung kann man die unterstützten Content-Typen konfigurieren. Mehrere Werte sind mit Komma zu trennen:

Typ: module_mp_dynamic_content
Name: supported_content_types
Wert: CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Ist die Einstellung nicht gesetzt, so wird dafür per default folgender Wert verwendet:

CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Basiseinstellungen (im Popup Dialog):

  • Container-Nummer: Die Container-Nummer die zum Erstellen der Inhalte verwendet werden soll. Die eingegebene Nummer sollte nicht im Layout vergeben sein und es sollte ausreichend Puffer zur nächsten im Layout verwendeten Container-Nummer sein, da das Modul die angegebene Container-Nummer für jeden konfigurierten Content-Typen hochzählt, z. B. Container-Nummer = 500, 5 Content-Typen, benötigter Container-Nummer Bereich = 500 - 505.

Content-Typ Einstellungen (im Popup Dialog):

Jeder Content-Typ Eintrag enthält 4 konfigurierbare Felder.

  • Beschreibung: Angabe der Beschreibung zum Content-Typ, wenn angegeben, wird es im Backend in der Editor-Ansicht als label-Element dargestellt

  • Content-Typ: Auswahl des zu verwendenden Content-Typen

  • Template: Auswahl des Templates, in dem der Inhalt des Content-Typ gerendert werden soll. Mitgeliefert werden 5 verschiedene Templates. Damit ein Content-Typ Template erkannt und korrekt im Auswahlfeld erscheint, muss es folgende Kriterien erfüllen.

    • Das Template muss im Modulverzeichnis im Ordner template liegen.
    • Der Dateiname des Templates muss mit dem Präfix "type." beginnen.
    • Die Erste Zeile des Templates sollte eine das Template beschreibende kurze Kommentarzeile sein.
  • Zusätzlicher Text: Dieses benutzerdefiniertes Feld kann für den eigenen Bedarf verwendet werden, z. B. für Ausgabe als reiner Text oder auch als Wert für ein class-Attribut. Im Template hat man Zugriff auf den Wert mit "$content.userdefined".

  • Aktionen:

    • Online Status: Content-Typ lassen sich online/offline stellen, dabei werde die Elemente mit dem Status offline bei der Ausgabe ausgelassen. Diese Inhalte können aber immer noch über die Suche im Frontend gefunden werden.

Changelog

2019-11-12 mpDynamicContent 0.1.3 (für CONTENIDO 4.9.x - 4.10.x)

  • bugfix: Mehrfachen Aufruf des Con.Loader callbacks unterbinden
  • change: Verwendung von unterstützten default Content-Typen, wenn Einstellung nicht gesetzt

2013-12-05 mpDynamicContent 0.1.2 (für CONTENIDO 4.9.x)

  • bugfix: Besseres Handling für das Laden von jQuery UI im Backend
  • bugfix: Anzeige des ausgewählten Bildes im Backend in der Editor-Ansicht
  • change: Laden und Ausgabe der benötigten Styles nur einmal pro Seite
  • new: Sortierung für Templates

2013-12-02 mpDynamicContent 0.1 (für CONTENIDO 4.9.x)

  • Erste Veröffentlichung des mpDynamicContent Moduls

mpDynamicContent Modul Links

About

CONTENIDO CMS module mpDynamicContent

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

CONTENIDO CMS Modul mpDynamicContent zum dynamischen Einbinden von beliebigen Content-Typen

Beschreibung

Das Modul mpDynamicContent erlaubt das Einbinden von beliebigen Content-Typen (z. B. CMS_HTMLHEAD, CMS_HTML, CMS_IMGEDITOR, usw.) in einen Container.

Damit lassen sich dynamisch mehrere Inhalte basierend auf Content-Typen in einem Layout ausgeben. Die Konfiguration kann direkt über die Editor-Ansicht des Artikels vorgenommen werden.

Standardmäßig werden alle vorhandenen Content-Typen unterstützt, Ausnahmen gibt es für CMS_IMG, CMS_IMGDESCR, CMS_LINK, CMS_LINKTARGET, CMS_LINKDESCR. Dafür gibt es die neuen Content-Typen CMS_IMGEDITOR und CMS_LINKEDITOR, die die bekannte Funktionalität übernehmen.

Es ist auch möglich, zu jedem Content-Typ ein Template auszuwählen.


Voraussetzungen

  • CONTENIDO >= 4.10.*
  • PHP >= 7.1 und PHP < 8.2
  • CONTENIDO Plugin "Mp Dev Tools"

Das benötigte Plugin (Package "mp_dev_tools.zip") von der GitHub-Seite herunterladen und in CONTENIDO installieren.


Installation/Verwendung

Die im Modulpackage enthaltenen Dateien/Sourcen sind wie im Folgenden beschrieben zu installieren. Die Pfade zu den Sourcen (CSS, JS und Templates) können von Projekt zu Projekt unterschiedlich sein und sind bei Bedarf anzupassen. Bei der Installationsbeschreibung wird davon ausgegangen, dass CONTENIDO in das DocumentRoot-Verzeichnis eines Webservers installiert wurde und das Mandantenverzeichnis cms ist.

Modulinstallation:

Den Modulordner mp_dynamic_content samt aller Inhalte in das Modulverzeichnis des Mandanten cms/data/modules kopieren. Danach sollte man im Backend die Funktion Module synchronisieren unter Style -> Module ausführen.

Einrichten des Moduls:

Dieses Modul in einer Artikelvorlage einrichten.

Einen Artikel erstellen, welches auf die Vorlage basiert.

In der Editoransicht des Artikels die gewünschten Optionen setzen.

Mandanten- oder Systemeinstellungen:

Mit folgender Mandanten- oder Systemeinstellung kann man die unterstützten Content-Typen konfigurieren. Mehrere Werte sind mit Komma zu trennen:

Typ: module_mp_dynamic_content
Name: supported_content_types
Wert: CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Ist die Einstellung nicht gesetzt, so wird dafür per default folgender Wert verwendet:

CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Basiseinstellungen (im Popup Dialog):

  • Container-Nummer: Die Container-Nummer die zum Erstellen der Inhalte verwendet werden soll. Die eingegebene Nummer sollte nicht im Layout vergeben sein und es sollte ausreichend Puffer zur nächsten im Layout verwendeten Container-Nummer sein, da das Modul die angegebene Container-Nummer für jeden konfigurierten Content-Typen hochzählt, z. B. Container-Nummer = 500, 5 Content-Typen, benötigter Container-Nummer Bereich = 500 - 505.

Content-Typ Einstellungen (im Popup Dialog):

Jeder Content-Typ Eintrag enthält 4 konfigurierbare Felder.

  • Beschreibung: Angabe der Beschreibung zum Content-Typ, wenn angegeben, wird es im Backend in der Editor-Ansicht als label-Element dargestellt

  • Content-Typ: Auswahl des zu verwendenden Content-Typen

  • Template: Auswahl des Templates, in dem der Inhalt des Content-Typ gerendert werden soll. Mitgeliefert werden 5 verschiedene Templates. Damit ein Content-Typ Template erkannt und korrekt im Auswahlfeld erscheint, muss es folgende Kriterien erfüllen.

    • Das Template muss im Modulverzeichnis im Ordner template liegen.
    • Der Dateiname des Templates muss mit dem Präfix "type." beginnen.
    • Die Erste Zeile des Templates sollte eine das Template beschreibende kurze Kommentarzeile sein.
  • Zusätzlicher Text: Dieses benutzerdefiniertes Feld kann für den eigenen Bedarf verwendet werden, z. B. für Ausgabe als reiner Text oder auch als Wert für ein class-Attribut. Im Template hat man Zugriff auf den Wert mit "$content.userdefined".

  • Aktionen:

    • Online Status: Content-Typ lassen sich online/offline stellen, dabei werde die Elemente mit dem Status offline bei der Ausgabe ausgelassen. Diese Inhalte können aber immer noch über die Suche im Frontend gefunden werden.

Changelog

2019-11-12 mpDynamicContent 0.1.3 (für CONTENIDO 4.9.x - 4.10.x)

  • bugfix: Mehrfachen Aufruf des Con.Loader callbacks unterbinden
  • change: Verwendung von unterstützten default Content-Typen, wenn Einstellung nicht gesetzt

2013-12-05 mpDynamicContent 0.1.2 (für CONTENIDO 4.9.x)

  • bugfix: Besseres Handling für das Laden von jQuery UI im Backend
  • bugfix: Anzeige des ausgewählten Bildes im Backend in der Editor-Ansicht
  • change: Laden und Ausgabe der benötigten Styles nur einmal pro Seite
  • new: Sortierung für Templates

2013-12-02 mpDynamicContent 0.1 (für CONTENIDO 4.9.x)

  • Erste Veröffentlichung des mpDynamicContent Moduls

mpDynamicContent Modul Links

About

CONTENIDO CMS module mpDynamicContent

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

CONTENIDO CMS Modul mpDynamicContent zum dynamischen Einbinden von beliebigen Content-Typen

Beschreibung

Das Modul mpDynamicContent erlaubt das Einbinden von beliebigen Content-Typen (z. B. CMS_HTMLHEAD, CMS_HTML, CMS_IMGEDITOR, usw.) in einen Container.

Damit lassen sich dynamisch mehrere Inhalte basierend auf Content-Typen in einem Layout ausgeben. Die Konfiguration kann direkt über die Editor-Ansicht des Artikels vorgenommen werden.

Standardmäßig werden alle vorhandenen Content-Typen unterstützt, Ausnahmen gibt es für CMS_IMG, CMS_IMGDESCR, CMS_LINK, CMS_LINKTARGET, CMS_LINKDESCR. Dafür gibt es die neuen Content-Typen CMS_IMGEDITOR und CMS_LINKEDITOR, die die bekannte Funktionalität übernehmen.

Es ist auch möglich, zu jedem Content-Typ ein Template auszuwählen.


Voraussetzungen

  • CONTENIDO >= 4.10.*
  • PHP >= 7.1 und PHP < 8.2
  • CONTENIDO Plugin "Mp Dev Tools"

Das benötigte Plugin (Package "mp_dev_tools.zip") von der GitHub-Seite herunterladen und in CONTENIDO installieren.


Installation/Verwendung

Die im Modulpackage enthaltenen Dateien/Sourcen sind wie im Folgenden beschrieben zu installieren. Die Pfade zu den Sourcen (CSS, JS und Templates) können von Projekt zu Projekt unterschiedlich sein und sind bei Bedarf anzupassen. Bei der Installationsbeschreibung wird davon ausgegangen, dass CONTENIDO in das DocumentRoot-Verzeichnis eines Webservers installiert wurde und das Mandantenverzeichnis cms ist.

Modulinstallation:

Den Modulordner mp_dynamic_content samt aller Inhalte in das Modulverzeichnis des Mandanten cms/data/modules kopieren. Danach sollte man im Backend die Funktion Module synchronisieren unter Style -> Module ausführen.

Einrichten des Moduls:

Dieses Modul in einer Artikelvorlage einrichten.

Einen Artikel erstellen, welches auf die Vorlage basiert.

In der Editoransicht des Artikels die gewünschten Optionen setzen.

Mandanten- oder Systemeinstellungen:

Mit folgender Mandanten- oder Systemeinstellung kann man die unterstützten Content-Typen konfigurieren. Mehrere Werte sind mit Komma zu trennen:

Typ: module_mp_dynamic_content
Name: supported_content_types
Wert: CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Ist die Einstellung nicht gesetzt, so wird dafür per default folgender Wert verwendet:

CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Basiseinstellungen (im Popup Dialog):

  • Container-Nummer: Die Container-Nummer die zum Erstellen der Inhalte verwendet werden soll. Die eingegebene Nummer sollte nicht im Layout vergeben sein und es sollte ausreichend Puffer zur nächsten im Layout verwendeten Container-Nummer sein, da das Modul die angegebene Container-Nummer für jeden konfigurierten Content-Typen hochzählt, z. B. Container-Nummer = 500, 5 Content-Typen, benötigter Container-Nummer Bereich = 500 - 505.

Content-Typ Einstellungen (im Popup Dialog):

Jeder Content-Typ Eintrag enthält 4 konfigurierbare Felder.

  • Beschreibung: Angabe der Beschreibung zum Content-Typ, wenn angegeben, wird es im Backend in der Editor-Ansicht als label-Element dargestellt

  • Content-Typ: Auswahl des zu verwendenden Content-Typen

  • Template: Auswahl des Templates, in dem der Inhalt des Content-Typ gerendert werden soll. Mitgeliefert werden 5 verschiedene Templates. Damit ein Content-Typ Template erkannt und korrekt im Auswahlfeld erscheint, muss es folgende Kriterien erfüllen.

    • Das Template muss im Modulverzeichnis im Ordner template liegen.
    • Der Dateiname des Templates muss mit dem Präfix "type." beginnen.
    • Die Erste Zeile des Templates sollte eine das Template beschreibende kurze Kommentarzeile sein.
  • Zusätzlicher Text: Dieses benutzerdefiniertes Feld kann für den eigenen Bedarf verwendet werden, z. B. für Ausgabe als reiner Text oder auch als Wert für ein class-Attribut. Im Template hat man Zugriff auf den Wert mit "$content.userdefined".

  • Aktionen:

    • Online Status: Content-Typ lassen sich online/offline stellen, dabei werde die Elemente mit dem Status offline bei der Ausgabe ausgelassen. Diese Inhalte können aber immer noch über die Suche im Frontend gefunden werden.

Changelog

2019-11-12 mpDynamicContent 0.1.3 (für CONTENIDO 4.9.x - 4.10.x)

  • bugfix: Mehrfachen Aufruf des Con.Loader callbacks unterbinden
  • change: Verwendung von unterstützten default Content-Typen, wenn Einstellung nicht gesetzt

2013-12-05 mpDynamicContent 0.1.2 (für CONTENIDO 4.9.x)

  • bugfix: Besseres Handling für das Laden von jQuery UI im Backend
  • bugfix: Anzeige des ausgewählten Bildes im Backend in der Editor-Ansicht
  • change: Laden und Ausgabe der benötigten Styles nur einmal pro Seite
  • new: Sortierung für Templates

2013-12-02 mpDynamicContent 0.1 (für CONTENIDO 4.9.x)

  • Erste Veröffentlichung des mpDynamicContent Moduls

mpDynamicContent Modul Links

About

CONTENIDO CMS module mpDynamicContent

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

CONTENIDO CMS Modul mpDynamicContent zum dynamischen Einbinden von beliebigen Content-Typen

Beschreibung

Das Modul mpDynamicContent erlaubt das Einbinden von beliebigen Content-Typen (z. B. CMS_HTMLHEAD, CMS_HTML, CMS_IMGEDITOR, usw.) in einen Container.

Damit lassen sich dynamisch mehrere Inhalte basierend auf Content-Typen in einem Layout ausgeben. Die Konfiguration kann direkt über die Editor-Ansicht des Artikels vorgenommen werden.

Standardmäßig werden alle vorhandenen Content-Typen unterstützt, Ausnahmen gibt es für CMS_IMG, CMS_IMGDESCR, CMS_LINK, CMS_LINKTARGET, CMS_LINKDESCR. Dafür gibt es die neuen Content-Typen CMS_IMGEDITOR und CMS_LINKEDITOR, die die bekannte Funktionalität übernehmen.

Es ist auch möglich, zu jedem Content-Typ ein Template auszuwählen.


Voraussetzungen

  • CONTENIDO >= 4.10.*
  • PHP >= 7.1 und PHP < 8.2
  • CONTENIDO Plugin "Mp Dev Tools"

Das benötigte Plugin (Package "mp_dev_tools.zip") von der GitHub-Seite herunterladen und in CONTENIDO installieren.


Installation/Verwendung

Die im Modulpackage enthaltenen Dateien/Sourcen sind wie im Folgenden beschrieben zu installieren. Die Pfade zu den Sourcen (CSS, JS und Templates) können von Projekt zu Projekt unterschiedlich sein und sind bei Bedarf anzupassen. Bei der Installationsbeschreibung wird davon ausgegangen, dass CONTENIDO in das DocumentRoot-Verzeichnis eines Webservers installiert wurde und das Mandantenverzeichnis cms ist.

Modulinstallation:

Den Modulordner mp_dynamic_content samt aller Inhalte in das Modulverzeichnis des Mandanten cms/data/modules kopieren. Danach sollte man im Backend die Funktion Module synchronisieren unter Style -> Module ausführen.

Einrichten des Moduls:

Dieses Modul in einer Artikelvorlage einrichten.

Einen Artikel erstellen, welches auf die Vorlage basiert.

In der Editoransicht des Artikels die gewünschten Optionen setzen.

Mandanten- oder Systemeinstellungen:

Mit folgender Mandanten- oder Systemeinstellung kann man die unterstützten Content-Typen konfigurieren. Mehrere Werte sind mit Komma zu trennen:

Typ: module_mp_dynamic_content
Name: supported_content_types
Wert: CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Ist die Einstellung nicht gesetzt, so wird dafür per default folgender Wert verwendet:

CMS_HEAD,CMS_HTML,CMS_HTMLHEAD,CMS_IMGEDITOR,CMS_LINKEDITOR

Basiseinstellungen (im Popup Dialog):

  • Container-Nummer: Die Container-Nummer die zum Erstellen der Inhalte verwendet werden soll. Die eingegebene Nummer sollte nicht im Layout vergeben sein und es sollte ausreichend Puffer zur nächsten im Layout verwendeten Container-Nummer sein, da das Modul die angegebene Container-Nummer für jeden konfigurierten Content-Typen hochzählt, z. B. Container-Nummer = 500, 5 Content-Typen, benötigter Container-Nummer Bereich = 500 - 505.

Content-Typ Einstellungen (im Popup Dialog):

Jeder Content-Typ Eintrag enthält 4 konfigurierbare Felder.

  • Beschreibung: Angabe der Beschreibung zum Content-Typ, wenn angegeben, wird es im Backend in der Editor-Ansicht als label-Element dargestellt

  • Content-Typ: Auswahl des zu verwendenden Content-Typen

  • Template: Auswahl des Templates, in dem der Inhalt des Content-Typ gerendert werden soll. Mitgeliefert werden 5 verschiedene Templates. Damit ein Content-Typ Template erkannt und korrekt im Auswahlfeld erscheint, muss es folgende Kriterien erfüllen.

    • Das Template muss im Modulverzeichnis im Ordner template liegen.
    • Der Dateiname des Templates muss mit dem Präfix "type." beginnen.
    • Die Erste Zeile des Templates sollte eine das Template beschreibende kurze Kommentarzeile sein.
  • Zusätzlicher Text: Dieses benutzerdefiniertes Feld kann für den eigenen Bedarf verwendet werden, z. B. für Ausgabe als reiner Text oder auch als Wert für ein class-Attribut. Im Template hat man Zugriff auf den Wert mit "$content.userdefined".

  • Aktionen:

    • Online Status: Content-Typ lassen sich online/offline stellen, dabei werde die Elemente mit dem Status offline bei der Ausgabe ausgelassen. Diese Inhalte können aber immer noch über die Suche im Frontend gefunden werden.

Changelog

2019-11-12 mpDynamicContent 0.1.3 (für CONTENIDO 4.9.x - 4.10.x)

  • bugfix: Mehrfachen Aufruf des Con.Loader callbacks unterbinden
  • change: Verwendung von unterstützten default Content-Typen, wenn Einstellung nicht gesetzt

2013-12-05 mpDynamicContent 0.1.2 (für CONTENIDO 4.9.x)

  • bugfix: Besseres Handling für das Laden von jQuery UI im Backend
  • bugfix: Anzeige des ausgewählten Bildes im Backend in der Editor-Ansicht
  • change: Laden und Ausgabe der benötigten Styles nur einmal pro Seite
  • new: Sortierung für Templates

2013-12-02 mpDynamicContent 0.1 (für CONTENIDO 4.9.x)

  • Erste Veröffentlichung des mpDynamicContent Moduls

mpDynamicContent Modul Links

About

CONTENIDO CMS module mpDynamicContent

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages