Textová CAPTCHA pro XOOPS na druhý pokus

Datum 23. 05. 2015 v 6:06 | Rubrika: Zápisník pojídačky koláčů pro Xoops

     Nedávno jsem zde uveřejnila postup, jak upravit CAPTCHA systém tak, aby nechtěl čísla zadávat pomocí číslic, ale pomocí slov. Řešení je funkční, ale nějak se mi nezdálo, že to je úplně dokonalé řešení. Takže jsem onu funkci opět trošku přepsala. Výsledek je o něco hezčí a kratší, funkční je úplně stejně, takže, pokud nemáte morální důvod ke změně, není potřeba nic měnit Každopádně nově zapsaná funkce je, přeci jenom, poněkud čistší řešení.
     Druhá změna je drobnost určená zahraničním čtenářům, pokud se náhodou najdou, a totiž změna názvu proměnné $vysledek na $capt_result. Opět, je to jen estetická záležitost, nic víc.

     A proč změna zrovna na angličtinu? No proto, protože většina lidí se při psaní pro XOOPS snaží držet základního pravidla a to, psát všechno anglicky. Neplatí to vždy, ve zdrojových souborech lze najít i dost poznámek francouzských a některé dokonce i japonské. Ty jsou však úplně na draka, protože evropské počítače s japonštinou většinou nepočítají a tak je místo znaků zobrazený jen zmatek. Nemluvě o tom, kolik lidí v Evropě rozumí japonsky?

     Takže tady je ta slibovaná upravená funkce:

/**
     * XoopsCaptchaText::loadText()
     *
     * @return string
     */
    
function loadText()
    {
        
$capt_result=array("nula""jedna""dva""tři""čtyři""pět""šest""sedm""osm""devět""deset""jedenáct""dvanáct""třináct""čtrnáct""patnáct""šestnáct""sedmnáct""osmnáct"); 
          
        
$val_a rand(09);
        
$val_b rand(09);
        if (
$val_a $val_b) {
            
$expression "{$val_a} - {$val_b} = ? (slovem)";
            
$this->code $capt_result[($val_a $val_b)];
        } else {
            
$expression "{$val_a} + {$val_b} = ? (slovem)";
            
$this->code $capt_result[($val_a $val_b)];
        }

        return 
'<span style="font-style: normal; font-weight: bold; font-size: 100%; font-color: #333; border: 1px solid #333; padding: 1px 5px;">'.$expression.'</span>';
    }


     Patří do souboru XOOPS_ROOT/CLASS/CAPTCHA/text.php.

     Úplně nejlepší řešení by bylo takové, který by místo přímo vložených slov používalo jazykové soubory, jenže to by znamenalo takový soubor vytvořit, což není složité, a pak jej přilinkovat do tohoto souboru. Nicméně se tím ztratí přehlednost a navíc je tu okolnost vrozené lenosti

     A to je pro dnešek všechno. U těchto krátkých článků si vždy říkám, jestli je zařadit do rubriky Zápisník nebo XOOPS, ale pak si vždy řeknu, že se týkají XOOPSu, tak patří do jeho rubriky. Věřím, že se vám dnešní povídání líbilo a že si třeba svůj Xoops zase o trochu vylepšíte




Č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=201