Hallo
ich komm einfach nicht weiter!
Ich habe ein Modul, das in verschiedenen Templates verwendet wird. Jedes Template ist bzgl. dieses Moduls vorkonfiguriert (drei Parameter), und das Modul soll dann für eine jeweils entsprechend andere Darstellung in einem Teaser sorgen.
Da sich diese Vorkonfiguration regelmäßig ändern kann und ich bzw. der Redakteur dann nicht alle bereits bestehenden Artikel oder deren Kategorien neu konfigurieren will, plane ich folgendes: Ich will in diesem Modul herausfinden, in welchem Template ich mich gerade befinde (also welches Template dem aktuellen Artikel hinterlegt ist) und dann die vorkonfigurierten Werte auslesen. Klingt alles so einfach, aber...
Kann mir jemand erklären ob und wie ich das hinkriege? Oder ganz andere Ideen?
Danke!!
Vorkonfiguration eines "Artikel-Templates" herausfinden
Re: Vorkonfiguration eines "Artikel-Templates" herausfinden
hallo jaspu
Im Output-Bereich des Moduls sagt dir die Variable $cCurrentContainer in welchem Container es sich befindet. Mit dieser ID (das ist übrigens die Nummer, die du im HTML-Layout vorgibst) und der idtplcfg aus der [prefix]_art_lang kannst du die Vorkonfiguration eines bestimmten Templates auslesen.
Dieser Code ist ungetestet, sollte aber - zumindest ideell - funktionieren.
Hast du dir sowas vorgestellt? Danke für dein Feedback.
Gruss
Conradius
Im Output-Bereich des Moduls sagt dir die Variable $cCurrentContainer in welchem Container es sich befindet. Mit dieser ID (das ist übrigens die Nummer, die du im HTML-Layout vorgibst) und der idtplcfg aus der [prefix]_art_lang kannst du die Vorkonfiguration eines bestimmten Templates auslesen.
Code: Alles auswählen
$sSql = "SELECT
CONTCFG.container
FROM
".$cfg['tab']['art_lang']." AS ARTLANG,
".$cfg['tab']['container_conf']." AS CONTCFG
".$cfg['tab']['template_conf']." AS TPLCFG
".$cfg['tab']['template']." AS TPL
WHERE
ARTLANG.idart = '".$idart."'
AND ARTLANG.idlang = '".$lang."'
AND TPLCFG.idtplcfg = ARTLANG.idtplcfg
AND TPL.idtpl = TPLCFG.idtpl
AND CONTCFG.idtplcfg = TPL.idtplcfg
AND CONTCFG.number = '".$cCurrentContainer."'";
$db->query($sSql);
$db->next_record()
$aContainerConfiguration = explode('&', urldecode($db->f('container')));
foreach ($aContainerConfiguration as $key=>$aConfKeyValuePair) {
$aConf = explode('=', $aConfKeyValuePair);
echo $aConf[0].' => '.$aConf[1]."<br\>\n";
}
Hast du dir sowas vorgestellt? Danke für dein Feedback.
Gruss
Conradius
Re: Vorkonfiguration eines "Artikel-Templates" herausfinden
Hi Conradius!
Vielen vielen Dank, hat mir sehr geholfen:
Vielen vielen Dank, hat mir sehr geholfen:
Code: Alles auswählen
$sSql = "SELECT CONTCFG.container
FROM
".$cfg['tab']['art_lang']." AS ARTLANG,
".$cfg['tab']['container_conf']." AS CONTCFG,
".$cfg['tab']['tpl_conf']." AS TPLCFG,
".$cfg['tab']['tpl']." AS TPL
WHERE
ARTLANG.idart = '".$idart."'
AND ARTLANG.idlang = '".$lang."'
AND TPLCFG.idtplcfg = ARTLANG.idtplcfg
AND TPL.idtpl = TPLCFG.idtpl
AND CONTCFG.idtplcfg = TPL.idtplcfg
AND CONTCFG.number = '".$cCurrentContainer."'";
Re: Vorkonfiguration eines "Artikel-Templates" herausfinden
Hallo nochmal,
ist doch noch nicht gelöst, denn: Sofern ein Artikel bereits eine separate Konfiguration hat, so wird diese herangezogen und nicht die Vorkonfiguration des Templates. Lässt sich das auch noch abfangen?
Danke!!
ist doch noch nicht gelöst, denn: Sofern ein Artikel bereits eine separate Konfiguration hat, so wird diese herangezogen und nicht die Vorkonfiguration des Templates. Lässt sich das auch noch abfangen?
Danke!!
Re: Vorkonfiguration eines "Artikel-Templates" herausfinden
So funzt es:
Code: Alles auswählen
$sSql = "SELECT CONTCFG.container FROM ".$cfg['tab']['art_lang']." AS ARTLANG
LEFT JOIN ".$cfg['tab']['tpl_conf']." AS TPLCFG ON TPLCFG.idtplcfg = ARTLANG.idtplcfg
LEFT JOIN ".$cfg['tab']['tpl']." AS TPL ON TPLCFG.idtpl = TPL.idtpl
LEFT JOIN ".$cfg['tab']['tpl_conf']." AS TPLCFG2 ON TPL.idtplcfg = TPLCFG2.idtplcfg
LEFT JOIN ".$cfg['tab']['container_conf']." AS CONTCFG ON CONTCFG.idtplcfg = TPLCFG2.idtplcfg
WHERE ARTLANG.idart = '".$idart."'
AND ARTLANG.idlang = '".$lang."'
AND CONTCFG.number = '".$cCurrentContainer."'";