Почему существует / base / default / layout и / default / default layout? Это кажется запутанным и излишним.
Почему существует / base / default / layout и / default / default layout? Это кажется запутанным и излишним.
Ответы:
Короче говоря, 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. (Если я не правильно понимаю, пожалуйста, поправьте меня, если я ошибаюсь.)
Тем не менее, удаление пакета универсального дизайна полностью без установки пакета индивидуального дизайна было бы неразумно, поскольку пакет универсального дизайна имеет некоторые элементы оболочки, которые все еще необходимы.