Seite 1 von 1

[gelöst] Kein Editor und keine Artikelvorschau

Verfasst: Sa 17. Aug 2013, 23:09
von Herogarma
Ich habe 4.9 genau nach Vorgabe auf einem lokalen LAMP installiert.
System --> Systemintegrität zeigt mir nur grüne OK-zeichen.
Das Frontend funktioniert tadellos.
Im Backend wird der Frame leer, wenn ich auf einen Artikel Klicke, Editor-Aufruf und Vorschau-Aufruf zeigen ebenfalls nur einen leeren Frame.

##################################################################
Im Errorlog folgende Meldung für den Editoraufruf:

[17-Aug-2013 21:55:49 UTC] PHP Fatal error: Uncaught exception 'cInvalidArgumentException' with message 'Empty user id' in /srv/www/htdocs/VERZEICHNIS/contenido/classes/contenido/class.user.property.php:86
Stack trace:
#0 /srv/www/htdocs/VERZEICHNIS/contenido/classes/contenido/class.user.property.php(68): cApiUserPropertyCollection->setUserId(NULL)
#1 /srv/www/htdocs/VERZEICHNIS/contenido/classes/contenido/class.user.php(989): cApiUserPropertyCollection->__construct(NULL)
#2 /srv/www/htdocs/VERZEICHNIS/contenido/classes/class.effective.setting.php(104): cApiUser->getUserProperty('generator', 'basehref', true)
#3 /srv/www/htdocs/VERZEICHNIS/contenido/includes/functions.general.php(740): cEffectiveSetting::get('generator', 'basehref', 'true')
#4 /srv/www/htdocs/VERZEICHNIS/contenido/includes/frontend/include.front_content.php(558): getEffectiveSetting('generator', 'basehref', 'true')
#5 /srv/www/htdocs/VERZEICHNIS/contenido/external/backendedit/front_content.php(36): include('/srv/www/htdocs...')
#6 {main}
thrown in /srv/www/htdocs/VERZEICHNIS/contenido/classes/contenido/class.user.property.php on line 8

##################################################################
Konfiguration:
CONTENIDO Version 4.9.0
Webserver-Version Apache/2.2.22 (Linux/SUSE)
Installierte PHP-Version 5.3.15
Datenbankserver-Version 5.5.32
PHP-Datenbankerweiterung mysqli

PHP-Einstellungen
date.timezone Europe/Berlin
include_path .:/usr/share/php5:/usr/share/php5/PEAR
memory_limit 128M
upload_max_filesize 8M
post_max_size 38M
max_execution_time 120
max_file_uploads 20
max_input_time 60
sql.safe_mode Deaktiviert
disable_classes nichts deaktiviert
disable_functions nichts deaktiviert
Geladene Erweiterungen:
Core, PDO, Reflection, SPL, SQLite, SimpleXML, apache2handler, bcmath, bz2, calendar, ctype, curl, date, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, json, libxml, mbstring, mcrypt, mhash, mysql, mysqli, mysqlnd, openssl, pcre, pdo_mysql, pdo_sqlite, session, soap, sqlite3, standard, tidy, tokenizer, xml, xmlreader, xmlwriter, zip, zlib
##################################################################

An welcher Stelle kann ich nach der Ursache suchen?

Re: Kein Editor und keine Artikelvorschau

Verfasst: So 18. Aug 2013, 10:56
von xmurrix
Hallo Herogarma,

prüfe doch mal bitte, was genau in cEffectiveSetting::get() passiert (siehe contenido/classes/class.effective.setting.php) passiert.

Wenn der aktuelle Benutzer authentifiziert ist, wird versucht, die Konfiguration ($type = 'generator', $name = 'basehref') des Benutzers auszulesen.

Das passiert in Zeile 103 und ff:

Code: Alles auswählen

        if (self::_isAuthenticated() && isset($contenido)) {
            $value = self::_getUserInstance()->getUserProperty($type, $name, true);
        }
Anscheinend liefert der Aufruf von self::_isAuthenticated() die uid des authentifizierten Benutzers zurück, voraufhin versucht wird, die Konfiguration des Benutzers auszulesen.

In der Funktion cEffectiveSetting::_getUserInstance() wird die Instanz des Benutzerobjektes mit folgender Zeile erstellt:

Code: Alles auswählen

            self::$_user = new cApiUser($auth->auth['uid']);
Dabei sollte der Wert in $auth->auth['uid'] eine ID erhalten, zur der es auch einen Datensatz in der Tabelle con_user gibt.

Du kannst auch die Werte in $auth->auth debuggen, um zu sehen, was da genau drin steht. z. B. mit:

Code: Alles auswählen

echo "<pre>" . print_r($auth->auth, true) . "</pre>";
Folgende globale Variablen werden dabei verwendet:
- $auth: Eine Instanz der cAuth Klasse (siehe contenido/classes/auth/class.auth.php)
- $contenido: Die Backend-Sessionid

Gruß
xmurrix

Re: Kein Editor und keine Artikelvorschau

Verfasst: So 18. Aug 2013, 13:06
von Herogarma
Danke für die ausführliche Antwort. Ich fange an, mich durch das System zu hangeln.
Als Zwischenstand habe ich festgestellt, dass die $auth->auth['uid'] wohl falsch geliefert wird, denn normal sieht sie so aus:
Array
(
[uid] => 48a365b4ce1e322a55ae9017f3daf0c0
[perm] => sysadmin
[exp] => 1376830598
[uname] => sysadmin
)
Bei den Editor-Aufrufen, die fehlschlagen:
Array
(
[uid] => nobody
[perm] =>
[exp] => 2147483647
[uname] => nobody
)
Wo er das herkriegt, bleibt jetzt herauszufinden.
Der Wert wird übrigends nicht dauerhaft geändert. Wenn ich nach erfolglosem Editoraufruf z.B. auf Eigenschaften gehe, dann sind die korrekten Daten wieder in Verwendung.

Re: Kein Editor und keine Artikelvorschau

Verfasst: So 18. Aug 2013, 13:46
von xmurrix
Hallo Herogarma,

bei der Liste mit dem Wert [uid] => nobody handelt es sich um einn Auth-Objekt für einen unauthentifizierten Benutzer.

Eigentlich eigentlich sollte die Prüfung "self::_isAuthenticated()" in contenido/classes/class.effective.setting.php den Wert false zurückliefern, was wohl nicht passiert.

Das muss man mal sich genauer ansehen...

Gruß
xmurrix

Re: Kein Editor und keine Artikelvorschau

Verfasst: So 18. Aug 2013, 15:25
von Herogarma
Auszeit hierfür:
Ich wollte eine Testinstallation bei 1&1 machen und habe festgestellt, dass die PHP-Version nicht reicht.
Jetzt werde ich die anstehenden 2 Websites erstmal mit 4.8.18 installieren und in Ruhe weiterschauen, wo der Hase im Pfeffer liegt.
Ich habe meine lokale LAMP-Installation im Verdacht.

Nachtrag
Nachdem via htaccess die passende PHP-Version vorlag, lief die Installation von 4.9 auf dem Webspace bei 1&1 problemlos durch. Backend und Frontend ok.

Re: Kein Editor und keine Artikelvorschau

Verfasst: Di 29. Okt 2013, 13:38
von AndiB
Ich habe das selbe Problem und wäre für eine Lösung sehr dankbar. Habe bei zwei Projekten versucht, von 4.8.18 auf 4.9.2 upzudaten. Klappt alles, nur sind weder im Frontend noch im Backend (hier: Editor + Vorschau) die Content-Elemente zu sehen. Lediglich der Layout-Rahmen ist sichtbar. Seltsamerweise ist der Content aber da, wenn man auf den neuen Reiter Rohdaten klickt.

Installierte Versionen
CONTENIDO Version 4.9.2
Webserver-Version Apache
Installierte PHP-Version 5.3.27
Datenbankserver-Version 5.0.51a-24+lenny5
PHP-Datenbankerweiterung mysqli

PHP-Einstellungen
date.timezone Europe/Berlin
include_path .:/usr/local/lib/php/
memory_limit 50M
upload_max_filesize 50M
post_max_size 50M
max_execution_time 300
max_file_uploads 20
max_input_time -1
sql.safe_mode Deaktiviert
disable_classes nichts deaktiviert
disable_functions nichts deaktiviert
Geladene Erweiterungen:
Core, PDO, Phar, Reflection, SPL, SQLite, SimpleXML, bcmath, bz2, calendar, cgi-fcgi, ctype, curl, date, dba, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, hash, htscanner, iconv, imap, intl, json, ldap, libxml, mbstring, mcrypt, mhash, mssql, mysql, mysqli, openssl, pcntl, pcre, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, posix, session, shmop, soap, sockets, sqlite3, standard, sysvsem, sysvshm, tidy, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib

Im errorlog wurden in der /contenido/includes/functions.general.php die drei Dateien
/contenido/classes/class.frontend.permissions.php
/contenido/classes/class.frontend.groups.php
/contenido/classes/class.frontend.users.php
vermisst. Die gibt es doch in 4.9.x gar nicht mehr? Habe sie aus 4.8.18 hochgeladen, aber das führt zu einem Folgefehler:
PHP Fatal error: Class 'DB_Contenido' not found in /.../contenido/includes/frontend/include.front_content.php(633) : eval()'d code on line 169

Was kann ich tun?
Grüße + Danke!

Re: Kein Editor und keine Artikelvorschau

Verfasst: Di 12. Nov 2013, 00:53
von salsa
Ich habe das gleiche Problem: kein Editor - keine Vorschau! Nichts im Errorlog dazu.

Re: Kein Editor und keine Artikelvorschau

Verfasst: Di 12. Nov 2013, 16:57
von dominik.ziegler
Habe sie aus 4.8.18 hochgeladen, aber das führt zu einem Folgefehler:
PHP Fatal error: Class 'DB_Contenido' not found in /.../contenido/includes/frontend/include.front_content.php(633) : eval()'d code on line 169
Dateien der Version 4.8 sind mit 4.9 nicht kompatibel. Wahrscheinlich nutzt ein Modul oder ein Plugin eine veraltete Funktionalität, die in dieser Version nicht mehr zur Verfügung steht und bricht deswegen ab.

Re: Kein Editor und keine Artikelvorschau

Verfasst: Mi 13. Nov 2013, 01:14
von salsa
dominik.ziegler_4fb hat geschrieben:
Wahrscheinlich nutzt ein Modul oder ein Plugin eine veraltete Funktionalität, die in dieser Version nicht mehr zur Verfügung steht und bricht deswegen ab.
Wie soll man denn raus finden, welches Modul der "Übeltäter" ist? Etwa in der DB die Templates nach einander löschen?

Re: Kein Editor und keine Artikelvorschau

Verfasst: Mi 13. Nov 2013, 11:01
von dominik.ziegler
Bei einem Upgrade von 4.8 werden zahlreiche Module die Übeltäter sein. Eine Upgrade-Anweisung für Entwickler gibt es unter der folgenden Adresse:
:arrow: https://docs.contenido.org/display/COND ... .8+and+4.9

Re: Kein Editor und keine Artikelvorschau

Verfasst: Sa 16. Nov 2013, 23:35
von salsa
dominik.ziegler_4fb hat geschrieben:Bei einem Upgrade von 4.8 werden zahlreiche Module die Übeltäter sein. Eine Upgrade-Anweisung für Entwickler gibt es unter der folgenden Adresse:
:arrow: https://docs.contenido.org/display/COND ... .8+and+4.9
Immerhin eine Antwort - Danke. Aber ich bin kein Experte (obwohl ich hier früher auch einiges voran gebracht habe). Enthält der Beispielmandant von 4.8.18 vielleicht auch "Übeltäter"? Was nützen mir die vielen Warnhinweise in der Anleitung? Ich hätte gerne eine brauchbare Anleitung, Schritt für Schritt für das Upgrade vom Beispiel 4.8.18 nach 4.9.2; denn die Zwischenstationen sind ja nicht mehr erreichbar und waren ja auch nicht "final".

Re: Kein Editor und keine Artikelvorschau

Verfasst: So 17. Nov 2013, 00:56
von dominik.ziegler
Die Module des Beispielmandanten sind mit der Version 4.9 nicht kompatibel und müssen ebenfalls portiert werden, wenn sie im eigenen Mandanten eingesetzt werden.

Re: Kein Editor und keine Artikelvorschau

Verfasst: So 17. Nov 2013, 16:05
von salsa
dominik.ziegler_4fb hat geschrieben:Die Module des Beispielmandanten sind mit der Version 4.9 nicht kompatibel und müssen ebenfalls portiert werden, wenn sie im eigenen Mandanten eingesetzt werden.
In der Aktualisierungsanleitung steht "Ärger während der Aktualisierung? Sollten sie Probleme mit der Aktualisierung haben kann ihnen die Community im Support-Forum unter forum.contenido.org bei der Beantwortung ihrer Fragen helfen."
Dass da etwas nicht kompatibel ist, ist mir klar. Für Layout und Module gibt es ja auch die Möglichkeit der Synchronisation - das funktioniert. Aber was ist denn überhaupt kompatibel? Was ist portabel - und wie? Ich kann die Inhalte übertragen; nur werden sie nicht angezeigt. Und auch kein neuer Artikel wird nach dem "Upgrade" gezeigt; d.h. ich bekomme den Editor nicht ans Laufen. Ich frage auch nicht zu einem "eigenen" Mandanten sondern nach der Übertragung des Beispielmandanten von 4.8.18 nach V 4.9.2. Das muss doch irgendwie gehen, sonst wäre die Aktualisierungsanleitung doch eine Farce. Was muss ich konkret tun?

Re: Kein Editor und keine Artikelvorschau

Verfasst: So 17. Nov 2013, 17:46
von homtata
Hallo salsa,

nein, das geht so tatsächlich nicht, und dennoch ist das Uprade keine "Farce".
Das Upgrade bringt Contenido auf die neueste Version, und die alten Inhalte an sich bleiben ja auch erhalten, das ist erstmal das Wichtigste. Die Seite muss inhaltlich ja nicht neu aufgebaut werden.
Dennoch hat sich im Core (nach Jahren, und ich sag auch mal "endlich") bei diesem Versionssprung erheblich viel getan, so dass Klassen- und Funktionsaufrufe in den Modulen angepasst werden müssen. Gelegentlich ist es ratsamer, komplette Module auszutauschen (inbesondere bei den Navigationen) und entweder die HTML-Ausgabe von Smarty anzupassen oder das CSS anzupassen.
Dieser Schritt ist jetzt einfach mal nötig.
Weil in so gut wie keinem alten Modul die Aufrufe mehr auf die neue Version passen (vor allem x= new Template() ), muss man sich ein wenig mit den Änderungen beschäftigen, wenn es um das Upgrade einer alten Version auf die CON 4.9 geht. Da kommt man einfach nicht drumrum. Wenn ich ein Haus entkerne, alle Wände verschiebe und die Türen neu einsetze, kann ich auch nicht durchs neue Haus gehen und sagen "Aber hier MUSS mein Wohnzimmer sein, es war schon immer da" ;-)

Am besten nach dem Upgrade das Layout komplett verschlanken bis auf die einfachsten DIV-Container, dann immer wieder den erzeugten Quellcode anschauen, wo die Code-Erstellung abbricht. Das entsprechende Modul so lange nachbearbeiten, bis es grundsätzlich angezeigt wird und nicht mehr klemmt. Nächstes Modul ins Layout und weiter gehts.

Und wenns NUR um den Beispielmandanten geht: Alte Version deinstallieren und gleich 4.9 drauf.
Die "Sychronisation" meint NICHT die Synchronisation von 4.8 auf 4.9 oder sowas, sondern eine interne Sychnronisation zwischen Serverdateien und Datenbank.

Ob Funktions- und Klassenaufrufe veraltet sind, steht unter
https://docs.contenido.org/display/COND ... .8+and+4.9

Und dann gibts zur Hilfe noch den CodeAnalysator:
http://www.contenido.org/de/cms/Downloa ... 973-3.html

LG

Re: Kein Editor und keine Artikelvorschau

Verfasst: So 17. Nov 2013, 17:47
von dominik.ziegler
Wie ich bereits geschrieben habe, sind die Module des Beispielmandanten der Version 4.8 nicht mit dem Core von der Version 4.9 kompatibel. Die bisherigen Inhalte werden beim Update zwar übernommen, aber es ist nicht möglich, die alten Module weiter zu nutzen, da sie Fehlermeldungen werfen werden.
Aus diesem Grund sind auch die Artikel im Frontend und im Backend-Editor nicht sichtbar - der Code, auf dem die 4.8er Module basieren, existiert nicht mehr und kann deshalb nicht ausgeführt werden.

Edit: homtata hat das etwas ausführlicher dargelegt. ;)