从drupal中的钩子函数中检索模块块

时间:2017-01-30 18:15:27

标签: php drupal configuration drupal-modules drupal-8

我在drupal 8.2

中的模块内创建一个块
/**
 * @Block(
 *   id = "news-slider",
 *   admin_label = @Translation("News slider"),
 * )
 */
class NewsSliderBlock extends BlockBase implements BlockPluginInterface {

public function build() {
  $config = $this->getConfiguration();
  $param1 = $config['param1'];
}

public function blockForm($form, FormStateInterface $form_state) {
  $form = parent::blockForm($form, $form_state);
  $config = $this->getConfiguration();
  ...
  return $form; 
}

public function blockSubmit($form, FormStateInterface $form_state) {
  $this->setConfigurationValue('param1', $form_state->getValue('param1'));
}

在我的模块文件中

function news_slider_page_attachments_alter(&$build) {
  $settings = \Drupal::config('news-slider');
  $param1= $settings->get('param1');
  $build['#attached']['drupalSettings']['news_slider']['asset1']['param1'] = $param1;
}

在我的模块库yml

asset1:
  version: 1.x
  js:
    js/news_slider.js: {}
  dependencies:
    - core/drupalSettings    

在浏览器js控制台中尝试

drupalSettings.news_slider.asset1.param1

每次都是null,我真的不明白我错在哪里。

可能是$ settings = \ Drupal :: config('news-slider');在模块钩子?

asset1附加在模板模块文件news-slider.html.twig

{{ attach_library('news_slider/asset1') }}

0 个答案:

没有答案