{AJAX FULL-STORY} — модуль AJAX-загрузки полной новости для DLE
10.01
Бесплатный модуль {AJAX FULL-STORY} позволяет организовать на сайте под управлением DataLife Engine быстрый просмотр полной новости на AJAX. А благодаря правильному кешированию он работает очень эффективно.
Особенности модуля
- Не требует каких-либо правок движка.
- Учёт прав доступа к новости. Если пользователю по каким то причинам запрещено просматривать полную новость в настройках - он не сможет её посмотреть.
- Подсчёт количества просмотров. Модуль учитывает настройки DLE и если требуется - засчитывает просмотр новости.
- Корректная очистка кеша модуля. Кеш модуля очищается в соответствии с правилами автоочистки кеша DLE, поэтому в быстром просмотре новость будет всегда актуального содержания.
- Поддержка всех тегов. Модуль поддерживает все теги шаблона fullstory.tpl. Если тег не нужен в быстром просмотре - вместо него будет пустота. (форма добавления комментариев, сами комментарии).
- Кеширование на стороне клиента. Модуль отдаёт правильные заголовки. Если включено кеширование на сайте и пользователь повторно вызовет быстрый просмотр новости - браузер получит в ответ 304 статус и отдаст пользователю закешированную (в браузере) страницу.
Требования к установке
- Версия DLE: 10.2+ (на более старых не проверялся, но должен работать вплоть до 9.6)
- Прямые руки.
Установка
- Скачать актуальную версию модуля
- Если сайт работает в кодировке windows-1251, необходимо перекодировать файлы модуля в эту кодировку.
- Распаковать содержимое папки upload в корень сайта.
- В нужном месте любого шаблона вставить минимальный код:
<span data-afs-id="{news-id}">Быстрый просмотр</span>
где
- ID новости (обязательный параметр).{news-id}
- Так же можно использовать дополнительные атрибуты:
<span data-afs-id="{news-id}" data-afs-template="mytemplate" data-afs-preset="mypreset" >Быстрый просмотр</span>
- 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 = $('<div style="display: none;"><div id="' + modalId + '"></div></div>'); $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 код под свой сайт
.
Параметры, принимаемые модулем
Модуль принимает через GET-запросы следующие параметры:
- newsId - Обязательный параметр. ID новости для показа.
- template - Путь к шаблону модуля относительно текущей папки с шаблоном сайта. Если на сайте разрешена смена скина, то путь будет построен относительно активного в данный момент шаблона сайта. По умолчанию:
{THEME}/ajax/fullstory
- preset - Путь к файлу с настройками модуля. По умолчанию не используется.
Настройки модуля
Настройки модуля хранятся в отдельном файле, это сделано для безопасной передачи настроек и уменьшения нагрузки на хостинг.
Для хранения настроек был выбран формат шаблона т.к. его можно отредактировать через админпанель.
При формировании настроек необходимо соблюдать следующий синтаксис:
- Параметры необходимо писать по одному в строке.
- Имя параметра и его значение необходимо разделять знаком равенства.
На данный момент возможно использование следующих параметров:
- fields - Поля, отбираемые из БД.
Доступны следующие поля для запроса:
- short_story, full_story, xfields, comm_num, fixed, tags
- Так же можно использовать поле all, тогда будут отобраны все возможные поля новости из БД. Аналогичный результат будет, если не передавать в модуль переменную preset или передать её пустой. - cachePrefix - Префикс кеша, создаваемого модулем. По умолчанию full. Если вы хотите, чтобы кеш модуля автоматически не чистился - можно изменить этот параметр.
Подробнее о настройках и работе с модулем читайте в обновляемой документации.
Надеюсь модуль будет полезен не только мне. Жду ваших отзывов!
Комментарии
Добавить комментарий
Комментировать могут только зарегистрированные пользователи