【问题标题】:Joomla component not appearing in the menu item typesJoomla 组件未出现在菜单项类型中
【发布时间】:2012-01-30 04:24:53
【问题描述】:

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

【问题讨论】:

  • 您学习了哪个教程?哪个版本的 Joomla?
  • 嗯,我认为是 official 教程。他们在这里:link!感谢您花时间回答我,但我在下面找到了答案...

标签: joomla components assign


【解决方案1】:

要为您的组件创建“视图”,您必须创建一些 xml 文件。 在组件前端部分的模板文件夹中(通常类似于 /components/com_yourcomponent/views/someview/tmpl),如果您有一个名为 default.phpform.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>

希望对你有帮助!

【讨论】:

    【解决方案2】:

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

    如果缺少这些,那么您将永远不会得到 将此组件添加到菜单项的选项, 因为类型不会在那里:-)

    【讨论】:

      【解决方案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>
      

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

      【讨论】:

        【解决方案4】:

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

        这对我有用

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

        认为这就是 Panayiotis 想要表达的意思

        【讨论】:

          【解决方案5】:

          此外,您的替代视图文件名不得使用下划线书写。

          table_catalog.xml
          table_catalog.php
          table_catalog_item.php
          

          不起作用 - “菜单项类型”列表中没有新选项。但是

          tablecatalog.xml
          tablecatalog.php
          tablecatalog_item.php
          

          文件名完美运行。我已经浪费了一个小时来揭示一个问题。

          【讨论】:

            猜你喜欢
            • 2011-03-06
            • 2012-01-02
            • 1970-01-01
            • 2015-10-03
            • 1970-01-01
            • 2012-03-17
            • 1970-01-01
            • 2013-05-11
            • 2014-08-05
            相关资源
            最近更新 更多