J'ai une vue dans mon site qui a un nom de classe spécifique. Je veux savoir, dans le fichier template.php d'un thème, comment je peux savoir si une vue avec un nom de classe spécifique est disponible dans la page demandée.
C'est très important pour moi car j'ai besoin d'inclure JavaScript et CSS spécifiques, lorsqu'une vue avec un nom de classe spécifique (comme galerie d'images) est utilisée dans une page.
views
theming
javascript
Mehrdad201
la source
la source
if($view->name == 'your-view-name' && $view->display_id == 'your-display-id')
Vous pouvez utiliser la fonction views_get_page_view pour savoir quelle vue est diffusée sur la page. Il retourne l'objet vues. Notez que dans l'extrait de code ci-dessous, vous devez comparer avec le nom lisible par machine de vues, mais bien sûr, vous pouvez écrire votre propre comparaison en fonction de l'objet de vue retourné par views_get_page_view
la source
Juste au cas où cela serait utile à quiconque tomberait sur cette question, en recherchant comme je l'ai fait pour attacher JavaScript à une vue Drupal . En termes de D7 et de vues 3.7, les éléments suivants ont fonctionné le mieux pour moi:
C'était bénéfique car je voulais garder le code dans mon module, plutôt que le thème - parce que les améliorations apportées par le JavaScript n'avaient rien à voir avec l'apparence visuelle.
la source
HOOK_views_pre_process
( api.drupal.org/api/views/views.api.php/7 ) à moins que vous ne vouliez dire pourquoi vous l'utilisez par dessusTHEME_preprocess_views_view
- auquel cas ce n'est que par préférence d'où vous souhaitez ajouter vos modifications de code.HOOK_views_pre_render
peut être connecté à partir d'un module, alors qu'ilTHEME_preprocess_views_view
devrait aller dans votre fichier de thème / modèle. Vous pouvez également utiliserHOOK_views_post_render
si vous préférez.THEME_preprocess_views_view
, oui ... Je suis sûr que j'ai déjà fait deshook_preprocess_views_view
modules.Si vous êtes sur drupal 6 ou 7, vous pouvez également inclure des actifs javascript avec le contexte du module ajouter des actifs. Ce qui nécessite un contexte, mais vous serez assuré qu'il sera toujours inclus lors du rendu de la vue.
https://drupal.org/project/context_addassets
Depuis la page projet du module:
la source
Écrivez du code JavaScript qui recherche une classe spécifique dans la vue, en utilisant hasClass () de jQuery , et incluez votre fichier JavaScript lorsque la condition est remplie.
Une autre façon consiste à mettre un modèle pour votre vue et à ajouter du code JavaScript via ce modèle à l'aide de drupal_add_js () .
la source