PHP Blog - Website automatizat cu PHP
Limbaj programare: PHP, HTML, CSS
Sumar
Necesitatea automatizarii unui site a aparut in urma deciziei de a publica cat mai multe articole cu proiectele noastre. In unei analize aspura sistemelor deja existente in materie de web development am ajuns la concluzia ca solutiile existente presupuneau interventii asupra unui cod greu de intretinut si plin de vulnerabilitati.
In urma cu cateva luni ne-am apucat sa cosmetizam site-urile firmei datorita necesitatii de compatibilizare cu noile tehnologii mobile. Site-urile noastre vechi nu aveau layout responsive si cum multa lume cauta informatii relevante pe dispozitive mobile, era necesar sa ne aliniem noilor standarde. Evident ca am cautat o solutie cat mai rapida si am ajuns la Wordpress. Spre dezamagirea noastra, acest sistem este foarte dificil de intretinut si de asemenea sistemul de backup lasa mult de dorit, lucru foarte important cand ai multe informatii publicate. Drept urmare ne-am hotarat sa implementam strictul necesar in materie de automatizare a site-ului, urmand ca procesul de backup sa fie facut prin natura site-ului. Ne-am hotarat sa scriem tot site-ul in format HTML + CSS iar partea de automatizare sa fie facuta de cateva functii PHP care ruleaza direct din fisierele HTML. Avantajul este ca nu folosim nici o baza de date si tot codul scris poate rula pe orice server cu PHP. De asemenea toate informatiile sunt stocate in fisierele HTML, care pot folosi daca este necesar layouturi diferite.

Utilitate
Solutia poate fi utilizata pentru site-uri tip BLOG unde se doreste o siguranta ridicata a datelor stocate, nu atat din punctul de vedere al functionarii site-ului ci din punctul de vedere al usurintei de a repune sistemul in functiune. Functiile PHP sunt folosite pentru numararea postarilor si afisarea acestora in paginile unde sunt necesare.
Mod de livrare
Produsul software poate fi livrat sub forma de librarie (*.php) sau website functional.
Modul de utilizare
Utilizatorul va trebui sa aiba cateva cunostinte minime de HTML pentru a putea publica articole, presupunand ca instalarea si configurarea site-ului este facuta de o alta persoana.
Site-ul de baza este stocat in directorul radacina (Home, About, Contact etc.). Paginile din care este alcatuit blogul sunt stocate intr-un director denumit de exemplu "posts". In directorul blogului se vor stoca inclusiv fisierele CSS, JS samd. care sunt utile functionarii paginilor acestuia.
Implementarea software
Functiile care se folosesc pentru afisarea postarilor au fost scrise pentru site-ul nostru, dar oricine cu cunostinte de HTML si PHP le poate modifica pentru a le utiliza in proiectul sau. Functiile definite sunt:
ListAllPosts($directoryPATH);
creeaza o lista cu toate fisierele cu extensia *.html din directorul $directoryPATH, ordonate in ordine alfabetica inversa
ListSomePosts($directoryPATH, $postsNumber);
creeaza o lista cu ultimele $postsNumber postari in orine alfabetica inversa, cu primele 10 caractere reprezentand Data in formatul YYYY-MM-DD, extrase din denumirea filei HTML
ListSomePostsShort($directoryPATH, $postsNumber);
creeaza o lista cu denumiri scurte (fara Data) cu ultimele $postsNumber postari in orine alfabetica inversa
ListSomeProjectsWithImages($directoryPATH, $postsNumber);
creeaza <div>...</div> in care este inserat un post cu imagine
GetPageTitle($url);
Returneaza titul paginii din linkul $url
GetPostTitleWithID($directoryPATH, $postID);
Returneaza titlul paginii cu ID-ul $postID. ID-ul reprezinta numarul postarii in ordine alfabetica inversa.
GetPostHTTPAddress($directoryPATH, $postID);
Returneaza adresa paginii cu ID-ul $postID.
GetNumberOfPosts($directoryPATH);
Returneaza numarul de postari din director.
PrintHTMLPageTitleWithLink($pagePATH);
PrintHTMLDescription($pagePATH);
PrintOGDescription($pagePATH);
InsertPostWithID($directoryPATH, $postID);
InsertPostWithPageLink($directoryPATH, $PageLINK);
InsertPostWithIDSidebar($directoryPATH, $postID);
Numele postarii este citit din:
<title>Article Name</title>
Descrierea paginii, in functie de utilizare este preluata din:
<meta name="description" content="Descrierea postarii lunga - main page">
<meta property="og:description" content="Descrierea postarii scurta - sidebar">
Imaginile care sunt afisate de catre functii trebuiesc adaugate in meta:
<meta property="og:image" content="http://www.example.com/blog/images/image.png">