Seite 1 von 1

Gibt es eine Variable die das verwendete Layout-Template ve

Verfasst: Fr 16. Mär 2012, 08:42
von woddel
Hallo!

Ein kurze Frage - siehe Betreff.
Ich bedanke mich schon mal höflichst bei den Menschen die mir das Verraten können!

Woddel

Re: Gibt es eine Variable die das verwendete Layout-Template

Verfasst: Fr 16. Mär 2012, 09:42
von Spider IT
Hallo woddel,

der Betreff ist gekürzt, du solltest deine Frage im Post schreiben.

Wenn ich die Frage richtig verstanden habe, möchtest du wissen, welches Layout und welches Template beim aktuellen Artikel im Einsatz sind.
Eine Variable gibt es meines Wissens nicht, aber es steht alles in der Datenbank :)
Wenn beim Artikel ein Template gewählt wurde, steht das in der con_art_lang

Code: Alles auswählen

$sql = 'SELECT idtplcfg
        FROM ' . $cfg['tab']['art_lang'] . '
        WHERE (idartlang=' . $idartlang . ')';
Wenn beim Artikel kein Template eingestellt ist (idtplcfg = 0), wird das von der Kategorie genutzt (con_cat_lang)

Code: Alles auswählen

$sql = 'SELECT idtplcfg
        FROM ' . $cfg['tab']['cat_lang'] . '
        WHERE ((idcat=' . $idcat . ') AND (idlang=' . $lang . '))';
Mit der idtplcfg kannst du dann in der Tabelle con_template_conf das zugrunde liegende Template ermitteln

Code: Alles auswählen

$sql = 'SELECT idtpl
        FROM ' . $cfg['tab']['tpl_conf'] . '
        WHERE (idtplcfg=' . $idtplcfg . ')';
Mit der jetzt ermittelten idtpl kannst du in der con_template den Template-Namen und das ID des Layouts ermitteln

Code: Alles auswählen

$sql = 'SELECT idlay, name
        FROM ' . $cfg['tab']['template'] . '
        WHERE (idtpl=' . $idtpl . ')';
Und mit der ermittelten idlay kannst du dann in der con_lay den Namen des Layouts ermitteln

Code: Alles auswählen

$sql = 'SELECT name
        FROM ' . $cfg['tab']['lay'] . '
        WHERE (idlay=' . $lay . ')';
Natürlich lässt sich das alles auf eine Abfrage mit verknüpften Tabellen reduzieren, aber gerade bei großen Datenmengen dauert eine Abfrage über vielen Tabellen länger als einzelne kurze Abfragen.

Um rauszufinden, welche Variablen vorliegen (zumindest in den Konfigurations-Arrays), kannst du diese per var_dump() ausgeben lassen (am besten in ein pre-Tag)

Code: Alles auswählen

echo '<pre>'; var_dump($cfg); echo '</pre>';
Konfigurationseinstellungen von Contenido

Code: Alles auswählen

echo '<pre>'; var_dump($cfgClient); echo '</pre>';
Konfigurationseinstellungen des/der Mandanten

Gruß
René

Re: Gibt es eine Variable die das verwendete Layout-Template

Verfasst: Fr 16. Mär 2012, 10:13
von woddel
1000 Dank!

Genau sowas wollte ich wissen.
Außerdem ist die Antwort schön übersichtlich und hilft sicher auch anderen weiter.

Schönen Gruß

Woddel