Posted 9 ноября, 20168 yr comment_115615 Всем привет! Установлен IPS Community site 4.1.15 Как кодом можно отправить пользователю системное сообщение? Вот так я получаю информацию о пользователе: $member = \IPS\Member::loggedIn(); Теперь этому пользователю нужно отправить личное сообщение. Как это можно сделать?
9 ноября, 20168 yr comment_115629 извините, но я вам понимаю неправильно $member = \IPS\Member::loggedIn()->member_id; попробуй
9 ноября, 20168 yr comment_115631 28 минут назад, Silence сказал: извините, но я вам понимаю неправильно Человек хочет отправлять личные сообщения пользователю $member.
10 ноября, 20168 yr Author comment_115675 14 часов назад, ram108 сказал: Человек хочет отправлять личные сообщения пользователю $member. Именно. Задачу решил, сообщения отправляются, но возникли проблемы: 1. Сообщение не помечается как "новое", а выглядит будто уже было прочитано. 2. Не приходит уведомление о том, что пришло новое сообщение. 3. На иконке (конвертике) сообщений нет оповещение о том, что пришло новое сообщение. Вот код: // загрузить информацию о текущем пользователе $member = \IPS\Member::loggedIn(); _sendPM($member, "Тема сообщения","Содержание сообщения"); function _sendPM( $member, $title, $message ) { /* Setup pm title and msg */ $msgTitle = \IPS\Member::loggedIn()->language()->addToStack( $title ); $msgPost = \IPS\Member::loggedIn()->language()->addToStack( $message ); \IPS\Member::loggedIn()->language()->parseOutputForDisplay( $msgTitle ); \IPS\Member::loggedIn()->language()->parseOutputForDisplay( $msgPost ); /* Отправитель */ try { $admin = \IPS\Member::load( 1 ); $pmSender = $admin; } catch( \OutOfRangeException $ex ) { return; } /* Проверка существования отправителя */ if( !$pmSender->member_id ) { return; } /* Создать разговор */ $conversation = \IPS\core\Messenger\Conversation::createItem( $member, $member->ip_address, \IPS\DateTime::ts( time() ) ); $conversation->title = $msgTitle; $conversation->is_system = TRUE; $conversation->save(); /* Авторизация админа */ $c_members[] = $member->member_id; $c_members[] = $pmSender->member_id; $conversation->authorize( $c_members ); /* Добавить сообщение в БД */ $message = \IPS\core\Messenger\Message::create( $conversation, $msgPost, TRUE, NULL, NULL, $pmSender ); $conversation->first_msg_id = $message->id; $conversation->save(); /* Отправить уведомление */ $notification = new \IPS\Notification( \IPS\Application::load('core'), 'private_message_added', $conversation, array( $conversation, \IPS\Member::loggedIn() ) ); $notification->send(); }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.