page_header.php --> Wo includet bei Fehlermeldungen/Infos

Alles zu Styles, Templates, Icons und Smilies für phpBB 2.0, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

page_header.php --> Wo includet bei Fehlermeldungen/Infos

Beitrag von Saint »

Moin,

der Stand:
Ich mache gerade phpBB zu einer Art "CMS light" für meine Bandkollegen. Dafür habe ich ein Board im Verzeichniss "board" installiert. Die Bandwebsite läuft im Domainroot und bekommt über modifizierte page_header.php (page_header_es.php), simple/overall_header.tpl ihr Aussehen.

Mein Problem:
Wo, beziehungsweise wie wird die page_header.php eingebunden, wenn zum Beispiel die message_die ausgegeben wird, wenn z.B. kein Beitrag existiert?
Bei mir wird dann anstatt der page_header_es die page_header eingebunden und demzufolge das Stylesheet und die Backgroundimages nicht gefunden: Guckst Du hier - sieht doof aus

Ich würde mich über jeden Tip freuen, die Sache macht mich langsam wahnsinnig.
Besten Dank schon mal und Gruß aus dem sauigen Hamburg. :grin:
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Beitrag von D@ve »

Also Du solltest beachten, dass nicht immer die page_header sondern oft auch die simple_header benutzt wird.
Die page_header.php wird normalerweise in allen ausführbaren (also diejenigen die im Hauptverzeichnis liegen und nicht includiert werden) php-Dateien eingebunden. Ist eigentlich recht leicht zu finden sieht in etwa so aus:

Code: Alles auswählen

include($phpbb_root_path . 'includes/page_header.'.$phpEx);
Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

Hi Dave,

danke für die Antwort. Das hab ich jedoch schon berücksichtigt.
In z.B. meiner news.php (modifizierte viewtopic.php) include ich:

Code: Alles auswählen

include($phpbb_root_path . 'includes/page_header_es.'.$phpEx);
In der page_header_es binde ich die

Code: Alles auswählen

'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header_es.tpl' : 'simple_header_es.tpl')
Und die simple/overall_header_es beinhalten die richtigen Pfade "board/templates/subBlack/" anstatt "templates/subBlack/".

Bei z.B. dem

Code: Alles auswählen

message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
greift er sich aber definitiv die unmodifizierte page_header. Nachgewiesen, indem ich in die (unmodifierte) overall_header irgendeinen meta Tag reinkopiert habe. (Zack - im Quelltext zu sehen)

Und das kapier ich nicht.

*edit*
Ach ja, um diesen Fragen schon zu beantworten:
Alle Dateien, die im Domainroot liegen bekommen als root_path:

Code: Alles auswählen

$phpbb_root_path = 'board/';
Alle Funktionen parieren wunderbar. Nur bei Informationen oder Fehlern greift er sich die falsche page_header.
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Beitrag von D@ve »

Irgendwie verstehe ich nicht was Du genau vorhast... Warum machst Du es Dir eigentlich so kompliziert und benutzt verschiedene page-Header?? Mach das doch alles einfach in EINE page_header.tpl rein. Ich binde auch verschiedene Headerdateien abhängig von der Domain mit der drauf zugegriffen wird ein. Ich hab einfach in der page_header stehen:

Code: Alles auswählen

if (preg_match("/pa/i", $domain))
{
     $template->set_filenames(array(
             'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header_pa.tpl' : 'simple_header.tpl')
     );
}

elseif (preg_match("/sucht/i", $domain))
{
     $template->set_filenames(array(
             'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header_musuba.tpl' : 'simple_header.tpl')
     );
}

elseif (preg_match("/musiker/i", $domain))
{
     $template->set_filenames(array(
             'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header_musiker.tpl' : 'simple_header.tpl')
     );
} else {
           $template->set_filenames(array(
                   'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl')
           );
       }
Und hab dann einfach mehrere overll_header.tpl mit unterschiedlichem Suffix.
Was die Pfade angeht würde ich alles in den normalen Boardordnern lassen.

Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

D@ve hat geschrieben:Irgendwie verstehe ich nicht was Du genau vorhast... Warum machst Du es Dir eigentlich so kompliziert und benutzt verschiedene page-Header...
...Was die Pfade angeht würde ich alles in den normalen Boardordnern lassen.
Hey Dave, nochmals danke für die Antwort! :grin:
Also: Ich will die Bandwebsite auf jeden Fall im Domainroot und nicht im board/ belassen, weil ich die Website (die einzelne Bereiche mit eigenen Templates aus dem Board zieht) strikt vom Forum trennen möchte. Im Forum sind nur die Bandmitglieder registriert (Neuanmeldungen wird es nicht geben) und die sollen das Forum als CMS nutzen. Das Board soll also parallel dazu für die Bandmitglieder, in wenig veränderter Form, erreichbar sein. Die Idee dahinter ist, daß ich eine Administrationsoberfläche (in Form des Boardes) haben möchte, und nicht mehr einzelne für's Gästebuch, Links, News, Fotogalerie, Demos, etc.

Es funktioniert ja auch alles wunderbar und war auch nicht so der fürchterliche Akt. Aber wieso bindet er bei Fehlermeldungen/Hinweisen den normalen page_header ein, obwohl es in der news.php keinen einzigen Verweis darauf gibt, sondern nur auf die page_header_es??
Also muss ja für die message_die an irgendeiner anderen Stelle der Verweis auf die page_header erfolgen. Wo?
Wenn mir das jemand beantworten könnte wäre ich richtig glücklich.

Ich wünsche Euch ein schönes Wochenende!
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

Niemand eine Idee?

Oder ist die Frage zu unverständlich oder zu doof?
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Beitrag von D@ve »

So sorry, hab gerade nichtviel Zeit. Hab aber jetzt verstanden, was Du meinst. phpBB nutzt nicht die normale die() funktion zur Ausgabe der Fehlermeldungen sondern ein eigenes Equivalent dazu. Das ganze nennt sich message_die() und die Funktion ist unter root/includes/functions.php deklariert.
Dort wird bei einer Fehlermeldung auch der "normale" Header geladen (schau mal irgendwo bei Zeile 620 rum).

Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

Woah! Jetzt hast Du mich in die richtige Richtung gestoßen!
Dave, Du bist mein Lieblingsdave des Jahres! :D

Also:
Der Pfad, über den der overall_header bei "message_die()" Nachrichten eingebunden wird, ist:

viewtopic.php --> common.php --> functions.php --> page_header.php --> overall_header.tpl

Dann beibt das auch hübsch in der Seite (bin natürlich mit den Templates noch nicht fertig).

Sehr schön, vielen Dank nochmal und noch einen entspannten Sonntag!


Gruß

Saint
Antworten

Zurück zu „phpBB 2.0: Styles, Templates und Grafiken“