2017-06-16 68 views
0

我使用Drupal 8創建了一個網站。我想創建一個菜單項鍊接,我可以在其中添加HTML/Javascript代碼(我試圖顯示一個可以在菜單中單擊展開的小部件,而不是將其顯示在菜單旁邊的自己的塊中)。我可以看到添加菜單項的唯一方法是鏈接到一個頁面。 enter image description hereDrupal 8 - 使用HTML添加/創建菜單項

回答

0

您可以使用衍生工具。這可以讓你自定義幾乎所有的東西,並控制要做什麼。下面的例子:

注:我假設你有自定義模塊的一般知識。如果不遵循this link

創建自定義模塊中的以下文件:用於衍生類

# my_module.links.menu.yml 
my_module.custom_links: 
    deriver: \Drupal\my_module\Plugin\Derivative\CustomLinkDerivative 

現在(位於my_module/src目錄/插件/微分)

<?php 

namespace Drupal\my_module\Plugin\Derivative; 

use Drupal\Component\Plugin\Derivative\DeriverBase; 
use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface; 
use Symfony\Component\DependencyInjection\ContainerInterface; 

class CustomLinkDerivative extends DeriverBase implements ContainerDeriverInterface { 

    public static function create(ContainerInterface $container, $base_plugin_id) { 
    return new static(); 
    } 

    /** 
    * {@inheritdoc} 
    */ 
    public function getDerivativeDefinitions($base_plugin_definition) { 
    $links['custom_menulink'] = [ 
     'title' => t('Custom menulink'), 
     'menu_name' => 'main', 
     'route_name' => 'entity.node.canonical', 
     'parent' => footer, 
     'route_parameters' => [ 
     'node' => 1, 
     ] 
    ] + $base_plugin_definition; 

    return $links; 
    } 
} 

注意:衍生物在重建緩存期間被觸發!

這只是在腳註中創建一個鏈接,指向節點1.您可以添加所有類型的東西和邏輯來滿足自己的喜好。希望這可以幫助你:)