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

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

Vus : 1161
Publié par Loutre.ch : 36