CATEGORII DOCUMENTE |
Platforma de afisare a datelor este de fapt sistemul de fisiere care ne permit sa afisam paginile web dinamice.
In acest scop folosim sabloane citite din baza de date, care vor fi procesate si combinate cu informtiile din tabela de articole. La final se va adauga meniul, construit din datele existente in tabela de categorii. Bineinteles, toate informatiile vor fi afisate exact in limba dorita de catre vizitator (daca aceasta este disponibila) sau in limba setata drept implicita (daca limba optionala nu este disponibila).
Desigur, nu putem prevede toate dorintele clientilor, dar putem incerca sa folosim functii usor de modificat, astfel incat sa putem customiza imediat anumite zone din aplicatie. Modulul cel mai des supus la fanteziile unor clienti cu imaginatie, va fi probabil meniul.
Generarea paginilor web
Pentru o cat mai usoara manipulare a codului, toate paginile dinamice ale site-ului care contin informatii de acelasi tip, vor fi generate folosind acelasi fisier.Astfel ne asiguram ca in cazul aparitiei unor erori, acestea vor putea fi repararate imediat.
Iata codul sursa necesar afisarii unei pagini:
<?php
include('config.php');
session_start();
//daca nu s-a specificat nici o intrare, o incarc pe prima
if(!isset($_REQUEST['entry']))
header('location:index.php?entry=1');
else
$entry_id=$_REQUEST['entry'];
//selectarea limbii curente
include('lib/language.php');
//citesc intrarea curenta (template si articol)
$sql='SELECT * FROM '._DB_PREFIX.'entries_multilanguage
WHERE `entry_id`=''.$entry_id.''
AND `language_id`=''.$lang_id.'';' ;
$resursa=mysql_query($sql);
while ($rand=mysqli_fetch_array($resursa))
//citesc template-ul
include('lib/template.php');
$template_content=citeste_template($template_id);
//asamblez pagina (inlocuiesc in template zonele editabile)
$pagina_continut=inlocuieste_template($template_content, _TITLU,
$entry_content);
//afisez pagina
echo $pagina_continut;
?>
Codul de mai sus are o structura foarte simpla:
daca nu s-a specificat un articol, sistemul va redirecta automat catre articolul cu id-ul 1. Id-ul este citit din variabila de adresa $_REQUEST['entry']
este setata limba curenta (care este pastrata intr-o sesiune);
se citesc din baza de date toate informatiile necesare (titlul, continutul si sablonul articolului curent);
se citeste sablonul curent din baza de date;
articolul si meniul sunt introduse in sablonul curent, generandu-se pagina;
este afisata pagina.
Pentru ca pagina sa fie afisata corect, apelam cateva seturi de functii, care vor fi descrise in continuare.
Functiile de setare a limbii
Pentru a putea manipula mai usor continutul multilingv, am construit fisierul language.php aflat in directorul /lib. Fisierul contine urmatorul cod sursa:
if(isset($_SESSION['lang_abr']))
$lang_abreviation=$_SESSION['lang_abr'];
else
//citesc datele despre limba din baza de date
mysql_connect(_DB_HOST,_DB_USERNAME,_DB_PASSWORD);
mysql_select_db(_DB_BAZA_DATE);
$sql='SELECT * FROM '._DB_PREFIX.'languages
WHERE `abreviation`=''.$lang_abreviation.''' ;
$resursa=mysql_query($sql);
while ($rand=mysqli_fetch_array($resursa))
In acest fisier, se face verificarea datelor din sesiune, despre limba curenta. Daca nu exista nici o informatie legata de limba curenta, aceasta este setata dupa valoarea implicita din fisierul de configurare. Se citesc apoi informatii din baza de date precum id-ul limbii.
Construirea meniurilor
Construirea meniurilor este facuta folosind functii din fisierul menu.php, aflat in directorul /lib:
function construire_menu($limba)
$meniu.='</ul>';
}
$meniu.='</li>';
}
$meniu.='</ul>';
return $meniu;
Functia primeste numai limba curenta, dupa care selecteza numele categoriilor, precum si url-ul acestora. Rezultatul este returnat sub forma unei variabile de tip sir de caractere.
Meniul este construit folosind liste HTML, care vor fi formatate folosind stiluri cascadate (CSS).
Generarea paginilor folosind sabloanele
Generarea paginilor este facuta folosind functii din fisierul template.php, aflat in directorul /lib:
function inlocuieste_template($template_content, $titlu, $entry_content, $menu)
Dupa cum observam, in numai cateva randuri continutul este inlocuit cuvintelor cheie din template.
Consideratii finale
In finalul descrierii aplicatiei, trebuie precizate avantajele folosirii unui astfel de CMS in productia paginilor web:
spatiu de stocare mic (intreaga aplicatie are mai putin de 5000 de linii de cod si ocupa in varianta initiala - fara baza de date- sub 300 Kb)
rapiditate de executie (aplicatia genereaza o pagina intr-un sfert din timpul de generare al celui mai popular CMS - PHP Nuke )
usurinta adaptarii altor module (un coleg deja a reusit sa scrie un modul multilanguage de afisare a produselor pentru un magazin online, fara foarte mult ajutor din partea mea)
usurinta folosirii pentru clienti (pentru a-i testa functionalitatea am folosit acest CMS pentru construirea paginii web a unor prieteni, care si-au deschis recent o afacere in Resurse Umane. In prezent isi administreaza singuri siteul.);
scaderea costurilor cu licentele (deorece tehnologiile in care a fost dezvoltata sunt distribuite gratuit, rularea aplicatiei nu necesita costuri pentru licentele unor pachete software).
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2034
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved