Категорії

Гнучке сортування матеріалів за допомогою модуля Radioactivity

03.04.2014
Автор:

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

Ми розкажемо про один із варіантів вирішення такої задачі, яким ми скористались.

Уявімо, що у нас є блог із цікавими та пізнавальними статтями, які люди читають, залишають коментарі та оцінюють (нехай функціонал оцінки реалізовано за допомогою модуля Fivestar). І ось виникає потреба відображати ці блоги користувачам в такому порядку, щоб нові виводилися першими, але при цьому популярні матеріали не губилися далеко внизу. Для таких випадків чудово підходить модуль Radioactivity. У ньому є абстрактна величина - “Енергія”, за допомогою якої і визначається порядок відображення матеріалів. Базово модуль дозволяє налаштовувати збільшення та зменшення енергії при наявності або відсутності переглядів матеріалів. Крім того, завдяки вбудованій інтеграції з модулем Rules можна значно розширити правила впливу енергії.

Налаштувати модуль, після його встановлення, можна перейшовши за адресою admin/structure/radioactivity.

radioactivity module settings

При додаванні поля типу “Radioactivity” до матеріалу ми можемо обрати профіль налаштувань для нього. Очевидно, що правила зростання та спадання енергії для користувачів і матеріалів будуть різними, тому нам надано можливість для кожного поля використати унікальний профіль.

Давайте розглянемо, як можна створити новий профіль із власними налаштуваннями. Для початку натискаємо кнопку +Add.

radioactivity profile creation

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

Всього є три типи профілів:

Simple - модуль буде лише додавати або віднімати кількість енергії, тобто працювати як лічильник;

Basic - цей тип дозволяє налаштувати час піврозпаду, вибір обмежується шістьма годинами, днем, двома днями, тижнем і місяцем;

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

Однак цих налаштувань ще недостатньо. Для повноцінної роботи необхідно виконати ще декілька дій:

1. Створити поле для типу вмісту, обрати профіль налаштувань і встановити рівень енергії, який буде додаватися до нового матеріалу.

2. Створити нове представлення (View) для матеріалу, або модифікувати вже існуюче, додавши поле енергії до критеріїв сортування; додати декілька полів (nid, title, radioactive energy) і налаштувати сортування за спаданням рівня енергії.

Особливу увагу варто приділити параметру виведення поля Energy у представленні. Модуль пропонує кілька варіантів його визначення. Найпопулярніші серед них: числове та відсоткове значення.

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

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

Енергія = Енергія’ * кількість зірок Fivestar.

Де Енергія’ - це попередній показник енергії.

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

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

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

Голосів: 1 Рейтинг: 5

Також по темі

1

Зміни в Drupal 8, окрім усього іншого, торкнулися процесу створення власних віджетів і форматтерів. Новий плагін API значно спрощує цю процедуру.

2

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

3

У своїй практиці ми досить часто використовуємо Git Flow модель роботи з репозиторієм. Схема роботи з якою більш детально описана нижче.

4

Продовжуючи розгляд можливостей модуля Panels, в цьому блозі мова піде про створення власного контексту за допомогою Chaos tool suite.

5

При розробці збірки CommerceBox у нас виникло питання, як зберігати у фічі певний функціонал для apps. Метод Feature Injection вирішує цю проблему.  

Давайте обговоримо ваш проект у всіх деталях

Шукаєте хороших Drupal-розробників? А ми тут! Яким би ви хотіли бачити проект своєї мрії? Зв’яжіться з нами і розкажіть про це. Із задоволенням втілимо вашу мрію в життя!

Приєднуйтесь до людей, які вже підписалися!

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

Відпишіться у будь-який час