xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Модуль Views Custom Field — свои поля в представлениях Views

Опубликовано в

Описание

Модуль Views Custom Field позволяет добавлять в представления три новых типа полей:

  • Markup — Произвольный текст пропущенные через один из форматов ввода.
  • PHP code — PHP код.
  • Rownumber — Номер текущей строчки.

Установка

Процесс стандартный — скачать последнюю стабильную версию, распаковать в sites/all/modules, включить.

Использование

Покажу на примере как можно использовать тип поля PHP code.

Допустим есть тип материала Товар, у которого есть CCK поле Цена. Задача — в таблице со списком товаров, в одном из полей вывести перечёркнутую цену товара и рядом цену товара с 10-и процентной скидкой.

Создаём представление. Добавляем необходимые фильтры, критерии сортировки, поля. Меняем настройки по вкусу.

Добавляем поле Содержимое: Цена с отмеченной опцией Исключить из вывода (это для того, чтобы поле не выводилось в таблице, но оно было доступно в php-коде):

Настройки поля Цена

Добавляем поле Customfield: PHP-код и прописываем значение:

<pre><?php print_r($data); ?></pre>

После этого в предпросмотре, в каждой строке, появится дамп переменной $data:

Эти данные можно использовать в php коде. Список свойств будет меняться при добавлении/удалении новых полей, фильтров или критериев сортировки.

Теперь, когда мы знаем что цена товара лежит в переменной $data->node_data_field_price_field_price_value, можно легко вывести эту цену с учётом скидки. Для этого прописываем новое значение поля Customfield: PHP-код:

<?php
$price = $data->node_data_field_price_field_price_value;
$discount = round(($price / 100) * 10);
echo '<s>' . $price . '</s> ';
echo $price - $discount;
?>

Настройки поля Customfield: PHP-код

Результат:

Таблица с ценой товаров с учётом скидки в 10%

Ещё примеры использования.

Версия под Drupal 7.

Написанное актуально для Views Custom Field 6.x-1.0
Похожие записи

Комментарии RSS

Отлично! спасибо! хоть кто-то нормально объяснил по этим полям!
Классный блог по друпалу.

Спасибо, очень помогло.

ага, только вот http://sidashin.ru/node/37 :)

Anton S, спасибо, любопытно

Очень хорошо написано! Есть вопрос немного не в тему, а возможно использовать полученные переменные в фильтре или аргументе?

У меня вопрос. Это всё работает...и тогоже результата можно добится не подключая модуль Views Custom Field и не мудрить с php....но что при таком варианте что при другом, поля эти не выводятся для гостей, только для авторизированных пользователей. Как вывести их для гостей сайта??

поля выводятся для всех

у меня есть сайт sheer.com.ua(не реклама) под текстом "Запрос на обратный звонок" есть фото менеджера и его контакты так вот тел. мыло и скайп не выводятся а когда я захожу под админом и просматриваю сайт то мне всё выводится....может это в настройках сайта или поля???

возможно кэш

очистка кеша не помогает....

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании