Submitted by 116_butterfly@d... on
Bonjour,
Voici mon souci :
J'essaie de créer une view qui liste les 10 derniers articles d'une catégorie, affichés sur 2 colonnes. Je veux afficher seulement les titres et liens vers les articles, pas les teasers (sinon, j'aurais pu utiliser comme type de view : "Panels: Teasers, 2 columns").
Je suis donc parti sur l'idée de créer un gabarit personnalisé, en m'inspirant du gabarit existant "panels_twocol.inc" du views_bonus_pack. Je l'ai renommé panels_twocol_list.inc et je l'ai activé dans l'admin de views.
Voici mon code pour panels_twocol.inc :
<?php
function views_bonus_panels_twocol_list_info() {
$items['panels_twocol_list'] = array(
'name' => t('Panels: Lists, 2 columns'),
'description' => t('Show views as lists in two columns.'),
'requires' => array('panels'),
);
return $items;
}
function
views_bonus_panels_twocol_list_style_plugins() {
$items['panels_twocol_list'] = array(
'name' => t('Panels: Lists, 2 columns'),
'theme' => 'views_bonus_panels_twocol',
'summary_theme' => 'views_summary',
);
return $items;
}
/**
* Because views doesn't currently support configuration options for
* plugins, the best way to make configuration changes here is
* to override the theme.
*/
function theme_views_bonus_panels_twocol_list($view, $nodes, $type) {
$teasers = true;
$links = true;
if (!module_exist('panels')) {
//return theme('views_view_nodes', $view, $nodes, $type, $teasers, $links);
return theme_views_view_list($view, $nodes, $type);
}
$content = array();
foreach ($nodes as $count => $n) {
$node = node_load($n->nid);
if ($count % 2) {
$section = 'right';
}
else {
$section = 'left';
}
//$content[$section] .= node_view($node, $teasers, false, $links);
$content[$section] .= "<a href='/node/" . $node->nid . "'>" . $node->title . "</a><br />";
}
return panels_print_layout('twocol', $content);
}
?>
Malheureusement, il y a manifestement un problème car le code ne semble pas être lu, les articles sont affichés au format "teaser" au lieu que ce soit juste une liste de liens.
Est-ce que quelqu'un a déjà réalisé ce genre de choses et pourrait m'indiquer la bonne direction ?
Merci d'avance.
(même message en anglais ici : http://drupal.org/node/156510)
J'vois pas trop ce que ça
Permalien Soumis par drupalfrance le 5 Juillet, 2007 - 00:33
J'vois pas trop ce que ça changerait mais le return à la fin devrait pas plutôt dire
(c'est à dire, rajouter _list)
Merci Vincent mais je ne
Permalien Soumis par 116_butterfly@d... le 5 Juillet, 2007 - 16:04
Merci Vincent mais je ne pense pas (du reste, j'ai essayé) :
La fonction panels_print_layout appelle un gabarit situé dans le répertoire du module panels et qui s'appelle twocol.inc...
Personne n'a une idée ?
Je crois que tu t'es trompé
Permalien Soumis par drupalfrance le 5 Juillet, 2007 - 17:27
Je crois que tu t'es trompé dans la fonction views_bonus_panels_twocol_list_style_plugins(). Tu as oublié de rajouter _list à la fin de la ligne suivante :
Génial, c'était
Permalien Soumis par 116_butterfly@d... le 5 Juillet, 2007 - 18:40
Génial, c'était effectivement ça !
Un grand merci Vincent !