2017-06-16 20 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に向かうフッタにリンクを作成します。好きなようにすべての種類のものとロジックを追加できます。これがあなたに役立つことを願って:)

関連する問題