SeeToo
Представляю Вашему вниманию, новый компонент SeeToo, который умеет строить динамичные блоки «Смотрите также».
Порядок вывода списка ресурсов, зависит от пользовательского поведения. Чем больше переходов было на определенный ресурс, тем выше в списке он будет показываться.
Видео-обзор
Страница в магазине (тут есть пример)
Основу составляет сниппет SeeTooResources, который является оберткой для pdoResources. Смысл его работы в том, что он формирует массив конфигурации для вызова pdoResources (или другого сниппета, название которого передано в параметр element), а именно:
P.S. Извиняюсь за качество видео, если нужно будет, запишу новое.
Порядок вывода списка ресурсов, зависит от пользовательского поведения. Чем больше переходов было на определенный ресурс, тем выше в списке он будет показываться.
Видео-обзор
Страница в магазине (тут есть пример)
Основу составляет сниппет SeeTooResources, который является оберткой для pdoResources. Смысл его работы в том, что он формирует массив конфигурации для вызова pdoResources (или другого сниппета, название которого передано в параметр element), а именно:
- подключает таблицу, в которой хранится поведение пользователей;
- определяет использовать кеш pdoTools или нет;
- задает сортировку по умолчанию (сортируем по количеству переходов, при одинаковых значениях дополнительно сортируем в случайном порядке);
- задает условие, показывать неактивные записи переходов или нет;
- указывает границу переходов, после преодоления которой, запись будет закреплена в выводе.
По поводу границы переходов
Она задается в параметре minCount и по умолчанию имеет значение 10. Что означает, сначала выводятся все записи у которых 10 и больше переходов с текущего ресурса. После этого, если не достигнут лимит вывода, выводятся случайные записи, которые удовлетворяют условиям pdoResources.Планы на будущее
- сделать msOrderHandler для «С этим товаром покупают» (кто разбирается, может сделать это в текущей версии компонента, главное использовать другой ключ для сохранение записей, по умолчанию ключ 'view')
сделать возможность включения/выключения вывода случайных ресурсов после выбранных ресурсов(реализовано в версии 1.1)- сделать возможность включения/выключения обратной связи, то есть, ресурс-цель, так же является ресурсом-источником, а ресурс-источник, является ресурсом-целью
P.S. Извиняюсь за качество видео, если нужно будет, запишу новое.
[Обновлено] 26.01.2017
Вышла новая версия 1.1.0Комментарии: 50
Доброго дня!
Спасибо. Интересный компонент.
У меня установлен siteStatistics, у вас не было мысли его подружить с вашим компонентом? Напрашивается мысль из таблиц siteStatistics выбирать данные рейтинга, благо у меня он уже наработанный.
Спасибо. Интересный компонент.
У меня установлен siteStatistics, у вас не было мысли его подружить с вашим компонентом? Напрашивается мысль из таблиц siteStatistics выбирать данные рейтинга, благо у меня он уже наработанный.
Здравствуйте!
Такой мысли не было. Они немного отличаются по логике.
В SeeToo просмотры считаются не для ресурса в целом, как это сделано в siteStatistics, а для связи «ресурс-источник, ресурс-цель». То есть для каждого ресурса, например статьи, будет свой уникальный список просмотренных статей.
Такой мысли не было. Они немного отличаются по логике.
В SeeToo просмотры считаются не для ресурса в целом, как это сделано в siteStatistics, а для связи «ресурс-источник, ресурс-цель». То есть для каждого ресурса, например статьи, будет свой уникальный список просмотренных статей.
Данные о переходах хранятся постоянно? или?
Они хранятся постоянно, в таблице.
Этими записями можно управлять на страницах ресурсов, куда добавляется новая вкладка, как в ms2Gallery
Этими записями можно управлять на страницах ресурсов, куда добавляется новая вкладка, как в ms2Gallery
Ок. Куплю, интересно.
У меня контекстов много, я могу где то запретить сбор статистики вообще? Для какого то контекста, или для варианта шаблон/категория/ и т.п.?
У меня контекстов много, я могу где то запретить сбор статистики вообще? Для какого то контекста, или для варианта шаблон/категория/ и т.п.?
Запретить можно выключив плагин «SeeToo». Запретить сбор, по какому-то условию, пока нельзя, подумаю как это можно реализовать. Ограничить вывод по шаблону, категории, можно используя стандартный функционал сниппетов группы pdoTools. Например условием:
[[!SeeTooResource?
&parents=`7`
&where=`{"template" : 4}`
]]
По каким параметрам вам нужно запретить? Например, можно сделать системную настройку, в которой указаны контексты, в которых разрешено сохранять информацию о переходах.
Контексты- обязательно. Хорошо бы в разрешенных контекстах по ID категорий не собирать ни какую информацию. Именно не собирать. Выводить то- все понятно.
Контексты я добавлю в ближайшее время, с категориями я еще подумаю, как это лучше всего сделать, но вы вполне можете реализовать логику под себя, если умеете писать сниппеты.
Вся логика учета переходов выполняется в плагине SeeToo, вы можете отключить его, и написать свой плагин, который будет учитывать все ваши условия.
Вся логика учета переходов выполняется в плагине SeeToo, вы можете отключить его, и написать свой плагин, который будет учитывать все ваши условия.
Да, но если какие то пожелания будут учтены, то и покупать SeeToo будет веселее)))
Например, исключение контекстов- ну просто обязательно хотелось бы видеть в варианте «из коробки».
Например, исключение контекстов- ну просто обязательно хотелось бы видеть в варианте «из коробки».
Так о чего его дружить. Он и так дружит с pdoResources. Вот пример (в самом конце).
Да, спасибо. Видел. После смены верстки буду использовать сортировку по просмотрам постоянно. Для того и покупал siteStatistics.
Но тут мысль возникла переключатель сделать, разный тип рейтинга статей.
Но тут мысль возникла переключатель сделать, разный тип рейтинга статей.
Сколько, примерно, будет весить таблица в БД при 50.000 посещениях в день? Есть примеры веса таблицы на более-менее посещаемых сайтах?
Размер таблицы не зависит от количества посещений в день. Он зависит от количества ресурсов, которые учавствуют в выборке сниппета SeeTooResources. Вот скрин таблицы заполненной тестовыми данными, 50000 записей joxi.ru/823Oea1I67DGp2
Спасибо за ответ! Куплю.
Скрин самой таблицы joxi.ru/Y2LjL3gFn4QV5r, поле view хранит количество переходов. Тип поля int с атрибутом UNSIGNED, то есть диапазон он 0 до 4.294.967.295, размер одного такого значения составляет 4 байта
В сниппете есть возможнось вывести список — «Вы смотрели»?
Нет, вывести данную информацию нельзя.
Если сделаете, то сразу куплю.
В этом компоненте делать не буду, у него не такая цель, возможно сделаю позже отдельный компонент
Таких решений тонна.
Включая последнее: modstore.pro/packages/other/looked
Включая последнее: modstore.pro/packages/other/looked
Видел в email рассылке от магазина, думал взять, но потом увидел некую простоту, т.е. сортировка идет чисто по переходам.
Будет ли усовершенствование процесса сортировки/рейтинга, по мимо ручного указания явной связи. М.б. учет ключевых слов?
Причина такого мышления:
Если сайт состоит из статей и любая статья из любой категории корневого ресурса может быть неким образом связана с текущей, то вероятность рандомного попадания в выдачу довольно ничтожна, а пользователи за неимением лучшего, будет заходить в первые статьи, а если их всего 3-6 в выдаче?
Вот решил подождать следующего обновления, вдруг что-то с этим решат.
Будет ли усовершенствование процесса сортировки/рейтинга, по мимо ручного указания явной связи. М.б. учет ключевых слов?
Причина такого мышления:
Если сайт состоит из статей и любая статья из любой категории корневого ресурса может быть неким образом связана с текущей, то вероятность рандомного попадания в выдачу довольно ничтожна, а пользователи за неимением лучшего, будет заходить в первые статьи, а если их всего 3-6 в выдаче?
Вот решил подождать следующего обновления, вдруг что-то с этим решат.
Я специально не продумывал никаких дополнительных условий. Хотя готов выслушать предложения, если народ будет за, то реализую обязательно.
Всё делалось для того, чтобы вы могли ограничить выборку, например текущим родителем, или каким нибудь условием. Возьмем к примеру такую ситуацию. У нас в одной категории много статей разных авторов, и мы хотим ограничить показ статей текущим родителем и текущим автором. Вызов будет выглядеть так.
Возьмём другую ситуацию. У нас есть много категорий и много товаров в них, но мы не хотим ограничивать их текущим родителем, а хотим ограничить значением некого поля. Пусть это будет vendor, будем выводить товары текущего производителя.
Можно использовать сортировку по полям ресурса или товара, но тогда смысл этого компонента пропадает, и для этого лучше использовать сниппеты группы pdoTools.
Есть еще идея например половину статей выводить сортируя по переходам, половину всегда выводить случайно, в рамках условий, заданных пользователем
Всё делалось для того, чтобы вы могли ограничить выборку, например текущим родителем, или каким нибудь условием. Возьмем к примеру такую ситуацию. У нас в одной категории много статей разных авторов, и мы хотим ограничить показ статей текущим родителем и текущим автором. Вызов будет выглядеть так.
[[!SeeTooResources?
&parents=`[[*parent]]`
&where=`{"createdby":"[[*createdby]]"}`
]]
Возьмём другую ситуацию. У нас есть много категорий и много товаров в них, но мы не хотим ограничивать их текущим родителем, а хотим ограничить значением некого поля. Пусть это будет vendor, будем выводить товары текущего производителя.
[[!SeeTooResources?
&element=`msProducts`
&where=`{"Data.vendor":"[[+vendor]]"}`
]]
Можно использовать сортировку по полям ресурса или товара, но тогда смысл этого компонента пропадает, и для этого лучше использовать сниппеты группы pdoTools.
Есть еще идея например половину статей выводить сортируя по переходам, половину всегда выводить случайно, в рамках условий, заданных пользователем
При установке, вылезают ошибки:
Could not load class: SeeTooResource from mysql.seetooresource.
Could not get table name for class:
Could not load class: SeeTooResource from mysql.seetooresource.
Could not get table name for class:
Could not load class: SeeTooResource from mysql.seetooresource.
Could not load class: SeeTooResource from mysql.seetooresource.
Could not get table name for class:
Could not load class: SeeTooResource from mysql.seetooresource.
Дополнение не работает. Вызываю:[[!SeeTooResources?
&cache=`1`
&cacheTime=`3600`
&parents=`12`
&limit=`3`
&tpl=`product`
]]
Ничего не выводится.
Обратитесь через техподдержку. Пришлите туда доступы. Посмотрю в чем проблема.
Доброго дня!
Заметил, что есть такая потребность, вынести в системные настройки айдишники ресурсов которые не должны участвовать в выборках, т.е. ресурс показывающийся при 404 (благодаря старым внешним ссылкам) очень часто у меня выскакивает, ну и вообще полезно что-то иметь возможность исключить глобально, не в параметрах сниппета, а конкретно в системных настройках, точно как имеющаяся seetoo_exclude_content_type «Список MIME типов, которые нужно исключить».
Заметил, что есть такая потребность, вынести в системные настройки айдишники ресурсов которые не должны участвовать в выборках, т.е. ресурс показывающийся при 404 (благодаря старым внешним ссылкам) очень часто у меня выскакивает, ну и вообще полезно что-то иметь возможность исключить глобально, не в параметрах сниппета, а конкретно в системных настройках, точно как имеющаяся seetoo_exclude_content_type «Список MIME типов, которые нужно исключить».
PS и там же, в системных настройках исключать целыми категориями по id, контекствми, или по типу, например isfolder.
Добрый день!
Подтвердите мои ожидания. Я правильно понимаю, что у любого ресурса, я могу выводить любые записи? И будут, только те, которые я захочу отобразить у данного ресурса?
Подтвердите мои ожидания. Я правильно понимаю, что у любого ресурса, я могу выводить любые записи? И будут, только те, которые я захочу отобразить у данного ресурса?
Да, всё верно
Напишите простой способ вывода, почему то не ту документации у вас.
В таком случае выводятся не понятно по какому принципу записи, те что в админке отметил, не вывелись.
Надо что бы, если не отмечено не чего, то не чего бы и не выводилось.
В таком случае выводятся не понятно по какому принципу записи, те что в админке отметил, не вывелись.
Надо что бы, если не отмечено не чего, то не чего бы и не выводилось.
[[!SeeTooResources?
&tpl=`object`
]]
То, что я имел ввиду я не увидел в видео, Вы обманули меня? Нету вообще в документации как вывести (точнее документации можно сказать нету, есть видео) именно те ресурсы, которые я хочу, мне не нужен рандом, нужно конкретный вывод.
у каждого ресурса есть вкладка «SeeToo», заходите в неё и выбираете ресурсы, которые вы хотите вывести
Зашел, выбрал, но по прежнему рандомные записи, кеш? Чистил.
Вызовите сниппет, с параметром &minCount=`0`. Это означает, что нужно выводить все ресурсы, у которых количество переходов больше или равно 0
Вы пьяны? Вы вообще читаете что я пишу?
Я вас спросил. У ресурса с id1 я могу вывести только ресурсы с id201 и id 234??? И все больше не фига не чего не хочу там выводить.
Вы сказали да, какого хрена не выводит или плагин не работает должным образом.
Он просто выводит рандомные записи. при чем тут &minCount=`0`?????
Где нормальная документация? В админке я поставил что мне надо вывести, но плагину вообще плевать, что я там ставлю, значит возможно надо что то в сниппете дописать, вопрос что??????????
По факту, если эта функция не работает, но не какой ценности вообще не вижу в этом плагине, вывести похожие записи можно и без него.
Жду от вас адекватного ответа, читайте пожалуйста что Вам пишут.
Я вас спросил. У ресурса с id1 я могу вывести только ресурсы с id201 и id 234??? И все больше не фига не чего не хочу там выводить.
Вы сказали да, какого хрена не выводит или плагин не работает должным образом.
Он просто выводит рандомные записи. при чем тут &minCount=`0`?????
Где нормальная документация? В админке я поставил что мне надо вывести, но плагину вообще плевать, что я там ставлю, значит возможно надо что то в сниппете дописать, вопрос что??????????
По факту, если эта функция не работает, но не какой ценности вообще не вижу в этом плагине, вывести похожие записи можно и без него.
Жду от вас адекватного ответа, читайте пожалуйста что Вам пишут.
Извините, но мне кажется, что я как раз адекватен. Вот сейчас вы достаточно точно описали то, чего хотите. На данный момент функции отключения случайных записей нет, о чем написано в этом топике под заголовком «Планы на будущее». Этот функционал реализован в следующей версии, которую я выпущу сегодня-завтра.
Извините, что не понял вас с первого раза
Извините, что не понял вас с первого раза
Выпущена новая версия компонента, топик с описанием изменений в процессе написания, Вы можете обновить компонент и вызвать сниппет «SeeTooResources» с параметром &useRandom=`0`, это исключит добавление случайных ресурсов. Есть еще такой нюанс, что сниппет по прежнему будет выводить ресурсы, у которых количество просмотров равно или больше, указанного числа в параметре «minCount». Рекомендую Вам использовать ниже приведенный код, для вывода всех выбранных Вами ресурсов, без учета минимального количества просмотров.
[[!SeeTooResource?
&parents=`0` // или любой другой парент на Ваше усмотрение
&minCount=`0`
&useRandom=`0`
&tpl=`output` // соответственно свой чанк для вывода
]]
Наверное с этого и надо было начинать, что этого функционала нету, а не писать мне параметр, который мне бы не помог.
Спасибо за обновление!
Еще одни вопрос, не обратил внимания, но если я не ошибаюсь то в эту вкладку попадают сами ресурсы, если такое есть, можно как то исключить автоматическое добавление?
И сделайте нормальную документацию для людей, во избежания глупых вопросов.
P.S А на вас тролей, которые ставят плюсы и минусы, плевать. Вы даже мнение не можете свое выразить.
Спасибо за обновление!
Еще одни вопрос, не обратил внимания, но если я не ошибаюсь то в эту вкладку попадают сами ресурсы, если такое есть, можно как то исключить автоматическое добавление?
И сделайте нормальную документацию для людей, во избежания глупых вопросов.
P.S А на вас тролей, которые ставят плюсы и минусы, плевать. Вы даже мнение не можете свое выразить.
Еще одни вопрос, не обратил внимания, но если я не ошибаюсь то в эту вкладку попадают сами ресурсы, если такое есть, можно как то исключить автоматическое добавление?
Опишите подробней, не совсем понятно. Я так понял, вы хотите, чтобы при переходе по ссылкам, связи с ресурсами не создавались автоматически.
Вы хотите, создавать связи только вручную?
Если да, то нужно просто выключить плагин SeeToo, я именно поэтому разделил логику на 2 плагина. Но следует учитывать, что при обновлении компонента, он снова активируется. Возможно позже я сделаю системную настройку для отключения этого плагина. Пока еще думаю как лучше сделать.
Возможно ничего делать не буду, так как всё можно сделать красиво вторым способом.
Второй способ.
В этой версии добавлен класс, который с помощью метода check проверяет могут ли ресурсы образовать связь, если могут, он должен вернуть true, иначе false. Вам нужно просто создать свой класс, наследовав его из базового, переопределить метод check, чтобы он всегда возвращал false и указать название своего класса в системной настройке seetoo_excluder_class
Второй способ.
В этой версии добавлен класс, который с помощью метода check проверяет могут ли ресурсы образовать связь, если могут, он должен вернуть true, иначе false. Вам нужно просто создать свой класс, наследовав его из базового, переопределить метод check, чтобы он всегда возвращал false и указать название своего класса в системной настройке seetoo_excluder_class
Здравствуйте!
Прошу прощение за задержку с ответом. Получается что ресурсы сами собой попадают на вкладку SeeToo. Как это отключить?
-Вы хотите, создавать связи только вручную?
Все верно!
Отключить? Как? Деинсталлировать?
Прошу прощение за задержку с ответом. Получается что ресурсы сами собой попадают на вкладку SeeToo. Как это отключить?
-Вы хотите, создавать связи только вручную?
Все верно!
Отключить? Как? Деинсталлировать?
Выключите плагин SeeToo (при обновлении компонента он включится опять) или расширьте класс SeeTooExcluder (при обновлении компонента, ничего не слетит). Здесь есть примеры расширения этого класса, для Вашего случая подходит первый пример, можете его копировать.
Спасибо. Но все ли я сделал верно.
1. Создал файл core/components/seetoo/custom/excluder/SeeTooExcluder.class.php
2. Вставил в него «Когда мы не хотим отключать плагин, чтобы отключить автоматическое добавление связей, так как например при обновлении он снова станет активным.»
3. Зашел в системные настройки и там уже есть это
Вот эти слова мне не совсем понятны «наследуем свой класс из базового класса SeeTooExcluder»
Все ли я сделал или, что то забыл?
1. Создал файл core/components/seetoo/custom/excluder/SeeTooExcluder.class.php
2. Вставил в него «Когда мы не хотим отключать плагин, чтобы отключить автоматическое добавление связей, так как например при обновлении он снова станет активным.»
3. Зашел в системные настройки и там уже есть это
Вот эти слова мне не совсем понятны «наследуем свой класс из базового класса SeeTooExcluder»
Все ли я сделал или, что то забыл?
файл должен содержать этот код
и укажите в настройке seetoo_excluder_class ExcludeAll
<?php
require_once(dirname(dirname(__DIR__)) . '/model/seetoo/seetooexcluder.class.php');
class ExcludeAll extends SeeTooExcluder
{
public function check($resource_from, $resource_to)
{
return false;
}
}
и укажите в настройке seetoo_excluder_class ExcludeAll
Если я указываю ExcludeAll Скрин То ресурсы не открываются для редактирования.
Скинь доступы через техподдержку, посмотрю
Привет, пользуюсь этим компонентом. В документе (ресурсе) есть вкладка SeeToo, там интерфейс управления связанными ресурсами, можно удалять\добавлять. Таким образом, с нужным ресурсом связанны только те ресурсы, которые вы туда добавите или рандомные, ели вы не редактируете содержимое этой вкладки.
Я автора прощу сделать список исключенных ресурсов, которые ни когда бы не добавлялись сами к списку во вкладке SeeToo, а в остальном, компонент весьма полезен.
Я автора прощу сделать список исключенных ресурсов, которые ни когда бы не добавлялись сами к списку во вкладке SeeToo, а в остальном, компонент весьма полезен.
Несколько примеров есть на странице компонента в магазине modstore.pro/packages/utilities/seetoo, посмотрите, может Вам подойдет один из предложенных вариантов.
Добрый день! Как плагином подхватить изображения товара msProducts?
Пробовал сделать вывести так:
[[!SeeTooResources?
&includeThumbs=`464x464, 232x232`
&limit = `4`
&snippet=`msProducts`
&tpl=`lookedTpl2`
]]
и ничего, картинки не подхватываются
&element=`msProducts` тоже не работает, товары вообще не выводятся
Пробовал сделать вывести так:
[[!SeeTooResources?
&includeThumbs=`464x464, 232x232`
&limit = `4`
&snippet=`msProducts`
&tpl=`lookedTpl2`
]]
и ничего, картинки не подхватываются
&element=`msProducts` тоже не работает, товары вообще не выводятся
Вывел в итоге так:
[[!SeeTooResources?
&class=`msProduct`
&element=`msProducts`
&limit = `4`
&tpl=`lookedTpl`
]]
[[!SeeTooResources?
&class=`msProduct`
&element=`msProducts`
&limit = `4`
&tpl=`lookedTpl`
]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.