Theming : choix de solutions pour inclure des vues dans une page

Bonjour,

Je susi en train de me poser une question à propos du développement d’un thème et du choix à faire entre plusieurs solutions pour inclure le résultat d’une vue dans une page.Ainsi , eu égard à mon niveau, je suis capable de pouvoir choisir entre :

  • créer des vues-blocs, insérées ensuite dans des régions dédiées dans le page-TdC.tpl.Je limite l’affichage via un code php ou juste le nid de la page

  • utiliser viewreference , ainsi je choisi quelle vue inclure,ensuite il faut passer par un node.tpl custom avec affichage du résultat de ces champs.L’avantage est qu’il n’est pas nécéssaire de limiter l’affichage à un noeud.

connaissez vous d’autres moyens de faire ? car actuellement j’ai un template de page-TdC.tpl pour créer une page rubrique et 3 pages de sous rubriques…la mise en page étant différente entre la rubrique et ses sous-rubriques..
c’est un peu philosophique mais il faut y penser avant de développer non ?

merci

#

http://mustardseedmedia.com/podcast/episode31

avec l’appel «module_invoke»

#

il s’agit d’une belle technique aussi, ensuite dans les comm ils parlent d’utiliser les fonctions de theme ainsi voici les codes utilisables possibles, ce sont des solutions «par le code» , à l’inverse de celles que je connais qui sont «par l’interface».

Solution de Bob :

<?php
$view
=views_get_view('NOM_de_la_VUE');
// block_1 est le 1er affichage , $tids l'argument de la vue
$display=$view->execute_display('block_1', $tids);
print
$display['content'];
?>

Solution de Manuel Garcia :

<?php
function MYTHEME_taxonomy_term_page($tids, $result) {
$output = '';

// Only display the description if we have a single term, to avoid clutter and confusion.
if (count($tids) == 1) {
$term = taxonomy_get_term($tids[0]);
$description = $term->description;

// Check that a description is set.
if (!empty($description)) {
$output .= '<div class="taxonomy-term-description">';
$output .= filter_xss_admin($description);
$output .= '</div>';
}
}
// we use this view to render the content rather than normal taxonmy behaviour
$view = views_get_view('MYVIEW');
$output .= $view->execute_display('MYDISPLAY', $tids);

return $output;
}
?>

je ne suis pas dev, et j’ai saisi l’explication de Bob, pour la solution via template.php je ne l’ai pas testée ni vraiment comprise, est elle mieux ou plus simple que celle de bob ?

Drupal 6.xx - 2 sites chez OVH (pro) mutualisé, 6 chez AlwaysData (Pack10go)
/////////////
www.graphisme-libre.info

#

La 2ème solution n’est ni mieux ni moins bien ; elle décrit le cas particulier de remplacer les pages de taxonomie drupal par une view.
Et elle semble apparemment être un bon exemple de «surcharge» de page par le theme.

#

En fait d’après ce que je vois, la deuxième solution de Manuel Garcia intègre la première solution donnée par Bob.
Il vaut donc mieux utiliser cette solution-là.

Syndiquer le contenu