Joomla组件未出现在菜单项类型中

ubi*_*ubi 5 joomla components assign

我只是关注如何创建"完美"MVC joomla组件的joomla教程.但是,我的问题是我还不知道如何将它分配给菜单.我认为当我选择"菜单项类型"时,我的组件会出现,但我的组件不在此列表中.我已经对谷歌进行了一些研究,但我找不到答案......我是否必须创建一个metadata.xml文件或类似的东西?在此先感谢您的回答!!

alg*_*imo 5

要为组件创建"视图",您必须创建一些xml文件.在组件前端部分的templates文件夹中(通常类似于/ components/com_yourcomponent/views/someview/tmpl),如果你有一个名为"default.php"和"form.php"的模板,你可以创建一个" default.xml"文件和"form.xml"文件,使管理员可以使用这些菜单项.您可以查看其他组件以查看这些xml文件的结构,但您应该将其放在:

1)四个视图的名称和描述2)用户可以从管理员更改的参数(它类似于模块/插件参数)3)您还可以为该菜单项设置"隐藏"请求变量.这意味着这些变量将添加到该特定菜单项中的请求中,但用户将无法更改其值.

这是一个组件的完整示例(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>
Run Code Online (Sandbox Code Playgroud)

我希望它有所帮助!