Добрый день.
При переносе сайта с 5 версии на шестую возникла сложность с пониманием. Раньше можно было воспользоваться hook_menu для определения текущего пути и проведения некоторых действий. Как преобразовать и куда разместить правильно подобный код добавления css файла в зависимости от открываемой пользователем страницы?
<?php
if ((arg(0) == 'admin') && (arg(1) == 'store') && (arg(2) == 'orders')) {
drupal_add_css(drupal_get_path('theme', 'era_z') .'/order.css');
}
?>
Комментарии
http://api.drupal.ru/api/function/drupal_add_css/6 комментарий №1
Мне нужно добавить css только при посещении страницы /admin/store/orders, а Ваш пример будет добавлять css файл при каждом чихе.
Ну у вас ведь наверняка в хуке меню на этот путь должен быт какой-то колбэк, вот и добавьте css в этой функции,
а вообще с учетом кэширования и возможности «слияния» css, не вижу ничего страшного в добавлении css в хуке init ...
пример не мой, что мешает вам воспользоваться копипастом и вставить в хук свой же код?
В том то и дело что моего колбэка на этот адрес нет. В пятёрке можно было в hook_menu анализировать входящие параметры и делать свои действия не связанные непосредственно с ренедрингом страницы. Как например в приведённом примере. А в шестёрке подобные действия в этом хуке полностью теряют смысл...
Так что вопрос открыт. Как же всё таки поместить свой css файл при посещении только определённой страницы?
Видимо нужно воспользоваться hook_page_preprocess?
вы прикалываетесь чтоли) зачем вам колбэк
http://api.drupal.ru/api/function/hook_init/6
<?php
function имя_модуля_init()
{
if ((arg(0) == 'admin') && (arg(1) == 'store') && (arg(2) == 'orders')) {
drupal_add_css(drupal_get_path('theme', 'era_z') .'/order.css');
}
}
?>