{AJAX FULL-STORY} — модуль AJAX-загрузки полной новости для DLE » Techno-Co — Всё для вебмастера, для создание сайтов с нуля. {title}

Бесплатный модуль {AJAX FULL-STORY} позволяет организовать на сайте под управлением DataLife Engine быстрый просмотр полной новости на AJAX. А благодаря правильному кешированию он работает очень эффективно.

Особенности модуля

— Не требует каких-либо правок движка.- Учёт прав доступа к новости. Если пользователю по каким то причинам запрещено просматривать полную новость в настройках — он не сможет её посмотреть.- Подсчёт количества просмотров. Модуль учитывает настройки DLE и если требуется — засчитывает просмотр новости.- Корректная очистка кеша модуля. Кеш модуля очищается в соответствии с правилами автоочистки кеша DLE, поэтому в быстром просмотре новость будет всегда актуального содержания.- Поддержка всех тегов. Модуль поддерживает все теги шаблона fullstory.tpl. Если тег не нужен в быстром просмотре — вместо него будет пустота. (форма добавления комментариев, сами комментарии).- Кеширование на стороне клиента. Модуль отдаёт правильные заголовки. Если включено кеширование на сайте и пользователь повторно вызовет быстрый просмотр новости — браузер получит в ответ 304 статус и отдаст пользователю закешированную (в браузере) страницу.

Требования к установке

Версия DLE: 10.2+ (на более старых не проверялся, но должен работать вплоть до 9.6)Прямые руки.

Установка

Скачать актуальную версию модуляЕсли сайт работает в кодировке windows-1251, необходимо перекодировать файлы модуля в эту кодировку.Распаковать содержимое папки upload в корень сайта.В нужном месте любого шаблона вставить минимальный код:

Быстрый просмотр

где

{news-id}

ID новости (обязательный параметр).

Так же можно использовать дополнительные атрибуты:

Быстрый просмотр

data-afs-template=»mytemplate» — Путь к шаблону модуля относительно текущей папки с шаблоном сайта. Если на сайте разрешена смена скина, то путь будет построен относительно активного в данный момент шаблона сайта. По умолчанию: **{THEME}/ajax/fullstory**. (Необязательный параметр).

data-afs-preset=»mypreset» — Путь к файлу с настройками модуля. По умолчанию не используется.

В js файл шаблона вставить:

$(document).on('click', '[data-afs-id]', function () {
        var $this = $(this),
                $data = $this.data();

        $.ajax({
                        url: dle_root + 'engine/ajax/full-story.php',
                        type: 'GET',
                        dataType: 'html',
                        data: {
                                newsId: $data.afsId, // Обязательная переменная
                                preset: ($data.afsPreset) ? $data.afsPreset : '', // Название файла с настройками (необязательно)
                                template: ($data.afsTemplate) ? $data.afsTemplate : '', // Название файла с шаблоном (необязательно)
                        },
                })
                .done(function (data) {
                        var $html = $(data);

                        // Данные получены, можно заняться разбором и показать их в диалоге
                        // Ниже простейший пример вывода контента в стандартном модальном окне DLE

                        var modalId = 'afs-' + $data.afsId + '-' + $data.afsPreset + '-' + $data.afsTemplate;
                        modalId = modalId.replace(/\//g, "-");

                        var $modalBlock = $('');

                        $modalBlock
                                .appendTo('body') // Добавляем блок на страницу
                                .find('#' + modalId) // Ищем интересующий нас селектор
                                .html($html) // Вставляем в него полученный код
                                .dialog({ // Показываем модальное окно
                                        width: 800
                                });

                })
                .fail(function () {
                        console.log("full-story error");
                });
});

В CSS-файл шаблона вставить код для стилизации выводимых ошибок:

.afs-error {
        /*Общий стиль для всех ошибок*/
        padding: 20px;
        background: #fff;
        color: #424242;
}
.afs-news-error {
        /*Стиль ошибки, если новость не найдена*/
        background: #eceff1;
}
.afs-tpl-error {
        /*Стиль ошибки, если не найден шаблон*/
        color: #b71c1c;
}
.afs-perm-error {
        /*Стиль ошибки, если не достаточно прав для просмотра полной новости*/
        background: #e65100;
        color: #F5F5F5;
}

Не забудьте подправить JS и CSS код под свой сайт smile.

Параметры, принимаемые модулем

Модуль принимает через GET-запросы следующие параметры:

newsId — Обязательный параметр. ID новости для показа.
template — Путь к шаблону модуля относительно текущей папки с шаблоном сайта. Если на сайте разрешена смена скина, то путь будет построен относительно активного в данный момент шаблона сайта. По умолчанию:

{THEME}/ajax/fullstory

preset — Путь к файлу с настройками модуля. По умолчанию не используется.

Настройки модуля

Настройки модуля хранятся в отдельном файле, это сделано для безопасной передачи настроек и уменьшения нагрузки на хостинг.Для хранения настроек был выбран формат шаблона т.к. его можно отредактировать через админпанель.При формировании настроек необходимо соблюдать следующий синтаксис:- Параметры необходимо писать по одному в строке.- Имя параметра и его значение необходимо разделять знаком равенства.

На данный момент возможно использование следующих параметров:

fields — Поля, отбираемые из БД. Доступны следующие поля для запроса:- short_story, full_story, xfields, comm_num, fixed, tags

— Так же можно использовать поле all, тогда будут отобраны все возможные поля новости из БД. Аналогичный результат будет, если не передавать в модуль переменную preset или передать её пустой.

cachePrefix — Префикс кеша, создаваемого модулем. По умолчанию full. Если вы хотите, чтобы кеш модуля автоматически не чистился — можно изменить этот параметр.

Автор: ПафНутиЙ