Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Gabimet
  • Filtër i thjeshtë AJAX për MODX duke përdorur pdoPage. Filtro sipas parametrave të televizorit në Modx Revolution duke përdorur filtrat tagManager2 Modx

Filtër i thjeshtë AJAX për MODX duke përdorur pdoPage. Filtro sipas parametrave të televizorit në Modx Revolution duke përdorur filtrat tagManager2 Modx

Sot është një artikull i dobishëm në lidhje me filtrat phx dhe modifikuesit e tyre MODX Revo me të cilin mund të manipuloni vlerën e etiketave të ndryshme pikërisht brenda shablloneve.

Për çfarë nevojiten?

Modifikuesit phx e bëjnë jetën më të lehtë për zhvilluesit e modx. Le të themi se kemi një faqe me një karusel imazhesh (ose me një baner) që ju nevojitet shfaqet vetëm në faqen kryesore... Për ta bërë këtë, mjafton ta vendosni në një pjesë të veçantë dhe më pas ta shfaqni në shabllon duke përdorur këtë ndërtim

Ku: 1 - ID e faqes kryesore,
karusel $- copë me kodin e karuselit (banderolës).
Vetëm çajnikët e plotë krijojnë një shabllon të ri, për hir të disa rreshtave të kodit të karuselit. Kështu kam qenë edhe unë, në përgjithësi nuk dëshpërohemi dhe po e fusim phx në zhvillim.

Le të analizojmë ndërtimin e mësipërm në më shumë detaje:

[[* id: është = `1`: atëherë =` [[$ karusel]] `]]

* id- shfaq ID-në e faqes aktuale;

: është = `1`: atëherë =

- kontrollon nëse është e barabartë * id == 1? dhe nëse është e barabartë, atëherë shfaqet përmbajtja pastaj;
karusel $- nxjerr pjesën e karuselit.

Në vend të * id, mund të përdorni fusha të tjera, për shembull * shabllon - do të shfaqë shabllonin e përdorur aktualisht. Ose mund të kontrolloni nëse fusha televizive është e mbushur apo jo (le të jenë * fjalë kyçe) dhe nëse është e plotë, atëherë shfaqeni. Le ta shqyrtojmë këtë rast në më shumë detaje. Duke pasur parasysh shënimin standard:

Detyra: mos e shfaqni këtë rresht nëse fjalët kyçe të televizorit janë bosh.
Zgjidhje.

[[* fjalë kyçe:! bosh = ` `]]

Ngarkesat

Është e nevojshme të monitorohet përpunimi i modifikuesve, përdorimi i tyre i pamenduar do të shkaktojë ngarkesa të panevojshme. Le të kthehemi te karuseli, ky rekord lexohet nga e majta në të djathtë dhe MODH përmbush të gjitha kushtet e mbivendosura, pavarësisht nëse kushti është i vërtetë apo jo, nëse përmbajtja do të shfaqet në faqen aktuale [[$ karusel]], në çdo rast, përmbajtja e tij do të përpunohet. Në këtë drejtim, është më e përshtatshme të rishkruhet hyrja:

[[$ caru [[* id: është = `1`: atëherë =` sel`]]]]

Në këtë rast, përmbajtja e copës karusel $, do të procedohet nëse plotësohet kushti

* id: është = `1`

që nga viti kryer

[[* id: është = `1`: atëherë =` sel`]]

dhe nëse id-i i faqes aktuale është 1, gjëja e fundit që duhet përpunuar është [[$ karusel]] nëse id nuk është e barabartë me 1 atëherë - [[$ caru]]... Dhe nëse pjesa $ caru- jo në elementë, atëherë nuk do të ketë ngarkesë.

Në përgjithësi, prodhimi ideal do të dukej kështu.

[[$ [[* id: është = `1`: pastaj =` karusel`]]]]

Unë rekomandoj të lexoni se si të integroni siç duhet paraqitjen në modx revo këtu.

Shënim! Ju mund të kombinoni sa më shumë modifikues që ju pëlqen për t'iu përshtatur logjikës së përbërësve të faqes, por më e rëndësishmja, mbani mend, thelbi i tyre kryesor është lehtësojnë zhvillimin, dhe mos i ndërlikoni detyrat tashmë komplekse. Zakonisht, mënyra më efektive dhe efikase është më e thjeshta, pasi sa më i thjeshtë dhe më i qartë të jetë dizajni, aq më e lehtë do të jetë të punohet me të në të ardhmen. Më poshtë janë modifikuesit kryesorë që mund të përdorni për çdo etiketë MODH Revo.

Zinxhirët Modifikues

Një shembull i mirë i lidhjes me zinxhir do të ishte formatimi i një vargu datash në një format të ndryshëm, si:

[[+ data: strtotime: data = `% Y-% m-% d`]]

Qasja e drejtpërdrejtë në tabelën "modx_user_attributes" në bazën e të dhënave duke përdorur modifikuesit e daljes në vend të një fragmenti mund të bëhet thjesht duke përdorur modifikuesin informacioni i përdoruesit... Zgjidhni kolonën e duhur nga tabela dhe specifikoni atë si një veti të modifikuesit të daljes, për shembull, si kjo:

Çelësi i brendshëm i përdoruesit: [[! + Modx.user.id: userinfo = `internalKey`]] Hyrja: [[! + Modx.user.id: userinfo =` emri i përdoruesit`]] Emri i plotë: [[! + Modx.user .id: userinfo = `emri i plotë`]] Roli: [[! + modx.user.id: userinfo =` role`]] E-mail: [[! + modx.user.id: userinfo = `email`]] Telefoni: [[! + Modx.user.id: userinfo = `telefon`]] Telefon celular: [[! + Modx.user.id: userinfo =` phonephone`]] Faks: [[! + Modx.user.id : userinfo = `fax`]] Ditëlindja: [[! + modx.user.id: userinfo =` dob`: data = `% Y-% m-% d`]] Gjinia: [[! + modx.user . id: userinfo = `gjinia`]] Shteti: [[! + modx.user.id: userinfo =` country`]] Shteti: [[! + modx.user.id: userinfo = `state`]] Kodi postar: [[! + modx.user.id: userinfo = `zip`]] Foto: [[! + modx.user.id: userinfo =` photo`]] Koment: [[! + modx.user.id: userinfo = `koment`]] Data e fundit e hyrjes: [[! + modx.user.id: userinfo =` lastlogin`: data = `% Y-% m-% d`]] Numri i hyrjeve: [[! + modx.user .id: userinfo = `logincount`]]

Kushtojini vëmendje të veçantë pikëçuditjes [[ ! + modx.user.id]]... Kjo lejon MOS KESH përmbajtjen e prodhimit. Pse jo cache? Le ta imagjinojmë kështu: ka 5 përdorues në faqe. Përdoruesi i parë vizitoi faqen me një telefonatë:

Mirë se vini [[! + Modx.user.id: userinfo = `username`]]!

Siç është menduar në këtë faqe, përdoruesi i shfaqet një mesazh mirëseardhjeje. Pra, nëse rezultati ruhet në memorie, atëherë kur të hyni për herë të parë në këtë faqe, emri i përdoruesit që sapo hyri do të ruhet - dhe të gjithë të tjerëve do t'u shfaqet jo emri i tyre, por emri i përdoruesit që hyri i pari në këtë faqe. Për ta shmangur këtë - thjesht mos e ruani këtë etiketë, duke përdorur një pikëçuditëse përpara se të telefononi [[ ! + modx ...

P.s.: Mos harroni shkëputje ruajtja e etiketave aty ku nevojitet! Për ta bërë këtë, ju duhet SHFIROHET nga pikëçuditjet ( ! ). Rezultatet e shumicës së fragmenteve mund të funksionojnë nga cache. Në mësimin tjetër do të analizojmë.

Filtrat në Revolution ju lejojnë të manipuloni se si përpunohen disa etiketa. Ato ju lejojnë të ndryshoni vlerat brenda shablloneve tuaj.

Filtrat e hyrjes

Aktualisht, filtrat e hyrjes përdoren në përgatitjen për përpunimin e filtrave të daljes. Zakonisht ato përdoren vetëm brenda motorit MODX.

Filtrat e daljes

Në Revolution, filtrat e daljes sillen njësoj si PHx në Evolution, me përjashtim të faktit që filtrat tani janë të vendosur direkt në motorin MODX. Sintaksa duket si kjo:

[]

Filtrat mund të aplikohen në mënyrë sekuenciale. Për ta bërë këtë, shkruani ato në një rresht (nga e majta në të djathtë):

[]

Filtrat mund të përdoren gjithashtu për të modifikuar daljen e fragmenteve. Filtri duhet të shkruhet para të gjithë parametrave (para pikëpyetjes):

[]

Modifikuesit e daljes

Tabela tregon disa modifikues dhe shembuj të përdorimit të tyre. Në shembujt, modifikuesit aplikohen për mbajtësit e vendeve, por duhet të mbani mend se ato mund të aplikohen në çdo etiketë MODX. Sigurohuni që etiketa që përdorni të nxjerrë të paktën diçka që modifikuesi do të trajtojë.

Modifikuesit e daljes së kushtëzuar

Modifikues Përshkrim Shembull përdorimi
nëse, të dhëna Dërgon tekst arbitrar në hyrje, për modifikuesin tjetër [[* id: input = `[[+ vendmbajtësi]]`: është = `1`: atëherë =` Po`: else = `Jo`]]
ose OSE [[+ numrat: është = `5`: ose: është =` 6`: atëherë = `Ka 5 ose 6 libra`: else =` Nuk jam i sigurt se sa libra`]]
dhe Lidhja e shumë modifikuesve së bashku DHE [[+ numrat: gt = `5`: dhe: lt =` 10`: atëherë = `Ka 5 deri në 10 libra`: else =` Libra ose më pak se 5, ose më shumë se 10`]]
është i barabartë, i barabartë, i barabartë, i barabartë, është, baraz Krahason vlerën e transmetuar me atë të caktuar. Nëse vlerat përputhen, vlera "atëherë" shfaqet, nëse jo - "tjetër" [[+ numrat: isequalto = `5`: atëherë =` Ka 5 libra`: else = `Nuk jam i sigurt se sa libra`]]
notequalto, notequals, isnt, isnot, neq, ne Krahason vlerën e transmetuar me atë të caktuar. Nëse vlerat NUK përputhen, shfaqet vlera "atëherë", nëse jo - "tjetër" [[+ numrat: notequalto = `5`: atëherë =` Nuk jam i sigurt se sa libra`: else = `Ka 5 libra`]]
i madhthanorebarazuar, i barabartëor i madh, ge, p.sh., isgte, gte E njëjta gjë, vetëm kushti "Më i madh se ose i barabartë me" [[+ numrat: gte = `5`: atëherë =` Ka 5 ose më shumë libra këtu`: else = `Këtu ka më pak se 5 libra`]]
është më e madhe, më e madhe, isgt, gt E njëjta gjë, vetëm kushti "Rreptësisht më shumë" [[+ numrat: gt = `5`: atëherë =` Këtu ka më shumë se pesë libra`: else = `Këtu ka 5 libra ose më pak`]]
barabartpakthan, më pakthanorebarabartë, el, le, islte, lte E njëjta gjë, vetëm kushti "Më pak se ose e barabartë me" [[+ numrat: lte = `5`: atëherë =` Ka 5 libra ose më pak`: else = `Ka më shumë se 5 libra`]]
islowerthan, islesstan, më e ulët se, më pak se, islt, lt E njëjta gjë, vetëm kushti "Rreptësisht më pak" [[+ numrat: lte = `5`: atëherë =` Këtu ka më pak se pesë libra`: else = `Këtu ka 5 ose më shumë libra`]]
fshehin Fsheh elementin nëse plotësohet kushti [[+ numrat: lt = `1`: fsheh]]
shfaqje Shfaq një artikull nëse plotësohet një kusht [[+ numrat: gt = `0`: shfaq]]
pastaj Përdoret për të kompozuar kushte [[+ numrat: gt = `0`: pastaj =` Librat në dispozicion! `]]
tjetër Përdoret për të formuluar kushtet (së bashku me "pastaj") [[+ numrat: gt = `0`: atëherë =` Librat në dispozicion! `: else =` Na falni, por u shitën .`]]
anëtarof, isember, mo Kontrollon nëse një përdorues është anëtar i grupit të përdoruesve të specifikuar [[! + modx.user.id: anëtari = `Administrator`]]

Modifikues për të punuar me vargje

Modifikues Përshkrim Shembull përdorimi
Mace Shton një vlerë pas etiketës [[+ numrat: mace = `libra`]]
lcase, shkronja të vogla, strtolower Konverton të gjitha shkronjat në shkronja të vogla [[+ titulli: lcase]]
ucase, shkronja të mëdha, strtoupper Shndërron të gjitha shkronjat në shkronja të mëdha [[+ titull: ucase]]
ucwords Shkron shkronjën e parë të fjalëve me shkronjë të madhe [[+ titulli: ucwords]]
i pari Shkron shkronjën e parë në një varg [[+ emri: ucfirst]]
htmlent, htmlentitete Konverton të gjithë karakteret në entitete HTML që përputhen [[+ email: htmlent]]
esc, arratisje Shpëtoni në mënyrë të sigurt karakteret duke përdorur shprehje të rregullta dhe `str_replace ()`. Gjithashtu i shpëton etiketave MODX. [[+ email: arratisje]]
rrip Zëvendëson të gjitha vizat, skedat dhe çdo numër hapësirash me vetëm një hapësirë [[+ dokument teksti: strip]]
stripString Prit nënvargun e specifikuar nga vargu [[+ emri: stripString = `Mr.`]]
zëvendësojnë Zëvendëson nënvargjet [[+ titulli i faqes: zëvendësoj = `Z. == Znj.`]]
striptegs, stripEtiketa, shënime, strip_tags Zhduk të gjitha etiketat (mund të specifikoni etiketat e lejuara). Mos e përdorni për arsye sigurie. [[+ kodi: strip_tags]]
len, gjatësi, strlen Printon gjatësinë e linjës [[+ varg i gjatë: strlen]]
anasjelltas, strrev Përmbysni karakterin e vargut për karakter [[+ tekst pasqyre: anasjelltas]]
mbështjellje fjalësh Fut një ndërprerje rreshti pas çdo karakteri të ntë (fjalët nuk janë thyer) [[+ teksti i trupit: wordwrap = `80`]]
fjalëwrapcut Fut një ndërprerje rreshti pas çdo karakteri të nëntë, edhe nëse ky karakter është brenda një fjale [[+ teksti i trupit: wordwrapcut = `80`]]
limit Nxjerr një numër të caktuar karakteresh nga fillimi i rreshtit (parazgjedhja është 100) [[+ përshkrim: limit = `50`]]
elipsë Shton një elipsë dhe shkurton vargun nëse është më i gjatë se numri i specifikuar i karaktereve (parazgjedhja është 100) [[+ përshkrimi: elipsis = `50`]]
etiketë Mbrojtja. Shfaq elementin ashtu siç është, pa etiketën:. Për përdorim në dokumentacion [[+ shfaq këtë: etiketë]]
shtoj, shtoj, incr Shton numrin e specifikuar (e parazgjedhur +1) [[+ shkarkime: incr]] [[+ blackjack: shtoni = `21`]]
zbres, zvogëlohet, zvogëlohet Zbret numrin e specifikuar (parazgjedhja -1) [[+ numërimi mbrapsht: zvogëloni]] [[+ para: zbrit = `100`]]
shumohem, mpy Shumëzohet me numrin e specifikuar (parazgjedhja * 2) [[+ trifecta: mpy = `3`]]
ndaj, div Ndan me numrin e specifikuar (parazgjedhja / 2) [[+ vlerësimi: div = `4`]]
modul, mod Kthen modulin e një numri (i parazgjedhur:% 2, kthen 0 ose 1) [[+ numri: mod]]
i zbrazët, i paracaktuar, bosh, i zbrazët Kthen vlerën e modifikuesit nëse vlera e etiketës është bosh [[+ emri: parazgjedhje = "anonim"]]
bosh, nëse shënimi, nuk është i zbrazët Kthen vlerën e modifikuesit nëse është vlera e etiketës jo bosh [[+ emri: notempty = `Përshëndetje [[+ emri]]!`]]
nl2br Zëvendëson karakteret e linjës së re \ n me etiketën HTML br [[+ skedar teksti: nl2br]]
datë Konverton vulën kohore në tekst sipas formatit të specifikuar (formati i datës) [[+ viti i lindjes: data = `% Y`]]
strtotime Konverton datën si tekst në vulën kohore UNIX [[+ koha: strtotime]]
fuzzydate Merr një vulë kohore dhe e kthen datën si "Sot në orën 16:20" [[+ krijuar në: fuzzydate]]
më parë Kthen numrin e sekondave, minutave, javëve ose muajve që nga data e specifikuar në etiketë. [[+ krijuar më: më parë]]
md5 Krijon një hash MD5 të vlerës [[+ fjalëkalimi: md5]]
cdata Mbështjell rezultatin me etiketat CDATA [[+ përmbajtje: cdata]]
informacioni i përdoruesit Kthen vlerën e kërkuar nga profili i përdoruesit. Kërkohet ID e përdoruesit [[! + modx.user.id: informacioni i përdoruesit = `emri i përdoruesit`]]
isloggedin Kthen 1 nëse përdoruesi është i identifikuar në kontekstin aktual [[! + modx.user.id: isloggedin: është = `1`: atëherë =` Po`: else = `Jo`]]
nuk është iloggedin Kthen 1 nëse përdoruesi jo autorizuar në kontekstin aktual [[! + modx.user.id: isnotloggedin: është = `1`: atëherë =` Jo`: else = `Po`]]
urlencode Konverton vlerën si URL, d.m.th. përdor kodin urlen të funksionit PHP () [[+ mystring: urlencode]]
urldcode Konverton vlerën si nga një URL, d.m.th. përdor funksionin PHP urldcode () [[+ myparam: urldcode]]

Modifikuesit për të punuar me përdoruesit duhet të quhen të pacaktuar në mënyrë që çdo përdorues të mund të shohë të dhënat aktuale.

Përdorimi i modifikuesve të daljes në lidhje me parametrat

Nëse etiketa ka parametra, atëherë ato duhet të shkruhen menjëherë pas modifikuesit:

[[! getResources: default = `Na falni, nuk u gjet asgjë`? & tplFirst = `blogTpl` & prindërit =` 2,3,4,8` & tvFilters = `blog_etiketat ==% [[! etiketa: htmlent]]%` & përfshijnëTV = `1`]

Krijimi i një modifikuesi të personalizuar

Çdo fragment mund të përdoret si modifikues i daljes. Për ta bërë këtë, thjesht jepni emrin e fragmentit në vend të modifikuesit. Për shembull, le të krijojmë një fragment [] që shton një numër të caktuar pikëçuditjesh në dalje:

[[* titulli i faqes: makeExciting = `4`]]

Një thirrje e tillë etikete do t'i kalojë parametrat e mëposhtëm në fragmentin makeExciting për përpunim:

Parametri Kuptimi Vlera në shembull

Të gjithë shëndet. Në këtë artikull do t'ju tregoj se si të bëni një filtër dokumenti sipas parametrave të televizorit në një sit të mundësuar nga Modx Revolution. Ne do të përdorim një fragment Menaxheri i etiketës 2 nga Andchir... Ky fragment mund të funksionojë me disa televizorë në të njëjtën kohë, si dhe me të dhëna numerike (në formën e një çmimi) dhe një listë të shumëfishtë. Ne do të analizojmë më tej secilin prej këtyre shembujve.

1. Së pari ju duhet të instaloni tagManager2

Për ta bërë këtë, shkoni te Aplikacionet / Instaluesi /

Shtyp butonin "Shkarko shtesën" dhe në shiritin e kërkimit ne futemi Menaxheri i etiketës 2

Ju gjithashtu duhet të instaloni fragmentin getPage dhe getProducts... Pra, seksioni Menaxhimi i paketës duhet të duket kështu (pjesa e translitit, meqë ra fjala, është përgjegjëse për transliterimin e pseudonimeve në latinisht)

Shkarkoni, instaloni paketat dhe shkoni te "Cilësimet e sistemit"

2. Konfiguro tagManager2 të fragmentit

Në cilësimet e sistemit, zgjidhni seksionin tag_manager2

Ne do të shohim cilësimet e filtrit

Gjithçka është mjaft e thjeshtë dhe e qartë atje, por megjithatë:

  • V "ID-ja e burimit të drejtorisë së nivelit të lartë" specifikoni ID-në e shabllonit ose kategorisë së katalogut ku produktet ose faqet do të filtrohen
  • V "Ndarës opsional i listës së shumëfishtë" vendosni shenjën #. Më poshtë do të zbuloni pse ju nevojitet.
  • V "Emrat e TV ose fushave të shumëfishta të listës" ne përshkruajmë TV me një listë të shumëfishtë. Më poshtë do t'ju tregoj se si t'i krijoni ato.
  • "Emrat e televizorit ose fushave me vlera numerike"- këtu duhet të specifikoni parametrat tv, të cilët do të përmbajnë numra. Ky është zakonisht një parametër çmimi. Ky filtër do të shfaqet si një rrëshqitës "nga dhe në".
  • V "ID e modeleve të produktit" ne përshkruajmë ID-në e faqeve që duhen filtruar dhe të cilave u janë bashkangjitur parametrat e televizorit të specifikuar më sipër
  • V "Emri i grupit të parametrave të përdorur për filtrim" regjistër katalog_filtrat. Ne do ta përdorim këtë shabllon në shabllonet e parametrave. getPage dhe merrniProdukte
  • Regjistrohu në "Pjesë e lidhur me një grup parametrash" emri i fragmentit që do të shfaqë dhe faqezojë faqet ose produktet. Zakonisht kjo getPage.

3. Krijo një grup parametrash catalog_filters në getPage

Shkoni te fragmenti getPage

Shkoni te skeda "Parametrat" dhe klikoni në butonin "Shto një grup parametrash"... Ju, sigurisht, mund të redaktoni ekzistuesin, por atëherë ekziston mundësia për të mbishkruar parametrat që do të krijojmë tani kur përditësojmë getPage. Nëse nuk do të përditësoni, thjesht mund ta modifikoni.

Ne modifikojmë parametrat ekzistues dhe caktojmë vlera:

Krijoni parametra të rinj dhe caktoni vlera

Parametrat e redaktuar do të shfaqen në të gjelbër, të krijuar - në vjollcë

4. Krijoni ose modifikoni parametrat e televizorit për filtrin

Për shembull, kam krijuar 3 parametra televizivë

Dua të tërheq vëmendje të veçantë për faktin se duhet të specifikoni Emrin (Titullin) e parametrit tv, përndryshe thjesht mund të mos shfaqet në modulin e kontrollit të filtrit

5.Krijoni copën filtr_tpl

Kjo pjesë është përgjegjëse për shfaqjen e çdo rezultati individual në getProducts.

6. Krijo një strukturë në pemën e dokumentit

Mua më duket kështu:

Faqja kryesore është me ID 1, dhe produktet kanë një ID shabllon 1 (e kemi në cilësimet e tag_manager2, nëse keni vlera të tjera, mos harroni t'i ndryshoni ato në cilësimet)

7. Redaktimi i filtrave.js

Shkojmë në adresë /assets/components/tag_manager2/js/web/filters.js dhe në vend të

Shumë etiketa: ["etiketa"], // Emrat e shtesës. fusha me vlera të shumta

futni kodin me vlerat tona të zëvendësuara

Shumë etiketa: ["filtr1", "filtr2"], // Emra shtesë. fusha me vlera të shumta

Gjithçka këtu është jashtëzakonisht e thjeshtë dhe e drejtpërdrejtë. Ne kemi futur fushat tona televizive me vlera të shumta. Në përgjithësi, ky është një konfigurim i të gjitha cilësimeve (por është më mirë të mos i prekni pa lejen e djemve të mëdhenj, dua të them këshillat e krijuesve të modulit)

8. Shfaqja e rezultateve të filtrit dhe filtrimit

Vetë filtri

[]
[[+ filtra]]

Dalja e rezultateve me faqezim

[[! tmKatalog]]
    [[! + faqe.nav]]

Renditja e rezultateve

9. Aktivizoni filtrin

Tani ju vetëm duhet të aktivizoni filtrin tonë. Për ta bërë këtë, shkoni te Aplikacionet / Menaxhimi i Filtrave.

Këtu duhet të kontrolloni kutitë pranë çdo filtri dhe të klikoni butonin"Ruaj".

Nëse keni bërë gjithçka në mënyrë korrekte, atëherë filtri duhet të funksionojë. Kjo eshte e gjitha. Nëse keni ndonjë pyetje - pyesni në komente, unë do të përpiqem të përgjigjem. Në përgjithësi, këtu është dokumentacioni për tagManager2. Suksese në zhvillim. V "Demo" një nga faqet e mia që ka implementuar një filtër duke përdorur tagManager2

Filtrat në Revolution ju lejojnë të përpunoni dhe ndryshoni vlerat e etiketave brenda shablloneve, pjesëve, fragmenteve tuaja.

Filtrat e hyrjes

Aktualisht, filtrat e hyrjes përdoren në përgatitjen për përpunimin e filtrave të daljes. Zakonisht ato përdoren vetëm brenda bërthamës MODX.

Filtrat e daljes

Në MODx Revolution, filtrat e daljes përdoren si një ose më shumë modifikues të daljes, ato janë të ngjashme me thirrjet PHx në MODx Evolution, por ndryshojnë në atë që janë ndërtuar tashmë në kernel.

Sintaksa e modifikuesit:

[[+ element: modifikuesi = `vlera`]]

Filtrat mund të aplikohen në mënyrë sekuenciale (të shkruar nga e majta në të djathtë):

[[+ element: modifikues = `vlera`: modifikues tjetër =` vlera2`: dhe një tjetërmodifikues: një tjetër = `vlera3`]]

Gjithashtu filtrat mund të përdoren për të modifikuar daljen e fragmenteve... Filtri duhet të shkruhet para të gjithë parametrave (para pikëpyetjes):

Modifikuesit e daljes

Tabela tregon disa modifikues dhe shembuj të përdorimit të tyre. Në shembujt, ato aplikohen për mbajtësit e vendeve, por duhet ta mbani mend këtë modifikuesit mund të aplikohen në çdo etiketë MODX Revolution.

Modifikues Përshkrim Shembull përdorimi
nëse, të dhëna nëse - vendos një kusht shtesë, input - shton të dhënat e përpunuara në etiketë [[+ num: është = `10`: dhe: nëse =` [[+ num]] `: ne =` 15`: atëherë = `Po, e barabartë me 10 dhe jo me 15`]]
ose, dhe Kombinimi i disa modifikuesve me një lidhje OR dhe një lidhje AND [[+ numProduktet: është = `10`: ose: është =` 11`: atëherë = `Ka 10 ose 11 produkte`: ndryshe =` Nuk jam i sigurt se sa produkte`]]
është i barabartë, i barabartë, i barabartë, i barabartë, është, baraz Krahason vlerën e transmetuar me atë të caktuar. Nëse vlerat përputhen, vlera "atëherë" del, nëse jo - "tjetër" [[+ numProduktet: isequalto = `10`: atëherë =` Ka 10 produkte`: else = `Nuk jam i sigurt se sa produkte`]]
notequalto, notequals, isnt, isnot, neq, ne Krahason vlerën e transmetuar me atë të caktuar. Nëse vlerat NUK përputhen, del vlera "atëherë", nëse jo - "tjetër" [[+ numProdukte: notequalto = `10`: atëherë =` Nuk jam i sigurt se sa produkte`: else = `Ka 10 produkte`]]
i madhthanorebarazuar, i barabartëor i madh, ge, p.sh., isgte, gte E njëjta gjë, vetëm kushti "Më i madh se ose i barabartë me" [[+ numProdukte: gte = `10`: atëherë =` Ka 10 ose më shumë produkte këtu`: else = `Këtu ka më pak se 10 produkte`]]
është më e madhe, më e madhe, isgt, gt E njëjta gjë, vetëm kushti "Rreptësisht më shumë" [[+ numProdukte: gt = `10`: atëherë =` Këtu ka më shumë se 10 produkte`: else = `Këtu ka 10 produkte ose më pak`]]
barabartpakthan, më pakthanorebarabartë, el, le, islte, lte E njëjta gjë, vetëm kushti "Më pak se ose e barabartë me" [[+ numProdukte: lte = `10`: atëherë =` Ka 10 produkte ose më pak`: else = `Këtu ka më shumë se 10 produkte`]]
islowerthan, islesstan, më e ulët se, më pak se, islt, lt E njëjta gjë, vetëm kushti "Rreptësisht më pak" [[+ numProdukte: lte = `10`: atëherë =` Këtu ka më pak se 10 produkte`: else = `Këtu ka 10 ose më shumë produkte`]]
fshehin Fsheh elementin nëse plotësohet kushti [[+ numProduktet: lt = `1`: fsheh]]
shfaqje Shfaq një artikull nëse plotësohet një kusht [[+ numProdukte: gt = `0`: shfaq]]
pastaj Përdoret për të kompozuar kushte [[+ numProdukte: gt = `0`: pastaj =` Produkte në magazinë! `]]
tjetër Përdoret për të formuluar kushtet (në lidhje me "pastaj") [[+ numProdukte: gt = `0`: atëherë =` Artikuj në magazinë! `: else =` Na vjen keq, por u shitën .`]]
anëtarof, isember, mo Kontrollon nëse një përdorues është anëtar i grupit të përdoruesve të specifikuar [[+ modx.user.id: Memberof = `Administrator`]]

Modifikues për të punuar me vargje

Modifikues Përshkrim Shembull përdorimi
Mace Shton një vlerë pas etiketës [[+ numProdukte: mace = `mallra`]]
lcase, shkronja të vogla, strtolower Konverton të gjitha shkronjat në shkronja të vogla [[+ titulli: lcase]]
ucase, shkronja të mëdha, strtoupper Shndërron të gjitha shkronjat në shkronja të mëdha [[+ titulli i gjatë: ucase]]
ucwords Shkron shkronjën e parë të fjalëve me shkronjë të madhe [[+ titulli: ucwords]]
i pari Shkron shkronjën e parë në një varg [[+ emri: ucfirst]]
htmlent, htmlentitete Konverton të gjithë karakteret në entitete HTML [[+ email: htmlent]]
esc, arratisje Shpëton në mënyrë të sigurt karakteret duke përdorur shprehje të rregullta dhe str_replace. Gjithashtu i shpëton personazheve [,] dhe ` [[+ email: arratisje]]
rrip Zëvendëson të gjitha vizat, skedat dhe çdo numër hapësirash me vetëm një hapësirë [[+ dokument teksti: strip]]
stripString Prit nënvargun e specifikuar nga vargu [[+ emri: stripString = `Mr.`]]
zëvendësojnë Zëvendëson nënvargjet [[+ titulli i faqes: zëvendësoj = `Z. == Znj.`]]
striptegs, stripEtiketa, shënime, strip_tags Zhduk të gjitha etiketat (mund të specifikoni etiketat e lejuara). [[+ kodi: strip_tags = `
len, gjatësi, strlen Printon gjatësinë e linjës [[+ varg i gjatë: strlen]]
anasjelltas, strrev Përmbysni karakterin e vargut për karakter [[+ tekst pasqyre: anasjelltas]]
mbështjellje fjalësh Fut një ndërprerje rreshti pas çdo karakteri të ntë (fjalët nuk janë thyer) [[+ teksti i trupit: wordwrap = `80`]]
fjalëwrapcut Fut një ndërprerje rreshti pas çdo karakteri të nëntë, edhe nëse ky karakter është brenda një fjale [[+ teksti i trupit: wordwrapcut = `80`]]
limit Nxjerr një numër të caktuar karakteresh nga fillimi i rreshtit (parazgjedhja është 100) [[+ përshkrim: limit = `50`]]
elipsë Shton një elipsë dhe shkurton vargun nëse është më i gjatë se një numër i caktuar karakteresh (parazgjedhja është 100) [[+ përshkrimi: elipsis = `50`]]
etiketë Mbrojtja. Shfaq elementin ashtu siç është, pa etiketën:. Për përdorim në dokumentacion [[+ shfaq këtë: etiketë]]
matematikë Rikthen rezultatin e llogaritjeve të avancuara (me CPU. Nuk rekomandohet)
shtoj, shtoj, incr Shton numrin e specifikuar (e parazgjedhur +1) [[+ shkarkime: incr]], [[+ blackjack: shtoni = `21`]]
zbres, zvogëlohet, zvogëlohet Zbret numrin e specifikuar (parazgjedhja -1) [[+ numërimi mbrapsht: zvogëloni]], [[+ para: zbrit = `100`]]
shumohem, mpy Shumëzohet me numrin e specifikuar (parazgjedhja * 2) [[+ trifecta: mpy = `3`]]
ndaj, div Ndan me numrin e specifikuar (parazgjedhja / 2) [[+ vlerësimi: div = `4`]]
modul, mod Kthen pjesëtimin modul të një numri
(e parazgjedhur:% 2, kthen 0 ose 1))
[[+ numri: mod]]
i zbrazët, i paracaktuar, bosh, i zbrazët Kthen vlerën e modifikuesit nëse vlera e etiketës është bosh [[+ emri: parazgjedhje = "anonim"]]
bosh, nëse shënimi, nuk është i zbrazët Kthen vlerën e modifikuesit nëse vlera e etiketës NUK është bosh [[+ emri: notempty = `Përshëndetje, [[+ emri]]!`]]
nl2br Zëvendëson karakteret e linjës së re (\ n) me një etiketë HTML
[[+ skedar teksti: nl2br]]
datë Konverton vulën kohore në tekst, sipas formatit të specifikuar (Formati i datës) [[+ viti i lindjes: data = `% Y`]]
strtotime Konverton datën si tekst në vulën kohore UNIX [[+ koha: strtotime]]
fuzzydate E kthen datën në formatin "dje, sot,...". Pranon një vlerë datë. [[+ krijuar në: fuzzydate]]
më parë Kthen numrin e sekondave, minutave, javëve ose muajve që nga data e specifikuar në etiketë. [[+ krijuar më: më parë]]
md5 Krijon një hash MD5 të vlerës [[+ fjalëkalimi: md5]]
cdata Mbështjell rezultatin me etiketat CDATA [[+ përmbajtje: cdata]]
informacioni i përdoruesit Kthen vlerën e kërkuar nga profili i përdoruesit. Kërkohet ID e përdoruesit [[+ modx.user.id: informacioni i përdoruesit = `emri i përdoruesit`]]
isloggedin Kthehet e vërtetë nëse përdoruesi është vërtetuar në kontekstin aktual [[+ modx.user.id: isloggedin]]
nuk është iloggedin Kthehet e vërtetë nëse përdoruesi NUK është vërtetuar në kontekstin aktual [[+ modx.user.id: isnotloggedin]]
urlencode Konverton një vlerë në një URL [[+ mystring: urlencode]]
urldcode Konverton një vlerë nga një URL [[+ myparam: urldcode]]

Përdorimi i modifikuesve të daljes në lidhje me parametrat

Nëse etiketa ka parametra, atëherë ato duhet të shkruhen menjëherë pas modifikuesit:

Krijimi i një modifikuesi të personalizuar

Çdo fragment mund të përdoret si modifikues i daljes. Për ta përdorur atë, thjesht jepni emrin e fragmentit në vend të modifikuesit. Për shembull, le të krijojmë një fragment makeExciting që shton një numër të caktuar pikëçuditjesh në dalje:

[[* titulli i faqes: makeExciting = `4`]]

Një thirrje e tillë etikete do t'i kalojë parametrat e mëposhtëm në fragmentin makeExciting për përpunim:

Modifikuesi i Informacionit të Përdoruesit

Qasje e drejtpërdrejtë në të dhëna nga një tabelë atributet modx_user në bazën e të dhënave, përdorimi i modifikuesve të daljes në vend të fragmenteve mund të arrihet thjesht duke përdorur modifikuesin UserInfo.

Zgjidhni kolonën e kërkuar nga tabela dhe specifikoni atë si një veti modifikues, për shembull, si kjo:

Kuptimi Modifikues
Çelësi i brendshëm i përdoruesit [[! + modx.user.id: userinfo = `Internal Key`]]
Identifikohu [[! + modx.user.id: informacioni i përdoruesit = `emri i përdoruesit`]]
Emri i plotë [[! + modx.user.id: informacioni i përdoruesit = `emri i plotë`]]
Roli [[! + modx.user.id: informacioni i përdoruesit = `roli`]]
Email [[! + modx.user.id: informacioni i përdoruesit = `email`]]
Telefoni [[! + modx.user.id: informacioni i përdoruesit = `telefon`]]
Celular [[! + modx.user.id: informacioni i përdoruesit = `celular`]]
Faks [[! + modx.user.id: informacioni i përdoruesit = `faks`]]
Data e lindjes [[! + modx.user.id: userinfo = `dob`: data =`% Y-% m-% d`]]
Kati [[! + modx.user.id: informacioni i përdoruesit = `gjinia`]]
Vendi [[+ modx.user.id: userinfo = `country`]]
Rajon [[+ modx.user.id: informacioni i përdoruesit = `gjendja`]]
Kodi Postar [[+ modx.user.id: userinfo = `zip`]]
Foto [[+ modx.user.id: informacioni i përdoruesit = `foto`]]

PHx (Placeholders Xtended) shton veçori të reja për shfaqjen e mbajtësve të vendeve, etiketat MODx (përfshirë parametrat e TV) dhe etiketat e cilësimeve të faqes. Analizuesi rekurziv lejon etiketat e mbivendosura. Është e mundur të krijoni modifikuesit tuaj duke krijuar fragmente.

Ju mund të shkarkoni versionin më të fundit të PHx nga depoja MODX këtu.

Instalim i ri

  1. Shkarkoni dhe hiqni arkivin.

Përditëso

  1. Shkarkoni dhe hiqni arkivin.
  2. Riemërtoni drejtorinë / assets / plugins / phx në / assets / plugins / phx-old
  3. Krijo një direktori "phx" në dosjen / assets / plugins.
  4. Ngarkoni përmes FTP ose thjesht kopjoni përmbajtjen e arkivit në / asetet / shtojcat / phx
  5. Krijoni një shtojcë të re "PHx" në panelin e kontrollit MODx (Items-Controls-Items-Plugins) dhe kopjoni përmbajtjen e skedarit phx.plugin.txt në të
  6. Kontrolloni ngjarjen "OnParseDocument" në skedën "Ngjarjet e sistemit".

Konfigurimi

Në skedën e konfigurimit, ndërsa redaktoni shtojcën, kopjoni në fushën "Konfigurimi i shtojcave":

& phxdebug = Regjistri i ngjarjeve; int; 0 & phxmaxpass = Maks. numri i kalimeve; int; 50

Për përdoruesit e avancuar

Mund të ndryshoni cilësimet e paracaktuara për shtojcën PHx:

Regjistri i ngjarjeve

0 = i paaftë
1 = Regjistrimi i ngjarjeve PHx është aktivizuar
Nëse aktivizohet, PHx krijon një regjistër të detajuar për çdo ngjarje të regjistruar në regjistrin e ngjarjeve (Raporte-> Shiko ngjarjet)

Maks. numri i kalimeve

Përcakton thellësinë maksimale të përpunuar të etiketave të mbivendosur. Rekomandohet të lini vlerën në 50.

PHx (Placeholders Xtended) zgjeron përdorimin e mbajtësve të vendeve, etiketave të përmbajtjes (përfshirë parametrat e TV) dhe etiketave të personalizimit të faqeve. Falë kësaj, ju mund të përcaktoni lehtësisht formatin e daljes së rezultatit përfundimtar. PHx është i integruar në analizuesin MODX, duke zgjeruar funksionalitetin e tij me modifikues, kushte dhe, si bonus, e bën atë me të vërtetë rekursive.

Etiketat e mbështetura

PHx mbështet etiketat e mëposhtme MODx:

  • [+ mbajtës vendi +]
  • [* etiketat e përmbajtjes *] (për shembull: [* përmbajtja *], [* titulli i faqes *] dhe të tjera)
  • [* Parametrat e televizorit *]
  • [(etiketat e personalizimit)] (për shembull: [(base_url)], [(emri_site)] dhe të tjerë)

Pjesë që mbështesin PHx

  • Po kështu
  • MaxiGallery

Ju mund të përdorni sintaksën PHx në pjesët e përdorura nga fragmentet që nuk janë në këtë listë, por kjo kërkon një metodë tjetër (shih seksionin Këshilla dhe truket)

Vendmbajtës i rregullt i formularit

[+ mbajtës vendi +]

shndërrohet lehtësisht në mbajtës PHx:

[+ mbajtës i vendit: esc +]

Ju mund të bëni të njëjtën gjë me etiketën e përmbajtjes:

[* krijuar nga *]

Shto një modifikues:

[* krijuar nga: data = `% a% B% d,% Y në% H:% M` *]

Ju gjithashtu mund të përdorni modifikues të shumtë në të njëjtën kohë. Ato do të përpunohen nga e majta në të djathtë:

Somevar: esc: nl2br: strip

Aplikim i zgjeruar

Prania e një mbajtëse të veçantë "phx" ju lejon të përdorni sintaksën PHx pa pasur një ndryshore reale.

[+ phx: nëse = `[+ kjo +]`: është = `[+ ajo +]`: atëherë = `bëje këtë`: tjetër =` bëj atë` +]

Me disa modifikues, ky vendmbajtës merr një kuptim të caktuar. Në rastin e modifikuesit "userinfo", ai kthen vlerën përkatëse nga informacioni për përdoruesin aktual:

[+ phx: informacioni i përdoruesit = `emri i përdoruesit` +]

Çështje të njohura

Sintaksë

Duket logjike, por ia vlen të përqendrohemi. Shmangni përdorimin e konstrukteve të mëposhtme në shabllonin tuaj, përveç nëse ato janë pjesë e etiketës MODx:

[+
[*
[(
+]
*]
)]
]]

Analizuesi do të përpiqet t'i përpunojë ato dhe MODx do të hedhë një gabim. Zakonisht ky problem nuk lind. Por në rastin e JavaScript, mund të keni një konstrukt si ky:

Array

E cila do të provokojë sjellje të çuditshme për shkak të +]. Shihni gjithashtu etiketën CDATA mbyllëse:

/* ]]> */

Mund të krijojë probleme.

Mbani mend, nuk mund t'i humbni të dhënat e faqes tuaj duke përdorur sintaksë të pasaktë PHx. Gjëja më e keqe që mund të ndodhë është që shablloni juaj të mos shfaqet siç duhet.

Vargjet

rast

ucase

Konverton të gjitha karakteret në varg në shkronja të mëdha.

[+ vargu: ucase +]

Në hyrje:

Ky është një varg

KY ËSHTË NJË STRING

i pari

Shkronja e parë në rresht do të jetë e madhe.

[+ vargu: ucfirst +]

Në hyrje:

gjatësia | len

Rikthen gjatësinë e vargut.

Në hyrje:

Ky është një varg

shënime

Zhduk të gjitha etiketat HTML nga vargu.

[+ vargu: shënime +]

Në hyrje:

Kjo është a varg

Ky është një varg

esc

Heq etiketat html dhe ndërprerjet e rreshtave

htmlent

Konverton variablin origjinal në entitet html. Ngjashëm me htmlentities () në PHP.

nl2br

Konverton karakteret e furnizimit të linjës në etiketa.

[+ vargu: nl2br +]

Në hyrje:

Kjo është
një varg

Kjo është
një varg

rrip

Do të heqë karakteret e linjës së re (\ n), skedat (\ t), hapësirat e njëpasnjëshme.

[+ varg: shirit +]

Në hyrje:

Kjo është
a
varg

Ky është një varg

Modifikues të tjerë

e kundërta

Ktheni shkronjat prapa.

mbështjellje fjalësh

Thye fjalët në vlerën aktuale më të gjatë se gjatësia e dhënë e karaktereve duke vendosur një hapësirë ​​në mes.

Parazgjedhja: 70 karaktere.

Mbështjellja e fjalëve (= `gjatësia`)

gjatësia - karaktere

limit

Kthen karakteret e para X nga vlera aktuale.

Parazgjedhja: 100 karaktere.

kufiri (= `gjatësia`)

E veçanta

datë

Konverton stampat kohore unix në formatin e specifikuar.

data (= `format i datës`)

dataformat: Sipas formatit të funksionit PHP strftime

[* krijuar më: datë = `% d.% m.% Y` *]

Në mënyrë që data të shfaqet në përputhje me gjuhën aktuale të faqes, duhet të vendosni vendndodhjen në fillim të kodit të shtojcës PHx. Shembull më poshtë për gjermanishten:

setlocale (LC_ALL, " [email i mbrojtur]"," de_DE "," de "," ge ");

md5

Krijon një hash MD5 të vlerës aktuale.

informacioni i përdoruesit

Fushat e përdorura në bazën e të dhënave MODx nga tabela user_attributes (për shembull: emri i përdoruesit, emaili i përdoruesit).

Informacioni i përdoruesit = `fushë`

  • cachepwd: Fjalëkalimi i memories
  • koment: Koment
  • vendi: Vendi
  • dob: Data e lindjes në formatin e kohës UNIX
  • email: Email
  • faks: Faks
  • emri i plotë: Emri i plotë
  • gjinore: Kati
  • çelësi i brendshëm: Çelësi i brendshëm i përdoruesit
  • login e fundit: Hyrja e fundit, në formatin e kohës UNIX
  • logincount: Numri i hyrjeve
  • celular: Celular
  • fjalëkalimin: Fjalëkalimi
  • telefonit: Telefoni
  • Foto: Fotoja
  • rol: Roli
  • shteti: Statusi
  • kjo hyrje: Ky identifikim, në formatin e kohës UNIX
  • emri i përdoruesit: Identifikohu
  • zip: Kodi Postar

matematikë

Përdorni llogaritjet si - * + /.

Matematikë = `llogaritje`

"?" simboli zëvendësohet me vlerën aktuale të shtesës, por mund të përdorni edhe etiketa të mbivendosura.

Shembull i llogaritjes:? +1+ (2 + 3) + 4/5 * 6

i zbrazët

Përdorni "vlera tjetër" nëse mbajtësi i vendndodhjes / templatevar është bosh.

Ifempty = `vlerë tjetër`

zgjidhni

Pranon një vlerë në varësi të vlerave të mbajtësit të vendit / shabllonit.

Zgjidh = `opsionet`

parametrat: vlera1 = prodhimi1 & vlera2 = prodhimi2

Në hyrje: 1

[+ vendmbajtes: zgjidhni = `0 = FAKT & 1 = AKTIV & 2 = E PAKINUAR` +]

Kthimi: ON

Shprehjet e kushtëzuara

është

ne

pseudonimi: nuk është, nuk është

jo e barabartë (! =)

p.sh

më i madh ose i barabartë (> =)

el

më pak ose e barabartë (<=)

gt

më shumë (>)

lt

më pak (<)

mo = `Grupet e internetit`

sinonime (aliases): isinrole, ir, anëtarof

Merr një listë të grupeve të uebit të ndarë me presje si parametër dhe kthen true/false në varësi të faktit nëse përdoruesi aktual i përket ndonjërit prej këtyre grupeve apo jo (zëvendëson modifikuesin "inrole", i cili duhej të kombinohej me operatorin e kushtëzuar).

[+ phx: mo = `grupi i uebit tim`: atëherë =` "Unë jam anëtar": else =` "NUK jam anëtar" +]

nëse = `vlera`

Pranon një variabël për krahasim si parametër. Mund të përdoret edhe në kombinim me : ose ose : dhe.

[+ phx: nëse = `[+ çmimi +]`: gt = `0`: atëherë =` Çmimi: [+ çmimi +] `+]

ose

OSE logjike (kontrollon nëse kushti i parë ose i dytë është i vërtetë).

[+ phx: nëse = `[* id *]`: është = `2`: ose: është =` 3`: atëherë = `((Pjesë))`: tjetër = `((Pjesë tjetër))` +]

Në këtë shembull, nëse ID-ja aktuale është 2 ose 3, atëherë del pjesa ((Chunk)), përndryshe del pjesa ((OtherChunk)).

dhe

Logjike AND (kontrollon nëse të dyja kushtet janë të vërteta).

[+ phx: if = `[! UltimateParent!]`: është = `1`: dhe: nuk është =` [* id *] `: atëherë =` ((ChildChunk)) `: other =` ((ParentChunk)) `+]

Në këtë shembull, nëse UltimateParent është 1 dhe nuk është i barabartë me ID-në aktuale, atëherë del pjesa ((ChildChunk)), përndryshe del pjesa ((ParentChunk)).

atëherë = `shabllon`

Kuptimi shabllon shfaqet kur të gjitha kushtet janë të vërteta. Këtu mund të specifikoni thirrjen ((copë)), [[snippet]] ose HTML të pastër.

else = `shabllon`

Kuptimi shabllon shfaqet kur kushtet nuk janë të vërteta. Këtu mund të specifikoni thirrjen ((copë)), [[snippet]] ose HTML të pastër.

shfaqje

Përdoret si pastaj, por vlera origjinale përdoret si shabllon për daljen. Ekzekutohet nëse kushtet janë të vërteta.

[+ mbajtësi i vendit tim: len: gt = `3`: shfaq +]

Në këtë shembull, vlera e mbajtësit të vendndodhjes do të shfaqet nëse gjatësia e saj është më shumë se 3 karaktere.

Modifikues të personalizuar

Një modifikues është një fragment i thjeshtë që përpunon një vlerë të caktuar. Është e mundur të krijoni modifikuesit / mini-snippet tuaja duke shtuar një fragment të ri në menaxherin e burimeve MODx ose duke krijuar një skedar në dosjen e modifikuesve të shtojcës PHx.

Meqenëse kodi modifikues është i thjeshtë, ai nuk ka nevojë për asnjë parametër, përveç atyre që merr nga analizuesi.

Ka dy variabla kryesore:

$ prodhim- përmban vlerën aktuale të ndryshores që duhet modifikuar.
opsionet $- një parametër opsional, vlera e të cilit i kalohet modifikuesit.

Shembull.

Këtu janë disa shembuj të përdorimit të modifikuesve. Le të themi se mbajtësi i vendit mbajtësi i vendit tim ka kuptimin "test":

[+ mbajtësi i vendit tim: mymodifier +]

Variabla e prodhimit $ përmban vlerën "test".
Variabli i opsioneve $ nuk përmban asgjë, pasi asnjë parametër nuk iu kalua modifikuesit.

[+ myplaceholder: mymodifier = `opsionet e mia` +]

Variabla e prodhimit $ përmban ende vlerën "test".
Variabli i opsioneve $ tani përmban vlerën "opsionet e mia"

Variabla të ndryshëm (për përdoruesit e avancuar)

$ input - përmban vlerën origjinale të pamodifikuar.
kushti $ është një grup që përmban elementet që përbëjnë shprehjen e kushtëzuar (0, 1, || dhe &&).

Krijimi i modifikuesit tuaj

Shembulli 1: Më pëlqen MODx

Duke përdorur këtë njohuri, le të krijojmë një modifikues të ri personal. Do të jetë një modifikues pa parametër, i cili thjesht do të shtojë tekstin "sepse I love MODx" në variabël. Për ta bërë këtë, duhet të bëni hapat e mëposhtëm:

1. Në Menaxherin e Burimeve, shkoni te Burimet (Elementet) -> Menaxho burimet (elementet) -> Snippet

2. Kliko "Pjesë e re"

phx: dashuri"

Në mënyrë që një fragment të perceptohet si një modifikues për PHx, emri i tij duhet të ketë prefiksin "phx:" pa hapësira midis tij dhe emrit aktual të fragmentit. Më pas mund ta përdorni si modifikues duke shtuar: dashuri në çdo mbajtës të vendit, për shembull: [+ myplaceholder: dashuri +].

4. Tani shtoni kodin modifikues në fushën e kodit. Le të themi se do të jetë kodi i mëposhtëm:

5. Ruani ndryshimet dhe modifikuesin tonë të ri ( : dashuri) është gati për përdorim!

Shembulli 2: Më pëlqen edhe më shumë MODx

Le të krijojmë një modifikues të ngjashëm me modifikuesin : dashuri nga shembulli i mëparshëm, por gjithashtu le t'i japim mundësinë për të shtuar vlerën e parametrit të kaluar në vargun origjinal, nëse ishte specifikuar.

1. Në Menaxherin e Burimeve, shkoni te Burimet (Elementet) -> Menaxho burimet (elementet) -> Snippet

2. Kliko "Pjesë e re"

3. Cakto emrin e fragmentit në " phx: dashuri2"

Në mënyrë që një fragment të perceptohet si një modifikues për PHx, emri i tij duhet të parashteset me " phx:"pa hapësira midis tij dhe emrit aktual të fragmentit. Më pas mund ta përdorësh si modifikues duke shtuar: dashuri në çdo mbajtës të vendit, për shembull: [+ myplaceholder: love2 +].

Pjesa e mirë.

Shembuj të tjerë

[+ mbajtësi i vendit tim: gt = `1`: pastaj =` Po`: else = `Jo` +]
[+ mbajtësi i vendit tim: lt = `3`: dhe: gt =` 1`: atëherë = `Po`: tjetër =` Jo` +]
[+ myplaceholder: lt = `[+ someplaceholder +]`: then = `Po`: other =` Jo` +]
[+ myplaceholder: islt = `2`: pastaj =` Po`: else = `Jo` +]
[+ mbajtësi im i vendit: nuk është = `2`: ose: lt =` 3`: atëherë = `Po`: tjetër =` Jo` +]

Të gjithë shembujt do të kthehen po.

[+ mbajtësi im i vendit: nuk është = `2`: atëherë =` Po`: else = `Jo` +]
[+ myplaceholder: gt = `[+ someplaceholder +]`: then = `Po`: other =` Jo` +]
[+ mbajtësi i vendit tim: lt = `2`: pastaj =` Po`: else = `Jo` +]
[+ mbajtësi i vendit tim: gt = `2`: pastaj =` Po`: else = `Jo` +]
[+ mbajtësi i vendit tim: lt = `1`: pastaj =` Po`: else = `Jo` +]

Të gjithë shembujt do të kthehen #.

Artikujt kryesorë të lidhur