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

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

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

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

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

Правильное условие в выборке?

Здравствуйте.

 

Есть вот такой фильтр:

 

       // Фильтр по botid

       if ( isset( \IPS\Request::i()->botId ) )
       {
           $ids = explode( ',', \IPS\Request::i()->botId );
       }

       else if ( isset( \IPS\Request::i()->cookie['runningGames_botIds'] ) )
       {
           $ids = explode( ',', \IPS\Request::i()->cookie['runningGames_botIds'] );
       }

       if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) AND !isset( \IPS\Request::i()->cookie['runningGames_botIds'] )) )
       {
           $ids = explode( ',', $ActiveGamesWidgetBots );
       }

 

Здесь вроде бы всё правильно, меня интересует следующее:

 

       if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) AND !isset( \IPS\Request::i()->cookie['runningGames_botIds'] )) )
       {
           $ids = explode( ',', $ActiveGamesWidgetBots );
       }

 

$ActiveGamesWidgetBots - переменная отвечает за вывод конфигурации из виджета, скажите на счет всего условия, оно верно?

 

И у меня второй вопрос, изначально условие

 

(!isset( \IPS\Request::i()->botId ) AND !isset( \IPS\Request::i()->cookie['runningGames_botIds'] ))

 

я писал через OR, почему оно через OR не работает, а AND работает, ведь звучит оно так: Если выбран $ActiveGamesWidgetBots и (не выбран \IPS\Request::i()->botId ИЛИ не выбран \IPS\Request::i()->cookie['runningGames_botIds'] ) условие выполняется.

 

Ведь если здесь будет AND - буду прелестниваться они оба вместе, и первое и второе, что я не так понимаю?

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

я писал через OR, почему оно через OR не работает, а AND работает, ведь звучит оно так: Если выбран $ActiveGamesWidgetBots и (не выбран \IPS\Request::i()->botId ИЛИ не выбран \IPS\Request::i()->cookie['runningGames_botIds'] ) условие выполняется.

 

Ведь если здесь будет AND - буду прелестниваться они оба вместе, и первое и второе, что я не так понимаю?

При каких условиях не работает?
  • Автор
if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) OR !isset( \IPS\Request::i()->cookie['runningGames_botIds'] )) )

Это и так понятно.

 

Я имел ввиду

$ActiveGamesWidgetBots - ?

\IPS\Request::i()->botId - ?

\IPS\Request::i()->cookie['runningGames_botIds'] - ?

  • Автор
\IPS\Request::i()->botId

\IPS\Request::i()->botId
Какие переменные установлены и какие имеют значения, при которых не выполняется условие?
  • Автор

Не работает:

 

http://prntscr.com/mpcbxe

 

       if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) OR !isset( \IPS\Request::i()->cookie['runningGames_botIds'] ) ) )
       {
           $ids = explode( ',', $ActiveGamesWidgetBots );
       }

 

Работает:

 

http://prntscr.com/mpccbn

 

       if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) AND !isset( \IPS\Request::i()->cookie['runningGames_botIds'] ) ) )
       {
           $ids = explode( ',', $ActiveGamesWidgetBots );
       }

Что я тут должен увидеть, если значения переменных мне не известны, кроме \IPS\Request::i()->botId?

К тому же Вы уверены что отрабатывает условие с AND, а не

        if ( isset( \IPS\Request::i()->botId ) )
       {
           $ids = explode( ',', \IPS\Request::i()->botId );
       }

?

  • Автор

Код показываем текстом.

Изменено пользователем siv1987

@TemKa_SD, неужели нельзя две строчки кода показать текстом а не скриншотом? Сколько можно об этом говорить, изучать код по десяти скришотам а еще когда его нужно процетировать жутко не удобное занятие.

  • Автор

Я показываю код текстом, пожалуйста, текстом что вы удалили:

 

Array
(
   [games] => Array
       (
           [ActiveGamesWidgetBots] => *
           [\IPS\Request::i()->botId] => 6
       )

   [pagination] => 
)

Изменено пользователем TemKa_SD

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

Аккаунт

Навигация

Поиск

Поиск

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

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