Вывожу ТОП 100 нод. Необходимо в табличной формате первые 10 нод (заголовков и прочие поля от но) окрасить в другой цвет. По дефолту этого нельзя сделать (только первый последний и через строчку)
Возможно ли каждой строчке присвоить свой айди или див стиля???
Комментарии
во вьюхе в "Настройках поля" -> "Настройках стиля" можно указать "Добавить классы по умолчанию".
тогда к каждой строке будет присваиваться порядковый номер
у меня по умолчанию - это же дефолтная настройка. да и это относиться к полю... а нужно к строке всей табличной...
но наверное можно раскрасить просто все заюзаные поля...
а у вас таблица...
тогда в "Формат" -> "Настройка" (рядом с таблицей) -> "Добавлять классы строк"
у меня галка стоит
Add views row classes
Add the default row classes like views-row-1 to the output. You can use this to quickly reduce the amount of markup the view provides by default, at the cost of making it more difficult to apply CSS.
но что то row-1? row-2 нет такого
надеюсь вы сохранили представление. Тогда cron,кэш.
если все плохо - скрины в студию
так галка стоит по дефолту. еще год назад стоит. Кронов кешев за это время было сделано море. Скрины чего именно ???
тогда и скрины не нужны. Видимо криво views апдейтился
Да, последний раз девовскую версию накатывал...
вернул стабильную версию 3.7 все тоже самое =(((((((
Поглядел другие списки. У табличных нигде такого нет. Только у безформатного и еще какого то там
говорят через темизацию можно вьюхи блока сделать типа как тут
http://www.drupal.ru/node/71268
попробуйте посмотреть в сторону views-view-table.tpl.php
находится в папке theme модуля views.
Так это понятно. Код то какой вставить... в это темизационом файле вьюхи
приду вечером - опишу. Сейчас на работе...
попробуй php код туда вставить - вдруг прокатит
1 апреля еще не скоро, извини.
если до 1 апреля не сможешь написать пару строчек кода , я тебе тогда напишу решение
оки.
Т.е. первым 10 строкам назначить определенные классы?
Типа color-1,color-2 и т.д.?
Добавляем поле Счетчик (помоему в Глобальных)
В нем будет порядковый номер строки: 1,2,3 и т.д.
Задвигаем его в начало и скрываем.
Переопределяем вывод полей с добавлением класса по токену
типа
<div class="color-[count]">[field]</div>
где [count] - токен поля Счетчик
[field] - токен текущего поля.
Ну и в стилях прописываем стили для этих классов, естественно..
у него таблица.
и так все поля переписывать?
Проще id присвоить row внутри которой все поля - вообщем нерациональное предложение
а какая разница то , если он выводит полями?
откуда у тебя свои цвета?
тонкий юмор ))
views-view-table.tpl.php
<?php if (!empty($title) || !empty($caption)) : ?>
<caption><?php print $caption . $title; ?></caption>
<?php endif; ?>
<?php if (!empty($header)) : ?>
<thead>
<tr>
<?php foreach ($header as $field => $label): ?>
<th <?php if ($header_classes[$field]) { print 'class="'. $header_classes[$field] . '" '; } ?>>
<?php print $label; ?>
</th>
<?php endforeach; ?>
</tr>
</thead>
<?php endif; ?>
<tbody>
<?php foreach ($rows as $row_count => $row): ?>
<?php if($row_count < 10) { $row_classes[$row_count][] = 'inferno';} ?>
<tr <?php if ($row_classes[$row_count]) { print 'class="' . implode(' ', $row_classes[$row_count]) .'"'; } ?>>
<?php foreach ($row as $field => $content): ?>
<td <?php if ($field_classes[$field][$row_count]) { print 'class="'. $field_classes[$field][$row_count] . '" '; } ?><?php print drupal_attributes($field_attributes[$field][$row_count]); ?>>
<?php print $content; ?>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
v2: views-view-table.tpl.php
<?php /**
* @file
* 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.
* - $caption: The caption for this table. May be empty.
* - $header_classes: An array of header classes keyed by field id.
* - $fields: An array of CSS IDs to use for each field id.
* - $classes: 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.
* - $field_classes: An array of classes to apply to each field, indexed by
* field id, then row number. This matches the index in $rows.
* @ingroup views_templates
*/
?>
<table <?php if ($classes) { print 'class="'. $classes . '" '; } ?><?php print $attributes; ?>>
<?php if (!empty($title) || !empty($caption)) : ?>
<caption><?php print $caption . $title; ?></caption>
<?php endif; ?>
<?php if (!empty($header)) : ?>
<thead>
<tr>
<?php foreach ($header as $field => $label): ?>
<th <?php if ($header_classes[$field]) { print 'class="'. $header_classes[$field] . '" '; } ?>>
<?php print $label; ?>
</th>
<?php endforeach; ?>
</tr>
</thead>
<?php endif; ?>
<tbody>
<?php foreach ($rows as $row_count => $row): ?>
<?php $row_classes[$row_count][]='view-row-'.$row_count; ?>
<tr <?php if ($row_classes[$row_count]) { print 'class="' . implode(' ', $row_classes[$row_count]) .'"'; } ?>>
<?php foreach ($row as $field => $content): ?>
<td <?php if ($field_classes[$field][$row_count]) { print 'class="'. $field_classes[$field][$row_count] . '" '; } ?><?php print drupal_attributes($field_attributes[$field][$row_count]); ?>>
<?php print $content; ?>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
?>
Пишем стиль
color-2,
color-3,
color-...,
color-10{
background-color: #ff0000;
}
Добавляем в представление поле: Global: View result counter (View result counter) [Exclude from display]
Идём в Page: Style options
В поле Row class пишем
[counter] - это токен для поля Global: View result counter. Посмотреть его можно в настройках переопределения поля - об этом кстати написано прямо под Row class: "The class to provide on each row. You may use field tokens from as per the "Replacement patterns" used in "Rewrite the output of this field" for all fields."
Теперь только стили нужно подключить.
в моем варианте получается кошерней , а для инферны это значительно
background-color: #ff0000;
}
но если потребуется выделить 5 строк, а не 10, то придется лезть в шаблон)
то есть кошернее редактировать css чем php ?
по-моему одинаково. Что там лезть в файл, что там. Только в стилях быстрее найти, строчку :Р
я боюсь открывать css файлы - у меня паника начинается
да и инферно как истиный кодер тоже явно побрезгует туда лазить
Придумал))))
Можно ещё добавить поле Global: Math expression
в нём написать
И в поле Row class вместо
написать
И тогда можно стиль сократить до
background-color: #ff0000;
}
Правда min не работает, и это не практично, но всё таки в теории можно обойтись без переопределения шаблона:)
ух как сказано)) Верстальщики пугайтесь)
Может вы правы. По мне так удобней добавить variable_get('my_module_allocated_rows') и hook_menu() - пару строк, Form Api одно поле. И никаких проблем. Зашел в админку и поставил сколько надо.
да и max тоже как то не сильно работает - правда работает извлечение квадратного корня , может инферне пригодится
css:
.views-row-first, .views-row-first + tr, .views-row-first + tr + tr ...
ага и будет
.views-row-first,
.views-row-first + tr,
.views-row-first + tr + tr,
.views-row-first + tr + tr + tr,
.views-row-first + tr + tr + tr + tr,
.views-row-first + tr + tr + tr + tr + tr,
.views-row-first + tr + tr + tr + tr + tr + tr,
.views-row-first + tr + tr + tr + tr + tr + tr + tr,
.views-row-first + tr + tr + tr + tr + tr + tr + tr + tr,
.views-row-first + tr + tr + tr + tr + tr + tr + tr + tr + tr
Можно еще http://htmlbook.ru/css/nth-child, но это для современных браузеров
да, можно еще javascript'ом посчитать первые 10 строк, если уж на то пошло.
Вроде 2 четких ответа есть. Мне даже решение от drupby больше нравится. Его можно потом в админку расширить, если потребуется.
Класс строки во вьюхе + токен счетчик
Ммм в дивы тоже токены вставлять можно? Будем знать.
Только вот в таблице не одно поле а несколько.
Др варианты в понедельник погляжу.
Вообще, даже для тех кто не в танке, а хотя бы на бороне, проще шаблон вывода строк переопеделить.
Это где row в цикле выводятся..
Добавить переменную-счетчик
И при помощи ее добавить нужные классы..
Вы уже долго с друпалом возитесь..
мне казалось такие проблемы для вас не проблемы?-)
Всё зависит от частоты возни:)
Блин, чего тут размышлять - если есть возможность переопределить шаблон, то именно так и нужно сделать.... какие ещё тут варианты могут быть, если не можется лезть в код, тогда делать в представлениях.
Тем более уже показали как сделать. Работать будет так и так. Сопровождать и то и другое - равнозначно.
Задачка-то тривиальная.
Ну это ж инферна
подходит.