Перейти к содержанию
IPSGuru.ru - Сообщество веб администраторов

Модуль {AJAX FULL-STORY} 1.2.4


Рекомендуемые сообщения

Модуль {AJAX FULL-STORY} 1.2.4


Новость на DLE без загрузки и без обновления страницы!

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

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

Установка:
Распаковать содержимое папки upload в корень сайта.
В нужном месте любого шаблона вставить минимальный код: Быстрый просмотр


Где {news-id} - ID новости (обязательный параметр).
Так же можно использовать дополнительные атрибуты:
Быстрый просмотр

data-afs-template="mytemplate" - путь к шаблону модуля относительно текущей папки с шаблоном сайта.
Если на сайте разрешена смена скина, то путь будет построен относительно активного в данный момент шаблона сайта.
По умолчанию: **{THEME}/ajax/fullstory**. (Необязательный параметр).
data-afs-preset="mypreset" - путь к файлу с настройками модуля. По умолчанию не используется.
     3. В 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");
        });
});

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


 

Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйтесь. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...