Ошибка в настройках IP.Content - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2

Ошибка в настройках IP.Content Война продолжается

#1 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 112
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 27 Октябрь 2015 - 10:02

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

Война с 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}}


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

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

#2 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 688
  • Регистрация: 20-Март 09
  • Репутация: 2 261
  • IPB version:3.1.x
 

Отправлено 27 Октябрь 2015 - 10:14

Просмотреть сообщениеvinegredz сказал(а):

Проблема в том, что эта конструкция срабатывает по не известному мне набору случайностей.

Потому что у вас не правильное языковое выражение. В первом случае у вас массив с одним текстовом значением, что естественно не будет работать, во втором случае именно массив значений. Правильно использовать explode.

\IPS\Member::loggedIn()->inGroup(explode(',', $record->customFieldDisplayByKey('filed_group_access')))

0

#3 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 27 Октябрь 2015 - 10:29

Просмотреть сообщениеvinegredz сказал(а):

что эта конструкция срабатывает по не известному мне набору случайностей

Просмотреть сообщениеsiv1987 сказал(а):

что естественно не будет работает,

Будет работать только для первой группы из строки, когда она будет преобразовано в число.

"2,3,4,5" = 2
"3,4,5,2" = 3
"4,5,2,3" = 4
и т.д.
0

#4 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 112
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 27 Октябрь 2015 - 10:41

Просмотреть сообщениеsiv1987 27 Октябрь 2015 - 10:14 сказал(а):

Потому что у вас не правильное языковое выражение. В первом случае у вас массив с одним текстовом значением, что естественно не будет работать, во втором случае у вас именно массив значений. Правильно использовать explode.

\IPS\Member::loggedIn()->inGroup(explode(',', $record->customFieldDisplayByKey('filed_group_access')))



Это тоже к сожалению не сработало. Но большое спасибо за помощь.
0

#5 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 688
  • Регистрация: 20-Март 09
  • Репутация: 2 261
  • IPB version:3.1.x
 

Отправлено 27 Октябрь 2015 - 10:47

Просмотреть сообщениеvinegredz сказал(а):

Это тоже к сожалению не сработало.

Это аналогично конструкции во втором варианте. Числа должны быть перечислены без пробелов.
0

#6 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 27 Октябрь 2015 - 11:05

Просмотреть сообщениеvinegredz сказал(а):

Это тоже к сожалению не сработало. Но большое спасибо за помощь.

А покажите, что выводит
{$record->customFieldDisplayByKey('filed_group_access')}

0

#7 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 112
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 27 Октябрь 2015 - 11:16

Просмотреть сообщениеnewbie 27 Октябрь 2015 - 11:05 сказал(а):

А покажите, что выводит
{$record->customFieldDisplayByKey('filed_group_access')}



Специально вывел этот параметр в шаблон, чтобы посмотреть выдачу. Вот что выводит - 2,3,4,6,13,22,23
0

#8 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 112
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 27 Октябрь 2015 - 11:17

Просмотреть сообщениеsiv1987 27 Октябрь 2015 - 10:47 сказал(а):

Это аналогично конструкции во втором варианте. Числа должны быть перечислены без пробелов.

Все так и есть. Вывод без пробелов, через запятую. Но все равно результат нет.
0

#9 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 688
  • Регистрация: 20-Март 09
  • Репутация: 2 261
  • IPB version:3.1.x
 

Отправлено 27 Октябрь 2015 - 11:27

Это тот случай когда нужно еще раз внимательно проверить. Вы случайно с формой записи не ошиблись? С группой пользователя?
0

#10 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 112
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 27 Октябрь 2015 - 12:05

Просмотреть сообщениеsiv1987 27 Октябрь 2015 - 11:27 сказал(а):

Это тот случай когда нужно еще раз внимательно проверить. Вы случайно с формой записи не ошиблись? С группой пользователя?

Вот как все работает. У меня создано поле типа Radio с ключом webinars_group_access. Для этого поля я включил Show in display template (то есть показ на странице записи). Шаблон показа вот такой - {$value|raw}. Вот настройки самого поля:

Вложение  2015-10-27_130406.png (8,85К)
Количество загрузок: 9

Конструкция в шаблоне Record:
{{if \IPS\Member::loggedIn()->inGroup(explode(',', $record->customFieldDisplayByKey('webinars_group_access')))}}
 <div>Контент</div>
{{endif}}

Чтобы исключить все, но я перепроверил ID групп. Был залогинен и разлогинен. Сейчас настойки такие чтобы контент показывался вообще для всех (то есть даже не авторизованным). Я отлично понимаю что если не работает, то это ошибка в моих действиях.
0

#11 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 27 Октябрь 2015 - 13:18

Не вижу ничего, чтобы мешало корректной работе.

Вы забыли указать права доступа данного поля.Хотя я вижу у Вас на форуме "2,3,4,6,13,22,23", значит могу видеть поле как гость.
0

#12 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 112
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 27 Октябрь 2015 - 13:22

Права доступа проверил. Просмотр значения поля доступен для всех.
0

#13 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 27 Октябрь 2015 - 13:35

Покажите больше кода.

Я вижу
<div id="webinar_video">
          <!--Видят студенты и администратор-->
          
           2,3,4,6,13,22,23
          <!--Заглушка для гостей-->
          
          
        </div>


Что я должен видеть, как гость?
0

#14 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 112
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 27 Октябрь 2015 - 13:39

Вот весь контейнер.

<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>
          {{endif}}
           {$record->customFieldDisplayByKey('webinars_group_access', 'listing')|raw}
          <!--Заглушка для гостей-->
          {{if \IPS\Member::loggedIn()->inGroup(array($record->customFieldDisplayByKey('webinars_group_access')))}}
          <div>
            <div class="no_login_video">
              <div style="display:inline-block;vertical-align:middle;"><i class="fa fa-ban"></i>&nbsp;&nbsp;<a target="_blank" href="/login/">Войдите на сайт</a> для просмотра этого вебинара.</div>
              <div style="display:inline-block;vertical-align:middle;height:100%;width:0px;"></div>
            </div>
          </div>
          {{endif}}
          
        </div>

0

#15 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 27 Октябрь 2015 - 13:55

          <!--Заглушка для гостей-->
          {{if \IPS\Member::loggedIn()->inGroup(array($record->customFieldDisplayByKey('webinars_group_access')))}}
Опять некорректный код используете. Вам же во 2-ом посте написали, как надо.

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

Для гостей можете писать так
{{if !\IPS\Member::loggedIn()->member_id}}


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

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна