2011-12-29 23 views
5

Tôi chỉ cần làm theo các hướng dẫn joomla về cách tạo thành phần "hoàn hảo" MVC Joomla. Tuy nhiên, vấn đề của tôi là tôi chưa biết cách gán nó vào một menu. Tôi nghĩ rằng thành phần của tôi sau đó sẽ chỉ hiển thị khi tôi chọn một "loại mục trình đơn", nhưng thành phần của tôi không có trong danh sách này. Tôi đã thực hiện một số nghiên cứu trên Google, nhưng tôi không thể tìm thấy câu trả lời ... Tôi có phải tạo một tệp metadata.xml hoặc một cái gì đó tương tự không? Cảm ơn trước vì câu trả lời của bạn !!Thành phần Joomla không xuất hiện trong các loại mục trình đơn

+0

Bạn đã làm theo hướng dẫn nào? Phiên bản Joomla nào? – Hanny

+0

Vâng, các hướng dẫn _official_ tôi nghĩ. Dưới đây là: [link] (http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1)! Cảm ơn đã dành thời gian trả lời tôi, nhưng tôi đã tìm thấy câu trả lời dưới đây ... – ubi

Trả lời

5

Để tạo "chế độ xem" cho thành phần của bạn, bạn phải tạo một số tệp xml. Bên trong thư mục mẫu trong phần giao diện người dùng của bạn (thường là một cái gì đó như /components/com_yourcomponent/views/someview/tmpl), nếu bạn có mẫu có tên "default.php" và "form.php", bạn có thể tạo một tệp "default.xml" và tệp "form.xml" để làm cho các mục trình đơn này có sẵn từ quản trị viên. Bạn có thể xem các thành phần khác để xem cấu trúc của các tệp xml này, nhưng những gì bạn nên đặt bên trong là:

1) Tên và mô tả cho bốn chế độ xem 2) Thông số người dùng có thể để thay đổi từ quản trị viên (nó hoạt động như tham số module/plugin) 3) Bạn cũng có thể đặt biến yêu cầu "ẩn" cho mục menu đó. Điều đó có nghĩa là các vars đó sẽ được thêm vào yêu cầu trong mục menu cụ thể đó, nhưng người dùng sẽ không thể thay đổi giá trị của nó.

Dưới đây là một ví dụ hoàn chỉnh cho một thành phần (Joomla 1.7):

<?xml version="1.0" encoding="utf-8"?> 
<metadata> 
    <layout title="COM_AGMTAGS_TAG_VIEW_DEFAULT_TITLE"> 
     <message>COM_AGMTAGS_TAG_VIEW_DEFAULT_DESC</message> 
    </layout> 
<fields name="request" addfieldpath="/administrator/components/com_agmtags/models/fields"> 
    <fieldset name="request"> 
     <field name="tag_id" type="agmtag" 
     label="COM_AGMTAGS_TAG_FIELD_NAME_LABEL" 
     description="COM_AGMTAGS_TAG_FIELD_NAME_DESC" 
     /> 
    </fieldset> 
</fields> 
<fields name="params"> 
    <fieldset name="basic" label="COM_AGMTAGS_TAG_OPTIONS"> 
     <field name="layout_type" type="hidden" default="blog" /> 
    <field name="show_tag_name" type="list" 
     label="COM_AGMTAGS_SHOW_TAG_NAME" 
     description="COM_AGMTAGS_SHOW_TAG_NAME_DESC" 
     > 
      <option value="">JGLOBAL_USE_GLOBAL</option> 
      <option value="0">JHIDE</option> 
      <option value="1">JSHOW</option> 
     </field> 
     <field name="show_tag_description" type="list" 
     description="COM_AGMTAGS_SHOW_TAG_DESCRIPTION_DESC" 
     label="COM_AGMTAGS_SHOW_TAG_DESCRIPTION_LABEL" 
     > 
      <option value="">JGLOBAL_USE_GLOBAL</option> 
      <option value="0">JHIDE</option> 
      <option value="1">JSHOW</option> 
     </field> 
     <field name="items_per_page" type="text" default="" /> 
     <field name="container_class" type="text" default="agmtags-list" /> 
    </fieldset> 
</fields> 
</metadata> 

Tôi hy vọng nó giúp!

+0

Cảm ơn alghimo, đó là tất cả những gì tôi đã bỏ lỡ, nó bây giờ hoạt động! – ubi

0

Ngoài ra còn có một lần đánh bắt khác. Trong tệp XML cài đặt của thành phần, trong phần này, các thẻ phải có mặt , ngay cả khi bạn không cần trình đơn.

Nếu những được mất tích, sau đó bạn sẽ không bao giờ được đưa ra tùy chọn để thêm thành phần này với một mục trình đơn, vì loại sẽ không có mặt ở đó :-)

3

Nếu bạn chỉ muốn thêm chế độ xem liên kết vào danh sách tạo ra một tập tin xml gọi default.xml bên trong com_yourcomponent/views/yourviewname/tmpl/

mã xml dưới đây có hai chuỗi ngôn ngữ dùng để hiển thị liên kết mục trình đơn của bạn trong danh sách

<?xml version="1.0" encoding="utf-8"?> 
<metadata> 
    <layout title="COM_YOURCOMPONENT_FRONPAGE_TITLE"> 
     <message>COM_YOURCOMPONENT_FRONPAGE_MSG</message> 
    </layout> 
</metadata> 

lưu tệp và liên kết sẽ xuất hiện trong danh sách các mục menu

1

Rõ ràng, bạn cũng cần thẻ trình đơn quản trị trong tệp XML cài đặt của mình. http://forum.joomla.org/viewtopic.php?p=706714

này làm việc cho tôi

<administration> 
    <menu>COM_COMPONET</menu> 
    <submenu> 
       etc... 
    </submenu> 

nghĩ đây là những gì Panayiotis đã cố gắng để nói

0

Thêm vào đó, tên file view thay thế của bạn PHẢI KHÔNG được viết với dấu gạch dưới.

table_catalog.xml 
table_catalog.php 
table_catalog_item.php 

không hoạt động - không có tùy chọn mới trong danh sách "loại mục menu".Nhưng

tablecatalog.xml 
tablecatalog.php 
tablecatalog_item.php 

tên tệp hoạt động hoàn hảo. Tôi đã mất một giờ để lộ ra một vấn đề.

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