Views — це один з найбільш популярних модулів Drupal з більш ніж 5 мільйонами завантажень і понад 700 тисяч сайтів, які повідомляють про його використання. Модуль настільки популярний, що буде представлений в ядрі Drupal 8, як частина анонсованих і очікують представлення ініціатив в процесі запуску Drupal 8.

Це вступна стаття по всьому світу Views, яка розповість про те, як ви можете використовувати цей модуль для створення списків контенту.

У статті я розповім про декілька більш дрібних тем, що стосуються Views. По-перше, я розповім, як почати роботу з модулем, і як створити змію. Після цього ми розглянемо, які списки і формати вмісту доступні в базовій версії.

Після того, як ми виберемо, як буде виглядати наша змія, нам потрібно буде розібратися з фільтрами і сортуванням. Ці параметри використовуються для того, щоб забезпечити виведення тільки відповідного контенту і в тому порядку, що нам потрібно.

Звучить цікаво, чи не правда?

Давайте приступимо.

Приступаємо до роботи

Встановлюється Views, як будь-який інший модуль. Я не буду описувати вам процес встановлення модулів Drupal, а просто порекомендую ознайомитися з повним керівництвом на Drupal.org.

Якщо ви знаєте, як працювати з Drush (з яким я всім серцем рекомендую вам спробувати попрацювати), ви можете запустити дві прості команди:

drush dl views
drush en views views_ui -y

Після цього будуть завантажені і включені всі необхідні модулі (в тому числі CTools, який залежний від інших елементів).

Тепер, коли ми встановили Views, ми можемо перейти до пункту меню admin/structure/views, щоб побачити всі існуючі на сайті в’юшки.

Ви помітите, що за деякими поставляється в комплекті вьюшкам видаються помилки. Ми не будемо зараз вдаватися в подробиці, просто знайте, що вони є. Головна сторінка і Терміни таксономії особливо цікаві тим, що вони показують поведінку Drupal за замовчуванням.

Далі я хочу створити в’юшку і налаштувати її, щоб показати, як ви можете почати роботу з нею. Так що продовжуємо і натискаємо кнопку «Add new view». Після цього нам пропонується форма створення в’юшки:

Тут ми поставимо назва в’юшки, а також вже можемо встановити фільтр, який визначає, якого роду інформація буде виводитися у в’юшки.

Для демонстрації ми виберемо тип Content (матеріал), але ви бачите, що тут доступні і інші типи (терміни, користувачі і т. д.). Зверніть увагу, що вибір, який ви зробите в цьому полі, згодом не може бути змінений.

Тому після визначення типу Content пізніше нам будуть доступні тільки опції, які відповідають цьому типу. Зараз давайте виберемо опцію Article, але знайте, що цей параметр може бути згодом змінений.

Крім того, оскільки ми вибрали тип контенту Article, який має поле Tags, яке пов’язане з термінами таксономії в однойменному словника, ми можемо на основі цього поставити ще один фільтр.

Зараз ми цього робити не будемо, просто відзначаємо, що можемо це зробити (і зараз, і пізніше при редагуванні в’юшки).

І, нарешті, ми можемо відсортувати список доступних на даний момент критеріїв. Але цього ми теж поки робити не будемо.

Дисплей сторінки

Нижче полів вводу, які ми тільки що розглянули, знаходяться ще два поля, які дають нам можливість створити сторінку і блок. Вони служать для швидкого доступу до створення дисплеїв для нашої в’юшки.

Будь-яка змія може містити кілька дисплеїв різних типів (сторінка, блок, відгук тощо). Деякі з них доступні в базовій версії, а деякі надаються додатковими модулями.

Тому ви можете створити одну змію, яка може відображати один і той же контент кількома способами, використовуючи різні формати, фільтри і т. д.

У цій статті ми будемо використовувати дисплей Сторінка, який створимо на наступному етапі (саме так процес налаштування відбуватиметься у вас). Так що залиште ці два поля незаповненими, і натисніть кнопку Продовжити та редагувати».

Ви потрапите на головну сторінку редагування в’юшки, де я рекомендую вам натиснути кнопку «Зберегти», так як до того, як ви це зробите, змія ще не буде збережена.

Вгорі цієї сторінки ви побачите вікно Displays, в якому вже буде містити один дисплей під назвою Master. Ми хочемо створити сторінку, адреса якої виберемо із запропонованого списку.

Тому натисніть кнопку Add, виберіть пункт Page і введіть нове ім’я дисплея. Далі ви можете вибрати назву сторінки, натиснувши на слово None нижче поля Заголовок.

Тут слід зазначити одну важливу річ, яка стане в нагоді вам і в майбутньому. При внесенні змін, як ті, які ми тільки що зробили, вам буде запропоновано на вибір застосовувати це зміна тільки до поточного дисплею або для всіх інших (дивіться малюнок нижче).

Ви повинні бути обережні, тому що за замовчуванням використовується опція All displays. Це легко забути, і у вас можуть виникнути проблеми, якщо ви маєте кілька дисплеїв. Так що майте це на увазі, і переконайтеся, що ви змінюєте дисплеї, які вам потрібні:

Введення в Views 3 в Drupal 7

Перш, ніж перейти до інших налаштувань, ви повинні будете вказати шлях до сторінки в’юшки. Views повинен буде зареєструвати його в Drupal і не дозволить вам без цього зберегти змію.

Так у налаштуваннях сторінки натисніть поле, в якому зараз виводиться напис No path is set та вкажіть адресу сторінки. Після цього ви можете помістити його в меню і вказати правила доступу до сторінки.

Формат

В панелі Формат міститься кілька важливих параметрів, які визначають, як буде відображатися змія, і що конкретно з контенту буде відображатися.

У базовій версії існує кілька варіантів формату, які ви можете вибрати (і деякі налаштування для кожного з них), але ми зараз будемо використовувати стандартний варіант: неформатований список.

Це самий простий формат, ви можете пограти і поекспериментувати з іншими варіантами формату.

Тепер, коли ми вибрали формат, давайте подивимося, як же насправді будуть форматуватися елементи. За замовчуванням, це поля.

Це означає, що ви вибираєте кількість полів Drupal (або організацію параметрів, або поля, оголошені за допомогою користувальницького інтерфейсу), і вони будуть відображатися для кожної статті.

Вибравши дану установку, ми продовжимо. Я тільки хочу згадати ще про одну опції, доступної в Views: content.

Кожному типу вмісту в Drupal 7 відповідає декілька режимів відображення (повний, тизер, RSS тощо). За допомогою модуля Display Suite ви можете задати інші режими. І для кожного режиму відображення ви можете вказати окремий спосіб відображення полів.

Наприклад, у вас буде один стиль зображень для зображень у тизері, а в режимі повного перегляду іншого.

Це те, чим параметр content відрізняється від fields. Ви можете вибрати матеріал, який буде відображатися з використанням певного режиму відображення.

І це дає вам великі можливості. Але давайте повернемося до полів, тому що це той параметр, який в світі Views відповідає за підготовку виведення кожного рядка.

Поля

Тепер, коли ми дійшли до налаштування полів, ми можемо бачити в області попереднього перегляду у нижній частині сторінки список заголовків статей.

Тому, що за замовчуванням Views обов’язково включає полі заголовка, і тому необхідно вибрати хоча б один заголовок. Щоб додати інші поля, натисніть кнопку Add. У діалоговому вікні вам буде запропоновано вибрати інші поля для додавання.

Різні типи полів мають різні доступні опції, але, на жаль, ми не можемо розглянути їх усі. Давайте поставимо собі певне завдання і постараємося його виконати: створити тизер матеріалу статті, в якому виводиться заголовок, коротка витримка і зображення.

Давайте знайдемо поля за замовчуванням для короткого опису та зображення, які доступні для типу вмісту Стаття. Вони позначаються, як Content: Body і Content: Image, так що поставте поруч з цими полями прапорці і застосуйте зміни.

Налаштовувати обидва цих поля вам доведеться по черзі. Для демонстрації ми можемо зняти прапорець Create a label і в меню Форматування вибрати пункт Summary or trimmed, і тут же, якщо хочете, ви можете вказати власне значення довжини витримки-опису.

Наступні три випадають панелі опцій дозволяють задати більш просунуту налаштування, вони доступні і для більшості інших типів полів. Ми не можемо розповісти про них повністю, але постараємося описати їх коротко.

У розділі Style settings можна задати настройки HTML для цього конкретного поля. У розділі No results behavior ви можете вказати, що буде виводитися в полі, якщо для нього нічого не вказано.

А в розділі Rewrite results доступно багато варіантів для оформлення відображуваного контенту. Тут Ви можете задати злиття полів, висновок посилань, тегів та інші опції.

Після того, як ви призначите формат для витримки, вам потрібно буде повторити все це для поля зображення. Я пропоную вам знову прибрати прапорець у пункті Ярлик, і, так як ми хочемо, щоб зображення виводилося у тизері, давайте виберемо стиль зображень Мініатюра.

Ми також можемо зв’язати зображення з контентом. Після збереження цих параметрів подивіться, як виглядає ваш тизер на попередньому перегляді. Ви повинні побачити заголовок, витримку статті та зображення для кожної статті матеріалу.

Якщо ви хочете змінити порядок розташування полів, натисніть на маленьку стрілочку поруч з кнопкою Add і виберіть пункт Rearrange. Після цього ви можете перетягуванням розташувати елементи в потрібному вам порядку.

Хоча це далеко ще не всі налаштування, які ви можете зробити — існує ще багато опцій редагування і стилів, які потрібно задати для будь-якого реального сайту, але необхідний мінімум ми вже виконали і можемо рухатися далі.

Фільтри

Нижче розділу Fields, розташовується розділ Filter criteria, який вже містить два фільтра (ви можете натиснути на них і подивитися варіанти).

Перший фільтр відноситься до статусу матеріалу і виводить тільки опублікований контент. Другий фільтр пов’язаний з типом вмісту і показує тільки матеріали типу article. Тут ми можемо змінити фільтри або включити інші типи вмісту.

Також тут є можливість дозволити кінцевим користувачам змінювати фільтри. Для цього потрібно встановити прапорець для опції Expose this filter visitors to, to allow them to change it.

Так, наприклад, якщо ми захочемо, щоб кінцеві користувачі могли вибирати, які типи контенту повинні виводитися, ми можемо включити цю функцію.

В розділі Advanced в правій частині сторінки ви також можете додати контекстні фільтри. Це дуже потужний інструмент, що дозволяє застосувати фільтри динамічно по всьому сайту, для конкретних сторінок або для іншої частини вмісту.

Це додаткова функція, яку ми не будемо розглядати докладно, але майте на увазі, що вона існує.

Сортування

У розділі Sort criteria можна додати поля, які будуть використовуватися для сортування в’юшки. Давайте додамо можливість пошуку за датою публікації матеріалу (Content: Post date), щоб можна було виводити список матеріалів у порядку убування.

Майте на увазі, що ви також можете надати можливість задавати ці поля кінцевим користувачам, і нехай вони виконують свою власну сортування.

Висновок

Ну, ось і все. Ми зібрали просту змію, що відображає основну інформацію про статтях, опублікованих на сайті. При цьому ми розглянули, як створюється змія, і які можливості є у нас для визначення її формату.

Ми розглянули різні дисплеї і створили власну сторінку, яка виводить змію. Ви також побачили, як можна додавати поля і в чому полягає різниця між полями і контентом, коли це стосується зображень.

І, нарешті, ми розглянули основні фільтри та критерії сортування і те, як вони працюють.

На жаль, ми лише побіжно торкнулися теми міркувань. Як досвідчений користувач Views я відчуваю, що в статті не були розкриті всі потужні можливості цього модуля.

Він дійсно дуже складний, і ті дії, які ми виконали, лише частково демонструють все різноманіття його функціоналу. Але ви повинні почати з основ і зрозуміти основні концепції, перш ніж переходити до вивчення більш захоплюючих можливостей Views.

Цей модуль має ще багато інших функцій і опцій, які дійсно роблять його незамінним для майже будь-який сайт на Drupal. Тому я раджу витратити час на вивчення Views, якщо ви хочете працювати з Drupal ефективно.

Переклад статті «Introduction to Views 3 in Drupal 7» був підготовлений дружною командою проекту Сайтостроение від А до Я.