Skip to content

Commit

Permalink
v.1.1
Browse files Browse the repository at this point in the history
- Небольшой рефакторинг и оптимизация кода
#1
- Теперь модуль отдаёт правильные заголовки, это экономит ресурсы и
ускоряет загрузку контента
- Добавлена совметсимость с DLE 9.6-10.1
- Добавлена возможность стилизации выводимых ошибок (у каждой ошибки
свой css-класс)
- По умолчанию полная новость показывается в стандартном модкльном окне.
  • Loading branch information
pafnuty committed Jan 10, 2015
1 parent c92af05 commit 558d9fb
Show file tree
Hide file tree
Showing 3 changed files with 583 additions and 460 deletions.
89 changes: 63 additions & 26 deletions README.md
Expand Up @@ -2,50 +2,87 @@
Бесплатный модуль для загрузки полной новости в DLE средствами AJAX

## Требования
- Версия DLE: **10.3** (на более старых не проверялся)
- Версия DLE: **10.2+** (на более старых не проверялся, но должен работать вплоть до 9.6)

## Особенности модуля
- Не требует каких-либо правок движка
- Учёт прав доступа к новости
- Подсчёт количества просмотров (если это разрешено)
- Корректная очистка кеша
- Корректная очистка кеша модуля
- Поддержка всех тегов
- Кеширование на стороне клиента (модуль отдаёт правильные заголовки)

## Установка
- Залить содержимое папки **upload** в корень сайта.
- В нужном месте любого шаблона вставить
1. Если сайт работает в кодировке windows-1251, необходимо перекодировать файлы модуля в эту кодировку.
2. Залить содержимое папки **upload** в корень сайта.
3. В нужном месте любого шаблона вставить
``` html
<span class="btn" data-fs-id="{news-id}">Быстрый просмотр</span>
```
где `{news-id}` -- ID новости (**обязательный параметр**)
- В js файл шаблона вставить:
4. В js файл шаблона вставить:
``` javascript
$(document).on('click', '[data-fs-id]', function(event) {
event.preventDefault();
$(document).on('click', '[data-afs-id]', function () {
var $this = $(this),
$data = $this.data();

console.log($data);
$.ajax({
url: dle_root + 'engine/ajax/full-story.php',
type: 'GET',
dataType: 'html',
data: {
newsId: $data.fsId,
preset: ($data.fsPreset) ? $data.fsPreset : '',
template: ($data.fsTemplate) ? $data.fsTemplate : '',
},
})
.done(function (data) {
var $html = $(data);
// Тут можно писать обработчик полученных данных
console.log($html);
})
.fail(function() {
console.log("full-story error");
});

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-файл шаблона вставить код для стилизации выводимых ошибок:
``` 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;
}
```
## Документация
- в работе.

0 comments on commit 558d9fb

Please sign in to comment.