คำตอบ:
ลองใช้โมดูลการเข้าถึงเนื้อหาและป้องกันการเข้าถึงvideo
เนื้อหาทีละรายการ (หรือคุณสามารถตั้งค่าการเข้าถึงได้ตามที่คุณต้องการroles
)
โมดูลนี้ช่วยให้คุณสามารถจัดการการอนุญาตสำหรับประเภทเนื้อหาตามบทบาทและผู้เขียน ช่วยให้คุณระบุมุมมองที่กำหนดเองแก้ไขและลบสิทธิ์สำหรับเนื้อหาแต่ละประเภท คุณสามารถเปิดใช้งานตามการตั้งค่าการเข้าถึงเนื้อหาเพื่อให้คุณสามารถกำหนดการเข้าถึงสำหรับแต่ละโหนดเนื้อหา
นอกจากนี้คุณสามารถใช้โหนดดูสิทธิ์โมดูล Content access module
แต่ผมขอแนะนำให้ใช้
(ถ้าคุณต้องการทำงานกับ drupal สำหรับอนาคตจะดีกว่าการเกี่ยวข้องกับโมดูลที่มีประโยชน์นี้)
ติดตั้งโมดูลสิทธิ์ในการดูโหนด
โมดูลการอนุญาตมุมมองโหนดเปิดใช้งานการอนุญาต "ดูเนื้อหาของตัวเอง" และ "ดูเนื้อหาใด ๆ " สำหรับแต่ละประเภทเนื้อหาบนหน้าการอนุญาตเหมือนใน Drupal 6
ตอนนี้ได้รับอนุญาตกลับไปข้างหน้าและลบดูเนื้อหาใดได้รับอนุญาตจากประเภทของเนื้อหาวิดีโอสำหรับผู้ใช้ที่ไม่ระบุชื่อ
ในกรณีที่คุณต้องการให้ผู้ใช้ที่ไม่ระบุชื่อสามารถเข้าถึงวิดีโอจากแกลเลอรีวิดีโอเพียงไม่กี่รายการให้ติดตั้งโมดูลปฏิเสธการเข้าถึง
เพียงอัปเดตประเภทเนื้อหาของคุณ
เพิ่มฟิลด์ตัวเลขเช่นdisplay_orderเป็นต้น
กำหนดค่าของฟิลด์นี้เฉพาะวิดีโอที่คุณต้องการแสดง
ไปที่การตั้งค่ามุมมองของคุณและตั้งค่า;
ใช้เพจเจอร์: แสดงจำนวนรายการ | x รายการ
โดยที่ x คือวิดีโอหมายเลขที่คุณต้องการแสดง
จากนั้นใช้การเรียงลำดับตามลำดับการแสดงผล
หวังว่ามันจะทำงาน
ฉันคิดว่าโมดูลRabbit Holeทำสิ่งที่คุณต้องการอย่างแน่นอน นี่คือข้อความที่ตัดตอนมาจากหน้าคำอธิบายของโมดูลที่ตอบสนองความต้องการของคุณ โชคดี.
Rabbit Hole เป็นโมดูลที่เพิ่มความสามารถในการควบคุมสิ่งที่จะเกิดขึ้นเมื่อมีการดูเอนทิตีในหน้าของตัวเอง
บางทีคุณอาจมีประเภทเนื้อหาที่ไม่ควรแสดงในหน้าของตัวเองเช่นประเภทเนื้อหารูปภาพที่แสดงในภาพหมุน Rabbit Hole สามารถป้องกันไม่ให้โหนดนี้สามารถเข้าถึงได้ในหน้าของตัวเองผ่านทางโหนด / xxx
ไปหาโมดูลของหลุมกระต่ายมันทำเหมือนกันทุกประการ เนื้อหาทั้งหมดสามารถเข้าถึงได้ผ่านการดู / รหัส แต่เมื่อคุณพยายามเข้าถึงหน้ารายละเอียด "เนื้อหา / ***" เป็นการปฏิเสธการเข้าถึงหรือคุณสามารถตั้งค่าการเปลี่ยนเส้นทาง
1) สร้างฟิลด์ค่าบูลีนในประเภทเนื้อหาของคุณ
2) หากเลือกค่าเป็นจริงควรเพิ่มคลาสที่ไม่ซ้ำกันลงในฟิลด์วิดีโอนั้นหากเลือกค่าเป็นเท็จไม่ควรเพิ่มคลาสลงในฟิลด์วิดีโอนั้น
3) เขียนCSSเพื่อซ่อนวิดีโอที่ไม่มีคลาส
การใช้โมดูลกฎคุณสามารถใช้กฎที่มีลักษณะคล้ายกับสิ่งนี้:
{ "rules_disallow_accesss_to_selected_urls" : {
"LABEL" : "Disallow access to selected URLs",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "init" : [] },
"IF" : [
{ "text_matches" : {
"text" : [ "site:current-page:url" ],
"match" : "content\/video-1",
"operation" : "regex"
}
}
],
"DO" : [
{ "drupal_message" : {
"message" : "Sorry, access to URLs like [site:current-page:url] is not allowed ...",
"type" : "error"
}
},
{ "redirect" : { "url" : "no_access" } }
]
}
}
ทุกคนที่พยายามเข้าถึงพา ธ ที่เกี่ยวข้องcontent/video-1
จะถูกเปลี่ยนเส้นทางไปยังเพจที่มีพา ธno_access
และข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องจะปรากฏขึ้น (ปรับพา ธ นี้เพื่อให้พอดีกับอนุสัญญาของคุณและตรวจสอบข้อความที่จะแสดง)
กฎข้างต้นจะ จำกัด การเข้าถึงเส้นทางสัมพัทธ์เท่านั้นcontent/video-1
(ดังเช่นในคำถามของคุณ) หากคุณต้องการที่จะขยายกฏเป็น URL ที่คล้ายกันให้เปลี่ยน content\/video-1
เป็นสิ่งที่ชอบcontent\/video-\\d+$
หรือรูปแบบใด ๆ ที่เหมาะกับแผนการตั้งชื่อเส้นทางของคุณ
กฎข้างต้นยังไม่ได้พิจารณาถึงเพื่อใช้กฎการกระทำสำหรับผู้ใช้ที่มีบทบาทที่เลือกเท่านั้น แต่สำหรับทุกคนที่คุ้นเคยกับโมดูลกฎนั่นคือ "เงื่อนไข" ที่จะเพิ่ม ... เช่น: ข้ามการกระทำของกฎสำหรับผู้ใช้ที่มีบทบาทเช่นผู้ดูแลระบบผู้ดูแลระบบ ฯลฯ ซึ่งคุณสามารถทำได้โดยการเพิ่มกฎ เงื่อนไขเช่น "ผู้ใช้ไม่มีผู้ดูแลบทบาท (และ / หรือบรรณาธิการ)" ด้วยวิธีดังกล่าวผู้ใช้พิเศษเหล่านั้นยังสามารถดูโหนดดังกล่าวได้ (โดยไม่มีเงื่อนไขพิเศษพวกเขายังไม่สามารถดูโหนดดังกล่าวอีกต่อไป ... )
ในการทดสอบกับกฎนี้ในเว็บไซต์ของคุณเพียงคัดลอกรหัสกฎทั้งหมดด้านบนและวางในกฎใหม่ในเว็บไซต์ของคุณสร้างขึ้นผ่านฟังก์ชั่น "นำเข้า" (พร้อมใช้งานถ้าเปิดใช้งาน UI UI) จากนั้นแก้ไข / ปรับแต่งเพิ่มเติมเพื่อให้เหมาะสมกับสภาพแวดล้อมของคุณ (เช่นข้อความ "ขออภัย ... " ที่จะแสดง)
หนึ่งในคำตอบอื่น ๆ ที่คุณเพิ่มความคิดเห็นซึ่งรวมถึง:
... ฉันต้องการเปลี่ยนเส้นทางไปยังหน้าแรกในบางกรณี 404 ในที่อื่น ๆ ดังนั้นฉันจึงควบคุมได้ดีกว่า ...
หากนั่นคือสิ่งที่คุณต้องการทำคุณสามารถปรับแต่งกฎการกระทำข้างต้นได้โดยการเพิ่มโมดูลกฎตามเงื่อนไข ด้วยสิ่งนี้สำหรับ "บางกรณี" ของคุณคุณสามารถระบุ URL ที่เหมาะสมเพื่อเปลี่ยนเส้นทาง อ้างถึงคำตอบของฉันเพื่อ " วิธีการตั้งค่าของบางฟิลด์ขึ้นอยู่กับค่าของกล่องรายการหรือไม่ " สำหรับภาพประกอบของวิธีการใช้โมดูลนี้ภายในการกระทำของกฎ