XF 2.1 Кастом алерт юзеру

Версия XenForo
2.1

dimsim

Участники
Сообщения
64
Реакции
4
Баллы
65
Привет всем,
тут придумали как делать ручное уведомление (но темка уже закрыта) а как сделать ему формат кастомный?

Не подходит post / trophy - что есть еще для текста с ссылкой?

Надо так: У Вас новый <a href = 'order/324523'>заказ</a>
 
В XF из админки можно рассылать нестандартные уведомления с полностью своей разметкой. Можно посмотреть для примера, какой тип уведомления и действия там, и просто заюзать.
А в идеале, конечно, нужно регать свои типы уведомлений и уже ими и оперировать.
 
В XF из админки можно рассылать нестандартные уведомления с полностью своей разметкой. Можно посмотреть для примера, какой тип уведомления и действия там, и просто заюзать.
А в идеале, конечно, нужно регать свои типы уведомлений и уже ими и оперировать.
да видел но у меня по крону будет скрипт запускаться который сделали выше и вчера. Мне надо что-то своё - а вот кастомных алертов я не вижу в админке - этого нет? Может что-то очень похожее на мой вариант есть?
 
да я сделал такую чтобы посмотреть что в базу пишется
Screenshot_2020-05-28 localhost localhost xc_xenforo xf_user_alert phpMyAdmin 4 9 0 1.png
строки 49 - 50 из админки
52-53- из скрипта - но в поле content_id по-новой закидывая 2 не прокатывает - алерт пустой приходит - тоесть надо каждый раз делать какой то контент и брать из него айди и потом пихать туда в создание алерта?

строка 54 - просто на бум попробовал))

Я бы согласен был и на универсальный content_id чтоб базу не забивать
 
Последнее редактирование:
Просто записать алерт - недостаточно. Ещё нужно счетчик обновить у пользователя.
Потому как бы напрямую работать с базой и не рекомендуется. Сделайте лучше метод в API у XF, который будет создавать уведомление пользователю с Вашим контентом. Оно уже и счетчик перестроит...
 
  • Мне нравится
Реакции: Hope
Хмм... вот я только что научился вот так делать
Код:
          /** @var \XF\Repository\UserAlert $alertRepo */
           $alertRepo = \XF::app()->repository('XF:UserAlert');
//     public function alertFromUser( \XF\Entity\User $receiver, \XF\Entity\User $sender = null, $contentType, $contentId, $action, array $extra = []
echo $alertRepo->alertFromUser($author, $author, 'user', 3, 'from_admin');

где 3 это и есть $contentId и он типа пустым не примется ?
 
dimsim, ноль указывайте.
Спасибо, попробовал $alertRepo->alertFromUser($author, $author, 'user', 0, 'from_admin');
Но нет - не прокатило: в нотификациях было (от слова оно и в базе есть с ноликом) а в списке нету
 
25517, ок попробовал зафигачить туда так $alertRepo->alertFromUser($author, $author, 'user', 0, 'from_admin', ['alert_text'=> 'sdajhfasjhdg']); но не подцепилось, сам класс глянул в /xenforo/src/XF/Repository/UserAlert.php там вроде бы и нет проверки на alert_text и других нет тоже - куда копАть?
 
там вроде бы и нет проверки на alert_text и других нет тоже
Потому что выводом и обработкой уведомления будет заниматься совсем другой класс, лежащий в src/XF/Alert
 
И покажите уже полностью код, что и как передаёте.
без проблем:
Код:
$author = \XF::app()->find('XF:User', 2 );
/** @var \XF\Repository\UserAlert $alertRepo */
$alertRepo = \XF::app()->repository('XF:UserAlert');
 //     public function alertFromUser( \XF\Entity\User $receiver, \XF\Entity\User $sender = null, $contentType, $contentId, $action, array $extra = []
echo $alertRepo->alertFromUser($author, $author, 'user', 0, 'from_admin', ['alert_text'=> 'sdajhfasjhdg']);
 
dimsim, а вас не смущает, что вы сами себе алерт отправляете ?

PHP:
$alertRepo->alertFromUser($author, null, 'user', 0, 'from_admin', ['alert_text'=> 'sdajhfasjhdg']);
 
Последнее редактирование:
@dimsim, а вас не смущает, что вы сами себе алерт отправляете ?
нет потомучто трофи можно так делать echo $alertRepo->alertFromUser($author, $author, 'trophy', 10, 'award'); //user12 mention in post

PHP:
$alertRepo->alertFromUser($author, null, 'user', 0, 'from_admin', ['alert_text'=> 'sdajhfasjhdg']);
вообще ничего не дает.. :(
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу