ตัวกรอง Modx ตัวกรอง ตัวแก้ไขกลิ่นเหม็น ใน CMF MODx Revolution สร้างพารามิเตอร์ใหม่และดึงดูดค่า

โกลอฟนา / Korisne PZ

ตัวกรองในการปฏิวัติช่วยให้คุณควบคุมวิธีการนำเสนอข้อมูล อนุญาตให้คุณเปลี่ยนค่าของเทมเพลตกลาง

ในการปฏิวัติ ตัวกรองภายนอกจะถูกตั้งค่าอย่างน้อยหนึ่งครั้งจากชุดของตัวปรับแต่งภายนอก ดังนั้นควรปรับให้เหมือนกับรอบ PHx MODX Evolution- สำหรับไวน์ ให้มีกลิ่นเหม็นในแกนกลาง ไวยากรณ์มีลักษณะดังนี้:

[ ]

กลิ่นเหม็นยังสามารถเป็น z'ednani (พวกเขาได้รับชัยชนะทางด้านขวา):

[ ]

คุณยังสามารถเอาชนะพวกเขาเพื่อเปลี่ยนทางออกของตัวอย่างได้ เคารพ ดัดแปลงหลังชื่อตัวอย่างและก่อนเครื่องหมายอาหาร เช่น

[ ]

ที่โต๊ะถัดไป มีการเพิ่มผีของตัวดัดแปลงหลักและการใช้ชัยชนะของพวกเขา หากคุณต้องการวางเมาส์เหนือแท็กบางแท็ก ตัวปรับแต่งสามารถใช้แท็ก MODx อะไรก็ได้ พิจารณาใหม่ว่าตัวปรับแต่งกำลังรับข้อมูล

ตัวดัดแปลงอัจฉริยะ:

ตัวดัดแปลง

คำอธิบาย

ก้น

ถ้าป้อน

ตรรกะ ABO

[ [+numbooks:is=`5`:or:is=`6`:then=`มี 5 หรือ 6 เล่ม!`:else=`ไม่แน่ใจว่ามีกี่เล่ม`] ]

ลอจิกฉัน

เท่ากัน, เท่ากัน, เท่ากับ, เท่ากับ, คือ, เท่ากับ

[ [+numbooks:isequalto=`5`:then=`มี 5 เล่ม!`:else=`ไม่แน่ใจว่ามีกี่เล่ม'] ]

notequalto, notequals, ไม่ใช่, ไม่ใช่, neq, ne

[ [+numbooks:notequalto=`5`:then=`ไม่แน่ใจว่ามีกี่เล่ม`:else=`มี 5 เล่ม!`] ]

มากกว่า, เท่ากับ, ดังนั้น, เช่น, isgte, gte

มากกว่านั้น

[ [+numbooks:gte=`5`:then=`มี 5 เล่มหรือมากกว่า 5 เล่ม`:else=`มีน้อยกว่า 5 เล่ม`] ]

isgreaterthan, มากกว่า, isgt, gt

[ [+numbooks:gt=`5`:then=`มีมากกว่า 5 เล่ม`:else=`มีน้อยกว่า 5 เล่ม`] ]

equaltoorlessthan, lessthanorequalto, เอล, le, islte, lte

ถูกกว่าหรือแพงกว่า

[ [+numbooks:lte=`5`:then=`มีหนังสือ 5 เล่มหรือน้อยกว่า 5 เล่ม`:else=`มีหนังสือมากกว่า 5 เล่ม'] ]

islowerthan, islessthan, ต่ำกว่า, น้อยกว่า, islt, lt

[ [+numbooks:lt=`5`:then=`มีหนังสือน้อยกว่า 5 เล่ม`:else=`มีหนังสือมากกว่า 5 เล่ม'] ]

[ [+numbooks:lt=`1`:ซ่อน] ]

[ [+numbooks:gt=`0`:show] ]

[ [+numbooks:gt=`0`:then=`พร้อมใช้งานแล้ว!`] ]

[ [+numbooks:gt=`0`:then=`พร้อมใช้งานแล้ว!`:else=`ขออภัย ขณะนี้สินค้าหมด'] ]

สมาชิกของ ismember, mo

[ [+modx.user.id:memberof=`ผู้ดูแลระบบ`] ]

ตัวแก้ไขสตริง:

ตัวดัดแปลง

คำอธิบาย

ก้น

เหมือนไม่ว่าง

[ [+numbooks:cat=`books`] ]

lcase, ตัวพิมพ์เล็ก, strtolower

การแปลงอักษรตัวเล็ก

[ [+ชื่อ:lcase] ]

ucase, ตัวพิมพ์ใหญ่, strtoupper

การเปลี่ยนแปลงในวรรณกรรมอันยิ่งใหญ่

[ [+พาดหัวข่าว:ucase] ]

ตัวอักษรตัวแรกของคำเป็นตัวพิมพ์ใหญ่

[ [+ชื่อ:ucwords] ]

อักษรตัวใหญ่ตัวแรก

[ [+ชื่อ:ucfirst] ]

htmlent, htmlentities

แทนที่แท็ก HTML

[[+อีเมล:htmlent]]

esc หนี

หยิบสัญลักษณ์ขึ้นมาอย่างไม่ระมัดระวัง

[[+อีเมล:หลบหนี]]

การเปลี่ยนกะของการขนส่ง, การจัดตารางและการหักบัญชีแบบไร้หน้าสำหรับการหักบัญชีครั้งเดียว

[ [+เอกสารข้อความ:แถบ] ]

สตริปสตริง

ดูค่าชาร์จ

[ [+ชื่อ:stripString=`นาย.`] ]

เปลี่ยนค่า

[ [+pagetitle:replace=`Mr.==Mrs.`] ]

striptags, stripTags, notags, strip_tags

ทำความสะอาด แท็ก HTML

[ [+code:strip_tags=` .]

len, ความยาว, strlen

Dovzhina แถว

[ [+longstring:strlen] ]

ย้อนกลับ strrev

ย้อนกลับแถว

[ [+mirrortext:ย้อนกลับ] ]

ตัดคำ

แถวใหม่หลังจากระบุจำนวนอักขระ

[ [+bodytext:wordwrap=`80`] ]

ตัดคำ

แทรกแถวใหม่หลังจำนวนสัญลักษณ์

[ [+bodytext:wordwrapcut=`80`] ]

Kіlkіst, scho ที่จะปรากฏ, สัญลักษณ์

[ [+description:limit=`50`] ]

จุดไข่ปลา

การตัดแถวตามจำนวนอักขระที่ระบุ

[ [+คำอธิบาย:จุดไข่ปลา=`50`] ]

แสดงองค์ประกอบซีเรียโดยไม่มีแท็ก Korisno สำหรับเอกสาร

[ [+showThis:แท็ก] ]

แม้ว่าค่าอาจเปลี่ยนแปลงแบบไดนามิก แต่ก็ควรปล่อยทิ้งไว้โดยไม่มีการแคช ตัวอย่างเช่น:

[ [+placeholder:default=`ค่าเริ่มต้น!`] ]

Tse หมายความว่าความหมายสามารถว่างเปล่าได้ แต่ไม่ใช่ จะบันทึกโยคะจากแคชได้อย่างไร? คุณสามารถปิดได้ ความหมายที่ปรากฏ

หากคุณไม่เข้าใจ หากมีผลเมื่อคุณชนะข้อมูลโค้ด ก็มีเหตุผลที่จะเพิ่มมูลค่าสำหรับการล็อก:

[ [!getResources:default=`ขออภัย - ไม่พบข้อมูลที่ตรงกับการค้นหาของคุณ`? &tplFirst=`blogTpl` &parents=`2,3,4,8` &tvFilters=`blog_tags==%%` &includeTVs=`1`] ]

บทความวันนี้เกี่ยวกับตัวกรอง phx และตัวดัดแปลง MODX Revo เพื่อช่วยให้คุณอยู่ตรงกลางของเทมเพลต จัดการค่าของแท็กต่างๆ

คุณต้องการกลิ่นเหม็นมากขึ้นหรือไม่?

ตัวดัดแปลง phxทำให้ชีวิตง่ายขึ้นสำหรับผู้ค้าปลีก modx สมมติว่าเรามีเว็บไซต์ที่มีภาพหมุน (ก็อาจจะมีแบนเนอร์) ซึ่งจำเป็น แสดงเฉพาะบน หัวด้าน . สำหรับผู้ที่วางโยคะลงในก้อน okremium แล้วใส่ลงในเทมเพลตเพื่อขอความช่วยเหลือในการก่อสร้างดังกล่าว

เดอ: 1 - id ของหน้าหลัก
$carusel- ชิ้นที่มีรหัสม้าหมุน (แบนเนอร์)
กาน้ำชาใหม่เท่านั้นที่สร้าง เทมเพลตใหม่สำหรับแถวของแถวในโค้ดแบบหมุน ฉันเป็นคนเก่งมาก ฉันไม่ตกอยู่ในvіdchayและvprovadzhuєmo phx ใน rozrobka

มาดูการออกแบบรายงานกันดีกว่า:

[[*id:is=`1`:then=`[[$carusel]]`]]

*id- แสดง ID ของฝั่งสตรีม;

:is=`1`:then=

— revіryaє chi *id == 1? และถ้ามีเพียงหนึ่งเดียวก็ปรากฏพร้อมกัน แล้ว;
$carusel- แสดงชิ้นม้าหมุน

แทนที่ *id คุณสามารถเปลี่ยนฟิลด์อื่นๆ เช่น *เทมเพลต - แสดงเทมเพลตการสตรีม มิฉะนั้น คุณสามารถเขียนทับเนื้อหาของช่องทีวี (อย่าพูด * คำหลัก) และแม้ว่าจะถูกเขียนทับ ให้เปิดขึ้น รอซเบเรโม วิภาดก เดนมาร์กรายงาน. กำหนดรูปแบบมาตรฐาน:

ผู้จัดการ:อย่าแสดงแถวนี้ เนื่องจากไม่ได้กรอกคีย์เวิร์ดของทีวี
วิธีการแก้.

[[*คำสำคัญ:!empty=` `]]

นาวันเทจ

จำเป็นต้องติดตามงานของตัวดัดแปลงอย่างไม่ใส่ใจїhnє vykoristannya vykliche zayvі vantazhennya หันมาทางม้าหมุนกัน บันทึก tseyมันถูกอ่านเป็น levoruch และ MODH นับการมีส่วนร่วมของจิตใจไม่ว่าจิตใจจะถูกต้องหรือไม่ก็ตามซึ่งจะแสดงในด้านสตรีมมิ่งของ [[$ม้าหมุน]]ในช่วงเวลาของโยคะ เป็นไปได้ ที่ zv'yazku z tsim dotsіlnіsheเขียนบันทึกใหม่:

[[$caru[[*id:is=`1`:then=`sel`]]]]

มีโอกาสได้สักก้อน $caruselย่อมแตกสลายเป็นบางครั้งประหนึ่งว่าจิต

*id:is=`1`

เพราะ ชนะ

[[*id:is=`1':then=`sel`]]

และไอดีของฝั่งสตรีมมิ่งคือ 1 ส่วนที่เหลือกำลังดำเนินการอยู่ [[$ม้าหมุน]]ถ้า id ไม่ดี 1 แล้ว - [[$รถ]]. ก้อนล่ะ $caru- หากไม่มีองค์ประกอบก็จะไม่มีการหมกมุ่น

และเมื่อคุณดู visnovok ในอุดมคติ เราจะเป็นแบบนี้

[[$[[*id:is=`1`:then=`carusel`]]]]

เกี่ยวกับวิธีการรวมเลย์เอาต์เข้ากับ .อย่างถูกต้อง modx revoฉันแนะนำให้อ่านที่นี่

บันทึก! คุณสามารถรวมตัวปรับแต่งที่ปรับขนาดได้ตามตรรกะของงานและส่วนประกอบของไซต์ แต่โปรดจำไว้ว่านี่คือสาระสำคัญหลัก อำนวยความสะดวกในการจัดจำหน่ายแต่ชี่ไม่สามารถพับหากไม่มีงานพับนั้น เรียกออกมา มีประสิทธิภาพมากที่สุดและ dієviy sposіb- ง่ายที่สุดสำหรับผู้ที่มีโครงสร้างที่เรียบง่ายและเข้าใจได้มากที่สุด - ฝึกฝนได้ง่ายขึ้น ด้านล่างนี้คือตัวปรับแต่งหลัก ดังนั้นคุณสามารถชนะสำหรับแท็ก MODX Revo ใดๆ ก็ได้

แลนซ์ออฟโมดิฟายเออร์

ก้นที่ดีคือการกระตุ้นให้มีดหมอจัดรูปแบบแถวของวันที่ในรูปแบบอื่นเช่น:

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

การเข้าถึงโดยตรงไปยังตาราง "modx_user_attributes" ในฐานข้อมูลด้วยการเปลี่ยนแปลงของตัวแก้ไขส่วนย่อยที่เลือกสามารถทำได้ง่ายๆ โดยใช้เส้นทางการเปลี่ยนแปลงของตัวแก้ไข ข้อมูลผู้ใช้. เลือกตำแหน่งที่เหมาะสมจากตารางและระบุว่ากำลังของตัวปรับแต่งภายนอกเป็นอย่างไร ตัวอย่างเช่น:

คีย์ภายในของ koristuvach: [[!+modx.user.id:userinfo=`internalKey`]] เข้าสู่ระบบ: [[!+modx.user.id:userinfo=`username`]] ชื่อภายนอก: [[!+modx .user .id:userinfo=`fullname`]] บทบาท: [[!+modx.user.id:userinfo=`role`]] อีเมล: [[!+modx.user.id:userinfo='email' ]] โทรศัพท์: [[!+modx.user.id:userinfo=`phone`]] โทรศัพท์มือถือ: [[!+modx.user.id:userinfo=`mobilephone`]] แฟกซ์: [[!+modx.user .id :userinfo=`fax`]] วันชาติ: [[!+modx.user.id:userinfo=`dob`:date=`%Y-%m-%d`]] กลายเป็น: [[!+modx .user .id:userinfo=`gender`]] ประเทศ: [[!+modx.user.id:userinfo=`country`]] สถานะ: [[!+modx.user.id:userinfo=`state`]] รหัสไปรษณีย์ : [[!+modx.user.id:userinfo=`zip`]] รูปภาพ: [[!+modx.user.id:userinfo=`photo`]] ความคิดเห็น: [[!+modx.user.id :userinfo =`comment`]] วันที่เข้าสู่ระบบครั้งล่าสุด: [[!+modx.user.id:userinfo=`lastlogin`:date=`%Y-%m-%d`]] จำนวนการเข้าสู่ระบบ: [[!+modx ผู้ใช้ .id:userinfo=`logincount`]]

ฉันเคารพสัตว์เป็นพิเศษสำหรับสัญญาณการโทร [[ ! +modx.user.id]]. วินอนุญาต อย่า keshuvatiแทนการอนุมาน ทำไมถึงไม่จำเป็นต้องเติมเงิน? เห็นได้ชัดว่ามันเป็นเช่นนี้: มี 5 koristuvachs บนเว็บไซต์ koristuvach zaishov ตัวแรกที่ด้านข้างของรายสัปดาห์:

กรุณา [[!+modx.user.id:userinfo=`username`]]!

เบื้องหลังแนวคิดนี้ อีกด้านหนึ่ง จะเป็นความทรงจำที่สำคัญของ Koristuvachev ดังนั้นจากถ้าผลลัพธ์เป็นเงินสดแล้วที่ทางเข้าแรกของด้าน tsyu - เพื่อบันทึก koristuvacha เหมือน zayshov ที่ดี - และคนอื่น ๆ ทั้งหมดจะไม่แสดงїhnєіm'ya แต่іm'yaที่ koristuvach เช่น koristuvach ด้าน tsyu ก่อน หากต้องการหลบหนีเพียงอย่าแคชแท็กนี้เพื่อขอความช่วยเหลือ ลูกเห็บก่อนทุกสัปดาห์ ! +modx...

ปล.อย่าลืม รวมทั้งสวิตช์แท็กเงินคืน ไม่ต้องการ! Shchob tse robiti - มันเป็นสิ่งจำเป็น โปบุตาติในรูปแบบของสัญญาณการโทร ( ! ). ผลลัพธ์ของตัวอย่างเพิ่มเติมโดยรวมสามารถใช้ได้จากแคช ในบทเรียนต่อไปเราจะเข้าใจ

รอเพื่อน! วันนี้เราเรียนรู้การสร้างตัวกรองทรัพยากรที่ MODX Revolutionมีความเป็นไปได้ในการจัดเรียงสำหรับช่องทีวีใด ๆ และเพื่อส่งเสริมผลลัพธ์โดยคลิกที่ "สำคัญ" เพื่อดูผลลัพธ์ เราจะทวีตข้อมูลโค้ด pdoResources

ปรบมือ

Zapiniti

รับตัวอย่างและไฟล์ที่จำเป็นสำหรับบทเรียน

ในการเริ่มต้น คุณต้องติดตั้งแพ็คเกจ pdoResources, สิ่งที่ต้องป้อนก่อนแพ็คเกจคลังสินค้า pdoTools. คุณสามารถติดตั้งแพ็คเกจ pdo ทั้งชุด (pdoTools) หรือเพียงแค่ pdoResources เป็นแพ็คเกจเพื่อสร้างตัวกรองใน MODx Revolution

หลังจากติดตั้งแพ็คเกจแล้ว เรามารวมข้อมูลโค้ดที่คุณได้ใช้ประโยชน์จากโปรเจ็กต์ของคุณกัน หากคุณขยายแคตตาล็อกทั้งหมดพร้อมกันตั้งแต่เริ่มต้น Raju จะต้องเพิ่มคลาสเพลงเพิ่มเติมสำหรับการกรอง Ajax รูปแบบการตั้งชื่อคลาส:

อย่างไรก็ตาม เนื่องจากคุณมีไดเร็กทอรีพร้อมอยู่แล้ว คุณสามารถกำหนดคลาสองค์ประกอบตัวกรอง Ajax ให้กับไฟล์ JS (div. ด้านล่าง)

เพื่อเป็นการตอบแทนความเคารพ scho .ajax-item maє buti bezperednіm nashchak .ajax-คอนเทนเนอร์. หากคุณใช้ตาราง Bootstrap สำหรับเค้าโครงคอลัมน์ คุณสามารถระบุคลาสคอนเทนเนอร์เป็น "คอนเทนเนอร์แถวอาแจ็กซ์", และคอลัมน์รายการ yak "col-md-4 ajax-item".

การเชื่อมต่อตัวกรอง Ajax สคริปต์ JS

เรารวมสคริปต์ JS ไว้หน้าโครงการ คุณสามารถเชื่อมต่อเหมือนไฟล์ และไม่มีตัวกลางกับไฟล์สคริปต์ที่กำหนดเองในโปรเจ็กต์ สำหรับสคริปต์หุ่นยนต์ คุณต้องมี jQuery

$(function() ( //MODx pdoResources Ajax Filter //Filter Settings var fadeSpeed ​​​​= 200, // Fade Animation Speed ​​​​ajaxCountSelector = ".ajax-count", // ตัวเลือก CSS ของตัวนับรายการ ajaxContainerSelector = " ajax-container" , // ตัวเลือก CSS ของ Ajax Container ajaxItemSelector = ".ajax-item", // ตัวเลือก CSS ของ Ajax Item ajaxFormSelector = ".ajax-form", // ตัวเลือก CSS ของ Ajax Filter Form ajaxFormButtonStart = ".ajax -start", // ตัวเลือก CSS ของปุ่มเริ่มกรอง ajaxFormButtonReset = ".ajax-reset", // ตัวเลือก CSS ของปุ่มรีเซ็ต Ajax Form sortDownText = "Downfall", sortUpText = "Adjusted"; ฟังก์ชัน ajaxCount() (ถ้า ($) (" .ajax-filter-count") .length) ( var count = $(".ajax-filter-count") .data("count"); $(ajaxCountSelector).text(count); ) else ( $ (ajaxCountSelector ).text($(ajaxItemSelector).length); ) )ajaxCount(); response = $(response);$(ajaxCont ainerSelector).fadeOut(fadeSpeed); setTimeout(function() ( $(ajaxContainerSelector) .html ) ($response.find(ajaxContainerSelect .) หรือ ).html()).fadeIn(fadeSpeed); ajaxCount(); ) จางความเร็ว); )); ) $(ajaxContainerSelector).on("คลิก", ​​".ajax-more", function(e) ( e.preventDefault(); var offset = $(ajaxItemSelector).length; $.ajax(( data: $(ajaxFormSelector). ) ).serialize()+"&offset="+offset )).done(function(response) ( $(".ajax-more").remove(); var $response = $(response); $response.find (การตอบกลับ) ( ajaxItemSelector).hide();$(ajaxContainerSelector).append($response.find(ajaxContainerSelector).html());$(ajaxItemSelector).fadeIn(); จ) ( e.preventDefault(); ajaxMainFunction(); )) $(ajaxFormButtonReset).click(function(e) ( e.preventDefault(); $(ajaxFormSelector).trigger("reset"); $("input" ).val("pagetitle"); $("อินพุต" ".val("asc"); setTimeout(function() ( $("")).data("sort-dir", "asc").toggleClass( "button-sort-asc").text(sortUpText) ; ), fadeSpeed);ajaxMainFunction(); ajaxCount(); )) $("").data("sort-dir", "asc").click(function() ( var ths = $(this) ); $("input")).val($(นี้).data("sort-by")); $("input")).val($(this).data("sort-dir")); setTimeout( function() ( $("")).not(นี้).toggleClass(" ปุ่มเรียงลำดับ asc") ข้อความ (sortUpText); ths.data("sort-dir") == "asc" ? ths .data("sort-dir", "desc") .text(sortDownText) : ths.data("sort-dir", "asc") .text(sortUpText); $(นี้).toggleClass("button-sort -asc"); ) จางความเร็ว); ajaxMainFunction(); )); ));

  • แถว 5-13:การแต่งตั้งการเปลี่ยนแปลงสำหรับ ตัวเลือก CSSตัวกรองอาแจ็กซ์ มันไม่เปลี่ยนแปลง มันเหมือนกับค่ามาตรฐานที่ได้รับชัยชนะ เหมือนกับสิ่งเล็กๆ น้อยๆ ที่มีมากกว่านั้น
  • แถว 15-22:สคริปต์ของผู้ถือทรัพยากรในผลลัพธ์ของการกรอง
  • แถว 24-35:หน้าที่หลักของการกรอง Ajax;
  • แถว 37-49:สำเนาของการคลิกที่ปุ่ม "เริ่มต้น";
  • แถว 51-54:ตัวอย่างโดยคลิกที่ปุ่ม "ตัวกรอง" ปุ่มนี้สามารถใช้ได้ระหว่างวัน หน้าจอสำหรับกรองจะถูกเลือกโดยอัตโนมัติ สามารถเปิดการกรองอัตโนมัติด้วยระยะทางแถว 68-70;
  • แถว 56-66:ตัวอย่างการทำให้บริสุทธิ์ของแบบฟอร์มและการนำตัวกรองออก แถว 59-63 มีไว้สำหรับวางพารามิเตอร์ในการเรียงลำดับ
  • แถว 68-70:ฟังก์ชั่นการเรียงลำดับอัตโนมัติสำหรับการเปลี่ยนฟิลด์ของแบบฟอร์มตัวกรอง
  • แถว 72-82:ฟังก์ชันสากลของการเรียงลำดับตามพารามิเตอร์ทีวี

ฉันพยายามจะปล้น อักษรเดนมาร์กสากลมากที่สุด เนื่องจากคุณชนะตัวเลือกองค์ประกอบตัวกรอง Ajax มาตรฐาน คุณไม่จำเป็นต้องแก้ไขอะไรเลย

การเชื่อมต่อข้อมูลโค้ด PHP ใน MODX Revolution

สร้างตัวอย่างใหม่ในแผงคีย์แมป MODx แค็ตตาล็อกตัวกรองแล้วเขียนโยคะดังนี้

=".$_GET["area_from"]; ) if($_GET["area_to"]) ( $filter = "พื้นที่<=".$_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->toJSON(array($ ตัวกรอง)); ) else ( $where = ""; ) $params_count = array("parents" => $parents, "limit" => 0, "tpl" => "@INLINE ,", "select" => "id", "includeTVs" => $fields, "showHidden" => "1", "where" => $where); $count = $modx->runSnippet("pdoResources",$params_count); $count = $modx->runSnippet("pdoResources",$params_count); $count = นับ(ระเบิด(",",$นับ))-1; $modx->setPlaceholder("นับ",$นับ); $params = array("พาเรนต์" => $พาเรนต์, "limit" => $limit, "offset" => $offset, "tpl" => $tpl, "select" => "id,pagetitle,introtext,content ", "includeTVs" => $fields, "showHidden" => "1", "sortby" => $sortby, "sortdir" => $sortdir, "where" => $where); $more = $นับ - $offset - $limit; $limit = $more > $limit? $limit: $มากกว่า; ปุ่ม $ = ""; if($มากกว่า > 0)( $button = "
รับ ".$lim" s ".$ มากกว่า"
"; ) คืนค่า $modx->runSnippet("pdoResources",$params).$button;

ความคิดเห็นของMіzh //กรองการตั้งค่าฟิลด์і //สิ้นสุดการตั้งค่าเพื่อทราบพารามิเตอร์ ความจำเป็นในการแก้ไขโครงการของคุณอย่างไร ไม่มีอะไรสอดคล้องกันที่นี่ เพียงแค่เขียนชื่อของช่องใส่และแก้ไขด้วยจิตถ้า สำหรับฟิลด์ประเภทวิทยุ เลือกและข้อความ ก้นถูกดึงมาจากแถวที่ 5-8 เพื่อจุดประสงค์ของค่ากลางของจำนวนที่เป็นไปได้ที่จะเร่งก้นของแถวที่ 11-16 สำหรับช่องทำเครื่องหมาย pidide butt แถว 19-21

ที่แถวที่ 74 ของตัวอย่าง คุณสามารถตั้งค่าคลาสของคุณเองได้ แต่ไม่เห็นมาร์กอัปโฟลว์ ชาร์ดจะไม่มีส่วนร่วมในสคริปต์สำหรับการโปรโมตเนื้อหา

ตัวอย่างค่าที่เป็นไปได้บนปุ่มกด MODx สำหรับปุ่มตัวเลือก: แรก==1||อื่นๆ==2||ที่สาม==3


ตัวอย่างการแสดงปุ่มตัวเลือกที่ส่วนหน้า:

นี่แหละชื่อ ชื่อ = "ชั้น"ติดตามแถวที่ 6-8 ของตัวอย่างของเรา แค็ตตาล็อกตัวกรอง. การประมวลผลฟิลด์แบบฟอร์มอื่น ๆ จะดำเนินการในทำนองเดียวกัน ฉันคิดว่า tse ozumіloและการสร้างฟิลด์ vlasnyh จะไม่เป็นปัญหาสำหรับคุณ

การดูข้อมูลโค้ดถูกกำหนดให้กับเทมเพลตแค็ตตาล็อกตามลำดับต่อไปนี้:

[[!catalogFilter? &tpl=`tplCatItem` &limit=`3` &parents=`5` &fields=`ภาพ พื้นที่ ชั้น โรงรถ ราคา`]]

  • tpl=`tplCatItem`- ชิ้นรายการในรายการไดเรกทอรี;
  • จำกัด=`3`- จำนวนบันทึกที่จะแสดงและจำนวนระเบียนที่จะเลือกเมื่อคลิกที่ปุ่ม "ข้อได้เปรียบ";
  • พ่อแม่=`5`- ระบุ ID เอกสารสำหรับไดเร็กทอรีทรัพยากร
  • field=`ภาพ พื้นที่ ชั้น โรงรถ ราคา`- ตรวจสอบทีวีอีกครั้งซึ่งควรแสดงในโอกาส tplCatItem และควรดำเนินการเมื่อกรอง

ก้อนก้น tplCatItem

[[+ชื่อหน้า]]

[[+tv.area:isnot=``:then=` `]]
เกิน [[+ทีวี.ฟลอร์]]
พื้นที่ [[+tv.area]] ตร.ม.
โรงรถ [[+tv.garage:is=`1`:then=`Є`:else=`Ні`]]
ราคา: [[+ทีวี.ราคา]]

คุณสามารถดูตัวอย่างที่ซับซ้อนของการมองเห็น front-end ได้ที่ที่เก็บของโครงการบน github ที่ไฟล์ demo.html.

อาแจ็กซ์ คัดแยกตาม TV

สคริปต์ของเรามีโซลูชันพร้อมสำหรับการจัดเรียงผลลัพธ์ของการกรองตามฟิลด์ใดๆ ในแบบฟอร์มตัวกรอง ให้แทรกฟิลด์ที่แนบมาถัดไปและอย่าเปลี่ยนค่าของฟิลด์ กลิ่นเหม็นนั้นเกิดจากรูปแบบตัวกรอง:

สำหรับพื้นที่ใดก็ตามของเทมเพลต HTML ของคุณ ให้เพิ่มปุ่มที่จะแสดงและในแอตทริบิวต์ data ให้ป้อนฟิลด์ที่คุณต้องการกรองมุมมอง:

เรียงตามราคา: เพิ่มขึ้น

เมื่อคลิกคลาสจะขาด ปุ่มเรียงลำดับ ascซึ่งคุณสามารถบิดเพื่อออกแบบปุ่มเมื่อเปลี่ยนการเรียงลำดับโดยตรงโดยเพิ่มลูกศรไปที่แอตทริบิวต์ data-sort-byคุณสามารถเขียนเหมือนทีวีซึ่งนำชะตากรรมของการกรอง ฉันจัดเรียงทุกอย่าง

นอกจากนี้เรายังดูการสร้างตัวกรองทรัพยากร Ajax ที่เงอะงะใน MODx และแสดงผลลัพธ์ใน SNIPET pdoResources.

สุขภาพแข็งแรงทุกคน ในบทความนี้ ฉันจะบอกคุณถึงวิธีสร้างตัวกรองเอกสารสำหรับพารามิเตอร์ทีวีบนไซต์ภายใต้การควบคุม Modx Revolution เราจะชนะ snippet tagManager2ดู Andchir. Tsey snippet vmіє pratsyuvati vіdrazu z dekіlkom tv เช่นเดียวกับบรรณาการที่เป็นตัวเลข (เมื่อเห็นราคา) และรายการหลายรายการ ฉันให้ผิวหนังของก้น

1. สำหรับ cob คุณต้องติดตั้ง tagManager2

เราจะไปเพื่อใคร โปรแกรม/ตัวติดตั้ง/

ปุ่มนูน “รับเพิ่ม”และติดตลกติดอยู่ใน tagManager2

นอกจากนี้ยังจำเป็นต้องแทรกข้อมูลโค้ด getPage และ getProducts. ในตำแหน่งนี้เขาแบ่ง "การจัดการบรรจุภัณฑ์"มีความผิดในการมีลักษณะเช่นนี้ (การถอดเสียงตัวอย่างก่อนพูดvіdpovіdaєสำหรับการทับศัพท์ของนามแฝงเป็นภาษาละติน)

Zavantazhuemo ติดตั้งแพ็คเกจและสาธิตใน “การติดตั้งระบบ”

2. แท็กตัวอย่างข้อมูลที่กำหนดเอง tagManager2

สำหรับการตั้งค่าระบบ เลือกพาร์ติชั่น tag_manager2

เราจำเป็นต้องปรับพารามิเตอร์ตัวกรอง

มีทุกสิ่งที่ง่ายต่อการทำให้เสร็จและเข้าใจ แต่ทุกอย่างเหมือนกัน:

  • ที่ "รหัสทรัพยากรสำหรับไดเรกทอรีระดับบน"ระบุรหัสสำหรับเทมเพลตแค็ตตาล็อก ทั้งหมวดหมู่ ผลิตภัณฑ์กรอง หรือด้านข้าง
  • ที่ "ผู้จัดจำหน่ายเพิ่มเติมของรายการหลายรายการ"ใส่เครื่องหมาย # ด้านล่างนี้ คุณจะได้ทราบเกี่ยวกับไวน์ที่คุณต้องการ
  • ที่ "ชื่อทีวีหรือฟิลลิ่งจากหลายรายชื่อ"กำหนดทีวีจากรายการหลายรายการ วิธีสร้างฉันจะแสดงด้านล่าง
  • "ชื่อทีวีหรือฟิลด์ที่มีค่าตัวเลข"- ที่นี่คุณต้องระบุพารามิเตอร์ทีวีซึ่งจะมีตัวเลข เสียงพารามิเตอร์ราคา tse ตัวกรองนี้จะเห็นได้จากรูปลักษณ์ของเด็ก "จากและถึง"
  • ที่ "รหัสเทมเพลตผลิตภัณฑ์"กำหนดรหัสด้านข้างเนื่องจากจำเป็นต้องกรองและแนบพารามิเตอร์ทีวีที่ระบุข้างต้น
  • ที่ "ชุดพารามิเตอร์ Im'ya ที่ชนะสำหรับการกรอง"กำหนด catalog_filters getPageі รับผลิตภัณฑ์
  • กำหนดใน "ตัวอย่างข้อมูล Hit พร้อมชุดพารามิเตอร์"ฉันจะตั้งชื่อตัวอย่างซึ่งเป็นการแสดงภาพและการแบ่งหน้าด้านข้างของสินค้าทั้งสอง โทรออก getPage.

3. สร้างชุดของพารามิเตอร์ใน catalog_filters จาก getPage

Idemo ใน getPage snippet

ไปที่แท็บ "พารามิเตอร์"และกดปุ่ม "เพิ่มชุดพารามิเตอร์". แน่นอน เป็นไปได้ที่จะแก้ไขส่วนสำคัญ แต่ยังมีโอกาสเขียนทับพารามิเตอร์ดังที่เราสามารถทำได้ในครั้งเดียวเมื่ออัปเดต getPage หากคุณไม่เลือกอัปเกรด คุณสามารถแก้ไขได้

พารามิเตอร์ที่แก้ไขได้และค่าที่กำหนดได้:

สร้างพารามิเตอร์ใหม่และดึงดูดค่า

พารามิเตอร์ rededicated เป็นสีเขียว การสร้างเป็นสีม่วง

4. สร้างหรือแก้ไขพารามิเตอร์ทีวีสำหรับตัวกรอง

ฉันกำลังตั้งค่าทีวี 3 ก้น

ฉันต้องการให้ความสนใจเป็นพิเศษกับความจริงที่ว่าจำเป็นต้องระบุชื่อ (ส่วนหัว) ของพารามิเตอร์ทีวีมิฉะนั้นไวน์อาจไม่แสดงในโมดูลการจัดการตัวกรอง

5. สร้าง filtr_tpl ก้อน

กลุ่มนี้ได้รับรางวัลสำหรับการดูผลลัพธ์ที่ได้รับการปกป้องผิวใน getProduct

6. สร้างโครงสร้างสำหรับโครงสร้างเอกสาร

สำหรับฉันดูเหมือนว่านี้:

หน้าหลักของเรามี ID 1 และสำหรับรหัสผลิตภัณฑ์เทมเพลต 1 (เราต้องตั้งค่า tag_manager2 หากคุณมีค่าต่างกันอย่าลืมจำในการตั้งค่า)

7. แก้ไข filter.js

Idemo สำหรับที่อยู่ /assets/components/tag_manager2/js/web/filters.jsและรอง

Multitags: ["tags"],//ชื่อเพิ่มเติม รดน้ำได้หลายค่า

เราใส่รหัสจากค่าอินพุตของเรา

หลายแท็ก: ["filtr1", "filtr2"], / ​​ชื่อของการเพิ่ม รดน้ำได้หลายค่า

ทุกอย่างเรียบง่ายและชัดเจนที่นี่ เราได้แทรกช่องทีวีของเราด้วยค่าตัวเลข และvzagalі tse ตั้งค่า nalashtuvan ทั้งหมด (แม้ว่าจะดีกว่าหากไม่ได้รับอนุญาตจากลุงผู้ยิ่งใหญ่อย่าสับพวกเขา แต่ฉันอาจมองหาผู้สร้างโมดูล)

8. แสดงผลตัวกรองและกรองผลลัพธ์

ตัวกรองตัวเอง

[]
[[+ฟิลเตอร์]]

ดูผลลัพธ์จากการแบ่งหน้า

[[!tmCatalog]]
    [[!+page.nav]]

เรียงลำดับผลลัพธ์

9. เปิดใช้งานตัวกรอง

ตอนนี้จำเป็นต้องเปิดใช้งานตัวกรองของเรามากขึ้น เราจะไปเพื่อใคร โปรแกรม/การดูแลด้วยตัวกรอง.

ที่นี่คุณต้องทำเครื่องหมายในช่องสำหรับตัวกรองผิวหนังแล้วกดปุ่ม"บันทึก".

หากคุณทำทุกอย่างถูกต้องตัวกรองจะต้องถูกตำหนิ เกี่ยวกับใครทุกอย่าง ทันทีที่อาหารปรากฏขึ้น - ใส่ในความคิดเห็นฉันจะพยายามบอกคุณ และแกนเอกสารสำหรับ tagManager2 ขอให้โชคดีกับ rozrobtsi ที่ "การสาธิต"หนึ่งในไซต์ของฉันซึ่งใช้ตัวกรองเพื่อขอความช่วยเหลือ tagManager2

© 2022 androidas.ru - ทั้งหมดเกี่ยวกับ Android