在Joomla 3.x联系人组件中添加字段

4
我需要向Joomla 3.x com_contact组件添加字段。我通过谷歌搜索找到了一些说明,但它们都是针对早期版本(即2.5)的Joomla。
我知道extensions.joomla.org网站上有其他组件,但它们不是我想要的。我也不需要联系表单组件。我不需要创建表单。
我尝试修改我在3.x中找到的2.5修改,但它们不起作用。至少我无法让它们起作用。
这是我发现的最接近实现此目标的方法。但它是针对Joomla 2.5的,根据我的尝试,3.x的步骤似乎有所不同。 如何操作,但显然不适用于Joomla 3.x 有人有详细的步骤说明吗?
谢谢!

联系人组件有大约10个字段,难道你不能使用其中一个并更改字符串吗? - Elin
2个回答

6
如果想要在Joomla 2.5.x/3.x的“联系表单”中添加字段,请按照以下步骤进行:(我想要添加“电话”字段)
1- 进入*Joomla目录 > components > com_contact > models > forms* 打开‘contact.xml’文件。
2- 在‘fieldset’元素之间向文件中添加此代码:
<field name="contact_telephone"
type="text"
id="contact-telephone"
size="30"
description="Your Number for Contact"
label="Phone"
filter="string"
required="true"/>

3- 进入*Joomla目录 > components > com_contact > views > contact > tmpl*
打开‘default_form.php’文件。

4- 在文件中找到以下代码:

<legend><?php echo JText::_('COM_CONTACT_FORM_LABEL'); ?></legend>

请将以下代码添加到HTML的head标签之间:

<dt><?php echo $this->form->getLabel('contact_telephone'); ?></dt>
<dd><?php echo $this->form->getInput('contact_telephone'); ?></dd>

5- 进入 *Joomla目录 > components > com_contact > controllers* 文件夹。

6- 找到 ‘_sendEmail’ 函数 [找到此代码:private function _sendEmail($data, $contact)] 并将以下代码添加到函数中:

$telephone  = $data['contact_telephone'];

然后改变这段代码

$body = $prefix."\n".$name.' <'.$email.'> '."\r\n\r\n".stripslashes($body);

to

$body = $prefix."\n".$name.' ('.$email.', '.$telephone.') '."\r\n\r\n".stripslashes($body);

我在那一行添加了变量$telephone。 现在,邮件中包含了发送者的电话号码。
这对我来说完美地解决了问题!

4
你应该尽量避免编辑Joomla核心文件。任何未来的更新可能会清除所有更改并破坏网站。 - Brian Bolli
2
使用此插件与上述答案相结合,您不再需要担心更新导致更改被清除的问题 :) - Faraz

0

第4步:如果您正在使用模板,则进入:

* Joomla目录>模板>您的模板文件夹名称>html> com_contact >联系人>并打开'default_form.php'文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接