Создание и управление списками содержания.
Многие люди считают этот модуль непонятным. Лично я думаю, что на самом деле им довольно легко пользоваться если вы однажды поняли как он работает.
Руководство по Views — это перевод статьи A beginners Guide to Using Views with Screenshots (a.k.a. Making an archive using Views) с сайта drupal.org.
Это очень простое введение рассказывающее как сделать на странице таблицу которая должна показывать список документов, документы полностью и т.д. Этот урок даст вам базовое понимание и дальше вы уже сами сможете делать то, что вам нужно. Я использовал такую страницу на своём сайте про комиксы — fingazandteeth.com, чтобы вывести список комиксов из архива и такая страница с этим хорошо справляется. Views — это очень мощный и удобный модуль, он очень хорошо подходит для настройки того, что и как вы хотите показать на странице.
Ниже приводится картинка на которой я постарался показать как работает Views.
На приведённом примере Views выводит все заданные документы и показывает только их названия, и только если документ опубликован.
Краткий обзор того, как будет выглядеть страница
Следующая картинка показывает как выглядит страница на моём сайте. Это таблица, в ней показываются названия документов, дата создания и сколько голосов отдано за документ. Также список упорядочен по дате последнего обновления и показывается по 10 документов на странице.
Теперь мы займёмся созданием нашей страницы. Перейдите по ссылкам Administer → Site building → Views и нажмите вкладку Add.
Раздел Basic Information
Теперь вы находитесь на странице создания видов. Первое с чего начнём, с раздела Basic Information. Каждый раздел на странице создания видов может быть свёрнут или развёрнут если нажать мышкой на его названии. В разделе Basic Information мы дадим новому виду название, это название быть уникальным. В своём примере я назвал его Archive.
Далее надо указать роли которым вы хотите дать доступ к этому виду. Я разрешил доступ всем пользователям отметив птичками оба поля Access.
Далее идёт поле в котором можно написать описание для вида. Это описание предназначается только для администраторов сайта и будет показываться на странице Administer → Site building → Views. Сюда я вписал: An archive list. На следующем рисунке вы можете увидеть как я заполнил этот раздел.
Как все будет выглядеть — разделы Page и Block
Теперь нам нужно решить как будет выглядеть страница с нашим видом. Можно настроить вид для страницы и вид для блока. Сначала мы обсудим вид страницы.
Виду страницы надо задать URL и определить как на этой страницы будут показываться документы. В моём примере URL — archive, поэтому я поставил птичку в поле Provide Page View (оно над полем URL) и вписал его в поле URL. Затем, мы должны в поле View Type выбрать то, как будут показываться документы на странице. Это могут быть документы полностью, список кратких содержаний документов, таблица, список или RSS. Если вы выберите список, то будут показаны те поля, которые будут выбраны в следующем разделе, например, мы можем показать мой архив как список (смотрите рисунок ниже) или как таблицу. Если выбрать краткое содержание, то будет выводиться список документов с их кратким содержанием.
В своём примере я использовал табличный вид. Для этого из раскрывающегося меню я выбрал Table View. Теперь можно задать название страницы в поле Title. Я назвал страницу — Comic archive, вы можете снова посмотреть рисунок, чтобы увидеть как это выглядит. Также я отметил поле Use Pager, что позволит использовать деление списка на страницы, и в поле Nodes per Page я вписал значение 10. Таким образом, если у меня будет больше 10 документов для показа, то внизу страницы появиться ссылка Next page.
Вы наверняка заметили, что в разделе Page находятся несколько вложенных разделов: Header, Footer, Empty Text и Menu. Для этого примера они не потребуются, но если вы буде использовать их для своих работ, то вы можете писать в них текст, вставлять HTML код (если захотите показывать картинки, баннеры, Flash и т.д.) и PHP-код.
Empty text — это то, что будет показано, если вид не найдёт никаких документов для показа. Если бы у меня не было никаких комиксов, то была бы выведена информация из этого раздела. На рисунке ниже вы можете посмотреть какие настройки я задал в разделе Page.
Теперь перейдём в раздел Block. Он используется для создания блока, скажем, если бы мы хотели видеть 3 последних комикса в блоке ниже главного меню. В примере я не использую блок, но если хотите, то вы можете отметить поле Provide Block. Здесь также есть выпадающий список для выбора того, как вы хотите показывать документы в блоке. Title — это название блока, а Nodes per Block — количество документов в блоке. Если я хочу видеть 3 моих последних комикса, я должен ввести 3. Поле [More] Link? добавит ссылку на страницу с нашим видом.
Другие вложенные разделы выполняют те же функции как и в разделе Page. На рисунке ниже показано как выглядит раздел Block.
Какая информация будет выводиться — разделы Fields, Arguments
Раздел Fields — этот тот раздел в котором вы начинаете понимать всю мощь этого модуля. В этом разделе вы вероятно найдёте много вариантов в выпадающем меню, в зависимости от того, какие модули у вас активированы. Если вы имеете модули интегрированные с модулем Views, вы вероятно найдёте и их в этом списке. Здесь так много вариантов, что я не собираюсь описывать их все.
То, что я хочу в этом списке — это название документа, таким образом выберите его из выпадающего списка и нажмите кнопку рисунке. В колонке Option я выбрал As link, чтобы название моего документа в списке было ссылкой на него. В колонке Sortable можно выбрать Yes или No. Если вы выберите Yes, то пользователи смогут сортировать вывод документов по их названию. В следующей колонке Default Sort задается правило для сортировки: по возрастанию или по убыванию. Колонка Ops позволяет удалить поле или изменить порядок вывода полей, перемещая их вверх или вниз.
. Выше выпадающего меню появиться добавленный вами пункт. В поле Label вы можете написать название колонки которое будет выводиться для выбранного пункта. В поле Add Field я выбрал Node: Title, а в Label написал — Title. Можете посмотреть это наЗатем я добавил поле Node: Created Time и установил для него Label — Posted on. Можете снова посмотреть на рисунок. А в колонке Handler выбрал As Custom Date. Вы можете выбрать в каком формате показывать дату введя параметры в колонке Option: кратком, среднем или полном. Я ввёл: M d, Y. Также я сделал это поле доступным для сортировки и сделал его активным по умолчанию при сортировке по убыванию, т.к. хочу чтобы последний добавленный комикс показывался вверху таблицы.
Затем я добавил Voting API: Voting Results, чтобы показывалось сколько голосов отдали за данный комикс, а также сделал поле доступным для сортировки, наверняка кто-нибудь захочет отсортировать документы по отданным за них голосам. Таким образом, я вписал в Label — # of Points (снова отправлю вас к рисунку, чтобы увидеть как это выглядит на странице) и на странице своего вида я сделал это поле последним опустив его вниз в списке. Смотрите рисунок ниже, чтобы увидеть как выглядят все эти настройки.
Они используются если вы хотите добавить некую функциональность виду или задать ему определённый путь.
Фильтры и сортировка
Фильтры используются чтобы задать более детальные настройки для вида вообще и полей заданных в разделе Fields в частности.
В моём примере все комиксы имеют тип документа — image, таким образом я хочу показать документы только этого типа. Первое поле которое я добавил — Node: Published, это не обязательно, но рекомендуется, потому что мне интересно показать только опубликованные документы этого типа, без тех, которые лежат в запасниках. Выберите оператор Equals, а значение для него Yes.
Вы наверняка заметили кнопку Exposed Filters, назначение которого мы обсудим ниже.
. Нажатие на эту кнопку приведёт к добавлению фильтра в следующий раздел —Далее я добавил фильтр Node: Type. Этим фильтром я хочу определить тип документа для показа, а именно — документы типа image. Таким образом я оставил оператор Is One Of и выбрал в колонке Value тип image. Если я захочу показывать все документы исключая тип документа image, я выберу If None Of.
Удерживая кнопку Ctrl можно выбрать несколько типов. На рисунке ниже, можно посмотреть какие настройки я сделал в этом разделе.
Эти фильтры показываются на странице вида пользователю. Например, если бы в разделе Filters вы выбрали для показа все типы документов (page, mail, image, node) и нажали бы для фильтра Node: Type кнопку , то разрешили бы пользователям самим выбирать тип документа из раскрывающегося меню.
Это критерии сортировки по умолчанию.
Заключение
Надеюсь, что после прочтения этого руководства вы поняли как работает этот модуль и больше нигде нельзя будет услышать: «Э-э-эх, как же работает этот Views?». Имейте ввиду, что это руководство даёт лишь общие представления и не раскрывает полную мощь этого модуля, к тому же, постоянно появляются новый модули расширяющие базовые возможности Views.
Если вы хотите вживую увидеть страницу, создание которой здесь описывалось, то можете перейти по этому адресу и поиграться с ней: fingazandteeth.com/archive
Комментарии
А как с помощью этого модуля повыводить, скажем по одному последнему блогу от каждого пользователя? Протыкался - не нашел. Сортировка, фильтры есть, а обрезка по количеству или хотя бы уникальности по параметру (UID) не нашел. Помогите плиз
Огромное вам спасибо за статью! Очень помогла!!!!
С горем пополам получилось разобрался в Views 6.x-2.2 :))
Очень полезная статья, большое спасибо!!!
Скажите пожалуйста - а как именно вставить потом php код в код моего модуля ?
если и я правильно понял то с помощью этого элемента создана страница Модули.
категории реализованы с помощью чего-то вроде Раздел Exposed Filters. Сами статьи выведены как: список кратких содержаний документов или таблица.
Интересно как появился алфавитный показчик? Где-то я видел модуль который автоматом создает такое решение!) Надо будет его еще раз поискать.))))
А в обще, я так точно, с радостью на еще одном примере послушал как этим пользоваться (напрашиваюсь на совет по созданию такого показчика как на этом сайте, мне пригодится, как раз в тему, ну или хотя б пните в нужном направлении!))))
С видами удобно разбираться смотря на то, что как сделано уже в готовых, вроде Calendar или в сборках, вроде Drupal Commons (блок пользователя). Здесь алфавит вбит вручную, а для его работы используются аргументы.. Примеры можно посмотреть включив виды, которые включены в пакет, но отключены по умолчанию tracker, popular, glossary.
Будем разбираться,
если что я еще приду с глупыми вопросами (глуп только тот вопрос который не задан).))))
Спасибо, за перевод.
Руководство по Views — это перевод статьи A beginners Guide to Using Views with Screenshots (a.k.a. Making an archive using Views) с сайта drupal.org.
Ссылку на drupal.org поправьте)