Seite 1 von 3

global $templates auslesen

Verfasst: 18.11.2006 05:35
von kolja
guten morgen liebes phpbb forum

ich wollte in der overall_header.php die globale variable $template auslesen,
um damit template-abhängig grafiken zu laden

aber leider bekomme ich bei der echo ausgabe nur: "Object" angezeigt..

wie muss ich damit umgehen damit ich den templatenamen ausgegeben bekomme ??

kolja

Verfasst: 18.11.2006 09:59
von Miriam
Es sollte mich wundern, dass es überhaupt mit dieser Datei geht ---> die heisst nämlich page_header.php.
Oder meinst Du etwa die overall_header.tpl???

$template wird aber durch verschiedene andere Funktionen bereitgestellt. Was möchtest Du denn konkret machen? Das benutzte Template herausfinden?

Verfasst: 18.11.2006 13:39
von kolja
ups..

ich meinte schon die page_header.php

und genau, ich brauce den namen bzw den pfad des templates
(sollte aber das gleiche sein)

kolja

Verfasst: 18.11.2006 15:28
von Miriam
Name und Pfad sind leider nicht das selbe und das gleiche auch nicht. :)

Also die Templatedaten könntest Du herausfinden, indem Du das hier in Deine functions.php einbaust:

finde in functions.php davor füge ein

Code: Alles auswählen

function selected_template () {

         global $db, $board_config, $userdata;

         if (!$board_config['override_user_style']) {
             $style = (!$userdata['user_style']) ? $board_config['default_style'] : $userdata['user_style'];
         }
         else {
             $style = $board_config['default_style'];
         }
         $sql = "SELECT template_name, style_name FROM " . THEMES_TABLE . " WHERE themes_id = '" .$style . "'";
         $result = $db->sql_query($sql);
         $style_data = $array;
         if ($row = $db->sql_fetchrow($result)) {
              $style_data['template_name'] = $row['template_name'];
              $style_data['style_name'] = $row['style_name'];
         }
         return $style_data;
}
Wenn Du also mit

Code: Alles auswählen

$style = selected_template();
die Variablen in einer PHP Datei ausliest (phpBB), dann ist $style['themes_name'] der Name des Template-Verzeichnisses und $style['style_name] der Name des Styles, wie er in der Konfiguration auftaucht.

Verfasst: 18.11.2006 15:50
von kolja
also erstmal ein grosses dankeschön :-)

das ganze funktioniert super :-)

aber schau selbst: www.mona-davinci.de/phpbb

ich werd mich mal heute abend daran machen die grafiken für das andere template einzurichten

kolja

edit oben links steht der name...

Verfasst: 18.11.2006 16:00
von Miriam
Na also, dann schreib' noch in die Topic Überschrift [ereldigt] davor und alle sind zufrieden. :)

Verfasst: 18.11.2006 20:21
von kolja
:oops: :oops: ich muss dir da was gestehen...


das ganze kann ja nur für eingeloggte user funktionieren
und nicht für gäste

da dein code auf die datenbank des users zugreift, nimmt er für gäste
immer den voreingestellten....

ich glaub ich brauche ne lösung auf basis des change_style mods...
bzw ohne db abfrage....

also leider doch noch kein [erledigt]

kolja

Verfasst: 18.11.2006 20:27
von Miriam
Also müssen wir noch den cookie auslesen... Verstehe.
Woher soll ich denn wissen, was Du alles aufgerüstet hast?

Verfasst: 18.11.2006 21:06
von kolja
sorry...

fange auch gerade erst an, das ganze zu verstehen :-)
ich bin ja schon stolz, das ich deinem code ansehe was er macht
und ausschliessen kann das es mit gästen funktioniert.

cookies sagtst du, kann ich die denn abfragen wie ne db ?
(nicht von der syntax, sondern vom prinzip)

aber jetzt ist erstmal samstag abend und wir gehen was feiern

dir und allen anderen wünsche ich noch einen schönen abend

kolja

Verfasst: 18.11.2006 23:00
von Miriam
Doch der Code funktioniert schon mit Gästen.
Da dort der user_style = NULL ist, wird der Standard-Style des Boards genommen. Falls Du einen Style beim Gast (user_id = -1) einträgst, wird der genommen....
Wenn Du diesen Mod eingebaut hast, wird der Style über den Cookie geregelt. Den Inhalt kannst Du über die Cookie Variablen auslesen.