Seite 1 von 1

Variable (T_THEME_Path) wird nicht aufgeloest

Verfasst: 25.03.2010 17:29
von harambee
Hallo,

ich hatte mein Problem schon am Ende der Diskussion viewtopic.php?f=73&t=199766&start=10 aufgefuehrt, aber da gehoert es nur noch so halb zum Thema und wird vermutlich auch kaum noch gelesen. Da ich zudem glaube, dass das aktuelle Problem auch eher in die Rubrik "Administration und Benutzung" gehoert, hoffe ich mal, dass ich keinen Rueffel bekomme, wenn ich hier ein neues Thema eroeffne.

Worum geht es:

Aktuell ist mein Forum so eingestellt, dass Aenderungen an Stylesheets in der Datenbank abgelegt werden. (im ACP under Themes --> Details). Das war bei mir die Anfangseinstellung im Forum und wie ich in der Zwischenzeit gemerkt habe, ist das ziemlich unpraktisch bei Updates auf hoehere phpbb-Versionen, weil dann meine Aenderungen in den Stylesheets beim automatischen Update teilweise nicht uebernommen werden. Also moechte ich das umstellen und habe auch schon gelernt, dass ich das nur kann, wenn ich in der Datei theme.cfg den Eintrag "parse_css_file = 1" auf "parse_css_file = off" aendere. Das habe ich getan und grundsaetzlich funktioniert die Umstellung jetzt auch.

Aber:
Wenn ich mit der Einstellung "Stylesheets in Datenbank ablegen" in den persoenlichen Bereich meines Forums, z.B. in den Bereich "private Nachrichten" gehe, habe ich in der linken Navigationsbar (also dort wo oben "Neue Nachricht erstellen" und darunter als zweiter Menupunkt "PN-Entwürfe verwalten" steht) eine orange Hintergrundfarbe wie gewuenscht. Diese Hintergrundfarbe wird nicht durch eine Farbeinstellung, sondern durch das Hintergrundbild bg_menu.gif erzeugt. Dieses Hintergrundbild liegt im Verzeichnis ./styles/prosilver/theme/images und ist in stylesheet.css (oder auch im Theme editor) ueber die Variable (T_THEME_Path)/images/bg_menu.gif kodiert und mit der Einstellung "Stylesheets in Datenbank ablegen" wird das auch richtig aufgeloest zu ./styles/prosilver/theme/images/bg_menu.gif.

Gehe ich jetzt aber ins ACP und aendere meine Einstellung in "Stylesheets in Dateisystem ablegen", sieht die Navigationsbar in meinem persoenlichen Bereich anders aus, sie hat naemlich einen grauen Hintergrund. Mit Firebug habe ich herausgefunden, dass in diesem Fall die Variable (T_THEME_Path) nicht aufgeloest wird. Dort konnte ich naemlich lesen:
background_image: url("{T_THEME_PATH}/images/bg_menu.gif"), waehrend es vor der Umstellung richtigerweise hiess:
background_image: url("{./styles/prosilver/theme/images/bg_menu.gif")
Das gilt genauso fuer andere Bilder im persoenlichen Bereich, so wird z.B. das Bild
background_image: url("./styles/prosilver/imageset/de/button_pm_new.gif") gefunden und der Button fuer eine neue PN wird angezeigt, wenn ich mit der Option "Stylesheets in Datenbank ablegen" arbeite, schalte ich aber um auf "Stylesheets in Dateisystem ablegen", sucht das System nach dem Hintergrundbild
background_image: url("{T_THEME_PATH}/images/button_pm_new.gif"), findet dieses natuerlich nicht und zeigt nur noch einen Textlink fuer eine neue PM an.

Ich hoffe, meine Problemdarstellung ist nachvollziehbar, auch wenn ich kein Fachmann fuer die wichtigen Begriffe bin. Hat jemand eine Idee, was da los sein kann? Kann ich irgendwo pruefen, wie welche Variablen gestzt sind? Wo werden denn solche Variablen fuer den persoenlichen Bereich gesetzt? Was koennte mir sonst helfen?

Danke schon mal

Harambee

Re: Variable (T_THEME_Path) wird nicht aufgeloest

Verfasst: 25.03.2010 18:01
von Frank1604
Das liegt an der parse_css_file. Wenn das auf OFF gesetzt ist, parst er logischer Weise die Variablen nicht mehr.

Re: Variable (T_THEME_Path) wird nicht aufgeloest

Verfasst: 25.03.2010 18:19
von harambee
Das macht Sinn, aber warum funktioniert es dann mit der Einstellung "stylesheets in Datenbank ablegen" ? Und wichtiger: Wie loese ich denn jetzt das Problem? Wenn ich parse_css_file auf on stelle, kann ich die Aenderungen am stylesheet nicht im Dateisystem ablegen und dann muss ich bei jedem Update von phpbb alles neu machen. Das kann ja kaum die Loesung sein!? Und wie machen das denn alle anderen, warum hat denn niemand dieses Problem?

Etwas ratlos ;-)

Harambee

P.S.: Folgende Idee haette ich, bin aber nicht sicher, ob sie funktioniert: Wenn ich die Einstellung von "stylesheets in Datenbank ablegen" auf "stylesheets in Dateisystem" umstelle, wird sofort eine neue stylesheets.css geschrieben. Das hatte ich bei den bisherigen updates nicht gemacht, also gab es auch keine aktualisierte stylesheets.css . Besteht also Hoffnung, dass ein Update nach einmaligem Umstellen und folgendem "wieder zurueck stellen" erfolgreicher verlaeuft als meine bisherigen Updates? Wenn das so ist, sieht es fast so aus, als muesste diese Diskussion wieder nach Installation, Update und Konvertierung verschoben werden :D

Re: Variable (T_THEME_Path) wird nicht aufgeloest

Verfasst: 25.03.2010 19:46
von Frank1604
harambee hat geschrieben:Wenn ich die Einstellung von "stylesheets in Datenbank ablegen" auf "stylesheets in Dateisystem" umstelle, wird sofort eine neue stylesheets.css geschrieben.
Nein, dann wird nur meines Wissens die schon bestehende Datei verwendet. Alle gemachten Änderungen sind dann weg.

Lasse es doch einfach auf Dateisystem, und führe die Änderungen direkt in den Dateien durch. Dann gehen die auch nicht verloren.

Re: Variable (T_THEME_Path) wird nicht aufgeloest

Verfasst: 25.03.2010 20:04
von harambee
Frank1604 hat geschrieben:
harambee hat geschrieben:Wenn ich die Einstellung von "stylesheets in Datenbank ablegen" auf "stylesheets in Dateisystem" umstelle, wird sofort eine neue stylesheets.css geschrieben.
Nein, dann wird nur meines Wissens die schon bestehende Datei verwendet. Alle gemachten Änderungen sind dann weg.

Lasse es doch einfach auf Dateisystem, und führe die Änderungen direkt in den Dateien durch. Dann gehen die auch nicht verloren.
Dass eine neue Datei geschrieben wird, ist ziemlich sicher, das sehe ich ja am Speicherdatum der Datei. Dass mit dem Durchfuehren der Aenderungen in den Dateien ist ja schoen und gut, aber das Forum ist ja eigentlich fertig und alles nochmals an den Dateien machen, scheint ja irgendwie unnoetig. Wenn ich aber Recht habe, dass meine Aenderungen im Theme-Editor beim Umstellen auf "stylesheets in Dateisystem" direkt geschrieben werden, dann sollte ich aber doch die Aenderungen auf etwas indirekte Weise in der Datei gemacht haben und damit muesste beim naechsten Update alles in Ordnung sein oder. Ob wirklich die aktuelle Version aus dem Theme-Editor in der neuen stylesheets.css landet, kann und werde ich pruefen.

Harambee

Re: Variable (T_THEME_Path) wird nicht aufgeloest

Verfasst: 26.03.2010 03:47
von franki
Hallo harambee

Das Ändern von Codezeilen per ACP ist mM nach eine schlechte Lösung.

Die Änderungen müssten bei einem Forenupdate hinfällig sein, da nur die Dateien geprüft werden
und nicht die Einträge in der Datenbank.

Die sicherste Methode ist immer das Einfügen von Änderungen in den Dateien selber.