Павел Гвоздь

Павел Гвоздь

С нами с 31 мая 2015; Место в рейтинге пользователей: #2
Павел Гвоздь
02 августа 2017, 12:41
0
Пишите в скайп pavelgvozdb
Задействуем для этого компонент xParser. К слову, отлично подходит для таких задач.
Павел Гвоздь
01 августа 2017, 12:35
0
Пишите в скайп pavelgvozdb
Павел Гвоздь
31 июля 2017, 13:08
0
Прикольно. Видимо название достаточно распространенное, ибо у меня тоже есть компонент seoFilter, около года валяется, на одном моем проекте задействован по-полной. Правда функционал несколько иначе работает, в частности, ему вообще не нужен mFilter2.
Павел Гвоздь
30 июля 2017, 07:36
+1
Обратите внимание на метод prepareArray, который вы используете в процессоре GetList. Он нигде не прописан у вас. У Василия же вот тут.
Павел Гвоздь
28 июля 2017, 13:29
0
К сожалению, некогда этим заниматься.
Павел Гвоздь
20 июля 2017, 11:41
0
Смотрите в сторону соответствующих событий плагинов. По-моему OnUserSave и OnBeforeUserSave…
Павел Гвоздь
19 июля 2017, 11:46
0
По-моему, только так это и делается по-хорошему…
Павел Гвоздь
18 июля 2017, 15:04
+1
Добавьте кат… а то главная страница стремно смотрится…
Павел Гвоздь
18 июля 2017, 13:14
+1
ты считаешь, что это «больше» чем то что было наработано за все прошлые годы
Это эффективнее и этим, на мой взгляд, всё сказано…
Павел Гвоздь
17 июля 2017, 15:10
+1
А зачем делать все эти подсчёты на стороне MySQL и джоины, когда в описанном мной способе преимущество в плане быстродействия и ресурсопотребления на лицо?
Павел Гвоздь
17 июля 2017, 14:50
+5
Готово! У сниппета появился дополнительный параметр &mode, позволяет выбрать режим вывода сниппета: db или local. В режиме local сниппет обходится без запроса к базе для того, чтобы узнать кол-во лайков/дизлайков и рейтинг, вместо этого вам будет необходимо передать эти цифры в качестве параметров в сниппет:
{'!xLike' | snippet : [
    'mode' => 'local',
    'likes' => $_modx->resource['likes'],
    'dislikes' => $_modx->resource['dislikes'],
    'rating' => $_modx->resource['rating'],
]}
Подразумевается, что в ТВ полях likes, dislikes, rating хранится соответствующая информация.
Павел Гвоздь
17 июля 2017, 14:28
0
Единственное, запрос к БД в любом случае будет совершаться, чтобы узнать, голосовал ли юзер уже.
Павел Гвоздь
17 июля 2017, 12:22
+2
На счёт дополнительного режима сниппета без запросов к БД можно подумать, хорошая идея!
Павел Гвоздь
17 июля 2017, 12:20
0
Ну можно в таком случае добавить еще одно поле в таблицу ресурсов и прописать его в map массив. В этом случае в плагине на событие xLikeOnVote писать данные рейтинга в него. Тогда можно будет и сортировать без приведения типа.
Павел Гвоздь
17 июля 2017, 12:18
+2
Да, все верно, если сохранять данные рейтинга и кол-ва голосов в полях ресурса или другого объекта, то можно обойтись и без лишних запросов к БД. Вот тут код компонента, а тут непосредственно сниппет, который формирует propkey.
Павел Гвоздь
17 июля 2017, 10:22
+1
Для справки: pdoResources способен выбирать все, что угодно. xLike способен работать с любыми объектами.
Записываете рейтинг в ТВ при голосовании на событии xLikeOnVote и сортируете. Ничего сложного.
Павел Гвоздь
17 июля 2017, 10:13
0
1) Пример выборки чего?
2) IP или номер сессии. Для авторизованных юзеров не вижу смысла объяснять…