Lokalizace PHP stránek – II.

Zjištění aktuální URL

Prvním krokem je zjištění aktuální adresy a v dalším kroku v ní měnit parametr pro jazyk. Struktura URL (Uniform Resource Locator) je hezky názorně vysvětlena zde.

struktura URL

Předně je nutné přes informace o serveru $_SERVER zjistit typ protokolu – HTTP nebo HTTPS. Pozor na funkci isset() –  FALSE vrací i v případě, že je proměnná nastavená, ale je na nastavena na NULL.

Dále zjistit na jakém portu je php skritp (Apache) spuštěn. Standardně je to port číslo 80, ale Skype, popř. jiný program nebo systémová služba může tento port obsadit.

V případě, že je využívaný zabezpečený přenos dat (SSL – Secure socket layer) je standardně nastaven port číslo 443.

Poslední řádek kódu je ternální operátor, zkrácený zápis pro If.. then .. else.

V proměnné $_SERVER[REQUEST_URI] je uložena adresa k webové stránce.

Celá funkce CurrentPageURL v PHP, která v proměnné $url vrací kompletní URL adresu pak vypadá:

Funkce v PHP na úpravu URL

V dalším kroku je nutné napsat funkci, která změní adresu aktuální webové stránky a upraví nebo doplní parametr jazyka.

algoritmus na úpravu url

Vlastní algoritmus funkce (vstup – akce – výstup) je možné si nakreslit na kus papíru tužkou nebo v případě dostatečných zkušenosti psát kód rovnou „z hlavy“. 😉 Já jsem schválně použil nástroj Microsoft Visio, k čemu slouží, se můžete dočíst např. zde. Používám ho při tvorbě algoritmů, schémat – doporučuji alespoň vyzkoušet.

Algoritmus změny jazyka je znázorněn na obrázku (pro zvětšení kliknout)

Modifikace adresy aktuální webové stránky udělá funkce v PHP ModifyURL(parametr)

Funkce testuje, jestli aktuální adresa stránky již obsahuje parametr pro nastavení jazyka lang, jestli existuje, tak se jednoduše změní kód jazyka funkcí str_replace(). Jestli lang neexistuje, musí být zjištěno, jestli je to první parametr nebo další parametr. Podle toho se pak skládá url s parametry.

Posledním krokem je úprava odkazů u jednotlivých grafických symbolů:

Při odesílání stránky na prohlížeč u uživatele se vygenerují příslušné odkazy na stránky podle parametru ModifyURL('cs') nebo ModifyURL('en')

Lokalizace je plně funkční, jazyk stránky se přepíná kliknutím na příslušnou vlajku.

lokalizaceEN

Celý příklad ke stažení zde.

Podle: http://forum.kirupa.com/t/embed-get-current-url/250274