Score:1

ปิดใช้งานปุ่ม "เพิ่มลิงก์" ใน entity.menu.edit_form สำหรับบางบทบาท

ธง ng

ฉันต้องการซ่อนปุ่ม "เพิ่มลิงก์" ใน menu.edit_form สำหรับบางบทบาท กำลังเรียกใช้ dpm($form) สำหรับแบบฟอร์มนี้ ฉันไม่พบปุ่มนั้นในนั้น ในแกนกลางมี menu_ui.links.action.yml พร้อมตัวอย่างนี้:

  entity.menu.add_link_form:
  route_name: entity.menu.add_link_form
  ชื่อเรื่อง: 'เพิ่มลิงค์'
  คลาส: \Drupal\menu_ui\Plugin\Menu\LocalAction\MenuLinkAdd
  ปรากฏ_บน:
  -entity.menu.edit_form

ฉันไม่เข้าใจวิธีซ่อนปุ่มนี้ใน Hook menu_edit_form_alter คำแนะนำใด ๆ

หลังจากคำแนะนำของ Clives ด้านล่าง ฉันได้เพิ่ม routingsubcriber แล้ว แต่ผู้ใช้ที่ไม่มีบทบาทผู้ดูแลระบบยังคงสามารถเข้าถึงแบบฟอร์มได้ ใช้งานได้ดีที่อื่นเช่น เว็บฟอร์ม แต่ไม่ใช่ที่ admin/structure/menu/manage/{menu}/add ฉันลองด้วยเส้นทางที่แตกต่างจากโมดูลเมนูด้วย แต่ก็ยังไม่มีโอกาส

    <?php

เนมสเปซ Drupal\hw_menu\Routing;

ใช้ Drupal\Core\Routing\RouteSubscriberBase;
ใช้ Symfony\Component\Routing\RouteCollection;

/**
 * คลาส RouteSubscriber
 *
 * ซ่อนองค์ประกอบการแก้ไขเมนูสำหรับผู้ที่ไม่ใช่ผู้ดูแลระบบ
 *
 * @package Drupal\hw_menu\Routing
 */
คลาส RouteSubscriber ขยาย RouteSubscriberBase {

  /**
   * {@inheritdoc}
   */
  ฟังก์ชันที่ได้รับการป้องกัน alterRoutes (RouteCollection $collection) {

    ถ้า ($route = $collection->get('entity.menu.add_link_form')) {
      dpm($route->getRequirements());
      $route->setRequirement('_role', 'administrator');
      dpm($route->getRequirements());
    }

  }

}

cn flag
คุณอาจต้องเพิ่ม RouteSubscriber และแก้ไขการเรียกกลับสิทธิ์/การเข้าถึงที่ใช้สำหรับเส้นทาง `entity.menu.add_link_form`ลิงก์นี้ไม่ได้เป็นส่วนหนึ่งของแบบฟอร์มแก้ไขเมนู ดังนั้นเครื่องมือแก้ไขแบบฟอร์มจะใช้ไม่ได้กับลิงก์นี้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา