Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

Fehler wegen nicht lateinischer Buchstaben in Kategorien- und Inhaltsseitennamen

Begonnen von Tesla, 24. Januar 2023, 06:29:09

« vorheriges - nächstes »

Tesla

Hallo,
ich habe bemerkt, dass ich während der Nutzung einige Mozilo-Syntax-Elemente (nämlich Seite, Kategorie, Datei (alle befinden sich oben links, wenn man eine Inhaltsseite bearbeitet)) oft unlogische Fehlermeldungen bekomme, anders gesagt, Mozilo CMS erkennt die Kategorie- und Inhaltsseitennamen und Dateien unter diesen Kategorien nicht immer.


Lokalserver, PHP 8.0.25, Linux, Apache (LAMP server), letzte Mozilo Rev., frische Installation.

Vor etwa 8-9 Monate hatte ich viele unlösbare Probleme mit Armenischer Sprache unter PHP 8.1, PHP 8.0 funktioniert mit anderen Sprachen besser, aber heute bemerke ich einige Probleme mit einigen Syntax-Funktionen, wenn ich andere nicht lateinische Buchstaben in Kategorie- und Inhaltsseitennamen schreibe.

Gibt es eine Lösung? Woran das liegt? Falsche Nutzung, Fehleinstellungen/Kodierung oder ein "Bug" in letzter Revision von Mozilo?


-Tesla+

Tesla

schon vielleicht 10+ mal habe ich viel geschrieben, neue Screenshots bereitet und alles verloren... Datenbankfehler, andere Fehler... Forum funktioniert leider nicht normal. Um etwas zu schreiben, braucht man viele Stunden, es gibt <10% Wahrscheinlichkeit, dass einmal ich keine Fehler sehen werde: 10-12 Versuche und nur einmal erfolgreich...Bild_2023-01-24_193347664.png
-Tesla+

laborix

Zitat von: Tesla am 24. Januar 2023, 06:29:09... Vor etwa 8-9 Monate hatte ich viele unlösbare Probleme mit Armenischer Sprache unter PHP 8.1, PHP 8.0 funktioniert mit anderen Sprachen besser, ...
Ersetze in der /cms/DefaultFunc.php die Zeilen 31 - 33:

            if(function_exists("mb_convert_encoding")) {
                $value = @mb_convert_encoding($value,CHARSET,@mb_detect_encoding($value,"UTF-8,ISO-8859-1,ISO-8859-15",true));
            }

mit diesen Änderungen:

            if (function_exists("mb_convert_encoding")) {
                static $is_utf8 = null;
                if ( ! isset( $is_utf8 ) ) {             
                  $is_utf8 = in_array( CHARSET, array( 'utf8', 'utf-8', 'UTF8', 'UTF-8' ), true );
                }
       
                if ($is_utf8 === false) {
                  $value = mb_convert_encoding($value, CHARSET, mb_list_encodings());
                } else {

                  $isUTF8 = 0;
                  $isUTF8 = preg_match('//u', $value);
                  if ($isUTF8 == 0) {
                    $value = mb_convert_encoding($value, CHARSET, mb_list_encodings());             
                  }
                }

            }

und achte darauf, das moziloCMS seine Inhaltsseiten im UTF-8 Format ausliefert.

Tesla

Danke Laborix. Ich habe oben genannte Zeilen mit Deinem Kode ersetzt, Server neu gestartet, im Browser die Seite mit CTRL+F5 aktualisiert (so nutzt nicht cache). Ob in der Zukunft diese Änderung hilfreich wird, weiß ich nicht, aber derzeit bekomme ich dieselbe Fehler. Wenn noch Ideen, würde mich auf eine Möglichkeit diese Fehler zu beheben freuen. 

Schreibe in der Inhaltsseite folgendes, bekomme wie im Screenshot.
-Tesla+

Tesla

Update:

Laborix, für den Kode muss ich Dir verdanken. Zuerst hat neuer Kode bei mir nicht funktioniert. Die ganze Nacht habe ich viel getestet. Ergebnis und Bericht unten:

Besonderheit meiner Webseiten = ich nutze auch langswitch, MenuSubs, MenuSubs Mobile Plugins. Das heißt, ich habe 4 mal für jede Sprache den Kode geändert und mit Deinem Kode ersetzt. Es funktionierte nicht. Dann hatte ich eine Idee, den Text aller Inhaltsseiten in Textdokument zu kopieren, alle Inhaltsseiten der nicht lateinischen Sprachen komplett löschen  (in "Kategorien" Ordner löschen und dann erneut dort kopieren war nicht hilfreich), erneut Inhaltsseiten mit dieselber Architektur, aber mit ein bisschen unterschiedliche Namen erstellen, dann unbenennen und frühere Namen geben, erneut Syntax Seite und Kategorie nutzen , nur dann war endlich hilfreich! Es bleibt bei mir morgen die andere Sprache zu testen, in Armenischer Sprache funktioniert jetzt Dein Kode, aber noch nicht alle Fehler konnte ich beheben. Wenn ich Syntax "Seite" oder "Kategorie" nutze und im Menü Seiten oder Kategorien wähle, die ich für MenuSubs Plugin nutze, dann funktioniert Dein Kode manchmal normal, manchmal gar nicht. Wie ich bemerke, komplett neu erstellte Submenü -Kategorien und Inhaltseitennamen mit Armenisch, die kurz sind, z.B. eine oder wenige Buchstaben, erkennt, aber lange oder mittlere Wörter erkennt dort nicht. Derzeit kann ich noch nicht endgültig identifizieren, woran das liegt, warum oft Submenu nicht erkennt. Muss ich etwas auch in Plugin ändern? Wenn Du noch Ideen hast, scheibe bitte, werde testen.

Nochmal Danke für den Kode, jetzt ist es viel besser, als bevor, mir bleibt eine Lösung zu finden, dass MenuSubs Inhaltsseiten und Kategorien immer erkennt. 

Grüße
Tesla
-Tesla+

Tesla

Update #2.  Endlich weiß ich, woran das liegt.
Im Fall MenuSubs ist es egal in welcher Sprache Inhaltsseitennamen sind und wie lange die Namen sind. Hauptsache=kein Leerzeichen! Wenn dort in Kategorie- oder Inhaltsseitennamen ein Leerzeichen gibt (auch wenn das auf Englisch ist), erkennt diese Inhaltsseiten nicht. Mit Leerzeichen in MenuSubs Kategorien- und Inhaltseitennamen  funktioniert Submenü normal, aber Syntax-Funktionen  "Seite" und "Kategorie" funktionieren dann nicht. Temporär werde ich alle Leerzeichen dort mit "_" ersetzen (Schönheitsfehler...). Wenn noch Ideen, wie man dieses Problem überwinden kann, bitte schreiben, werde auf eine Lösung mich freuen.
-Tesla+

Tesla

Update 3: nach mehr Versuche weiß ich jetzt mein Problem genauer.

Probleme mit Mozilo-Syntax bereiteten mir nicht einfache Leerzeichen, sondern doppelte Leerzeichen in Kategorie- und Inhaltsseitennamen. Ich hatte vor kompletter Löschung aller Inhaltsseiten Texte und auch Seitennamen kopiert, dann nach Neuerstellung diese zurück kopiert und eingefügt, deshalb hatte ich auch doppelte Leerzeichen zwischen Wörter kopiert und hatte keine Ahnung, dass dort doppelte Leerzeichen sind und diese zum Problem führen können. Egal ob doppelte Leerzeichen in gewöhnlichem Menü oder im MenuSubs Submenü sind: in beiden Fällen führen das zum Problem mit Syntax- Elemente (Seite, Kategorie, Datei, usw). Heute habe ich versucht mit 1 Leerzeichen überall, wo ich möchte. Nach Kode-Änderung bemerke ich kein Problem mehr mit anderen Sprachen, und Mozilo-Syntax funktioniert mit 1 Leerzeichen gut (auch in MenuSubs). Derzeit ist mein Problem gelöst!

Wenn jemand bemerkt, dass seine Inhaltsseiten, Kategorien, Dateien nach Syntax-Nutzung nicht anerkannt sind, würde ich empfehlen nach doppelten Leerzeichen in Seiten- und Kategorienamen suchen: wenn gefunden,  mit 1 Leerzeichen ersetzen. +oben gegebene Kode ändern, wenn es um nicht lateinische Sprachen geht.
-Tesla+