Seite 1 von 1

Smarty Fehler

Verfasst: Sa 29. Dez 2018, 10:07
von langwebdesign
Hallo,

ich habe ein sporadisches Problem im Frontend des Testmandanten (aus dem git develop branch)

Unabhängig davon welche Seite ich aufrufe, kommt irgendwann dieser Fehler im errorlog:

Code: Alles auswählen

[2018-12-29 08:42:02] Warning: "cSmartyFrontend __construct Parameter 2 invalid." at include_once() [config.plugin.php(31)]
	include_once() called in file functions.includePluginConf.php(50)
	require_once() called in file move_articles.php(30)
	include() called in file pseudo-cron.inc.php(454)
	runJob() called in file pseudo-cron.inc.php(175)
	include_once() called in file functions.api.general.php(112)
	cInclude() called in file include.front_content.php(61)
	include() called in file front_content.php(43)

[29-Dec-2018 08:42:03 UTC] PHP Fatal error:  Uncaught cException: Smarty singleton not instantiated yet. in ...\contenido\contenido\plugins\smarty\classes\class.smarty.frontend.php:126
Stack trace:
#0 ...\contenido\contenido\includes\frontend\include.front_content.php(756) : eval()'d code(51): cSmartyFrontend::getInstance()
#1 ...\contenido\contenido\includes\frontend\include.front_content.php(756): eval()
#2 ...\contenido\cms\front_content.php(43): include('C:\\Users\\steph\\...')
#3 {main}
  thrown in ...\contenido\contenido\plugins\smarty\classes\class.smarty.frontend.php on line 126
Und die Seite bleibt fast leer:

Code: Alles auswählen

<!DOCTYPE html>
<!-- standard layout -->
<html lang="de">
    <head>
<base href="http://localhost:8000/cms/" />
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1" />
        <title>Sitemap - Sitemap</title><link rel="stylesheet" type="text/css" href="//localhost:8000/cms/cache/content_sitemap_html.css" id="m19" />
        <link rel="stylesheet" type="text/css" href="css/reset.css" />
        <link rel="stylesheet" type="text/css" href="css/main.css" />
        <link rel="stylesheet" type="text/css" href="css/media.css" />
        <link rel="stylesheet" type="text/css" href="css/contenido_backend.css" />
        <!--[if IE 8]>
            <link type="text/css" rel="stylesheet" href="css/ie_8.css" media="all" />
        <![endif]-->
<meta name="generator" content="CMS CONTENIDO 4.10" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<meta name="author" content="Systemadministrator" />
<meta name="description" content="Sitemap" />
<meta name="keywords" content="" />
</head>
    <body>
        <div id="page">
            <div id="header">
                
Der Fehler scheint aus der Zeile 52 der eval.php zu kommen

Code: Alles auswählen

 $clientConfig = cRegistry::getClientConfig(cRegistry::getClientId()); $tpl = cSmartyFrontend::getInstance(); $tpl->assign('href', $clientConfig['path']['htmlpath']); $tpl->display('get.tpl'); ?>
Vielleicht kann das wer fixen?
Wann kann man den mit einer offiziellen nächsten Version rechnen?

Meine Dev Umgebung läuft mit PHP 7.2.13 und dem integrierten Webserver

Stephan

Re: Smarty Fehler

Verfasst: Sa 29. Dez 2018, 10:31
von xmurrix
Hallo langwebdesign,

du musst das Plugin "Smarty Wrapper" im Backend im Plugin Manager installieren und das Plugin aktivieren, sofern es nicht aktiv ist.

Gruß
xmurrix

Re: Smarty Fehler

Verfasst: Sa 29. Dez 2018, 12:18
von langwebdesign
Hallo xmurrix,

das Plugin ist schon installiert und aktiviert.
Der Fehler tritt auch nur ab und zu auf, ohne erkennbares Muster.

Stephan

Re: Smarty Fehler

Verfasst: Sa 29. Dez 2018, 13:15
von Faar
Warum steht da Contenido 4.10 im Quelltext?
Ist die schon rausgegeben worden?

Re: Smarty Fehler

Verfasst: Sa 29. Dez 2018, 13:37
von xmurrix
langwebdesign hat geschrieben:
Sa 29. Dez 2018, 12:18
...das Plugin ist schon installiert und aktiviert.
Der Fehler tritt auch nur ab und zu auf, ohne erkennbares Muster...
Ist das Plugin auch an erster Stelle, so dass es vor anderen Plugins geladen wird, die eventuell auch mit Smarty arbeiten?

Gruß
xmurrix

Re: Smarty Fehler

Verfasst: Sa 29. Dez 2018, 13:42
von langwebdesign
Hi,

@Faar
nein ich bastel mit dem develop Branch vom git Repository, das läuft schon mit PHP 7.

@xmurrix
Jap das Plugin ist ganz oben und der Fehler tritt auch auf der gleichen Seite nur ab und zu auf.

Re: Smarty Fehler

Verfasst: Sa 29. Dez 2018, 13:52
von xmurrix
Habe mir dein Beitrag nochmal angesehen, das Ganze geschieht beim Ausführen der Cronjobs, in move_articles.php wird das Laden der Plugins initialisiert, in der config.plugin.php des Smarty Wrapper Plugins scheint der 2. Parameter in Zeile 29 nicht korrekt gesetzt zu sein.

Code: Alles auswählen

    new cSmartyFrontend($cfg, $cfgClient[$client], true);
Versuche mal am Anfang der contenido/plugins/smarty/includes/config.plugin.php folgende Zeile

Code: Alles auswählen

$client = (isset($client)) ? $client : $load_client;
gegen folgende Zeilen zu ersetzen:

Code: Alles auswählen

$client = cRegistry::getClientId();
$cfgClient = cRegistry::getClientConfig();
@Faar:
Nein, die 4.10 ist nicht draußen, aber es wird anscheinend daran gearbeitet, es zu veröffentlichen.


Gruß
xmurrix

Re: Smarty Fehler

Verfasst: Sa 29. Dez 2018, 13:56
von langwebdesign
Hi xmurrix,

das scheint das Problem zu beheben, konnte den Fehler nicht nochmal reproduzieren.
Kann ich irgendwo sehen ob die Cronjobs ausgeführt wurden?

Danke
Stephan

Re: Smarty Fehler

Verfasst: Sa 29. Dez 2018, 14:22
von xmurrix
langwebdesign hat geschrieben:
Sa 29. Dez 2018, 13:56
...das scheint das Problem zu beheben, konnte den Fehler nicht nochmal reproduzieren.
Kann ich irgendwo sehen ob die Cronjobs ausgeführt wurden?...
Es gibt ein "Cronjobs Overview" Plugin, vielleicht hilft das etwas, um einen Überblick zu bekommen. Allerdings kenne ich dessen genaue Funktionen nicht. Ansonsten gibt es zu jedem Cronjob eine *.job Datei unter data/cronlog/ in der die Zeit (Unix Timestamp) der letzten Ausführung drin steht. Wenn man die *.job Datei manuell löscht, wird der Cronjob beim nächsten Aufruf der Seite ausgeführt.

Im Fall von contenido/cronjobs/move_articles.php scheint das aber anders zu laufen, da wird Code ausgeführt, wenn das PHP Script als CLI-Script läuft, siehe folgende Zeile in der Fehlermeldung:

Code: Alles auswählen

require_once() called in file move_articles.php(30)
Vermutlich läuft das also über einen Crontab-Eintrag. Wenn man Cronjobs über die Crontab ausführt, muss man sicherstellen, dass das Frontend korrekt initialisiert wird. Man sollte also ein Script aufrufen, dass wie cms/front_content.php das Frontend und in Teilen wie contenido/includes/frontend/include.front_content.php das Backend initialisiert und am Ende den gewünschten Cronjob oder alle Cronjobs ausführt.

Gruß
xmurrix

Re: Smarty Fehler

Verfasst: Sa 29. Dez 2018, 17:03
von langwebdesign
Hi,

ein cronjob über crontab kann es nicht sein bin auf Windows und hab auch keine Tasks usw. konfiguriert.
Aber hab wieder was dazu gelernt was ich später noch brauche, die Cron Thematik wird unter https://docs.contenido.org/display/CONDEVE/Cronjob beschrieben.

Zurück zum Problem, wenn ich, ohne deine Anpassung, die "move_articles.php.job" lösche und dann im Frontend irgendwas aufrufe, wird die Datei "move_articles.php.job" wieder erstellt, heißt der Job wurde ausgeführt und der Fehler tritt auf.

Mit deinen Anpassungen funktioniert das ohne Probleme, somit ist das damit gelöst.

Wie kommt das jetzt in den Contenido Code? Kannst du da einen Pull Request losschicken, oder kann ich das sogar selbst?
Aktuell wird anscheinend wirklich an einem release 4.10 gearbeitet, letzte Commits in die Richtung waren am 21.12.

Mal wieder Danke für deine Hilfe
Stephan

Re: Smarty Fehler

Verfasst: Mo 31. Dez 2018, 13:48
von xmurrix
langwebdesign hat geschrieben:
Sa 29. Dez 2018, 17:03
...Mit deinen Anpassungen funktioniert das ohne Probleme, somit ist das damit gelöst.

Wie kommt das jetzt in den Contenido Code? Kannst du da einen Pull Request losschicken, oder kann ich das sogar selbst?
Aktuell wird anscheinend wirklich an einem release 4.10 gearbeitet, letzte Commits in die Richtung waren am 21.12....
Danke für das Feedback.

Ich kann dazu gerne ein Ticket und den nötigen Pull-Request erstellen. Natürlich kannst du das auch gerne machen. Hast du einen Account für issues.contenido.org und git.contenido.org?

Gruß
xmurrix

Re: Smarty Fehler

Verfasst: Di 1. Jan 2019, 11:12
von langwebdesign
Hi,

ne ich hab keinen Account, kannst du das bitte machen?

Stephan

Re: Smarty Fehler

Verfasst: Mi 2. Jan 2019, 00:15
von xmurrix
langwebdesign hat geschrieben:
Di 1. Jan 2019, 11:12
...ne ich hab keinen Account, kannst du das bitte machen?...
Ist erledigt, danke nochmals für das Mitteilen des Fehlers.

Gruß
xmurrix