AJAX FULL-STORY 1.2.4 : AJAX-загрузка полной новости

AJAX FULL-STORY 1.2.4 : AJAX-загрузка полной новости

Этот модуль позволит организовать на сайте, под управлением DLE, быстрый просмотр полной новости на AJAX. А благодаря правильному кешированию он работает очень эффективно.


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

Установка:
1. Распаковать содержимое папки upload в корень сайта.

2. В нужном месте любого шаблона добавить минимальный код:
<span data-afs-id="{news-id}">Быстрый просмотр</span>

где {news-id} - ID новости (обязательный параметр).

3. Так же можно использовать дополнительные атрибуты:
<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" - путь к файлу с настройками модуля (по умолчанию не используется).

4. В 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");
		});
});

5. В 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. Если вы хотите, чтобы кеш модуля автоматически не чистился - можно изменить этот параметр.

ajax-full-story-1_2_4-ajax-zagruzka-polnoj-novosti.zip
Создайте аккаунт или авторизуйтесь для скачивания
 
Версия DLE: 9.0-11.0
Кодировка: win-1251
Автор: ПафНутиЙ
Источник
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.