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

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

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

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

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

Ошибка в настройках IP.Content

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

 

Война с IP.Content 4 продолжается. Мне нужно было настраивать права доступа для каждой записи (статьи) в отдельности, но так как подобного функционала нет пришлось выдумать свое решение. Решил что буду в шаблоне использовать конструкцию для показа контента для конкретной группы юзеров + вставка своего поля. Получилось вот что:

 

<!--Настройка прав доступа к контенту-->
{{if \IPS\Member::loggedIn()->inGroup(array($record->customFieldDisplayByKey('filed_group_access')))}}
   <div>Контент</div>
{{endif}}

 

Проблема в том, что эта конструкция срабатывает по не известному мне набору случайностей. Значение в filed_group_access такое что контент должен показываться даже гостям, но этого не происходит. Соответственно, если просто вставить номера групп, то такая конструкция работает отлично:

 

<!--Настройка прав доступа к контенту-->
{{if \IPS\Member::loggedIn()->inGroup(array(2,3,4,5))}}
   <div>Контент</div>
{{endif}}

 

Но в и первый вариант работает, просто не могу понять почему через раз. Кеш чищу, смотрю под анонимным браузером.

 

Помогите, пожалуйста, разобраться.

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

Хотя, судя по данным, лучше использовать if/else

{{if \IPS\Member::loggedIn()->inGroup(explode(',', $record->customFieldDisplayByKey('webinars_group_access')))}}
Код для групп, входящих в "webinars_group_access"
{{else}}
Код для остальных
{{endif}}

  • Автор

{{if \IPS\Member::loggedIn()->inGroup(explode(',', $record->customFieldDisplayByKey('webinars_group_access')))}}
Код для групп, входящих в "webinars_group_access"
{{else}}
Код для остальных
{{endif}}

 

Последовал Вашему совету, получился вот такой код:

<div id="webinar_video">

         {{if \IPS\Member::loggedIn()->inGroup(explode(',', $record->customFieldDisplayByKey('webinars_group_access')))}}
             <iframe src="https://login.webinar.fm/ru/login/digitalmakers/light" width="100%" height="433" frameborder="no" allowtransparency></iframe>
             <div style="position:absolute;top: 20px;right: 56px;">
               <div id="fullscreen_button"><i class="fa fa-arrows-alt"></i></div>
             </div>
         {{else}}
             <div>
               <div class="no_login_video">
                 <div style="display:inline-block;vertical-align:middle;"><i class="fa fa-ban"></i>  <a target="_blank" href="/login/">Войдите на сайт</a> для просмотра этого вебинара.</div>
                 <div style="display:inline-block;vertical-align:middle;height:100%;width:0px;"></div>
               </div>
         		</div>
         {{endif}}

       </div>

 

Но теперь, всем группам, показывается вторая часть (после else которая).

Еще раз, что выводится из $record->customFieldDisplayByKey('webinars_group_access')? Без дополнительных примесей raw и тд. А лучше для дебагинга используйте {expression="var_dump($record->customFieldDisplayByKey('webinars_group_access'))"}

  • Автор

Не знаю что случилось, но все заработало просто когда я не трогал код два дня. Огромное спасибо, в очередной раз спасли.

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

Аккаунт

Навигация

Поиск

Поиск

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

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