Drupal的8 - 从一个自定义模块

问题描述:

我已经创建库全球加载库(例如-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'; 

关于如何让它在全球范围内工作的任何想法?

这是你的my_theme.info.yml非常简单的添加:

libraries: 

- 例如/例如

https://www.drupal.org/docs/8/theming-drupal-8/defining-a-theme-with-an-infoyml-file

+0

我需要为创造T定制主题?我的意图是只有一个模块。 –

+0

是的,你需要一个自定义的主题。创建它简单而快速。 https://www.drupal.org/docs/8/theming –

你并不需要为这个自定义主题。使用hook_page_attachments()

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

我是Drupal8的新手,至今为止,我的全局设置都在yml文件中。我应该在哪里添加这段代码,以便我的库可以在全球范围内使用? –

+0

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

我终于想通了。我的自定义模块会将一个额外的选项卡作为system.admin菜单的子项。每个其他选项卡都有一个图标,我也想把我的自定义模块图标放在那里。

万一别人卡住同样的问题,在文件example.module,我不得不创建一个条目:

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

    return $items; 
}