web-dev-qa-db-fra.com

Comment ajouter une classe CSS à une table créée à l'aide de vues

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.

7
maaz siddiqui

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 ).

3
Shelton

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.

2
sareed

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.

0
Ciprian

Vous modifiez correctement la vue. Suivez les étapes ci-dessous pour afficher le thème:

  1. Accédez à l'onglet Avancé dans votre vue.
  2. Cliquez sur Thème: Informations.
  3. Créez le fichier dans votre répertoire de modèles de thème avec le nom par exemple. "views-view-table - abc.tpl.php" si le nom de votre vue est 'abc', c'est-à-dire remplacer 'abc' par le nom de vue souhaité.
  4. Cliquez sur le bouton "Rescan Template File" et voyez si le nom du fichier que vous avez créé devient gras ou non. Si oui, votre vue a été thématisée, sinon le nom du fichier pourrait ne pas être correct. Pour plus de détails https://drupal.org/node/35297
0
Astha chauhan