ralf 2 08/23/16 12:09 Имеется плагин, вернее приложение, который получает id пользователя и id темы. $user_id = \IPS\Request::i()->receiver; $topic_id = \IPS\Request::i()->content; Хочу проверить: 1) находиться ли тема в одном из определенных разделов? 2) участник ли данной темы пользователь $user_id ? Если участник, то топикстартер он или нет? Как это сделать? Поделиться сообщением Ссылка на сообщение
ralf 2 08/24/16 15:18 Есть ли у кого-нибудь идеи? Как это сделать? Поделиться сообщением Ссылка на сообщение
siv1987 2628 08/24/16 21:34 Наверное для тем есть отдельная модель, но самый простой вариант сделать два запроса, первый - получить данные о теме, второй - является ли пользователь ее участником. $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 ) ) ) ); } 1 Поделиться сообщением Ссылка на сообщение
ralf 2 08/25/16 07:32 Спасибо большое. Первая часть работает. Вторая нет, как только вставляю строку "$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. Поделиться сообщением Ссылка на сообщение
siv1987 2628 08/25/16 09:58 $topic_id и $user_id должны быть объявленные переменные типа integer В браузере выводится ошибка 500.Лог ошибки покажите 1 Поделиться сообщением Ссылка на сообщение
ralf 2 09/01/16 11:10 Были неполадки на сервере. Сейчас всё работает. Спасибо большое! Поделиться сообщением Ссылка на сообщение