2013-05-29 17 views
5

Tôi hiểu và yêu thích việc ghi đè mẫu. Tôi cần phải làm một số thay đổi nặng hơn cho đầu ra menu (về cơ bản làm cho đầu ra hoạt động tốt hơn với Bootstrap) - nhưng chỉ cho một số menu nhất định.Làm thế nào để làm cho một mẫu ghi đè cho mod_menu với bố trí thay thế cho kết quả đầu ra liên kết?

Hiện nay trong Joomla 3 có được những điều sau đây trong thư mục mod_menu/tmpl:

default.php 
default_component.php 
default_heading.php 
default_separator.php 
default_url.php 

Nếu tôi muốn thay đổi các lớp tôi muốn sao chép default.php vào mytemplate/html/mod_menu của tôi và thay đổi nó. Tuyệt, không sao cả.

Nếu tôi muốn thay đổi kết quả đầu ra liên kết để đi cùng với đó tôi có thể sao chép default_component.php thành mytemplate/html/mod_menu và thay đổi nó. Tuyệt, không sao cả.

Nếu tôi muốn có lựa chọn "Bố trí thay thế" khác, tôi đổi tên mytemplate/html/mod_menu/default.php thành newlayout.php, sau đó chọn nó trong trình quản lý mô-đun quản trị cho menu đó. Tuyệt, không sao cả. Đây là vấn đề: Nếu tôi muốn thay đổi đầu ra liên kết cho một số menu nhất định nhưng không phải tất cả chúng tôi muốn thay đổi default_component.php thành newlayout_component.php như tôi đã làm ở trên tương ứng với newlayout.php ... 't làm việc.

Câu hỏi:

1) Làm thế nào để có bố trí thay thế cho mỗi default_component.php, default_heading.php, default_separator.php, default_url.php template file (không chỉ là một ghi đè)?

2) Tôi nghĩ rằng default_url.php là một trong đó sẽ ảnh hưởng đến kết quả đầu ra liên kết nhưng có vẻ như đó là default_component.php. Vậy mỗi người trong số họ làm gì? Tôi không thể tìm thấy bất kỳ thông tin nào trên joomla.org về điều đó.

Cảm ơn!

Trả lời

6
  1. Tính năng bố cục thay thế chỉ hoạt động đối với tệp chính (default.php), không dành cho các lớp con (default_component.php, ...). Vì vậy, bạn phải tạo newlayout.php của riêng mình, sau đó có thể tải newlayout_component.php hoặc sử dụng default_component.php. Trên thực tế, default_component.php sẽ được sử dụng làm dự phòng nếu không tìm thấy newlayout_component.php.
  2. Mã chuyển qua $item->type của liên kết. 'separator', 'url', 'component''heading' được xử lý bởi 'default_'.$item->type, mọi thứ khác sẽ sử dụng default_url. Vì vậy, URL đơn giản thực sự phải được tạo bởi default_url.php, không phải là default_component.php. Nếu nó hoạt động khác nhau, nó có thể là một lỗi.
+0

Wow .... đôi khi câu trả lời chỉ đơn giản như vậy. Thay đổi cuộc gọi chết tiệt. Thở dài. – Gisto

+0

Và hoàn toàn quên thêm - bạn đá, cảm ơn bạn !! – Gisto

Các vấn đề liên quan