Umlaute in Kategorie

  • 1 Antworten
  • 249 Aufrufe
*

Offline marusti

  • Administrator
  • Mitglied
  • 261
Umlaute in Kategorie
« am: 25. Juli 2018, 10:12:51 »
Es gab noch ein weiteres Problem welches auf Github gemeldet wurde von lichtbaendiger

Zitat
Hallo Mozilo Entwickler

Wenn ich ein Umlaut im Kategorienamen habe wird nur die erste Inhaltsseite angezeigt. Sobald man eine weitere Inhaltsseite auswählt wird die erste Kategorie und Inhaltsseite angezeigt.
Das liegt wahrscheinlich am mod_rewrite, denn wenn man mod_rewrite ausschaltet funktionieren alle Inhaltsseiten der Kategorie.

https://github.com/mozilo/mozilo2.0/issues/23

*

Offline optikorakel

  • Mitglied
  • 2
Re: Umlaute in Kategorie
« Antwort #1 am: 26. Oktober 2018, 18:00:54 »
Ich habe die Lösung gefunden. Das Problem tritt nur bei einer verschlüsselten Verbindung auf. Bei einer Unverschlüsselten nicht.
Dann wird der übergebene modrewrite String nicht richtig in Cat und Page aufgeteilt.
Ich habe da noch etwas in die Funktion makeGET eingefügt. Jetzt funktioniert es mit meinem Stratoserver.

function makeGET($syntax_catpage) {
    global $CatPage;
    $valuearray = explode('/', $syntax_catpage);
    # wenn page oder in cat / enthalten ist
    if(count($valuearray) > 0) {
        for($i = 1;$i < (count($valuearray) + 1);$i++) {
            $cat = implode('/',array_slice($valuearray, 0,$i));
            $page = implode('/',array_slice($valuearray, $i));
            if($CatPage->exists_CatPage($cat,$page))
            {
                return array($cat,$page);
            }
            elseif(strlen($page) == 0 and $CatPage->exists_CatPage($cat,false))
            {
                return array($cat,false);
            }
        }
        # mal schauen ob wir wenigstens nee gültige cat haben
        for($i = count($valuearray);$i > 0;$i--) {
            $cat = implode('/',array_slice($valuearray, 0,$i));
            $page = implode('/',array_slice($valuearray, $i));
            if($CatPage->exists_CatPage($cat,false))
            {
                return array($cat,$page);
            }
        }
    }
   
    $slashpos=strpos(implode("/",$valuearray),"/");
    if($slashpos===false)
        {
           
        }
    else
        {
            $cat=substr(implode("/",$valuearray),0,$slashpos);
            $page=substr(implode("/",$valuearray),$slashpos-strlen(implode("/",$valuearray))+1);
            return array($cat,$page);
        }
    return array(implode("/",$valuearray),false);
}