Главная Главная  Форум Форум  Мини чат Мини чат  Файлы Файлы  Новости Новости  Сайты Сайты  Статьи Статьи  Документация
История мини чата Написать
[ Нояб 26, 22:13 ] xeon: Да движок умер жалко хотя давно им не пользуюсь мои проекты доживают на нем пока так готовлю свой движок :)
[ Сент 30, 13:59 ] Eps: Проект умер походу....
[ Февр 04, 15:56 ] M@XIM: Есть кто?)
[ Июнь 12, 12:16 ] wsok: проект умер чтоль? интеграции с ксеном не ждать?
[ Нояб 25, 20:30 ] Jade: Вот и я тут появилась. ))

Партнёры

Перейти к содержимому


Добавление доп. полей в модуле контактов


Сообщений в теме: 5

#1 NightElf86

NightElf86

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений
  • Форум:PHPBB3
  • Версия MKP:C1.2.2 R0.0.2

Отправлено 14 February 2012 - 09:45

Добрый день, возникла необходимость добавления 2-3 полей в стандартный модуль "Обратной связи". Чтобы не корячить родной, добавил модуль contact2 и для него файл lang_contact2.php. Форму сделал (добавил 2 текстовых поля и один select), все отображается, но данные из новых полей не посылаются (даже из lang_contact2.php не выводит, описание доп.полей).
Вот код самой формы, здесь выводится нормально:

<table border=0 align=center width=60%>
		<tr>
			<td align=left>{$mklib->lang['mcon_yname']}
				 
			</td>
			<td align=center>
				<input type=text size=40 name=yname value=\"$nome\">
			</td>
		</tr>
  <tr>
			<td align=left>{$mklib->lang['mcon_ydog']}
				 
			</td>
			<td align=center>
				<input type=text size=30 name=ydog>
			</td>
		</tr>
  <tr>
			<td align=left>{$mklib->lang['mcon_ytlf']}</td>
			<td align=center><input type=text size=30 name=ytlf></td>
		</tr>
		<tr>
			<td align=left>{$mklib->lang['mcon_ymail']}</td>
			<td align=center><input type=text size=30 name=ymail value=\"$nome1\"></td>
		</tr>
		<tr>
			<td align=left></td>
			<td align=center><input type=hidden size=30 name=tsoob value=\"{$mklib->lang['mcon_mcontact']}\"></td>
		</tr>
  <tr>
			<td align=left>{$mklib->lang['mcon_usl']}</td>
			<td align=center><select name=tusl>
   <option value=\"{$mklib->lang['mcon_usl1']}\">{$mklib->lang['mcon_usl1']}</option>
   <option value=\"{$mklib->lang['mcon_usl2']}\">{$mklib->lang['mcon_usl2']}</option>
   <option value=\"{$mklib->lang['mcon_usl3']}\">{$mklib->lang['mcon_usl3']}</option>
   <option value=\"{$mklib->lang['mcon_usl4']}\">{$mklib->lang['mcon_usl4']}</option>
   <option value=\"{$mklib->lang['mcon_usl5']}\">{$mklib->lang['mcon_usl5']}</option>
   <option value=\"{$mklib->lang['mcon_usl6']}\">{$mklib->lang['mcon_usl6']}</option>
   <option value=\"{$mklib->lang['mcon_usl7']}\">{$mklib->lang['mcon_usl7']}</option>
   </select></td>
		</tr>
		<tr>
			<td align=left>{$mklib->lang['mcon_soob']}</td>
			<td align=center><textarea name=soob cols=50 rows=10></textarea><br>
		<i>{$mklib->lang['mcon_pozlan']}</i></td>
   <tr>
  <td align=left colspan=2><p align=\"center\">$captcha</p></td>
  </tr>
		</tr>
		 <tr>
			<td align=center>{$mklib->lang['mcon_pola']}</td>
		</tr>
		<tr>
			<td align=left colspan=2><p align=\"center\"><input type=submit value=\"{$mklib->lang['mcon_send']}\"></p></td>
		</tr>
</table>

Вот код самой функции:

function send_mail() {
   global $mkportals, $DB, $Skin, $print, $mklib, $mklib_board, $SITE_NAME;
@header("Content-type: text/html; charset={$mklib->charset}");
@header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
@header('Last-Modified: '.@gmdate('D, d M Y H:i:s').' GMT');
@header('Cache-Control: no-store, no-cache, must-revalidate');
@header('Cache-Control: post-check=0, pre-check=0', false);
@header('Pragma: no-cache'); 
$yname1 = $mkportals->input['yname'];
$ymail = $mkportals->input['ymail'];
$ydog = $mkportals->input['ydog']; //Номер договора
$ytlf = $mkportals->input['ytlf']; //Номер телефона
$tsoob1 = $mkportals->input['tsoob'];
$tusl1 = $mkportals->input['tusl']; //Выбранный тип услуги
$soob1 = strip_tags( stripslashes( $_POST['soob'] ) );;
$yname = iconv("UTF-8", "$mklib->charset", $yname1);
$tsoob = iconv("UTF-8", "$mklib->charset", $tsoob1);
$soob = iconv("UTF-8", "$mklib->charset", $soob1);
$tusl = iconv("UTF-8", "$mklib->charset", $tusl1); //Конвертирование услуги
if ($mklib->config['antibot_chek'] && !$mkportals->member['id']){
$captcha_code = $mkportals->input['check'];
$captcha_check = $mklib->antibot_check($captcha_code);
}
if (!$yname || !$ymail || !$tsoob) {
   $message = "{$mklib->lang['mcon_meseror1']}";
   $mklib->Ajax_error_page($message);
   exit();
  }
  if (!eregi("^[\'+\\./0-9A-Z^_\`a-z{|}~\-]+@[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+){1,3}$", $ymail)) {
		$message = "{$mklib->lang['mcon_meseror2']}";
   $mklib->Ajax_error_page($message);
   exit();
}
$ip = $_SERVER['REMOTE_ADDR'];
if($mklib->config['contact_ip'] == "1") {
   $ipsend ="{$mklib->lang['mcon_ipot']} $ip \n";
	 }

//$subj = "{$mklib->lang['mcon_mcontact']}-$SITE_NAME";
$subj = "{$mklib->lang['mcon_mcontact']}-{$mklib->lang['mcon_company']}";
$to = "{$mklib->config['contact_send']}";
$mess = "
{$mklib->lang['mcon_nameot']}  $yname \n
{$mklib->lang['mcon_dogot']}  $ydog \n
{$mklib->lang['mcon_tlfot']}  $ytlf \n
{$mklib->lang['mcon_mailot']}  $ymail \n
{$mklib->lang['mcon_uslot']}  $tusl \n
{$mklib->lang['mcon_tsoob']}:  $tsoob\n
{$mklib->lang['mcon_soob']}:  $soob \n
$ipsend
";
//$headers .= "Content-Type: text/plain; charset=\"{$mklib->charset}\"\r\n";
$headers .= "Content-Type: text/plain; charset=\"UTF-8\"\r\n";
$headers .="From: $yname <$ymail>\n";
mail($to, $subj, $mess, $headers);
$message = "<div class=\"bghighlight1 success\"><p align=\"center\">{$mklib->lang['mcon_spaz']} <b>$yname</b> {$mklib->lang['mcon_spaz2']}</p></div>";
$mklib->Ajax_ok_page($message);
   exit();
  }

$mess = "
{$mklib->lang['mcon_nameot']}  $yname \n
{$mklib->lang['mcon_dogot']}  $ydog \n
{$mklib->lang['mcon_tlfot']}  $ytlf \n
{$mklib->lang['mcon_mailot']}  $ymail \n
{$mklib->lang['mcon_uslot']}  $tusl \n
{$mklib->lang['mcon_tsoob']}:  $tsoob\n
{$mklib->lang['mcon_soob']}:  $soob \n
$ipsend

вот этот кусок по идее должен вывести письмо в виде:

Имя отправителя:  ФИО
Номер договора: 123456
Номер телефон: 123-12-12
E-Mail отправителя:  почта@почта.ру
Желаемая услуга: Интернет
Тема Сообщения:  Заявка
Сообщение:  Привет
IP Адрес отправителя: xxx.xxx.xxx.xxx

но выводится только это:

Имя отправителя:  ФИО
E-Mail отправителя:  почта@почта.ру
Тема Сообщения:  Заявка
Сообщение:  Привет
IP Адрес отправителя: xxx.xxx.xxx.xxx

#2 xeon

xeon

    Активный участник

  • Пользователи
  • PipPipPip
  • 496 сообщений
  • Пол:Мужчина
  • Город:MSK
  • Интересы:PHP, MySQL, CSS, XML, HTML, JavaScript
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 14 February 2012 - 10:21

чтобы заработал lang_contact2.php найдите
$mklib->load_lang("lang_contact.php");
и после него воткните а лучше всё в 1 фаил
$mklib->load_lang("lang_contact2.php");
и попробуйте вот так должно работать
if (!$yname || !$ymail || !$tsoob || !$ydog || !$ytlf || !$tusl1 || !$tusl) {
   $message = "{$mklib->lang['mcon_meseror1']}";
   $mklib->Ajax_error_page($message);
   exit();
  }
  if (!eregi("^[\'+\\./0-9A-Z^_\`a-z{|}~\-]+@[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+){1,3}$", $ymail)) {
			$message = "{$mklib->lang['mcon_meseror2']}";
   $mklib->Ajax_error_page($message);
   exit();
}
$ip = $_SERVER['REMOTE_ADDR'];
if($mklib->config['contact_ip'] == "1") {
   $ipsend ="{$mklib->lang['mcon_ipot']} $ip \n";
		 }

Сообщение отредактировал xeon: 14 February 2012 - 10:22


#3 NightElf86

NightElf86

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений
  • Форум:PHPBB3
  • Версия MKP:C1.2.2 R0.0.2

Отправлено 14 February 2012 - 10:54

Просмотр сообщенияxeon (14 February 2012 - 10:21) писал:

чтобы заработал lang_contact2.php найдите
$mklib->load_lang("lang_contact.php");
и после него воткните а лучше всё в 1 фаил
$mklib->load_lang("lang_contact2.php");

Там у меня заменено на lang_contact2.php (иначе бы в форме новые значения не отображались).
    $mklib->load_lang("lang_contact2.php");
Заменено потому что есть и просто lang_contact и lang_contact2, так же как и модули contact и contact2

После добавления
if (!$yname || !$ymail || !$tsoob || !$ydog || !$ytlf || !$tusl1 || !$tusl)
ничего не изменилось, насколько я понимаю это просто условие что все поля обязательны.

#4 NightElf86

NightElf86

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений
  • Форум:PHPBB3
  • Версия MKP:C1.2.2 R0.0.2

Отправлено 14 February 2012 - 14:30

может быть стоит целиком скинуть:
<?
if (!defined("IN_MKP")) {
	die ("Sorry !! You cannot access this file directly.");
}

$idx = new mk_contact;
class mk_contact {
function mk_contact() {
global $mkportals, $DB, $std, $print, $mklib, $Skin, $mklib_board;
  $mklib->load_lang("lang_contact2.php");
  if ($mklib->config['mod_contact']) {
  $message = "{$mklib->lang['mod_offline']}";
   $mklib->error_page($message);
   exit;
  
  }
  if(!$mklib->member['g_access_contact'] && !$mkportals->member['g_access_cp']) {
   $message = "{$mklib->lang['mod_nodostup']}";
   $mklib->error_page($message);
   exit;
  }
	  switch($mkportals->input['op']) {
	default:
		$this->mail();
	   break;
	   case 'send_mail':
		$this->send_mail();
	   break;
   /* case 'news_show_single':
		$this->news_show_single();
	   break;*/
   
	  }
}
function mail () {
global $mkportals, $DB, $std, $print, $mklib, $Skin, $mklib_board;
if ($mkportals->member['id']) {$nome = $mkportals->member['name'];}
if ($mkportals->member['id']) {$nome1 = $mkportals->member['email'];}
$captcha = $mklib->antibot_start();
	 $output .="<tr>
   <td align=\"center\">
	 <div align=\"center\">{$mklib->lang['mcon_hello']}</div>
   <br /><br /></td>
</tr> ";
   $output .= "
  <tr><td align=center width=100% id=\"contact\">
<form name=\"forms\" id=\"forms\" action=\"javascript:sendContact();\" method=\"post\">
	<table border=0 align=center width=60%>
		<tr>
			<td align=left>{$mklib->lang['mcon_yname']}
				 
			</td>
			<td align=center>
				<input type=text size=40 name=yname value=\"$nome\">
			</td>
		</tr>
  <tr>
			<td align=left>{$mklib->lang['mcon_ydog']}
				 
			</td>
			<td align=center>
				<input type=text size=30 name=ydog>
			</td>
		</tr>
  <tr>
			<td align=left>{$mklib->lang['mcon_ytlf']}</td>
			<td align=center><input type=text size=30 name=ytlf></td>
		</tr>
		<tr>
			<td align=left>{$mklib->lang['mcon_ymail']}</td>
			<td align=center><input type=text size=30 name=ymail value=\"$nome1\"></td>
		</tr>
		<tr>
			<td align=left></td>
			<td align=center><input type=hidden size=30 name=tsoob value=\"{$mklib->lang['mcon_mcontact']}\"></td>
		</tr>
  <tr>
			<td align=left>{$mklib->lang['mcon_usl']}</td>
			<td align=center><select name=tusl>
   <option value=\"2\">{$mklib->lang['mcon_usl1']}</option>
   <option value=\"{$mklib->lang['mcon_usl2']}\">{$mklib->lang['mcon_usl2']}</option>
   <option value=\"{$mklib->lang['mcon_usl3']}\">{$mklib->lang['mcon_usl3']}</option>
   <option value=\"{$mklib->lang['mcon_usl4']}\">{$mklib->lang['mcon_usl4']}</option>
   <option value=\"{$mklib->lang['mcon_usl5']}\">{$mklib->lang['mcon_usl5']}</option>
   <option value=\"{$mklib->lang['mcon_usl6']}\">{$mklib->lang['mcon_usl6']}</option>
   <option value=\"{$mklib->lang['mcon_usl7']}\">{$mklib->lang['mcon_usl7']}</option>
   </select></td>
		</tr>
		<tr>
			<td align=left>{$mklib->lang['mcon_soob']}</td>
			<td align=center><textarea name=soob cols=50 rows=10></textarea><br>
		<i>{$mklib->lang['mcon_pozlan']}</i></td>
   <tr>
  <td align=left colspan=2><p align=\"center\">$captcha</p></td>
  </tr>
		</tr>
		 <tr>
			<td align=center>{$mklib->lang['mcon_pola']}</td>
		</tr>
		<tr>
			<td align=left colspan=2><p align=\"center\"><input type=submit value=\"{$mklib->lang['mcon_send']}\"></p></td>
		</tr>
</table>
</form>
</td></tr>";
   $output .="<tr>
   <td align=\"center\"><br /><br />
	 <div align=\"center\"><a href=\"http://www.rusmkportal.ru\" target=\"_blank\">MKPContact</a> &copy;2007-2009 <a href=\"http://www.rusmkportal.ru\" target=\"_blank\">www.rusmkportal.ru</a></div>
   </td>
</tr> ";
$blocks .= $Skin->view_block("{$mklib->lang['mcon_mcontact']}", $output);
$mklib->printpage("1", "1", "{$mklib->lang['mcon_mcontact']}", $blocks); 
} 
  function send_mail() {
   global $mkportals, $DB, $Skin, $print, $mklib, $mklib_board, $SITE_NAME;
@header("Content-type: text/html; charset={$mklib->charset}");
@header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
@header('Last-Modified: '.@gmdate('D, d M Y H:i:s').' GMT');
@header('Cache-Control: no-store, no-cache, must-revalidate');
@header('Cache-Control: post-check=0, pre-check=0', false);
@header('Pragma: no-cache'); 
$yname1 = $mkportals->input['yname'];
$ymail = $mkportals->input['ymail'];
$ydog = $_POST['ydog'];
$ytlf = $mkportals->input['ytlf'];
$tsoob1 = $mkportals->input['tsoob'];
$tusl1 = $mkportals->input['tusl'];
$soob1 = strip_tags( stripslashes( $_POST['soob'] ) );;
$yname = iconv("UTF-8", "$mklib->charset", $yname1);
$tsoob = iconv("UTF-8", "$mklib->charset", $tsoob1);
$soob = iconv("UTF-8", "$mklib->charset", $soob1);
$tusl = iconv("UTF-8", "$mklib->charset", $tusl1);
if ($mklib->config['antibot_chek'] && !$mkportals->member['id']){
$captcha_code = $mkportals->input['check'];
$captcha_check = $mklib->antibot_check($captcha_code);
}
if (!$yname || !$ymail || !$tsoob || !$ydog || !$ytlf || !$tusl) {
   $message = "{$mklib->lang['mcon_meseror1']}";
   $mklib->Ajax_error_page($message);
   exit();
  }
  if (!eregi("^[\'+\\./0-9A-Z^_\`a-z{|}~\-]+@[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+){1,3}$", $ymail)) {
		$message = "{$mklib->lang['mcon_meseror2']}";
   $mklib->Ajax_error_page($message);
   exit();
}
$ip = $_SERVER['REMOTE_ADDR'];
if($mklib->config['contact_ip'] == "1") {
   $ipsend ="{$mklib->lang['mcon_ipot']} $ip \n";
	 }

//$subj = "{$mklib->lang['mcon_mcontact']}-$SITE_NAME";
$subj = "{$mklib->lang['mcon_mcontact']}-{$mklib->lang['mcon_company']}";
$to = "{$mklib->config['contact_send']}";
$mess = "
{$mklib->lang['mcon_nameot']}  $yname \n
{$mklib->lang['mcon_dogot']}  $ydog \n
{$mklib->lang['mcon_tlfot']}  $ytlf \n
{$mklib->lang['mcon_mailot']}  $ymail \n
{$mklib->lang['mcon_uslot']}  $tusl \n
{$mklib->lang['mcon_tsoob']}:  $tsoob\n
{$mklib->lang['mcon_soob']}:  $soob \n
$ipsend
";
//$headers .= "Content-Type: text/plain; charset=\"{$mklib->charset}\"\r\n";
$headers .= "Content-Type: text/plain; charset=\"UTF-8\"\r\n";
$headers .="From: $yname <$ymail>\n";
mail($to, $subj, $mess, $headers);
$message = "<div class=\"bghighlight1 success\"><p align=\"center\">{$mklib->lang['mcon_spaz']} <b>$yname</b> {$mklib->lang['mcon_spaz2']}</p></div>";
$mklib->Ajax_ok_page($message);
   exit();
  }
  
}
?>


#5 DNP

DNP

    Активный участник

  • Администраторы
  • PipPipPip
  • 2561 сообщений
  • Пол:Мужчина
  • Город:RUS
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 14 February 2012 - 15:19

Вы собираетесь использовать один модуль или оба?
Если один делайте всё в нем не дублируя
Если два то нужно в вашей теме оформления файл mkp.js добавть дубль функции в самый низ
function sendContact2()
{   
	var url =  MKAJAX_SITEPATH + 'index.php?ind=contact2&op=send_mail';
	var Handler = function(Request)
	{
	   $("contact").innerHTML = Request.responseText;
	}
	r_args = "";
	form = document.getElementById("forms");
	for(i=0; i<form.elements.length; i++)
	{
		r_args += "&" +form.elements[i].name + "=" + form.elements[i].value
	}
	SendRequest("post",url,r_args,Handler);
 
}
в файле модуля  javascript:sendContact() заменить на javascript:sendContact()2

В данный момент у вас просто из нового модуля Contact2 отправляются данные в старый модуль Contact

#6 NightElf86

NightElf86

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений
  • Форум:PHPBB3
  • Версия MKP:C1.2.2 R0.0.2

Отправлено 17 February 2012 - 15:28

Спасибо большое, все получилось.



Ответить



  


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


MKPortal R1.0.2©2003-2008 mkportal.it
Logan ©2007-2011 RusMKPortal
Время: 0.01188 сек Память: 5.52MB Запросов к БД: 8