มีวิธีการตั้งค่าการบล็อกการแสดงผลโดยทางโปรแกรมโดยไม่ใช้โมดูลตัวกรอง PHP หรือไม่?


11

ด้วยการเปิดใช้งานโมดูลตัวกรอง PHP หลักฉันสามารถใช้โค้ด PHP เพื่อตั้งค่าการเปิดเผยของบล็อกในหน้ากำหนดค่าบล็อก

แต่ฉันไม่ต้องการเปิดใช้งานโมดูลตัวกรอง PHP สำหรับมาตรการรักษาความปลอดภัย ดังนั้นมีวิธีทำในโมดูลที่กำหนดเองหรือไม่ ฉันหาเบ็ดทำไม่ได้ และตะขอแบบปิดhook_block_view_alterสามารถเปลี่ยนเนื้อหาบล็อกได้เท่านั้น

คำตอบ:


13

ใช่. การตั้งค่าเนื้อหาบล็อกเป็นเท็จจะซ่อนเนื้อหานั้นจากหน้าจอและจะซ่อนพื้นที่หากไม่มีบล็อกอื่นอยู่ ฉันคิดว่าคุณจะต้องมีการตั้งค่าที่คล้ายกับต่อไปนี้:

$block['content'] = _my_module_custom_block();

...

function _my_module_custom_block(){
    if( HIDE_CONDITION )
        return false;
}

2
จะไม่แสดงบล็อกที่มีเนื้อหาว่างเปล่าหรือไม่
gilzero

1
ใช้งานได้ดีมาก ขอบคุณ.
gilzero

@ Gilzero ไม่ว่าจะไม่
WM

1

กฎบล็อกการแสดงผลโมดูลเป็นอีกหนึ่งทางเลือกที่มีอยู่ ... ซึ่งไม่จำเป็นต้องกรอง PHP ที่จะเปิดใช้งาน นี่คือคำพูดจากหน้าโครงการ:

โมดูลกฎการมองเห็นของบล็อกอนุญาตให้ใช้ส่วนประกอบกฎเพื่อควบคุมการเปิดเผยบล็อก สิ่งนี้จะช่วยให้ผู้ดูแลระบบ Drupal และนักพัฒนามีความยืดหยุ่นในการควบคุมเมื่อบล็อกควรจะแสดงบนเว็บไซต์ของพวกเขานอกเหนือจากตัวเลือกการมองเห็นเริ่มต้นที่ Drupal ให้ไว้

แนวคิดทั่วไปคือถ้าคุณสามารถทำกับกฎคุณสามารถใช้เพื่อควบคุมการเปิดเผยบล็อกดังนั้นความเป็นไปได้จะไม่ จำกัด

ต้องการแสดงบล็อกเฉพาะสำหรับผู้ใช้ที่ลงทะเบียนมากกว่าหนึ่งเดือนก่อนหรือไม่

บางทีคุณอาจมีบล็อกที่ต้องแสดงระหว่างเวลา 8.00 น. - 17.00 น. ในวันธรรมดาเท่านั้น?

สิ่งที่เกี่ยวกับการแสดงหรือซ่อนบล็อกตามสภาพอากาศปัจจุบัน?

ทั้งหมดนี้สามารถทำได้โดยใช้กฎการมองเห็นบล็อก

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

สำหรับภาพประกอบของวิธีการใช้โมดูลนี้อ้างอิงคำตอบของฉันที่ " วิธีการบล็อกมุมมองจากการแสดงเพื่อผู้ดูแลระบบเช่นผู้ใช้ / 1 "

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.