Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 18. Juli 2013 23:08
- rolwalca
- kennt CMS/ms
- Registriert: 27. April 2011
- Beiträge: 105
[GELÖST] Backend: Seite lässt sich nicht editieren
Hallo zusammen,
ich bekomme folgende Fehlermeldung wenn ich im Backend Seiten editieren möchte:
Fatal error: Call to a member function TemplateId() on a non-object in....../plugins/function.stylesheet.php on line 56
in der function.stylesheet.php steht in Zeile 56:
$template_id=$content_obj->TemplateId();
if (isset($params["templateid"]) && $params["templateid"]!="") {
$template_id=$params["templateid"];
}
Stimmt der Eintrag nicht? Was tun?
Offline
#2 18. Juli 2013 08:00
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] Backend: Seite lässt sich nicht editieren
function.stylesheet.php
Welche CMS Version?
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#3 18. Juli 2013 08:10
- rolwalca
- kennt CMS/ms
- Registriert: 27. April 2011
- Beiträge: 105
Re: [GELÖST] Backend: Seite lässt sich nicht editieren
1.11.7
Offline
#4 18. Juli 2013 09:47
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Backend: Seite lässt sich nicht editieren
Müsste bei 1.11.7 nicht function.cms_styleheet.php verwendet werden?
In der Template also {cms_stylesheet}
Deine function.stylesheet.php scheint noch von CMSMS 1.9.4.3 zu sein!
Beitrag geändert von Klenkes (18. Juli 2013 09:51)
Offline
#5 18. Juli 2013 10:32
- rolwalca
- kennt CMS/ms
- Registriert: 27. April 2011
- Beiträge: 105
Re: [GELÖST] Backend: Seite lässt sich nicht editieren
Ich habe kürzlich ein Update durchgeführt. Wahrscheinlich von der 1.9.4.3 auf die aktuelle Version.
Danach tauchten auch kurzzeitig Probleme mit der fehlenden Zeitzonenangabe in der config.php auf.
(Link)
Offline
#6 18. Juli 2013 10:41
- rolwalca
- kennt CMS/ms
- Registriert: 27. April 2011
- Beiträge: 105
Re: [GELÖST] Backend: Seite lässt sich nicht editieren
Ja stimmt tatsächlich. Im Template stand noch {stylesheet} statt {cms_stylesheet}.
Jetzt läuft´s Vielen Dank.
Müsste das bei einem Upgrade nicht automatisch geändert werden? Egal, ich schreib´s mir hinter die Ohren.
Offline
#7 18. Juli 2013 11:04
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Backend: Seite lässt sich nicht editieren
Müsste das bei einem Upgrade nicht automatisch geändert werden?
Deine Templates must du schon selber durchgehen und nachschauen.
Aber eine Warnung des Updatescripts wäre sicherlich eine gutes Feature gewesen.
Offline
#8 18. Juli 2013 11:36
- rolwalca
- kennt CMS/ms
- Registriert: 27. April 2011
- Beiträge: 105
Re: [GELÖST] Backend: Seite lässt sich nicht editieren
Was mich wundert: obwohl nur {stylesheet} im Template stand hat es im Frontend einwandfrei funktioniert.
Also hat er die CSS-Datei ja doch irgendwie gefunden.
Nachtrag (vielleicht hilft´s jemandem): Natürlich musste ich nicht nur {stylesheet} durch {cms_stylesheet} im Template ersetzen sondern in der CSS-Datei auch noch für die Hintergrundbilder:
[== url(uploads/images.... ==]
durch
url([[root_url]]/uploads/images...
Offline
#9 18. Juli 2013 12:58
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] Backend: Seite lässt sich nicht editieren
Was mich wundert: obwohl nur {stylesheet} im Template stand hat es im Frontend einwandfrei funktioniert.
Also hat er die CSS-Datei ja doch irgendwie gefunden.
Um das Paradoxe an dieser Sache zu verstehen, musst Du einfach nur verstehen, dass es einen Unterschied zwischen der Verarbeitung des Seitentemplates im Frontend und im Backend gibt. Bei CMSms < 1.11 war dieser Unterschied sogar gravierend. Das Template wurde im Backend überhaupt nicht verarbeitet. Man hat lediglich nach {content ...} gesucht, um die Editor-Felder für die Inhaltsblöcke anzuzeigen. Das war's dann auch schon. Nix Smarty. Dadurch waren aber auch keine verschachtelten Templates möglich.
Ab CMSms 1.11 wird Smarty aber auch im Backend verwendet, um die Inhaltsblöcke auszulesen. D.h. das komplette Template wird beim Bearbeiten einer Seite von Smarty ganz normal kompiliert. Dadurch werden auch Plugins wie z.B. {stylesheet} im Template ausgelöst. Aber im Backend gibt es nicht alle Variablen wie im Frontend. Im Backend gibt es z.B. im Template kein {$content_obj}, weshalb Seiten, in deren Template ungeprüft auf diese Variable zugegriffen wird - weil sie ja im Frontend immer vorhanden war und das Backend bisher damit nichts zu tun hatte - ebenfalls nicht mehr bearbeitet werden können. Die Funktion cms_utils::get_current_content() gibt im Backend außerdem immer NULL zurück anstelle des Inhaltsobjektes. Da die alte Stylesheet-Funktion aber auf dieses Objekt zugreifen will, ohne zu prüfen, ob es überhaupt verfügbar ist (war ja bisher nie nötig - im Frontend ist schließlich immer ein Content-Object, sonst wären wir garnicht erst dabei, dessen Template zu verarbeiten und das Stylesheet zu laden), kommt es zu einem Fehler. Aber eben nur im Backend.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#10 18. Juli 2013 16:22
- rolwalca
- kennt CMS/ms
- Registriert: 27. April 2011
- Beiträge: 105
Re: [GELÖST] Backend: Seite lässt sich nicht editieren
Danke für die ausführliche Erklärung.
Offline
Seiten: 1