ตัวกรอง Modx ตัวกรอง ตัวแก้ไขกลิ่นเหม็น ใน CMF MODx Revolution สร้างพารามิเตอร์ใหม่และดึงดูดค่า
ตัวกรองในการปฏิวัติช่วยให้คุณควบคุมวิธีการนำเสนอข้อมูล อนุญาตให้คุณเปลี่ยนค่าของเทมเพลตกลาง
ในการปฏิวัติ ตัวกรองภายนอกจะถูกตั้งค่าอย่างน้อยหนึ่งครั้งจากชุดของตัวปรับแต่งภายนอก ดังนั้นควรปรับให้เหมือนกับรอบ 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 = "ความคิดเห็นของ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]] ตร.ม. |
โรงรถ | [[+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. แสดงผลตัวกรองและกรองผลลัพธ์
ตัวกรองตัวเอง
[]ดูผลลัพธ์จากการแบ่งหน้า
- [[!+page.nav]]
เรียงลำดับผลลัพธ์
9. เปิดใช้งานตัวกรอง
ตอนนี้จำเป็นต้องเปิดใช้งานตัวกรองของเรามากขึ้น เราจะไปเพื่อใคร โปรแกรม/การดูแลด้วยตัวกรอง.
ที่นี่คุณต้องทำเครื่องหมายในช่องสำหรับตัวกรองผิวหนังแล้วกดปุ่ม"บันทึก".
หากคุณทำทุกอย่างถูกต้องตัวกรองจะต้องถูกตำหนิ เกี่ยวกับใครทุกอย่าง ทันทีที่อาหารปรากฏขึ้น - ใส่ในความคิดเห็นฉันจะพยายามบอกคุณ และแกนเอกสารสำหรับ tagManager2 ขอให้โชคดีกับ rozrobtsi ที่ "การสาธิต"หนึ่งในไซต์ของฉันซึ่งใช้ตัวกรองเพื่อขอความช่วยเหลือ tagManager2