Переопределение шаблонов плагинов внутри темы Есть решение

Так и не нашел, есть ли возможность оверрайда шаблонов фронтенда плагина внутри темы оформления. Например как в Joomla?

2 ответа

  • 2
    Леонид Вакуленко Webasyst 15 апреля 2015 04:08 # Решение

    Если плагин предусмотрел такую возможность, то может быть. Но если вы не нашли, то вряд ли. Да и я что-то таких продвинутых плагинов не знаю...

    В общем случае нет.

    • +1

      Очень жаль, было бы хорошо в следующей версии сделать так, чтобы при компоновке шаблона, фреймворк сначла проверял папку (например [app]/themes/[theme]/plugins/[plugin]/templates/....) и, если в ней имеется нужный шаблон, то применять его, в противном случае применять стандартный шабон из папки плагина.
      Это позволило бы дизайнерам изначальо офрмлять любой доступный плагин.

      • +2
        Алексей Алексей Webasyst 16 апреля 2015 06:04 #

        Это создаст больше проблем разработчикам как тем так и плагинов:
        Создатель плагина обновил шаблон, а создатель темы нет. Результат некорректное отображение плагина и куда в этом случае направлять недовольного пользователя?

        • +1
          1. Обновление опционально.
          2. Фреймоврк уже имеет возможность определять зависимости.
          3. Можно добавить опцию "Использовать стандартный шаблон для плагина XXX" и ждать пока разработчик темы обновит шаблон для плагина...


      • +1

        Это не в ту степь... Я и без поиска знаю что где найти в этом фреймворке)) Спасибо)

        • +2

          Это ответ не вам, а Леониду :)

          В Поиске для Сайта я предусмотрел возможность переопределения стандартного шаблона шаблоном из темы.

          Решается парой строчек в плагине даже без поддержки фреймворком.

          • +1

            Ну так и есть) Но для этого разработчикам плагинов нужжно предусматривать такую возможность. Разве команда webasyst обяжет всех разработчиков плагинов фронтэнда делать такую фичу, но это будет долгий и трудоемкий процесс.
            За пример спасибо, буду в своих плагинах вводить поддержку переопределения шаблонов.

            И у меня есть подобный вариант

            http://www.webasyst.ru/store/plugin/shop/viewedproducts/

  • 3

    1) Лучшим решением будет письмо разработчику интересующего вас плагина с предложением. Мол вы даете ему дизайн, а он уже реализует возможность простой его смены в настройках. Как в плагине быстрого заказа или заказа обратного звонка(сорян, других таких пока не видел). Плюсы для обоих сторон есть. А вот условия(кто сверстает), уже индивидуально обговаривать.

    2) Переопределить стили можно всегда и без участия разработчика плагина. Рассмотрим пример на "Уведомление о поступлении"(нет других подходящих под рукой).

    Во-первых, в теме вы можете с помощью хука(!) выставить его в отдельном месте от этого же хука, добавив простое условие. То есть вместо:
    {foreach $frontend_product as $_}{$_.cart}{/foreach}
    написать:
    {foreach $frontend_product as $plugin_id=>$_}{if $plugin_id ne "arrived-plugin"}{$_.cart}{/if}{/foreach}

    Тогда в в этом месте выведутся все плагины, использующие этот хук, кроме нашего "Уведомление о поступлении". Теперь в специально отведенном для него месте пишем:
    {foreach $frontend_product as $plugin_id=>$_}{if $plugin_id ne "arrived-plugin"}{$_.cart}{/if}{/foreach}

    И в этом месте наоборот выведется только этот плагин. И вот проблему с персональным местом без использования ручной вставки(не во всех же плагинах есть) мы решили. Остается вопрос внешнего вида. В наше время с помощью CSS можно сделать многое. Топовые плагины хорошо заточены под кастомную стилизацию. Нужно лишь у одного из родительских блоков добавить определенный класс. Например .my_personal_arrived_style. А уже в CSS переопределяем все нужные стили по этому родителю. То есть .my_personal_arrived_style .plugin_arrived-button { color:red; }. И так далее по этой логике.

    Вот и получили в итоге полностью свой вид и место в шаблоне без связи с разработчиком плагина.


    Лишь в редких случаях нужно менять сам шаблон плагина(при условии, опять же, его продуманности для кастомного дизайна). Но связь с разработчиком никто не отменял.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите