Skip to content

Помощь с доработкой плагина

Имеется плагин, вернее приложение, который получает id пользователя и id темы.

 

$user_id = \IPS\Request::i()->receiver;

 

$topic_id = \IPS\Request::i()->content;

 

Хочу проверить:

 

1) находиться ли тема в одном из определенных разделов?

 

2) участник ли данной темы пользователь $user_id ? Если участник, то топикстартер он или нет?

 

Как это сделать?

Featured Replies

  • Author

Есть ли у кого-нибудь идеи? Как это сделать?

Наверное для тем есть отдельная модель, но самый простой вариант сделать два запроса, первый - получить данные о теме, второй - является ли пользователь ее участником.

 

$topic = iterator_to_array( \IPS\Db::i()->select( '*', 'forums_topics', array('tid = ?', $topic_id) ) )[0];
if( empty( $topic ) )
{
return 'NO_TOPIC';
}

$isInForum = in_array( $topic['forum_id'], array( 1, 2, 3, 4, 5 ) );

if( $topic['starter_id'] == $user_id )
{
$isTopicStarter = true;
$isParticipant  = true;
}
else
{
$isTopicStarter = false;
$isParticipant  = (boolean) count( iterator_to_array( \IPS\Db::i()->select( 'pid', 'forums_posts', array( 'topic_id=? AND author_id=?', $topic_id, $user_id ), false, array( 0, 1 ) ) ) );
}

  • Author

Спасибо большое.

 

Первая часть работает. Вторая нет, как только вставляю строку "$isParticipant = (boolean) count( iterator_to_array( \IPS\Db::i()->select( 'pid', 'forums_posts', array( 'topic_id=? AND author_id=?', $topic_id, $user_id ), false, array( 0, 1 ) ) ) );

}" В браузере выводится ошибка 500.

$topic_id и $user_id должны быть объявленные переменные типа integer

 

В браузере выводится ошибка 500.

Лог ошибки покажите

  • Author

Были неполадки на сервере. Сейчас всё работает. Спасибо большое!

Create an account or sign in to comment

Account

Navigation

Search

Search

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.