Všichni, kteří používají komponentu Virtuemart - online obchod, už někdy museli řešit nejeden problém. Většinou je na vině naše čeština a její kompatibilita s anglicky hovořícími programátory (nejenom Joomly). Pokud budete provádět upgrade z verze 1.0.4 na verzi 1.0.5, dostanete se do obtíží. Možná ne všichni, ale na mnoha konfiguracích různých serverů tyto obtíže nastanou. Jedná se o tento problém: Po upgrade zmizí v backendu admin lišta pro komponentu virtuemart a tim je znemožněno provádět některé úkony s obchodem. Dále vyskakuje v backendu hláška Warning:htmlentities().... Zde je řešení...
Chybovou hlášku generuje php server Warning: htmlentities( ): charset 'ISO-8859-2' not suported, assuming iso-8859-1 in /váš adresář/administrator/components/com_virtuemart/classes/htmlTools.class.php on line 544
Tuto hlášku můžete vidět v backendu (v administraci) Virtuemartu např. když si zobrazíte nastavení obchodu nebo si zobrazíte jednotlivé parametry nějakého zbozí. Mimo jiné si můžete všimnout, ze vám zmizela celá lišta administračního menu obchodu. A to je velmi nemilé. Co s tím?
Při pátrání po chybě jsem narazil na fóru webu Virtuemart, že tento problém se vyskytuje jen u jiných znakových sad než angličtiny nebo iso-8859-1. Tam je vše vpořádku. Z různých možných řešení a nápadů, které jsou víceméně závislé také na konfiguraci hostingového serveru, jsem vybral řešení, které mi pomohlo a dá se říci, že by mohlo pomoci i vám. Pokud používáte kódování ISO-8859-2.
- První krok: otevřete si v nejakém editoru kód /administrator/components/com_virtuemart/classes/htmlTools.class.php a na řádcích 544 a 547 vložte @ před funkci htmlentities( ). Uložte a změnu na server.
- Druhý krok: V beckendu si v Global Configuration vypněte zobrazování DEBUG SITE (pokud jste ho měli zapnutý, když jste hledali chybu).
Toto by mělo být vše a administrace Virtuemartu by měla chodit jak má. Pokud má někdo lepší řešení, případně vysvětlení, proč není podporována funkce htmlentities pro charset iso-8859-2, podělte se o vaše nápady a rady.