С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
23 / 23 / 1
Регистрация: 08.08.2013
Сообщений: 112

Добавление полей в форму обратной связи

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
вроде получилось
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2014, 10:40
Ответы с готовыми решениями:

Добавление полей в форму обратной связи
Приветствую всех, и с праздником! пытаюсь отредактировать форму обратной связи. в форму хочу вставить два дополнительных поля,...

Форма обратной связи. Проверка на правильность заполнения полей
Здравствуйте в PHP я совсем не шарю. Помогите пожалуйста. Форма обратной связи не отсылает сообщение с сайта на email, если в поле...

Сделать форму обратной связи
форма должна состоять из публичных полей -name -email -phone -subject -mrsssage Скрытые поля -текущая дата и время ...

1
23 / 23 / 1
Регистрация: 08.08.2013
Сообщений: 112
27.01.2014, 10:54  [ТС]
Подскажите, как сделать несколько форм, чтобы они были независимы на одной странице, а то при отправке одной - вторая так же отправляется на почту
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.01.2014, 10:54
Помогаю со студенческими работами здесь

Про форму обратной связи
Всем привет! Очередной вопрос про форму обратной связи: нашел где то красивую форму на лендинг, но сообщения не отправляются, не подскажете...

Не могу оживить форму обратной связи
&lt;div class=&quot;content&quot;&gt; &lt;h3&gt;Contact Form&lt;/h3&gt; &lt;form id=&quot;contacts-form&quot; action=&quot;#&quot;&gt; &lt;fieldset&gt; ...

Как починить форму обратной связи
Здравствуйте уважаемые форумчане, помогите решить проблему чайнику. Я новичок, делаю сайт, нашел шаблон, переделал его под себя, а вот с...

Как настроить форму обратной связи?
Требуется помощь. Пытаюсь поставить форму обратной связи на сайт. При этом форма стала, окно вызывается, поля заполняются, письма якобы...

Передача ip через форму обратной связи
Здравствуйте! На сайте есть форма обратной связи с заполнением данных на xtml php с отправкой на емейл. Возможно сделать так, что когда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru