插件覆盖JOOMLA MVC无法正常工作



hellow!

我必须将Joomla用于网站,我需要覆盖MVC组件(COM_CONTACT)才能将字段添加到联系表中。问题是,我遵循本教程:

https://docs.joomla.org/how_to_override_the_component_mvc_from_the_joomla!_core/fr

我安装了插件,重写所需的文件,然后将其放置在教程所说的位置,但它不起作用,插件并未被过度。

有人可以帮我吗?

我放弃了第一个教程,现在正试图遵循这一点:https://docs.joomla.org/j3.x:creating_a_plugin_for_joomla/fr

但是我的插件不起作用。这是插件的代码:

/**
 * Prepare form and add my field.
 *
 * @param   JForm  $form  The form to be altered.
 * @param   mixed  $data  The associated data for the form.
 *
 * @return  boolean
 *
 * @since   <your version>
 */
function onContentPrepareForm($form, $data)
{
    $app = JFactory::getApplication();
    $option = $app->input->get('option');
    switch ($option) {
        case 'com_contact': {
            if ($app->isAdmin()) {
                JForm::addFormPath(__DIR__ . '/forms');
                $form->loadFile('item', false);
            }
            return true;
        }
    }
    return true;
}
}
?>

contact.xml

<?xml version="1.0" encoding="UTF-8"?>
<form>
<fields name="params">
    <fieldset name="params" label="PLG_CONTENT_EXAMPLE_FIELDSET_LABEL">
        <field
                name="contact_emaillabel2"
                type="text"
                label="PLG_CONTENT_EXAMPLE_CONTACT_EMAILLABEL2"
        />
        <field
                name="contact_email2"
                type="text"
                label="PLG_CONTENT_EXAMPLE_CONTACT_EMAIL2"
                filter="email"
        />
    </fieldset>
</fields>
</form>

安装XML文件:

<?xml version="1.0" encoding="utf-8"?>
<extension version="3.2" type="plugin" group="override">
<name>test</name>
<author>Laurine</author>
<creationDate>June 2016</creationDate>
<copyright>Copyright (C) Page Graphique, tous droits réservés</copyright>
<authorEmail>Laurine@page-graphique.fr</authorEmail>
<version>3.2</version>
<description>Plugin pour surcharger les composants MVC</description>
<files>
    <filename>plgoverridetest.php</filename>
</files>
<config>
</config>
</extension>

树木:

- <Joomla>/.../plugins/override
    plgoverridetest.php
    install.xml
    - forms
        contact.xml

您可以检查此链接。它肯定会帮助您https://docs.joomla.org/adding_custom_fields_to_to_core_components_uside_a_a_plugin。

对于网站使用,您可以使用

case 'com_contact':
    if ($app->isSite())
    {
        JForm::addFormPath(__DIR__ . '/forms');
        $form->loadFile('contact', false);
    }
    return true;

然后您需要编辑模板文件。您可以从该链接获得详细信息。

为了覆盖联系表,您需要创建一个'content'插件,上面的插件是'覆盖'',因此接触组件不会触发它。

另外,在您的代码中,$form->loadFile('item', false);是错误的,因为您要加载的XML文件是'Contact.xml',因此您的代码应为$form->loadFile('contact', false);

我刚刚完成了一个插件的开发,该插件添加了许多字段,例如电话,网站,公司,文件上传,新闻通讯,并在需要时关闭默认字段。如果您使用其CRM,它还将信息发送到HubSpot。

现在,要使用这些额外字段,您需要创建一个"联系"插件,该插件在提交表单和用插件触发'onSubmitContact($ data)'时触发,我创建了一个''为此目的自定义回复'插件。

您需要记住使用自定义回复插件时,必须在管理组件中的联系人选项上选择"自定义回复"选项。

另外,我创建的插件是按照表单而创建的,而不是在多个表单上具有相同的字段,您可以独立修改每个表单。

最新更新