Cât de repede a face un site web carte de vizită, locul ikenfin

Un pic de istorie

În general, prima dată când am încercat să proiect ka73.ru. YCM La început, eu personal sunt un pic jarred această expansiune - este un adevărat vă obligă să plaseze toate logica în modelele, care a fost destul de confortabil, în cele din urmă.

Principalul dezavantaj al acestui modul este că funcționează doar cu widget-uri fixe - trebuie doar să se uite la această metodă.

Deja nu mai puțin de 360 ​​de linii pentru comutator CONSTRUCȚIE.

Și acest lucru nu este limita - așa cum sunt necesare widget-uri personalizate, acest parametru va crește și crește și crește. Personal, răbdarea mea este epuizată, atunci când, după introducerea multiaploadinga widget-ului, ma dus la panoul de administrare pentru a adăuga un cuplu de mai multe widget-uri. Acesta este motivul pentru care am forknul acest modul și adăugați capacitatea de a crea propriile widget-uri personalizate.

Cu toate acestea, se bazează pe publicarea separată, în același material, să se concentreze pe cel mai important lucru - modul de a face rapid un site web o carte de vizită?

Deoarece site-ul este la fel de simplu posibil, voi folosi pentru dezvoltarea unității originale de YCM Jani Mikkonen.

Etapa 1. Prepararea.

În primul rând, ar trebui să proiecteze o bază de date pentru un proiect. De exemplu, eu iau schema mai simplu:

vom avea astfel de entități - Pagina, Meniu, utilizator.

Utilizarea mysql workbench desena simplu er-diagrama (sau crea direct un phpMyAdmin):

Apoi totul transforma în esență, o bază de date utilizând modelul sincroniza, sau încărcați și importați codul sql.

Apoi, avem nevoie de (procesul de instalare și configurare, a se vedea. Pe site-ul lor) Yii Framework, și corespunde modulului YCM (a se vedea link-uri. Mai sus).

După ce aplicația este generat și configurat, puteți începe să se dezvolte.

Pasul 2. Conectarea YCM.

Folosind instrumentul GII genera modelul necesar pentru punerea în aplicare:

Odată ce Genereaza toate model necesar, putem începe să conexiunea YCM.

În acest scop, protejat / config / fișier main.php. în secțiunea module, adăugați următoarele linii:

În această etapă a conexiunii YCM este finalizată, și puteți începe să se dezvolte modele.

Pasul 3. Modele

Pentru a face acest lucru în clasă modelul Page (protejate / modele / Page.php) adăugați o metodă attributeWidgets:

Astfel modelul modificat, obținem următoarea reprezentare:

Creați o pagină folosind acest formular și vom vedea o fig:

Acest lucru se întâmplă pentru că modelul nu are date pentru lista. Pentru a remedia situația va face următoarele completări la modelul Pagina:

Metoda adminSearch dă YCM absolută a înțelege ce câmpuri pentru a afișa în lista de materiale. În acest caz, câmpul va fi afișat - ID-ul, titlul, data creării, data de editare.

a crea / salva data va fi gol, deoarece nu am creat auto-complete pentru aceste domenii. Pentru a rezolva această problemă, puteți merge două moduri - folosesc acest comportament clasa built-in CTimestampBehavior, sau să pună în aplicare această metodă în mâinile beforeSave.

Iată cum să CTimestampBehavior:

Acum, încercați să editați o pagină, se adaugă un altul și să vedem ce se întâmplă:

Și, în sfârșit, cred că, nu este de prisos să getUrl () care returnează un URL fix pentru pagina:

Prin urmare, o idee bună pentru a extinde adminSearch metoda, pentru a afișa imediat linkuri către paginile respective:

În principiu, totul este la fel, iar singurul lucru pe care încercăm să facem nu este un manual de indicație URL pentru elementele de meniu, o selecție de pagini din lista verticală.

Pentru a face acest lucru, creați o metodă pe care știm attributeWidgets:

În plus, lista menu_url trebuie să fie, de asemenea, umplut cu ceva, deci trebuie să adăugați o metodă menu_itemChoices:

Astfel, vom obține o listă cu toate paginile site-ului și le-a reveni într-o matrice hash url_stranitsy => zagolovok_stranitsy.

Etapa 4. Frontend

Pentru a dezvolta interfat va utiliza caracteristicile standard ale Yii cadru, și anume controlori (controlor) și vyuha (vizualizare).

În general, puteți utiliza instrumentul GII, dar din moment ce cele mai multe jocuri generate Vyuha și acțiune (acțiune) pentru acest site nu avem nevoie, sugerez doar totul a scrie de mână. (Cat este mai mic codul va trebui să taie)

În primul rând, un simplu Schițează controler (protejate / controlere / PageController.php):

Acum aveți nevoie pentru a crea un șablon pentru Vyuha. Nu voi da un plin HTML, dar va arăta scoate în evidență.

În general, aspectul este infinit ca aceasta (/ vederi / machete / main.php protejate):

Deci, punctul principal în structura - conținutul $ variabila. acesta conține redat vyuha. $ Această variabilă în orice Vyuha în mod tipic o instanță a controlerului curent.

Acum, schița un aspect simplu pentru vyuha (protejate / vizualizări / pagina / view.php):

Oh, aproape am uitat - în orice site care se respectă întotdeauna există navigare. În Yii, este pus în aplicare este destul de simplu - putem folosi built-in clasa CMenu pentru acest scop, cu toate acestea, va trebui să adăugați o altă metodă pentru a modela MenuItem.

Prin urmare, puteți utiliza acum CMenu widget în orice loc convenabil, de exemplu, în structura:

Și aici este rezultatul pe care l-am realizat:

În principiu, acest lucru este posibil și finisaj, atunci trebuie doar să pună în aplicare aspectul și conectați CSS și fișiere JS, iar următoarea carte site-ul este gata!

Un exemplu de site gata