Модуль поиска по контенту сайта в зависимости от установленных пользователем куков

+7
1.46K
Коллеги. Сердечно поздравляю всех пользователей InstantCMS c народным праздником Победы. Желаю всем счастья, здоровья и процветания.
Пару месяцев назад я опубликовал запись с исправлением кукисов, которые никак не хотели работать на сборке v. 1.10.7.006 от 10 января 2019 г.
Кукисы я исправил, теперь пришел черед модуля, который эти кукисы, установленные пользователем, использует для поиска в контенте сайта.
Я не успел выпустить этот модуль к сборке Актуальная версия 1.10.7.007 от 05 мая 2019 года. Поэтому публикую сегодня.

Постановка задачи

Когда я исправлял кукисы в сборке 006, мне сразу пришла в голову мысль, что если уж пользователь может управлять значением куков, хорошо бы использовать это для чего-то полезного. Мое убогое воображение не подсказало ничего иного, кроме как использовать куки для поиска по сайту.

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

Модуль и сопутствующие файлы.

Хочу сразу предупредить коллег, что просто залить модуль в сборки 006 или 007 не получиться. Мне пришлось переделать файлы
templates/_default_/template.php // Требуется обязательно смержить!!!!!!!
templates/_default_/cookies/cookie_types.php
templates/_default_/js/jquery.ihavecookies.js

В целом процесс управления пользователем своими куками ничем не изменился.

Как устанавливать модуль

Устанавливать модуль можно как на 006 сборку, так и на 007. Методика приведена ниже.

1. Обязательно сделать резервную копию сайта и бекап базы данных.
2. Распаковать архив в любое место.
3. Прочитать readme.txt
4. Смержить файл templates/_default_/template.php, находящийся в архиве, с одноименным файлом сайта.
5. Остальные файлы залить с заменой (кроме, естественно, readme.txt — он на сайте не нужен)
6. Выполнить sql-запрос, чтобы подключить модуль к сайту.
  1. INSERT INTO `cms_modules` (`id`, `position`, `name`, `title`, `titles`, `is_external`, `content`, `ordering`, `showtitle`, `published`, `user`, `config`, `original`, `css_prefix`, `access_list`, `hidden_menu_ids`, `cache`, `cachetime`, `cacheint`, `template`, `is_strict_bind`, `is_strict_bind_hidden`, `author`, `version`) VALUES ('0', 'sidebar', 'Модуль поиска по сайту по кукам', 'Вам будет интересно', '---\r\nen:\r\nru:\r\n', '1', 'mod_what_show', '36', '1', '1', '0', '', '1', '', '', '', '0', '1', 'HOUR', 'module.tpl', '0', '0', 'stroller7@gmail.com', '1.0');
7. Зайти в админку и посмотреть, появился ли модуль. Он должен быть уже включен. Обязательно укажите в настройках, на каких страницах сайта выводить модуль.

Настройки модуля.

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

Просьба к пользователям

Если кому-то из коллег придет в голову мысль, как еще можно обыграть идею настраиваемых пользователем куков, пишите в коментах или в личку. Если идея покажется мне интересной, обязательно выберу время, чтобы реализовать ее в граните коде.

Как скачать.

Из моего профиля, даром, то есть бесплатно.

Скачать
+2
abasia abasia 4 года назад #
Спасибо за модуль. С Победой!!!
+1
Странник Странник 4 года назад #
С праздником! Модуль работает?
+1
abasia abasia 4 года назад #
Не понял его работу, в мозиле и опере выводится пустым, в хроме не выводится вообще
+1
Странник Странник 4 года назад #
Видимо, модуль ничего не нашел. Вы файл templates\_default_\cookies\cookie_types.php под контент своего сайта отредактировали? Браузер от куков почистили?
+1
Странник Странник 4 года назад #
Откройте файл модуля modules\mod_what_show\module.php и после строчки
Код PHP:
  1. $preferences = json_decode($_COOKIE['cookieControlPrefs'], 1);
наберите
Код PHP:
  1. echo '$preferences = '; print_r($preferences); echo '<br>';
Что выводит?
+1
abasia abasia 4 года назад #
Файл под контент не редактировал, сделаю это позже, модуль выводит
+1
Странник Странник 4 года назад #
вот вам и причина. модуль то ищет по базе слова preferens, analitics и marketing.
если у вас на сайте такого контента нет, значит будет вот такой результат.

отредактируйте файл по образцу
Код PHP:
  1. $cookie_types = array();
  2. $cookie_types[0] = array('type'=>'preferences', 'value'=>'Предпочтения', 'description'=>'Эти файлы cookies связаны с Вашими предпочтениями, например, цвет сайта, браузер и т.д.');
  3. $cookie_types[1] = array('type'=>'analytics', 'value'=>'Аналитика', 'description'=>'Эти файлы cookies имеют отношение к сервисам веб-аналитики. С помощью файлов анализируется информация о Вашем использовании нашего веб-сайта.');
  4. $cookie_types[2] = array('type'=>'marketing', 'value'=>'Маркетинг', 'description'=>'Эти файлы cookies имеют отношение к маркетингу, например, к информационным потокам, использованию общественных носителей, и т.п.');
  5. $cookie_types[3] = array('type'=>'cutters', 'value'=>'Катера', 'description'=>'Эти файлы позволят Вам найти на сайте описание всех катеров');
  6. $cookie_types[4] = array('type'=>'boats', 'value'=>'Лодки', 'description'=>'Эти файлы позволят Вам найти на сайте описание всех лодок');
  7. $cookie_types[5] = array('type'=>'sails', 'value'=>'Паруса', 'description'=>'Эти файлы позволят Вам найти на сайте описание парусов');
Обратите внимание, по сравнению с вашим (старым) файлов в этом изменились значения type и value! Теперь type английские, а value - русские!!!!!
+1
Странник Странник 4 года назад #
Еще после строчки
Код PHP:
  1. $answers = array_merge($blogs, $articles, $forums);
добавьте строку
Код PHP:
  1. if(!empty($answers)){ return false;}
Чтобы модуль не выводился, если ничего не нашел.

Я сейчас в архиве эту строчку добавлю и перезалью.
+1
Странник Странник 4 года назад #
Извините, поторопился, строчка должна быть
Код PHP:
  1. if(empty($answers)){ return false;}
+2
Странник Странник 4 года назад #
Прошу всех, кто взял у меня модуль, скачать его заново. В нем содержится изменение, внесенное после замечания abasia.

Еще от автора

Адаптация компонента "Закладки" от 19 января 2011 к коробочной версии 1.10.7
На форуме появилась тема с пожеланиями адаптировать довольно старый компонент "Instant Bookmarks" Fuze к современным реалиям.
Утилита "Садовод" для версии InstantCMS 1.10.7.008
В этой краткой заметке описывается утилита "Садовод" для ремонта деревьев версии InstantCMS 1.10.7.008.
Изменение компонента "Баннеры" для будущей  версии 1.10.7.008
Данная статья рассказывает всем ждущим новую версию 008, что нового ожидается в будущем релизе версии 1.10.7.008.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.