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

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

#1pilot233

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

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 (510)
Апрель 2018 (438)
Март 2018 (483)
Февраль 2018 (402)
Январь 2018 (133)
Декабрь 2017 (25)

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

  • Скрипты, cms, шаблоны, статьи по раскрутке
  • Яндекс.Метрика

Искать людей

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