Drupal : J'insère une vue dans un template (tpl.php) mais les scripts ne fonctionnent plus.

Très embêtant lorsque la vue est un slideshow.

Le code d'origine serait quelque chose du genre, situé par exemple dans un fichier page-node-popup.tpl.php:

<?php
print views_embed_view('gallery_popup', 'default', arg(1));
?>

Ceci affiche la vue gallery_popup, le display default avec comme argument le nid (http://url.com/node/24 serait 24) pour afficher la galerie correspondant au noeud courant.

Ceci fonctionne presque : on obtient des erreurs lors de la lecture des javascript (drupal_get_js()). Voici la solution proposée par le créateur de views himself :

Rajouter ça dans le fichier template.php dans la fonction theme_preprocess_page:

$vars['view_gallery'] = views_embed_view('gallery_popup','default', arg(1));
$vars['scripts'] = drupal_get_js();
return $vars;

Ce qui permettra d'utiliser la variable $view_gallery directement dans le page-node-popup.tpl.php.

Source

Ajouter un commentaire