Как сделать макет модуля, который будет отображаться во всех темах


Вот ситуация: у меня есть несколько самодельных модулей, все они протестированы и работают с использованием темы по умолчанию. Затем мы купили и установили новую тему. Переключился на новую тему, и модули не отображаются. После нескольких попыток/неудачных тестов я обнаружил, что мне нужно скопировать соответствующие файлы макета и шаблонов в соответствующие папки недавно установленной темы.

Итак, мой вопрос: что я должен сделать, чтобы все мои модули работали с любым тема установлена после установки модуля?

Author: Yaroslav, 2013-01-22

5 answers

Поместите все в пути base/default.

Пример:

app/design/frontend/base/default

skin/frontend/base/default

 17
Author: Mark Shust at M.academy, 2018-03-12 06:28:26

Суровая правда в том, что вы не можете действительно гарантировать, что они будут. Размещение ваших файлов в base/default (или default/default, если они переопределяют основные шаблоны - поскольку вы не хотите перезаписывать базовые файлы при установке модуля, хотя это вынуждает вас сохранять дубликаты для enterprise edition) гарантирует, что они станут резервными, но файлы тем всегда будут иметь приоритет высшего уровня.

Большинство модулей поставляются с руководством по установке, в котором упоминается, как копировать файлы шаблонов к теме пользователя, если у них есть собственная тема. Это, пожалуй, лучшее, что вы можете сделать.

 5
Author: Andrew Quackenbos, 2016-03-24 15:02:09

Одна вещь, которую мы использовали пару раз, - это [Фабрицио Бранка][1] [Пользовательский запасной вариант][2] modlue. Это очень полезный модуль для определения вашей собственной резервной иерархии пользовательских тем. Единственное, что вы можете сделать, это указать:

  1. custom/theme

  2. base/default

  3. default/default

Затем любые модули, которые помещают свои собственные шаблоны в тему default/default. Не будет работать, если они пытаются переопределить пакеты base/default.

Ты можно указать любое количество пакетов/тем в пользовательской резервной иерархии.

[1]: http://www.fabrizio-branca.de / [2]: http://www.fabrizio-branca.de/custom-design-fallbacks-in-magento.html

 4
Author: Luke Mills, 2018-03-12 06:32:00

Любой файл шаблона и макета в base/default будет загружен, если он не будет переопределен где-то по пути. Однако, если ваш пользовательский модуль представляет собой какой-то виджет, вам следует убедиться, что он отображается там, где это необходимо. Если, например, вы вносите изменения, которые отображаются на странице продукта через getChildHtml, то эти вызовы также должны быть в соответствующей теме. Однако, если ваши шаблоны модулей сами по себе являются страницами и они не загружаются из base/default, то что-то блокирует макет конфигурация, и вы должны найти, что.

 2
Author: Petar Dzhambazov, 2016-03-24 15:02:33

На этот вопрос нет простого ответа. Это зависит от имеющихся у вас модулей. Например, некоторые компании-модули, переопределяющие основные файлы. Поэтому вам следует сначала проверить, какие файлы доступны в app/etc/modules и app/code/local/Mage, app/code/community/Mage папки. Как вы, возможно, знаете, первая папка - это папка инициализации модуля, в которой вы можете отключить или включить модули, связанные файлами xml. Последние две папки (если они доступны) являются папками, переопределяющими основной код.

Затем откройте один из xml-файлов файл, доступный в каталоге etc/modules. Вы увидите что-то вроде следующего:

<?xml version="1.0"?>
<config>
<modules>
    <Company_Namespace>
        <active>true</active>
        <codePool>local</codePool>
    </Company_Namespace>
</modules>

Здесь важными частями являются Company и Namespace. При посещении папок app/code/local или app/code/community вы увидите папку с именем Company, за которой следует подпапка с именем Namespace.

При поиске Namespace вы увидите подпапку с именем /etc. В этой папке хранится файл конфигурации, связанный с модулем config.xml. В этом файле есть строки конфигурации, связанные с модулем, на которые вы можете ссылаться, какие файлы связаны с этим модуль.

Как я уже сказал в своей первой строке, этим трудно управлять.

 1
Author: Oğuz Çelikdemir, 2013-01-22 22:11:22