
Красивый и в тоже время удобный способ для чтения комментариев !
Хак 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"> </td><td width="20px" align="center"><img src="/templates/Default/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