Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

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

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

 

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

 

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

 

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

 

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

 

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

 

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

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

  • Автор

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

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

 

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

  • Автор

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

 

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

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

  • Автор

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

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.