将字段添加到Joomla 3.x联系人组件

row*_*wby 4 joomla contact

我需要向joomla 3.x com_contact组件添加字段.我通过谷歌搜索找到了一些说明,但它们都是针对Joomla的早期版本(即2.5).

我知道extensions.joomla.org网站上还有其他组件,但它们不是我想要的.而且我不是在寻找联系表单组件.我不需要创建表单.

我尝试调整我为3.x找到的2.5修改,但它们不起作用.至少我不能让他们工作.

这是我发现的最接近这一点.但是对于joomla 2.5来说,基于我尝试这样做的步骤,3.x的步骤似乎有所不同.

怎么做但显然不适合Joomla 3.x.

有没有人有关于如何做到这一点的分步指导?

谢谢!

小智 6

如果你想为Joomla 2.5.x/3.x'联系表'添加字段,请执行以下步骤:(我想添加' 电话 '字段)

1-转到*Joomla目录>组件> 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"/>
Run Code Online (Sandbox Code Playgroud)

3-转到*Joomla目录>组件> com_contact> views> contact> tmpl*打开' default_form.php '文件.

4-在文件中找到此代码:

<legend><?php echo JText::_('COM_CONTACT_FORM_LABEL'); ?></legend>
Run Code Online (Sandbox Code Playgroud)

并在元素之间添加此代码:

<dt><?php echo $this->form->getLabel('contact_telephone'); ?></dt>
<dd><?php echo $this->form->getInput('contact_telephone'); ?></dd>
Run Code Online (Sandbox Code Playgroud)

5-转到*Joomla目录>组件> com_contact> controllers*打开' contact.php '文件.

6-找到' _sendEmail '函数[找到这段代码:private function _sendEmail($data, $contact)]并在函数中添加此代码:

$telephone  = $data['contact_telephone'];
Run Code Online (Sandbox Code Playgroud)

然后更改此代码

$body = $prefix."\n".$name.' <'.$email.'> '."\r\n\r\n".stripslashes($body);
Run Code Online (Sandbox Code Playgroud)

$body = $prefix."\n".$name.' ('.$email.', '.$telephone.') '."\r\n\r\n".stripslashes($body);
Run Code Online (Sandbox Code Playgroud)

我在该行添加了变量$ telephone.现在,电子邮件包含发件人的电话号码.

这对我来说非常合适!

  • 你应该真的避免编辑核心Joomla文件.任何未来的更新都可以消除破坏网站的任何更改. (3认同)
  • http://icueproject.com/products/override-xml-forms 将此插件与上述答案结合使用,您的更改因更新而消失的问题将不再是一个问题:) (2认同)