Чому існує макет / base / default / layout та макет / a / default / default?


10

Чому існує макет / base / default / layout та макет / a / default / default? Це здається заплутаним та зайвим.

Відповіді:


7

Коротше кажучи, default/defaultце спадщина від <1.4CE, де це був оригінальний базовий пакет. Основні теми Magento все ще поставляються у пакеті за замовчуванням - тому це не обов'язково застаріло настільки, як це є спадщиною.

Оскільки за умовчанням / за замовчуванням під час оновлення CE можна перезаписати, не доцільно розміщувати тут файли - але плагіни, які намагаються бути сумісними назад з <1.3, можуть навмисно розміщувати файли тут замість бази / за замовчуванням.


Джерело: http://www.magentocommerce.com/knowledge-base/entry/magentos-theme-hierarchy#3.2


Тож я можу повністю стерти каталог / design / frontend / default і все ще буде працювати ідеально? Я маю на увазі, що у мене буде тільки / base / default. Це все гаразд? Також чому немає / base / default всередині / design / adminhtml або / design / install?
CommaToast

Це, безумовно, можливо. EE відправляється без теми за замовчуванням / за замовчуванням.
philwinkle

1
за замовчуванням / * не використовуються, якщо ви не вказали їх пакет, який буде використовуватися. Ви можете безпечно видалити каталог, якщо бажаєте, але, маючи на увазі, він може бути відновлений під час оновлення / установки.
philwinkle

1
Ви можете ввімкнути підказки щодо шаблонів і побачити, чи використовується який-небудь блок / default / default, якщо все ще сумніваєтеся.
Amasty

1
Я можу пригадати хоча б кілька разів, коли можливість переключення дизайну / пакету defaultбула дуже корисним інструментом налагодження.
pspahn

5

Я знайшов ще кращу відповідь на офіційній вікі 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. (Якщо я не розумію це правильно; будь-ласка, виправте мене, якщо я помиляюся.)

Однак, видалення пакету загального дизайну повністю, не маючи спеціального пакета дизайну, було б нерозумно, оскільки пакет загального дизайну містить деякі елементи шкіри, які все ще необхідні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.