24.01.2014, 10:40. Показов 1984. Ответов 1
Доброго всем дня.
Появилась необходимость сделать форму обратной связи на Joomla, для этого выбрал
VTEM Contact for joomla
По стандарту там 4 поля
Имя
e-mail
Тема
Текст
нужно добавить ещё несколько полей
Фамилия
Отчество
Телефон
Город
Собственно, в ней всего два файла php и xml
| PHP |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
| <?php
/*------------------------------------------------------------------------
# mod_vtem_contact - VTEM Contact Module
# ------------------------------------------------------------------------
# author Nguyen Van Tuyen
# copyright Copyright (C) 2011 VTEM.NET. All Rights Reserved.
# @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# Websites: http://www.vtem.net
# Technical Support: Forum - http://vtem.net/en/forum.html
-------------------------------------------------------------------------*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
$document =& JFactory::getDocument();
$document->addStyleSheet(JURI::root().'modules/mod_vtem_contact/assets/style.css');
if($params->get('enable_anti_spam') == 1){
$document->addScript(JURI::root().'modules/mod_vtem_contact/assets/captcha.js');
$vtonsubmit = 'onsubmit="return checkform(this, code)"';
$vtcaptcharhtml = '<tr><td colspan="2">' . $params->get('text_antispam') . '</td></tr>
<tr><td valign="top" width="80px">
<script type="text/javascript">
document.write("<span class=\'vt_captcha\'>"+ a + " + " + b +"</span>");
</script>
</td><td align="left">
<input type="input" name="input" class="vt_inputbox" style="width:80px;" />
</td></tr>' . "\n";
}
//Form Parameters
$recipient = $params->get('email_recipient', 'email@gmail.com');
$fromName = $params->get('from_name', 'VTEM Contact');
$fromEmail = $params->get('from_email', 'contact@gmail.com');
$width = $params->get('width', '250px');
$require_name = $params->get('require_name') ? " required" : "";
$require_surname = $params->get('require_surname') ? " required" : "";
$require_mail = $params->get('require_mail') ? " required validate-email" : "";
$require_subject = $params->get('require_subject') ? " required" : "";
$require_mess = $params->get('require_mess') ? " required" : "";
$NameLabel = $params->get('name_label', 'Name:');
$SurnameLabel = $params->get('surname_label', 'surname:');
$EmailLabel = $params->get('email_label', 'Email:');
$SubjectLabel = $params->get('subject_label', 'Subject:');
$MessageLabel = $params->get('message_label', 'Message:');
$buttonText = $params->get('button_text', 'Send Message');
$pageText = $params->get('page_text', 'Thank you for your contact.');
$errorText = $params->get('error_text', 'Your message could not be sent. Please try again.');
$pre_text = $params->get('pre_text', '');
$mod_class_suffix = $params->get('moduleclass_sfx', '');
$url = $_SERVER['REQUEST_URI'];
$url = htmlentities($url, ENT_COMPAT, "UTF-8");
if (isset($_POST["vtem_email"])) {
$lsUserName = $_POST["vtem_name"];
$lsSubject = $_POST["vtem_subject"];
$lsUserEmail = $_POST["vtem_email"];
$lsMessage = $_POST["vtem_message"];
$lsUserSurname = $_POST["vtem_surname"];
$lsBody = 'The following user has entered a message:'."\n";
$lsBody .= "Name: $lsUserName" . "\n";
$lsBody .= "Surname: $lsUserSurname" . "\n";
$lsBody .= "Email: $lsUserEmail" . "\n";
$lsBody .= "Message: " . "\n";
$lsBody .= $lsMessage . "\n\n";
$lsBody .= "---------------------------" . "\n";
$mailSender = &JFactory::getMailer();
$mailSender->addRecipient($recipient);
$mailSender->setSender(array($fromEmail,$fromName));
$mailSender->addReplyTo(array( $_POST["vtem_email"], '' ));
$mailSender->setSubject($lsSubject);
$mailSender->setBody($lsBody);
if ($mailSender->Send() !== true) {
echo '<span style="color:#000;font-weight:bold;">' . $errorText . '</span>';
return true;
}
else {
echo '<span style="font-weight:bold;">' . $pageText . '</span>';
return true;
}
} // end if posted
JHTML::_('behavior.formvalidation');
print '<div id="vtemcontact1" class="vtem-contact-form vtem_contact ' . $mod_class_suffix . '">
<form name="vtemailForm" id="vtemailForm" action="' . $url . '" method="post" class="form-validate" '.$vtonsubmit.'>' . "\n" .
'<div class="vtem_contact_intro_text">'.$pre_text.'</div>' . "\n";
print '<table border="0">';
print '<tr><td colspan="2">' . $NameLabel . '<br/><input class="vt_inputbox'.$require_name.'" style="width:'.$width.'" type="text" name="vtem_name"/></td></tr>' . "\n";
// print email input
print '<tr><td colspan="2">' . $EmailLabel . '<br/><input class="vt_inputbox'.$require_mail.'" type="text" name="vtem_email" style="width:'.$width.'"/></td></tr>' . "\n";
// print subject input
print '<tr><td colspan="2">' . $SubjectLabel . '<br/><input class="vt_inputbox'.$require_subject.'" type="text" name="vtem_subject" style="width:'.$width.'"/></td></tr>' . "\n";
// print message input
print '<tr><td valign="top" colspan="2">' . $MessageLabel . '<br/><textarea class="vt_inputbox'.$require_mess.'" name="vtem_message" cols="35" rows="5" style="width:'.$width.'"></textarea></td></tr>' . "\n";
print $vtcaptcharhtml;
// print button
print '<tr><td colspan="2"><input name="vtbutton" id="vtbutton" class="vtem_contact_button validate" type="submit" value="' . $buttonText . '"/></td></tr></table></form></div>' . "\n"; |
|
| XML |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
| <?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0" position="status" method="upgrade">
<name>VTEM QuickContact</name>
<author>Nguyen Van Tuyen</author>
<creationDate>09/09/2011</creationDate>
<copyright>Copyright (C) 2011 VTEM.NET. All rights reserved.</copyright>
<license>[url]http://www.gnu.org/licenseses/gpl-2.0.html[/url] GNU/GPL</license>
<authorEmail>tuyen0110@gmail.com</authorEmail>
<authorUrl>http://www.vtem.net</authorUrl>
<version>1.0</version>
<description>VTEM Contact for joomla</description>
<files>
<folder>assets</folder>
<filename>index.html</filename>
<filename module="mod_vtem_contact">mod_vtem_contact.php</filename>
</files>
<params>
<param name="email_recipient" type="text" default="email@email.com" label="Email Recipient" description="The recipient of the contact mail." size="40" />
<param name="from_name" type="text" default="VTEM Contact" label="Mail From Name" description="The name of the message's sender" size="40" />
<param name="from_email" type="text" default="contact@yoursite.com" label="Mail From Email" description="The email of the message's sender" size="40" />
<param name="width" type="text" default="250px" label="Module width" description="The width of the contact mail." />
<param name="pre_text" type="textarea" default="" label="Pre-text" description="This is the text or HTML that is displayed above the contact form." size="50" cols="28" rows="3" />
<param name="@spacer" type="spacer" default="" label="" description=""/>
<param name="name_label" type="text" default="Имя" label="Name Label" description="The name label of user." size="35" />
<param name="surname_label" type="text" default="Фамилия" label="Surname Label" description="Фамилия" size="35" />
<param name="require_name" type="radio" default="0" label="Require Name" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param name="email_label" type="text" default="E-mail address" label="Email Label" description="The label next to the email input." size="35" />
<param name="require_mail" type="radio" default="1" label="Require Email" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param name="subject_label" type="text" default="Subject" label="Subject Label" description="The label next to the subject input." size="35" />
<param name="require_subject" type="radio" default="0" label="Require Subject" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param name="message_label" type="text" default="Enter your message" label="Message Label" description="The label next to the message text area." size="35" />
<param name="require_mess" type="radio" default="1" label="Require Message" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param name="button_text" type="text" default="Send Message" label="Button Text" description="The text on the send button" size="35" />
<param name="page_text" type="text" default="Thank you for your contact." label="Thank you text" description="The text displayed to the user when he sends a message" size="50" />
<param name="error_text" type="text" default="Your message could not be sent. Please try again." label="Error page text" description="The text displayed to the user when the message fails to be sent" size="50" />
<param name="@spacer" type="spacer" default="" label="" description=""/>
<param name="enable_anti_spam" type="radio" default="1" label="Enable Anti-spam" description="Enable this to use the anti-spam question for anti-spam control">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param name="text_antispam" type="text" default="Enter Verification Code" label="Anti-Spam Label" description="" size="50"/>
</params>
<params group="advanced">
<param name="moduleclass_sfx" type="text" default="" label="Module Class Suffix" description="If you want to apply a custom style, change this class suffix." />
<param name="cache" type="list" default="1" label="Caching" description="Select whether to cache the content of this module">
<option value="1">Use global</option>
<option value="0">No caching</option>
</param>
<param name="cache_time" type="text" default="900" label="Cache Time" description="The time before the module is recached" />
</params>
<config>
<fields name="params">
<fieldset name="basic">
<field name="email_recipient" type="text" default="email@email.com" label="Email Recipient" description="The recipient of the contact mail." size="40" />
<field name="from_name" type="text" default="VTEM Contact" label="Mail From Name" description="The name of the message's sender" size="40" />
<field name="from_email" type="text" default="contact@yoursite.com" label="Mail From Email" description="The email of the message's sender" size="40" />
<field name="width" type="text" default="250px" label="Module width" description="The width of the contact mail." />
<field name="pre_text" type="textarea" default="" label="Pre-text" description="This is the text or HTML that is displayed above the contact form." size="50" cols="28" rows="3" />
<field name="spacer1" type="spacer" hr="true"/>
<field name="name_label" type="text" default="Enter your name" label="Name Label" description="The name label of user." size="35" />
<field name="surname_label" type="text" default="Введите фамилию" label="Surname Label" description="Фамилия" size="35" />
<field name="require_name" type="radio" default="0" label="Require Name" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</field>
<field name="email_label" type="text" default="E-mail address" label="Email Label" description="The label next to the email input." size="35" />
<field name="require_mail" type="radio" default="1" label="Require Email" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</field>
<field name="subject_label" type="text" default="Subject" label="Subject Label" description="The label next to the subject input." size="35" />
<field name="require_subject" type="radio" default="0" label="Require Subject" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</field>
<field name="message_label" type="text" default="Enter your message" label="Message Label" description="The label next to the message text area." size="35" />
<field name="require_mess" type="radio" default="1" label="Require Message" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</field>
<field name="button_text" type="text" default="Send Message" label="Button Text" description="The text on the send button" size="35" />
<field name="page_text" type="text" default="Thank you for your contact." label="Thank you text" description="The text displayed to the user when he sends a message" size="50" />
<field name="error_text" type="text" default="Your message could not be sent. Please try again." label="Error page text" description="The text displayed to the user when the message fails to be sent" size="50" />
<field name="spacer2" type="spacer" hr="true"/>
<field name="enable_anti_spam" type="radio" default="1" label="Enable Anti-spam" description="Enable this to use the anti-spam question for anti-spam control">
<option value="0">No</option>
<option value="1">Yes</option>
</field>
<field name="text_antispam" type="text" default="Enter Verification Code" label="Anti-Spam Label" description="" size="50"/>
</fieldset>
<fieldset name="advanced">
<field name="moduleclass_sfx" type="text" default="" label="Module Class Suffix" description="If you want to apply a custom style, change this class suffix." />
<field name="cache" type="list" default="1" label="Caching" description="Select whether to cache the content of this module">
<option value="1">Use global</option>
<option value="0">No caching</option>
</field>
<field name="cache_time" type="text" default="900" label="Cache Time" description="The time before the module is recached" />
</fieldset>
</fields>
</config>
</install> |
|
в php добавил несколько строк для фамилии, в ПхП не силен совсем..
| PHP |
1
2
3
4
| $require_surname = $params->get('require_surname') ? " required" : "";
$SurnameLabel = $params->get('surname_label', 'surname:');
$lsUserSurname = $_POST["vtem_surname"];
$lsBody .= "Surname: $lsUserSurname" . "\n"; |
|
в xml
| XML |
1
2
| <param name="surname_label" type="text" default="Фамилия" label="Surname Label" description="Фамилия" size="35" />
<field name="surname_label" type="text" default="Введите фамилию" label="Surname Label" description="Фамилия" size="35" /> |
|
в модуле поля появились, а вот на сайте нет.
Добавлено через 36 минут
Добавил
| PHP |
1
2
| print '<tr><td colspan="2">' . $SurnameLabel . '<br/><input class="vt_inputbox'.$require_surname.'" style="width:'.$width.'" type="text" name="vtem_surname"/></td></tr>' . "\n";
// print surname input |
|
вроде получилось