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

1318
Для версии 1.8

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

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

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

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

Код PHP:
if ($do == 'delete'){
        if (!isset($_REQUEST['item'])){
			if ($id >= 0){
				$model->deleteUser($id);
			}
		} else {
			$model->deleteUsers($_REQUEST['item']);
		}
		header('location:?view=users');
	}
И меняем его на этот

Код PHP:
if ($do == 'delete'){
        if (!isset($_REQUEST['item'])){
			if ($id >= 0){
				$model->deleteUser($id, true);
			}
		} else {
			$model->deleteUsers($_REQUEST['item']);
		}
		header('location:?view=users');
	}
Все теперь при нажатии на удалить пользователя, он будет удаляться и из базы
Ссылка на источник в новостях | Фильтр всплывающая подсказка для статей
Комментарии (13)
Алхимик 20 сентября 2011 в 17:04 +1
Думаю многим действительно будет полезно.
Может кто-то даже сделает микро-хак и доработает до дополнительной кнопки в админке - "Удалить полностью"
Fuze 20 сентября 2011 в 22:06 +1
доработает до дополнительной кнопки в админке - "Удалить полностью"
пожалуйста
Марат 20 сентября 2011 в 17:40 0
Пользователи не удаляются полностью для того, чтобы в случае ошибки, можно было восстановить.
+ за старание, но всё же, наверно, лучше сделать кнопку в админке или задачу для cron.
Марат 20 сентября 2011 в 17:42 0
Подняли, кстати, актуальную тему. Многим пригодится.
Слава 20 сентября 2011 в 20:26 0
А если пользователь удалит сам сябя, с сайта, он сможет потом восстановить профиль?
Fuze 20 сентября 2011 в 20:57 +1
Код PHP:
dbDelete('cms_users', $_REQUEST['item']);
Вы смотрели что выполнит данная строчка? И что $_REQUEST['item'] это массив вы знали?

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