Update 4.8.15 auf 4.9.8 -> Frontend leer. Mehr Infos inside

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Khuri
Beiträge: 2
Registriert: Mi 23. Sep 2015, 09:18
Kontaktdaten:

Update 4.8.15 auf 4.9.8 -> Frontend leer. Mehr Infos inside

Beitrag von Khuri »

Hallo,

ich habe versucht ein Contenido 4.8.15 auf 4.9.8 zu aktualisieren.
Das System selbst ist nicht von mir und ich weiß leider auch nichts über die Vorgeschichte (den alten Programmierer erreicht man nicht mehr...)

Das Update lief erfolgreich, das Backend läuft. Das Frontend leider nicht. Ebenfalls gehen die "Editor"-Seiten bzw. Vorschau von Artikeln im Backend nicht.
Systembereinigung durchgeführt.
Systemintegrität sagt: alles okay.

Ich habe drei Dinge versucht:
Versuch 1:
Zuerst habe ich alle /cms Daten aus dem alten System übernommen, da gibt es eine Fehlermeldung:

Code: Alles auswählen

[23-Sep-2015 10:26:35] PHP Fatal error:  Call to undefined function page_open() in XXXXXXX\cms\front_content.php on line 110
Gut, da fehlt wohl eine alte Funktion.

Versuch 2:
In der Aktualisierungsanleitung stand aber auch die Dateien im /cms Root durch die neuen zu ersetzen, also habe ich das gemacht.

Da gibts dann nur noch weißen Adler im Schneesturm.
Die Logdatei wirft keinen Fehler beim aufrufen des Frontend!

Ruft man den Editor im Backend eines Artikels auf, gibt es folgenden Fehler:

Code: Alles auswählen

[23-Sep-2015 10:15:40] PHP Fatal error:  Class 'Template' not found in XXXXXXX\contenido\includes\include.con_editcontent.php(499) : eval()'d code on line 14

Versuch 3:
Ein neues Contenido 4.9.8 aufsetzen (läuft mit Beispielseite), und dann NUR die Unterordner von /cms der alten Seite dorthin kopiert.
Ergebnis: weißer Adler im Schneesturm.



Zurück zu Versuch 2, dem neuen CMS mit alten /cms Unterordnern aber neuen Root-Dateien:
In der /cms/data/config/production/config.php alle $frontend_debug auf "true" zu setzen bringt leider auch keinen Unterschied.

Im Backend -> Style -> Module gibt es u.a. 150 Module mit dem Namen "Text 1" bis "Text 150", die anscheinend alle nur Text rendern:

Code: Alles auswählen

if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}

$tpl->reset();
$tpl->set('s', 'text', "CMS_HTML[17]");
$tpl->generate('templates/text_html.html');
Daneben gibt es noch ein paar wenige andere Module z.B. für Menügenerierung.

Da es keine Fehlermeldungen gibt, was wäre die beste Strategie zur Fehlersuche?
Ich probiere als nächstes bei den Modulen den Code auszukommentieren um die Problemquellen von dieser Seite aus zu minimieren.
Für hilfreife Tipps und Tricks wäre ich allerdings sehr dankbar! :)
frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Update 4.8.15 auf 4.9.8 -> Frontend leer. Mehr Infos ins

Beitrag von frederic.schneider_4fb »

Guten Morgen,

das Problem mit den Fehlermeldungen im Frontend liegt daran, dass einige Funktionen aus Version 4.8 nicht mehr in Version 4.9 verfügbar sind. So heißt es z. B. nicht mehr "Template", sondern "cTemplate". Bitte berücksichtige unsere Aktualisierungsanleitung 4.8 auf 4.9: https://docs.contenido.org/display/COND ... .8+auf+4.9
Eine Aktualisierung von der Version CONTENIDO 4.8 ist nicht innerhalb weniger Minuten durchgeführt!

In der Version 4.9 stehen viele alte Klassen nicht mehr zur Verfügung und somit kann die Funktionalität Ihrer Website beeinträchtigt werden. Eine Übersicht der technischen Änderungen finden Sie in der Änderungsübersicht.
Es müssen vor allem Module und ggf. auch Plugins überprüft und ggf. angepasst werden.

P. S.: Wir empfehlen ausdrücklich das Update von der aktuellsten 4.8-Version auf 4.9. Das heißt von 4.8.15 auf 4.8.20 und von dort auf 4.9.8.
Frederic Schneider
Entwickler bei der four for business AG
Khuri
Beiträge: 2
Registriert: Mi 23. Sep 2015, 09:18
Kontaktdaten:

Re: Update 4.8.15 auf 4.9.8 -> Frontend leer. Mehr Infos ins

Beitrag von Khuri »

Danke für die generelle Info.
Mit dem cTemplate habe ich die Seite größenteils wieder zum laufen bekommen.

Leider fehlte für die Menügenerierung eine brauchbare Dokumentation (in der Änderungslog steht für alle damals verwendeten Funktionen nur "Use cCategoryHelper instead" für die ich wiederrum keine Dokumentation finden konnte).
Aus der Analyse der Klasse und dessen Funktionen habe ich mir dann das Menü zusammen bauen können, wundere mich da allerdings über die Rückgabe von "getSubCategories". Ist es beabsichtigt das im Array "item" als Ausgabe die komplettes Objekt zurückgegeben wird?

Für Interessierte, über folgenden Code habe ich dann das Menü bauen können (entnommen des "navigation_main" Moduls der neuen Beispielseite):

Code: Alles auswählen

$rootIdcat = getEffectiveSetting('navigation_main', 'idcat', 1);
$depth = getEffectiveSetting('navigation_main', 'depth', 3);

// get category tree
$categoryHelper = cCategoryHelper::getInstance();
$categoryHelper->setAuth(cRegistry::getAuth());
$tree = $categoryHelper->getSubCategories($rootIdcat, $depth);
$filter = create_function('cApiCategoryLanguage $item', 'return $item->get(\'idcat\');');
$path = array_map($filter, $categoryHelper->getCategoryPath(cRegistry::getCategoryId(), 1));
Dann über eine Schleife $tree auslesen lassen.
Antworten