Удаления пользователя через админку из базы

+22
2.33K
Для версии 1.8

При удалении пользователя из админ панели, он все равно остается в базе. Но на сайт уже не зайдет.
Зарегистрироваться под этим логином заново нельзя он будет занят.
Может это и правильно, для того что-бы не ломать структуру сайта.
Хотя иногда регистрация пользователя нужна только для попадания на закрытые страницы и т.п.
В общем эти изменения для тех кому надо, чтобы нажав на удалить пользователя, он был удален не только из списка админ панели, но и из базы данных...

Перед изменением, делаем Резервное копирование базы!!!

Открываем файл users.php из папки admin/applets

Находим код, примерно строка 109

  1.  
  2. if ($do == 'delete'){
  3. if (!isset($_REQUEST['item'])){
  4. if ($id >= 0){
  5. $model->deleteUser($id);
  6. }
  7. } else {
  8. $model->deleteUsers($_REQUEST['item']);
  9. }
  10. header('location:?view=users');
  11. }
  12.  
И меняем его на этот

  1.  
  2. if ($do == 'delete'){
  3. if (!isset($_REQUEST['item'])){
  4. if ($id >= 0){
  5. $model->deleteUser($id, true);
  6. }
  7. } else {
  8. $model->deleteUsers($_REQUEST['item']);
  9. }
  10. header('location:?view=users');
  11. }
  12.  
Все теперь при нажатии на удалить пользователя, он будет удаляться и из базы
+1
Алхимик Алхимик 13 лет назад #
Думаю многим действительно будет полезно.
Может кто-то даже сделает микро-хак и доработает до дополнительной кнопки в админке - "Удалить полностью"
+1
Fuze Fuze 13 лет назад #
доработает до дополнительной кнопки в админке - "Удалить полностью"
пожалуйста
0
Марат Марат 13 лет назад #
Пользователи не удаляются полностью для того, чтобы в случае ошибки, можно было восстановить.
+ за старание, но всё же, наверно, лучше сделать кнопку в админке или задачу для cron.
0
Марат Марат 13 лет назад #
Подняли, кстати, актуальную тему. Многим пригодится.
0
Слава Слава 13 лет назад #
А если пользователь удалит сам сябя, с сайта, он сможет потом восстановить профиль?
+1
Fuze Fuze 13 лет назад #
Код PHP:
dbDelete('cms_users', $_REQUEST['item']);
Вы смотрели что выполнит данная строчка? И что $_REQUEST['item'] это массив вы знали?

Достаточно вместо
Код PHP:
$model->deleteUser($id);
написать
Код PHP:
$model->deleteUser($id, true);
и при одиночном удалении, будет удаляться профиль полностью! Т.е. достаточно было заглянуть в код и посмотреть что делается в методе deleteUser.
+1
lucku lucku 13 лет назад #
Спасибо за вариант.
Но я планировать сделать продолжение этой темы, где будет возможность удаления через админ панель, не только пользователя, но и его блоги, его текст на форуме, фотографии и т.д. на выбор. Поэтому пришлось указывать из какой таблицы удалять.
0
Fuze Fuze 13 лет назад #
не за что.
см. второй коммент.
0
Telema93 Telema93 13 лет назад #
Зачем оно нужно, если можно через phpmyadmin сделать, если уж требуется
+1
lucku lucku 13 лет назад #
Да я с Вами полностью согласен, но некоторые изготавливают сайт на заказ и используют эту систему, но не каждый заказчик хорошо владеет интернетом и тем более phpmyadmin. Куда легче и безопасней для него будет удалить пользователя через админку.
0
Telema93 Telema93 13 лет назад #
думаю как вариант удаления: полное и частичное - то было бы лучше :)
0
lezginka.ru lezginka.ru 13 лет назад #
phpmyadmin - неудобно
0
toropa toropa 11 лет назад #
а как под 1.10?

Еще от автора

Добавляем в редактор новые формы
Здесь будет описано как добавлять новые формы в редактор, на основе этой информации можно добавить любую форму.
Фильтр скрыть / показать текст для статей
Фильтр работает следующим образом он подгружает скрытый текст и при клике на ссылку текст выводиться на сайте.
Фильтр всплывающая подсказка для статей
Разработан фильтр всплывающая подсказка, полностью построен на CSS и 2-х изображений В редакторе выводиться достаточно просто {показ}пишем текст | пиш
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.