Как убрать подключение css в файлах типа *tpl.php?

Главные вкладки

Аватар пользователя VasyOK VasyOK 5 ноября 2019 в 17:32

В template.tpl.php темы можно прописать функцию типа:

function MYTHEME_sub_css_alter(&$css) {  
    unset($css['misc/ui/jquery.ui.core.css']);
    unset($css['misc/ui/jquery.ui.theme.css']);
}

и тогда в теме не будут подключатся некоторые css файлы.

Можно ли подобное прописать не в template.tpl.php, а в *tpl.php файлах блоков и вьюх, чтобы эти css не подключались на страницах, где блоки выводятся?

Комментарии

Аватар пользователя Orion76 Orion76 5 ноября 2019 в 20:22
1

Прописать можно все, только получиться фигня какая нибудь-)

Шаблоны, они в общем, только для того, чтобы оборачивать переменные-значения в html-код.
Это их единственное предназначение и все остальное от лукавого.
Остальная логика должна быть в специально отведенном для нее месте (специальный хук или альтер)

В шаблонах обычно доступны только переменные уровня шаблона, и как-то "повлиять" на переменные других шаблонов без извращений никак не получиться, и с извращениями скорее всего тоже.

Так что css отключать проще и лучше в css_alter-)

Аватар пользователя VasyOK VasyOK 5 ноября 2019 в 21:52

Т.е. логика: если блок выводится - CSS файл отключать - она не рабочая?
Если рабочая - почему это нельзя задать в шаблоне блока?
Если нет - как тогда правильно в зависимости от блока?

Аватар пользователя VasyOK VasyOK 5 ноября 2019 в 22:59

На одном сайте (вычислить не сложно на каком, но давайте не будем об этом писать без его владельца) я несколько новых страниц делаю. Нужно чтобы старые файлы на мою работу не влияли. И наоборот - моя работа на страницы над которыми я не работал.
P.S. Вагон и маленькая тележка методов у меня в любом случае есть.

Аватар пользователя gun_dose gun_dose 5 ноября 2019 в 23:19

Может нужные страницы можно определить по урл, типу материала или ещё какие-нибудь? Например получить ноду или термин через menu_get_object() и на основании каких-то признаков ансетнуть эти стили?

Аватар пользователя Orion76 Orion76 6 ноября 2019 в 8:05

Да, даже если в аргументах функции нет нужных данных, всегда можно получить url текущей страницы и все его производные (алиас, ноду и т.п.), а также текущего юзера и все его производные (роль, права и т.п.).
И на основании этих данных принять решение: заменять css или нет

пример: https://www.drupal.org/forum/support/theme-development/2011-01-27/d7-nee...