Изучаем Drupal. Модуль Views. Часть 2 - Настраиваем представление. Неправильно отображается навигационная линейка представление друпал
Помогите с навигационной линейкой (breadcrumbs)
Экспериментирую с шаблоном phpbluemarine (это bluemarine, написанная под phptemplate).
Если выводится оглавление терма или нескольких сразу, то "хлебные крошки", breadcrumbs (т.е. навигационная линейка, показывающая положение текущей страницы в общей иерархии сайта) выводится нормально. Ну, разве что, стоит дублировать заголовок страницы в конце этой линейки, но, как мне кажется, это дело поправимое средствами одного лишь шаблона, без влезания в код движка.
Хуже дело обстоит с выводом конкретного нода. По умолчанию, при показе нода, breadcrumbs состоит из одной единственной ссылки, ведущей на главную страницу сайта. Понятно, откуда это растет: если нод принадлежит сразу нескольким термам одновременно, его местоположение в структуре сайта простым "урлом" не определишь. Программеры, мать их за ногу, решили пойти наиболее простым путем, поэтому раз так, все ноды теперь "не принадлежат никому", во всяком случае, их принадлежность вообще не показывается.
По мне, так решение тупое и не лучшее, особенно учитывая, что структура многих сайтов делается чисто иерархической, и нод всегда принадлежит конкретному терму.
Нельзя ли и здесь помочь делу? Путем вставления в шаблон кода, самостоятельно формирующего ссылки и текст для breadcrumbs, по аналогии с тем, как это было сделано по совету Bang в шаблоне node.tpl.php для полностью самостоятельного формирования ссылок на термы, которым принадлежит очередной выводимый заголовок нода?
Кто-нибудь может помочь и подсказать код, который бы позволил заменить "тэг" "print $breadcrumb" и который выводил бы полное расположение всех термов текущего нода в иерархии сайта?
Ну - если нод принадлежит одному терму, тогда пусть отрисовывается обычная навигационная линейка, которая бы позволила нам подняться от текущего документа на любой вышестоящий.
А если нод принадлежит нескольким термам, то пусть такие линейки рисуются для всех термов, которым он принадлежит. Почему бы и нет?
Может кто-нибудь помочь?
drupal.ru
Небольшой апгрейд постраничной навигации Drupal-a
function YOURTHEMENAME_pager($tags = array(), $limit = 10, $element = 0, $parameters = array(), $quantity = 9) { global $pager_page_array, $pager_total, $theme; // Add js code for Ctrl+arrows navigation drupal_add_js( drupal_get_path('theme', $theme) .'/js/jquery.paginator.js' ); // Calculate various markers within this pager piece: // Middle is used to "center" pages around the current page. $pager_middle = ceil($quantity / 2); // current is the page we are currently paged to $pager_current = $pager_page_array[$element] + 1; // first is the first page listed by this pager piece (re quantity) $pager_first = $pager_current - $pager_middle + 1; // last is the last page listed by this pager piece (re quantity) $pager_last = $pager_current + $quantity - $pager_middle; // max is the maximum page number $pager_max = $pager_total[$element]; // End of marker calculations.// Prepare for generation loop. $i = $pager_first; if ($pager_last > $pager_max) { // Adjust "center" if at end of query. $i = $i + ($pager_max - $pager_last); $pager_last = $pager_max; } if ($i = 0) { // Adjust "center" if at start of query. $pager_last = $pager_last + (1 - $i); $i = 1; } // End of generation loop preparation. $li_previous = theme('pager_previous', (isset($tags[1]) ? $tags[1] : t('previous page')), $limit, $element, 1, $parameters); $li_next = theme('pager_next', (isset($tags[3]) ? $tags[3] : t('next page')), $limit, $element, 1, $parameters); $li_first = theme('pager_first', 1, $limit, $element, $parameters); $li_last = theme('pager_last', $pager_max, $limit, $element, $parameters); // First-page link display condition $show_first = ( $i > 1 ) ? true : false ; if ($pager_total[$element] > 1) { if ( $li_previous ) $items[] = array( 'class' => 'pager-previous', 'data' => $li_previous ); if ( $show_first && $li_first ) $items[] = array( 'class' => 'pager-first', 'data' => $li_first );
// When there is more than one page, create the pager list. if ($i != $pager_max) { if ($i > 2) $items[] = array( 'class' => 'pager-ellipsis', 'data' => '...' ); // Now generate the actual pager piece. for (; $i = $pager_last && $i = $pager_max; $i++) { if ($i $pager_current ) $items[] = array( 'class' => 'pager-item', 'data' => theme('pager_previous', $i, $limit, $element, ($pager_current - $i), $parameters) ); if ($i == $pager_current) $items[] = array( 'class' => 'pager-current', 'data' => '' . $i . '' ); if ($i > $pager_current) $items[] = array( 'class' => 'pager-item', 'data' => theme('pager_next', $i, $limit, $element, ($i - $pager_current), $parameters) ); } if ($i $pager_max) $items[] = array( 'class' => 'pager-ellipsis', 'data' => '...' ); } // Last-page link display condition $show_last = ( $pager_max > ($i-1) ) ? true : false ; // End generation. if ( $show_last && $li_last) $items[] = array( 'class' => 'pager-last', 'data' => $li_last ); if ( $li_next) $items[] = array( 'class' => 'pager-next', 'data' => $li_next ); return theme('item_list', $items, NULL, 'ul', array('class' => 'pager')); }}
drupal.ru
Выбор навигации для сайта | Drupal
Этот документ — перевод статьи «Choices in Navigation — An Overview» , которая находиться по адресу: http://drupal.org/node/55610/. Перевод не совсем точный и немного измененный.
Структура Друпала позволяет использовать разные варианты навигации. Этот документ — краткий обзор этих вариантов с рассмотрением «за» и «против».
Рассмотрим следующие пять способов создания навигации на сайте:
- Навигация с использованием Primary/Secondary меню.
- Навигация с использованием модуля Menu.
- Навигация с использованием модуля Book.
- Навигация с использованием таксономии.
- Навигация с использованием своего кода.
Есть и шестой способ: смешанный, т.е. создание навигации сайта используя несколько из перечисленных выше способов, такой подход — самое обычное дело. Например сайты drupal.org использует комбинацию навигации Primary/Secondary с модулем Book.
Выбор навигационной системы не ограничивает вас рамками этой системы. Друпал позволяет создавать много одновременно работающих способов навигации, которые могут быть выборочно доступны для разных пользователей. Если через какое-то время вы внесете изменения на свой сайт, то вы сможете легко изменить навигацию по нему.
Роль тем в навигации
Друпал отделяет представление от содержания. Навигация обеспечивают работу с содержанием, в то время как представление определено в шаблоне темы. Например, стили CSS для эффектов при наведении мышки на ссылку — определяются в шаблоне темы. JavaScript обычно относится к этой же категории, хотя в некоторых случаях нужно будет ввести соответствующие изменения через меню настроек используемого модуля. Такое разделение означает, что меню навигации выглядит по-разному в зависимости от темы.
Примечание
Когда модуль, как говорят — стандартный, это значит, что он включен в установочный пакет Друпала и его нужно только активировать. Дополнительный модуль, тот, который должен быть загружен, установлен и активирован после установки Друпала.Информацию относительно блоков Друпала можно найти на сайте drupal.org:Block: controlling content in the sidebars.Или на русском языке, на сайте setegnom.com здесь:http://setegnom.com/document/33и здесь:http://setegnom.com/document/161/
Навигация с использованием Primary/Secondary меню
Primary/Secondary navigation — это возможность создать навигацию по сайту, которую Друпал делает доступной для разработчиков шаблонов. Эту навигацию можно настроить перейдя по ссылкам Administer — Site building — Menus — Settings. Обычно эта навигация размещена наверху, чтобы иметь возможность создавать горизонтальное меню. В действительности она может быть помещена куда угодно, это зависит от желания разработчика темы. Эта навигация — единственный способ сделать горизонтальное меню без редактирования шаблона темы.
Метод вставки пунктов меню в эту навигацию, различается среди шаблонов или версий Друпала. В некоторых случаях текстовая область предусматривает в шаблоне внесение HTML кода. В других случаях поля используются для названия меню и ссылок. Некоторые шаблоны обеспечивают через CSS показ меню в виде закладок (вкладок), если вы будете использовать разметку ul/li, чтобы создать структуру навигации.
При использовании такой навигации могут возникнуть проблемы с навигационной линейкой. Когда вы нажмете на ссылку и перейдете к нужной странице, путь ссылок в навигационной линейке очиститься и в ней появляется надпись «Home».
Подробная информация
За
- Позволяет создать горизонтальную навигацию без правки кода шаблона.
- В зависимости от шаблона разрешает вставку JavaScript.
Против
- В зависимости от шаблона, возможно придется вручную вставлять HTML код.
- Навигационные линейки в некоторых случаях не будут работать.
Навигация с использованием модуля Menu
Модуль Menu — основное средство для создания и управления меню в блоках Друпала. Полное описание модуля можно найти в руководстве на сайте drupal.org по адресу:http://drupal.org/handbook/modules/menu/или на русском языке по адресу:http://setegnom.com/document/163/
Блоки меню можно сделать обязательными для всех страниц и ролей, задать их отображение только на определенных страницах или в зависимости от прав доступа. Вложенные меню можно делать развернутыми или свернутыми.
Первоначально, меню создавалось только для ссылок на страницы сайта. В настоящее время можно создавать в меню ссылки и на станицы других сайтов.
Подробная информация
За
- Простое обновление через Administer → Site building → Menus, не требует использования HTML кода.
- Можно определить на каких страницах и для кого показывать.
Против
- Нельзя создать меню-закладки или разделители.
- Навигационная линейка не всегда работает на уровне содержания.
Навигация с использованием модуля Book
Модуль Book — это стандартный модуль и назван так не совсем точно. Он создает действительно иерархическую организацию. Описание модуля приводится в контексте книги, но думайте о навигация сайта когда вы читаете это описание!
Когда страницы книги созданы, они размещаются иерархически и страницам автоматически добавляются ссылки, так же как другим навигационным элементам. Настройки размещения страницы объединены на экране создания документа, они упрощают создании цельной книги. Страницы книги — это стандартные документы Друпала и они могут содержать PHP код.
Модуль Book имеет определенное поведение. Новым страницам даются навигационные ссылки от исходной страницы и другие навигационные элементы, такие как ссылки «previous» и «next» (эти ссылки отображаются в виде заголовков предыдущего и следующего документов). Такое поведение или требует много усилий или делает эту опцию бесполезной.
Подробная информация
За
- Одновременное создание содержания и навигации.
- Автоматически создаются ссылки previous, next и up.
Против
- Все должно находиться в пределах иерархии книги или навигационные линейки прервутся.
- Имеет определенные настройки, которые не просто изменить.
Навигация с использованием таксономии
Модуль Taxonomy не создает навигацию, он позволяет распределить по категориям документы таким образом, что на них можно будет ссылаться создав навигацию. Он стандартный модуль Друпала. В сочетании с другими модулями или PHP кодом вы можете создать систему меню и автоматическим размещать страницы в меню, просто создав на сайте систему таксономии.
Самый простой способ сделать навигацию на основе таксономии — модуль Taxonomy Menu. Taxonomy Menu — дополнительный модуль и его нужно самостоятельно установать после установки Друпала. Это позволит превратить структуру таксономии в навигацию. Есть много других модулей которые используют таксономию, позволяя сделать из нее очень мощный способ организации вашего сайта.
Таксономия необходима для сайтов определенной архитектуры, но она избыточна для небольших сайтов.
Подробная информация
За
- Очень удобна для сайтов с большим содержанием.
- Упрощает управление содержанием для автоматического размещения страниц.
- Навигационные линейки работают правильно только с некоторой доработкой.
Против
- Большая часть возможностей таксономии используется с другими дополнительными модулями, что добавляет сложности.
- Избыточна для небольших сайтов или редко обновляемых.
Навигация с использованием своего кода
Если ни один из предыдущих вариантов навигации вас не устраивает, вы можете сделать свое собственное меню. Для некоторых типов меню с использованием JavaScript — это единственный путь. Также такая навигация потребуется если вы захотите сделать меню с пунктами, которые не являются ссылками на документы, разделителями или некоторыми типами HTML тегов. Создание такой навигации предусматривает создание блока и вставку в него HTML кода.
Вы можете расширить некоторые из других типов меню, используя PHP сниппеты. Такой смешанный подход позволяет значительно улучшить функциональность других модулей Друпала.
Навигационные линейки не будут работать с таким типом меню если вы не будете использовать модули управляющие навигационными линейками.
Подробная информация
За
- Непревзойденная гибкость.
- Использование PHP сниппетов расширяет другие типы меню.
- Единственный способ использовать пункты без ссылок и элементы HTML.
Против
- Для изменения меню требуется вручную менять код.
- Навигационные линейки не работают.
- Сложные навигационные системы будут требовать сложного кодирования или большое количество исполнителей.
Было бы здорово, если бы в комментариях к этой статье, кто-нибудь поделился названиями дополнительных модулей, которые он использует для создания меню (идеально с ссылкой на сайт использующий такой модуль) и возможно рекомендациями по их использованию. Или просто привел список известных ему модулей для создания навигации сайта.
drupal.ru
Работа с полями представления | Drupal learning
В прошлом уроке мы создали первое представление Фильмы и теперь, если мы перейдем в раздел Представления, мы увидим его в списке представлений. Тут можно посмотреть краткую информацию об этом представлении: называние, список отображений, тип, описание, пути для страничных отображений. Также тут можно совершить действия: перейти к редактированию представления, отключить, включить, клонировать или удалить представление.
Еще один удобный способ перейти на страницу редактирования представления - это переход с помощью контекстной ссылки.
Нажимаем на контекстную ссылку Редактировать представление и переходим на страницу редактирования представления Фильмы.
Структура страницы редактирования представления
Страницу редактирования любого представления условно можно разделить на следующие секции:
- Вкладки отображений - на этой панели отображаются все присутствующие в этом представлении отображения. Активная вкладки подсвечивается серым цветом. В данном случае у нас только одно активное отображение Page которое мы создали вместе с представлением. Также здесь присутствует кнопка Добавить с помощью которой можно добавить другие отображения.
- Название отображения - здесь можно настроить название текущего отображения.
- Заголовок - настройка заголовка представления. В этой секции задается заголовок страницы или блока. Заголовок блока можно в дальнейшем переопределить в настройках блока.
- Формат - настройка формата отображения. Эти настройки определяют в каком виде будет выводиться содержимое. По умолчанию доступны такие форматы как:
- HTML список
- Меню перехода
- Неформатированный список
- Сетка
- Таблица
Также здесь мы определяем что будет выводится: поля или содержимое.
- Поля - список и настройки выводимых полей. При отображении содержимого полностью эта настройка недоступна.
- Критерии фильтрации - здесь мы настраиваем по каким критериям будет осуществляться фильтрация содержимого. Например, в нашем случае мы будем выводить только опубликованные материалы типа Фильм.
- Критерии сортировки - определяет порядок и правила сортировки содержимого. В нашем примере содержимое будет отсортировано по дате публикации по убыванию (то есть от самых поздних к более ранним).
- Настройки страницы - специфические настройки для текущей страницы: путь, пункт меню и правила доступа. Для блочных представлений на этом месте расположен похожий блок Настройки блока.
- Шапка и подвал - здесь можно задать содержимое, которое будет выводится перед и после самого отображения. Это может быть статический текст, сводка, материал или другое представление.
- Постраничный навигатор - в этом блоке настраивается количество элементов выводимых в отображении, а также тип постраничного навигатора.
- Опции представления - разворачивающийся блок ссылок, с помощью которого можно: отредактировать название и описание представления, клонировать, экспортировать, удалить представление а также изменить порядок отображений.
- Опции текущего отображения - с помощью этого блока ссылок можно удалить, отключить и клонировать текущее отображение. Если это отображение типа страница, то можно еще перейти на эту страницу на сайте.
- Контекстные фильтры, связи и поведение при отсутствии результатов - с помощью контекстных фильтров мы можем сузить круг выводимого содержимого, например, выводить содержимое относящееся к конкретному термину таксономии или связанное с данным материалом. Связи позволяют выводить поля связанного содержимого. Например, вывести описание привязанного к материалу термина. Поведение при отсутствии результатов позволяет задать содержимое, которое будет выведено в том случае, если в отображение не попало ни одного материала для вывода.
- Раскрытая форма - настройки для формы раскрытых фильтров.
- Прочие - все остальные настройки отображения:
- Машинное имя - каждое представление имеет свое машинное имя в рамках своего представления. Оно используется для правильного хранения в базе данных.
- Комментарий - комментарий к отображению, отображается только в административном интерфейсе.
- Использовать AJAX - если включить использование AJAX, то постраничный навигатор и сортировка таблиц будет осуществляться без перезагрузки страницы. Очень удобная техника с точки зрения использования. Минус ее в том, что поисковые системы не смогут проиндексировать все страницы такого отображения.
- Скрыть вложения в анонсе - специфическая настройка для вывода материала в виде анонса при использовании контекстного фильтра.
- Скрыть контекстные ссылки - определяет будут ли выводиться контекстные ссылки.
- Использовать агрегацию - включение и выключение агрегации.
- Настройки запроса - специальный настройки для генерируемого запроса.
- Язык поля - настройка необходимая только для мультиязычный сайтов. Определяет правила выбора языка.
- Кэширование - настройки кэширования для текущего отображения.
- CSS-класс - добавления специального CSS-класса для текущего отображения.
- Тема оформления - информация о шаблонах, которые используются для формирования отображения. Эта настройка используется при создании собственных шаблонов.
Работа с полями
Теперь, когда мы рассмотрели структуру страницы редактирования представления, займемся настройкой отображения, которое мы создали для главной страницы и на этом примере разберем работу с полями.
Первым делом поменяем стандартное название отображения Page на более информативное.
Для этого нажмем на ссылку редактирования названия и в открывшемся диалоговом окне в поле Имя укажем называние Главная.
Нажимаем кнопку Применить.
На главной странице нет смысла отображать заголовок. Поэтому его необходимо убрать. Нажмем на ссылку редактирования заголовка.
Во всплывающем окне уберем заголовок и оставим поле пустым. Далее нажмем кнопку Примерить (все отображения).
Переходим к секции Поля. На данный момент у нас выводится только одно поле Заголовок. Чтобы добавить другие поля жмем на ссылку Добавить:
Перед нами открывается всплывающее окно в котором перечислен весь список доступных полей. Для удобства их можно фильтровать по типу или по ключевому слову. Воспользуемся вторым способом и наберем в поле Поиск называние поля Изображение.
В отфильтрованном списке осталось два поля: Содержимое: Изображение и Содержимое: Image. Из комментариев видно, что второе - это просто псевдоним того же самого поля Изображение, поэтому отмечаем галочкой первое и в поле поиск вводим следующее название поля - Описание
Далее по тому же принципу отмечаем поля: Описание, Страна и Год выпуска.
Стоит обратить внимание, что все отмеченные поля отображаются внизу окна напротив слова Выбрано.
После того как мы выбрали все необходимые поля, нажимаем кнопку Применить (все отображения) и переходим к настройкам каждого выбранного поля. Настройки полей будут отображаться по очереди для каждого поля (этот порядок может отличаться от представленного в уроке).
Первым нам предлагается задать настройки для поля Body (то есть Описание). Убираем галочку напротив Создать метку, выбираем Средство форматирования - Обрезанный текст. Количество знаков оставляем как есть 600. Это значит что если длинна содержимого поля больше 600 символов, то остальная часть будет обрезана. Нажимаем Применить (все отображения) и переходим к настройке следующего поля.
Следующим нам предлагается настроить поле Год выпуска, тут оставим все как есть и нажмем кнопку Применить (все отображения).
Далее настраиваем поле Жанр. Установим Средство форматирования - Простой текст, в секции Настройки множественного поля поставим галочку Отображать все значения в одну линию, выберем Тип отображения - Простой разделитель и в качестве разделителя укажем ",". Это значит, что, если фильм относится сразу к нескольким жанрам, то все они будут перечислены через запятую. Нажимаем Применить (все отображения).
Настраиваем поле Изображение. Первым делом убираем метку, так как для изображения она нам не нужна. Выставляем Стиль изображения - Medium (220x220) и Изображение как ссылка на - Содержимое. В результате чего изображение будет выводится в заданном стиле и заворачиваться в ссылку ведущую на страницу фильма.
В качестве настройки поля Страна указываем Средство форматирования - Простой текст, чтобы оно не отображалось как ссылка на страницу термина, и нажимаем кнопку Применить (все отображения).
При добавлении полей нам было сразу предложено настроить каждое из них. В дальнейшем можно открыть всплывающее окно с настройками каждого поля нажав на ссылку с названием поля в секции Поля.
Для того чтобы перейти к настройкам поля Заголовок нажмем на ссылку Содержимое: Заголовок
.
В открывшемся окне установим галочку напротив Настроить HTML-код поля в секции Настройки стиля и выберем HTML-элемент - h3. Таким образом, заголовки фильмов будут завернуты в тэг h3. Далее нажимаем кнопку Применить (все отображения).
Теперь, когда все поля добавлены и настроены, нам необходимо поменять порядок их вывода на тот, который нам нужен. Для этого разворачиваем блок ссылок (нажимаем на стрелочку справа от ссылки Добавить) в секции Поля и нажимаем на ссылку Изменить порядок.
В открывшемся окне перетягивая поля за ручки (иконка со стрелочками) выставляем порядок как на картинке и нажимаем Применить (все отображения).
Как уже говорилось выше, все изменения которые мы делали сохраняются во временное хранилище и, если мы перейдем на главную страницу сейчас, то никаких изменений мы там не увидим. Для того чтобы изменения вступили в силу, необходимо нажать кнопку Сохранить в правом верхнем углу.
Теперь, если мы перейдем на главную страницу, то увидим, что наше отображение выглядит совсем по другому:
- Поле Заголовок теперь отображается как заголовок второго уровня (так как мы завернули его в тэг h3).
- Поле Изображение выводится в стиле Medium (220x220), а также завернуто в ссылку ведущую на страницу фильма.
- Выводится описание фильма обрезанное по длине 600 символов.
- Выводится поле Год выпуска с одноименной меткой.
- Выводятся жанры через запятую, как мы и указывали в настройках с меткой Жанр.
- Также с одноименной меткой выводится поле Страна.
Осталось немного подправить стили. Для этого в файл style.css темы Dark Elegant (найти его можно по пути sites/all/themes/dark_elegant/style.css) добавим следующий CSS-код:
#block-system-main .view-films .views-field-field-image { float: left; margin-right: 10px; } #block-system-main .view-films .views-field-field-release-year { clear: both; } #block-system-main .view-films .views-label { font-weight: bold; } #block-system-main .view-films .field-content { display: inline; } #block-system-main .view-films .views-row { padding-bottom: 20px; }Теперь отображение выглядит гораздо лучше.
В этом уроке мы рассмотрели работу с полями.
drupal-learning.com
полное практическое руководство (часть 2) / Хабр
Продолжение первой части.Создадим страницу вакансий с помощью модуля Views Хотя вы и можете самостоятельно писать запросы к базе данных для чтения содержимого, дело это долгое и сложное, даже с учетом мощного API Друпала. Для построения страницы со списком вакансий мы задействуем Views — модуль, позволяющий извлекать содержимое из базы данных вообще без написания кода. Попросту говоря, Views — это пользовательский интерфейс построения MySQL-запросов. Views — это невероятно мощный модуль, но порой его бывает трудно освоить начинающим пользователям. Лучший способ разобраться с Views — немного с ним поиграть, чем мы сейчас и займемся.Устанавливаем Views Прежде всего, нам нужно установить Views. После загрузки, установки и включения модуля, он будет доступен в секции меню «Конструкция сайта». При установке не забудьте распаковать в папку с модулем его перевод.Создаем первое представление Любой набор данных, выведенный модулем Views, называется представлением. Мы создадим представление, отображающее на странице список доступных вакансий. Также с помощью Views вы можете делать вложения, блоки и настраиваемые RSS-ленты, но мы пока разберем что-нибудь попроще. Перейдите в меню на страницу Конструкция сайта > Представления > Добавить и заполните поля так, как показано на изображении: Затем Друпал отобразит пользовательский интерфейс создания представлений. Не пугайтесь, мы вскоре его обсудим.Что такое вид? Чтобы приступить к созданию представления, нам нужно понять, что такое вид. Виды отображают наши данные в различных стилях. В одном представлении может быть несколько видов. Для представления вакансий мы создадим 2 вида: страничный и блочный. Вернемся к этой теме чуть позже.Добавление полей в представление Давайте добавим несколько полей в наше представление. Поля — это содержимое, которое мы хотим вывести на страницу. Нажмите на значок плюса (+) в области «Поля», чтобы добавить поля к представлению. Мы будем выводить заголовок, дату создания, отдел, зарплату и опыт, заданные пользователем в форме размещения вакансии. Эти поля нам нужно выбрать из дополнительного списка, который появится после нажатия кнопки с плюсом (+). Нас интересуют следующие поля:- Материал: Заголовок
- Материал: Дата создания
- Содержимое: Отдел
- Содержимое: Заработная плата
- Содержимое: Опыт
После выбора нужных полей нажмите кнопку «Добавить», чтобы перейти к настройке каждого поля в отдельности. После нажатия кнопки «Добавить» первой появится секция настройки поля Содержимое: Отдел. Оставьте все как есть, за исключением селектора «Формат», задав в нем значение «Простой текст»; затем нажмите «Обновить». Теперь настройте поле Содержимое: Опыт. Ничего не меняйте, просто нажмите «Обновить». И то же самое проделайте с полем Заработная плата. Когда закончите с полями содержимого, нужно будет настроить поле Материал: Дата создания. Просто измените поле Формат даты в значение «Время назад», чтобы в поле отображалось, сколько времени прошло с момента публикации вакансии (например, «12 дней назад»). Следующее и заключительное поле для настройки — Материал: Заголовок. Мы просто должны поставить галочку, указывающую, что заголовок должен быть ссылкой на страницу вакансии.
Предварительный просмотр Можете использовать вкладку предварительного просмотра, чтобы увидеть результат ваших настроек:Основные настройки Теперь зададим основные настройки представления. Мы выберем стиль «Без форматирования», а данные будем выводить в табличном формате. Когда зададите эти настройки, нажмите «Обновить». Мы бы хотели вывести все вакансии без разбивки на несколько страниц, поэтому опции «Постранично» — скажем твердое «Нет». И снова нажмем «Обновить». Как вы можете заметить, после всех этих манипуляций наше представление выглядит лучше, чем раньше. Но мы еще не закончили.Фильтры представления На текущий момент в представлении выводится все содержимое сайта, в том числе и не являющееся вакансиями. А мы хотим выводить только вакансии. Для этого выберем два фильтра, задающих вывод только опубликованных вакансий:- Материал: Опубликовано
- Материал: Тип
- Drupal.ru — русскоязычное сообщество пользователей Друпала.
- Справочник API — справочник по API для программистов.
- Drupaler.ru — сообщество переводчиков Друпала и его модулей на русский, белорусский, казахский и другие языки.
- Танцы около Друпала — статьи, уроки и советы за авторством известного Друпал-разработчика, neochief.
- drupalcookbook.ru — рецепты создания сайтов на Друпале; огромная коллекция советов и хитростей.
- content-management-systems.info — советы, подсказки и форум; на сайте действует «Планета Drupal» — RSS-лента, собирающая новости сайтов и блогов, посвященных Друпалу.
Обсуждение на drupal.ru
UPD 01: Хабраюзер kost выявил неверную картинку.
habr.com
Изучаем Drupal. Модуль Views. Часть 2 - Настраиваем представление
В этом посте мы узнаем как настроить представление.
В прошлый раз мы создали представление "Последние новости".
Переходим на страницу admin/structure/views, где мы сможем его найти. Нажимаем "Правка", и переходим на страницу представления.
Итак, что мы имеем:
Превое, на что следует обратить внимание, это панель дисплеев Views.
В одном представлении может быть не ограниченное количество представлений. Например, можно создать представление с содержимым "Запись в блог", и в представлении сделать все необходимые дисплеи по записям: страница последних материалов, блок последних материалов, еще страница с материалами отфильтрованная по определенной категории и т.д. В панеле дисплеев отображаются все имеющиеся в представлении дисплеи, а так же кнопка создания новых дисплеев.
Каждому дисплею можно задать собственное название, это позволяет не запутаться, особенно если дисплеев разведется много. Это название отображается только администратору, на странице редактирования представления. Советую придумывать понятные, логические и ассоциативные названия. Это вам не раз упростит жизнь. Названия можно указывать как латинскими буквами, так и кириллицей, в прочем как и любыми другими.
Для изменения названия жмем на название после фразы "Отображать название:". Вводим "Последние новости" и нажимаем "Применить". Готово.
Поле заголовок, как понятно из названия, отвечает за заголовок страницы, блока, в общем дисплея.
Можно его изменить, или вообще удалить, если он не нужен. Для каких-либо действий с заголовком нажимаем на него.
В данном блоке можно задать формат, в котором будет выводится наше представление в готовом виде.
По умолчанию, доступны следующие форматы:- HTML список
- Меню перехода
- Неформатированный список
- Сетка
- Таблица
C помощью дополнительных модулей можно расширить этот список. Оставим пока формат "Неформатированный список".
В зависимости от выбранного формата может быть доступна настройка выбора типа отображения строки представления. Строка представления это 1 единица, выводимой информации, у нас сейчас таковой является Анонс материала.
Давайте поработаем с этим пунктом. Нажимаем на "Содержимое". В появившемся окне меняем значение на "Поля", вместо "Содержимое". Сохраняем изменения. После сохранения мы попадем на страницу настроек типа строки. Там оставляем все по умолчанию.
Теперь мы получили возможность самим настраивать какие поля выводить в представлении.
Самый важный компонент, позволяющий так гибко настраивать представления это "Поля". Благодаря полям, можно настроить вывод именно той информации, которая Вам необходима именно в этом представлении. Например выводить только изображение и заголовок убрав вывод описания. Или наоборот, добавить в вывод пользовательское поле.
Сейчас выводится только заголовки материала. Всегда можно посмотреть текущее представление внизу, в области предварительного просмотра, нажав на кнопку "Обновить предпросмотр". Так же просмотр обновляется автоматически, каждый раз после внесения изменений в настройках представления.
Давайте выведем поле изображения в наше представления.
Нажимаем кнопку "добавить" в блоке "Поля".
Открывается страница выбора полей.
Находим и выбираем поле "Содержимое: Изображение" (Содержимое: Image). Само собой разумеется, что это поле должно присутствовать в необходимом типе материала.
Убираем галку с поля "Создать метку". Cредство форматирования оставляем "Изображение". Стиль изображения ставим на миниатюры. И устанавливаем Изображение как ссылка на - "Содержимое".
Если изображений можно загрузить более одного, в представлении будет возможность настройки множественных значений поля. Установим вывод 1-го изображения.
Теперь изображения выводятся в представлении.
Аналогично добавляем поле описания.
В диалоговом окне добавления поля попробуем отыскать необходимое поле. В сроку фильтра по полям вводим "Body" (или название поля, которое ищите Вы). Выбираем его, отмечаем и нажимаем "Применить".
Мы попадаем в уже знакомое нам меню настройки поля.
Здесь так же убираем отображение метки. А в формате выбираем "Краткое содержание или обрезанный текст". Это позволит выводить тизер материала, или сокращенную версию материала. Количество символов, до которого необходимо сократить материал можно указать. Поставим 200 символов.
Не забываем сохранить представление, для применения всех изменений (кнопка сохранения вверху страницы).
Таким образом мы настроили наше первое представление. В дальнейшем мы рассмотрим более детальные настройки полей и самих представлений.
blogpost.pp.ua
Создаем первое представление | Drupal learning
Структура представления
Каждое представление состоит из нескольких отображений (display), одно из которых является основным и называется Master (в русской локализации может называться Главное или Основной).
Все остальные отображения наследуют свою структуру от основного (Master), но при этом могут быть частично изменены. Каждое отображение имеет свой тип в соответствии с которым оно отображается на сайте. Например: страница, блок, RSS лента, слайд-шоу и т.д. Основное представление (Master) нигде на сайте не отображается и служит только для создания на его основе видимых отображений.
Во многих русскоязычных источниках и в русскоязычном сообществе Drupal представления еще называют "вьюшками", "вьюхами" или просто "вьюс", а отображения - "дисплеями". Мы на протяжении этого курса будем придерживаться терминов "представление" и "отображение".
Создаем первое представление
Настало время создать первое представление, которое заменит стандартное содержимое главной страницы. Для начала перейдем в раздел Модули и включим модули Views и Views UI:
Модуль Views UI используется только для создания и редактирования представлений через административный интерфейс. На живом сайте его можно отключить.
После включения модулей у нас в разделе Структура появился подраздел Представления. Все администрирование представлений производится в этом разделе. Перейдем в него по ссылке:
По умолчанию в этом разделе уже содержится несколько стандартных отключенных представлений.
Каждое представление может находится во включенном или отключенном состоянии. Отключенные представления отображаются серым цветом а включенные черным. Отключенные представления можно сравнить с неопубликованным материалом они есть на сайте, но их отображения недоступны.
Для того чтобы создать представление перейдем по ссылке Добавить новое представление.
Далее заполняем форму создания нового представления. Назовем его Фильмы.
Нажимаем на ссылку Редактировать и указываем машинное имя films, также заполним поле Описание.
Машинное имя используется для удобного хранения представления в базе данных, поэтому оно должно содержать только буквы латинского алфавита в нижнем регистре, цифры и знаки подчеркивания.
В выпадающем списке Показать выберем пункт Содержимое.
Каждое представление имеет базовую сущность на основе которого оно строится. Это может быть тип материалов, словарь таксономии, комментарии, пользователи и т.д. На этапе создания в поле Показать мы и выбираем эту базовую сущность. В дальнейшем ее нельзя будет изменить, но можно будет изменить типы этой сущности. Например выбрать материалы каких типов или термины каких словарей выводить.
Так как на главную страницу нам нужно выводить фильмы, то выберем соответственно тип содержимого Фильм. Порядок сортировки оставим как есть - Новые сначала.
Для удобства в форме добавления представления сразу предлагается создать два отображения: блок и страница. Заполним форму для создания отображения главной страницы:
- Заголовок страницы - в этом поле задаем заголовок страницы - Главная
- Путь - в этом поле задаем путь будущей страницы - front.
- Формат отображения - выбираем формат отображения Неформатированный список состоящий из полей.
- Элементов для отображения - задаем сколько элементов будет выводится на одной странице.
- Использовать постраничную навигацию - ставим здесь галочку, чтобы у нас на главной странице отображался постраничный навигатор.
Нажимаем кнопку Продолжить редактирование
Далее мы попадаем на страницу редактирования представлений.
На этом этапе у нас есть новое представление Фильмы с одним отображением типа Страница (Page). Сообщение подсказывает нам, что все изменения сделанные нами сохранены только временно. Это один из принципов работы с модулем Views - при создании и редактировании представлений все изменения вступают в силу только после нажатия кнопки Сохранить, а при нажатии кнопки Отменить все изменения теряются. Поэтому чтобы сохранить наше представление нажмем на кнопку Сохранить.
Теперь когда наша страница доступна по пути front установим ее в качестве главной страницы. Для этого переходим в раздел Информация о сайте.
В поле Главная страница по умолчанию задаем путь front, который мы указали при создании представления и сохраняем настройки.
Теперь перейдя на главную страницу мы видим совсем другую картину - список фильмов (по 10 на страницу) с постраничной навигацией и заголовком Главная.
В следующем уроке мы продолжим редактирование этого представления и на его основе рассмотрим работу с полями.
drupal-learning.com