Mengapa ada / base / default / layout dan / default / default layout? Ini tampaknya membingungkan dan berlebihan.
10
Singkatnya default/default
adalah warisan dari <1.4CE di mana itu adalah paket basis asli. Tema inti Magento masih dikirimkan dalam paket default - jadi itu belum tentu usang seperti warisan.
Karena default / default dapat ditimpa selama pemutakhiran CE, tidak disarankan Anda meletakkan file di sini - tetapi plugin yang mencoba kompatibel dengan <1.3 dapat sengaja menempatkan file di sini alih-alih basis / default.
Sumber: http://www.magentocommerce.com/knowledge-base/entry/magentos-theme-hierarchy#3.2
default
adalah alat debugging yang sangat berguna.Saya menemukan jawaban yang lebih baik di wiki Magento resmi . (Ini dari 2012, jadi saya tidak yakin apakah ada informasi yang ketinggalan jaman - tetapi tampaknya berlaku untuk 1.8.1 dari apa yang dapat saya katakan.) Sementara saya sangat menyarankan Anda membacanya secara lengkap (klik cetak tebal) tautan), izinkan saya meringkasnya di bawah ini.
Tentang apa
/base
semua ini?/base/default
diperkenalkan pada CE 1.4 dan EE 1.8 untuk mengkonsolidasikan semua fungsi front-end app-logic-type menjadi basis kode tunggal yang tidak boleh Anda edit. Ini memiliki struktur direktori yang sama dengan paket desain dengan tema default , tetapi tidak ada beberapa file CSS kunci sehingga mereka tidak merekomendasikan Anda untuk menjadikannya sebagai satu-satunya paket dan tema desain Anda.Sebuah analogi yang bagus akan mengatakan bahwa
/base
adalah/design/frontend
apa yang/core
adalah untuk/code
. Anda tidak seharusnya memodifikasi file di dalamnya/base
. Alih-alih, Anda seharusnya memperluas fungsinya dalam paket desain khusus Anda sendiri , yang Magento akan lihat terlebih dahulu sebelum jatuh kembali/base/default
- pertama akan melihat ke dalam/design/frontend/{custompackagename}/{customthemename}
, kemudian jatuh kembali/design/frontend/{custompackagename}/default/
, dan terakhir akan jatuh kembali/design/frontend/base/default
.Sungguh, seharusnya hanya dianggap sebagai
/base
-/default
subdirektori hanya ada karena sistem fallback Magento menyelesaikan perjalanannya melalui setiap paket desain dalam/default
temanya . Agar jelas, paket desain adalah subdirektori di dalam/design/frontend
, dan tema adalah subdirektori dalam paket desain. Ketika Magento melihat melalui paket desain, apakah itu/base
atau/{custompackagename}
,/default
temanya akan selalu menjadi tempat terakhir yang akan dilihat Magento.Oleh karena itu, karena tujuan utama
/base
adalah untuk berfungsi sebagai titik akhir dalam sistem fallback, menurut tujuan itu tidak akan pernah memiliki tema lain selain/base/default
.Mengapa ada
/default
saat itu?Jadi mengapa masih ada
/design/frontend/default/default
? Dan mengapa tidak ada/design/adminhtml/base/default
? Sejujurnya saya tidak tahu jawaban untuk pertanyaan kedua. Tetapi izinkan saya mencoba menjawab yang pertama.Melupakan kompatibilitas warisan dll., Saya merasa mungkin akan lebih mudah untuk dipahami jika itu disebut
/generic/default
bukan/default/default
. Jadi untuk keperluan diskusi ini saya akan merujuk/app/design/frontend/default/
dan secara/app/skin/frontend/default/
kolektif disebut "paket desain generik". Saya akan merujuk segala sesuatu di dalam direktori itu seolah-olah mereka dipanggil/app/design/frontend/generic
dan/app/skin/frontend/generic
. Karena (paling tidak dalam kasus frontend) sistem fallback Magento tidak lagi jatuh ke/app/design/frontend/default/
, saya merasa bahwa terus menyebutnya "default" membingungkan karena kata itu menyiratkan sesuatu adalah bagian dari rantai fallback , tetapi paket desain generik tidak lagi bagian dari rantai fallback pada saat pengenalan/base
. Oleh karena itu, menyebutnya "paket desain generik" alih-alih "paket desain default" mengurangi kebingungan ini dengan memberi tahu kami bahwa ya, itu hanya set tema generik yang datang dengan Magento secara gratis, tanpa menyiratkan itu bagian dari rantai cadangan. : DTercatat pada kemudian: the paket desain generik memiliki tema default dan beberapa tema non-default dalam:
/blank
,/iphone
, dan/modern
. Jika tema non-standar aktif maka file-nya akan menimpa apa pun dalam tema default, tetapi tidak peduli tema non-standar mana yang aktif, setiap bagian dari tema standar paket generik yang belum ditimpa oleh tema non-default masih bisa dijalankan, dan selanjutnya mereka akan menimpa apa pun di/base/default
. Akhirnya setiap bagian non-override dari/base/default
dijalankan.Namun, secara kritis, tidak ada bagian dari paket desain generik yang dapat dijalankan jika Anda menggunakan paket desain khusus. Sistem fallback akan langsung dari
{customdesignpackage}/{customthemename}
ke{customdesignpackage}/default
kebase/default
. (Kecuali jika saya tidak memahami ini dengan benar; perbaiki saya jika saya salah.)Yang sedang berkata, menghapus paket desain generik sepenuhnya tanpa memiliki paket desain kustom di tempat akan menjadi tidak bijaksana karena paket desain generik memiliki beberapa elemen kulit yang masih diperlukan.
sumber