phpLD (php Link Directory) este o aplicatie pentru crearea de directoare web. Un dezavantaj il prezinta inexistenta unei posibilitati de personalizare a mesajelor de eroare. In cazul in care accesati un link inexistent, datorita modului de functionare a aplicatiei, vi se va afisa pagina index iar in acelasi timp browserul va primi ca raspuns un cod de eroare
404, adica pagina inexistenta. E frustrant uneori sa vezi cum pagina exista dar crawlerele o detecteaza ca pagina inexistenta. De asemenea e urat ca cineva sa incerce sa acceseze o pagina inexistenta datorita unui link scris gresit iar acea persoana sa nu stie ca pagina nu exista iar ceea ce vede nu are relevanta.
Pentru a rezolva problema paginilor de eroare personalizate trebuie sa facem mici modificari in aplicatie (ce bine ca e open source). Nu e complicat, e chiar simplu. Trebuie sa modificam un fisier,
index.php, si si cream un alt fisier
404.tpl, care sa-l folosim ca template pentru mesajele de eroare aparute in cazul accesarii unei pagini inexistente.
Prima data deschidem fisierul
index.php cu un editor de texte sau cu o aplicatie specializata. In cod cautam urmatoarele doua linii:
$id = get_category();
if (!$tpl->is_cached('main.tpl', $id))
Daca nu s-au facut alte modificari ar trebui sa fie liniile 190 si 191. Cele doua linii se inlocuiesc cu urmatorul cod:
$id = get_category();
if($id==0 && strlen(request_uri()) > 2 && request_uri() != '/index.php' && !isset($_REQUEST['q']))
{
$path[] = array ('ID' => '0', 'TITLE' => _L('404, Pagina inexistenta'), 'TITLE_URL' => ", 'DESCRIPTION' => ");
$tpl->load_filter('output', 'trimwhitespace');
echo $tpl->fetch('404.tpl');
@exit(0);
} else if (!$tpl->is_cached('main.tpl', $id))
Dupa cum se poate observa am modificat codul care, acum, inainte de a verifica existenta in cache a template-ului, va verifica existenta paginii cerute. Cum
phpLD 2.2.0 nu ofera un mod concret pentru identificarea paginilor inexistente codul de mai sus e o "carpeala" si implicit are si un bung, si anume nu va fi valid pentru paginile inexistente care au numele de lungime 1 caracter. Bineinteles, cazurile acestea sunt rare si avand in vedere conditiile date putem fi multumiti cu ceea ce avem.
Dupa ce am facut aceasta modificare trebuie sa cream in directorul templates o pagina numita
404.tpl in care sa introducem urmatorul cod:
{capture name="title"}{l} - Eroare 404, pagina inexistenta{/l} - {/capture}
{capture assign="in_page_title"}{l}Eroare 404, pagina inexistenta{/l}{/capture}
{capture assign="description"}{l}Eroare 404, pagina inexistenta{/l}{/capture}
{include file="header.tpl"}
{include file="top_bar.tpl"}
{include file="admin/messages.tpl"}
<h3>Eroare 404, pagina inexistenta</h3>
<table border="0" cellspacing="10" class="formPage">
<tr>
<td class="contact">
Pagina solicitata nu a fost gasita pe server.
</td>
</tr>
</table>
{include file="footer.tpl"}
Designul rezultat va fi putin ciudat, dar se poate personaliza asa cum se poate personaliza orice fisier template din
phpLD.