Je veux ajouter une classe CSS à une table créée à l'aide de vues. J'ai essayé de remplacer "views-view-table.php" dans mon thème personnalisé, mais cela ne semble pas fonctionner. Dans "views-view-table.php", j'ai remplacé la ligne "<table <?php if ($classes) { print 'class="'. $classes . '" '; } ?><?php print $attributes; ?>>
" par "<table class="responsive">
"puis a vidé le cache, mais cela n'a pas fonctionné. Quelqu'un peut-il m'aider. Merci d'avance.
Ceci est un ancien poste, mais je voudrais apporter quelques solutions.
Tout d'abord, et cela peut ne pas répondre directement à votre question, mais vous pouvez modifier les sélecteurs CSS que vous utilisez pour cibler la table.
Donc, plutôt que d'utiliser table.yourclass
vous pouvez utiliser .yourclass table
. Cela peut être accompli en définissant une classe personnalisée pour la vue entière dans la section avancée .
Bien sûr, cela ne fonctionnera pas si vous essayez d'ajouter des classes directement à l'élément comme vous pourriez avoir besoin de le faire avec Bootstrap, c'est-à-dire table.table.table-striped
.
La deuxième solution vous permettra d'ajouter les mêmes classes à toutes vos tables. Dans ton template.php
fichier, ajoutez ce qui suit:
function THEME_preprocess_views_view_table(&$vars)
{
$vars['classes_array'][] = 'table table-striped';
}
Si vous devez cibler une table spécifique, vous pouvez également vérifier le $vars
variable d'abord pour trouver le nom de la vue et de l'affichage appelés et n'appliquer vos classes qu'à celles que vous souhaitez cibler. Je n'ai pas vérifié, mais il se trouve probablement dans quelque chose comme $vars['view']->current_display
.
Enfin, il convient de noter que Views prend réellement en charge les classes personnalisées sur la table. Les variables sont appelées dans les fichiers de modèle, il n'y a tout simplement pas d'option pour cela dans l'interface graphique des vues. C'est un oubli à mon avis, mais les développeurs du module ne semblent pas avoir l'intention de le corriger. Cela dit, n patch pour cela existe ( lien direct ).
Vous ne devriez pas avoir besoin d'un fichier modèle pour cela. Sous l'onglet Avancé> Autre dans votre vue, il y a une option de classe CSS. Vous pouvez l'ajouter ici et ensuite utiliser les sélecteurs appropriés à votre CSS. Vous pouvez également utiliser hook_preprocess_views_view()
pour ajouter la classe au $classes
variable utilisée dans le modèle.
Le fichier que vous essayez de remplacer doit être "views-view-table.tpl.php". Vous avez oublié le ".tpl". Pour afficher tous les fichiers disponibles que vous pouvez remplacer, utilisez l'option "Avancé -> Thème: Informations" de la page de configuration de la vue.
Vous modifiez correctement la vue. Suivez les étapes ci-dessous pour afficher le thème: