Возвращаем Цитирование по нику в DLE

Возвращаем Цитирование по нику в DLE

Многие пользователи после того как перешли на новую версию скрипта dle 9.8 и выше больше не могли в комментариях обращаться к пользователям по нику, начиная с этого релиза происходила цитирование сообщения, что многим было не удобно или просто не нравилось. Многие не хотели с этим мирится и предложили в виде хака вернуть все как было раньше.

Первый способ
Открыть \engine\classes\comments.class.php
Найти:
if ($area == 'lastcomments') {

	  $tpl->set_block( "'\\[fast\\](.*?)\\[/fast\\]'si", "" );

Ниже добавить:
$tpl->set_block( "'\\[fast_author\\](.*?)\\[/fast_author\\]'si", "" );

Найти:
if( ($user_group[$member_id['user_group']]['allow_addc']) and $config['allow_comments'] == "yes" ) {

Выше добавить:
if( ($user_group[$member_id['user_group']]['allow_addc']) and $config['allow_comments'] == "yes" ) {
					if( ! $row['is_register'] or $row['name'] == '' ) $row['name'] = $row['gast_name'];
					else $row['name'] = $row['name'];
					$tpl->set( '[fast_author]', "<a href=\"#\" onclick=\"emoticon('[b]" . str_replace( array (" ", "&#039;" ), array ("&nbsp;", "&amp;#039;" ), $row['name'] ) . "[/b],'); return false;\" title=\"Обратиться по нику\">" );
					$tpl->set( '[/fast_author]', "</a>" );
				} else
					$tpl->set_block( "'\\[fast_author\\](.*?)\\[/fast_author\\]'si", "" );

И теперь в comments.tpl будет доступно:
[fast_author]Обратиться по нику[/fast_author]

Автора: madv1ch

Если вас не устроил вариант цитирования по нику от автора madv1ch, есть и другой способ предложенный G-Rey и вы сможете воспользоваться им.

Второй способ
Открыть \engine\classes\comments.class.php
Найти:
if ($area == 'lastcomments') {

	  $tpl->set_block( "'\\[fast\\](.*?)\\[/fast\\]'si", "" );

Ниже добавить:
$tpl->set_block( "'\\[fast_author\\](.*?)\\[/fast_author\\]'si", "" );

Найти:
if( ($user_group[$member_id['user_group']]['allow_addc']) and $config['allow_comments'] == "yes" ) {

Выше добавить:
   if( ($user_group[$member_id['user_group']]['allow_addc']) and $config['allow_comments'] == "yes" ) {
					if( ! $row['is_register'] or $row['name'] == '' ) $row['name'] = $row['gast_name'];
					else $row['name'] = $row['name'];
			$tpl->set( '[fast_author]', "<a onmouseover=\"dle_quote('" . str_replace( array (" ", "&#039;" ), array ("&nbsp;", "&amp;#039;" ), $row['name'] ) . "');\" href=\"#\" onclick=\"dle_ins('{$row['id']}'); return false;\" title=\"Обратиться к ".$row['name']."\">" );
					$tpl->set( '[/fast_author]', "</a>" );
				} else
					$tpl->set_block( "'\\[fast_author\\](.*?)\\[/fast_author\\]'si", "" );

В /engine/classes/js/dle_js.js
перед функцией:
function dle_copy_quote(qname)

добавить:
function dle_quote(qname) 
{
    dle_txt='[b]'+qname+'[/b],';
};

Правим также engine\modules\show.full.php:
Найти:
$tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\">" );

Вставить выше:
// reply 2 author hack
			$tpl->set( '[fast_author]', "<a onmouseover=\"dle_quote('" . str_replace( array (" ", "&#039;" ), array ("&nbsp;", "&amp;#039;" ), $row['autor'] ) . "');\" href=\"#\" onclick=\"dle_ins('{$row['id']}'); return false;\" title=\"Обратиться к ".$row['autor']."\">" );
			$tpl->set( '[/fast_author]', "</a>" );
//

Найти:
$tpl->set_block( "'\\[complaint\\](.*?)\\[/complaint\\]'si
4;, "" );

Вставить ниже:
$tpl->set_block( "'\\[fast_author\\](.*?)\\[/fast_author\\]'s
i", "" );

Инструкция для DLE 10.2:
Открыть \engine\classes\comments.class.php
Найти:
if ($area == 'lastcomments') {

	  $tpl->set_block( "'\\[fast\\](.*?)\\[/fast\\]'si", "" );

Ниже добавить:
$tpl->set_block( "'\\[fast_author\\](.*?)\\[/fast_author\\]'si", "" );

Дальше ищем начало такой строки:
if( ($user_group[$member_id['user_group']]['allow_addc']) and $config

Выше добавляем:
if( ($user_group[$member_id['user_group']]['allow_addc'])  and $config['allow_comments'] ) {
					if( ! $row['is_register'] or $row['name'] == '' ) $row['name'] = $row['gast_name'];
					else $row['name'] = $row['name'];
					$tpl->set( '[fast_author]', "<a href=\"#\" onclick=\"emoticon('[b]" . str_replace( array (" ", "&#039;" ), array ("&nbsp;", "&amp;#039;" ), $row['name'] ) . "[/b],'); return false;\" title=\"Обратиться по нику\">" );
					$tpl->set( '[/fast_author]', "</a>" );
				} else
					$tpl->set_block( "'\\[fast_author\\](.*?)\\[/fast_author\\]'si", "" );

В comments.tpl будет доступно:
[fast_author]Обратиться по нику[/fast_author]


Мы рекомендуем вам отказаться от цитирования новостей хотя бы из-за того ,что это переспам ваших новостей, дублирования контента, в нашем случаи это комментарием и не у всех на сайте комментарии состоят из нескольких строк. У кого-то на сайте происходят нормальные человеческие диалоги где оставляют комментарии с несколько сотнями слов в одном комментарии. Так же стоит отметить ,что из-за это ваша БД только будет разрастаться до громадных размеров, что скажется на производительности вашего сайта. Если какой-то из способов не работает на вашей версии напишите нам в комментарии, а так же присылайте и другие варианты реализации цитирования по нику в dle.

UPD: Начиная с версии DataLife Engine 10.5 и выше данная функция присутствует прямо из коробки, мы рекомендуем вам обновиться и вам больше не придется вносить изменения в файлах скрипта, что облегчит вам задачу при обновление вашего сайта до новой версии.
Также рекомендуем

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.