ScriptLife » DataLife Engine » Модули / Плагины DLE » Shortstory template switch : переключатель шаблонов кратких новостей для DLE 14.x

Shortstory template switch : переключатель шаблонов кратких новостей для DLE 14.x

22 окт 2022, 14:28
Добавил: ScriptLife
11
0
Данный материал предоставлен сайтом ScriptLife.ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
  • Описание
    • Версия DLE: 14.x
    • Автор: TeraMoune

Ajax переключатель шаблонов кратких новостей. Шаблоны могут иметь собственные уникальные html разметки, вы ограничены лишь своей фантазией и навыками владения языка html. Модуль предназначен для людей которые более-менее что-то в этом понимают. Так как переключение шаблонов происходит посредством технологии Ajax то все бинды и события навешанные в момент открытия страницы будут сброшены и их потребуется инициализировать повторно. Всё это делается в JS коде описанном в блоке Дополнительной информации ниже.

Еще могут возникнуть проблемы с различными модулями и плагинами которые применяли какие-то операции и функции вне файла show.short.php. Если таковые будут, то разработчик этого плагина должен будет внести соответствующие правки в файл change_template.php.

Возможности:

  • Использует Cookie для хранения префикса шаблона.
  • Использует отдельные tpl шаблоны.
  • Ajax метод переключения.

Дополнительная информация:

  1. Если нужно изменить HTML разметку, это делается в изменениях над файлов engine/modules/functions.php. В функции show_button класса templateSwitcher.
  2. В файле engine/ajax/change_template.php есть переменная $custom_navigation в состоянии true пагинация добавляется в отдельном ключе ответа json от сервера если она размещалась при помощи тега {newsnavigation}. В JS ниже нужно указать место для пагинации.
  3. В переменной $change_tpl_mod перечислены разделы в которых будет разрешено менять шаблон. По умолчанию установлено 3 раздела где задействован файл short.story.php. Если у Вас есть модули с другими разделами которые так же используют данный файл для формирования кратких новостей то добавьте название раздела в переменную, и в том модуле будет так же меняться шаблоны при условии, что условный модуль не переназначает имя подключаемого shortstory.tpl. Однако многие как раз это делают.
  4. engine/ajax/change_template.php - файл обработчик ответов. В этом файле формируются ответы шаблона, если есть какие-то модули которые добавляли кастомные теги и функции вне файла short.story.php то аналогичные правки нужно делать и в обработчике.
  5. Для изменения jаvascript кода переключателя делается в правках файла engine/modules/main.php. В коде представленном ниже. В этом коде так же производится повторная инициализация js скриптов.
  6. jаvascript:
    $onload_scripts[] = <<<HTML
    $(".template-switcher a[data-template]").click(function(){
    
    if( $(this).hasClass('current') ) return false;
    $(this).addClass('current').siblings().removeClass('current');
    
    let new_templ = $(this).data('template');
    let content_block = $('#content').find('.left-content > div').eq(0);
    
    setcookie('short_template', new_templ);
    
    ShowLoading();
    
    $.post(dle_root + "engine/ajax/controller.php?mod=change_template", {user_hash: dle_login_hash}, function(response) {
    
    if( response.success ) {
    
    content_block.html(response.returnbox);
    content_block.append(response.navigation);
    
    //This place re-initialization jаvascript plugins
    
    } else {
    
    DLEAlert('Ошибка', 'Так-вот');
    
    }
    
    HideLoading();
    
    }, 'json');
    
    return false;
    });
    HTML;
let content_block = $('#content').find('.left-content > div').eq(0); Если объяснить коротко, то код ищет объект с конкретным атрибутом id="content" и если есть, то в нём же пытается найти дочерние объекты с атрибутом class="left-content" в котором находится div. В него то и будет помещена разметка из шаблонов кратких новостей которая содержится в переменной data.
Строкой ниже определяется куда добавлять разметку пагинации. Если переменная $custom_navigation установлена в true. Если в false то строку стоит закомментировать.
  1. Установить xml плагин.
  2. Создать копии шаблона shortstory.tpl и затем присвоить каждой копии имя в качестве суффикса shortstory_suffix.tpl.
  3. Перечисление суффиксов шаблонов делается в переменной $template в виде ($suffix_template => text\icon). Переменная находится в первой правке файла functions.php в классе templateSwitcher. По умолчанию установлено два варианта: один по умолчанию, второй компактный стиль. 
    Код:
    В качестве ключа указывается суффикс шаблона, а значением является название или html код с иконкой. Разделяются запятыми (Подробней о PHP:Array)
    Если в шаблоне оставить одно значение, то переключатель не отображается. Так же функции становятся неактивными.
  4. В main.tpl или других шаблонах тегом {switcherButton} выводится переключатель. {templates-class} выводит суффикс шаблона для дополнительной вариативности стилей.

Готово!

Ctrl
Enter
Заметили ошЫбку?
Выделите текст и нажмите Ctrl+Enter
Мы в

Комментарии

Минимальная длина комментария - 50 знаков. комментарии модерируются
  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
Комментариев еще нет. Вы можете стать первым!

Политика конфиденциальности

Сайт использует идентификационные файлы cookies для хранения информации. «Cookies» представляют собой файлы, которые могут использоваться сайтом для идентификации посетителей... Больше информации