Kabak |
|
---|---|
Плагин работы с пользователями в админке. Обновил для работы с Cotonti 0.9.24 beta и добавил экстраполя. должен работать с Cotonti 0.9.23 и PHP 8.1.2 Как пользоваться плагином ? Как быстро создать нового пользователя ? 1) устанавливаем имя , Email , подпись. ( по умолчанию плагин берёт из своих настроек ) 2) Если на вашем сайте есть обязательные поля которые должен заполнить пользователь при регистрации, то они отобразятся в разделе Обязательные экстраполя Их необходимо заполнить, иначе плагин напишет сообщение об ошибке и поьзователь не создасться. Если обязательные экстраполя отсутствуют, то в разделе экстраполя будет написано, что поля отсутствуют. после заполнения всех полей нужно нажать серую кнопку "Создать пользователя" под формой. Если всё хорошо, то вверху будет сообщение об успешном создании.
3) Если необходимо отредактировать профиль пользователя нужно нажать на его имя в таблице. Откроется такая же форма как в модуле users , но с дополнительными кнопками. 3.1) Кнопка "Обновить" её нужно нажать ,если вы хотите сохранить внесённые вами изменения в профиль пользователя. 3.2) Кнопка "Вернуться" Вернёт вас на главную страницу плагина Userman со списком всех пользователей на вашем сайте. 3.3) Кнопка "Изменить временный доступ к группам" - это временное назначение пользовтелю доступа к группам на вашем сайте. Например, вы хотите разрешить кому-нибудь на время читать какой-то раздел на форуме или страницы которые не доступны пользователям с уровнем Members Так удобно управлять индивидуальными "подписками" - временному доступом к ресурсам на вашем сайте. 3.4) Кроме основной группы пользователю вы можете отметить любую группу выше по уровню, для установки доступа ко всем ресурсам доступным этому уровню пользователей. В графе "Причина установки доступа к группам" можно укзать пометку для вас. Это просто текст с информацией для авмина о причинах открытия доступа пользователю. Дата начала доступа (по умолчанию устаналивается текущей). Просто оставляйте текущую дату в этом поле. ( Отложенный доступ пока не реализован ) Дата окончания доступа (по умолчанию устаналивается текущей). Это дата окончания доступа. Как только пользователь авторизуется на вашем сайте плагин проверит, не пора ли отключить доступ. И если дата на сервере больше чем указанная в этом поле, временный доступ пользователю к группам отключится. Если время жизни кукисов выдаваемых вашим сайтом велико - больше суток , и пользователю не нужно проходитьавторизацию, то плагин не отработает и не отключится доступ. В планах сделать проверку при каждом посещении сайта пользователем.
В таблице есть столбец TGA. Здесь оттображается у кого есть временный доступ к другим группам и активен ли этот доступ. В блоке Фильтры можно ввести Email и найти пользователя по Email ( необходимо полное совпадение ). Так же можно найти по имени Пользователя можно удалять по одному. Справа на против каждого есть красная кнопка удаления. Она с запросом подтверждения действия. Есть возможность группового удаления. Слева чекбоксы. Можно выбрать одного или сразу ВСЕХ в соотвествии с установленным фильтром. Если вы нажмёте на серую кнопки "Удалить всех выбранных" , то плагин удалит всех отмеченных чекбоксами без предупреждения.
Внизу на каждой странице плагина есть подсказка |
|
Отредактировано: Kabak (22.10.2023 13:57, 1 год назад) |
Alex300 |
|
---|---|
Отлично. Было бы здорово еще и тут обновить описание Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ |
Argont |
|
---|---|
#47272 Kabak: пожалуйста, спокойно, я серьезно только поддерживыю новые идеи движка, о которых боюсь и сами разработчики не осведомлены, я не "поддеваю" , но немного не понимаю механику, точнее математику в файлах и иногда поржать над задравшим подбородок разработчиком
|
Kabak |
|
---|---|
Я не понимаю суть вопроса. Что-то не работает или работает неправильно ? |
Argont |
|
---|---|
Не пугайте так больше ))) знаю что полей штук пять, захожу в таблицу - пусто. беда видна тогда, когда префикс отличается от `cot_` в userman.admin.php строку 'UM_EXTRA_FIELDS' => cot_url('admin','m=extrafields&n=cot_users'), замените на 'UM_EXTRA_FIELDS' => cot_url('admin','m=extrafields&n='.$db_users),
Добавлено 49 минут спустя: и не разобрался, аватарки пользователей не подтягиваются при редактировании и просмотре. я так понимаю, это где нужно прописать, чтоб теги пользователя генерировались. Добавлено 1 час спустя: без этой функции работает спокойно function cot_generate_um_usertags($user_data, $tag_prefix = '', $emptyname='', $allgroups = false, $cacheitem = true)
Добавлено 9 минут спустя: в userman.admin.php foreach ($sqlusers as $urr) { $jj++; $temp->assign(array( 'UM_ROW_NUM' => $jj, 'UM_ROW' => $urr )); $temp->assign(cot_generate_um_usertags($urr, 'UM_ROW_')); заменил на foreach ($sqlusers as $urr) { $jj++; $temp->assign(array( 'UM_ROW_NUM' => $jj, 'UM_ROW' => $urr, )); $temp->assign(array( 'UM_URL_FOR_EDIT' => cot_url('admin', 'm=other&p=userman&a=edit&id='.$urr['user_id']), )); $temp->assign(cot_generate_usertags($urr, 'UM_ROW_')); в userman.admin.tpl строку <td class="centerall">{UM_ROW_NAME} </td> заменил на <td class="centerall"><a href="{UM_URL_FOR_EDIT}">{UM_ROW_NICKNAME}</a></td> кстати и автарки пошли )) Добавлено 27 минут спустя: в userman.edit.php сразу после $delete_pfs = cot_module_active('pfs') ? cot_checkbox(false, 'um_edit_userdelpfs', $L['PFS']) : ''; добавить $temp->assign(cot_generate_usertags($urr, 'UM_EDIT_'));
иногда поржать над задравшим подбородок разработчиком
|
|
Отредактировано: Argont (05.11.2023 05:37, 1 год назад) |
Kabak |
|
---|---|
Благодраю за найденные ошибки. Как устраню, напишу здесь С фото и аватарками всё сложнее. Вам просто показывают фото и аватар, но чтобы заменить... нужно подумать как это сделать. без cot_generate_um_usertags() вас будет выкидывать в модуль users
|
|
Отредактировано: Kabak (05.11.2023 12:29, 1 год назад) |
Argont |
|
---|---|
#47303 Kabak: ни разу не выкидывало )) а по аватаркам, я их уже подтянул, а то, что их редактировать отсюда на сейчас не получится - не критично, прямо на аватар повесил ссылку сразу на редактирование пользователя с фронтэнда, если вдруг там что не пристойное. что я не понял, так почему при деинсталяции плагина не удаляется таблица из базы. а в остальном, было интерересно на выходном поковыряться иногда поржать над задравшим подбородок разработчиком
|
Kabak |
|
---|---|
Какая именно таблица не удаляется ? |
Argont |
|
---|---|
#47305 Kabak: в инсталляторе только одна ))) выдавало фатал эрор указывая на $db->query("DROP TABLE IF EXISTS `cot_userman`"); пришлось отказаться пока от сценария в userman.uninstall.php полностью это все на последней версии движка с репозитория иногда поржать над задравшим подбородок разработчиком
|
Kabak |
|
---|---|
Вчера вечером проверил - не подтверждается. У меня cot_userman удаляется в 0.9.24 бета и ночью обновил репозиторий. Добавлены Аватарки и Фото, но при удалении фото или аватаруи в плагине пока выбрасывает в другую локацию. Разбираюсь с этим |
Dayver |
|
---|---|
#47305 Kabak: Тут правильно писать так $db->query("DROP TABLE IF EXISTS $db_userman"); Поскольку если будет использоватся не стадартный префикс к таблицам то и удаление закончится ошибкой. А тут что бы быть точным нужно писать не "баз" а "таблиц" Pavlo Tkachenko aka Dayver
|
Kabak |
|
---|---|
Dayver, благодарю. обновил репозиторий Как взаимодействовать с модулем Users и плагином UserImages чтобы не копировать + не модернизировать их функции , но при этом всё работало в админке ? Я может чего-то не понимаю, но вынужден копировать и модернизировать некоторые функции из Users и UserImages только потому, что нужно возвращать движок не в Users и UserImages, а в админку в Userman. Я понимаю, что это неправильно, но не могу догадаться для красивого решения. |
Argont |
|
---|---|
#47310 Kabak: если копировать то смотря что и для чего, а дублировать думаю точно лишнее. смотря какой вопрос перед вами стоит, а затем уже искать, как законнектить то, что уже есть в модуле с вашим плагином. иногда поржать над задравшим подбородок разработчиком
|
Kabak |
|
---|---|
Argont , Если вы знаете Cotonti и умеете писать плагины, то прошу вас, высказывайтесь по существу, чтобы вопрос решался, а не просто что-то сказать. Мой вопрос я чётко описал. Если вы знаете на него ответ, то помогайте. Всё это пишеься для всех и бесплатно. Заодно и уровень владения движком подтянем вместе.
Задача была написать удобный менеджер пользователей в админке |
Argont |
|
||||
---|---|---|---|---|---|
#47312 Kabak: я хотел как лучше, не хочу разводить демагогию, котонти знаю не настолько хорошо как вы думаете, здесь важно понимать конкретную задачу (нужна функция и в определенном месте) а затем отслеживать связи, и как их подключать уже пример приводил
"Задача была написать удобный менеджер " - это размытая задача, даже для человека, а системе нужно четко, в нужном участке/локации выполнение функции, которая сообщаятся с модулем пользователей. пример конкретной задачи, который бы нам помог имел бы вопрос: "как при создании пользователя, ему сразу сделать N-авторизаций". с таким вопросом можно работать. Добавлено 2 часа спустя: Вот, я бы сказал дествительно прекрасный пример (готовая конструкция) импорта данных по запросу из параметров запроса, которые затем можно будет использовать уже по всему плагину. и не прийдется в при создании пользователя заводить $umuser['user_logcount'] = cot_import('um_userlogcount','P','INT'); а просто используем 'UM_CREATE_USER_LOGCOUNT' => cot_inputbox('text', 'um_userlogcount', $cfg['plugin']['userman']['defaultlogcount'], array('size' => 32, 'maxlength' => 64)), а для его редактирования, тоже не прийдется заводить $euser['user_logcount'] = cot_import('ruserlogcount','P', 'INT'); где уже просто используем 'UM_EDIT_LOGCOUNT' => cot_inputbox('text', 'ruserlogcount', $urr['user_logcount'], array('maxlength' => '8')), и можно указать произвольное количество посещений, отличимое от того, что у нас по дефолту в сетапе defaultlogcount=04:string::17:
Добавлено 1 минута спустя: сори за сумбор в тексте Добавлено 11 минут спустя: кроме того, как писал выше, а конкретно и в частности при редактировании данных пользователя, используя $temp->assign(cot_generate_usertags($urr, 'UM_EDIT_')); в userman.function.php я вовсе закоментировал function cot_build_um_country($flag) и function cot_build_um_flag($flag) и т.д. работает. Добавлено 23 минуты спустя: если надумаете редактировать дату последнего визита пользователя(авторизацию) $euser['user_lastlog'] = (int)cot_import_date('ruserlastlog'); и 'UM_EDIT_LASTLOG' => cot_selectbox_date($urr['user_lastlog'], 'long', 'ruserlastlog').' '.Cot::$usr['timetext'],
иногда поржать над задравшим подбородок разработчиком
|
|||||
Отредактировано: Argont (06.11.2023 14:05, 1 год назад) |