【发布时间】:2016-06-15 07:04:44
【问题描述】:
你好!
我必须将 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
【问题讨论】:
-
你的代码在哪里?
-
我的代码如教程中所说,TEMPLATE/code/com_contact/controllers/contact.php 和 TEMPLATE/code/com_contact/models/forms/contact.xml。
-
bu 我尝试了很多解决方案,例如将contact.xml 放在forms 文件夹中并直接放在models 文件夹中,将所有自定义com_contact 文件夹放在“html”文件夹中而不是代码中,将文件放在“控制器”中和“模型”文件夹...
-
您可以简单地上传另一个联系人组件,而不是执行所有这些操作。无需破解任何核心文件。
-
如果 joomla 的一个工作,添加一个新组件很遗憾,我只需要添加一个字段,并且教程在文档中,所以它应该工作,也许我做错了什么,但我可以找不到什么。此外,我已经编辑了 com_contact 的模板,我不想用另一个表单重做所有工作 =/
标签: plugins joomla overriding