Как добавить условный CSS и JS на каждую страницу из модуля? - PullRequest
1 голос
/ 27 июля 2011

Я создаю модуль, который позволяет администратору выбирать несколько необязательных файлов CSS и JS, которые должны быть включены при рендеринге каждой страницы.

Функция hook_init , кажется, правильное место, но на странице hook_init говорится, что это на самом деле неправильный способ сделать это:

Чтобы добавить CSS или JS, которые должны присутствовать на всех страницах, модули не должны реализовывать эту ловушку, но объявляют эти файлы в своем файле .info.

Это не относится к моему делу или есть лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Это не относится к вашему делу.Это применимо только в том случае, если включение CSS и JS не обусловлено чем-либо.

0 голосов
/ 23 ноября 2018

Моя проблема заключалась в агрегации, если CSS был добавлен условно (в моем случае в зависимости от языка). В результате css не загружался, когда агрегация была включена. Простое чтение документации drupal_add_css мне очень помогло. У меня было 2 варианта, мешающие этому работать: «каждая_страница» установлена ​​в «ИСТИНА», потому что я неверно истолковал ее (я действительно хотел ее на всех страницах, но только для определенных языков) 'preprocess' имеет значение по умолчанию TRUE, и это приводит к тому, что css включается в агрегацию, проблема в том, что если он не загружается во время создания агрегированных файлов, он вообще не будет загружаться впоследствии.

Решение было: drupal_add_css (path_to_theme (). '/Css/language-override.css', массив ('weight' => 101, 'preprocess' => FALSE));

...