Gravatar в TicketLatest
Здравствуйте, возможно ли в сниппете TicketLatest вывести gravatar
У нас пока идей нет а у Вас?
Cпасибо, за помощь)
У нас пока идей нет а у Вас?
Cпасибо, за помощь)
Комментарии: 16
плейсходер gravatar?
Ну если очень захотеть, то возможно. Сниппет TicketComment в пример.
Cпасибо, за ответ, но мы используем данный сниппет в связке TicketComment в карточке товара, а на главной выводим последние сообщения, TicketLatest. Поэтому более конкретный вопрос как использовать gravatar именно в данном сниппете?
Нужно немного подумать, как вообще работает gravatar.
Как только ты вспомнишь, что ему нужен хэш от email юзера, сразу станет ясно, что делать:
Как только ты вспомнишь, что ему нужен хэш от email юзера, сразу станет ясно, что делать:
[[!TicketLatest?
&tpl=`@INLINE <img src="https://gravatar.com/avatar/{{+email:strtolower:md5}}?s=50" />`
]]
Обнаружил, что хеши [[+email:md5]] и md5('name@mail.ru') не равны. Интересно, это только у меня?
Я такого не замечал.
Вот хеши name@mail.ru, полученные через [[+email:md5]] и через md5()
d41d8cd98f00b204e9800998ecf8427e
d2febc026792ad53e8d02abd4415c4a8
Получаем Ph для первого случая и для второго соответственно$modx->setPlaceholder('email','name@mail.ru');
$modx->setPlaceholder('email',md5('name@mail.ru'));
Мне кажется, не должно быть такого.З.Ы. Через md5() получается правильный хэш.
d41d8cd98f00b204e9800998ecf8427e значит, что в [[+email]] пусто
В том то и дело, что не пусто. Я сам его выставляю:
Второй вариант работает правильно.
Вариант 1.
$modx->setPlaceholder('email','name@mail.ru');
Вариант 2.
$modx->setPlaceholder('email',md5('name@mail.ru'));
И если я для первого варианта убираю из [[+email:md5]] фильтр md5, то получаю name@mail.ru. Значение есть. Из чего делаю вывод, что фильтр md5 глючит. Второй вариант работает правильно.
Ты ведь хочешь граватар в TicketLatest вывести? Я правильно понял?
А откуда name@mail.ru хочешь брать?
А откуда name@mail.ru хочешь брать?
Ты ведь хочешь граватар в TicketLatest вывести? Я правильно понял?Нет, неправильно. Это автор топика хочет. Я просто попробовал вариант, предложенный Василием:
[[!TicketLatest?
&tpl=`@INLINE <img src="https://gravatar.com/avatar/{{+email:strtolower:md5}}?s=50" />`
]]
и обнаружил несоответствие работы фильтра md5 и функции md5(). По крайнем мере, у меня.А откуда name@mail.ru хочешь брать?Из головы чисто для теста. Это просто набор символов, похожий на email. Данное совпадение считать случайным.
Неправильный ты вывод делаешь.
Скорее всего, из-за особенностей работы плейсхолдеров, фильтр применяется к тегу, когда он еще пуст. А когда ты убираешь md5 и страница ренедрится полностью, email туда успевает подставиться. То есть, значение в тег попадает уже после обработки фильтром.
Можно попробовать вызывать его просто некэшированным [[!+email:md5]].
Исходник фильтра в MODX выглядит так:
Скорее всего, из-за особенностей работы плейсхолдеров, фильтр применяется к тегу, когда он еще пуст. А когда ты убираешь md5 и страница ренедрится полностью, email туда успевает подставиться. То есть, значение в тег попадает уже после обработки фильтром.
Можно попробовать вызывать его просто некэшированным [[!+email:md5]].
Исходник фильтра в MODX выглядит так:
case 'md5':
/* See PHP's md5 - http://www.php.net/manual/en/function.md5.php */
$output= md5($output);
break;
Ошибаться там просто негде.
Вась, в TicketLatest email, между прочим, действительно не передается в вывод. Проверял для гостей, без авторизации. Там у тебя из TicketComment, без альяса селект, а в modUserProfile тоже поле email есть, наверное перекрывают друг друга. Если в 99-й строке альяс указать, то email в выводе появляется, но остальные значения ломаются.
А «d41d8cd98f00b204e9800998ecf8427e» — это хэш пустой строки, в md5, знакомая личность :))
А «d41d8cd98f00b204e9800998ecf8427e» — это хэш пустой строки, в md5, знакомая личность :))
Проверял для гостей, без авторизацииЛогично, у гостей нет профиля на сайте, а именно он выбирается.
наверное перекрывают друг другаTickets изначально не рассчитывался на работу без авторизации. Потом я это дописал, но не везде, как видно.
Если для TicketLatest указать
[[!TicketLatest?
&tpl=``
]]
то видно, что поле email, пустое приходит, хотя в таблице modx_tickets_comments есть значение. Баг видимо.
Я то же так думаю!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.