我需要向joomla 3.x com_contact组件添加字段.我通过谷歌搜索找到了一些说明,但它们都是针对Joomla的早期版本(即2.5).
我知道extensions.joomla.org网站上还有其他组件,但它们不是我想要的.而且我不是在寻找联系表单组件.我不需要创建表单.
我尝试调整我为3.x找到的2.5修改,但它们不起作用.至少我不能让他们工作.
这是我发现的最接近这一点.但是对于joomla 2.5来说,基于我尝试这样做的步骤,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.现在,电子邮件包含发件人的电话号码.
这对我来说非常合适!