Score:0

แสดงลิงค์สำหรับมุมมองทั้งหมดในเมนูผู้ดูแลระบบ

ธง in

เมื่อเปิดใช้งานแถบเครื่องมือผู้ดูแลระบบ สิ่งหนึ่งที่ฉันพลาดจาก Drupal 7 คือการวางเมาส์เหนือเมนูผู้ดูแลระบบบน โครงสร้าง >> มุมมอง และเห็นรายการมุมมองทั้งหมดและสามารถคลิกเพื่อแก้ไขได้

ดูภาพหน้าจอนี้สำหรับพฤติกรรมปัจจุบัน

ภาพหน้าจอ

มีวิธีการจัดเตรียมคุณสมบัตินี้จากโมดูลที่กำหนดเองหรือไม่? ฉันรู้ว่าฉันสามารถรับรายการมุมมองทั้งหมดด้วย มุมมอง::getAllViews() แต่ฉันไม่แน่ใจว่าจะเพิ่มโดยทางโปรแกรมได้อย่างไร ถ้าฉันใช้โมดูลที่กำหนดเองและใช้ hook_update_n() ในการเพิ่มเมนู จะเกิดอะไรขึ้นเมื่อมีการเพิ่มมุมมองใหม่ มันจะได้รับการอัปเดตโดยอัตโนมัติด้วยมุมมองที่เพิ่มเข้ามา หรือเพียงแค่แสดงรายการที่มีอยู่เมื่อติดตั้งโมดูล ถ้าไม่ จะทำอย่างไรให้แสดงรายการมุมมองปัจจุบันเสมอ

Kevin avatar
in flag
ทำไมไม่ติดตั้งโมดูลแถบเครื่องมือผู้ดูแลระบบ
Jaypan avatar
de flag
ฉันไม่เข้าใจคำถาม - เมื่อฉันไปที่ผู้ดูแลระบบ -> โครงสร้าง -> มุมมองในการติดตั้งวานิลลา Drupal ฉันเห็นรายการมุมมองทั้งหมด
pglatz avatar
in flag
ฉันติดตั้งแถบเครื่องมือผู้ดูแลระบบแล้ว ฉันเพิ่งติดตั้งวานิลลา 9.4 เพื่อยืนยัน เมื่อฉันคลิกที่โครงสร้าง/มุมมอง ตัวเลือกเดียวคือ "เพิ่มมุมมอง" -- ฉันเดาว่าฉันไม่ได้ทำให้คำถามของฉันชัดเจนเพียงพอ สิ่งที่ฉันต้องการทำคือวางเมาส์เหนือโครงสร้าง/มุมมอง และดูรายการมุมมองเป็นลิงก์แก้ไข โดยไม่ต้องไปที่หน้ามุมมอง นั่นเป็นวิธีที่ 7 ทำ และช่วยให้ฉันโหลดหน้าเว็บได้ ฉันชอบมันเสมอ
pglatz avatar
in flag
ดังนั้น คำถามของฉันคือ ฉันจะผนวกลิงก์เหล่านี้เข้ากับเมนูและให้ลิงก์เหล่านี้แสดงรายการมุมมองใดๆ ที่ฉันอาจสร้างขึ้นหลังจากติดตั้งโค้ดเพื่อสร้างลิงก์เมนูได้อย่างไร ถ้าฉันใช้ hook_install() ฉันเดาว่าลิงก์จะเป็นเพียงรายการในขณะที่ฉันติดตั้ง ฉันเดาว่าจะต้องมีแบบไดนามิกในการโหลดหน้าเว็บแต่ละครั้ง หากผู้ใช้ที่เข้าสู่ระบบมีสิทธิ์ของผู้ดูแลระบบ
Jaypan avatar
de flag
ค่าเริ่มต้นใน Drupal 8/9 คือการแสดงรายการมุมมองที่ผู้ดูแลระบบ/โครงสร้าง/มุมมอง ตามที่คุณอธิบายหากคุณไม่เห็น แสดงว่าบางโมดูลหรือบางอย่างในระบบของคุณกำลังทำลายสิ่งนั้น
Jaypan avatar
de flag
คุณติดตั้งโมดูล Views UI แล้วหรือยัง เป็นส่วนหนึ่งของแกนหลัก แต่จำเป็นต้องจัดเตรียมหน้าผู้ดูแลระบบ -> โครงสร้าง -> มุมมอง
berliner avatar
bd flag
ฉันสามารถยืนยันสิ่งที่ pglatz อธิบายได้เขากำลังพูดถึงเมนูแบบเลื่อนลงของแถบเครื่องมือผู้ดูแลระบบ ซึ่งจะแสดงเฉพาะรายการเมนู "เพิ่มมุมมอง" เมื่อวางเมาส์เหนือโครงสร้างเมนู คำถามของเขาคือ **ไม่** เกี่ยวกับหน้ารายการจำนวนการดู
Jaypan avatar
de flag
ตอนนี้ฉันเข้าใจแล้ว ขอบคุณสำหรับคำชี้แจง
Score:2
ธง de

คุณสามารถเพิ่มด้วยตนเองในโมดูลที่กำหนดเอง

[โมดูล].links.menu.yml:

[โมดูล].views.list:
  ที่มา: 'Drupal\[MODULE]\Plugin\Derivative\ViewMenuLinks'

[โมดูล]/src/Plugin/Derivative/ViewMenuLinks.php:

<?php

เนมสเปซ Drupal\[MODULE]\Plugin\Derivative;

ใช้ Drupal\Component\Plugin\Derivative\DeriverBase;
ใช้ Drupal\Core\Plugin\Discovery\ContainerDeriverInterface
ใช้ Drupal\views\Views;
ใช้ Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * ให้ลิงค์เมนูสำหรับมุมมองแต่ละรายการ
 */
คลาส ViewMenuLinks ขยาย DeriverBase ใช้ ContainerDeriverInterface {

  /**
   * {@inheritdoc}
   */
  สร้างฟังก์ชันสแตติกสาธารณะ (ContainerInterface $container, $base_plugin_id) {
    ส่งคืนค่าคงที่ใหม่ ();
  }

  /**
   * {@inheritdoc}
   */
  ฟังก์ชันสาธารณะ getDerivativeDefinitions($base_plugin_definition) {
    $this->อนุพันธ์ = [];

    foreach (Views::getAllViews() เป็น $view_id => $view) {
      $url = $view->toUrl();
      $this->อนุพันธ์['views_ui.views.list.' . $view_id] = [
        'route_name' => $url->getRouteName(),
        'route_parameters' => $url->getRouteParameters(),
        'ชื่อเรื่อง' => $view->label(),
        'parent' => 'entity.view.collection',
      ];
    }

    foreach ($this->อนุพันธ์เป็น &$entry) {
      $รายการ += $base_plugin_definition;
    }

    ส่งคืน $this->อนุพันธ์;
  }

}

โปรดทราบว่าคุณจะต้องแทนที่อินสแตนซ์ทั้งหมดของ [โมดูล] ด้วยชื่อโมดูลจริงของโมดูลของคุณ

pglatz avatar
in flag
สมบูรณ์แบบ - ขอบคุณมาก Jaypan โซลูชันที่หรูหราและเรียบง่าย ฉันยินดีเป็นอย่างยิ่ง
Jaypan avatar
de flag
ยินดีที่จะช่วย - คุณช่วยทำเครื่องหมายนี้เป็นคำตอบที่ยอมรับได้ไหม

โพสต์คำตอบ

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