Probleme mit dem Plugin Manager

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
locotay
Beiträge: 19
Registriert: Mi 4. Jan 2017, 01:10
Kontaktdaten:

Probleme mit dem Plugin Manager

Beitrag von locotay » Mi 4. Jul 2018, 10:10

Hallo Zusammen!

Ich habe gestern ein System von Version 4.9.7 auf die 4.9.12 aktualisiert.
Das Meiste funktioniert auch einwandfrei, allerdings läd der Pluginmanager nichts.
Im Errorlog bekomme ich beim Aufruf folgendes ausgegeben:

Code: Alles auswählen

PHP Deprecated:  The each() function is deprecated. This message will be suppressed on further calls in /html/dev/conte2018/contenido/classes/class.iterator.php on line 81

PHP Fatal error:  Uncaught Error: [] operator not supported for strings in /html/dev/conte2018/contenido/plugins/pim/classes/view/class.pimpluginview.navsub.php:345

Stack trace:
#0 /html/dev/conte2018/contenido/plugins/pim/classes/view/class.pimpluginview.navsub.php(165): PimPluginViewNavSub->_getPluginNavigation('Extras')
#1 /html/dev/conte2018/contenido/plugins/pim/includes/include.right_bottom.php(113): PimPluginViewNavSub->getNavSubentries()
#2 /html/dev/conte2018/contenido/main.php(202): include_once('/html/dev/conte...')
#3 {main}
 thrown in /html/dev/conte2018/contenido/plugins/pim/classes/view/class.pimpluginview.navsub.php on line 345
Ich behaupte einfach mal, dass durch den Fatal Error der weitere Seitenaufbau abgebrochen wird. Da die Dateien aber auf jeden Fall aktuell sind (identisch den Files aus dem 4.9.12er Download) liegt es wohl auch nicht an einer veralteten Verion.
Im Changelog steht für Version 4.9.11, dass Kompatibilität mit PHP 7 besteht – der Server läuft aktuell mit 7.2 – könnte das eventuell das Problem sein? Ansonsten bin ich gern für Ideen offen, wie ich noch an den Fehler herangehen könnte.
stop(); //hammertime!

Faar
Beiträge: 1335
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von Faar » Mi 4. Jul 2018, 10:34

Die 4.9.12 kann PHP 7.0 und die 4.9.7 noch nicht.
PHP 7.2 kann keine Version, wobei die 4.9.12 leicht an PHP 7.2 anzupassen sei... sagte mir ein erfahrener Contenido Entwickler.
Ich behaupte einfach mal, dass durch den Fatal Error der weitere Seitenaufbau abgebrochen wird.
Das machen Fatal Error.

https://blog.jkip.de/php-7-1-operator-n ... r-strings/
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

locotay
Beiträge: 19
Registriert: Mi 4. Jan 2017, 01:10
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von locotay » Mi 4. Jul 2018, 11:03

Faar hat geschrieben:
Mi 4. Jul 2018, 10:34
Die 4.9.12 kann PHP 7.0 und die 4.9.7 noch nicht.
PHP 7.2 kann keine Version, wobei die 4.9.12 leicht an PHP 7.2 anzupassen sei... sagte mir ein erfahrener Contenido Entwickler.
Ja… Da lasse ich mal lieber die Finger von. Nicht nur, weil ich mir nicht sicher bin, ob ich mir das überhaupt zutraue, aber das ist ja dann auch hinfällig, wenn es mal ein Update gibt. (… wobei dann ggf. 7.2 ja unterstützt wird.)
Habe ich da irgendwo einen Hinweis übersehen? Ich hatte eben nur überall gesehen, dass PHP7 unterstützt wird, aber kann auch sein, dass ich einfach blind bin. Ich danke auf jeden Fall für die Info. Dann schau ich mal, dass der Server irgendwie auf die 7.0 kommt. (:
stop(); //hammertime!

Faar
Beiträge: 1335
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von Faar » Mi 4. Jul 2018, 11:34

Es ist wirtschaftlicher Unsinn, immer die neueste Version laufen zu lassen.
PHP7 ist dummerweise ein Sammelbegriff für alle PHP 7 Versionen, aber die Unterschiede von PHP 7.0 zu 7.1 und 7.2 sind nicht marginal, wie bei Deinem fatalen Fehler sichtbar wird.
Siehe dazu auch den Link, denn ich im vorherigen Posting reingesetzt habe.
Da steht genau der Fehler ab 7.1, der bei PHP 7.0 noch kein Fehler ist.

bis 7.0: $dingens[] = 2; // kein Problem

Ab 7.1: $dingens = array();
$dingens[] = 2; // auch kein Problem
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

rethus
Beiträge: 1820
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von rethus » Do 5. Jul 2018, 10:22

@locotay PHP7 würde ich schon empfehlen, aber wie Faar sagt, muss es nicht zwingend die 7.2 sein.
Kann man machen, aber "Living on the edge" ist halt auch Zeitintensiv und daher teuer.

PHP7 würde ich empfehlen, weil sich in Sachen Performance von PHP5 auf PHP7 einiges getan hat (round about 35 -45% soweit ich mich erinnere).
Könntest es natürlich auch mal mit HHVM versuchen, "könnte" noch schneller sein. Ob es kompatibel mit Contenido 4.9.12 ist, weiß ich jedoch aus dem Stehgreif gerade nicht.

Gut wäre in jedem Fall, wenn du dich ran machst, und die PHP7.2 Fehler aus dem System ausräumst (weiß ja nicht wie viele das sind), wäre es cool, wenn du deine Änderungen über nen Pull-Request im Repo auch der Community zur Verfügung stellen würdest.

http://git.contenido.org

Falls du nicht fit bist in Git, kannst du die Dateien sicher hier auch posten.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable - Onlineshops, Hosting, Domains und Webentwicklung
suther.de - Webentwicklung, IT-Service, IT-Beratung, Linux-Administration

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

achiboy
Beiträge: 111
Registriert: Do 26. Aug 2004, 05:05
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von achiboy » Do 5. Jul 2018, 14:16

Ich habe gerade heute von meinem Hosting Provider (Hostpoint) eine E-Mail erhalten, dass sie im August auf PHP 7.2 umstellen.
Was muss ich tun?

Oldperl
Beiträge: 3984
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von Oldperl » Do 5. Jul 2018, 20:42

Servus,

also wer wissen will ob die nächste Version, man munkelt 4.9.13, mehr kann als PHP 7.0, der sollte sich die aktuellste Entwickler-Version aus dem GIT ziehen.
Infos dazu findet man :arrow: viewtopic.php?p=173407#p173407

Gruß aus Franken

Ortwin
*NEU* PHP 7.x Community Draft von CONTENIDO 4.9 auf github
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

achiboy
Beiträge: 111
Registriert: Do 26. Aug 2004, 05:05
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von achiboy » Fr 6. Jul 2018, 06:46

Vielleicht wäre es schon bald ein eigenes Topic wert, um die Erfahrungen und Hinweise für Entwickler zu sammeln, die jetzt dringend ran müssen?

Auf die Schnelle habe ich die folgenden Dateien gefunden, die ohne grossen Aufwand angepasst werden müssen/können/sollen:
- classes\class.htmlparser.php
- classes\class.iterator.php
- classes\class.note.php
- classes\contenido\class.property.php
- includes\include.mycontenido.php
- includes\pseudo-cron.inc.php

Im Git noch nicht behoben ist dieses ziemlich zentrale Sache.
In der classes\class.session.php ist folgende Zeile zu finden:

Code: Alles auswählen

eval("reset(\$$var); \$l = gettype(list(\$k)=each(\$$var));");
Wie kriegt man das ohne "each()" hin?

Faar
Beiträge: 1335
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von Faar » Fr 6. Jul 2018, 09:50

achiboy hat geschrieben:
Fr 6. Jul 2018, 06:46
Im Git noch nicht behoben ist dieses ziemlich zentrale Sache.
In der classes\class.session.php ist folgende Zeile zu finden:

Code: Alles auswählen

eval("reset(\$$var); \$l = gettype(list(\$k)=each(\$$var));");
Wie kriegt man das ohne "each()" hin?
Da hat sich mal jemand aufgegeilt, alles in eine Zeile zu bringen. :shock:

Ich versuchs mal auseinander zu pflücken und zu verstehen:
1. each soll ja durch foreach ersetzt werden können, also ist $var ein Array und vermutlich wird damit jeweils der Wert ausgelesen.
Wäre interessant zu wissen, was in $var steht.

List ist beinahe klar, da wird der Variablen $k der Wert vom Array $var zugewiesen.

gettype() kann ich derzeit nur erahnen, aber eventuell handelt sich es hier um die Erkennung von Contenido-Types wie CMS_HTML

Wenn das so ist, steht dann in $l der Code vom Contenido-Type und nicht mehr der Platzhalter.

Damit man das Array neu auslesen kann, wird ein reset hingesetzt.

Und eval macht ausführbaren Code daraus.

Man müsste das mal in Einzelschritten aufbauen und anzeigen lassen, was in jedem Schritt passiert, damit man sich ein Bild davon machen kann.
Wenn man sieht, was da jeweils drin steht, versteht man am ehesten den Vorgang und kann den nachbauen.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Antworten