Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#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  smile 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

rolwalca schrieb:

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:

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