Как использовать "#прикреплено" для прикрепления таблицы стилей?


Я знаю, что drupal_add_css обесценивается, и что вместо этого мы должны использовать #attached, чтобы прикрепить таблицу стилей css к модулю.

Я пытаюсь заменить следующее (что работает):

drupal_add_css(drupal_get_path('module', 'mymodule') .'/mymodule.css');

С #attached. Но не нашел точно, где и как его добавить.

Вот моя вторая попытка (она все еще не работает):

/**
 * Implementation of hook_block_view()
 */
function mymodule_block_view($delta = '') {
  if ('mymodule' == $delta) {
    $render = array();
    $list = mymodule_fetch_from_info();
    foreach ($list as $element) {
      $render[] = array(
        '#type' => 'markup',
        '#markup' => $element[0],
        '#weight' => $element[1],
      );
    }
    $blocks['subject'] = t('Mymodule');
    $blocks['content'] = $render;
    $blocks['#attached'] = array (
      'css' => array(
        drupal_get_path('module', 'mymodule') . '/mymodule.css',
       ),
    );
    return $blocks;
  }
}
 2
Author: Free Radical, 2015-04-18

1 answers

Вы не можете использовать #прикрепленный внутри вашей реализации hook_theme. Вместо этого вы должны добавить его при создании массива визуализации:

$blocks['content'] = $render;
$blocks['content']['#attached'] = array (
  'css' => array(
    drupal_get_path('module', 'mymodule') . '/mymodule.css',
  ),
);

Как уже указывал киамлалуно в комментариях, в вашем примере кода $blocks['content'] является массивом визуализации, поэтому элемент #attached должен быть частью этого массива.

 4
Author: marcvangend, 2015-04-18 21:29:35