13.01.15, 09:52
1 комментарий
  DLE Модули

{AJAX FULL-STORY} — модуль AJAX-загрузки полной новости для DLE

Бесплатный модуль {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>


где

{news-id}


- 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 код под свой сайт smile.

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

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

{THEME}/ajax/fullstory


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

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

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

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

На данный момент возможно использование следующих параметров:
fields - Поля, отбираемые из БД.
Доступны следующие поля для запроса:
- short_story, full_story, xfields, comm_num, fixed, tags
- Так же можно использовать поле all, тогда будут отобраны все возможные поля новости из БД. Аналогичный результат будет, если не передавать в модуль переменную preset или передать её пустой.
cachePrefix - Префикс кеша, создаваемого модулем. По умолчанию full. Если вы хотите, чтобы кеш модуля автоматически не чистился - можно изменить этот параметр.

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

СКАЧАТЬ

Забрать
с облака

Реклама

Комментарии

  1. asura 14 января 2015 20:06                    

    А демо будет?

Напишите своё мнение

  • acuteaggressiveair_kissangel
    badbbbeachbeee
    biggrinbig_bossblumblush
    boastbombboredombye
    clappingcraycrazycurtsey
    dancedashdeclarediablo
    diroldon-t_mentiondownloaddrinks
    first_moveflirtfocusfool
    friendsgive_heartgive_rosegood
    hangheartheathelp
    hihunterhystericireful
    kingkisslaughlazy
    lolmail1mambaman_in_love
    mdamega_shokmoilmosking
    musicneanegativenew_russian
    okon_the_quietpardonparting
    partypilotpioneerpleasantry
    popcormpranksterprevedpunish
    roflrtfmrussiansad
    sarcasticscarescratchsearch
    secretsensoredshokshout
    slowsmilesmokesoldier
    soldier_girlsorryspitefulspruce_up
    stinkersuicidesunsuperstition
    swoonteasetenderthanks
    thisto_pick_ones_noseto_take_umbragetreaten
    umnikunknwvampirevava
    victorywackowhistlewink
    wizardyahooyesyu
    e101e102e103e104
    e105e106e107e108
    e109e110e111e112
    e113e114e115e116
    e117e118e119e120
    e121e122e123e124
    e125e126e127e128
    e129e130e131e132
    e133e134e135e136
    e137e138e139e140
    e141e142e143e144
    e145e146e147e148
    e149e150e151e152
    e153e154e155e156
    e157e158e159e160
    e161e162e163e164
    e165e166e167e168
    e169e170e171e172
    e173e174e175e176
    e177e178e179e180
    e181e182e183e184
    e185e186e187e188
    e189e190e191e192
    e193e194e195e196
    e197e198e199e200
    e201e202e203e204