• Uncategorized 17.08.2010

    Při přechodu z verze PHP Fusion 6xx na verzi 7xx,  je kromě updatu databáze, který je již poměrně dobře vychytán, hlavním problémem diakritika a přechod z CP-1250 na UTF-8. Abychom odstranili všechny nečitelné znaky, musíme udělat několik kroků, které ve většině případů zachrání skoro vše co zachránit lze.

    V každém případě platí základní pravidlo :  ZÁLOHOVAT !!! Při každé takové manipulaci je nutná záloha starých souborů jak instalace PHP Fusion, tak i databáze pomocí exportu MYSQL.Máme-li vše zazálohováno můžeme přistoupit ke změnám souborů. Já jsem si zvylk používat skvělý textový editor Notepad++ , který umožňuje vykonat většinu změn hromadně s minimem ruční práce.

    Provedení updatu databáze pomocí souboru update.php, který zkopírujeme do adresáře administration v hlavním adresáři systému a spuštění aktualizace v hlavní administraci webu nám proběhnou 4 kroky upadatu a obdržíme-li hlášku o úšpěšné oparaci, máme téměř vyhráno.

    Následná přeinstalace všech systémových souborů z verze 6 na verzi 7 je dalším nezbytným krokem. Pak ale mohou přijít právě problémy s diakritikou!  Jak tedy na ně ???

    Updatovanou databázi zazálohujeme a pak ji otevřeme v textovém editoru. Případ který popíšu se týká databáze která je v CP-1250 a my ji potřebujeme opravit na UTF-8.

    Nejdříve smažeme bez náhrady všechny tyto záznamy:  collate cp1250_czech_cs (v tomto případě jich bylo 179 ale vše závisí na počtu tabulek, jichž je v originální verzi méně.

    Dalším bodem je změna z:  DEFAULT CHARSET=cp1250 na  DEFAULT CHARSET=utf8  , opět počet závisí na počtu tabulek v databázi (cca 50).

    Ještě zbývá zkontrolovat a popřípadě změnit kódování textového souboru ( v menu Formát programu Notepad++ : konertovat do UTF-8 bez BOM)..

    Po uložení textového souboru s databází pak pomocí mysql odstraníme staré tabulky a vložíme opravené.

    Poslední krok je úprava maincore.php

    cca kolem řádku 65 je potřeba přidat jeden řádek, pomocí kterého umravníme všechna divná okénka:

    // Establish mySQL database connection
    $link = dbconnect($db_host, $db_user, $db_pass, $db_name);
    mysql_query(“SET NAMES ‘utf8’;”);

    Zdá se vám to složité? snad ne……

    Posted by admin @ 10:20

  • Comments are closed.