moziloCMS Supportforum

moziloCMS => Hier klemmt es! => Thema gestartet von: marusti am 25. Juli 2018, 10:12:51

Titel: Umlaute in Kategorie
Beitrag von: marusti am 25. Juli 2018, 10:12:51
Es gab noch ein weiteres Problem welches auf Github gemeldet wurde von lichtbaendiger

ZitatHallo 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
Titel: Re: Umlaute in Kategorie
Beitrag von: optikorakel 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);
}