У минулих уроках я розповідав, як створювати уявлення у вигляді сторінок і блоків, а також як об'єднувати їх між собою за допомогою зв'язків і настройки контекстних фільтрів. Прийшов час поговорити про агрегації.
Часто можна зустріти в інтернет магазинах, коли поруч з посиланням варто кількість матеріалів, яке знаходитися на відповідній сторінці. Цього ефекту можна досягти на друпал за допомогою агрегації в поданні. Саме його ми і розглянемо на прикладі словника «Жанр».
Стандартна форма створення вистави.
При створенні сайту я заздалегідь додав словник таксономії під назвою «Жанр» (демо сайт над якому ми працюємо описувався в першому уроці), тепер же він нам знадобиться, як джерело інформації для нашої вьюха.
Агрегація є однією з налаштувань модуля Views, тому первинним завданням для нас варто створити уявлення на основі потрібного нам матеріалу. Покроковий процес створення нової вьюха ми розглядали в минулих уроках, але для закріплення матеріалу повторимо. Наводимо на розділ «структура», який знаходиться на адміністративній панелі, знаходимо підрозділ уявлень і в випливаючим вікні натискаємо по посиланню додати.
Подальша настройка незмінна, заповнюємо поля з назвою і машинним ім'ям, нагадаю, що останнім заповнюється тільки буквами англійського алфавіту і тільки нижнім регістром. Так як наше відображення буде виводити нам терміни словника, то в графі показати ми вибираємо «термін таксономії», а в сусідній графі під назвою «типу» вибираємо необхідний нам словник, в моєму випадку це «Жанр».
Подання нам необхідно як блок, тому ставимо галочку відповідному розділі і задаємо йому назву. Формат ми вибираємо, який нам буде зручніше для виведення нашого відображення на екрані, в своєму уявлення я виберу HTML список, що складається з полів. І продовжуємо настройку нашої вьюха натисканням відповідної кнопки.
Реалізуємо підрахунок кількості матеріалів
Початкове завдання, яке перед нами стоїть, це створення зв'язку. Для цього нам потрібно треба розкрити розділ «Розширені настройки», знайти графу під назвою «Зв'язок» і натисканням посилання «Додати» розкрити вікно зв'язків.
Нам потрібно зв'язати матеріалу з терміном зі словника, тому в випливаючим вікні знаходимо поле під назвою «Термін таксономії: Матеріал з терміном», і додаємо його, ставлячи поруч з ним галочку. Нам потрібна тільки цей зв'язок, тому спокійно можна переходити в її налаштування.
Для виключення з виведення жанрів, що не містять в собі не однієї книги, поки що, ми робимо зв'язок обов'язковою. Для цього ставимо мітку на відповідному розділі і зберігаємо.
Потім необхідно додати поле, яке буде підраховувати число книг, які відносяться до того чи іншого жанру. Цю функцію виконає поле Вміст: Nid, яке ми і додамо.
Мітка нам не потрібна, тому в налаштуваннях відповідного розділу прибираємо її і зберігаємо наші настройки.
У цій статті ми плануємо розглянути функцію модуля views під назвою «Агрегація». Але для початку нам треба її включити. Це можна зробити, повернувшись в розділ «Розширені настройки» і відкрити поле під назвою «Використовувати агрегацію». За замовчуванням поруч з цим полем стоїть напис «Ні», це означає, що агрегація вимкнена. Для її включення натискаємо на «Ні» і у вікні, ставимо галочку в потрібному полі.
Після того як ми все зробили у нас з'явилася нова графа в налаштуваннях полів. Перейшовши по ній ми можемо налаштувати агрегацію для кожного конкретного поля окремо. Нам же треба налаштувати її для поля Nid, тому перейдемо за новою посилання під цим полем.
Після натискання на кнопку перед нами висвітитися вікно з настройками, в ньому ми вибираємо якого типу буде наша агрегація. У нашому випадку ми будемо підраховувати кількість книг, тому ми вибираємо тип лічильник.
Якщо все виводитися правильно, то настав час приступати до наступного етапу налаштування нашого відображення, а саме до об'єднання полів, що б у нас вийшло одне поле загорнута в посилання, яка буде ввести на сторінку терміна.
об'єднуємо поля
Що б втілити нашу задумку нам потрібні ще два поля, які називаються, Термін таксаноміі: id терміна, і «Глобальний. призначений для користувача текст ».Первое з яких нам необхідно що б створити посилання веде на сторінку. а в друге для відображення інформації у вигляді тексту. крім того вона буде обгорнута на заслання.
Так як ми включили агрегацію після додавання полів Drupal, нам крім основних налаштувань також налаштування агрегації.
Для глобального поля, в настройках агрегації нам не чого змінювати не треба, з цього просто натиснемо на кнопку застосувати.
А в основних налаштуваннях прибираємо галочку з створення мітки і зберігаємо налаштування.
Для поля Термін таксономії, ми також не зраджуємо настройки агрегації і сміливо переходимо в основні настройки.
У них ми виключаємо дане поле з виведення, для цього ми ставимо галочку на розділі «Виключити з виведення». Завданням цього поля є сформувати для нас посилання, за цим на екрані воно нам не потрібно. І застосовуємо наші настройки.
Після всіх налаштувань ми повинні виключити з виведення все поля залишивши тільки «з власним текстом». Це ми робимо тому що поля нам потрібні в якості інформації та шаблонів, які ми будемо застосовувати в які залишилися поле, завдяки чому нам треба їх прибрати з виведення, але не видаляти. Для цього нам необхідно зайти на кожне поле і поставити галочку на «Виключити з виведення».
Наступне, що нам потрібно зробити, після того як ми виключили поля з виведення, це розставити їх в необхідному, а точніше буде сказати в правильному для нашого випадку, порядку. Натискаємо на трикутник, який знаходиться поруч з кнопкою Додати і вибираємо «Змінити порядок».
Порядок ми повинні виставити так, щоб поле «Глобальний текст» був нижче всіх інших. Це необхідно не для виведення полів в правильному порядку, так як інші поля у нас приховані, а для того що б дане поле могло містити в собі підстановочні шаблон всіх полів уявлення.
Після того, як ми виставили в правильному порядку наші поля прийшов час налаштувати «власним текстом».
Свої налаштування почнемо з заповнення поля «Текст». Для коректного заповнення відкриємо графу підстановочні шаблони і виберемо з них необхідні для нас. У своєму випадку я буду використовувати шаблон [name], для того щоб вивести назву терміна таксаноміі, і [nid] який відповідає за виведення поля має це ж назву (Nid). Нагадаю що поле Nid. в нашому випадку, відповідає за кількість книг прив'язаних до того чи іншого терміну словника «Жанр».
Далі відкриваємо розділ «перезаписати РЕЗУЛЬТАТИ», а в ньому ставимо галочку поруч з «Виводити це поле у вигляді посилання». В описі даного розділу зазначено що шлях для Посиланням ми повинні заповнити в поле, яке знаходиться нижче. Тому в поле Шлях посилання заповнюємо book-ganre / [nid].
Поле «Термін таксономії: Ім'я», є посиланням на термін, і перебиває настройки які ми тільки що робили в графі «перезаписати результати». Для того, що б наша робота не пішла нанівець, нам просто потрібно перейти в настройки цього поля і прибрати галочку з відповідного поля.
Після чого можна зберігати наше уявлення.
Заключним етапом є висновок блоку куди ми захочемо. У своєму випадку я виведу його під найпопулярнішими книгами в бічній панелі своїй сторінці.
Подальша тимізації блоку йде за допомогою CSS. Але за допомогою модуля Views і його функції «агрегація» ми створили досить таки симпатичний і інформативний фільтр, який часто зустрічається на просторах інтернету.
Забігаючи на перед зазначу, що пройшовши цей урок ми створили лише блок з термінами таксаноміі, а самі сторінки на які ведуть ці терміни ми будемо створювати пізніше, тому не лякайтеся якщо перейшовши на сторінку вас зустріне повідомлення «Сторінку не знайдено».
Оцінок: 5 (середня 4.8 out of 5)