Tutoriale de revoluție Modx care creează un fragment personalizat

Una dintre cele mai bune practici. atunci când nu scrieți niciodată direct cod HTML într-un fragment, introduceți cod HTML pentru a șabona fragmentul în bucăți. Acest tutorial vă va arăta cum să faceți acest lucru într-un fragment.







Fragmentul nostru inițial

Să continuăm și să creăm un fragment numit "ResourceLister" și să inserăm următorul cod:

Acest lucru face ceea ce avem nevoie, dar conține HTML-ul interior. Nu ne place acest lucru. Acesta nu oferă utilizatorului posibilitatea de a controla aspectul sau schimba-l, dacă el vrea să facă. Avem nevoie de mai multă flexibilitate.

Fragmentarea snippetului

Mai întâi, să creăm o bucată pe care o vom folosi pentru fiecare element din rezultatul rezultat. Sunați-o "ResourceItem" și codul de conținut este atribuit ca:

Practic, folosim etichetele LI și plasăm mai mulți substituenți în cazul în care conținutul nostru a fost. Avem acces la toate resursele în domeniu și acum folosim doar ID-ul și caseta de resurse PAGETITLE. expresie # 91 # 91

spune MODx pentru a face o referință din ID-ul trecut # 91 # 91 + id # 93 # 93 parametru. Să adăugăm parametrul implicit la fragmentul numit "tpl" în partea de sus a fragmentului nostru:

Acest lucru ne oferă parametrul tpl = din apelul Snippet deoarece $ scriptProperties conține pur și simplu toți parametrii din apelul Snippet. Dacă "tpl" nu există, atunci în mod implicit getOption este valoarea ResourceItem (piesa pe care am creat-o recent).

După aceasta, schimbăm bucla pentru fiecare element din Fragment la acesta:

Primul cod returnează un obiect modResource într-o matrice de perechi field = nume (de exemplu, $ resourceArray # 91'pagetitle '# 93 este o paginătitolă) utilizând metoda toArray (). Apoi vom folosi $ modx-> getChunk () pentru a transfera piesa tpl și o gamă de resurse pentru ea ca parametri. MODx parsit bucată, înlocuiește parametrii și ne returnează un anumit conținut.

Acum, utilizatorul poate apela fragmentul în acest fel pentru a reînregistra fragmentul pentru fiecare resursă cu acest apel:







Acest lucru înseamnă că utilizatorii pot șabla rezultatele lor de apel așa cum le place - folosind etichete Lis sau câmpuri de tabel, în general nimic! Ați creat un fragment flexibil și puternic!

Adăugarea unei clase pentru o serie

Dacă vrem ca utilizatorii să fie capabili să definească o clasă CSS pentru fiecare serie LI, dar nu pot să-și facă propriile bucăți. Apoi, pur și simplu adăugăm parametrul implicit "rowCls" pentru codul fragmentului nostru în partea dreaptă sus, sub primul nostru apel pentru a obțineOption:

Acest lucru spune MODx ca implicit rowCls clasa de rang pentru fragment este elementul de resursă. Să edităm bucata noastră ResourceItem:

Și apoi ne schimbăm ciclul pentru fiecare element:

Rețineți că definim în mod explicit o „rowCls“ variabile la gama noastră de opțiuni $ resourceArray. Am făcut acest lucru pentru că avem deja o rowCls valoare la începutul acestui fragment (cu apel getOption) și acum știm că nu va fi diferit pentru fiecare rând.

Transferul ID-ului de utilizator

Dacă vrem ca utilizatorul să poată transfera de la care strămoș să ia resurse. Apoi pur și simplu adăugăm parametrul "id" la codul fragmentului nostru din partea de sus a apelului pentru a obțineOption:

Practic, permiteți utilizatorilor să suprascrie (atribuiți) ID-ul părinte pentru Snippet - de exemplu, să spună Resursa 123 cu parametrul id = `123` - în apelul lor către fragment. Vrem ca valoarea implicită să fie 390. Și apoi vom schimba șirul getChildIds pentru aceasta:

Evident, ai putea adăuga mai multe caracteristici pentru acest fragment, cum ar fi firstRowCls (pentru primul rând de rezultatul apelului), lastRowCls, firstRowTpl, SortBy, sortDir, limită și orice altceva pe care ai putea gândi. Am putea face chiar filtrul „publicat“ ca parametru, sau pentru a ascunde resursele care sunt directoare pentru alte resurse, și altele. Acum este important să aveți o idee generală de a crea un fragment personalizat.

Pentru referință, codul nostru final arată astfel:

salut, nu-mi răspunde la o astfel de întrebare, cât de bun este să știi php să facă pe modx tot ceea ce îți dorește inima.

Viktorminator

HTML si CSS cunosc bine, pentru a face site-uri web frumoase este suficient sa stii 10 la suta din toate HTML si CSS tag-uri Drimviaver în aspect bun ajută.

OhMyGodMan

Da, „pentru a face site-uri frumoase este suficient sa stii 10 la suta din toate HTML si CSS tag-uri“ și „Drimviaver în aspect bun ajută.“

Un adevarat maestru web! Poate doar pentru Yukoz? )

în parte are dreptate. pentru a face un site, este departe de a fi necesar să utilizați 100% din regulile html și css. În primul rând, rezultatul și compatibilitatea cu browserul încrucișat sunt importante. dar cum se face acest lucru utilizatorilor site-ului va fi absolut peste tambur.

10% nu este prezent - băieți de ea, în general, nu este de ajuns!

Rasul Abu Muhammad Amin

Multumesc pentru articol. Îmi poți spune un lucru.
Întrucât este mai ușor să faci piesa încorporată și să suni în fragment. De exemplu, înfășurați ResourceItem într-un fel de bucată de ResourceWrapper cu







Trimiteți-le prietenilor: