XML cấu trúc dựa trên Magento dường như chút bối rối và khó chịu ở phần đầu nhưng nó nổi tiếng rằng khả năng cuối cùng mạnh mẽ và tùy biến ...
<adminhtml_example_index></adminhtml_example_index>
Thẻ này đề cập đến [bộ định tuyến] [c ontroller] [action] Bộ định tuyến là tên được xác định duy nhất cho một công văn cụ thể. Từ ví dụ bạn đã cung cấp, trong thẻ quản trị của tệp config.xml, chúng tôi có thể tìm thấy tên bộ định tuyến adminhtml
.
<admin>
<routers>
<adminhtml>
<args>
<modules>
<awesome before="Mage_Adminhtml">Super_Awesome_Adminhtml</awesome>
</modules>
</args>
</adminhtml>
</routers>
</admin>
Dưới bộ định tuyến đó là cài đặt mô-đun liên quan đến bộ định tuyến này.
Vì vậy, nếu url chứa /admin/example/[index], magento sẽ tìm thấy các bộ định tuyến đúng là <adminhtml>
sau đó sẽ tìm thấy bộ điều khiển tên example
và tìm ra hành động đúng đó là trong trường hợp này index
(/ admin/example/sẽ được phái đến action index mặc định)
<adminhtml_example_index>
<reference name="content">
<block type="awesome/adminhtml_example" name="example" />
</reference>
</adminhtml_example_index>
Trong tập tin bố trí, cho Router controller action kết hợp, cập nhật bố trí được xác định. Ở đây, bản cập nhật sẽ được áp dụng cho khối chính có tên là content
chứa phần nội dung trang.
<block>
thẻ được sử dụng để xác định khối mà chúng tôi cần tham chiếu. <type>
thẻ là quan trọng.Nó đề cập đến các lớp khối đúng nên được sử dụng khi vẽ bố trí này (Hãy nhớ rằng trong cấu trúc MVC của Magento View bao gồm cả hai lớp Block và file phtml)
Trong awesome/adminhtml_example
đây, awesome
là tên cấu hình khối nêu tại config.xml tệp. adminhtml_example
là lớp khối được sử dụng.
Xem
<global>
-----
<blocks>
<awesome>
<class>Super_Awesome_Block</class>
</awesome>
</blocks>
</global>
Dưới thẻ block
, một tên khối độc đáo được định nghĩa (quy ước đặt tên tốt mà vẫn duy trì sự độc đáo). Sau đó, đường dẫn lớp cho các khối này có thể được xác định là Super/Awsome/Block/
.
Tên cấu hình khối hiện đã được giải quyết. adminhtml_example
là lớp khối chính xác được sử dụng. Bất kỳ dấu gạch dưới sau tên khối (tuyệt vời) sẽ được chuyển thành bộ phân cách thư mục.
Theo đó, đường dẫn đầy đủ của lớp khối sẽ
[codepool]/Super/Awsome/Block/Adminhtml/Example.php
Tên lớp sẽ như thế nào
class Super_Awesome_Block_Adminhtml_Example extends ….
Nếu chúng ta có tập tin bố trí chúng ta có thể xác định nó ở đây .. sau đó tệp .phtml
sẽ được hiển thị bằng cách sử dụng lớp khối trên
<reference name="root">
<block type="page/html" name="root" template="simplepage.phtml" />
</reference>
Hy vọng thứ sẽ giúp .. Xin lỗi nếu có gì không rõ ràng…
Giải thích là tuyệt vời. Giữ nó lên. :) – Coder