Действия по воспроизведению
- Установлен Magento 2.0.4 на WAMP server 3.0, Windows 10 Pro - 32bit, PHP 5.6.15, MySQL 5.7.9
- Создана дочерняя тема themeparent для Magento_blank в app \ design \ frontend \ Vendor1 \ themeparent с несколькими XML-файлами макета для расширения вместе с шаблоном. phtml файлы. Активируется от админа. Работает нормально.
theme.xml => <parent>Magento/blank</parent>
- Создана еще одна дочерняя тема themechild вышеупомянутой темы themeparent (которая сама является дочерней для пустого magento). Эта дочерняя тема создается в папке другого поставщика, то есть Vendor2. Путь к этой теме: app \ design \ frontend \ Vendor2 \ themechild. Внутри создан XML-файл макета для расширения макета родительской темы. Активировал эту дочернюю тему второго уровня от администратора. Файлы .xml даже не обрабатываются. Не работает.
theme.xml => <parent>Vendor1/themeparent</parent>
3b. Хотя файлы шаблонов .phtml или .css, существующие в childtheme, работают нормально, если соответствующие контейнеры / блоки макета вызываются из файлов макета Vendor1 \ themeparent.
- Если для теста та же дочерняя тема childtheme помещена внутри того же поставщика ее родительского объекта, то есть Vendor1, путь к теме станет app \ design \ frontend \ Vendor1 strong> \ themechild, а затем те же файлы макета .xml работают нормально.
Уже пробовал очистить папки public / static и var от magento. Также пробовал после запуска с командами cli
php bin/magento setup:static-content:deploy
php bin/magento indexer:reindex
php bin/magento setup:upgrade
Но ничего не решило.
Ожидаемый результат
Требуемое наследование темы выглядит следующим образом:
Magento_blank => Vendor1 _themeparent => Vendor2 _childtheme. (обратите внимание, поставщик отличается)
Результат: макет .xml не загружается в дочернюю тему.
Но если для теста наследование устроило так:
Magento_blank => Vendor1 _themeparent => Vendor1 _childtheme. (обратите внимание, поставщик такой же)
Результат: макет .xml загружается правильно и отлично работает в детской теме.
Согласно рекомендациям Magento 2 по http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html#set-a-parent-theme четко указано что «Родительская и дочерняя темы могут принадлежать разным поставщикам. Например, ваша настраиваемая тема может быть унаследована от пустой темы Magento». Итак, если я создаю дочернюю тему второго уровня (у поставщика 2) из родительской темы (у поставщика 1), которая является дочерней по отношению к Magento_blank (поставщик: Magento), в идеале это должно работать нормально. Но этого не происходит. Ни один из XML-файлов макета не обрабатывается для вывода, если они принадлежат другим поставщикам. Если я поставлю обе темы у одного поставщика, они будут работать нормально.
Фактический результат
Расширение .xml-файлов макета в дочерней теме 2-го уровня в другой папке поставщика не работает.
Почему Magento 2.0.4 не работает должным образом для двухуровневого наследования тем от разных поставщиков? Это серьезная проблема, как если бы вы предполагали, что где-то купили платную тему (которую они создали, унаследовав Magento_blank) , и теперь вы хотите создать свою дочернюю тему этой платной темы, но в другой папке vendorname (очевидно, под названием вашей компании), вы не сможете этого сделать! У вас есть только два варианта: либо сделать дочернюю тему внутри имени поставщика; или отредактируйте их файлы .xml тем, чтобы вызвать файлы шаблонов вашей дочерней темы или .css / .js (если в ur vendorname); во втором случае обновления будут явно потеряны, что странно и не рекомендуется.
Тогда какое решение ??