У меня есть вид на моем сайте, который имеет определенное имя класса. Я хочу знать, внутри файла template.php темы, как узнать, доступно ли представление с конкретным именем класса на запрашиваемой странице.
Это очень важно для меня, потому что мне нужно включить определенный JavaScript и CSS, когда на странице используется представление с определенным именем класса (например, галерея изображений).
views
theming
javascript
Mehrdad201
источник
источник
if($view->name == 'your-view-name' && $view->display_id == 'your-display-id')
Вы можете использовать функцию views_get_page_view, чтобы узнать, какой вид обслуживается на странице. Он возвращает вид объекта. Обратите внимание, что в приведенном ниже фрагменте кода вы должны сравнить с машиночитаемым именем представления, но, конечно, вы можете написать собственное сравнение, основываясь на объекте представления, возвращаемого views_get_page_view.
источник
Просто на тот случай, если это пригодится кому-то, кто наткнулся на этот вопрос, выполняя поиск, как я, для добавления JavaScript в Drupal View . С точки зрения D7 & Views 3.7 для меня лучше всего было следующее:
Это было полезно, так как я хотел сохранить код в моем модуле, а не в теме, потому что улучшения, внесенные в JavaScript, не имели ничего общего с визуальным оформлением.
источник
HOOK_views_pre_process
( api.drupal.org/api/views/views.api.php/7 ) не существует, если только вы не имеете в виду причину, по которой следует использовать этоTHEME_preprocess_views_view
- в этом случае это только из предпочтения того, где Вы хотите добавить свои модификации кода.HOOK_views_pre_render
может быть подключен из модуля, тогда какTHEME_preprocess_views_view
должен идти в вашем файле темы / шаблона. Вы также можете использовать,HOOK_views_post_render
если хотите.THEME_preprocess_views_view
, да ... Я уверен, что я делалhook_preprocess_views_view
в модулях раньше.Если вы используете drupal 6 или 7, вы также можете включить ресурсы javascript с активами модуля context context add. Который требует контекста, но вы будете уверены, что он всегда будет включен при визуализации представления.
https://drupal.org/project/context_addassets
Со страницы проекта модуля:
источник
Напишите код JavaScript, который ищет определенный класс в представлении, с помощью hasQlass () jQuery, и включите ваш файл JavaScript, когда условие будет выполнено.
Другой способ - создать шаблон для вашего представления и добавить код JavaScript через этот шаблон с помощью drupal_add_js () .
источник