prowebber.ru - Тут есть все для настоящих вебмастеров

Мы в твиттере Наша страничка на FaceBook! Сообщество вебмастеров в VK Мы в телеграме!

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

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


Данный материал предоставлен сайтом ProWebber.ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно {AJAX FULL-STORY} — модуль AJAX-загрузки полной новости для 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. Если вы хотите, чтобы кеш модуля автоматически не чистился - можно изменить этот параметр.

Подробнее о настройках и работе с модулем читайте в обновляемой документации.

Надеюсь модуль будет полезен не только мне. Жду ваших отзывов!




+27

Просмотры: 3919 Комментарии (6)
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1pilot233

  • 22 января 2015 12:39
  • Регистрация: 17.11.2009
  • ICQ: --
  • Комментариев: 126
На индексацию это никак не повлияет??? Ее надо ставить я так понял в короткую новость, а хотя ссылку в заголовке на полную новость оставить и все нормально будет.

0

#2ПафНутиЙ

  • 22 января 2015 21:47
  • Регистрация: 8.03.2010
  • ICQ: 817233
  • Комментариев: 400
pilot233,
А каким образом возможно влияние на индексацию?

--------------------

+2

#3Snamp

  • 24 января 2015 08:47
  • Регистрация: 11.05.2010
  • ICQ: --
  • Комментариев: 104
Поставил, единственный минус, теперь не могу войти на сайт под учеткой с главной страницы (не грузится форма входа), только с полной новости можно зайти. как исправить можно?

0

#4youvtomske

  • 24 января 2015 10:59
  • Регистрация: 30.10.2011
  • ICQ: --
  • Комментариев: 19
Snamp,
Скорее всего у вас конфликт с js, смотрите консоль

+1

#5kagorec

  • 27 января 2015 02:14
  • Регистрация: 24.01.2010
  • ICQ: --
  • Комментариев: 76
  • Выкл.
Респект Пафнутий, очередной полезный модуль. Спасибо.

0

#6river

  • 10 февраля 2015 18:50
  • Регистрация: 2.08.2012
  • ICQ: 447375916
  • Комментариев: 3
Подскажите пожалуйста, как сделать, что бы модальное окно появлялось не стандартное, а magnific popup? или любое другое, но не стандартное

0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.

SkripTers.biz - Снова с вами

https://culabra.ru — Блог вЭбмастЭра

DCOReARTs.COM - Услуги веб-дизайна и графики

Max-energy.top - Заработок на электросчетчиках;)

Skripters.info - все для вебмастера. Только эксклюзивный контент.

Поддержи сайт
Скрипты, cms, шаблоны, статьи по раскрутке

Опросы

Каких материалов НЕ хватает на сайте?

Шаблонов
Скриптов
Программ
Графики
Уроков и курсов

Архив новостей
Февраль 2018 (240)
Январь 2018 (143)
Декабрь 2017 (27)
Ноябрь 2017 (7)
Октябрь 2017 (10)
Сентябрь 2017 (4)

Последние комментарии:

  • Hosting Ukraine
  • Яндекс.Метрика

Искать людей

Ваши переписки