คำถามติดแท็ก routes

การใช้คำที่แนะนำใน Drupal 8 เส้นทางคือเส้นทางที่โมดูลตอบสนอง

2
เหตุผลที่อยู่เบื้องหลังโครงสร้างเมนูปัจจุบันคืออะไร
ฉันไม่ได้เป็น Drupal Ninja มากนัก จากสิ่งที่ผมเห็นที่http://drupal.org/node/788972 , Drupal ดูเหมือนว่าจะมีโครงสร้างเมนูเช่น Joomla ในแง่ที่ว่ามันช่วยให้รายการเมนูที่จะสร้างขึ้นภายใต้หมวดหมู่เมนู เหตุใดเราจึงใช้สิ่งนี้ไม่เหมือนกับส่วนรายการเมนูกลางซึ่งเราสามารถเชื่อมโยงรายการไปยังหลายเมนูได้ถ้าต้องการ นี่คือสิ่งที่ฉันเห็นใน Wordpress ในวิธีหลังฉันสามารถเห็นความซ้ำซ้อนลดลงและมีจุดเดียวในการเปลี่ยนแปลงการเชื่อมโยงเดียวกันหลายครั้ง ฉันต้องการเข้าใจตรรกะ / เหตุผลที่อยู่เบื้องหลังโครงสร้างเมนู Drupal ไม่เข้าใจว่า Drupal เปรียบเทียบกับ Joomla หรือ WordPress ได้อย่างไร

2
วิธีการชุดรูปแบบบล็อกเมนู?
ฉันได้สร้างเมนูที่กำหนดเอง (เรียกว่า "mynav") และในธีมของฉันฉันได้สร้างเทมเพลตสำหรับมันโดยเฉพาะ ( block--menu--menu-mynav.tpl.php) ซึ่งประกอบด้วย: <div id="mynav" class="<?php print $classes; ?>"<?php print $attributes; ?>> <?php print $content ?> </div> มันใช้งานได้ดี $contentแต่ฉันไม่ต้องการที่จะใช้รหัสไปยังรายการเรียงลำดับที่ถูกสร้างขึ้นและมีอยู่ใน ฉันคิดว่าฉันจำเป็นต้องสร้างฟังก์ชั่นMYTHEME_links__system_mynav_menuเช่นนี้: function MYTHEME_links__system_mynav_menu($variables) { return "TEST"; // Generate HTML here (<ul id="mynav">...) } แต่ดูเหมือนจะไม่ได้มีผลกระทบ ผมทำอะไรผิดหรือเปล่า?
11 7  routes  theming 

2
hook_menu_alter () เพื่อเปลี่ยนประเภทรายการเมนูคืออะไร
ฉันต้องการเปลี่ยนประเภทเมนูใน Drupal 8 ใน Drupal 7 เราสามารถทำได้โดยใช้hook_menu_alter function module_menu_alter(&$items) { $items['admin/config/people/ip-blocking/default'] = array( 'title' => 'Block IP Address', 'type' => MENU_DEFAULT_LOCAL_TASK, ); } ฉันต้องการเปลี่ยนประเภทเมนูใน Drupal 8 ฉันจะทำอย่างไร ขอบคุณ.
10 8  routes 

3
หากคุณอัปเดตไฟล์เส้นทางใน Drupal 8 คุณจะล้างแคชได้อย่างไร?
เมื่อได้ทำงานกับ Drupal 7 ตั้งแต่เริ่มเปิดตัวฉันกำลังเรียนรู้ Drupal 8 ในขณะที่ฉันพบว่าเมื่อใดก็ตามที่ฉันเปลี่ยนแปลงสิ่งที่ฉันต้องทำdrush cache-rebuildเพื่อให้สิ่งต่าง ๆ ทำงานได้อีกครั้ง ใน VPS ของฉันใช้เวลา 15 วินาที (และโหลดหน้าถัดไปก็ช้าด้วย) ฉันมีความรู้สึกว่านี่อาจเป็นค้อนเลื่อนเพื่อแตกสถานการณ์น็อต มีวิธีที่มีประสิทธิภาพมากกว่าในการทำให้ Drupal ทำการคอมไพล์เส้นทาง (เปลี่ยน) จาก{module}.routing.ymlไฟล์หรือไม่?
10 caching  8  routes 

3
เมนูกำหนดเองเป็นเมนูผู้ดูแลระบบ
มีโมดูลที่ใช้เมนูกำหนดเองและแสดงเหมือนเมนูผู้ดูแลระบบหรือไม่? ฉันต้องการสร้างเมนูที่กำหนดเองของฉันจากนั้นแสดงเช่นเมนูผู้ดูแลระบบ (สำหรับบางบทบาทเท่านั้น) ฉันได้ลองใช้โมดูลแล้ว แต่: เมนูผู้ดูแลระบบไม่อนุญาตให้เลือกเมนูที่ควรแสดงและอย่างไรก็ตามฉันต้องการแสดงเมนูเริ่มต้นสำหรับผู้ดูแลระบบและเมนูที่กำหนดเองสำหรับ "ผู้แก้ไข" และบทบาทที่กำหนดเองอื่น ๆ เมนูSuperfishหรือNiceไม่อนุญาตให้วางเมนูไว้ด้านบนของหน้าเหมือนเมนู Admin วิธีแก้ไขอื่นอาจเป็นโมดูลที่วางบล็อกไว้ด้านบนของหน้าแก้ไขดังนั้นฉันจึงสามารถใช้เมนู superfish "แบบง่าย" แต่ฉันไม่พบสิ่งนี้ คำถามหลักคือฉันไม่สามารถใช้เมนูการจัดการ "เริ่มต้น" แต่เป็นเมนูที่กำหนดเอง
10 routes 

4
ลิงก์เมนูซ่อนโมดูลการเข้าถึงเนื้อหา
ฉันกำลังใช้โมดูลการเข้าถึงเนื้อหากับ Drupal 7 เมื่อฉัน จำกัด การเข้าถึงโหนดจากบทบาทที่เฉพาะเจาะจงมันก็ซ่อนลิงค์ในเมนู มีวิธีใดที่จะแสดงลิงค์ที่ถูก จำกัด ในเมนูหลัก?
10 7  routes  users 

6
วิธีการเชื่อมโยงออกเด็กตามหน้าปัจจุบัน
เมื่อเชื่อมโยงไปถึงหน้าเว็บที่มีรายการเมนูที่เป็นรายการหลักไปยังรายการเมนูหน้าอื่น ๆ ฉันต้องการแสดงรายการของรายการเมนูย่อยเหล่านั้น ฉันใช้รหัสต่อไปนี้ $trail = menu_get_active_trail(); menu_build_tree('main-menu', array( 'expanded' => array($trail[1]['mlid']) )); อย่างไรก็ตามอาร์เรย์ที่ส่งคืนจะมีลักษณะเช่นนี้ (พร้อมการลบที่ไม่จำเป็นจำนวนมาก) array '49950 PKY Truck Beauty 312' => array 'link' => & array 'menu_name' => string 'main-menu' (length=9) 'mlid' => string '312' (length=3) 'plid' => string '311' (length=3) 'below' => array '49952 Seminars 314' => array …
10 routes 

5
ฉันจะสร้างลิงค์เมนูสัมพันธ์ได้อย่างไร
ฉันกำลังยุ่งอยู่กับการทำงานกับไซต์บน localhost ที่ต้องเชื่อมโยงไปยังเนื้อหาที่แยกต่างหากจาก Drupal http://mylocalsite/the_folder_for_the_other_contentฉันมีเมนูเส้นทางที่ปัจจุบันตั้งค่าเช่นนี้ ถ้าฉันพยายาม <front>/the_folder_for_the_other_contentหรือ/the_folder_for_the_other_contentหรือthe_folder_for_the_other_contentฉันได้รับข้อผิดพลาด "เส้นทาง 'whatever_I_use' ไม่ถูกต้องหรือคุณไม่สามารถเข้าถึงได้." http://myrealsite/the_folder_for_the_other_contentเมื่อฉันไปฉันสดชัดต้องทุกรายการเมนูที่จะชี้ไปที่ ฉันจะตั้งค่าเพื่อที่ฉันจะได้ไม่ต้องแก้ไขพา ธ เมนูทั้งหมดเมื่อใช้งานจริง
10 routes 

1
เพิ่มแท็บ / โลคัลภารกิจไปยังโหนด
hotel_reviewsฉันได้สร้างโมดูลที่เรียกว่า ฉันได้สร้างเส้นทางโหนด / {โหนด} / ความคิดเห็นโดยใช้hotel_reviews.routing.yml hotel_reviews.content: path: '/node/{node}/reviews' defaults: _controller: '\Drupal\hotel_reviews\Controller\ReviewsController::content' _title: 'Reviews' requirements: _permission: 'access content' จากนั้นผมก็พยายามที่จะเพิ่มงานท้องถิ่นโดยใช้hotel_reviews.links.task.yml hotel_reviews.content: route_name: hotel_reviews.content title: 'Reviews' base_route: node.view weight: 100 ตอนนี้ฉันสามารถเข้าถึงเนื้อหาที่กำหนดโดยคอนโทรลเลอร์ของฉันได้ที่node/1/reviewsแต่เมื่อฉันไปที่node/1ฉันไม่เห็นแท็บคำวิจารณ์ ผมทำอะไรผิดหรือเปล่า? ฉันใช้เอกสารต่อไปนี้มาแล้ว: บทแนะนำการอัพเกรด D7 เป็น D8: แปลง hook_menu () และ hook_menu_alter () เป็น Drupal 8 APIs จัดเตรียมภารกิจโลคัลที่กำหนดโมดูล โครงสร้างเส้นทาง
10 8  routes 

2
จะทดสอบว่าหน้าปัจจุบันเป็นหน้าผู้ดูแลระบบได้อย่างไร?
เมื่อถึงจุดหนึ่งฉันเริ่มใช้รหัสต่อไปนี้เพื่อทดสอบว่าหน้าปัจจุบันเป็นหน้าผู้ดูแลระบบหรือไม่: $route = \Drupal::routeMatch()->getRouteObject(); $is_admin = \Drupal::service('router.admin_context')->isAdminRoute($route); แต่ฉันพบว่าสิ่งนี้ล้มเหลวบนโหนดแก้ไขหน้าใน hook_entity_load () เราจะทดสอบว่าเราอยู่ในหน้าผู้ดูแลระบบใน Drupal 8 ได้อย่างไร มีบางอย่างที่เหมือนกับ path_is_admin () ใน Drupal 7 ใช่ไหม ฉันพบว่าหากฉันทดสอบโหนดเดียวกันแก้ไขเส้นทางของหน้าเว็บจาก hook_entity_load ภายนอกโดยใช้รหัสในหน้านี้ ( https://api.drupal.org/api/drupal/includes%21path.inc/function/path_is_admin/7.x ) มันได้ผล. use Symfony\Component\HttpFoundation\Request; use Symfony\Cmf\Component\Routing\RouteObjectInterface; $path = '/node/75/edit'; $request = Request::create($path); $route_match = \Drupal::service('router.no_access_checks')->matchRequest($request); $route = $route_match[RouteObjectInterface::ROUTE_OBJECT]; $is_admin = \Drupal::service('router.admin_context')->isAdminRoute($route); แต่ถ้าฉันพยายามที่จะเพิ่มรหัสนี้ใน hook_entity_load โดยใช้เส้นทางปัจจุบันฉันจะได้รับห่วงร้ายแรง …
9 8  routes 

2
แสดงรายการเมนูที่ จำกัด การเข้าถึงผู้ใช้ที่ไม่ระบุชื่อ
ฉันมีเว็บไซต์ที่ใช้โมดูลส่วนตัวเพื่อตั้งค่าการเข้าถึงเนื้อหาและแน่นอนหน้าบางหน้าของฉันมีรายการเมนู ตอนนี้ถ้าฉันตั้งค่าหน้าเว็บให้เป็นส่วนตัวผู้ใช้เท่านั้นที่มีสิทธิ์ที่เหมาะสมจะเห็นว่าเป็นสิ่งที่ยอดเยี่ยมและสิ่งที่ฉันต้องการ แต่ฉันมีปัญหาเล็กน้อยกับรายการเมนูพวกเขาหายไปหากเนื้อหาที่กำหนดให้พวกเขาไม่ใช่สาธารณะ (เช่นหน้าที่กำหนดให้พวกเขาเป็นส่วนตัว) นี่ก็โอเค แต่ฉันอยากจะยังสามารถแสดงรายการเหล่านั้นได้ ในการนำทางดังนั้นหากผู้ใช้คลิกที่พวกเขามันจะพาพวกเขาไปที่หน้าเข้าสู่ระบบขอให้พวกเขาป้อนรายละเอียดเพื่อที่จะเห็นหน้านั้น ดังนั้นโดยทั่วไปฉันต้องการเปลี่ยนพฤติกรรมของรายการเมนูในแบบที่พวกเขาจะปรากฏแก่สมาชิกนิรนามและสมาชิกที่ลงทะเบียนของเว็บไซต์ แต่เมื่อคุณคลิกที่พวกเขาคุณจะสามารถดูหน้า (ถ้าคุณเข้าสู่ระบบ ใน) หรือถูกเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบ (หากไม่ระบุชื่อ) ฉันพบโซลูชันนี้ซึ่งไม่ใช่วิธีที่ดีที่สุดสำหรับฉันเนื่องจากฉันมีหลายหน้าเช่นนั้นฉันจึงมองหาวิธีที่ดีกว่า ฉันได้ลองใช้โมดูลการมองเห็นรายการเมนูแล้วแต่นั่นก็ไม่ได้ช่วยอะไรเช่นกัน! ฉันจะทำสิ่งนี้ให้สำเร็จได้อย่างไร Luca
9 7  routes  users 

3
วิธีการล้างและสร้างเมนู drupal ใหม่ทั้งหมด
เมื่อไม่นานมานี้ฉันพบโพสต์บล็อกสุดยอดที่มีรายละเอียดวิธีล้างตารางเมนูและสร้างระบบเมนูใหม่ด้วยการเรียก php drush ความจำเป็นเนื่องจากไซต์จะไม่สามารถใช้งานได้หลังจากล้างตาราง mysql เหล่านั้นแล้ว ด้วยวิธีนี้คุณสามารถรีเซ็ตเมนูของคุณเหมือนเป็นเว็บไซต์ Drupal ใหม่ ทุกคนสามารถให้รายละเอียดเทคนิคนี้หรือคุณมีลิงค์สำหรับบล็อกที่?
9 7  routes  drush 

2
วิธีเพิ่มแท็บภารกิจในพื้นที่ไปยังมุมมองโหนด [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดทคำถามดังนั้นจึงเป็นเรื่องในหัวข้อคำตอบ Drupal ปิดให้บริการใน4 ปีที่แล้ว ฉันกำลังพยายามเพิ่มแท็บพิเศษในแท็บ 'มุมมอง' และ 'แก้ไข' โมดูลของฉันเปิดใช้งานได้ดีและฉันล้างแคชแล้ว แต่แท็บใหม่ของฉันไม่ปรากฏ ฉันพลาดอะไรไป /** * Implements hook_menu(). */ function add_performance_menu() { $items = array(); $items['node/%node/performance'] = array( 'title' => 'Add a performance', 'page callback' => 'add_performance_action', 'access callback' => TRUE, 'type' => MENU_LOCAL_TASK, ); return $items; } /** …
8 7  routes 

1
การแก้ไข URL ทั้งหมดเพื่อรวมข้อมูลเพิ่มเติม
มีตะขออะไรบ้างในการแก้ไข URL? ตัวอย่างเช่นมีโมดูลภาษาที่เมื่อเปิดใช้งานให้ URL ที่เช่นแทนที่จะปล่อยให้มันเป็น/en/node/1/node/1 ฉันต้องการมีสิ่งที่คล้ายกันใน url ที่ฉันสามารถเข้าถึงได้โดยไม่ต้องใช้ฟังก์ชั่นอื่น ๆ สิ่งนี้สำเร็จได้อย่างไร
8 7  routes 

2
ฉันจะแสดงเมนูย่อยแยกจากทรีเมนูได้อย่างไร [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันกำลังพยายามแสดงเมนูย่อยระดับ 3 ทั้งหมดสำหรับรายการเมนูในหนึ่งหน้าโดยที่แต่ละรายการอยู่ในบล็อกการแสดงผลของตัวเอง ฉันได้ลองใช้โมดูลบล็อคเมนู แต่ดูเหมือนว่าจะใช้งานได้กับเทรลแอคทีฟเท่านั้นซึ่งหมายความว่าฉันสามารถแสดงเมนูระดับที่ 2 และระดับที่ 3 ทั้งหมดเป็นหนึ่งหน่วยแทนที่จะเป็นเมนูระดับที่ 3 เป็นหน่วยแยกต่างหาก นอกจากโมดูลเมนูบล็อกแล้วฉันยังลองเข้าถึงแผนผังเมนูโดยตรงด้วยรหัสนี้ $main = menu_navigation_links('main-menu', '2'); echo theme('links__system_main_menu', array( 'links' => $main, 'attributes' => array( 'id' => 'main-menu', 'class' => array('links') ), )); ?> นี่คือโครงสร้างเมนู: - Parent Menu 1 - Parent Menu 2 …
8 theming  routes 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.