Skip to content

Arhitectură frontend

mihaic edited this page May 2, 2012 · 5 revisions

Overview

Acest document încearcă în mare să descrie un pic arhitectura frontend-ului (ce este în directorul www) pentru cei care doresc să facă schimbări la site.

Documentul nu este complet și va trebui actualizat pe măsură ce dezvoltatorii îl vor citi și vor găsi că lipsesc chestii din el, pentru moment este doar un schelet cu ce mi se pare mie important.

NOTĂ: Ca orice documentație, este posibil ca să devină out of date.

Detalii despre arhitectură / fișiere importante

index.php: este pagina de intrare. Pagina asta știe fie să redirecteze către blog (wordpress), fie să încarce site-ul.

hp-index.php: este prima pagină a site-ului. Se uită la cid și în funcție de valoarea asta încarcă php-urile care trebuie.

person.php: este responsabil cu afișarea paginii unei persoane anume.

Pagina unei persoane

Pentru că recent pagina persoanelor este hartapoliticii.ro/?name=nume+persona, primul lucru pe care îl face person.php este să caute persoana respectivă.

Apoi afișează pe rând:

  • trailul de breadcrumbs de deasupra pentru pagini de genul ăsta http://hartapoliticii.ro/?name=alma+anastase+roberta&exp=news
  • partea din stânga a paginii cu poza, faptele din presă și știrile în care e menționat. Partea asta este afișată static, cele două secțiuni sunt hardcoded în person.php
  • conținutul. Partea asta este afișată dinamic, pentru fiecare persoană în tabela people_history sunt prezente toate modulele care trebuiesc afișate pentru persoana respectivă. Pentru fiecare din aceste module este încărcat php-ul corespunzător din /www/mods/....

Secțiunile sunt delimitate în person.php prin comentarii.

Cum adaugi chestii pe pagina unei persoane?

Dacă vrei să adaugi o secțiune pe coloana din stânga:

  • Crează un mods/<nume_modul>_compact.php care să afișeze ce vrei tu.
  • Include-l în person.php așa cum este inclus mods/news_compact.php. For now hardcoded.

Pentru o secțiune în partea de conținut pașii sunt aceeași, doar că nu mai este hardcoded și pentru fiecare persoană unde vrei să fie afișat modulul respectiv va trebui să adăugăm un entry în tabela de people_history.

/www/pages/*: În directorul ăsta sunt paginile principale ale site-ului, cu câteva funcții comune pentru afișat subpagini.

/www/pages/cdep_2008 - este un exemplu bun de cum anume sunt gândite aceste pagini (nu foarte consistent și nu foarte clar, va trebui curățată arhitectura asta).

  • cdep_2008_page.php - setează titlul paginii, e cam boilerplate care ar trebui schimbat, în principal încarcă /pages/submenu.php.
  • config.php - este încărcat de submenu.php și de acolo se afișează secțiunile principale ale paginii, cu titlul și link și fiecare din ele specifică ce fișier anume trebuie încărcat.

Arhitectura asta de pagini este cam messy și ar trebui făcută mai clară.