2009-12-30 2 views
2

Я пытаюсь придумать способ внедрить цветовое кодирование в представлениях Drupal. У меня есть несколько потребностей для этого, но я не могу понять, как это сделать. Вот несколько примеров ...Drupal: Цветовая кодировка Просмотров

  1. В виде таблицы для типа содержимого я хочу покрасить код каждой строки в зависимости от возраста сообщения. Другими словами, «возраст» сообщения - это один из столбцов в таблице, и я хочу, чтобы каждая строка, почта которой была меньше одного дня, была выделена желтым фоном. Если прошло более недели, выделите красным цветом и так далее ...

У кого-нибудь есть идеи для этого? Я подозреваю, что мы могли бы захватить условные значения на обычной веб-странице, но это сложно в Drupal, и мои знания javascript ограничены. Я знаю, используя хороший ole SQL, мы могли бы запустить некоторый PHP для значений и связать селектор css, чтобы сделать это, но я пытаюсь выполнить его в представлениях (внесенный modlue). Заранее спасибо

+0

В примере, как вы создаете таблицу? Использование файла шаблона (tpl.php)? Или с помощью другого модуля? – dusan

+0

Модуль Views - я не против писать SQL, но мне нравится гибкость представлений - например, аргументы, блоки, просто ajax ... и т. д. – tpow

ответ

1

Я бы создал таблицу view-view-temp.tpl.php (где Temp - это имя представления), которая вставляет в классы в зависимости от даты. Вот пример, когда я изменил созданную дату, чтобы показать Time Ago, и просто обыскал неделю или день с помощью stripos. Вы можете использовать математику php date или другие методы для вставки вашего класса. Это очень простой и нуждается в настройке:

<?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

Я еще не тестировал это, но ваша логика прямо на. благодаря – tpow

Смежные вопросы