Phx va modifikatorlarni filtrlang.
Golovna
Shunday qilib, saytingiz uchun yaratishingiz mumkin bo'lgan filtr yanada universaldir!
Siz har qanday loyiha ustida ishlashingiz va ko'p vaqtni tejashingiz mumkin
Eng boshidan pdoTools paketiga kiritilgan pdoResources paketini o'rnatishingiz kerak.
Siz barcha pdo paketlarini (pdoTools) o'rnatishingiz yoki MODx Revolution-da filtr yaratish uchun faqat pdoResources paketini qo'shishingiz mumkin.
Paketlarni o'rnatganingizdan so'ng, GitHub'dan yuklab olgan parchani loyihangizga ulaymiz.
Agar siz katalogni noldan ajratayotgan bo'lsangiz, Ajax filtrlash uchun qo'shiq sinflari tanlovini yaratishingiz kerak bo'ladi.
Biroq, agar sizda allaqachon tayyor katalog mavjud bo'lsa, siz JS fayllarida Ajax filtr elementlarining sinflarini belgilashingiz mumkin (quyida bo'lim).
$(function() ( //MODx pdoResources Ajax filtri //Filtr sozlamalari var fadeSpeed = 200, //Fade Animation tezligi ajaxCountSelector = ".ajax-count", // Elementlarning CSS selektori ajaxContainerSelector = ". ajax-container" , // Ajax konteynerining CSS selektori ajaxItemSelector = ".ajax-item", // Ajax elementining CSS selektori ajaxFormSelector = ".ajax-form", // CSS selektori Ajax filtri shakli ajaxFormButtonStart = ".ajax- start", // Tugmachaning CSS tanlagichi Filtrlashni boshlash ajaxFormButtonReset = ".ajax-reset", // CSS tugmachasini qayta o'rnatish Ajax formasi sortDownText = "Kuzilish uchun", sortUpText = "O'sish uchun"; funksiya ajaxCount() () ( if( $(".ajax-filtr-hisoblash").uzunlik) ( var count = $(".ajax-filtr-count").data("hisoblash"); $(ajaxCountSelector).text(count); ) else ( $(ajaxCountSelector).text($(ajaxItemSelector).length); javob = $(javob);$(ajaxCont ainerSelector).fadeOut(fadeSpeed); setTimeout(function() ( $(ajaxContainerSelector). html($response). .find(ajaxContainerSelector).html()).fadeIn(fadeSpeed); ajaxCount(); ), fadeSpeed);
- ))) ) $(ajaxContainerSelector).on("klik", ".ajax-more", funksiya(e) ( e.preventDefault(); var ofset = $(ajaxItemSelector).length; $.ajax((ma'lumotlar: $(ajaxFormSelector) ) ).serialize()+"&offset="+offset )).done(funksiya(javob) ( $(".ajax-more").remove(); var $response = $(response); $response.find ( $(ajaxContainerSelector).append($response.find(ajaxContainerSelector).html()); $(ajaxItemSelector).fadeIn(); )) $(ajaxFormButtonStart).click(function( e) ( e.preventDefault (); ajaxMainFunction( )) $(ajaxFormButtonReset).click(funksiya(e) ( e.preventDefault(); $(ajaxFormSelector).trigger("reset"); $("input" ).val("pagetitle"); $("input").val("asc") setTimeout(function() ( $()).data("sort-dir", "asc").toggleClass("button-sort-asc").text (sortUpText ), fadeSpeed), ajaxMainFunction( )) $("").data("sort-dir", "asc").click(function() ( var ths = $(bu) ) ); $("input").val($(bu).data("sort-by")); $("kirish").val($(bu).ma'lumotlar("sort-dir")) ; setTimeout(function() ( $("").not(bu).toggleClass("button-sort-asc").text(sortUpText); ths.data("sort-dir") == "asc" ? ths .data("sort-dir", "desc").text(sortDownText) : ths.data("sort-dir", "asc").text(sortUpText); $(this).toggleClass("button-sort -asc"); ), fadeSpeed); ajaxMainFunction();
- 15-22-qatorlar: natijalarni filtrlash uchun resurs davolovchi skript;
- 24-35 qatorlar: Ajax filtrlashning asosiy funksiyasi;
- 37-49 qatorlar: "Enchant More" tugmasini bosish uchun namuna oluvchi;
- 51-54-qatorlar: “filtr” tugmasini bosish uchun namuna oluvchi.
- Ushbu tugmani har kuni qoldirish mumkin, aks holda filtrlash avtomatik ravishda amalga oshiriladi.
- Avtomatik filtrlash 68-70 qatorlarni tanlash bilan ta'sir qilishi mumkin;
- 56-66 qatorlar: shaklni tozalash va filtrni olib tashlash uchun namuna.
- Saralash parametrlarini tushirish uchun 59-63 qatorlar hisobga olinadi;
68-70 qatorlar: filtr shakli maydonlarini o'zgartirish uchun avtomatik saralash funktsiyasi;
72-82 qatorlar: televizor parametri uchun universal tartiblash funksiyasi.MODx inqilobida PHP ulanishlari parchasi<=".$_GET["area_to"]; } //Checkbox Type if($_GET["garage"]) { $filter = "garage=1"; } //End Settings //Sort if($_GET["sortby"]) { $sortby = $_GET["sortby"]; } else { $sortby = "pagetitle"; } if($_GET["sortdir"]) { $sortdir = $_GET["sortdir"]; } else { $sortdir = "asc"; } //End Sort //Offset $offset = 0; if($_GET["offset"]){ $offset = $_GET["offset"]; } if($filter) { $where = $modx->MODx catalogFilter panelida yangi parcha yarating va keyin uni almashtiring:
) else ( $where = ""; ) $params_count = massiv("ota-ona" => $ota-ona, "chegara" => 0, "tpl" => "@INLINE ,", "select" => "id", "includeTVs" => $fields, "showHidden" => "1", "qaerda" => $qaerda);
$count = $modx->runSnippet("pdoResources", $params_count);
$hisob = hisoblash(portlash(",",$hisob))-1;
$modx->setPlaceholder("count",$count);
Bu erda = "qavat" nomi bizning katalogimiz Filtr parchasining 6-8-qatorlariga mos keladi.
Boshqa shakl maydonlarini qayta ishlash xuddi shunday tarzda amalga oshiriladi.
O'ylaymanki, bu aniq bo'ldi va nam maydonlarni yaratish siz uchun muammo bo'lmaydi.
- Parcha katalog shablonida quyidagicha ko'rinadi:
- [[!katalogFilter?
- &tpl=`tplCatItem` &limit=`3` &parents=`5` &fields=`rasm,maydon,qavat,garaj,narx` ]]
- tpl=`tplCatItem` - katalog ro'yxatidagi element bo'lagi;
ota-onalar=`5` - resurs katalogi uchun hujjat identifikatorini belgilang;
fields=`tasvir,maydon,qavat,garaj,narx` - tplCatItem oxirida ko'rsatilishi va filtrlash vaqtida qayta ishlanishi kerak bo'lgan televizorlar tomonidan to'ldiriladi. | Butt bo'lagi tplCatItem |
Yuqorida | [[+tv.floor]] |
[[+tv.area:isnot=``:then=` | Kvadrat |
[[+tv.area]] kv.m. | Garaj |
[[+tv.garage:is=`1`:then=`E`:else=`Ni`]]
Narxi:
Bizning skriptimizda filtrlash natijalarini istalgan televizor maydoni bo'yicha saralash uchun tayyor yechim mavjud.
Filtr formasiga quyidagi maydonlarni kiriting va ularning qiymatlarini o'zgartirmang, ular shunchaki filtr formasiga bog'liq:
asc
HTML shabloningizda yangi tugma yarating va ma'lumotlar atributida ko'rinishni filtrlamoqchi bo'lgan maydonni belgilang:
Narx bo'yicha saralash:
O'sish orqasida
Bosilganda, sinf tugmasi-sort-asc ko'rsatiladi, undan siz to'g'ridan-to'g'ri saralashni o'zgartirganda, o'qni qo'shganda va hokazolarni loyihalashda foydalanishingiz mumkin. Siz qatnashadigan ma'lumotlar-sort-by atributiga televizor yozishingiz mumkin. filtrlashda.
Hammasi tartibga solingan.
Endi biz pdoResources snippetidan olingan natijalar bilan MODx-da noqulay Ajax resurs filtrini yaratishni ko'rib chiqdik.
Inqilobdagi filtrlar shablonlaringiz, bo'laklaringiz va parchalaringiz o'rtasida joylashgan teglar qiymatlarini tahrirlash va o'zgartirish imkonini beradi.
Filtr kiritish
Ayni paytda, kirish filtrlari qayta ishlash va filtrni chiqarishdan oldin tayyorgarlik jarayonida sinovdan o'tkaziladi.
Vikoristlarning hidi faqat MODX yadrosining o'rtasida paydo bo'lsin.
Filtr chiqishi MODX Revolutionda displey filtrlari bir yoki bir nechta displey modifikatorlari sifatida ishlatiladi, ular MODx Evolutionning PHx filtrlariga o‘xshaydi, lekin yadroga allaqachon o‘rnatilganligi bilan farqlanadi..
Filtr har qanday parametrdan oldin ko'rsatilishi kerak (quvvat belgisidan oldin):
Chiqish modifikatorlari Jadvalda modifikatorlarning turlari va ularning qo'llanilishi ko'rsatilgan..
Xushbo'y hidning tagida, bu joy egalariga bog'liq, lekin buni eslash sizning aybingiz | Modifikatorlar har qanday MODX Revolution teglariga qo'shilishi mumkin | Modifikator |
Tavsif | Vikoristanny dumba | agar, kiritish |
agar - qo'shimcha ma'lumotlarni belgilaydi, kiritish - ma'lumotlarni o'chirish tegini qo'shadi | [[+num:is=`10`:and:if=`[[+num]]`:ne=`15`:then=`Demak, 10 dan ortiq, 15 emas`]] | yoki, va |
Bir nechta modifikatorlarni ABO va I bog'lari bilan birlashtirish | [[+numProducts:is=`10`:or:is=`11`:then=`Bu yerda 10 yoki 11 ta mahsulot bor`:else=`Qancha mahsulot borligini aytmang`]] | ise teng, teng, teng, teng, teng, teng |
Qo'shish bilan uzatiladigan qiymatlarga teng. | Agar qiymatlardan qochgan bo'lsa, "keyin" qiymati ko'rsatiladi, agar bo'lmasa - "else" | [[+numProducts:isequalto=`10`:then=`10 ta mahsulot bor`:else=`Qancha mahsulot borligini bilmayman`]] |
notequalto, notequals, isnt, isnot, neq, ne | Qo'shish bilan uzatiladigan qiymatlarga teng. | Agar qiymatlar saqlanmasa, "keyin" qiymatlari ko'rsatiladi, agar ular bo'lmasa - "alse" |
[[+numProducts:notequalto=`10`:then=`Qancha mahsulot borligini aytmang`:else=`10 ta mahsulot bor`]] | kattaroq, teng, kattaroq, ge, masalan, isgte, gte | Xuddi shular, hech qanday miyasiz, "Bir nechta" |
[[+numProducts:gte=`10`:then=`10 ta yoki undan ortiq mahsulot bor`:else=`10 dan kam mahsulot bor`]] | is greaterthan, kattaroq, isgt, gt | Xuddi shular, miyasi yo'q "Ko'proq" |
[[+numProducts:gt=`10`:then=`Bu yerda 10 dan ortiq mahsulot bor`:else=`10 ta yoki undan kam mahsulot bor`]] | tengtoorlessthan, lessthanorequalto, el, le, islte, lte | Xuddi shular, kamroq aqlli "Kamroq" |
[[+numProducts:lte=`10`:then=`10 ta yoki undan kam mahsulot bor`:else=`10 dan ortiq mahsulot bor`]] | oroldan past, islessthan, pastdan, kichikdan, islt, lt | Xuddi shular, kamroq aqlli "Kamroq" |
[[+numProducts:lte=`10`:then=`Bu yerda 10 dan kam mahsulot bor`:else=`Bu yerda 10 ta yoki undan ortiq mahsulot bor`]] | yashirish | U elementni o'ziga tortadi, chunki ong birlashadi |
[[+numMahsulotlar:lt=`1`:yashirish]] | ko'rsatish | Aql siqilgan elementni ifodalaydi |
[[+numMahsulotlar:gt=`0`:ko`rsatish]] | keyin | Aqlni shakllantirish uchun vikorist |
[[+numProducts:gt=`0`:then=`Mahsulotlar ê!`]] | boshqa | Aqlni shakllantirish uchun vikorist ("keyin" bilan birga) |
[[+numProducts:gt=`0`:then=`Mahsulotlar mavjud!`:else=`Hammasi sotilmasdan oldin tekshiring.`]]
Xushbo'y hidning tagida, bu joy egalariga bog'liq, lekin buni eslash sizning aybingiz | Modifikatorlar har qanday MODX Revolution teglariga qo'shilishi mumkin | Modifikator |
a'zo, a'zo, mo | Belgilangan tarafdorlar guruhi aʼzosi ekanligingizni tasdiqlaydi | [[+modx.user.id:memberof=`Administrator`]] |
lcase, kichik harf, strtolower | Barcha harflarni kichik harflarga o'tkazadi | [[+title:lcase]] |
ucase, katta harf, strtoupper | Barcha harflarni bosh harfga o'tkazadi | [[+longtitle:ucase]] |
ucwords | Buyuk so'zlardagi birinchi harfni buzish | [[+title:ucwords]] |
birinchi | Xatni buyuklar qatoriga qo'yish | [[+name:ucfirst]] |
htmlent, htmlentities | HTML mohiyatidagi barcha belgilarni qayta ixtiro qiladi | [[+email:htmlent]] |
esc, qochish | Belgilar, vikoryst va muntazam ifodalar va str_replace dan xavfsiz tarzda qochadi. | Shuningdek, [, ] va ` belgilaridan qochadi |
[[+email:escape]] | tasma | Barcha o'tkazmalar, jadvallar va istalgan miqdordagi bo'shliqlarni faqat bitta bo'sh joy bilan almashtiradi |
[[+matnli hujjat:strip]] | stripString | Bir qator ko'rsatkichlardan ko'rinadi |
[[+name:stripString=`janob`]] | almashtiring | Amalga oshirilayotgan shartnomalarni almashtirish |
[[+pagetitle:replace=`Janob==Xonim`]] | stripteglar, stripTeglar, notaglar, strip_tags | Barcha teglarni viruslar (ruxsat etilgan teglar ko'rsatilishi mumkin). |
[[+kod:strip_tags=` | len, uzunlik, strlen | Qator oxirini kiriting |
[[+longstring:strlen]] | teskari, strev | Qator belgisini belgi bo‘yicha o‘zgartiradi |
[[+oyna matni: teskari]] | So'z to'plami | Oʻtkazilgan qatorni teri n belgisidan keyin kiritadi (soʻzlar buzilmaydi) |
[[+bodytext:wordwrap=`80`]] | so'z birikmasi | Bu belgi so'zning o'rtasida bo'lishi uchun n-belgidan keyin qatorni qo'yadi |
[[+bodytext:wordwrapcut=`80`]] | chegara | Qator boshidan boshlab belgilar sonini kiriting (chop etilganlar uchun qiymatlar - 100) |
[[+tavsif:chegara=`50`]] | ellips | Nuqta qo'shadi va qatorni oldingisidan kesib tashlaydi, belgilarning minimal soni (astar uchun qiymatlar - 100) |
[[+tavsif:ellipsis=`50`]] | teg | Ekranni o'rnatish. |
Sharob parchalari elementini ko'rsatadi, tegsiz. | Hujjatlardan foydalanish uchun | |
[[+showThis:tag]] | matematika | Hisoblangan hisoblar natijasini aylantiradi (protsessor uchun javobgar. Tavsiya etilmaydi) |
qo'shish, oshirish, kiritish | Ko'rsatilgan raqamni qo'shadi (yuvish uchun +1) | [[+yuklab olishlar:incr]], [[+blackjack:add=`21`]] |
ayirish, kamaytirish, kamaytirish | Kiritilgan raqamni ko'rsatadi (qiymatlar -1 ga asoslangan) | [[+ortga hisoblash:decr]], [[+moneys:subtract=`100`]] |
ko'paytirmoq, mpy | Ko'rsatilgan raqamga ko'paytiring (hisoblash uchun *2) | [[+trifecta:mpy=`3`]] |
bo'lish, bo'lish | Kiritilgan raqamni bo'linadi (bojxonaga asoslangan qiymatlar /2) [[+reyting:div=`4`]] |
modul, mod |
Modul orqasidagi raqamlar bo'linmasini aylantiradi | (aylantirish uchun: %2, 0 yoki 1 aylantiring)) | [[+raqam:mod]] |
bo'sh, sukut, bo'sh, bo'sh | Teg qiymatlari bo'sh bo'lsa, modifikator qiymatlarini aylantiradi | [[+name:notempty=`Salom, [[+name]]!`]] |
nl2br | Yangi qator belgilarini (\n) HTML tegi bilan almashtiradi |
[[+matn fayli:nl2br]] |
sana | Matn vaqt tamg'asini tayinlangan formatga o'tkazadi (Sana formati) | [[+tug'ilgan yili:date=`%Y`]] |
strtotime | Sanani UNIX vaqt tamg'asidagi matnga o'zgartiradi | [[+thetime:strtotime]] |
loyqa sana | Sanani “kecha, bugun, ...” formatida aylantiradi. | Sana qiymatlarini qabul qiladi. |
[[+createdon:fuzzydate]] | oldin | Sanada ko'rsatilgan sanadan keyin o'tgan soniyalar, kunlar, yillar yoki oylar sonini aylantiradi. |
[[+createdon:ago]] | md5 | Qiymatning MD5 xeshini yaratadi |
[[+parol:md5]] | cdata | CDATA teglari bilan piktogrammalarni o'rab oladi |
[[+content:cdata]] | foydalanuvchi ma'lumotlari | Mijoz profilidan kerakli qiymatlarni aylantiradi. |
Koristuvachning identifikatorini ko'rsatish kerak | [[+modx.user.id:userinfo=`username`]] | loggedin |
Haqiqatga aylanadi, chunki kontekst autentifikatsiya qiladi | [[+modx.user.id:isloggedin]] | tizimga kirmaydi |
To'g'ri bo'ladi, chunki u o'rnatilgan kontekstda autentifikatsiyani talab qilmaydi | [[+modx.user.id:loggedin emas]] | urlenkod |
Qiymatlarni URL ga aylantiradi | [[+mystring:urlencode]] | urldecode |
URL dan qiymatlarni o'zgartiradi
[[+myparam:urldecode]]
Parametrlardan bir vaqtning o'zida chiqish uchun turli xil modifikatorlar
Teg parametrlarni o'z ichiga olganligi sababli, ular modifikatordan keyin darhol ko'rsatilishi kerak:
Koristuvach modifikatorini yaratish
Har qanday parchadan modifikator sifatida foydalanish mumkin.
Ushbu skriptdan foydalanish uchun modifikator o'rniga snayp nomini kiritish kifoya.
Misol uchun, makeExciting-ning tushunarli parchasi mavjud bo'lib, u qo'shiqning boshiga qo'ng'iroqqa bir qator belgilar qo'shadi: [[*pagetitle:makeExciting=`4`]] Qayta ishlash uchun makeExciting snippetiga quyidagi tegni bosing va keyingi parametrlarga o'tkazing:
UserInfo modifikatori
Jadval ma'lumotlariga to'g'ridan-to'g'ri kirish | Xushbo'y hidning tagida, bu joy egalariga bog'liq, lekin buni eslash sizning aybingiz |
modx_user_attributes | Ma'lumotlar bazasida modifikatorlar yordamida parchalarni almashtirishga oddiygina UserInfo modifikatori yordamida kirish mumkin. |
Jadvaldan kerakli elementni tanlang va uning modifikator kuchini ko'rsating, masalan: | Ahamiyati |
Koristuvachning ichki kaliti | [[!+modx.user.id:userinfo=`internalKey`]] |
Tizimga kirish | [[!+modx.user.id:userinfo=`username`]] |
Tashqarida men | [[!+modx.user.id:userinfo=`toʻliq nom`]] |
Rol | [[!+modx.user.id:userinfo=`role`]] |
Elektron pochta | [[!+modx.user.id:userinfo=`email`]] |
Telefon | [[!+modx.user.id:userinfo=`telefon`]] |
Mobil telefon | [[!+modx.user.id:userinfo=`mobilephone`]] |
Faks | [[!+modx.user.id:userinfo=`faks`]] |
odamlar sanasi | [[!+modx.user.id:userinfo=`dob`:date=`%Y-%m-%d`]] |
Bo'lmoq | [[+modx.user.id:userinfo=`state`]] |
Pochta kodi | [[+modx.user.id:userinfo=`zip`]] |
Surat | [[+modx.user.id:userinfo=`foto`]] |
Phx filtrlari va ularning MODX Revo modifikatorlari haqidagi bugungi qiziqarli maqola, ularning yordamida siz to'g'ridan-to'g'ri shablonlarning o'rtasida turli teglarning qiymatlarini o'zgartirishingiz mumkin.
Sizga hid kerakmi?
phx modifikatorlari modx distribyutorlari uchun hayotni osonlashtiradi. Bizda karusel tasvirli (yoki bannerli) veb-sayt mavjud bo'lishi mumkin, bu talab qilinadi asosiy sahifada ko'rsatish
. 1
Buning uchun uni bir xil bo'lakka joylashtirish va ushbu qo'shimcha qurilish uchun shablonga kiritish kifoya.
De:- bosh sahifa identifikatori,
$karusel
- Karusel (banner) kodi bilan parcha.
Faqat bir nechta yangi choynaklar karusel kodining bir necha qatorlari uchun yangi shablonni yaratadi.
Men xuddi shundayman, u phx qo'liga tushmaydi va rivojlanishga phx. Keling, hisobotning tuzilishini ko'rib chiqaylik:
[[*id:is=`1`:then=`[[$karusel]]`]]
*id - Oqimli sahifaning identifikatorini kiriting;:is=`1`:keyin= [[+numMahsulotlar:lt=`1`:yashirish]];
De:- tekshiradi
*id == 1
va agar u bitta narsa bo'lsa, uning o'rniga ko'rsatiladi- Karusel bo'lagini kiriting.
*id ni almashtiring, siz boshqa maydonlarni o'zgartirishingiz mumkin, masalan *shablon - aniq shablonni ko'rsatish.
Yoki siz televizor maydonining mazmunini tekshirishingiz mumkin (agar * kalit so'zlar mavjud bo'lsa) va agar u to'liq bo'lsa, uni ko'rsating. `]]
Standart tartibni hisobga olgan holda:
kalit, kalit, kalit Zavdannya: Bu qatorga kirmang, chunki TV kalit so'zlari saqlanmaydi.
Qaror.
[[*kalit so'zlar:!empty=` De:* kalit so'zlar
Navantazhennya
Modifikatorlarni o'zgartirishga ehtiyot bo'lishingiz kerak, o'ylamasdan to'g'risini tanlaysiz.
Keling, karuselga qaytaylik, bu yozuv chapdan o'ngga o'qiladi va MODH to'g'ri yoki noto'g'ri bo'lishidan qat'i nazar, aqlning barcha hissalarini yakunlaydi va buning o'rniga aniq sahifada ko'rsatiladi.
[[$karusel]] Zavdannya:, kimdir favqulodda vaziyatga tushib qolsa, buning uchun pul to'lash o'rniga. Shu munosabat bilan, yozuvni qayta yozish yaxshiroqdir:[[$caru[[*id:is=`1`:then=`sel`]]]] Bo'lak o'rniga tomchi nima?, aql tugashi bilanoq, bir vaqtning o'zida to'planadi
*id:is=`1`
chunki
rozilik bildiradi
[[*id:is=`1`:then=`sel`]] va agar oqim sahifasining identifikatori 1 dan yuqori bo'lsa, u qayta ishlangan holda qoladi, va nima uchun murakkab narsalarni birlashtirmaysiz.
Qaysi usul eng samarali va samarali ekanligini aniqlang - eng sodda, chunki dizayn sodda va oqilona bo'ladi - kelajakda u bilan ishlash biz uchun osonroq bo'ladi.
Quyida har qanday MODH Revo tegi uchun ishlatilishi mumkin bo'lgan asosiy modifikatorlar keltirilgan.
Modifikatorlarning lancerlari
Sana qatorini boshqa formatda formatlash yaxshi fikr bo'lardi, masalan: [[+content:cdata]][[+mydate:strtotime:date=`%Y-%m-%d`]]
Ma'lumotlar bazasidagi "modx_user_attributes" jadvaliga parcha o'rniga vicoristan chiqish modifikatorlari bilan to'g'ridan-to'g'ri kirish vikoristan modifikatori yo'lini tanlash orqali amalga oshirilishi mumkin.
. [[ ! Jadvaldan tegishli ustunni tanlang va chiqish modifikatorining quvvatini ko'rsating, masalan, quyidagicha: Mijozning ichki kaliti: [[!+modx.user.id:userinfo=`internalKey`]] Kirish: [[!+modx.user.id:userinfo=`username`]] Tashqi nomi: [[!+modx .user .id:userinfo=`toʻliq nom`]] Rol: [[!+modx.user.id:userinfo=`role`]] E-mail: [[!+modx.user.id:userinfo=`email` ]] Telefon: [[!+modx.user.id:userinfo=`phone`]] Mobil telefon: [[!+modx.user.id:userinfo=`mobilephone`]] Faks: [[!+modx.user .id :userinfo=`faks`]] Xalqlar kuni: [[!+modx.user.id:userinfo=`dob`:date=`%Y-%m-%d`]] Boʻling: [[!+modx .user .id:userinfo=`gender`]] Davlat: [[!+modx.user.id:userinfo=`country`]] Shtat: [[!+modx.user.id:userinfo=`state`]] Pochta indeksi: [[!+modx.user.id:userinfo=`zip`]] Rasm: [[!+modx.user.id:userinfo=`photo`]] Sharh: [[!+modx.user.id :userinfo =`comment`]] Oxirgi kirish sanasi: [[!+modx.user.id:userinfo=`lastlogin`:date=`%Y-%m-%d`]] Kirishlar soni: [[!+ modx .user .id:userinfo=`logincount`]] Biz alohida hurmat bilan do'l belgisiga bo'ysunamiz+modx.user.id]]
.
Vín ruxsat beradi ! Keshuvati EMAS
olib tashlash o'rniga. Nega naqd pul ishlamaslik kerak? Ko'rinishidan, bu shunday: saytda 5 ta koristuvach mavjud. Birinchi koristuvach blog tomoniga keldi: Iltimos, [[!+modx.user.id:userinfo=`username`]]! ! ).
Ko'pgina snippetlarning natijalari butunlay keshdan qayta ishlanishi mumkin.
Kelgusi darsda buni aniqlaymiz.
[ ]
Inqilobdagi filtrlar ma'lumotlarni taqdim etish yo'lida keruvati imkonini beradi.
[ ]
Ular shablonlarning o'rtasida joylashgan qiymatlarni o'zgartirishga imkon beradi.
[ ]
Inqilobda chiqish filtri bir yoki bir necha marta bir qator chiqish modifikatorlaridan o'rnatiladi, ular MODx Evolution-da PHx bosishlariga o'xshash - ular yadroga kiritilganidan keyin.
Sintaksis quyidagicha ko'rinadi:
Xushbo'y hidning tagida, bu joy egalariga bog'liq, lekin buni eslash sizning aybingiz |
Modifikatorlar har qanday MODX Revolution teglariga qo'shilishi mumkin |
Xushbo'y hidlarni ham aniqlash mumkin (o'ngga qarab): |
Tavsif |
||
Bundan tashqari, parchaning chiqishini o'zgartirish uchun ularni vikorize qilishingiz mumkin; |
E'tibor bering, modifikator parcha nomidan keyin va ovqatlanish belgisidan oldin keladi, masalan, |
|
Quyidagi jadvalda asosiy modifikatorlarning harakatlari va ularning ilovalari ko'rsatilgan. |
||
Bir nechta modifikatorlarni ABO va I bog'lari bilan birlashtirish |
Agar siz turli teglarga e'tibor qaratmoqchi bo'lsangiz, chiqish modifikatorlari har qanday MODx tegi bilan yaratilishi mumkin. |
|
Qo'shish bilan uzatiladigan qiymatlarga teng. |
Modifikator ma'lumotlarni olib tashlashini tekshiring. |
|
notequalto, notequals, isnt, isnot, neq, ne |
Aqlli modifikatorlar: |
dumba |
[[+numProducts:notequalto=`10`:then=`Qancha mahsulot borligini aytmang`:else=`10 ta mahsulot bor`]] |
Mantiqiy ABO |
|
[[+numProducts:gte=`10`:then=`10 ta yoki undan ortiq mahsulot bor`:else=`10 dan kam mahsulot bor`]] |
[ [+numbooks:is=`5`:or:is=`6`:then=`5 yoki 6 ta kitob bor!`:else=`Qancha kitob borligini bilmayman`] ] |
Mantiqiy I |
[[+numProducts:gt=`10`:then=`Bu yerda 10 dan ortiq mahsulot bor`:else=`10 ta yoki undan kam mahsulot bor`]] |
[ [+numbooks:isequalto=`5`:then=`5 ta kitob bor!`:else=`Qancha kitob borligini bilmayman`] ] |
|
[ [+numbooks:notequalto=`5`:then=`Qancha kitob borligini bilmayman`:else=`5 ta kitob bor!`] ] |
||
Ko'proq yoki kamroq |
||
[ [+numbooks:gte=`5`:then=`5 ta kitob yoki 5 dan ortiq kitob bor`:else=`5 tadan kam kitob bor`] ] |
||
[ [+numbooks:gt=`5`:then=`5 dan ortiq kitob bor`:else=`5 tadan kam kitob bor`] ] |
||
[[+numProducts:gt=`0`:then=`Mahsulotlar ê!`]] |
Kamroq yoki ko'proq qadimiy |
[ [+numbooks:lte=`5`:then=`5 yoki 5 dan kam kitoblar bor`:else=`5 dan ortiq kitoblar bor`] ]
Xushbo'y hidning tagida, bu joy egalariga bog'liq, lekin buni eslash sizning aybingiz |
Modifikatorlar har qanday MODX Revolution teglariga qo'shilishi mumkin |
Xushbo'y hidlarni ham aniqlash mumkin (o'ngga qarab): |
[ [+numbooks:lt=`5`:then=`5 tadan kam kitob bor`:else=`5 dan ortiq kitoblar bor`] ] |
[ [+numbooks:lt=`1`:yashirish] ] |
|
lcase, kichik harf, strtolower |
[ [+numbooks:gt=`0`:ko`rsatish]] |
[ [+numbooks:gt=`0`:then=`Endi mavjud!`] ] |
ucase, katta harf, strtoupper |
[ [+numbooks:gt=`0`:then=`Endi mavjud!`:else=`Kechirasiz, hozirda sotilgan.`] ] |
[[+modx.user.id:memberof=`Administrator`] ] |
String modifikatorlari: |
Yakshcho bo'sh emas |
|
[[+numbooks:cat=`books`] ] |
Malia Literidagi transformatsiya |
|
htmlent, htmlentities |
[[+title:lcase]] |
Buyuk adabiyotda transformatsiya |
[[+headline:ucase]] |
Persha so'zining bosh harfi |
[[+title:ucwords]] |
Persha bosh harfi |
[[+name:ucfirst]] |
|
[[+matnli hujjat:strip]] |
HTML teglarini almashtirish |
[[+email:htmlent]] |
esc, qochish |
Belgilarni ehtiyotkorlik bilan tartibga soladi |
|
[[+pagetitle:replace=`Janob==Xonim`]] |
[[+email:escape]] |
Barcha teglarni viruslar (ruxsat etilgan teglar ko'rsatilishi mumkin). |
Vagonning siljishi, kliringlarning jadvali va shaxssizligini bitta tozalash bilan almashtirish |
[[+matnli hujjat:strip] ] |
[[+longstring:strlen]] |
[[+longstring:strlen]] |
Qator teskari |
[[+oyna matni: teskari]] |
[[+oyna matni: teskari]] |
Belgilangan belgilar sonidan keyin yangi qator |
[[+bodytext:wordwrap=`80`] ] |
[[+bodytext:wordwrap=`80`]] |
Toʻliq belgilar sonidan keyin yangi qator qoʻshadi. |
[ [+bodytext:wordwrapcut=`80`] ] |
Ko'rsatilishi mumkin bo'lgan belgilar soni |
[[+tavsif:chegara=`50`] ] |
|
[[+tavsif:chegara=`50`]] |
Belgilangan belgilar sonidan keyin kesilgan qator |
[[+tavsif:ellipsis=`50`] ] |
Tegsiz oddiy elementni ko'rsatadi. |
Hujjatlar uchun Korisno. |
[[+showThis:tag]]
Qiymatlar dinamik ravishda o'zgarishi mumkinligi sababli, iz keshda saqlanmaydi.
Masalan:
[ [+placeholder:default=`Standart qiymat!`] ]
Bu shuni anglatadiki, ba'zi tugunlarning qiymati bo'sh bo'lishi mumkin, ba'zilari esa bo'lmasligi mumkin.
Keshdan nimani saqlashingiz kerak?
O'sish orqasida
Bu o'chirilishi mumkin, shuning uchun ma'no paydo bo'lishi mumkin.
Hammasi tartibga solingan.
Agar snayp yozilganda natija qanday bo'lishini bilmasangiz, unda syujet ortidagi ma'noni ishlab chiqish mantiqan to'g'ri keladi:
[]
[ [!getResources:default=`Kechirasiz, qidiruvingiz ishlamayapti.`?
[]
&tplFirst=`blogTpl` &parents=`2,3,4,8` &tvFilters=`blog_tags==%%` &includeTVs=`1`] ]
[]
Filtr har qanday parametrdan oldin ko'rsatilishi kerak (quvvat belgisidan oldin):
Inqilob filtrlari ushbu va boshqa teglar qanday qayta ishlanishini boshqarish imkonini beradi.
Ular shablonlaringizning o'rtasida qiymatlarni o'zgartirishga imkon beradi.
Xushbo'y hidning tagida, bu joy egalariga bog'liq, lekin buni eslash sizning aybingiz | Modifikatorlar har qanday MODX Revolution teglariga qo'shilishi mumkin | Modifikator |
---|---|---|
Tavsif | Ayni paytda, kirish filtrlari qayta ishlash va filtrni chiqarishdan oldin tayyorgarlik jarayonida sinovdan o'tkaziladi. | Faqat MODX dvigatelining o'rtasida vikorystning hidini keltirib chiqaring. |
Revolution filtrlari Evolution'da PHx bilan bir xil tarzda amalga oshiriladi, ammo xuddi shu filtrlar endi to'g'ridan-to'g'ri MODX dvigateliga o'rnatilgan. | Sintaksis quyidagicha ko'rinadi: | Filtrlar ketma-ket tiqilib qolishi mumkin. |
Ularni kim uchun yozing (chapdan o'ngga): | Snippetlarning chiqishini o'zgartirish uchun filtrlar ham joylashtirilishi mumkin. І | Filtr har qanday parametrdan oldin ko'rsatilishi kerak (quvvat belgisidan oldin): |
Bir nechta modifikatorlarni ABO va I bog'lari bilan birlashtirish | [[+numProducts:is=`10`:or:is=`11`:then=`Bu yerda 10 yoki 11 ta mahsulot bor`:else=`Qancha mahsulot borligini aytmang`]] | Jadvalda modifikatorlarning turlari va ularning qo'llanilishi ko'rsatilgan. |
Qo'shish bilan uzatiladigan qiymatlarga teng. | Agar qiymatlardan qochgan bo'lsa, "keyin" qiymati ko'rsatiladi, agar bo'lmasa - "else" | [[+numbooks:notequalto=`5`:then=`Qancha kitob borligini aytmang`:else=`5 ta kitob bor`]] |
notequalto, notequals, isnt, isnot, neq, ne | O'shalar, miyasiz, "Bir nechta" | [[+numbooks:gte=`5`:then=`5 yoki undan ortiq kitob bor`:else=`Beshtadan kam kitob bor`]] |
[[+numProducts:notequalto=`10`:then=`Qancha mahsulot borligini aytmang`:else=`10 ta mahsulot bor`]] | Miyasi bo'lmaganlar "ko'proq" | [[+numbooks:gt=`5`:then=`Bu yerda beshdan ortiq kitob bor`:else=`5 yoki undan kam kitob bor`]] |
[[+numProducts:gte=`10`:then=`10 ta yoki undan ortiq mahsulot bor`:else=`10 dan kam mahsulot bor`]] | O'shalar, aql-idrokdan mahrum "kamroq" | [[+numbooks:lte=`5`:then=`5 yoki undan kam kitob bor`:else=`Beshtadan ortiq kitob bor`]] |
[[+numProducts:gt=`10`:then=`Bu yerda 10 dan ortiq mahsulot bor`:else=`10 ta yoki undan kam mahsulot bor`]] | Miyasi kamroq bo'lganlar "qat'iy kamroq" | [[+numbooks:lte=`5`:then=`Bu yerda beshdan kam kitob bor`:else=`5 yoki undan ortiq kitob bor`]] |
[[+numProducts:lte=`10`:then=`10 ta yoki undan kam mahsulot bor`:else=`10 dan ortiq mahsulot bor`]] | oroldan past, islessthan, pastdan, kichikdan, islt, lt | [[+numbooks:lt=`1`:yashirish]] |
[[+numProducts:lte=`10`:then=`Bu yerda 10 dan kam mahsulot bor`:else=`Bu yerda 10 ta yoki undan ortiq mahsulot bor`]] | yashirish | [[+numbooks:gt=`0`:show]] |
[[+numMahsulotlar:lt=`1`:yashirish]] | ko'rsatish | [[+numbooks:gt=`0`:then=`Kitoblar ê!`]] |
[[+numMahsulotlar:gt=`0`:ko`rsatish]] | Aqlni shakllantirish uchun vikorist (bir vaqtning o'zida "o'sha paytdan") | [[+numbooks:gt=`0`:then=`Kitoblar koʻrinmoqda!`:else=`Tekshirib koʻring, aks holda hammasi sotiladi.`]] |
[[+numProducts:gt=`0`:then=`Mahsulotlar ê!`]] | boshqa | [[!+modx.user.id:memberof=`Administrator`]] |
[[+numProducts:gt=`0`:then=`Mahsulotlar mavjud!`:else=`Hammasi sotilmasdan oldin tekshiring.`]]
Xushbo'y hidning tagida, bu joy egalariga bog'liq, lekin buni eslash sizning aybingiz | Modifikatorlar har qanday MODX Revolution teglariga qo'shilishi mumkin | Modifikator |
---|---|---|
a'zo, a'zo, mo | Belgilangan tarafdorlar guruhi aʼzosi ekanligingizni tasdiqlaydi | [[+numbooks:cat=`books`]] |
lcase, kichik harf, strtolower | Barcha harflarni kichik harflarga o'tkazadi | [[+title:lcase]] |
ucase, katta harf, strtoupper | Barcha harflarni bosh harfga o'tkazadi | [[+headline:ucase]] |
ucwords | Buyuk so'zlardagi birinchi harfni buzish | [[+title:ucwords]] |
birinchi | Xatni buyuklar qatoriga qo'yish | [[+name:ucfirst]] |
htmlent, htmlentities | Xuddi shu HTML ob'ektidagi barcha belgilarni qayta ishlaydi | [[+email:htmlent]] |
esc, qochish | Belgilar, zafarlar va oddiy iboralar va `str_replace()`dan xavfsiz tarzda qochadi. | Shuningdek, [, ] va ` belgilaridan qochadi |
[[+email:escape]] | tasma | Barcha o'tkazmalar, jadvallar va istalgan miqdordagi bo'shliqlarni faqat bitta bo'sh joy bilan almashtiradi |
[[+matnli hujjat:strip]] | stripString | Bir qator ko'rsatkichlardan ko'rinadi |
[[+name:stripString=`janob`]] | almashtiring | Amalga oshirilayotgan shartnomalarni almashtirish |
[[+pagetitle:replace=`Janob==Xonim`]] | Shuningdek, MODX teglarini ekranga chiqaradi. | Barcha teglarni viruslar (ruxsat etilgan teglar ko'rsatilishi mumkin). |
Vagonning siljishi, kliringlarning jadvali va shaxssizligini bitta tozalash bilan almashtirish | len, uzunlik, strlen | Qator oxirini kiriting |
[[+longstring:strlen]] | teskari, strev | Qator belgisini belgi bo‘yicha o‘zgartiradi |
[[+oyna matni: teskari]] | So'z to'plami | Oʻtkazilgan qatorni teri n belgisidan keyin kiritadi (soʻzlar buzilmaydi) |
[[+bodytext:wordwrap=`80`]] | so'z birikmasi | Bu belgi so'zning o'rtasida bo'lishi uchun n-belgidan keyin qatorni qo'yadi |
[[+bodytext:wordwrapcut=`80`]] | chegara | Qator boshidan boshlab belgilar sonini kiriting (chop etilganlar uchun qiymatlar - 100) |
[[+tavsif:chegara=`50`]] | Xavfsizlik nuqtai nazaridan vikordan foydalanmang. | Nuqta qo'shadi va qatorni oldingisidan kesib tashlaydi, belgilarning minimal soni (astar uchun qiymatlar - 100) |
[[+tavsif:ellipsis=`50`]] | teg | Ekranni o'rnatish. |
[[+showThis:tag]] | matematika | [[+kod:strip_tags]] |
qo'shish, oshirish, kiritish | Ko'rsatilgan raqamni qo'shadi (yuvish uchun +1) | Nuqta qo'shadi va qatorni oldingisidan kesib tashlaydi, belgilar soni quyida ko'rsatilgan (astar uchun - 100) |
ayirish, kamaytirish, kamaytirish | Kiritilgan raqamni ko'rsatadi (qiymatlar -1 ga asoslangan) | [[+ortga hisoblash:decr]], [[+moneys:subtract=`100`]] |
[[+downloads:incr]] [[+blackjack:add=`21`]] | Ko'rsatilgan raqamga ko'paytiring (hisoblash uchun *2) | [[+trifecta:mpy=`3`]] |
[[+countdown:decr]] [[+moneys:subtract=`100`]] | bo'linish, bo'linish | modul, mod |
modul, mod | (aylantirish uchun: %2, 0 yoki 1 aylantiring)) | [[+raqam:mod]] |
bo'sh, sukut, bo'sh, bo'sh | Raqam modulini aylantiring (tarjima uchun: %2, 0 yoki 1 ni aylantiring) bo'sh, birlamchi, bo'sh, bo'sh Teg qiymatlari kabi modifikator qiymatlarini aylantiradi | Yo'q |
nl2br | bo'sh | [[+matn fayli:nl2br]] |
sana | [[+name:notempty=`Salom [[+name]]!`]] | [[+tug'ilgan yili:date=`%Y`]] |
strtotime | Sanani UNIX vaqt tamg'asidagi matnga o'zgartiradi | [[+thetime:strtotime]] |
loyqa sana | Yangi qator belgilarini br HTML tegi bilan almashtiradi | Sana qiymatlarini qabul qiladi. |
[[+createdon:fuzzydate]] | oldin | Sanada ko'rsatilgan sanadan keyin o'tgan soniyalar, kunlar, yillar yoki oylar sonini aylantiradi. |
[[+createdon:ago]] | md5 | Qiymatning MD5 xeshini yaratadi |
[[+parol:md5]] | cdata | CDATA teglari bilan piktogrammalarni o'rab oladi |
[[+content:cdata]] | foydalanuvchi ma'lumotlari | Ahamiyati |
Koristuvachning identifikatorini ko'rsatish kerak | Belgilangan formatga (sana formati) mos keladigan matn vaqt tamg'asini o'zgartiradi | Vaqt tamg‘asini qabul qiladi va sanani “Bugun 16:20 da” ko‘rinishiga aylantiradi |
Haqiqatga aylanadi, chunki kontekst autentifikatsiya qiladi | 1-burilish, chunki siz kontekstdagi avtorizatsiyadan foydalanasiz bo'sh, birlamchi, bo'sh, bo'sh[[!+modx.user.id:isloggedin:is=`1`:then=`Ha`:else=`Yo`q`]] | 1-burilish, yakscho koristuvach |
To'g'ri bo'ladi, chunki u o'rnatilgan kontekstda autentifikatsiyani talab qilmaydi | oqim kontekstida ruxsatlar | urlenkod |
Qiymatlarni URL ga aylantiradi | [[!+modx.user.id:isnotloggedin:is=`1`:then=`Yo`:else=`Ha`]] | urldecode |
Qiymatlarni URL manziliga aylantiradi va shu bilan PHP `urlencode()` funksiyasini bekor qiladi
URL dan qiymatlarni o'zgartiradi
[[+myparam:urldecode]]
URL-manzillardan qiymatlarni o'zgartiradi, shu bilan PHP `urldecode()` funksiyasini bekor qiladi
Parametrlardan bir vaqtning o'zida chiqish uchun turli xil modifikatorlar
Har qanday parchadan chiqish uchun modifikator sifatida foydalanish mumkin.
Koristuvach modifikatorini yaratish
Har qanday parchadan modifikator sifatida foydalanish mumkin.
Buning uchun modifikator o‘rniga parcha nomini kiritish kifoya. | Jadval ma'lumotlariga to'g'ridan-to'g'ri kirish | Misol uchun, biz qo'ng'iroqqa bir nechta belgilar qo'shadigan parcha [] yaratishimiz mumkin: |
---|