Как вы изменяете формы категорий в Joomla? - PullRequest
6 голосов
/ 12 августа 2011

Я работаю над созданием небольшого плагина для изменения форм категорий (в представлении добавления / редактирования категорий) в 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);
        }


    }

 }

и вот как выглядит форма 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>

Любая помощь в том, что я делаю неправильно, будет принята с благодарностью! Как я уже сказал, он будет работать с любым другим типом контента, например, для работы с меню, просто нужно изменить «имя» в коде.

спасибо!

Ответы [ 2 ]

5 голосов
/ 17 октября 2012

На самом деле в Joomla 2.5 есть ошибка, из-за которой поля формы не отображаются на странице редактирования категории. Недавно мы добавили блог на нашем сайте, в котором есть исправление. Вы можете прочитать его здесь http://techjoomla.com/joomla-development/adding-custom-fields-to-joomla-categories-in-joomla-25.html

Патч был отправлен для Joomla

2 голосов
/ 05 декабря 2011

Я установил испытательный стенд и создал аналогичный плагин. Я повторил значение $ form-> getName (), и оно получилось как 'com_categories.categorycom_content'

Наилучшее предположение из этого состоит в том, что в качестве категорий можно использовать в нескольких контекстах, что компонент добавляется в конце.

Итак, в двух строках, где у вас есть com_categories.category, замените на com_categories.categorycom_content, и это работает.

...