Але цей модуль вкрай не продуктивний, особливо неповороткий і працює з помилками.
Наш лічильник буде вміти:
Все це ми реалізуємо без володіння мовами програмування.
Крок 1. Встановлення необхідних модулів
Нам знадобиться встановити наступні модулі:
Встановлюємо їх в папку sites / default / files. переходимо на сторінку включення модулів (admin / modules) і включаємо наступні:
Запускаємо cron, чистимо кеш (про всяк випадок) і переходимо до наступного розділу.
Крок 2. Налаштування матеріалу
Налаштуємо наш матеріал. Для цього перейдемо на сторінку управління полями.
Додаємо наступні поля:
В налаштуваннях вказуємо поле обов'язковим для заповнення, мінімальне значення "0" і значення за замовчуванням "0". Скріншот налаштувань.
В налаштуваннях так само вибираємо поле обов'язковим для заповнення. У додаткових налаштуваннях прибираємо положення міток частині дати і встановлюємо значення за замовчуванням "Сейчас". Обробка часового поясу ставимо "Без обробки часового поясу". Скріншот налаштувань.
Зверніть увагу, якщо Ви плануєте вважати статистику кількох типів матеріалу - потрібно додати ці ж поля в кожному з них.
Наш матеріал готовий, перейдемо до наступного кроку.
Крок 3. Створення правила
Додаємо нове правило
Переходимо на сторінку admin / config / workflow / rules і створюємо правило:
![Створюємо лічильник переглядів матеріалу, blogpost (створюємо) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-4029d30c.png)
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow rules) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-3fa3cd38.png)
Наше правило створено, перейдемо до його налаштуванні.
У блоці "Умови" встановлюється перевірка матеріалу на відповідності певним умовам. Додамо кілька перевірок:
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow rules) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-39453e86.png)
Перевіряємо роль користувача
Вибираємо умова "Користувач має роль (і)".
![Створюємо лічильник переглядів матеріалу, blogpost (лічильник) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-e67a67cf.png)
На сторінці, в селекторі даних вибираємо site: current-user.
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-16fd2222.png)
У наступному блоці вибираємо роль користувача Анонімний користувач.
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow rules) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-79f833c5.png)
У селекторі даних вибираємо node
![Створюємо лічильник переглядів матеріалу, blogpost (створюємо) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-aba8c944.png)
Цих умов нам вистачить для виконання нашого завдання. Якщо Вам потрібно робити більш детальну перевірку - додавайте свої.
Назва блоку "Дії" говорить сама за себе. Сюди будемо додавати дії, які потрібно буде виробляти якщо вищевказані умови будуть дотримані.
Додамо нову дію.
![Створюємо лічильник переглядів матеріалу, blogpost (лічильник) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-c829fc23.png)
Вибираємо зі списку "Обчислити значення".
В налаштуваннях дії, в селекторі Вхідне значення 1 вибираємо наше поле "node: field-counter-total".
![Створюємо лічильник переглядів матеріалу, blogpost (матеріалу) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-23d94d4d.png)
Вхідне значення 2 вказуємо "1"
Додаємо дію "Обчислити значення" ще раз.
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow rules) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-cc05a333.png)
Встановлюємо обчислені значення лічильника
Додаємо дію "Установити значення".
У селекторі вибираємо "node: field-counter-total".
![Створюємо лічильник переглядів матеріалу, blogpost (створюємо) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-44ddf334.png)
У блоці Значення перемикається в режим вибору даних.
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow rules) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-8ff412db.png)
І вибираємо нашу змінну "total".
![Створюємо лічильник переглядів матеріалу, blogpost (лічильник) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-74299a29.png)
Ну і як значення додаємо змінну "today".
Значення зберегли. Йдемо далі.
Додаємо знайоме нам дію Встановити значення.
У селекторі вибираємо "node: field-counter-date".
![Створюємо лічильник переглядів матеріалу, blogpost (створюємо) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-71ddbdbc.png)
Далі, як значення встановлюємо поточну дату ( "now").
![Створюємо лічильник переглядів матеріалу, blogpost (матеріалу) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-b2c432f2.png)
У цьому нам знову допоможе модуль Rules, тепер уже зі зв'язкою з VBO.
Додаємо уявлення VBO
Перейдемо на сторінку створення уявлень (admin / structure / views / add) і додамо уявлення з наступними параметрами:
Зберігаємо уявлення і переходимо до додавання полів.
В принципі, поля нас не особливо цікавлять, тому ми не будемо нічого там правити, тільки ось додамо поле VBO:
![Створюємо лічильник переглядів матеріалу, blogpost (матеріалу) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-36886902.png)
Знаходимо поле "Масові операції: Вміст" і додаємо його в уявлення.
![Створюємо лічильник переглядів матеріалу, blogpost (лічильник) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-23858520.png)
Налаштування можна ніякі не вносити, просто зберігаємо поле.
У блоці "Постранічний навігатор" вибираємо в налаштуваннях відображення всіх елементів.
![Створюємо лічильник переглядів матеріалу, blogpost (створюємо) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-e55bbfb8.png)
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow rules) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-9ee6b360.png)
Тепер додамо пару своїх фільтрів.
![Створюємо лічильник переглядів матеріалу, blogpost (створюємо) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-8f052107.png)
В налаштуваннях фільтра вибираємо:
![Створюємо лічильник переглядів матеріалу, blogpost (створюємо) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-6c2d2469.png)
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-ab1e6cad.png)
- Date selection form element - "Текст"
- Filter granularity - "День"
![Створюємо лічильник переглядів матеріалу, blogpost (матеріалу) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-439a9799.png)
Тиснемо "Застосувати і продовжити"
- Оператор - "Менше або дорівнює"
- У СЕЛЕКТА вибираємо "Enter a relative date"
- В з'явилося поле вводимо "yesterday"
![Створюємо лічильник переглядів матеріалу, blogpost (лічильник) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-60c9158a.png)
Перейдемо на сторінку компонентів (admin / config / workflow / rules / components) і додамо новий компонент:
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow rules) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-80658d9a.png)
В якості плагіна компонента вибираємо "Правило".
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow rules) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-a2b1c89a.png)
- Ім'я - "Обнулення лічильника за сьогодні"
- Машинне ім'я - "null_today_counter"
- Змінні (Тип даних) - "Матеріал"
- Змінні (Метка) - "Нода"
- Змінні (Машинне ім'я) - "node"
- Змінні (Використання) - "Параметр"
На сторінці компонента додаємо умова "Тип матеріалу".
Додаємо дію "Установити значення".
У селекторі даних вводимо значення "node: field-counter-today".
Як встановлюється значення пишемо "0" і зберігаємо дію. Скріншот налаштування.
Додаємо правило обробляє список VBO
Переходимо на сторінку додавання правил (admin / config / workflow / rules) і створюємо нове з наступними параметрами:
Зберігаємо правило і додаємо нову дію "Завантажити список ID сутностей з VBO view"
Аргументи не задаємо.
В налаштуваннях змінних пишемо:
- Мітка змінної - "Список матеріалів"
- Ім'я змінної - "node_list"
І зберігаємо налаштування. Скріншот налаштувань.
Тепер додаємо цикл по витягнутим Нодаме:
Як циклу вибираємо node-list. і зберігаємо налаштування.
Додаємо дію в цикл:
![Створюємо лічильник переглядів матеріалу, blogpost (admin config workflow rules) Створюємо лічильник переглядів матеріалу, blogpost](https://images-on-off.com/images/148/sozdaemschetchikprosmotrovmaterialablogp-71c573e1.png)
Дія "Витягти сутність по ID". Як значення вибираємо матеріал.
Блок "Ідентифікатор" перемикаємо в режим вибору даних, і в селекторі вводимо "list-item".
Додаємо ще одну дію в цикл. Вибираємо створений нами компонент правил (в кінці списку, в блоці "Компоненти") "Обнулення лічильника за сьогодні".
У селекторі даних вводимо "entity-fetched" і зберігаємо дію.
Головне тепер налаштувати запуск Cron на сервері, хоча б раз на добу.
Не впевнений що в правилах можна отримати IP поточного користувача. Таке хіба-що програмно робити.
Та й IP вже давно не показник унікальності користувача. Більш правильно звіряти по сесії / кукам, чого Rules не дозволяє реалізувати штатними засобами.
ЗИ - дякую за позитивну оцінку, але матеріал розрахований більше як показ можливостей Rules'ов, ніж робоче рішення.