2009-12-30 6 views
2

J'essaie de trouver un moyen d'instituer le codage couleur dans les vues Drupal. J'ai plusieurs besoins pour cela mais je n'arrive pas à comprendre comment le faire. Voici quelques exemples ...Drupal: Codage couleur Vues

  1. Dans une vue de tableau pour un type de contenu, je veux coder en couleur chaque ligne en fonction de l'âge de la publication. En d'autres termes, "âge" de la publication est l'une des colonnes de la table, et je veux que chaque ligne dont le poste a moins d'un jour soit surlignée avec un fond jaune. Si c'est plus d'une semaine, mettre en évidence avec le rouge, et ainsi de suite ...

Quelqu'un a des idées pour cela? Je suppose que nous pourrions probablement saisir les valeurs conditionnelles dans une page Web normale, mais c'est difficile dans Drupal et ma connaissance de javascript est limitée. Je sais avec bon ole SQL que nous pourrions faire un peu de PHP sur les valeurs et associer un sélecteur css pour cela, mais j'essaye de l'accomplir en vues (le modlue contribué). Merci d'avance

+0

Dans l'exemple, comment générer la table? À l'aide d'un fichier modèle (tpl.php)? Ou en utilisant un autre module? – dusan

+0

Module Vues - Cela ne me dérange pas d'écrire le SQL - mais j'aime la flexibilité des vues - par ex. arguments, blocs, ajax facile ... etc. – tpow

Répondre

1

Je voudrais créer une views-view-table - Temp.tpl.php (où Temp est le nom de la vue) qui insère dans les classes en fonction de la date. Voici un exemple où j'ai changé la date créée pour afficher Time Ago et que je viens de faire une recherche sur Week ou Day avec stripos. Vous pouvez utiliser les maths de date PHP ou d'autres méthodes pour insérer votre classe. Ceci est très basique et devra être peaufiné:

<?php 
// $Id: views-view-table.tpl.php,v 1.8 2009/01/28 00:43:43 merlinofchaos Exp $ 
/** 
* @file views-view-table.tpl.php 
* Template to display a view as a table. 
* 
* - $title : The title of this group of rows. May be empty. 
* - $header: An array of header labels keyed by field id. 
* - $fields: An array of CSS IDs to use for each field id. 
* - $class: A class or classes to apply to the table, based on settings. 
* - $row_classes: An array of classes to apply to each row, indexed by row 
* number. This matches the index in $rows. 
* - $rows: An array of row items. Each row is an array of content. 
* $rows are keyed by row number, fields within rows are keyed by field ID. 
* @ingroup views_templates 
*/ 
?> 
<table class="<?php print $class; ?>"> 
    <?php if (!empty($title)) : ?> 
    <caption><?php print $title; ?></caption> 
    <?php endif; ?> 
    <thead> 
    <tr> 
     <?php foreach ($header as $field => $label): ?> 
     <th class="views-field views-field-<?php print $fields[$field]; ?>"> 
      <?php print $label; ?> 
     </th> 
     <?php endforeach; ?> 
    </tr> 
    </thead> 
    <tbody> 
    <?php foreach ($rows as $count => $row): ?> 
     <tr class="<?php print implode(' ', $row_classes[$count]); ?> <?php 
     if(stripos($row["created"], "Week")) { 
       print "week-class "; 
     } 
     if(stripos($row["created"], "Day")) { 
       print "day-class "; 
     }?> 
     "> 
     <?php foreach ($row as $field => $content): ?> 
      <td class="views-field views-field-<?php print $fields[$field]; ?>"> 
      <?php print $content; ?> 
      </td> 
     <?php endforeach; ?> 
     </tr> 
    <?php endforeach; ?> 
    </tbody> 
</table> 
+0

Je ne l'ai pas encore testé, mais votre logique est bonne. Merci – tpow