【问题标题】:Adding category parameter(s)添加类别参数
【发布时间】:2013-09-24 07:53:04
【问题描述】:

我正在开发扩展,使用原生 Joomla 类别。我想在类别编辑器中添加一个额外的参数,该参数仅在编辑我的扩展程序类别时使用。

问题: 是否可以不覆盖 Joomla 核心文件?

【问题讨论】:

    标签: joomla joomla2.5 joomla3.0


    【解决方案1】:

    之前的答案(新的 XML 文件)非常接近,但在 Joomla 3.x 中不太适用。为了使它工作,我必须将字段元素的 name 属性更改为“params”,如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <form>
        <fields name="params">
            <fieldset name="basic" label="Group settings">
                <field name="group_id" type="list" default="" label="Select group:">
                    <option value=""></option>
                    <option value="1">Group 1</option>
                    <option value="2">Group 2</option>
                    <option value="3">Group 3</option>
                </field>
            </fieldset>
        </fields>
    </form>
    

    这样,自定义选项会显示在类别编辑屏幕的选项选项卡中。

    另外,如果您的组件中有多个类型的类别(例如,“com_mycomponent.mycategorytype”),您需要将 XML 文件的名称设为“category.mytype.xml”。

    【讨论】:

      【解决方案2】:

      实际上,经过一夜无眠,我找到了一个优雅的本地解决方案。 不幸的是,Joomla 开发人员没有记录它,但似乎在您的扩展中您创建了文件: /administrator/components/com_YourName/models/forms/category.xml 并在那里添加一个字段集“attribs”,它会自动出现在您的扩展程序的类别管理器中。 category.xml 的示例代码在这里:

      <?xml version="1.0" encoding="utf-8"?>
      <form>
          <fields name="attribs">
              <fieldset name="attribs" label="Group settings">
                  <field name="group_id" type="list" default="" label="Select group:">
                      <option value=""></option>
                      <option value="1">Group 1</option>
                      <option value="2">Group 2</option>
                      <option value="3">Group 3</option>
                  </field>
              </fieldset>
          </fields>
      </form>
      

      【讨论】:

      • 这适用于您自己的组件,不适用于内置的 Joomla! “类别”组件。您的问题是针对 Joomla!内置组件。
      • 实际上,如果您阅读了这个问题,那是针对我自己的组件,它使用原生 Joomla! 1.6+ 类别。从 Joomla 1.6 开始,您不必编写自己的类别控件,您可以改用 Joomla 类别。
      【解决方案3】:

      更新

      是的,这也可以在不破解核心文件的情况下完成。

      您可以为管理员 com_categories 组件创建模板覆盖。

      复制此文件:

      administrator/components/com_categories/views/category/tmpl/edit.php
      

      在这个路径下(需要创建对应的目录):

      administrator/templates/bluestork/html/com_categories/category/edit.php
      

      在这个新文件中,您可以施展所有魔法。

      如果您需要更高级的东西,您可以使用允许您覆盖模型和组件的任何其他部分的插件:Plugin Override

      【讨论】:

      • 感谢 Emilian,我知道如何这样做,但我想知道是否有办法在不修改 Joomla 核心的情况下覆盖参数。
      • 您好,请查看我的更新答案,以获得更高级的解决方案,允许您覆盖模型。
      • 再次感谢 Emilian,但我找到了本地解决方案,请在下方查看 :)
      猜你喜欢
      • 1970-01-01
      • 2013-10-13
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 2012-11-07
      • 1970-01-01
      • 2018-07-07
      • 2013-07-06
      相关资源
      最近更新 更多