Mam problem z nowym IPB. Na forum mam duże i małe litery oraz polskie znaki diakrytyczne. Uzyskałem je modyfikując plik core.php.
Polskie znaki tworzą się bez problemu, gorzej już z ich parsowaniem.
Po usunięciu funkcji $text = mb_strtolower($text, IPS_DOC_CHAR_SET); - linki zwyczajnie się sypią tzn. nie działają url z polskimi znakami. Z tą funkcją działają, ale oczywiście wielkość liter jest ignorowana.
Spróbowałem to zamienić funkcją:
mb_convert_encoding
rawurlencode (wcześniej działało na starszych wersjach IPB)
Niestety bez rezultatu.
Próbowałem znaleźć w takim razie błąd w routerze skryptu i doszedłem do edycji pliku publicOutput, linia 2087:
/* Do we need to encode? */
if ( IPS_DOC_CHAR_SET != 'UTF-8' )
{
$seoTitle = urlencode( $seoTitle );
}
$replace = str_replace( '#{__title__}', $seoTitle, $this->seoTemplates[ $_template ]['out'][1] );
$url = preg_replace( $this->seoTemplates[ $_template ]['out'][0], $replace, $url );
Wydaje mi się, że w tym miejscu tkwi problem. Macie pomysł czym zastąpić obie funkcje bądź, gdzie jeszcze może kryć się odniesienie do kontroli zapytania url? Ewentualnie czym jeszcze mogę zastąpić mb_strtolower, ale np. dla mb_strtoupper również pojawia się błąd więc bugu szukałbym w routerze.