Как скрыть не активных пользователей (без подтверждения e-mail) из виджета списка новых пользователей?

InstantCMS 2.X

Стандартный виджет, выводящий список юзеров показывает неактивных пользователей

#1 21 сентября 2023 в 18:42

Есть виджет, выводящий новых пользователей. Есть условие подтверждения e-mail. Без подтверждения юзеры неактивные, с замочком. Но в списке новых пользователей выводятся неактивные юзеры. Как их скрыть?

Искал по сайту, но не нашел решение. Нашел только описание как сделать свой компонент и с помощью хуков сделать такой фильтр. Но мне не подходит, так как я не разработчик, я там ничего не понял. Нужен именно хак.

Может кто сталкивался с таким же вопросом и есть простое решение, какой код добавить в файл виджета, чтобы в списке не выводить неактивных пользователей, которые зарегались, но не подтвердили адрес .

#3 22 сентября 2023 в 08:21

Исключаем неактивных пользователей из списков

WebMan

Добрый день, WebMan.

Я конечно же нашел этот ваш пост. Без сомнений, это очень полезный и замечательный материал. В нем есть апдейт для компонента хуков, который вы описали в другом посте instantcms.ru/blogs/allright/kak-sozdat-svoi-komponent-dlja-hukov.html

Я даже попытался сделать этот компонент по вашей инструкции, но у меня не получилось установить, белый экран, наверное чего-то не хватает. А готовый архив с пакетом, который вы приложили к посту — удален с сервера, страница 404.

Я не разработчик, поэтому и говорил, что создание компонентов — для меня сложно, мне бы просто хак, про который я согласен помнить и обновлять после каждого обновления системы. 

#4 22 сентября 2023 в 11:52

Действительно, в постах блога побились ссылки на картинки и некоторые файлы. Пока у меня нет возможности их исправить, поэтому прилагаю архив с готовым пакетом пустого компонента из поста «Как создать свой компонент для хуков?». После установки на него нужно накатить обновление из поста «Исключаем неактивных пользователей из списков».

Хаки — не лучший способ изменения InstantCMS. Но если Вам очень хочется, то можно перед этой строкой в /system/controllers/users/widgets/list/widget.php

  1. list($fields, $model) = cmsEventsManager::hook('profiles_list_filter', array($fields, $model));

добавить строку

  1. $model->filterIsNull('is_locked');

Все эксперименты, естественно, лучше производить на локальной копии сайта.

#5 22 сентября 2023 в 14:41

Но если Вам очень хочется, то можно перед этой строкой в /system/controllers/users/widgets/list/widget.php

Спасибо! Это работает, удалось скрыть неактивных из списка.

Мне не то, чтобы хочется хак, просто разработка компонента слишком долго и сложно для меня. А так-то я с вами согласен, что это неправильно, и более верный путь — это создание хуков. Не отказываюсь от этой затеи, и хотелось бы сделать все правильно.

Вы написали, что приложите архив, но кажется забыли его приложить. 

#6 22 сентября 2023 в 14:58

Вроде архив приложил, но может что-то забыл нажать. Дублирую.

Прикрепленный файл
webman-install-1-0-0.zip 4 Кб
#7 22 сентября 2023 в 19:34

Вроде архив приложил, но может что-то забыл нажать. Дублирую.

WebMan

Спасибо! Этот пакет удалось установить. Также установил апдейт, в нем только пришлось поменять версию (package = «1.0.0») и тогда встало. Хак удалил, включил опцию в компоненте. Все работает! Вы прекрасной души человек, WebMan. Премного благодарен за помощь!

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