Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
ralf

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

Recommended Posts

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

 

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

 

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

 

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

 

Первая часть работает. Вторая нет, как только вставляю строку "$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.

Share this post


Link to post
Share on other sites

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

 

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...