Upravená domácí stránka pro WAMP server

Datum 23. 04. 2016 v 15:50 | Rubrika: Zápisník pojídačky koláčů

     Na svoje domácí pokusy se Žirafovinami, a nejenom s nimi, používám server WAMP. Dříve jsem se snažila mít vlastní server samostatný a konfigurovat každou jeho součást individuálně. Jenže je to činnost dosti náročná a jak šel vývoj verzí kupředu, tak jsem zjistila, že to je čím dál tím náročnější a že tomu čím dál tím méně rozumím. Pak jsem našla WAMP a od té doby jej spokojeně používám.
     Celý server se nainstaluje vlastně sám, stačí jen spustit instalační program, potom odsouhlasit licenci a následně nastavit pár drobností a dál již jen klikat na „Další“ až je hotovo. Jedinou nevýhodou, pro mne, je to, že na svém počítači nemohu používat novější verzi než je 2.4, protože stále používám Windows XP a novější WAMP se s nimi nemá rád. Není mi úplně jasné proč, ale beru to jako fakt. Až přijdu na to, jak aktualizovat PHP samostatně, mělo by to jít, ale zatím se mi nějak nedaří, tak to bude úplně príma.

     Součástí instalace je i domácí stránka, čili „homepage“ systému, odkud se dá rychle dostat na právě laděné weby, různé užitečné nástroje a také je tam vidět přehled systému. Stránka je v originále v jazyce anglickém a francouzském. A protože jsem hračička, tak jsem si udělala stránku českou

     Sice by šlo zrušit jednu původní jazykovou mutaci a místo ní použít češtinu, ale to jsem nechtěla, takže jsem stránku poněkud doplnila o pár proměnných a rázem mám celkem tři jazykové mutace a češtinu jako výchozí jazyk.

     V souboru index.php je potřeba najít toto pole:

// textes
$langues = array(
    
'en' => array(
        
'langue' => 'English',
        
'autreLangue' => 'Version Française',
        
'autreLangueLien' => 'fr',
        
'titreHtml' => 'WAMPSERVER Homepage',
        
'titreConf' => 'Server Configuration',
        
'versa' => 'Apache Version :',
        
'versp' => 'PHP Version :',
        
'versm' => 'MySQL Version :',
        
'phpExt' => 'Loaded Extensions : ',
        
'titrePage' => 'Tools',
        
'txtProjet' => 'Your Projects',
        
'txtNoProjet' => 'No projects yet.<br />To create a new one, just create a directory in 'www'.',
        
'txtAlias' => 'Your Aliases',
        
'txtNoAlias' => 'No Alias yet.<br />To create a new one, use the WAMPSERVER menu.',
        
'faq' => 'http://www.en.wampserver.com/faq.php'
    
),
    
'fr' => array(
        
'langue' => 'Fran?s',
        
'autreLangue' => 'English Version',
        
'autreLangueLien' => 'en',
        
'autreLangue1' => 'Česká verze',
        
'autreLangueLien1' => 'cz',    
        
'titreHtml' => 'Accueil WAMPSERVER',
        
'titreConf' => 'Configuration Serveur',
        
'versa' => 'Version de Apache:',
        
'versp' => 'Version de PHP:',
        
'versm' => 'Version de MySQL:',
        
'phpExt' => 'Extensions Chargées: ',
        
'titrePage' => 'Outils',
        
'txtProjet' => 'Vos Projets',
        
'txtNoProjet' => 'Aucun projet.<br /> Pour en ajouter un nouveau, créez simplement un répertoire dans 'www'.',
        
'txtAlias' => 'Vos Alias',
        
'txtNoAlias' => 'Aucun alias.<br /> Pour en ajouter un nouveau, utilisez le menu de WAMPSERVER.',
        
'faq' => 'http://www.wampserver.com/faq.php'
    

);


     A trošku jej doplnit, například takto:

// textes
$langues = array(
    
'en' => array(
        
'langue' => 'English',
        
'autreLangue' => 'Version Française',
        
'autreLangueLien' => 'fr',
        
'autreLangue1' => 'Česká verze',
        
'autreLangueLien1' => 'cz',    
        
'titreHtml' => 'WAMPSERVER Homepage',
        
'titreConf' => 'Server Configuration',
        
'versa' => 'Apache Version :',
        
'versp' => 'PHP Version :',
        
'versm' => 'MySQL Version :',
        
'phpExt' => 'Loaded Extensions : ',
        
'titrePage' => 'Tools',
        
'txtProjet' => 'Your Projects',
        
'txtNoProjet' => 'No projects yet.<br />To create a new one, just create a directory in 'www'.',
        
'txtAlias' => 'Your Aliases',
        
'txtNoAlias' => 'No Alias yet.<br />To create a new one, use the WAMPSERVER menu.',
        
'faq' => 'http://www.en.wampserver.com/faq.php'
    
),
    
'fr' => array(
        
'langue' => 'Fran?s',
        
'autreLangue' => 'English Version',
        
'autreLangueLien' => 'en',
        
'autreLangue1' => 'Česká verze',
        
'autreLangueLien1' => 'cz',    
        
'titreHtml' => 'Accueil WAMPSERVER',
        
'titreConf' => 'Configuration Serveur',
        
'versa' => 'Version de Apache:',
        
'versp' => 'Version de PHP:',
        
'versm' => 'Version de MySQL:',
        
'phpExt' => 'Extensions Chargées: ',
        
'titrePage' => 'Outils',
        
'txtProjet' => 'Vos Projets',
        
'txtNoProjet' => 'Aucun projet.<br /> Pour en ajouter un nouveau, créez simplement un répertoire dans 'www'.',
        
'txtAlias' => 'Vos Alias',
        
'txtNoAlias' => 'Aucun alias.<br /> Pour en ajouter un nouveau, utilisez le menu de WAMPSERVER.',
        
'faq' => 'http://www.wampserver.com/faq.php'
    
),
    
'cz' => array(
        
'langue' => 'Česky',
        
'autreLangue' => 'English Version',
        
'autreLangueLien' => 'en',
        
'autreLangue1' => 'Version Française',
        
'autreLangueLien1' => 'fr'
        
'titreHtml' => 'Domovská stránka WAMPSERVERu',
        
'titreConf' => 'Nastavení serveru',
        
'versa' => 'Verze Apache:',
        
'versp' => 'Verze PHP:',
        
'versm' => 'Verze MySQL:',
        
'phpExt' => 'Nahraná rozšíření: ',
        
'titrePage' => 'Nástroje',
        
'txtProjet' => 'Projekty',
        
'txtNoProjet' => 'Momentálně neexistuje ani jeden projekt.<br />Pokud jej chcete vytvořit, jednoduše vytvořte nový podadresář v adresáři 'www'.',
        
'txtAlias' => 'Aliasy',
        
'txtNoAlias' => 'Není nastavený ani jeden alias.<br />Nové aliasy můžete vytvořit v menu WAMPSERVERu.',
        
'faq' => 'http://www.wampserver.com/faq.php'
    
)  
);


     Potom je potřeba najít funkci sloužící k rozpoznání nastaveného jazyka:

if (isset ($_GET['lang']))
{
    
$langue $_GET['lang'];
}
elseif (isset (
$_SERVER['HTTP_ACCEPT_LANGUAGE']) AND preg_match("/^fr/"$_SERVER['HTTP_ACCEPT_LANGUAGE']))
{
    
$langue 'fr';
}
else
{
    
$langue 'en';
}


     A trošičku ji doplnit a upravit:

if (isset ($_GET['lang']))
{
    
$langue $_GET['lang'];
}
elseif (isset (
$_SERVER['HTTP_ACCEPT_LANGUAGE']) AND preg_match("/^en/"$_SERVER['HTTP_ACCEPT_LANGUAGE']))
{
    
$langue 'en';
}
elseif (isset (
$_SERVER['HTTP_ACCEPT_LANGUAGE']) AND preg_match("/^fr/"$_SERVER['HTTP_ACCEPT_LANGUAGE']))
{
    
$langue 'fr';
}
else
{
    
$langue 'cz';
}


     No a na závěr ještě skoro na konci souboru najdeme tento kousek kódu:

<ul class="utility">
<
li><b>Version ${wampserverVersion}</b> </li>
<
li><a href="?lang={$langues[$langue]['autreLangueLien']}">{$langues[$langue]['autreLangue']}</a></li>
</
ul>


     A takto jej doplníme:

<ul class="utility">
<
li><b>WAMP ${wampserverVersion}</b> [</li>
<
li><a href="?lang={$langues[$langue]['autreLangueLien']}">{$langues[$langue]['autreLangue']}</a> |</li>
<
li><a href="?lang={$langues[$langue]['autreLangueLien1']}">{$langues[$langue]['autreLangue1']}</a> ]</li>
</
ul>


     Já jsem do textu doplnila ještě pár znaků tak, aby to celé vypadalo hezčí. No a to je vlastně všechno co je potřeba udělat k tomu, aby stránka fungovala tak jako do teďka, ale s třemi jazyky. Při hraní jsem ale narazila na jednu věc, která ani v originále nefungovala správně. Ono to asi nikoho netrápí, protože se jedná o funkci zobrazující hlášku v okamžiku, kdy není vytvořený žádný projekt nebo alias.

     Přibližně v půlce souboru jsou tyto kousky kódu:

if (!isset($aliasContents))
    
$aliasContents $langues[$langue]['txtNoAlias'];
  
if (!isset(
$projectContents))
    
$projectContents $langues[$langue]['txtNoProjet'];


     Které mají realizovat výše zmíněnou funkci, ale ve skutečnosti ji nerealizují. Bude to patrně tím, že před těmito kousky je ještě tento zápis:

$aliasContents '';
$projectContents '';


     Z čehož pro mne vyplývá, že proměnné existují a tak je !ISSET bude vždy vracet nulu a nebude to tedy fungovat tak, jak má. Možná se mýlím, a budu ráda, když mne někdo opraví, nicméně na mém serveru tyto funkce prostě nefungují dobře. Tak jsem je upravila takto:

if ($aliasContents==""$aliasContents $langues[$langue]['txtNoAlias']; 
if (
$projectContents==""$projectContents $langues[$langue]['txtNoProjet'


     A to funguje dobře, ačkoli to asi není tak programátorsky správně, jako původní zápis.

Originální obrázek
Obr. 1 – upravená stránka zobrazená v Opeře


     Pokud někdo bude chtít používat upravenou stránku, a nebude se mu chtít si hrabat ve zdrojovém souboru, tak si jej může stáhnout a rovnou použít. Pochopitelně je možné místo češtiny použít libovolný jiný jazyk, ale já mám mateřštinu docela ráda Podobně lze přidat i další jazyky, ačkoli kdyby jich bylo více, asi by bylo potřeba celé to přepínání přepsat do jiné podoby.



Článek pochází z webu Žirafoviny.cz
https://www.zirafoviny.cz

URL tohoto článku je:
https://www.zirafoviny.cz/modules/news/article.php?storyid=232