[résolu] Views & Panels : view personnalisée : liste sur 2 colonnes

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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)

Forum : 
Version de Drupal :