提交表单后如何编辑自定义字段值?

时间:2019-05-19 06:49:39

标签: plugins joomla3.0

我正在尝试通过插件在Joomla 3上添加一些自定义字段。我创建了一个名为Geoaddress的地址,旨在在文章编辑页面中显示3个文本字段。用户可以编辑其中一个以输入其地址(带有街道名称,邮政编码等),其他两个则为只读。关于地址字段的值,必须在表单保存事件中计算2个只读字段的值。

我并没有真正理解如何做到这一点,但是我实现了在标签中将所有3个字段与文章编辑视图上的其他自定义字段一起显示,并且所有值都存储在数据库中。 我基本上是从Text-Plugin制作了一个副本,并对其进行了调整。现在,我找不到任何解决方案,无法在提交表单后编辑字段的值。 我没有发现FieldsPlugin的onSave方法的任何引用。

forms> geoaddress.xml

<?xml version="1.0" encoding="UTF-8"?>
<form>
    <fields name="attribs">
        <fieldset name="fields-1" label="Geo Address">
            <field
                name="geoaddress_longitude"
                type="text"
                label="GeoAddress - Longitude"
                readonly="true"
            />
            <field
                name="geoaddress_latitude"
                type="text"
                label="GeoAddress - Latitude"
                readonly="true"
            />
        </fieldset>
    </fields>
</form>

geoaddress.php

class PlgFieldsGeoaddress extends FieldsPlugin
{
    protected $autoloadLanguage = true;

    public function onCustomFieldsPrepareDom($field, DOMElement $parent, JForm $form)
    {
        $fieldNode = parent::onCustomFieldsPrepareDom($field, $parent, $form);
        if (!$fieldNode)
        {
            return $fieldNode;
        }

        if (JFactory::getApplication()->isClient('site'))
        {
            // The user field is not working on the front end
            return;
        }

        if (JFactory::getApplication()->isAdmin())
        {
            JForm::addFormPath(__DIR__ . '/forms');
            $form->loadFile('geoaddress');
        }
        $form->setValue('geoaddress_latitude','123456');
        return $fieldNode;
    }
}

我仅找到此文档,但找不到要搜索的内容:https://api.joomla.fr/joomla3/d3/df4/classFieldsPlugin.html

0 个答案:

没有答案