Павел Гвоздь

Павел Гвоздь

С нами с 31 мая 2015; Место в рейтинге пользователей: #3
Павел Гвоздь
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 или номер сессии. Для авторизованных юзеров не вижу смысла объяснять…
Павел Гвоздь
17 июля 2017, 10:12
0
А как вы будете получать рейтинг и кол-во голосов без запросов к БД?
Павел Гвоздь
17 июля 2017, 10:10
+3
Если желание переписать, только ради того, чтобы переписать — не вижу смысла…
Павел Гвоздь
17 июля 2017, 07:21
+1
Решить удалось, но переписав все по иному. Сейчас бы сделал все гораздо иначе и правильнее. :)
Павел Гвоздь
17 июля 2017, 06:31
0
От 15-20 000 руб. При детальном погружении в задачу будет точная стоимость.
Павел Гвоздь
14 июля 2017, 10:10
+6
Интересно! Особенно порадовало:
Дает ли это нам что-то? Нет, не дает ничего. Это нужно исключительно государству для контроля за уплатой налогов.
Малый бизнес по-всякому имеют, а на словах всячески поддерживают…
Павел Гвоздь
13 июля 2017, 18:05
0
Я не знаю, что вы там делаете, но у меня все работает, после записи таким образом, в эти новые поля, каких-либо данных.
Павел Гвоздь
13 июля 2017, 17:34
0
А что это за
скрипт с записью в эти поля
?
Павел Гвоздь
13 июля 2017, 09:37
0
Возможно, при помощи CSS?))
Павел Гвоздь
13 июля 2017, 07:31
0
Что-то у вас на сайте не так… При создании юзера поля, априори, отображаться не могут, это в коде сказано строкой:
if (!isset($user) || $user->get('id') < 1) {
    return;
}
Однако, после сохранения юзера на тестовом сайте modhost.pro, все отлично работает. И данные вводятся в поля, и редактировать их можно.
Павел Гвоздь
11 июля 2017, 14:14
+1
Это констатация факта или просьба о помощи?) Если просьба, то весь код, который отвечает за поля, в студию!