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

时间:2011-12-29 20:39:24

标签: joomla components assign

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

5 个答案:

答案 0 :(得分:5)

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

1)四个视图的名称和描述 2)用户可以从管理员更改的params(它的工作方式类似于模块/插件参数) 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>

我希望它有所帮助!

答案 1 :(得分:3)

如果您只是想将视图链接添加到列表,请在com_yourcomponent / views / yourviewname / tmpl /

中创建一个名为default.xml的xml文件

下面的xml代码使用两个语言字符串来显示列表中的菜单项链接

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

保存文件,链接应出现在菜单项列表中

答案 2 :(得分:1)

显然,您还需要安装XML文件中的管理菜单标签。 http://forum.joomla.org/viewtopic.php?p=706714

这对我有用

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

认为这是Panayiotis试图说的话

答案 3 :(得分:0)

此外还有另一个问题。 在组件的安装XML文件中, 在该部分中,标签必须 即使你不需要菜单也能在场。

如果缺少这些,那么你永远不会被给予 将此组件添加到菜单项的选项, 因为类型不会出现: - )

答案 4 :(得分:0)

另外,您的替代视图文件名不能用下划线写。

table_catalog.xml
table_catalog.php
table_catalog_item.php

无效 - “菜单项类型”列表中没有新选项。但

tablecatalog.xml
tablecatalog.php
tablecatalog_item.php

文件名完美无缺。我失去了一个小时才发现问题。