Phx va modifikatorlarni filtrlang.

topshirish / Android haqida hamma narsa

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);

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:
=".$_GET["maydon_from"]; ) if($_GET["maydon_to"]) ( $filtr = "maydon"
toJSON(massiv ($filtr));

) 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;
limit=`3` - “Qoʻshimcha qoʻshish” tugmasini bosganingizda qancha yozuvni koʻrsatish va qancha yozuv qoʻshish kerak;

ota-onalar=`5` - resurs katalogi uchun hujjat identifikatorini belgilang;

[[+pagetitle]] `]]
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:

Sayt xaritasi