Vylepšení zobrazení emailu v profilu

Datum 1. 07. 2010 v 16:01 | Rubrika: Zápisník pojídačky koláčů pro Xoops

     V uživatelských profilech systému jsou uvedené různé kontaktní informace. Některé jsou povinné, většina z nich je dobrovolných. A i u těch povinných je občas možnost zablokovat jejich zobrazení pro neregistrované uživatele.

     Někdy je ale potřeba tyto údaje, hlavně emailovou adresu, zobrazovat všem. Například ty, co patří redaktorům a administrátorům. Jenže tím ji dáváte všanc robotům, kteří prohledávají web a čmuchají a čmuchají a na vyčmuchané adresy posílají tuny spamu.

     Zrovna tak původní verze profilů adresu ukáže jen v textové podobě, ne jako odkaz. A ze zkušenosti většina z nás ví, že lidé jsou líní na to, si adresu přepsat do poštovního programu a potom poslat email. Chtějí mít prostě možnost na adresu kliknout a tím spustit poštovní program a začít rovnou psát.

     Dnešní malá úprava systému řeší oba tyto problémy.

     V souboru modules/system/system_userinfo.html najděte tento kousek kódu:

<tr valign="top">
 <
td class="head"><{$lang_email}></td>
 <
td class="odd"><{$user_email}></td>
</
tr>


     a nahraďte je tímto, poněkud delším, kódem. Ten zajistí lepší ochranu adresy a zároveň pomůže těm línějším uživatelům stránek vytvořením odkazu pro přímé psaní:

<tr valign="top">
<
td class="head"><{$lang_email}></td>
<
td class="odd">
     <!-- 
Hack od Zirafky //-->
     
<script language="JavaScript">
     <!--
              var 
"<{$user_email}>"
              
var e.indexOf("@");
              var 
add1 e.substring(0,x)
              var 
add2 e.charAt(x)
              var 
add3 e.substring(x+1)
              
document.write("<a href='mailto:" add1 add2 add3 "'>" add1 add2 add3 +  "</a>")
     
//-->
     
</script>
     <
noscript>
                    
Litujiale bez zapnuteho JavaScriptu nelze emailovou adresu zobrazitPouzijteprosimkontaktni formular v hlavnim menu.
     </
noscript>
     <!-- 
konec hacku //-->
</td>
</
tr>


Jak vlastně úprava funguje?

     Nejprve se do proměnné „e“ vloží kompletní emailová adresa uživatele. Tu dodá sám systém pomocí systémové proměnné <{$lang_email}> Potom se do proměnné „x“ vloží pozice znaku „@“, který rozděluje adresu na dvě části. V dalším kroku se do proměnné „add1“ vloží první část adresy, což znamená vše od začátku až před zavináč. Potom se do proměnné „add2“ vloží vlastní zavináč. Šlo by to udělat i jednodušeji, ale takto budou mít případní škůdci více práce. V předposledním kroku se do proměnné „add3“ vloží zbytek emailové adresy. Posledním krokem skriptu je složení celého odkazu a jeho vypsání na stránky.

     Pokud není v prohlížeči zapnuté zpracování JavaScriptu, tak se zobrazí oznámení o tom, že je potřeba uživatele kontaktovat jinak. Je to další z ochran adresy, ale zároveň komplikace pro lidi, kteří používají čtečky obrazovky. Upřímně nevím, jak toto vyřešit. Myslím si však, že pokud je čtečka spojená s „normálním“ prohlížečem, tak ho ten JavaScript zpracuje a čtečka jeho výstup přečte jako každý jiný text.

Instalace úpravy

     Pokud změníte soubor šablony (template), tak se změna projeví až za dlouhou dobu. Může za to vyrovnávací paměť systému. Proto je potřeba po provedené změně vymazat vyrovnávací paměti a tím donutit systém vygenerovat nové soubory, které však již budou zpracované podle nové šablony, čili již s úpravou.

     A jako před každou úpravou systému doporučuji udělat si zálohu. On člověk nikdy neví, i když zde se mění jen jeden jediný soubor, ale i tak. Zálohy jsou dobrá věc.



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