Хак древо комментариев Thread comments для DLE

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Хак древо комментариев Thread comments для DLE


Красивый и в тоже время удобный способ для чтения комментариев !
Хак dle Thread comments - дерево комментариев» отображает комментарии в виде древо, т.е. появляется возможности писать ответ на конкретный комментарий.
Хак древо комментариев Thread comments для DLE
Оформление настраивается по своему вкусу.
1. Открыть файл engine/modules/show.full.php и найти:

if( $comments_num > 0 ) {    ...........    ...........    ...........    ...........$tpl->result['content'] .= "n<span id='dle-ajax-comments'></span>n";


Всё что находится между ними (точки) замените на:

//---------------------------------------// "Начало" Древовидные комментарии//---------------------------------------$list_comments_otvet = array();$list_comments_db = array();$result = $db->query("SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, answer, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . USERPREFIX . "_users.email, news_num, comm_num, user_group, reg_date, signature, foto, fullname, land, icq, xfields FROM " . PREFIX . "_comments LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$news_id'");while($row = $db->get_row($result))    {        $list_comments_db[$row['id']] = $row['answer'];        $row_com_id[$row['id']] = $row['id']."|".$row['date']."|".$row['autor']."|".$row['icq']."|".$row['ip']."|".$row['foto']."|".$row['user_group']."|".$row['text']."|".$row['is_register']."|".$row['signature']."|".$row['news_num']."|".$row['comm_num']."|".$row['name']."|".$row['gast_email'];    }include (ENGINE_DIR.'/moduli/tree.comments.class.php');$tree_com = new blog_tree_comments();$tree_com->i = 0;$tree_com->list_db = $list_comments_db;$tree_com->row_com = $row_com_id;$tree_com->start();$count_com = $tree_com->i_echo();$tree_com->apocalypse();//---------------------------------------// "Конец" Древовидные комментарии//---------------------------------------


Далее найдите и удалите:

<form  method="post" name="dle-comments-form" id="dle-comments-form" action="{$_SESSION['referrer']}">


А выше этого добавьте:
$tpl->copy_template = "".$tpl->copy_template."<script language="javascript" type="text/javascript">var form_test = document.getElementById('addcomments_form').innerHTML;nvar count_com = {$count_com};</script>";        $tpl->copy_template = "<div id="addcomments_form">".$tpl->copy_template."</div>";


Далее найдите:

$tpl->set( '{full-link}', $full_link );


Далее вставьте:

$tpl->copy_template = "".$tpl->copy_template."<script type="text/javascript" src="/engine/ajax/tree.comments.js"></script><form  method="post" name="dle-comments-form" id="dle-comments-form" action="">";



В файл шаблона comments.tpl вставьте:
[comm-answer]Ответить[/comm-answer]<span id="cancel_answer" style="display: none;"></span>


В файле engine/ajax.js_edit.js найдите:
if (form.comments.value == '' || form.name.value == '')


Выше добавьте:

if(form.answer_id)    {        dle_comments_ajax.setVar("answer_id", form.answer_id.value);    }


Далее найдите:

dle_comments_ajax.element = 'dle-ajax-comments';


Замените на:

if(form.answer_id)        {            dle_comments_ajax.element = 'tree_comments_form-' + form.answer_id.value;            document.getElementById('button_answer_to_' + form.answer_id.value).innerHTML = "Ответить";        }            else        {            dle_comments_ajax.element = 'dle-ajax-comments';        }



Внимание! Только если вы не устанавливали модуль блоги:

В файле engine/ajax/addcomments.php найдите:
$_POST['comments'] = convert_unicode( $_POST['comments'], $config['charset'] );


Ниже добавьте:

$_POST['answer_id'] = intval($_POST['answer_id']);


Далее найдите:

$tpl->compile('content');


Выше добавьте:

$tpl->set('[comm-answer]', '');    $tpl->set('[/comm-answer]', '');    $answer_id = intval($_POST['answer_id']);    if($answer_id)        {            $tpl->copy_template = "<table width="100%" border="0"><tr><tdwidth="30px">&nbsp;</td><td width="20px" align="center"><img src="{THEME}/images/c_arrow.gif" border="0"></td><td valign="top">".$tpl->copy_template."</td></tr></table>";        }


В файле engine/modules/addcomments.php найдите:

Внимание! Такой текст встречаеся 2 раза, вам нужен именно второй. после него должно идти примерно такое:
$comments = $db->safesql( $row['text'] ) . "<br /><br />" . $comments; if( $update_comments ) {


Замените на:

$answer_id = intval($_POST['answer_id']);if ($update_comments and !$answer_id) {


Найдите 4 раза:

, approve


Замените на:

, approve, answer


Далее найдите 2 раза:

, '$where_approve'


Замените на:

, '$where_approve', '$answer_id'


Выполните запрос:

ALTER TABLE `dle_comments` ADD `answer` VARCHAR( 5 ) NOT NULL;ALTER TABLE `dle_post` ADD `answer` VARCHAR( 5 ) NOT NULL;

Установка ЗАКОНЧЕНА!

Рекомендуем скачать хак для DLE древо комментариев Thread comments
  • 0
Рубрика: DLE хаки » Хак для DLE
Ранее » Хак Drop Menu разделы админ панели в шаблоне DLE« Далее Подборка новых смайлов New smiles для DLE
Добавление комментарияОставить комментарий
  • № :5
  • 30 сентября 2011 15:32
Цитата: AngeriAnago
Thank you! I always wanted to write in my site something like that. Can I take part of your post to my blog?


You welcome!

Why not, if you specify the source of news and poster ......
  • № :4
  • 26 сентября 2011 14:18

Вся информация на нашем сайте dle шаблоны шаблон dle
шаблоны для dle 9.4 шаблоны для dle
  • № :3
  • 12 сентября 2011 06:40
Цитата: Shljapnikov1980
Не пашет

На какой версии ... и что значит не пашет .

тогда смотрите вариант
Модуль дле Древовидные комментарии v.1.2 DLE 9.x
  • № :2
  • 23 апреля 2011 14:44
Viktor,

Извиняюсь конечно! Увы но данный хак для старых версий 8.х предположительно для 9.0 может тоже работать

Исправил ... спасибо
  • № :1
  • 23 апреля 2011 12:06
На 9.2 выдает ошибку: Parse error: syntax error, unexpected '<' in ...../engine/modules/show.full.php on line 718
Он для какой версии?