Почему существует / base / default / layout и / default / default layout? Это кажется запутанным и излишним.
10
Короче говоря, default/default
это наследие от <1.4CE, где это был оригинальный базовый пакет. Основные темы Magento корабль в пакете по умолчанию до сих пор - так это не обязательно осуждается так же , как это наследство.
Поскольку default / default можно перезаписать при обновлении CE, не рекомендуется размещать файлы здесь - но плагины, пытающиеся обеспечить обратную совместимость с <1.3, могут намеренно размещать файлы здесь вместо base / default.
Источник: http://www.magentocommerce.com/knowledge-base/entry/magentos-theme-hierarchy#3.2
default
была очень полезным инструментом отладки.Я нашел еще лучший ответ на официальной вики Magento . (Это с 2012 года, поэтому я не уверен, устарела ли какая-либо информация - но, похоже, она применима к 1.8.1 из того, что я могу сказать.) Хотя я настоятельно рекомендую прочитать ее полностью (нажмите жирным шрифтом) ссылка), позвольте мне резюмировать это ниже.
О чем
/base
все?/base/default
был представлен в CE 1.4 и EE 1.8 для консолидации всех функций интерфейса приложения-логики в единую кодовую базу, которую вы никогда не должны редактировать. Он имеет ту же структуру каталогов, что и пакет дизайна с темой по умолчанию , но в нем отсутствуют некоторые ключевые CSS-файлы, поэтому они не рекомендуют использовать его в качестве единственного пакета дизайна и темы.Хорошей аналогией было бы сказать, что
/base
это/design/frontend
то, что/core
нужно/code
. Вы не должны изменять файлы внутри/base
. Вместо этого вы должны расширить его функциональность в своем собственном пакете нестандартного дизайна , который Magento сначала заглянет внутрь, прежде чем вернется к нему/base/default
- сначала он заглянет внутрь/design/frontend/{custompackagename}/{customthemename}
, затем снова/design/frontend/{custompackagename}/default/
откроется, и, наконец, снова откроется/design/frontend/base/default
.В самом деле, это просто следует рассматривать как
/base
-/default
подкаталог существует только потому, что резервная система Magento завершает свой путь через каждый пакет дизайна в своей/default
теме . Для ясности, пакет дизайна - это подкаталог внутри/design/frontend
, а тема - это подкаталог в пакете дизайна. Когда Magento просматривает пакет дизайна, будь то/base
или нет/{custompackagename}
,/default
тема всегда будет последним местом, которое Magento будет искать.Следовательно, поскольку основная цель
/base
состоит в том, чтобы служить конечной точкой в резервной системе, в соответствии с этой целью у нее никогда не будет никакой другой темы, кроме/base/default
.Почему
/default
тогда?Так почему же до сих пор
/design/frontend/default/default
? А почему нет/design/adminhtml/base/default
? Если честно, я не знаю ответа на второй вопрос. Но позвольте мне попытаться ответить на первый.Забыв унаследованную совместимость и т.д., я чувствую , что это могло бы быть гораздо легче понять , если это называли
/generic/default
вместо/default/default
. Таким образом , для целей этой дискуссии я буду ссылаться/app/design/frontend/default/
и/app/skin/frontend/default/
коллективно как «общий дизайн упаковки». Я буду ссылаться на все внутри этих каталогов, как если бы они были вызваны/app/design/frontend/generic
и/app/skin/frontend/generic
. Поскольку (по крайней мере, в случае с внешним интерфейсом) резервная система Magento больше не используется/app/design/frontend/default/
, я чувствую, что продолжать называть ее «по умолчанию» сбивает с толку, так как это слово подразумевает, что что-то является частью резервной цепочки , но универсальный пакет дизайна больше не является часть резервной цепи с момента введения/base
, Поэтому, называя его «универсальным пакетом дизайна» вместо «стандартного пакета дизайна», мы избавляемся от этой путаницы, говоря, что да, это просто набор общих тем, которые поставляются с Magento бесплатно, не подразумевая, что это часть резервной цепочки. : DПродолжая затем: общий дизайн упаковки имеет тему по умолчанию и несколько тем не по умолчанию внутри:
/blank
,/iphone
и/modern
. Если тема не по умолчанию активна, то ее файлы будут переопределять что-либо в теме по умолчанию, но независимо от того, какая тема не по умолчанию активна, любые части темы по умолчанию универсального пакета, которые не были переопределены темой не по умолчанию по-прежнему беги, и дальше они переопределят что-нибудь в/base/default
. Наконец, любые не переопределенные части/base/default
запускаются.Однако, что очень важно, ни одна часть универсального пакета дизайна никогда не будет запущена, если вы используете пакет нестандартного дизайна. Система запасного варианта идет прямо от
{customdesignpackage}/{customthemename}
до{customdesignpackage}/default
кbase/default
. (Если я не правильно понимаю, пожалуйста, поправьте меня, если я ошибаюсь.)Тем не менее, удаление пакета универсального дизайна полностью без установки пакета индивидуального дизайна было бы неразумно, поскольку пакет универсального дизайна имеет некоторые элементы оболочки, которые все еще необходимы.
источник