Gravatar в TicketLatest

Здравствуйте, возможно ли в сниппете TicketLatest вывести gravatar

У нас пока идей нет а у Вас?

Cпасибо, за помощь)
Олег
16 марта 2015, 23:21
modx.pro
1 738
0

Комментарии: 16

Володя
17 марта 2015, 07:50
0
плейсходер gravatar?
    Сергей Шлоков
    17 марта 2015, 09:07
    0
    Ну если очень захотеть, то возможно. Сниппет TicketComment в пример.
      Олег
      17 марта 2015, 09:56
      0
      Cпасибо, за ответ, но мы используем данный сниппет в связке TicketComment в карточке товара, а на главной выводим последние сообщения, TicketLatest. Поэтому более конкретный вопрос как использовать gravatar именно в данном сниппете?
      Василий Наумкин
      17 марта 2015, 10:11
      2
      0
      Нужно немного подумать, как вообще работает gravatar.

      Как только ты вспомнишь, что ему нужен хэш от email юзера, сразу станет ясно, что делать:
      [[!TicketLatest?
      	&tpl=`@INLINE <img src="https://gravatar.com/avatar/{{+email:strtolower:md5}}?s=50" />`
      ]]
        Сергей Шлоков
        17 марта 2015, 13:47
        0
        Обнаружил, что хеши [[+email:md5]] и md5('name@mail.ru') не равны. Интересно, это только у меня?
          Василий Наумкин
          17 марта 2015, 17:26
          0
          Я такого не замечал.
            Сергей Шлоков
            17 марта 2015, 17:37
            0
            Вот хеши name@mail.ru, полученные через [[+email:md5]] и через md5()
            d41d8cd98f00b204e9800998ecf8427e
            d2febc026792ad53e8d02abd4415c4a8
            Получаем Ph для первого случая и для второго соответственно
            $modx->setPlaceholder('email','name@mail.ru');
            $modx->setPlaceholder('email',md5('name@mail.ru'));
            Мне кажется, не должно быть такого.
            З.Ы. Через md5() получается правильный хэш.
              Саша Туманов
              04 апреля 2015, 23:05
              0
              d41d8cd98f00b204e9800998ecf8427e значит, что в [[+email]] пусто
                Сергей Шлоков
                05 апреля 2015, 07:46
                0
                В том то и дело, что не пусто. Я сам его выставляю:
                Вариант 1.
                $modx->setPlaceholder('email','name@mail.ru');
                Вариант 2.
                $modx->setPlaceholder('email',md5('name@mail.ru'));
                И если я для первого варианта убираю из [[+email:md5]] фильтр md5, то получаю name@mail.ru. Значение есть. Из чего делаю вывод, что фильтр md5 глючит.
                Второй вариант работает правильно.
                  Саша Туманов
                  05 апреля 2015, 09:39
                  0
                  Ты ведь хочешь граватар в TicketLatest вывести? Я правильно понял?
                  А откуда name@mail.ru хочешь брать?
                    Сергей Шлоков
                    05 апреля 2015, 09:48
                    0
                    Ты ведь хочешь граватар в TicketLatest вывести? Я правильно понял?
                    Нет, неправильно. Это автор топика хочет. Я просто попробовал вариант, предложенный Василием:
                    [[!TicketLatest?
                    	&tpl=`@INLINE <img src="https://gravatar.com/avatar/{{+email:strtolower:md5}}?s=50" />`
                    ]]
                    и обнаружил несоответствие работы фильтра md5 и функции md5(). По крайнем мере, у меня.
                    А откуда name@mail.ru хочешь брать?
                    Из головы чисто для теста. Это просто набор символов, похожий на email. Данное совпадение считать случайным.
                    Василий Наумкин
                    05 апреля 2015, 19:39
                    0
                    Неправильный ты вывод делаешь.

                    Скорее всего, из-за особенностей работы плейсхолдеров, фильтр применяется к тегу, когда он еще пуст. А когда ты убираешь md5 и страница ренедрится полностью, email туда успевает подставиться. То есть, значение в тег попадает уже после обработки фильтром.

                    Можно попробовать вызывать его просто некэшированным [[!+email:md5]].

                    Исходник фильтра в MODX выглядит так:
                    case 'md5':
                    	/* See PHP's md5 - http://www.php.net/manual/en/function.md5.php */
                    	$output= md5($output);
                    break;
                    Ошибаться там просто негде.
                      Саша Туманов
                      05 апреля 2015, 20:01
                      0
                      Вась, в TicketLatest email, между прочим, действительно не передается в вывод. Проверял для гостей, без авторизации. Там у тебя из TicketComment, без альяса селект, а в modUserProfile тоже поле email есть, наверное перекрывают друг друга. Если в 99-й строке альяс указать, то email в выводе появляется, но остальные значения ломаются.

                      А «d41d8cd98f00b204e9800998ecf8427e» — это хэш пустой строки, в md5, знакомая личность :))
                        Василий Наумкин
                        05 апреля 2015, 20:27
                        0
                        Проверял для гостей, без авторизации
                        Логично, у гостей нет профиля на сайте, а именно он выбирается.

                        наверное перекрывают друг друга
                        Tickets изначально не рассчитывался на работу без авторизации. Потом я это дописал, но не везде, как видно.
                  Саша Туманов
                  04 апреля 2015, 23:57
                  0
                  Если для TicketLatest указать
                  [[!TicketLatest?
                  	&tpl=``
                  ]]
                  то видно, что поле email, пустое приходит, хотя в таблице modx_tickets_comments есть значение. Баг видимо.
                    Олег
                    05 июля 2015, 00:59
                    0
                    Я то же так думаю!
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            16