Cách tạo bố cục mô-đun sẽ được hiển thị trên tất cả các chủ đề


13

Đây là tình huống: Tôi có một số mô-đun tự tạo, tất cả được thử nghiệm và hoạt động bằng cách sử dụng chủ đề mặc định. Sau đó, chúng tôi đã mua và cài đặt một chủ đề mới. Chuyển sang chủ đề mới và các mô-đun không được hiển thị. Sau một vài lần thử / thất bại, tôi thấy rằng tôi cần phải sao chép các tệp bố cục và mẫu tương ứng vào các thư mục tương ứng của chủ đề được cài đặt gần đây.

Vì vậy, câu hỏi của tôi là: tôi nên làm gì để tất cả các mô-đun của tôi hoạt động với bất kỳ chủ đề nào được cài đặt sau khi thiết lập mô-đun?


1
Nếu bạn đặt các tệp bố cục của mình trong thiết kế / frontend / base / default / ... chúng sẽ được hiển thị bất kể chủ đề là gì
Sander Mangel

Câu trả lời:


17

Đặt mọi thứ vào base/defaultđường dẫn.

Thí dụ:

app/design/frontend/base/default

skin/frontend/base/default


Ôi! Không nghĩ về điều đó, bạn đã đúng, sẽ kiểm tra ngay khi đến văn phòng.
Yaroslav

+1 - Có quá nhiều mô-đun ngoài kia được gắn nhãn là "cộng đồng" không tuân theo thực tiễn này và họ nên làm theo.
pspahn

Mẫu cơ sở đã được giới thiệu trong Magento 1.4. để giải quyết chính xác vấn đề này. Trên các phiên bản trước đó sao chép các tệp mẫu, nếu bạn không sử dụng gói mặc định, là cách để làm điều đó.
Kristof tại Fooman

5

Sự thật phũ phàng là, bạn không thể thực sự đảm bảo rằng họ sẽ như vậy. Đưa tệp của bạn vào base/default(hoặc default/defaultnếu chúng ghi đè các mẫu lõi - vì bạn không muốn ghi đè tệp cơ sở bằng cài đặt mô-đun, mặc dù điều này buộc bạn phải giữ bản sao cho phiên bản doanh nghiệp) sẽ đảm bảo rằng chúng trở thành dự phòng, nhưng tệp chủ đề sẽ luôn được ưu tiên cao nhất.

Hầu hết các mô-đun đi kèm với một hướng dẫn cài đặt, bao gồm việc đề cập để sao chép các tệp mẫu vào chủ đề của người dùng nếu chúng có một tùy chỉnh. Đó là về điều tốt nhất bạn có thể làm.


4

Một điều mà chúng tôi đã sử dụng một vài lần là modlue [Fallback] [2] của [Fab]. Đây là một mô-đun rất hữu ích để chỉ định phân cấp dự phòng chủ đề tùy chỉnh của riêng bạn. Một điều bạn có thể làm là chỉ định:

  1. custom/theme

  2. base/default

  3. default/default

Sau đó, bất kỳ mô-đun đặt mẫu riêng của họ trong default/defaultchủ đề. Sẽ không hoạt động nếu họ đang cố gắng ghi đè base/defaultcác gói.

Bạn có thể chỉ định bất kỳ số lượng gói / chủ đề trong phân cấp dự phòng tùy chỉnh.

[1]: http://www.fabrizio-branca.de/ [2]: http://www.fabrizio-branca.de/custom-design-fallbacks-in-magento.html


2

Bất kỳ tệp mẫu và tệp bố trí nào base/defaultsẽ được tải trừ khi nó bị ghi đè ở đâu đó dọc theo đường dẫn. Tuy nhiên, nếu mô-đun tùy chỉnh của bạn là một tiện ích thuộc loại nào đó, thì bạn nên chắc chắn rằng nó được lặp lại ở bất cứ nơi nào cần thiết. Ví dụ: nếu bạn đang thực hiện các thay đổi được hiển thị trên trang sản phẩm thông qua getChildHtml, thì các cuộc gọi đó cũng sẽ có chủ đề tương ứng. Tuy nhiên, nếu các mẫu mô-đun của bạn là các trang một mình và chúng không được tải từ base/defaultđó, thì một cái gì đó chặn cấu hình bố cục và bạn nên tìm cái gì.


Rất thú vị các nhận xét về getChild, tôi thực sự có một số cuộc gọi loại này.
Yaroslav

1

Không có câu trả lời đơn giản về điều này. Nó phụ thuộc vào các mô-đun mà bạn có. Ví dụ, một số công ty mô-đun, ghi đè các tệp cốt lõi. Do đó, trước tiên bạn nên kiểm tra những tập tin có sẵn trong app/etc/modulesapp/code/local/Mage, app/code/community/Magethư mục. Như bạn có thể biết, thư mục đầu tiên là thư mục khởi tạo mô-đun mà bạn có thể vô hiệu hóa hoặc kích hoạt các mô-đun liên quan bởi các tệp xml. Hai thư mục cuối cùng (nếu có) là các thư mục ghi đè mã lõi.

Sau đó, mở một trong các tệp xml có etc/modulesthư mục có sẵn . Bạn sẽ thấy một cái gì đó như dưới đây:

<?xml version="1.0"?>
<config>
<modules>
    <Company_Namespace>
        <active>true</active>
        <codePool>local</codePool>
    </Company_Namespace>
</modules>

Đây là những phần quan trọng được CompanyNamespace. Khi bạn truy cập vào các thư mục app/code/localhoặc app/code/community, bạn sẽ thấy một thư mục có tên Companyvà theo sau bởi một thư mục con có tên Namespace.

Khi bạn tra cứu, Namespacebạn sẽ thấy một thư mục con có tên /etc. Thư mục này giữ mô-đun tập tin cấu hình liên quan config.xml. Tệp này có các dòng cấu hình liên quan đến mô-đun mà bạn có thể tham khảo các tệp liên quan đến mô-đun này.

Như tôi đã nói trong dòng đầu tiên của tôi, thật khó để quản lý.


Tôi nghĩ rằng bạn đã bỏ lỡ điểm của câu hỏi. Ông đã hỏi về cập nhật bố trí. Thực hành tốt nhất là sử dụng đường dẫn cơ sở / mặc định / yourmodule.
Mark Shust
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.