Seite 1 von 1

CMS_TEASER: Globale Konfiguration

Verfasst: Di 10. Jan 2012, 16:18
von Oldperl
Für kleine bis mittelgroße Seiten arbeite ich gerne mit Bordmitteln von Contenido. Der CMS-Type CMS_TEASER eignet sich dabei gut sowohl für einfache Artikellisten als auch für Teaserboxen. Bei den letzteren fehlte mir aber bisher die Möglichkeit die Einstellungen des Teasers global zu setzen, so daß man nicht für jeden einzelnen Artikel die Konfiguration neu erstellen muss.

Daher habe ich die Klasse Cms_Teaser contenido\classes\class.cms_teaser.php dahingehend erweitert, daß durch setzen einer Mandanteneinstellung für den jeweiligen CMS_TEASER dessen Konfiguration nicht mehr per Artikel gespeichert wird, sondern nun als Mandantenpropertie global genutzt wird. Egal in welchem Artikel man nun die Einstellungen des CMS_TEASERs ändert, sie gilt umgehend für alle Artikel in dem der Teaser mit der entsprechenden ID genutzt wird. Dieses kann für jeden CMS_TEASER anhand der Nummer/ID des Teasers an- bzw. abgeschaltet werden.

Die geänderte Klasse für Contenido 4.8.15 habe ich als Contenido_4.8.15_Plus.zip, mit entsprechenden Pfaden, angehängt. Nach dem Austausch der Klasse kann man die Funktion für den CMS_TEASER[x] mit folgender Mandanteneinstellung unter Administration->Mandanten->[Mandant]->Mandanteneinstellungen aktivieren.

cms_teaserX | use_global_xml | true/false

wobei X für die ID des Teasers steht. Anstelle der Einstellung 'false' kann man auch die Mandanteneinstellung entfernen/löschen.

Gruß aus Franken

Ortwin

Re: CMS_TEASER: Globale Konfiguration

Verfasst: Di 24. Jan 2012, 10:24
von Oldperl
:!: Bugfix

In der Erweiterung hat sich ein Fehler eingeschlichen. Der Schalter für die globale Konfiguration wird aufgrund einer fehlenden Typisierung nicht korrekt verarbeitet.

In der Klasse in Zeile 198 bitte folgende Codezeile

Code: Alles auswählen

$this->bUseGlobalXML = getEffectiveSetting("cms_teaser".$this->iId, "use_global_xml", 'false');
durch diese ersetzen.

Code: Alles auswählen

$this->bUseGlobalXML = (getEffectiveSetting("cms_teaser".$this->iId, "use_global_xml", 'false') == 'true')?true:false;
Die neue Version findet ihr im 1. Beitrag.

Gruß aus Franken

Ortwin