У нас вы можете скачать бесплатно AJAX вывод комментариев для DLE .

AJAX вывод комментариев для DLE

 
1. подготовим нашу страницу для приема ответа от сервера, для этого добавим в html код элемент с уникальным идентификатором.

В функцию build_comments добавим следующий код:


после:
$tpl->load_template( $template );  

добавим:
$tpl->copy_template  = '<div id="comm___">' .$tpl->copy_template;

в конце функции найдем переменную $tpl->result['content'] = "......................."; и добавим закрывающий тег </div>

$tpl->result['content'] = ".......................</div>";


Для того чтобы задействовать js каждой ссылке из блока навигации по страницам мы назначим событие onclick вызывающие функцию которую мы напишем в конце.Так как мы не знаем какая страница будет запрошена пользователем то будем назначать данное событие всем ссылкам блоке навигации.

В функцию build_navigation вносим следующие изменения


чтото вроде этого
$pages .="........ onclick="CommNav('{$j}','{$news_id}'); return false;.............."


Имя вызываемой функции будет CommNav, аргументами будет номер страницы и идентификатор новости.

2. Создадим файл в папке engine/ajax/ с произвольным именем к которому будем обращаться за новыми комментариями



в данном участке мы определили пользователя, или гостя для формирования комментариев определенного содержания, вы ведь не хотите чтобы
пользователь имел права администратора и мог производить нежелательные действия с комментариями)).
Также мы объявили переменную для работы с шаблонизатором и присвоили ей методы класса шаблонизатора, кто знаком с ООП все поймет и без объяснений, кто же не знаком ссылка выше поможет вам понять основы данного метода программирования.

далее вы можете воспользоваться классом DLE_Comments и попробовать вывести комментарии в ответе), я же просто выполню в файле весь процесс создания блока комментариев в цикле.




также нужна навигация с учетом текущего местонахождения пользователя на странице комм.


В данном варианте будут выведены все страницы.

Выведем полученные результаты

@header("Content-type: text/css; charset=" . $config['charset']);
echo $buffer;


Функция CommNav будет выглядеть следующим образом


function CommNav (id,news_id){
var ajax = new dle_ajax();
    var varsString = "";
    ajax.onShow();
    ajax.setVar("action", "show_comm"); //передаваемый параметр будет в $_POST['action']
    ajax.setVar("start_query",id);//страница
    ajax.setVar("news_id", news_id); // id новости
    if(document.getElementById('navigation_block')){//скроем стандартную навигацию
        var hidden_block = document.getElementById('navigation_block');
        hidden_block.style.display='none'
    }
    ajax.requestFile = dle_root + "engine/ajax/cимя файла.php";
    ajax.method = 'POST';
    ajax.element = 'comm___';//добавленный в начале урока элемент
    ajax.execute = true;
    ajax.sendAJAX(varsString);
    return false;
}


Для того чтобы убрать стандартную навигацию по страницам заключите весь код в файле navigation.tpl в div с id navigation_block, также вы можете
обозначит область действия данного кода применив следующие условие

if ($_REQUEST['action'] == 'show_comm')
{
сам код
}else{
die;
}
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 

Опросы

Модули какого типа вам интересны больше всего?

Вывод информации
Оптимизация CMS
Поисковая оптимизация
Защита данных
Автоматизация упр. элементов (меню и тд.)
Развлекательные (плееры,викторины и тд.)
Отдельные Компоненты
Все выше перечисленные
Мне всё равно

Календарь новостей

«    Май 2012    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 

Самое читаемое