Joomla 4: plugin added field in com_content editing form won't save

44 views Asked by At

I'm try to create a system plugin with Joomla 4. Its purpose is adding a new field (pippo) in the article editing form and save its value in the attribs column of the content table.

I used the "onContentPrepareForm" event. The field is displayed correctly in the metadata section of the article but it is not stored into the content table.

This is the function of the plugin:

public function onContentPrepareForm($form, $data)
    {
        $doc = $this->app->getDocument();

        if ((!$this->app->isClient('administrator')) && ($doc->getType() != 'html')) return;
        $plg_path = JPATH_ROOT.DIRECTORY_SEPARATOR.'plugins'.DIRECTORY_SEPARATOR.'system'.DIRECTORY_SEPARATOR.$this->_name;

        if ((JFactory::getApplication()->input->get('option') == 'com_content') && 
            (JFactory::getApplication()->input->get('view') == 'article') &&
            (JFactory::getApplication()->input->get('layout') == 'edit')) {
            
            FormHelper::addFormPath($plg_path.DIRECTORY_SEPARATOR.'params');
            $form->loadFile('article', false);
        }
    }

And this is the XML of the field:

<?xml version="1.0" encoding="utf-8"?>
<form>
    <fields name="attribs">
        <fieldset name="jmetadata" label="PLG_SYSTEM_PIPPO_LABEL_TEXT">
            <field name="pippo" type="text" size="50" label="PLG_SYSTEM_PIPPO_LABEL_TEXT" placeholder="PLG_SYSTEM_PIPPO_PLACEHOLDER"/>
        </fieldset>
    </fields>
</form>

What's wrong?

Thanks in advance

EDIT: SOLVED!

Changed this:

FormHelper::addFormPath($plg_path.DIRECTORY_SEPARATOR.'params');

with this:

Form::addFormPath($plg_path.DIRECTORY_SEPARATOR.'params');

and it works!

0

There are 0 answers