Как скрыть показ пользователя в списке?

InstantCMS 2.X
#1 9 августа 2017 в 09:56
Для системных юзеров (тех кто ведет проект) зачастую не актуально выводиться в общем списке пользователей.

Как можно их скрыть? Желательно конечно через админку что-то вроде опции у каждого юзера "не показывать в списке"

как возможно реализовать в двойке? может просто костылем и запросом в бд, где если стоит 1 то показывать, а 0 — непоказывать
#2 9 августа 2017 в 10:20
Можно добавить новую группу "Скрытые пользователи" и таких пользователей дополнительно класть в нее. А при выводе проверять лежит ли пользователь в этой группе. Это теория, писать код все-равно придется.
#3 9 августа 2017 в 11:27


Можно добавить новую группу "Скрытые пользователи" и таких пользователей дополнительно класть в нее.

@SmartControl

Тогда эту группу от группы "Администраторы" будет отличать только название. В таком случае будет лучше проверить, является ли пользователь Администратором)
#4 9 августа 2017 в 11:28
Если никто раньше не сделает, через часа 3-4 скину готовый вариант, т.к. знаю что нужно сделать примерно.
#5 9 августа 2017 в 11:33
легче мне кажется чекбокс сделать при редактировании- скрыть юзера. И в фронтенде вывода прописать что если чекбокс активен, то не выводить) тем самым и юзер будет полноценный и в нужной группе, но просто не будет показываться в списке. при этом по его личному урл можно к нему попасть
#6 9 августа 2017 в 11:37
yury, как вариант годится, но минус — лишнее поле. Мой же запланированный вариант просто будет проверять, является ли юзер админом или модератором, и если да, то не выводить.
#7 9 августа 2017 в 11:52

Тогда эту группу от группы "Администраторы" будет отличать только название.

Developper
Скрывать то можно не только администраторов, но и еще кого-то… может редактор захочет спрятаться или какие-то технические аккаунты. Да и можно расширить эту функцию и дать пользователям самим "прятаться", например за деньги))

легче мне кажется чекбокс сделать при редактировании- скрыть юзера.

yury
Лишний чекбокс… Но по реализации, возможно, будет проще и красивей. Компонент с хуком — без влезания в код движка.
#8 9 августа 2017 в 11:53

Мой же запланированный вариант просто будет проверять, является ли юзер админом или модератором, и если да, то не выводить.

Developper
это просто не всегда может быть челвоек с правами админа или модера, хотя вариант хороший. это может быть просто технический специалист с правами юзера. поэтому чекбокс или ее какой может есть более простой и логичный вариант, пусть даже доп.поле
#9 9 августа 2017 в 11:54


Скрывать то можно не только администраторов, но и еще кого-то… может редактор захочет спрятаться или какие-то технические аккаунты.

@SmartControl

Вот я об этом и сказал. Разве просто сделать проверку пользователя на принадлежность к определенным группам, не обязательно к одной — не лучшее решение?
#10 9 августа 2017 в 12:12
yury, все готово.
В файл list.tpl.php по пути /templates/default/controllers/users на строке 22 добавляете следующий код:
  1.  
  2. <?php if ($profile['groups'][0] == '5' || $profile['groups'][0] == '6') { continue; } ?>
  3.  
Должно получиться так:
  1.  
  2. ...
  3. <?php foreach($profiles as $profile){ ?>
  4.  
  5. <?php if ($profile['groups'][0] == '5' || $profile['groups'][0] == '6') { continue; } ?>
  6.  
  7. <div class="item<?php if (!empty($profile['item_css_class'])) { ?> <?php echo implode(' ', $profile['item_css_class']); ?><?php } ?>">
  8. ...
  9.  
В данном случае проверка будет происходить на модератора и администратора.
#11 9 августа 2017 в 12:55

Разве просто сделать проверку пользователя на принадлежность к определенным группам, не обязательно к одной — не лучшее решение?

Developper
такое решение скроет получается всех юзеров группы. а если скрыть только некоторых, кто не должен светиться лишний раз, то уже решение чуть другое получается.
#12 9 августа 2017 в 13:36
yury, в таком случае да, создаете поле "Скрытый пользователь" например, а потом в выводе проверяете на значение этого поля.
#13 9 августа 2017 в 14:57


yury, в таком случае да, создаете поле "Скрытый пользователь" например, а потом в выводе проверяете на значение этого поля.

Developper

Создал поле hide в компоненте пользователей и назначил ему чекбокс.

Что прописать теперь в файле вывода списка, что если чекбокс активен, то не показывать?)
#14 9 августа 2017 в 14:59
yury, сейчас покопаюсь, напишу)
#15 9 августа 2017 в 15:16
yury, вставляем в файл /templates/default/controllers/users/list.tpl.php на 22ую строку код:
  1.  
  2. <?php if ($profile['hide']) { continue; } ?>
  3.  
Получится:
  1.  
  2. <?php foreach($profiles as $profile){ ?>
  3.  
  4. <?php if ($profile['hide']) { continue; } ?>
  5.  
  6. <div class="item<?php if (!empty($profile['item_css_class'])) { ?> <?php echo implode(' ', $profile['item_css_class']); ?><?php } ?>">
  7.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.