Cum de a crea un site pe modx

Acest site este destinat, în primul rând, celor care doresc să facă web-development. Vă puteți familiariza cu materialele de pe site-ul clădirii, de la proiectarea designului, structura și finisarea promovării site-urilor gata făcute. În curând, site-ul ar trebui să devină o colecție vastă de materiale utile, sfaturi, lecții, servicii și linkuri pentru a ajuta atât un dezvoltator web experimentat, cât și un începător.
Citiți mai multe despre acest blog

Curând, blog-ul meu va fi serie de articole „Crearea unui site de la zero“, „Asigurați-flexibil blog funcțional“, „Internet-magazin de pe CMS / CMF MODx» și multe altele. Nu treceți.
Urmăriți apariția de articole noi pe site. RSS feed.

În această lecție vom crea meniul principal al site-ului. În MODx există o soluție integrată pentru organizarea de meniuri dinamice pe site - aceasta se face folosind fragmentul Wayfinder. Oh da, am uitat complet. Nu v-am spus încă despre unul dintre termenii de bază ai MODx. Acest termen este "fragment".

Fragmentul este cod PHP pe care îl putem apela din șablonul site-ului. Rezultatul operației de fragmentare este introdus în locul apelului. Pentru a vedea lista de fragmente care apar în mod implicit cu MODx, urmați filele din panoul de administrare: Elemente → Gestionare elemente → Fragmente. Toate sunt editate. Dar până când îți dai seama ce este, îți sfătuiesc să nu editezi nimic. De ce avem nevoie de aceste fragmente? Și acestea sunt necesare pentru a furniza o logică dinamică pe site. De exemplu, pentru a genera meniuri dinamice, ieșire de conținut din baza de date pentru o anumită condiție, organizați formularul de feedback, în general, pentru orice acțiune disponibilă prin API-ul MODx. Acum, pentru un exemplu, veți înțelege totul.

Apelul se face prin numele fragmentului, plasat între paranteze pătrate cu semne de exclamare. De exemplu, dacă numele unui fragment specific este Nume, atunci apelul va fi efectuat utilizând următoarea structură, plasată în șablon:

În plus față de apelarea unui fragment, îi putem trimite și alte valori de parametri pentru procesare, dacă este acceptat de fragmentul dat. De obicei, fiecare fragment are un set propriu de parametri acceptat, pe care va depinde rezultatul fragmentului.

Pentru a transmite câteva valori ale parametrilor, folosim construcția:

[! Name_snippet? parametru1 = "valoare" parameter2 = `value`. ]

Vreau, de asemenea, să adaug că cele de mai sus am descris apelul către un fragment neacoperit. Dacă trebuie să puneți rezultatul lucrării în memoria cache, atunci apelul va fi efectuat cu numele fragmentului, plasat în paranteze pătrate. Ie pentru un fragment numit Nume, apelul memorat în cache va fi următorul:

Când apelați rezultatul din cache a fragmentului este stocat în memoria cache, și reîncărcați fragmentul de cod pagină nu se face din nou, și plasați apelul înlocuit imediat rezultatul anterior este luat din cache.

Ei bine, acum știi ce "snippet" este și noi mergem mai departe. După cum am scris mai sus, pentru organizarea de meniuri dinamice în MODx vom folosi fragmentul built-in Wayfinder.

Rezultatul activității Wayfinder este rezultatul unei liste neumerate, ale cărei elemente vor fi linkuri către documentele copil pentru pagina pe care o numim acest fragment. De exemplu, dacă avem o structură a documentului așa cum se arată în imaginea de mai jos

apoi dacă sunăm la pagina principală

rezultatul operei sale va fi o listă de 4 linkuri către paginile copilului. Lista va arata astfel:

Atenție: cu un astfel de apel este necesar să avem elemente copil, deoarece dacă nu există, atunci fragmentul nu va scoate nimic. Acest apel nu este potrivit pentru organizarea meniului pe site, deoarece dorim să vedem meniul principal nu numai pe pagina principală, ci și pe toate paginile copilului site-ului. În acest caz, dorim ca meniul de pe toate paginile să conțină aceleași elemente. Pentru a face acest lucru, sunăm fragmentul de Wayfinder și îl transmitem simultan parametrului startId, în care scrieți ID-ul documentului al cărui link către paginile copil pe care le vom afișa. Permiteți-mi să vă reamintesc că ID-ul documentului este numărul indicat în paranteze din arborele documentului MODx.

Apelul va arăta astfel:

În acest caz, pe orice pagină numim fragmentul Wayfinder, lista se va forma din legăturile către copiii paginii principale (ID = 1), nu pe cea pe care am făcut apelul.

Acum, să vedem ce este meniul principal al site-ului în șablonul nostru. Dacă vă aduceți aminte de meniul pe care l-am stocat într-o singură bucată cu un logo numit HEADER. Și ce vedem?

Meniul este o listă simplă neordonată, plasată într-un container cu id = "topnav". Acest lucru înseamnă că marcajul HTML al meniului va fi o listă normală, iar întreaga sarcină va prelua fișierul CSS pe care l-am conectat mai devreme. Dar suntem deja conștienți de modul în care această listă neordonată poate fi transmisă dinamic în MODx. De aceea, ștergem acest cod din partea HEADER

Și în locul lui, sunăm fragmentul de Wayfinder cu parametrul startId = `1` care îi este transmis.

Să ne uităm la codul sursă al meniului principal rezultat:

Rețineți că fragmentul Wayfinder generează automat o clasă pentru clasa activă de meniu clasă = "activă" și numele său a coincis chiar cu clasa "activă" în cazul nostru. Prin urmare, atunci când navigați prin meniu, elementul activ este evidențiat în verde, așa cum a fost inițial în șablon.

În mod implicit, pentru elementul de meniu activ, Wayfinder va genera întotdeauna class = "active", deci dacă este descris într-o clasă diferită din șablonul dvs., schimbați-l într-un fișier CSS. Dacă te uiți din nou la codul sursă al listei generate, atunci veți vedea că ultimul element din meniu este indicată de clasă implicit pentru ultima, este, de asemenea să păstreze în minte, deoarece este de multe ori pentru proiectarea ultimului element de meniu este necesar să prescrie stiluri separat. În acest caz, puteți utiliza ultima clasă pentru ao crea.

Acum, să aruncăm o privire asupra elementelor din meniu. După cum vedem în meniul principal, nu există niciun element, "pagina de pornire". Din moment ce am specificat startId ca parametru startId pentru pagina principală, am avut un meniu constând din resurse copil pentru pagina principală, fără ao include. Adăugați un link către pagina principală într-o varietate de moduri, nu vă voi încărca greu și, pentru început, voi sugera modul cel mai optim, care ar fi trebuit să fie utilizat imediat. Pentru a face acest lucru, este mai ușor să schimbați structura documentului astfel încât arborele să arate astfel.

Pentru ca meniul să fie afișat, în startId scrieți identificatorul folderului rădăcină. Va fi întotdeauna "0". Facem acest lucru, așa cum a fost ultima dată în bucata HEADER:

După aceea, în meniul principal pe care îl avem, pe lângă elementele de meniu care au fost anterior, va exista o altă pagină de pornire, deoarece toate aceste elemente sunt copii în raport cu rădăcina site-ului. Dar, dacă paginile dvs. sunt numite la fel ca ale mele, veți observa că meniul nu se potrivește în același rând cu sigla, deoarece numele lor sunt prea lungi. Acest lucru este foarte bun. Întrebați de ce. Și pentru că vă pot arăta prin exemplar un câmp mai mult pe pagina de editare a resurselor, despre care am vorbit mai devreme și cu ajutorul căruia va fi posibil să rezolvăm probleme de acest gen.

Și pentru ca meniul să nu alunece sub siglă, trebuie să schimbăm lungimea unuia sau a două elemente de meniu. În cazul nostru, este mai bine să scrieți pur și simplu "Acasă" în locul titlului "Acasă". Acest lucru se poate face fără a schimba numele resursei în sine. Mergeți la pagina de editare a resurselor cu numele "Pagina de pornire" și în "Elementul de meniu" introduceți scurta titlu a elementului nostru - "Acasă".

Salvați și voila! Avem un rezultat excelent. Numele articolului sa schimbat și meniul nu mai este alunecat sub siglă.

Acum, avem deja un meniu principal, prin care putem naviga prin paginile create în arborele documentului MODx.

Pentru a vă familiariza cu detaliile lucrării fragmentului Wayfinder în detaliu, să luăm câteva exemple.

Cu cât cifra este mai mică, cu atât devine mai devreme elementul din meniu. Prin urmare, când editați resurse, puteți seta pentru fiecare pagină valoarea corespunzătoare a poziției din meniu. Pentru a sorta elementele din meniu în ordinea descrisă mai sus, am setat următoarele valori pentru "Poziție în meniu":

De asemenea, poate fi necesar să eliminați adesea elementele de meniu de pe afișaj din meniu. De exemplu, atâta timp cât nu avem știri, am dori să nu afișăm acest element în meniu. Nicio problemă, mergem la pagina editând resursa "Știri" și eliminăm bifa "Publicare în meniu", după care acest element nu va fi afișat.

După aceasta, numele resursei "Știri" din arborele documentului va fi gri deschis.

În acest sens, de fapt, organizarea meniului sa încheiat. Am învățat cum să afișăm meniul dinamic în MODx utilizând fragmentul built-in Wayfinder. Procedând astfel, ați încercat deja în practică să sortați elementele de meniu și să eliminați elementele selective de pe afișaj în meniu.

Singurul lucru pe care vreau să îl sfătuiesc este să iei meniul principal într-o bucată separată. Pentru a face acest lucru, creați o bucată de MAIN-MENU și inserați structura apelului pentru fragmente în conținutul său, încadrat de container


[! Wayfinder? startId = `0`! ]

Și după aceea, în bucata HEADER, unde înainte de a fi sunat meniul, în loc de recipient