Показать контент всем пользователям кроме некоторых ID

InstantCMS 2.X
#1 26 июля 2022 в 13:32

Есть пример кода, когда показываем всем, кроме одного, у которого ID = 315/ Как указать 2 и более ID?

  1. <?php if($item['user']['id'] == 315) { ?>
  2. <?php if (!cmsUser::isLogged()){ ?>
  3. <a href="/auth/login" class="ajax-modal"><?php echo LANG_THEME_YOUR_COMPANY; ?></a>
  4. <?php }else{ ?>
  5. <a class="ajax-modal" href="/iforms/my"><?php echo LANG_THEME_YOUR_COMPANY; ?></a>
  6. <?php } ?>
  7. <?php } ?>
#2 26 июля 2022 в 13:44
  1. <?php if($item['user']['id'] == 315) { ?>

заменить на

  1. <?php if($item['user']['id'] == 315 OR $item['user']['id'] == 2 OR $item['user']['id'] == 3) { ?>

Слово OR означает или, получается если $user_id ровно 315 или $user_id ровно 2 или $user_id ровно 3

#3 26 июля 2022 в 13:50
  1. <?php if($item['user']['id'] == 315) { ?>

заменить на

  1. <?php if($item['user']['id'] == 315 OR $item['user']['id'] == 2 OR $item['user']['id'] == 3) { ?>

Слово OR означает или, получается если $user_id ровно 315 или $user_id ровно 2 или $user_id ровно 3

My-InstantCMS.Ru

спасибо, работает!

#4 26 июля 2022 в 14:05

Массивом лучше. Если показываем контент всем пользователям, кроме bad_users, то так

  1. <?php
  2. $bad_users = [315, 2, 3];
  3. if(in_array($this->cms_user->id, $bad_users)) {
  4. // тут инфо для bad_users
  5. } else {
  6. // тут для всех good_users
  7. }
  8. ?>

Но если речь идет о показе всего контента, кроме того, где автор контента находится в bad_users, то так

  1. <?php
  2. $bad_users = [315, 2, 3];
  3. if(in_array($item['user']['id'], $bad_users)) {
  4. // тут инфо для bad_users
  5. } else {
  6. // тут для всех good_users
  7. }
  8. ?>
#5 26 июля 2022 в 16:02

Зачем так извращаться?

Создаем группу лишенцев, добавляем лишенцев в неё и оперируем правами группы.

#6 26 июля 2022 в 16:37

Массивом лучше. Если показываем контент всем пользователям, кроме bad_users, то так

  1. <?php
  2. $bad_users = [315, 2, 3];
  3. if(in_array($this->cms_user->id, $bad_users)) {
  4. // тут инфо для bad_users
  5. } else {
  6. // тут для всех good_users
  7. }
  8. ?>

Но если речь идет о показе всего контента, кроме того, где автор контента находится в bad_users, то так

  1. <?php
  2. $bad_users = [315, 2, 3];
  3. if(in_array($item['user']['id'], $bad_users)) {
  4. // тут инфо для bad_users
  5. } else {
  6. // тут для всех good_users
  7. }
  8. ?>
Loadырь

Такой вариант просто более кошерный или в нем есть еще преимущества? Уточняю, так как действительно интересно

#7 26 июля 2022 в 17:29

Такой вариант просто более кошерный или в нем есть еще преимущества?

Def

Да, более кошерный, но в этом его преимущество. Ошибиться в добавлении цифры сложнее, чем в добавлении этой фразы " OR $item['user']['id'] == 2 ", особенно когда этих юзеров будет десятка три.

Создаем группу лишенцев, добавляем лишенцев в неё и оперируем правами группы.

Ris

Тоже вариант сделать так

  1. if ($this->cms_user->isInGroup(6){ // тут 6 - id группы пользователей
  2. // тут показываем всё для группы "6" (Администраторы)
  3. } else {
  4. // тут показываем всем остальным
  5. }

И потом в админке загонять негодяев в эту группу. А еще лучше использовать компонент «Книга жалоб и санкций», который сам будет особо настырных переводить в группу лишенцев ))).

#8 26 июля 2022 в 23:49
  • if ($this->cms_user->isInGroup(6){ // тут 6 — id группы пользователей
  • // тут показываем всё для группы «6» (Администраторы)
  • } else {
  • // тут показываем всем остальным
  • }
Loadырь

Скобочку потеряли )

#9 27 июля 2022 в 00:31

Такой вариант просто более кошерный или в нем есть еще преимущества?

Def

Да, более кошерный, но в этом его преимущество. Ошибиться в добавлении цифры сложнее, чем в добавлении этой фразы " OR $item['user']['id'] == 2 ", особенно когда этих юзеров будет десятка три.

Создаем группу лишенцев, добавляем лишенцев в неё и оперируем правами группы.

Ris

Тоже вариант сделать так

  1. if ($this->cms_user->isInGroup(6){ // тут 6 - id группы пользователей
  2. // тут показываем всё для группы "6" (Администраторы)
  3. } else {
  4. // тут показываем всем остальным
  5. }

И потом в админке загонять негодяев в эту группу. А еще лучше использовать компонент «Книга жалоб и санкций», который сам будет особо настырных переводить в группу лишенцев ))).

Loadырь

Где посмотреть компонент «Книга жалоб и санкций»

#10 27 июля 2022 в 06:40

Скобочку потеряли )

Make

Точно, IDE в местном редакторе кода просто никакое (или плохому танцору всегда что-то мешает)) )

Надо так

  1. if ($this->cms_user->isInGroup(6)){ // тут 6 - id группы пользователей
  2. // тут показываем всё для группы "6" (Администраторы)
  3. } else {
  4. // тут показываем всем остальным
  5. }
#11 27 июля 2022 в 09:56

Скобочку потеряли )

Make

Точно, IDE в местном редакторе кода просто никакое (или плохому танцору всегда что-то мешает)) )

Надо так

  1. if ($this->cms_user->isInGroup(6)){ // тут 6 - id группы пользователей
  2. // тут показываем всё для группы "6" (Администраторы)
  3. } else {
  4. // тут показываем всем остальным
  5. }
Loadырь

Спасибо большое за столь подробный разбор ситуации:) Всегда знал и всем говорю, что сообщество InstantCMS самое дружелюбное :)

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.