Câu trả lời:
Nói tóm lại default/default
là di sản từ <1.4CE, nơi đây là gói cơ sở ban đầu. Các chủ đề cốt lõi của Magento vẫn xuất hiện trong gói mặc định - vì vậy nó không nhất thiết bị phản đối nhiều vì nó là di sản.
Vì mặc định / mặc định có thể được ghi đè trong quá trình nâng cấp CE, bạn không nên đặt các tệp ở đây - nhưng các plugin cố tương thích ngược với <1.3 có thể cố tình đặt các tệp ở đây thay vì cơ sở / mặc định.
Nguồn: http : //www.magentoc Commerce.com/ledgeledge-base/entry/magentos-theme-hierarchy#3.2
default
một công cụ gỡ lỗi rất hữu ích.
Tôi tìm thấy một câu trả lời thậm chí tốt hơn trên wiki Magento chính thức . (Đó là từ năm 2012, vì vậy tôi không chắc có bất kỳ thông tin nào đã lỗi thời hay không - nhưng dường như nó có thể áp dụng cho 1.8.1 từ những gì tôi có thể nói.) Trong khi tôi khuyên bạn nên đọc đầy đủ (nhấp vào đậm liên kết), hãy để tôi tóm tắt nó dưới đây.
/base
Tất cả là gì?
/base/default
đã được giới thiệu trong CE 1.4 và EE 1.8 để hợp nhất tất cả các chức năng mặt trước loại logic ứng dụng thành một cơ sở mã duy nhất mà bạn không bao giờ nên chỉnh sửa. Nó có cấu trúc thư mục giống như gói thiết kế với chủ đề mặc định , nhưng nó thiếu một số tệp CSS chính vì vậy họ không khuyên bạn nên có nó làm gói thiết kế và chủ đề duy nhất của bạn.
Một sự tương tự tuyệt vời sẽ nói rằng đó /base
là /design/frontend
những gì /core
được /code
. Bạn không cần phải sửa đổi các tập tin bên trong /base
. Thay vào đó, bạn phải mở rộng chức năng của nó trong gói thiết kế tùy chỉnh của riêng bạn , mà Magento sẽ nhìn vào bên trong trước khi nó quay trở lại /base/default
- đầu tiên nó sẽ nhìn vào /design/frontend/{custompackagename}/{customthemename}
, sau đó nó sẽ quay lại /design/frontend/{custompackagename}/default/
và cuối cùng nó sẽ rơi lại /design/frontend/base/default
.
Thực sự, nó chỉ nên được coi là /base
- /default
thư mục con chỉ ở đó vì hệ thống dự phòng Magento hoàn thành hành trình của mình thông qua mỗi gói thiết kế trong /default
chủ đề của nó . Để rõ ràng, một gói thiết kế là một thư mục con bên trong /design/frontend
và chủ đề là một thư mục con trong một gói thiết kế. Khi Magento xem qua gói thiết kế, dù đó là /base
hay /{custompackagename}
, /default
chủ đề sẽ luôn là nơi cuối cùng Magento sẽ nhìn.
Do đó, vì mục đích chính /base
là đóng vai trò là điểm cuối cùng trong hệ thống dự phòng, nên theo mục đích đó, nó sẽ không bao giờ có chủ đề nào khác ngoài /base/default
.
Tại sao có một /default
sau đó?
Vậy tại sao vẫn còn một /design/frontend/default/default
? Và tại sao không có /design/adminhtml/base/default
? Thành thật mà nói tôi không biết câu trả lời cho câu hỏi thứ hai. Nhưng hãy để tôi cố gắng trả lời đầu tiên.
Quên đi khả năng tương thích kế thừa, v.v., tôi cảm thấy có thể dễ hiểu hơn nhiều nếu được gọi /generic/default
thay thế /default/default
. Vì vậy, với mục đích của cuộc thảo luận này, tôi sẽ gọi /app/design/frontend/default/
và gọi /app/skin/frontend/default/
chung là "gói thiết kế chung". Tôi sẽ đề cập đến mọi thứ trong các thư mục đó như thể chúng được gọi /app/design/frontend/generic
và /app/skin/frontend/generic
. Vì (ít nhất là trong trường hợp frontend) hệ thống dự phòng của Magento không còn hoạt động trở lại /app/design/frontend/default/
, tôi cảm thấy việc tiếp tục gọi nó là "mặc định" là khó hiểu vì từ đó ngụ ý một cái gì đó là một phần của chuỗi dự phòng , nhưng gói thiết kế chung không còn nữa một phần của chuỗi dự phòng khi giới thiệu/base
. Do đó, gọi nó là "gói thiết kế chung" thay vì "gói thiết kế mặc định" làm giảm bớt sự nhầm lẫn này bằng cách nói với chúng tôi rằng có, đó chỉ là tập hợp các chủ đề chung đi kèm với Magento, mà không bao hàm nó là một phần của chuỗi dự phòng. : D
Mang trên thì: các gói thiết kế chung có một chủ đề mặc định và một số chủ đề không phải mặc định bên trong: /blank
, /iphone
, và /modern
. Nếu một chủ đề không mặc định được kích hoạt thì các tệp của nó sẽ ghi đè mọi thứ trong chủ đề mặc định, nhưng bất kể chủ đề không mặc định nào đang hoạt động, bất kỳ phần nào của chủ đề mặc định của gói chung không bị ghi đè bởi chủ đề không mặc định vẫn được chạy, và hơn nữa họ sẽ ghi đè lên bất cứ thứ gì trong /base/default
. Cuối cùng, bất kỳ phần không bị ghi đè của /base/default
chạy.
Tuy nhiên, quan trọng, không có phần nào của gói thiết kế chung sẽ được chạy nếu bạn đang sử dụng gói thiết kế tùy chỉnh. Hệ thống dự phòng đi thẳng từ {customdesignpackage}/{customthemename}
để {customdesignpackage}/default
đến base/default
. (Trừ khi tôi không hiểu chính xác điều này; vui lòng sửa lại cho tôi nếu tôi sai.)
Điều đó đang được nói, việc xóa hoàn toàn gói thiết kế chung mà không có gói thiết kế tùy chỉnh tại chỗ sẽ không khôn ngoan vì gói thiết kế chung có một số yếu tố da vẫn cần thiết.