ฉันจะซ่อนฟิลด์เมื่อสร้างโหนด แต่แสดงฟิลด์ได้เมื่อแก้ไขโหมดได้อย่างไร
ฉันจะซ่อนฟิลด์เมื่อสร้างโหนด แต่แสดงฟิลด์ได้เมื่อแก้ไขโหมดได้อย่างไร
คำตอบ:
หากฉันเข้าใจคำถามของคุณฉันคิดว่าคุณสามารถใช้โมดูลที่กำหนดเองได้ (ในตัวอย่างนี้ชื่อของโมดูลคือtest_remove_field
) และรวมรหัสต่อไปนี้:
function test_remove_field_form_alter(&$form, &$form_state) {
if (arg(0) == 'node' && arg(1) == 'add') {
$form['field_test']['#access'] = 0;
}
}
หมายเหตุ: โปรดจำไว้ว่าfield_test
ต้องเป็นชื่อเขตข้อมูลของคุณ
สนามสิทธิ์โมดูลช่วยให้คุณสามารถใช้สิทธิ์ระดับเขตชุด:
คุณสามารถใช้ตัวเลือกเหล่านี้เพื่อเปิดใช้งานการอนุญาตตามบทบาทสำหรับเขตข้อมูล
เมื่อเปิดใช้งานการอนุญาตการเข้าถึงฟิลด์นี้จะถูกปฏิเสธโดยค่าเริ่มต้นและสิทธิ์ที่ชัดเจนควรได้รับการกำหนดบทบาทผู้ใช้ที่เหมาะสมจากหน้าการจัดการสิทธิ์ ในทางกลับกันเมื่อตัวเลือกเหล่านี้ถูกปิดใช้งานการอนุญาตให้ใช้สิทธิ์ฟิลด์จะได้รับมาจากมุมมองเนื้อหาและ / หรือแก้ไขการอนุญาต ตัวอย่างเช่นผู้ใช้ที่ได้รับอนุญาตให้ดูโหนดเฉพาะจะสามารถดูฟิลด์นี้และอื่น ๆ ได้
การอนุญาตภาคสนาม
ฉันจะใช้hook_form_alter ()และตั้งค่า['#access']
คุณสมบัติFALSE
เช่นเดียวกับคำตอบโดย @ moon.watcher
หากคุณอยู่ใน Drupal 6 คุณต้องมีโมดูลสำหรับทำสิ่งนี้ ใน Drupal 7 คุณสามารถโทรhook_form_alter ()จากเทมเพลตของคุณ
นี้เป็นกรณีการใช้งานสำหรับกฎในแบบฟอร์มการสนับสนุนโมดูล - https://www.drupal.org/project/rules_forms
คุณสมบัติรวมถึง:
- เปิดใช้งานกิจกรรมสำหรับการสร้างแบบฟอร์มการตรวจสอบความถูกต้องและการส่งแบบฟอร์มต่อแบบฟอร์ม
- กำหนดเป้าหมายองค์ประกอบรูปแบบส่วนบุคคลหรือทั้งรูปแบบในเงื่อนไขและการกระทำ จัดการคุณลักษณะขององค์ประกอบแบบฟอร์มเช่นชื่อคำอธิบายน้ำหนักและอื่น ๆ
- ตรวจสอบค่าขององค์ประกอบแบบฟอร์มในระหว่างการตรวจสอบแบบฟอร์ม
- ตั้งค่าข้อผิดพลาดของฟอร์มเมื่อการตรวจสอบตามกฎล้มเหลว
- เปลี่ยนเส้นทางผู้ใช้ไปยังหน้าอื่นเมื่อดูหรือส่งแบบฟอร์ม
- ตรวจสอบคุณสมบัติขององค์ประกอบในรูปแบบที่ใช้งานอยู่ด้วยเครื่องมือตรวจสอบองค์ประกอบ
คุณสามารถใช้แบบฟอร์มเพิ่ม / แก้ไขโหนดด้วยหน้าแผงควบคุม ด้วยสิ่งนี้คุณสามารถเลือกและเลือกสิ่งที่คุณต้องการในแบบฟอร์ม