Înainte de a începe, rețineți că intenționăm să mergeți direct în articol.
În acest scop, presupunem că aveți o copie de lucru a programului OpenCart instalat și sunteți gata să lucrați.
OpenCart este construit folosind modelul popular de programare MVC. Există, de asemenea, un element adăugat la acest model denumit "L" - o parte a limbii - așa că se numește modelul MVC-L în OpenCart. Nu voi intra în detaliile modelului MVC, deoarece este un model de design foarte popular și familiar și l-am acoperit foarte detaliat în alte tutoriale.
Acestea fiind spuse, trebuie să ne uităm la fluxul de lucru utilizând acest model.
Mai întâi, controlerul funcționează ca punct de intrare pentru orice pagină în care veți defini cea mai mare parte a logicii aplicației.Modelul se referă la baza de date back-end, iar vizualizarea este responsabilă pentru pregătirea conținutului care trebuie furnizat utilizatorului final. În contextul OpenCart, va trebui cel puțin să implementați un controler și o vizualizare pentru a crea o nouă pagină personalizată.
În primul rând, să încercăm să înțelegem rolul controlerului în OpenCart. Controlorul este primul element care va fi executat atunci când solicitați o pagină. În primul rând, este responsabil pentru configurarea variabilelor care vor fi ulterior utilizate în vizualizarea afișajului. Deși în controlorul generic există multe lucruri care se întâmplă:
Teorie suficientă, nu? Să vedem cum arată controlerul nostru personalizat. Continuați și creați un nou director custompage
dedesubt Catalog / controler
. Creați un fișier nou mycustompage.php
dedesubt Catalog / controler / custompage
. Inserați următorul cod în fișierul controler nou creat "mycustompage.php".
document-> setTitle ("Pagina personalizată"); // definește fișierul șablon dacă file_exists (DIR_TEMPLATE. $ this-> config-> get ('config_template') ./template/custompage/mycustompage.tpl)) $ this-> template = $ this-> config- > get ('config_template'). '/Template/custompage/mycustompage.tpl'; altceva $ this-> template = 'default / template / custompage / mycustompage.tpl'; // definește șabloanele copiilor $ this-> children = array ('common / column_left', 'common / column_right', 'common / content_top', 'common / content_bottom', 'common / footer', 'common / header') ; // setați datele la variabila $ this-> data ['my_custom_text'] = "Aceasta este pagina mea personalizată."; // apelați "View" pentru a reda rezultatul $ this-> response-> setOutput ($ this-> render ()); ?>
Să înțelegem convenția de numire a clasei de controlor. Numele clasei controlerului este construit urmând structura directorului și convenția cazului cămilă. Observați că numele clasei începe cu cuvântul cheie "Controller" urmat de numele directorului ("Custompage") în care se află fișierul de clasă. În final, numele fișierului de clasă ("Mycustompage") este atașat la sfârșit. Acum, să examinăm fiecare secțiune în detaliu.
Mai întâi am setat valoarea etichetei de titlu html pentru pagina noastră personalizată.
$ this-> document-> setTitle ("Pagina personalizată");
În secțiunea următoare, am definit numele fișierului șablon care va fi utilizat de elementul "Vedeți". Un lucru important care trebuie notat aici este că am verificat mai întâi că dacă fișierul șablon este disponibil în setul tematic personalizat din back-end, dacă este disponibil în tema personalizată, vom folosi că altfel vom folosi fișierul șablon în tema "implicită".
Acesta este conceptul șablon suprasolicitat.
dacă fișier_există (DIR_TEMPLATE. $ this-> config-> get ('config_template') ./template/custompage/mycustompage.tpl)) $ this-> template = $ this-> config-> get "). '/Template/custompage/mycustompage.tpl'; altceva $ this-> template = 'default / template / custompage / mycustompage.tpl';
De asemenea, am definit șabloanele pentru copii folosind matricea. Ca exemplu, comună / header
hărți la fișierul de șablon aflat la Catalog / Vedere / tema / default / template / comun / header.tpl
și execută același lucru. Rezultatul va fi atribuit variabilei header $ pe care le puteți utiliza în fișierul de șablon pentru a afișa antetul site-ului.
$ this-> children = array ('common / column_left', 'common / column_right', 'common / content_top', 'common / content_bottom', 'common / footer', 'common / header');
Mai mult, am demonstrat cum puteți seta variabilele personalizate care vor fi disponibile în fișierul șablon. Deși am folosit aici un text static simplu, ați putea atribui un conținut mai sensibil, de exemplu, o serie de produse preluate de la
Bază de date.
$ this-> data ['my_custom_text'] = "Aceasta este pagina mea personalizată.";
În cele din urmă, cel mai important lucru este să apelați vizualizarea, astfel încât procesul real de redare să poată începe.
$ This-> response-> setOutput ($ this-> render ());
Deci, asta e bucatica fluxului de lucru al controlorului.
În front-end, veți accesa acest controler utilizând variabila șir de interogări traseu = custompage / mycustompage
. Este important să notați aici că dacă definiți metoda controlerului cu orice alt nume, cu excepția index
trebuie să specificați acest lucru și în adresa URL.
De exemplu, dacă ați creat metoda numită personalizat
, formatul dvs. de adresă URL de primă linie ar trebui să arate traseu = custompage / mycustompage / personalizat
.
Să înțelegem cum hărțile OpenCartorice url la fișierul controlerului specific. Formatul variabilei de traseu este Directorul / filename / METHODNAME
. Directory
harta către directorul de sub Catalog / controler
. nume de fișier
hărți până la numele fișierului de controler de sub catalog / controler / directory
. Și în cele din urmă, va căuta metoda numită de controlor METHODNAME
dacă este specificat în traseu, altfel se va apela implicit index
metodă.
În această secțiune, vom crea fișierul șablon de vizualizare pe care l-am definit mai devreme în metoda index index. Continuați și creați un nou director custompage
dedesubt Catalog / Vedere / tema / default / șablon
. Creați un fișier nou mycustompage.tpl
dedesubt Catalog / Vedere / tema / default / șablon / custompage
. Inserați următorul conținut în fișierul șablon nou creat mycustompage.tpl
.
Deci, acesta este fișierul nostru principal de șablon de aspect care este responsabil pentru afișarea conținutului paginii personalizate. În acest fișier template, tocmai am folosit variabilele pe care le-am creat în controler index
metodă.
Singura variabilă personalizată din acest fișier șablon este $ my_custom_text
, restul variabilelor conțin conținuturile legate de șabloanele copiilor, cum ar fi antetul, subsolul etc. Variabilele $ column_left
, $ column_right
, $ content_top
și $ content_bottom
sunt utilizate pentru a afișa modulele atribuite paginii personalizate din partea din spate.
Dacă doriți să atribuiți modulelor paginii personalizate, mai întâi trebuie să creați o intrare nouă de aspect din back-end. După ce ați adăugat un aspect nou, doriți să adăugați un traseu, cum ar fi custompage / mycustompage
pentru acel aspect. Acum, puteți atribui orice modul și paginii noastre personalizate.
Tocmai ați construit o pagină personalizată completă în OpenCart! Puteți verifica același lucru la adresa URL: http://www.yoursiteurl.com/index.php?route=custompage/mycustompage.
În acest tutorial, am învățat cum să creați o pagină personalizată în OpenCart. Dacă sunteți familiarizat cu modelul MVC, fluxul de lucru pentru crearea unei noi pagini personalizate ar trebui să fie familiarizat.
Continuați și explorați câteva fișiere de bază pentru a vă familiariza cu codul. Aș dori să vă extindeți exemplul încărcând modelul și fișierele de limbă în controler și să vedeți cum funcționează lucrurile! În așteptarea feedbackului, a întrebărilor și a comentariilor!