Bei meiner (derzeit offline via Localhost) genutzten Testumgebung moziloCMS 2.0 Rev. 54 bekomme ich unter PHP 8.1 Fehlermeldungen, wenn ich Eigene Syntaxelemente einsetze, und zwar:
Wenn diese nach dem Syntaxnamen keine Angabe {DESCRIPTION} oder {VALUE} beinhalten.
Beispiel:
In den Einstellungen (eigene Syntax-Elemente anlegen) gebe ich z.B. ein:
kontaktanfrage = Bei weiteren Fragen hierzu nehmen Sie bitte Kontakt mit uns auf.
Wenn ich dann in die Inhaltsseite die Syntax [kontaktanfrage] eintrage, würde ja normalerweise der Text erscheinen ( "Bei weiteren Fragen.... " ). Das tut er auch, allerdings mit Fehlermeldungen:
Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in D:\xampp\htdocs\moz54\cms\Syntax.php on line 848
Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in D:\xampp\htdocs\moz54\cms\Syntax.php on line 860
Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in D:\xampp\htdocs\moz54\cms\Syntax.php on line 877
Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in D:\xampp\htdocs\moz54\cms\Syntax.php on line 884
Dieses Problem erscheint nur unter PHP 8.1 (8.0 nicht getestet), unter PHP 7.4 erscheinen die Fehlermeldungen nicht.
Wenn ich die Benutzersyntax in den Einstellungen modifiziere mit einem "Dummy" (in diesem Falle DESCRIPTION), dann erscheint die Fehlermeldung unter PHP 8.1 nicht. Beispiel:
kontaktanfrage = <span class="{DESCRIPTION}">Bei weiteren Fragen hierzu nehmen Sie bitte Kontakt mit uns auf.</span>
In der Inhaltsseite wird die Syntax dann via [kontaktanfrage=|] eingefügt. Das funktioniert dann auch ohne Fehlermeldungen.
Das heißt also: In der Benutzersyntax (Einstellungen) muss zwingend (!) {DESCRIPTION} oder {VALUE} mit in die Angaben, sonst erscheint die Fehlermeldung.
Kann man da was gegen tun? Meines Erachtens liegt es an PHP 8.1
Zitat von: Thorstn am 26. März 2022, 00:40:20... moziloCMS 2.0 Rev. 54 bekomme ich unter PHP 8.1 Fehlermeldungen, wenn ich Eigene Syntaxelemente einsetze
...
Wenn diese nach dem Syntaxnamen keine Angabe {DESCRIPTION} oder {VALUE} beinhalten.
...
kontaktanfrage = Bei weiteren Fragen hierzu nehmen Sie bitte Kontakt mit uns auf.
Hi Thorstn,
bitte teste mal die unten angehängte neue "Syntax.php"-Datei. Dazu bitte das ZIP-Archvi entpacken und die enthaltene "Syntax.php"-Datei in den Ordner /cms/ kopieren und die dort enthaltene Datei einfach überschreiben.
Wichtig:
Im Webbrowser bitte vor dem Ausprobieren den Webbrowser Cache löschen, sonst klappt das nicht.
Zitat von: Thorstn am 26. März 2022, 00:40:20... Kann man da was gegen tun? Meines Erachtens liegt es an PHP 8.1 ...
Als moziloCMS 1.x entwickelt wurde war unter PHP so ziemlich alles erlaubt ;D
Erst mit PHP 7.x wurde das erste Mal richtig auf saubere Programmierung geschaut, was nun mit jeder neuen PHP 8.x Version immer öfters zum Tragen kommt.
Super, das funktioniert mit der "neuen" Syntax.php!
Vielen Dank :-)
Danke für die Rückmeldung :)
Wir werden das in die aktuelle moziloCMS Version übernehmen.