Tại sao lại có bố cục / cơ sở / mặc định / và bố cục / mặc định / mặc định?


10

Tại sao lại có bố cục / cơ sở / mặc định / và bố cục / mặc định / mặc định? Điều này có vẻ khó hiểu và dư thừa.

Câu trả lời:


7

Nói tóm lại default/defaultlà 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


Vì vậy, tôi hoàn toàn có thể xóa thư mục / design / frontend / default và mọi thứ vẫn hoạt động hoàn hảo? Tôi có nghĩa là tôi sẽ chỉ có / cơ sở / mặc định mà thôi. Điều đó ổn chứ? Ngoài ra tại sao không có / cơ sở / mặc định bên trong / design / adminhtml hoặc / design / install?
Dấu phẩy

Điều đó chắc chắn là có thể. Tàu EE không có chủ đề mặc định / mặc định.
philwinkle

1
mặc định / * không được sử dụng trừ khi bạn chỉ định gói của họ là gói được sử dụng. Bạn có thể xóa thư mục một cách an toàn nếu bạn muốn nhưng được thông báo rằng nó có thể được khôi phục trong quá trình nâng cấp / cài đặt.
philwinkle

1
Bạn có thể bật gợi ý mẫu và xem liệu có khối nào sử dụng / default / default nếu vẫn còn nghi ngờ.
Ngạc nhiên

1
Tôi có thể nhớ lại ít nhất một vài lần trong đó việc có thể chuyển đổi thiết kế / gói thành defaultmột công cụ gỡ lỗi rất hữu ích.
pspahn

5

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.

/baseTấ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/design/frontendnhữ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- /defaultthư 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/frontendchủ đề 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à /basehay /{custompackagename}, /defaultchủ đề sẽ luôn là nơi cuối cùng Magento sẽ nhìn.

Do đó, vì mục đích chính /baselà đó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 /defaultsau đó?

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/defaultthay 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/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/defaultchạ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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.