Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

Posted

Всем привет!

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

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

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

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

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

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

 

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

 

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

  • Author
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.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.