เมื่อมีการแก้ไขโหนดฉันต้องการสร้างการแก้ไขใหม่เสมอ ฉันไม่ต้องการให้คนอื่นสามารถปิดสิ่งนี้ได้ ฉันจะทำสิ่งนี้ได้อย่างไร
เมื่อมีการแก้ไขโหนดฉันต้องการสร้างการแก้ไขใหม่เสมอ ฉันไม่ต้องการให้คนอื่นสามารถปิดสิ่งนี้ได้ ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
หากต้องการเปิดใช้งานการสร้างการแก้ไขอัตโนมัติให้ไปที่หน้าประเภทเนื้อหา (ผู้ดูแลระบบ / เนื้อหา / โหนดประเภท) และเลือกแก้ไขสำหรับประเภทเนื้อหาใด ๆ ที่คุณต้องการให้มีการสร้างการแก้ไขอัตโนมัติ
ภายใต้ชุดเวิร์กโฟลว์เวิร์กโฟลว์จะมีตัวเลือก "สร้างการแก้ไขใหม่" ตรวจสอบให้แน่ใจว่าคุณทำเครื่องหมายในช่องนั้นและบันทึกการตั้งค่าประเภทเนื้อหาของคุณ
ตอนนี้ภายใต้สิทธิ์ของคุณ (ผู้ดูแลระบบ / ผู้ใช้ / สิทธิ์) ให้แน่ใจว่าจะไม่ให้สิทธิ์ผู้ใช้ "ดูแลระบบ" แก่ผู้ใช้ของคุณ นี่จะเป็นการป้องกันไม่ให้พวกเขาเขียนทับตัวเลือกนั้น
มีหลายวิธีในการทำเช่นนี้ แต่สมมติว่าคุณต้องการทำโดยไม่ปิดใช้งานการadminister nodes
อนุญาตสำหรับผู้ใช้อาจเป็นวิธีที่ง่ายที่สุดคือเพียงแค่ปิดการเข้าถึงช่องทำเครื่องหมายสร้างการแก้ไขใหม่โดยการสร้างโมดูลที่กำหนดเองที่ใช้hook_form_alter()
:
function sandbox_form_alter(&$form, &$form_state, $form_id) {
// Node forms have an ID of the form CONTENTTYPE_node_form: only modify those
if (strstr($form_id, '_node_form') === FALSE) {
return;
}
if (isset($form['revision_information'])) {
$form['revision_information']['revision']['#access'] = FALSE;
}
}
ด้วยวิธีนี้ผู้ใช้ไม่มีความสามารถในการเปลี่ยนค่าเริ่มต้นของช่องทำเครื่องหมายซึ่งกำหนดไว้ในหน้าการตั้งค่าสำหรับเนื้อหาแต่ละประเภท