Другой стиль у последнего элемента views

Главные вкладки

Аватар пользователя protis protis 29 декабря 2011 в 14:14

Всем привет!
Темизирую вьюху.

В наличии:


<?php foreach ($fields as $id => $field): ?>

      <li><?php print $field->content?></li>

<?php endforeach; ?>

Подскажите, пожалуйста, как сделать у последнего элемента из этого списка

<?php<li class="last">?>

Понимаю, что нужно посчитать, и если порядковый номер = последнему, то вывести этот class... Но как это грамотно выразить на пхп - не знаю

Комментарии

Аватар пользователя annya annya 29 декабря 2011 в 14:54

Насколько я помню, нумерация $id начинается с 0, а не с 1.

Поэтому так:

<?php if ($id == $view->total -1) {
  our code here
}?>

Но я бы Вам рекомендовала эту логику формирования классов, вынести в препроцессы(их можно найти в theme/theme.inc модуля views)

Аватар пользователя protis protis 29 декабря 2011 в 14:58

Не нашел в стандартном коде классы первого и последнего элемента в views-view-fields.tpl.php ... или я не туда смотрю. Ткните, плиз, носом.

Аватар пользователя Orion76 Orion76 29 декабря 2011 в 15:23

кусок views-view-table.tpl.php (Тема- Информация - СТИЛИ ВЫВОДА):

<?php
 
foreach ($rows as $count => $row): ?>
      <tr class="<?php print implode(' '$row_classes[$count]); ?>">
?>

в $row_classes[$count] как раз нужные классы уже должны быть

а в views-view-fields.tpl.php уже помоему поля строки выводятся-темизируются

Аватар пользователя protis protis 29 декабря 2011 в 23:50

annya - $id - в моем случае это title, поэтому $id == числу не совсем корректно.
$row_classes[$count] - что-то я не смог найти его в неформатированном tpl.

Аватар пользователя Orion76 Orion76 30 декабря 2011 в 9:17

содержимое стандартного views-view-unformatted.tpl.php

<?php
if (!empty($title)): ?>
  <h3><?php print $title?></h3>
<?php endif; ?>
<?php 
foreach ($rows as $id => $row): ?>
  <div class="<?php print $classes[$id]; ?>">
    <?php print $row?>
  </div>
?>

Отгадайте с 3-х раз, где сдесь классы?-)))

и

<?php
drupal_set_message
('<pre>'.print_r(__ПЕРЕМЕННАЯ_TRUE).'</pre>');
?>

вам в помощь для просмотра переменных..

Аватар пользователя Orion76 Orion76 30 декабря 2011 в 9:21

И обратите внимание, для темизации вывода вьюса используются шаблоны 3-х уровней:

1.Темизация сраницы вывода
2.Темизация строквывода
3.Темизация полей вывода

Вам нужно 2.