Перейти к содержанию

Отправка системного сообщения


Рекомендуемые сообщения

Всем привет!

Установлен IPS Community site 4.1.15

Как кодом можно отправить пользователю системное сообщение?

Вот так я получаю информацию о пользователе:

$member = \IPS\Member::loggedIn();

Теперь этому пользователю нужно отправить личное сообщение.  Как это можно сделать?

Ссылка на комментарий
Поделиться на другие сайты

извините, но я вам понимаю неправильно :$

$member = \IPS\Member::loggedIn()->member_id;								

попробуй

Ссылка на комментарий
Поделиться на другие сайты

28 минут назад, Silence сказал:

 

извините, но я вам понимаю неправильно

 

Человек хочет отправлять личные сообщения пользователю $member.

Ссылка на комментарий
Поделиться на другие сайты

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();
	}

 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...