Seite 1 von 2

Smarty fehlt

Verfasst: Mi 23. Okt 2013, 19:50
von rethus
Ich habe 4.9 neu installiert. Alles lief sauber durch, und der Screen mit Link ins Front und Backend erscheint.
Rufe ich diese auf, hab ich nur eine weiße Seite.

Die Logs verraten mir:

Code: Alles auswählen

[23-Oct-2013 20:34:31] PHP Fatal error:  Class 'cSmartyBackend' not found in /html/contenido/plugins/smarty/classes/class.smarty.backend.php on line 24
Ansonsten keine weiteren Fehlermeldungen.

Re: Smarty fehlt

Verfasst: Mi 23. Okt 2013, 20:24
von rethus
Nach einem Umschalten des Webspace auf 5.3 und zuruck auf 5.2 gehts nun soweit, dass ich mich anmelden kann.
Die Konsol des Browsers zeigt nun aber, dass er wohl Probleme hat einige Seiten aufzurufen:
Das äußert sich darin, dass die Startseite des BE leer is.Statt dessen erhalte ich fast überall eine JS-Alertbox mit ner Meldung:

Code: Alles auswählen

could not generate Translations
Im Firebug steht an der Stelle dann ein Internal Server Error 500.

Re: Smarty fehlt

Verfasst: Mi 23. Okt 2013, 21:43
von frederic.schneider_4fb
Die Smarty-Klassen sind Bestandteil des Smarty-Plugins. Plugins können im Backend unter Administration -> Plugin Manager verwaltet werden. Kannst Du bitte für das Smarty-Plugin die "Execution-Order" nach oben setzen? Sprich: Rechts bei den Pfeilen das Plugin nach oben einstellen. Hat das einen positiven Effekt auf Dein Problem?

Re: Smarty fehlt

Verfasst: Mo 4. Nov 2013, 16:48
von rethus
Danke für deine Antwort. Smarty steht bereits ganz oben:

Hier mal ein Screeny mit der Fehlermeldung die zu dem Translate-Error führt

Übrigens, gleicher Fehler auch bei de main.php :

Code: Alles auswählen

.....contenido/main.php?area=mycontenido&frame=4&contenido=mpdhq6504fo8rv2u69ufs8d60j6k4om2

Re: Smarty fehlt

Verfasst: Mo 4. Nov 2013, 18:16
von rethus
Die Startseite "Übersicht" ist ja auch leer (ist mir bei der Analyse aufgefallen).

Hie fragt er in der klasse class.backend.php folgendes ab:

Code: Alles auswählen

SELECT b.name AS name, b.code AS code, b.relevant as relevant_action, a.relevant as relevant_area 
FROM con_area AS a, con_actions AS b 

WHERE a.name = 'mycontenido' AND b.idarea = a.idarea AND a.online = '1'
Ein Blick in die DB verrät, dass in der Tabelle con_actions kein Eintrag zu der ID-Verbindung von con_area (ID 42) besteht.

Wie gesagt, die Installation ist brandneu vor der Contenido-Page geladen. Ist das ein bekannter BUG?

Re: Smarty fehlt

Verfasst: Mo 4. Nov 2013, 18:44
von xmurrix
Hallo rethus,

kannst du herausfinden, was da den Serverfehler 500 verursacht?
...Ein Blick in die DB verrät, dass in der Tabelle con_actions kein Eintrag zu der ID-Verbindung von con_area (ID 42) besteht. ...
Manche Bereiche haben keine besondere Logik oder sind nicht sicherheitsrelevant in Bezug auf Zugriffberechtigung des aktuellen Benutzers. Daher
ist es durchaus möglich, dass es zu einem Bereich (area) keine Aktion (action) gibt, also keine Aktion zu 'mycontenido'.
...Nach einem Umschalten des Webspace auf 5.3 und zuruck auf 5.2 gehts nun soweit, dass ich mich anmelden kann...
Welche Version genau läuft nun auf dem Server? CONTENIDO hat als Mindestvoraussetzung die 5.2.3.

Vielleicht steht etwas in der errorlog.txt, das Aufschluss über das Problem gibt.

Gruß
xmurrix

Re: Smarty fehlt

Verfasst: Mo 4. Nov 2013, 19:01
von rethus
Also, hab nun die DB komplett gelöscht, und nochmal das setup gestartet.

Gleiche Ergebnis.
Doch nun finde ich auch was in der errorlog.txt:

Code: Alles auswählen

[04-Nov-2013 17:39:00] PHP Warning:  Invalid argument supplied for foreach() in /html/meineDomain_de/contenido/classes/class.systemtest.php on line 1140
[2013-11-04 17:39:24] Warning: "Database failure: 1146 (Table 'usr_p107194_7.con_mod_translations' doesn't exist) - /setup/index.php?c=db&step=21 SELECT * FROM `con_mod_translations` WHERE idlang = 1 AND idmod = 39
" at reportHalt() [class.db.driver.handler.php(977)]
	reportHalt() called in file class.db.driver.handler.php(949)
	halt() called in file class.db.driver.handler.php(677)
	query() called in file class.module.filetranslation.php(136)
	saveTranslations() called in file class.upgrade.job.0002.php(59)
	_convertModulesToFile() called in file class.upgrade.job.0002.php(130)
	_execute() called in file class.upgrade.job.abstract.php(113)
	execute() called in file class.upgrade.job.main.php(186)
	_processUpgradeJobs() called in file class.upgrade.job.main.php(35)
	_execute() called in file include.db.controller.php(130)
	include() called in file index.php(49)

[04-Nov-2013 17:39:24] PHP Warning:  Database failure: 1146 (Table 'usr_p107194_7.con_mod_translations' doesn't exist) - /setup/index.php?c=db&step=21 SELECT * FROM `con_mod_translations` WHERE idlang = 1 AND idmod = 39
 in /html/meineDomain_de/contenido/includes/functions.general.php on line 1301
[2013-11-04 17:39:24] Warning: "Database failure: 1146 (Table 'usr_p107194_7.con_mod_translations' doesn't exist) - /setup/index.php?c=db&step=21 next_record called with no query pending.
" at reportHalt() [class.db.driver.handler.php(977)]
	reportHalt() called in file class.db.driver.handler.php(949)
	halt() called in file class.db.driver.handler.php(695)
	nextRecord() called in file class.module.filetranslation.php(145)
	saveTranslations() called in file class.upgrade.job.0002.php(59)
	_convertModulesToFile() called in file class.upgrade.job.0002.php(130)
	_execute() called in file class.upgrade.job.abstract.php(113)
	execute() called in file class.upgrade.job.main.php(186)
	_processUpgradeJobs() called in file class.upgrade.job.main.php(35)
	_execute() called in file include.db.controller.php(130)
	include() called in file index.php(49)

[04-Nov-2013 17:39:24] PHP Warning:  Database failure: 1146 (Table 'usr_p107194_7.con_mod_translations' doesn't exist) - /setup/index.php?c=db&step=21 next_record called with no query pending.
 in /html/meineDomain_de/contenido/includes/functions.general.php on line 1301
[2013-11-04 17:39:24] Warning: "Database failure: 1146 (Table 'usr_p107194_7.con_mod_translations' doesn't exist) - /setup/index.php?c=db&step=21 SELECT * FROM `con_mod_translations` WHERE idlang = 2 AND idmod = 39
" at reportHalt() [class.db.driver.handler.php(977)]
	reportHalt() called in file class.db.driver.handler.php(949)
	halt() called in file class.db.driver.handler.php(677)
	query() called in file class.module.filetranslation.php(136)
	saveTranslations() called in file class.upgrade.job.0002.php(59)
	_convertModulesToFile() called in file class.upgrade.job.0002.php(130)
	_execute() called in file class.upgrade.job.abstract.php(113)
	execute() called in file class.upgrade.job.main.php(186)
	_processUpgradeJobs() called in file class.upgrade.job.main.php(35)
	_execute() called in file include.db.controller.php(130)
	include() called in file index.php(49)

[04-Nov-2013 17:39:24] PHP Warning:  Database failure: 1146 (Table 'usr_p107194_7.con_mod_translations' doesn't exist) - /setup/index.php?c=db&step=21 SELECT * FROM `con_mod_translations` WHERE idlang = 2 AND idmod = 39
 in /html/meineDomain_de/contenido/includes/functions.general.php on line 1301
[2013-11-04 17:39:24] Warning: "Database failure: 1146 (Table 'usr_p107194_7.con_mod_translations' doesn't exist) - /setup/index.php?c=db&step=21 next_record called with no query pending.
" at reportHalt() [class.db.driver.handler.php(977)]
	reportHalt() called in file class.db.driver.handler.php(949)
	halt() called in file class.db.driver.handler.php(695)
	nextRecord() called in file class.module.filetranslation.php(145)
	saveTranslations() called in file class.upgrade.job.0002.php(59)
	_convertModulesToFile() called in file class.upgrade.job.0002.php(130)
	_execute() called in file class.upgrade.job.abstract.php(113)
	execute() called in file class.upgrade.job.main.php(186)
	_processUpgradeJobs() called in file class.upgrade.job.main.php(35)
	_execute() called in file include.db.controller.php(130)
	include() called in file index.php(49)

[04-Nov-2013 17:39:24] PHP Warning:  Database failure: 1146 (Table 'usr_p107194_7.con_mod_translations' doesn't exist) - /setup/index.php?c=db&step=21 next_record called with no query pending.
 in /html/meineDomain_de/contenido/includes/functions.general.php on line 1301
[04-Nov-2013 17:39:34] PHP Parse error:  syntax error, unexpected ':' in /html/meineDomain_de/contenido/classes/class.ajax.php on line 350
[04-Nov-2013 17:39:36] PHP Parse error:  syntax error, unexpected ':' in /html/meineDomain_de/contenido/classes/class.ajax.php on line 350
[04-Nov-2013 17:42:52] PHP Parse error:  syntax error, unexpected ':' in /html/meineDomain_de/contenido/classes/class.ajax.php on line 350
[04-Nov-2013 17:42:53] PHP Parse error:  syntax error, unexpected ':' in /html/meineDomain_de/contenido/classes/class.ajax.php on line 350
In der ajax.php Klasse befindet sich dies in Zeile 350:

Code: Alles auswählen

$modulecheck = getSystemProperty("system", "modulecheck") ? :true;
Eine solche Tabelle gibt es in der DB nicht, weil sie wohl (warum auch immer) nicht während der installation angelegt wird.
Da scheint schon was bei der Installation schief zu laufen.

Re: Smarty fehlt

Verfasst: Mo 4. Nov 2013, 19:09
von xmurrix

Code: Alles auswählen

..._convertModulesToFile() called in file class.upgrade.job.0002.php(130)...
Der Code, zu dem Fehler sollte nur bei einem "Update" ausgeführt werden.

Denn nur bei einem Update, versucht das Setup die Modulübersetzungen von der 4.8er Reihe von der Datenbank auf das Filesystem zu portieren.

Hast du etwa eine frühere 4.9 gehabt und machst gerade ein Update auf die neueste 4.9?

Gruß
xmurrix

Re: Smarty fehlt

Verfasst: Mo 4. Nov 2013, 19:48
von rethus
Ne, hatte zuerst über das Setup das update versucht, dann DB gelöscht und install neu ausgeführt.

Re: Smarty fehlt

Verfasst: Mo 4. Nov 2013, 21:12
von homtata
Die Zeile

Code: Alles auswählen

$modulecheck = getSystemProperty("system", "modulecheck") ? :true;
sieht aber auch unvollständig aus, da scheint zwischen dem Fragezeichen und dem Doppelpunkt die if-then-Bedingung zu fehlen - kann das evtl. die Ursache sein?

Re: Smarty fehlt

Verfasst: Di 5. Nov 2013, 00:13
von xmurrix
Ja, die Zeile sieht ungewöhnlich aus, die Variable $modulecheck bekommt immer den Wert der als "wahr" interpretiert werden kann.
Sieht nach einem Bug aus.

Ändere doch die Zeile in

Code: Alles auswählen

$modulecheck = ("true" === getSystemProperty("system", "modulecheck"));
dann sollte es richtig interpretiert werden.

Gruß
xmurrix

Re: Smarty fehlt

Verfasst: Di 5. Nov 2013, 13:20
von soniccc
danke euch. teste contenido 4.9.2 gerade, hatte auch ständig die Meldung mit - could not generate Translations -. hab im ordner contenido - classes die class.ajax.php korrigiert, jetzt gehts scheinbar. Normale Installation mit Demomandant und Inhalten. Apache/2.2.22 - php version 5.2.17 - dbsql 5.5.28

Re: Smarty fehlt

Verfasst: Do 7. Nov 2013, 16:20
von rethus
Me too. Thanx. Damit ist das Translation-Problem gelöst, bleibt nur noch das Problem, dass die Übersichtsseite nach dem Login nicht funzt.

Fehler:

Code: Alles auswählen

/contenido/main.php?area=mycontenido&frame=4&contenido=efo75u0mggs9uv2b7igcm4h5jn2bt14k 500 (Internal Server Error) 
Es ist aber NUR der Tab Übersicht, die anderen Beiden Tabs auf der Startseite gehen.

Re: Smarty fehlt

Verfasst: Do 7. Nov 2013, 17:53
von dominik.ziegler
Werden hier irgendwelche Einträge in das Error Log geschrieben? Internal Server Error deutet meistens darauf hin, dass PHP einen Fehler verursacht hat und mit Fatal Error abgebrochen ist.

Re: Smarty fehlt

Verfasst: Fr 8. Nov 2013, 12:39
von rethus
Irgendwie hat er jetzt erstmal das Problem, dass er production und Staging nicht auseinander halten kann (http://forum.contenido.org/viewtopic.php?f=92&t=34660), da beim Test gerade das BE nicht mehr geht, und nur noch der Fehler geworfen wird:

Code: Alles auswählen

PHP Warning:  mkdir() [<a href='function.mkdir'>function.mkdir</a>]: Datei oder Verzeichnis nicht gefunden in /html/contenido/plugins/smarty/classes/class.smarty.frontend.php on line 89
PHP Fatal error:  Wrong parameters for Exception([string $exception [, long $code ]]) in /html/contenido/classes/exceptions/class.exception.php on line 51
Eine Kontrollausgebe in der Smarty-Klasse zeigt, dass er hier im LIVE die Pfade von DEV hat. Also versucht er ein Verzeichnis /home/projekte/bimbambum/blahblah/cms/cache/templates_c anzulegen, obwohl die Pfade auf dem Server /html/web1/ sind.
Ich finde allerdings nicht, wo er sich die anders herholen könnte als aus dem DEV-Config-Zweig.