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: 1915
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: 1915
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: 1851
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.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

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

achiboy
Beiträge: 138
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: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, 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
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

achiboy
Beiträge: 138
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: 1915
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.

maschmiede
Beiträge: 20
Registriert: Mo 21. Jan 2019, 09:59
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von maschmiede » Mi 13. Feb 2019, 13:49

Gibt es eigentlich einen neuen Stand bezüglich der PimPluginViewNavSub Klasse (contenido/plugins/pim/classes/view/class.pimpluginview.navsub.php)? Ist dazu bereits irgendwas in einer neuen Version abzusehen?

Unser Bugfix in "_getPluginNavigation":

Code: Alles auswählen

// Initializing founded variable
$founded = "";
			
// HOT BUGFIX - needs to be an array
$founded = array();

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von xmurrix » Mi 13. Feb 2019, 14:31

Hallo maschmiede,

in der neuesten Version des class.pimpluginview.navsub.php sind dort folgende Zeilen drin:

Code: Alles auswählen

            // Initializing founded array
            $founded = array();
Es entspricht also eurem Bugfix. Allerdings ist das neue CONTENIDO Release noch nicht draußen.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

emergence
Beiträge: 10641
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Re: Probleme mit dem Plugin Manager

Beitrag von emergence » Di 19. Feb 2019, 13:36

achiboy hat geschrieben:
Fr 6. Jul 2018, 06:46
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?
in dem fall so...

Code: Alles auswählen

eval("reset(\$$var); \$k = key(\$$var); \$l = gettype(\$$var);");
*** make your own tools (wishlist :: thx)

Antworten