วิธีซ่อนแท็บ“ จัดการฟิลด์” และ“ จัดการจอแสดงผล”


18

ฉันกำลังสร้างเว็บไซต์กับ Drupal 7 และฉันกำลังตรวจสอบสิทธิ์สำหรับ Taxonomies ฉันต้องการให้ผู้ดูแลเว็บไซต์เป็นศูนย์กลางในการจัดการคำศัพท์และเพิ่มคำศัพท์เรียงลำดับคำศัพท์ ฯลฯ ดังนั้นฉันจึงให้สิทธิ์ในการ "จัดการคำศัพท์และคำศัพท์" ภายใต้ Taxonomy อย่างไรก็ตามสิ่งนี้ส่งผลให้เกิดความยุ่งยากที่ไม่พึงประสงค์ส่วนใหญ่ทำให้พวกเขาสามารถเข้าถึงเพื่อสร้างฟิลด์ใหม่และจัดการจอแสดงผลของพวกเขา (แท็บ "จัดการฟิลด์" และ "จัดการจอแสดงผล")

มีวิธีให้พวกเขาเข้าถึงหน้าจอคำศัพท์และคำศัพท์ซึ่งสามารถเข้าถึงได้ผ่าน "โครงสร้าง> Taxonomy" แต่อย่างไรก็ตามปิดการใช้งานแท็บ "จัดการฟิลด์" และ "จัดการจอแสดงผล" บนหน้าจอแก้ไขคำศัพท์หรือไม่

ฉันค่อนข้างคุ้นเคยกับแนวคิดเรื่องการเอาชนะและ hooks ใน Drupal 6 แต่ฉันค่อนข้างใหม่กับ Drupal 7 (อันที่จริงนี่เป็นเว็บไซต์ D7 แรกของฉันที่สร้างขึ้นประมาณ 5 หรือ 6 D6 เว็บไซต์) ดังนั้นฉันจึงไม่สนใจ การแก้ปัญหาการเข้ารหัสนี้ถ้ามี เพียงแค่มองหาคำตอบหรือผลักดันในทิศทางที่ถูกต้อง

เนื่องจากยังไม่มีใครตอบฉันต้องการเพิ่มว่าฉันยินดีที่จะมองหาทางเลือกอื่นในพื้นที่ส่วนกลางเพื่อจัดการ taxonomies (admin / โครงสร้าง / taxonomy) บางทีฉันอาจดูการสร้างเพจด้วย Views เพื่อจำลองหน้าผู้ดูแลระบบ taxonomies

เป็นไปได้หรือไม่และเคยมีคนทำอะไรแบบนี้มาก่อน?

คำตอบ:


8

ฉันรู้ว่านี่ได้รับคำตอบมาระยะหนึ่งแล้ว แต่มีวิธีแก้ปัญหาที่ไม่ต้องการโมดูลที่กำหนดเองหรือพิเศษ

หากคุณปิดใช้งานโมดูลcore UI uiแท็บ Manage Fields and Manage Display จะไม่ปรากฏขึ้น

หากนี่เป็นไซต์ที่ใช้งานจริงคุณควรทำตามที่คุณได้กำหนดค่าฟิลด์ตามที่คุณต้องการ หากคุณต้องการเปลี่ยนแปลงเพียงแค่เปิดใช้งานโมดูลอีกครั้งสั้น ๆ


1
+1 ดูเหมือนว่าวิธีที่สะอาดที่สุดใหญ่และรวดเร็วที่สุดเพื่อให้ได้ผลลัพธ์
Beebee

นี่ไม่ใช่วิธีแก้ปัญหามันเป็นโซลูชันที่ "ไม่ต้องการโมดูลแบบกำหนดเองหรือพิเศษ" และทำงานได้ดีในทุกเว็บไซต์ Drupal
marblegravy


3

การอนุญาตadminister taxonomyคือสิ่งที่ใช้ในการให้สิทธิ์ในฟิลด์ถ้าคุณต้องการให้สิทธิ์นี้แก่พวกเขาเพื่อให้พวกเขาสามารถเข้าถึงการจัดการด้านอนุกรมวิธานได้คุณสามารถสร้างการอนุญาตใหม่สำหรับฟิลด์ UI

วิธีที่ง่ายที่สุดในการตั้งค่านี้คือใช้hook_entity_info_alterhook เนื่องจากนี่เป็นที่ที่มีการเพิ่มพา ธ ของผู้ดูแลระบบสำหรับฟิลด์ UI และสิทธิ์การเข้าถึงสำหรับพวกเขา คุณสามารถใช้hook_menu_alterเพื่อเปลี่ยนการอนุญาต แต่นี่เป็นการทำงานอีกเล็กน้อย


2

คุณอาจลองใช้ hook_menu_alter () เพื่อแก้ไข 'access callback' ที่ติดตั้งใน field_ui_menu () ฟังก์ชั่นจากไฟล์ field_ui.module นี่คือที่ตั้งค่ารายการเมนู "จัดการเขตข้อมูล" และ "จัดการหน้าจอ"

ใน hook_menu_alter ของคุณ () คุณสามารถค้นหารายการเมนูสองรายการนี้สำหรับเส้นทาง taxonomy (เนื่องจากคุณต้องการเก็บรุ่นประเภทเนื้อหาเหล่านี้ไว้) และเปลี่ยน 'access callback' เป็นวิธีการแบบกำหนดเองที่ตรวจสอบการอนุญาตใหม่ที่คุณสร้าง ใน hook_permission ()

ฉันเคยทำสิ่งที่คล้ายกันในอดีตและยินดีที่จะส่งรหัสหากจำเป็น

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