Возвращаем Цитирование по нику в 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 (" ", "'" ), array (" ", "&#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 (" ", "'" ), array (" ", "&#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 (" ", "'" ), array (" ", "&#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 (" ", "'" ), array (" ", "&#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 и выше данная функция присутствует прямо из коробки, мы рекомендуем вам обновиться и вам больше не придется вносить изменения в файлах скрипта, что облегчит вам задачу при обновление вашего сайта до новой версии.