Příznaky tak, jak jsem je již popsal jsou jasné (doslovná citace) :
Zkoušel jsem na localhostu upgrade na 1.0.9. a stáhl jsem si odsud češtinu a funguje mi pouze utf-8. Když dám jiné (cp1250 nebo iso) a vlezu v adminu do SITE-language manager, píše mi hlášky níže. Poradíte někdo proč?:
Warning: xml_parser_create() [function.xml-parser-create]: unsupported source encoding "windows-1250" in C:\Program Files\xampp\htdocs\joomla\includes\domit\xml_domit_lite_pars er.php on line 1728
Warning: xml_set_object(): supplied argument is not a valid XML Parser resource in C:\Program Files\xampp\htdocs\joomla\includes\domit\xml_domit_lite_pars er.php on line 1735
Warning: xml_set_element_handler(): supplied argument is not a valid XML Parser resource in C:\Program Files\xampp\htdocs\joomla\includes\domit\xml_domit_lite_pars er.php on line 1736
Warning: xml_set_character_data_handler(): supplied argument is not a valid XML Parser resource in C:\Program Files\xampp\htdocs\joomla\includes\domit\xml_domit_lite_pars er.php on line 1737
Warning: xml_set_default_handler(): supplied argument is not a valid XML Parser resource in C:\Program Files\xampp\htdocs\joomla\includes\domit\xml_domit_lite_pars er.php on line 1738
Warning: xml_parser_set_option(): supplied argument is not a valid XML Parser resource in C:\Program Files\xampp\htdocs\joomla\includes\domit\xml_domit_lite_pars er.php on line 1739
Warning: xml_parser_set_option(): supplied argument is not a valid XML Parser resource in C:\Program Files\xampp\htdocs\joomla\includes\domit\xml_domit_lite_pars er.php on line 1742
Začal jsem to celé prozkoumávat a hledal v diskuzi na joomla.org. Narazil jsem tam na tento dotaz a jeho řešení. Pokud se vám nechce číst anglický text, připravil jsem drobný výcuc.
Chyba se objevuje jen na PHP5 (s PHP4 je vše OK) a jen při zapnutém jiném než anglickém jazyce (v našem případě u kódování ISO-8859-2 nebo WINDOWS-1250, UTF8 se to z nějakých důvodů netýká).
- Celá oprava spočívá v tom,že si ve své Joomla! 1.0.9 instalaci najdete soubor xml_domit_lite_parser.php a provedete v něm změnu. Soubor najdete ve složce includes\domit\
- Ze všeho nejdříve si proveďte zálohu původního souboru. vytvořte si kopii a uložte ji na bezpečné místo, abyste jí mohli kdykoliv přehrát nově upravený soubor a vrátit se tak k původnímu stavu
- Pomocí nějakého editoru otevřete tento soubor a najeďte na řádek 1721. Najdete tam asi toto :
//create instance of expat parser (should be included in php distro)
if (version_compare(phpversion(), '5.0', '<=')) {
$parser = xml_parser_create('');
} else {
// special handling for encoding support
if (defined( '_ISO' )) {
$iso = explode( '=', _ISO );
$parser = xml_parser_create($iso[1]);
} else {
$parser = xml_parser_create();
}
}
- Celý tento kód vymažte a nahraďte jej novým :
//create instance of expat parser (should be included in php distro)
if (version_compare(phpversion(), '5.0', '<=')) {
$parser = xml_parser_create('');
} else {
$parser = xml_parser_create('iso-8859-1');
}
- Věnujte zvýšenou pozornost správnému počtu závorek, neboť jsou velmi důležité.
- Soubor uložte a oprava je hotová.