Переопределение одних и тех же видов Бэк-офиса в нескольких модулях - PullRequest
1 голос
/ 10 января 2020

Моя функция связана с концепцией Переопределение видов бэк-офиса

Как сказано в документации, чтобы переопределить шаблон администратора в модуле, нам нужно :

  • Найден правильный шаблон (с использованием панели инструментов отладки)
  • Создайте тот же путь (modules / mod_name / view / PrestaShop / ... / ...) и добавьте представление
  • Обратитесь к исходному шаблону с использованием аннотации .
  • Обратитесь к существующему блоку, используя аннотацию block .

Basi c Пример Hello World:

// Refer to the original template this the extends annotation.
{% extends 'PrestaShopBundle:Admin/Product/CatalogPage:catalog.html.twig' %}

//Refer to an existing block using block annotation.
{% block product_catalog_filters %}
  Hello world!
{% endblock %}

Итак, переопределение представлений в бэк-офисе работает как шарм.

Но давайте представим себе этот вариант использования :

  • У нас есть модуль A , который переопределяет бэк-офис и использует блок ( ex: block product_catalog_filters ).
  • Мы хотим установить новый модуль B , который отменяет тот же вид вспомогательного офиса и тот же блок ( ex: block product_catalog_filters ).

Здесь у нас проблема: последний установленный модуль ( Модуль B ) переопределяет представление бэк-офиса. Но все переопределения из модуля A будут потеряны.

Я нашел решение. Но для меня это не очень хорошая практика.

Мы можем добавить пользовательский блок в желаемый вид бэк-офиса Prestashop. ( Поэтому нам нужно написать код в основном файле Prestashop ).

Если мы сделаем это, наш модуль сможет переопределить представление бэк-офиса и вызвать наш пользовательский блок.

С помощью этого пользовательского блока мы уверены, что только наш модуль собирается переопределить представление и избежать конфликта переопределения с потенциальными другими модулями.

Вам известен какой-либо другой способ сделать переопределение без необходимости писать код в файл ядра Prestashop?

...