Вывод сообщения - комментарий удален


После удаления комментария пользователя, на его месте остается сообщение ***Комментарий удален***. Это иногда полезно, когда нужно удалить из статьи комментарии и при этом сохранить последовательность обсуждения. При этом комментарий не удаляется физически и удалить его полностью можно из админ-панели. Ниже представлено два варианта этой реализации.


Важно: при использовании этого хака рекомендуется отключить в настройках DLE возможность редактирования собственных комментариев пользователем.

Вариант 1. После удаления комментария на его месте, от Пользователя, остается сообщение ***Комментарий удален***

Установка:
1. Открыть engine/ajax/deletecomments.php и найти:
$db->query( "DELETE FROM " . PREFIX . "_{$allowed_areas[$area]['comments_table']} WHERE id = '$id'" );
		
		// обновление количества комментариев у юзера 
		if( $is_reg ) {
			$author = $db->safesql($author);
			$db->query( "UPDATE " . USERPREFIX . "_users set comm_num=comm_num-1 where name ='$author'" );
		}
		
		// обновление количества комментариев в новостях 
		$db->query( "UPDATE " . PREFIX . "_{$allowed_areas[$area]['counter_table']} SET comm_num=comm_num-1 where id='$post_id'" );

Заменить на:
$lang_text = '***комментарий удалён***';
$db->query("UPDATE " . PREFIX . "_{$allowed_areas[$area]['comments_table']} SET text='$lang_text' WHERE id='$id'");

2. Открыть engine/modules/comments.php и найти:
$db->query( "DELETE FROM " . PREFIX . "_{$allowed_areas[$area]['comments_table']} WHERE id = '$id'" );

Заменить на:
$lang_text = '***комментарий удалён***';
$db->query("UPDATE " . PREFIX . "_{$allowed_areas[$area]['comments_table']} SET text='$lang_text' WHERE id='$id'");

Найти еще ниже:
$db->query( "DELETE FROM " . PREFIX . "_{$allowed_areas[$area]['comments_table']} WHERE id = '$id'" );

Заменить на:
$lang_text = '***комментарий удалён***';
$db->query("UPDATE " . PREFIX . "_{$allowed_areas[$area]['comments_table']} SET text='$lang_text' WHERE id='$id'");

Готово!

Вариант 2. После удаления комментария на его месте, от Робота, остается сообщение ***Комментарий удален***

Установка:
1. Открыть engine/ajax/deletecomments.php и найти:
$db->query( "DELETE FROM " . PREFIX . "_{$allowed_areas[$area]['comments_table']} WHERE id = '$id'" );
		
		// обновление количества комментариев у юзера 
		if( $is_reg ) {
			$author = $db->safesql($author);
			$db->query( "UPDATE " . USERPREFIX . "_users set comm_num=comm_num-1 where name ='$author'" );
		}
		
		// обновление количества комментариев в новостях 
		$db->query( "UPDATE " . PREFIX . "_{$allowed_areas[$area]['counter_table']} SET comm_num=comm_num-1 where id='$post_id'" );

Заменить на:
$lang_text = '***комментарий удалён***';
$db->query("UPDATE " . PREFIX . "_{$allowed_areas[$area]['comments_table']} SET user_id='0', autor='Робот', email='', text='$lang_text', is_register='0', approve='1' WHERE id='$id'");

2. Открыть engine/modules/comments.php и найти:
$db->query( "DELETE FROM " . PREFIX . "_{$allowed_areas[$area]['comments_table']} WHERE id = '$id'" );

Заменить на:
$lang_text = '***комментарий удалён***';
$db->query("UPDATE " . PREFIX . "_{$allowed_areas[$area]['comments_table']} SET user_id='0', autor='Робот', email='', text='$lang_text', is_register='0', approve='1' WHERE id='$id'");

Найти еще ниже:
$db->query( "DELETE FROM " . PREFIX . "_{$allowed_areas[$area]['comments_table']} WHERE id = '$id'" );

Заменить на:
$lang_text = '***комментарий удалён***';
$db->query("UPDATE " . PREFIX . "_{$allowed_areas[$area]['comments_table']} SET user_id='0', autor='Робот', email='', text='$lang_text', is_register='0', approve='1' WHERE id='$id'");

Готово!
 
Версия DLE: 10.2-11.0
Автор: Sillys Developer
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.