你如何修改Joomla中的类别表单?

Dav*_*att 6 joomla joomla-extensions joomla1.7

我正在创建一个小插件来修改Joomla中的类别表单(在添加/编辑类别视图中).

我能够使用Joomla网站上教程来修改用户配置文件,文章和菜单上的表单; 但是,类别似乎不能正常工作.

这是我正在使用的代码:

defined('JPATH_BASE') or die;

class plgContentCategoryType extends JPlugin {

    function onContentPrepareForm($form, $data) {

        // Load plugin language
        $lang = JFactory::getLanguage();
        $lang->load('plg_content_categorytype', JPATH_ADMINISTRATOR);

        if (!($form instanceof JForm)) {
            $this->_subject->setError('JERROR_NOT_A_FORM');
            return false;
        }

        // Check we are manipulating a valid form.
        if (!in_array($form->getName(), array('com_categories.category'))) {
            return true;
        }

        if ($form->getName()=='com_categories.category') {      
            // Add the fields to the form.
            JForm::addFormPath(dirname(__FILE__).'/forms');
            $form->loadFile('categorytype', false);
        }


    }

 }
Run Code Online (Sandbox Code Playgroud)

这就是XML表单的样子:

<form>
    <fields name="params">

        <fieldset name="categorytype" label="PLG_CONTENT_CATEOGRYTYPE_FIELDSET_LABEL">

            <field name="category_type" type="list" label="PLG_CONTENT_CATEGORYTYPE_LABEL" description="PLG_CONTENT_CATEGORYTYPE_DESC">
                <option value=""></option>
                <option value="features">PLG_CONTENT_CATEGORYTYPE_FEATURES</option>
                <option value="columns">PLG_CONTENT_CATEGORYTYPE_COLUMNS</option>
                <option value="spotlights">PLG_CONTENT_CATEGORYTYPE_SPOTLIGHTS</option>
                <option value="slices">PLG_CONTENT_CATEGORYTYPE_SLICES</option>
                <option value="news">PLG_CONTENT_CATEGORYTYPE_NEWS</option>
            </field>

        </fieldset>

    </fields>
</form>
Run Code Online (Sandbox Code Playgroud)

对我所做错的任何帮助都将不胜感激!就像我说的,它可以用于任何其他类型的内容,例如,它可以在菜单上工作,只需要更改代码中的"名称".

谢谢!

小智 5

实际上,Joomla 2.5中存在一个Bug,由于该错误,表单字段未在“编辑类别”页面上呈现。我们最近在我们的网站上添加了一个博客,该博客已对此进行了修复。您可以在此处阅读它http://techjoomla.com/joomla-development/adding-custom-fields-to-joomla-categories-in-joomla-25 .html

为此已向Joomla提交了补丁。


Dea*_*all 2

我建立了一个测试平台并创建了一个类似的插件。我回显了 $form->getName() 的值,结果显示为“com_categories.categorycom_content”

由此得出的最佳猜测是,由于类别可以在多个上下文中使用,因此该组件会附加在末尾。

因此,在包含“com_categories.category”的两行中,替换为“com_categories.categorycom_content”即可。