2016-10-03 64 views
0

我已經創建庫全球加載庫(例如-libraries.yml):Drupal的8 - 從一個自定義模塊

example: 
    version: VERSION 
    js: 
    js/example.js: {} 
    css: 
    theme: 
     css/example.css: {} 

我試圖做這個全球加載(example.info.yml):

name: Example Module 
type: module 
description: "A module that is responsible for ..." 
package: Custom 

core: 8.x 
version: 1.0-SNAPSHOT 

libraries: 
    - example/example 

我可以成功加載特定形式做:

$form['#attached']['library'][] = 'example/example'; 

關於如何讓它在全球範圍內工作的任何想法?

回答

0

你並不需要爲這個自定義主題。使用hook_page_attachments()

/** 
* Implements hook_page_attachments(). 
*/ 
function example_page_attachments(array &$attachments) { 
    $attachments['#attached']['library'][] = 'example/example'; 
} 
+0

我是Drupal8的新手,至今爲止,我的全局設置都在yml文件中。我應該在哪裏添加這段代碼,以便我的庫可以在全球範圍內使用? –

+0

把它放到你的example.module文件中 –

1

我終於想通了。我的自定義模塊會將一個額外的選項卡作爲system.admin菜單的子項。每個其他選項卡都有一個圖標,我也想把我的自定義模塊圖標放在那裏。

萬一別人卡住同樣的問題,在文件example.module,我不得不創建一個條目:

/** 
* Implements hook_toolbar(). 
*/ 
function example_toolbar() { 
    $items['example'] = array(
     '#type' => 'toolbar_item', 
     '#attached' => array(
      'library' => array(
       'example/example', 
      ), 
     ), 
    ); 

    return $items; 
}