- Автор темы
- #1
Вкладываю и прошу знающих помощи добить модуль "Заявка на кредит"
Также отмечу что чуть переделанный вариант этого модуля подойдет и для "Быстрый заказ", и для "Нашли дешевле" и чего угдно что требует отправки (писем/заявок/вопросов) на почту.
Установка модуля, файл k_install.php:
Подключалка, файл modules/kredit/connector.kredit.xml:
Класс, файл modules/kredit/class.kredit.php:
Темплейт templates\frontend\kredit.tpl.html:
Проблемма в том что не просходит редирект RedirectSQ, ни просто Redirect, ни MessageRedirectSQ
Хотя все остальное работает! Отправка письма осуществляется! Затык только на редиректе!
Происходит открытие пустой страницы. Танцы с бубном не помагают
Также отмечу что чуть переделанный вариант этого модуля подойдет и для "Быстрый заказ", и для "Нашли дешевле" и чего угдно что требует отправки (писем/заявок/вопросов) на почту.
Установка модуля, файл k_install.php:
PHP:
$result = SQL("SELECT * FROM `SC_modules` WHERE `ModuleClassName` = 'kredit';");
if(!mysql_num_rows($result)) {
SQL("INSERT INTO `SC_modules` (`ModuleVersion`, `ModuleClassName`, `ModuleClassFile`) VALUES (1, 'kredit', '/kredit/class.kredit.php');");
$moduleID = mysql_insert_id();
SQL("INSERT INTO `SC_module_configs` (`ModuleID`, `ConfigKey`, `ConfigTitle`, `ConfigDescr`, `ConfigInit`, `ConfigEnabled`) VALUES".
"($moduleID, 'kredit', '', 'kredit', 1002, 1);");
$moduleConfigID = mysql_insert_id();
}
else {
$row = mysql_fetch_array($result);
$moduleID = $row['ModuleID'];
$result = SQL("SELECT * FROM `SC_module_configs` WHERE `ModuleID` = $moduleID;");
$row = mysql_fetch_array($result);
$moduleConfigID = $row['ModuleConfigID'];
}
$result = SQL("SELECT * FROM `SC_divisions` WHERE `xUnicKey` = 'kredit';");
if(!mysql_num_rows($result)) {
SQL("INSERT INTO `SC_divisions` (`xName`, `xKey`, `xUnicKey`, `xParentID`, `xEnabled`, `xPriority`, `xTemplate`, `xLinkDivisionUKey`) VALUES".
"('pgn_kredit', '', 'kredit', 1, 1, 1, '', '');");
$xID = mysql_insert_id();
SQL("INSERT INTO `SC_division_interface` (`xDivisionID`, `xInterface`, `xPriority`, `xInheritable`) VALUES".
"($xID, '{$moduleConfigID}_kredit', 0, 0);");
}
Подключалка, файл modules/kredit/connector.kredit.xml:
PHP:
<Connector>
<Class>
<Name>kredit</Name>
<File>class.kredit.php</File>
<Title>Заявка на кредит</Title>
<Description></Description>
<SingleInstallation>true</SingleInstallation>
</Class>
</Connector>
Класс, файл modules/kredit/class.kredit.php:
PHP:
<?php
class kredit extends Module {
function initInterfaces()
{
$this->methodKredit();
}
function methodKredit()
{
global $smarty;
$Register = &Register::getInstance();
/*@var $Register Register*/
$Message = $Register->get(VAR_MESSAGE);
/*@var $Message Message*/
//Информация о товаре
$productID = $_GET['productID'];
$sql = "SELECT * FROM `SC_products` WHERE productID = ?;";
$result = $this->dbHandler->ph_query($sql, $productID);
if($result->getNumRows()) {
$row = $result->fetchAssoc();
$Price = $row['Price'];
}
$smarty->assign('PRICE', $Price );
//Капча:
if (isset($productID) && $productID>=0 && !isset($_POST["add_topic"]) ){
if (isset($_GET["sent"]))$smarty->assign("sent",1);
set_query('&sent=', '', true);
$smarty->assign('conf_image', URL_ROOT.'/imgval.php?'.generateRndCode(4).'=1');
}
$smarty->assign("main_content_template", "kredit.tpl.html");
//Если выбрали отправить
if (isset($_POST["add_topic"])){
$customer = $_POST['customer'];
$customer_name = ( $customer['name'] );
$customer_email = ( $customer['email'] ) ;
$message_subject = ( 'Потребительский кредит' ) ;
$message_text = 'Заявка на оформление кредита'.
'Товар:'.
'ФИО:'.$customer['name'].'\n'.
'Дата рождения:'.$customer['birthday'].'\n'.
'Идентификационный номер:'.$customer['identification_number'].'\n'.
'Серия и номер паспорта:'.$customer['passport']['series'].$customer['passport']['number'].'\n'.
'Место выдачи паспорта:'.$customer['passport']['giveout_place'].'\n'.
'Дата выдачи паспорта:'.$customer['passport']['giveout_date'].'\n'.
'Адрес прописки:'.$customer['address']['registration'].'\n'.
'Адрес проживания:'.$customer['address']['living'].'\n'.
'Почтовый индекс:'.$customer['address']['postal_code'].'\n'.
'Домашний телефон:'.$customer['phone']['home']['code'].$customer['phone']['home']['number'].'\n'.
'Мобильный телефон:'.$customer['phone']['mobile']['code'].$customer['phone']['mobile']['number'].'\n'.
'Электронная почта:'.$customer['email'].'\n';
if(!valid_email($customer_email)){
Message::raiseMessageRedirectSQ(MSG_ERROR, '#product-request', 'msg_error_wrong_email', '', array('name' => 'prd_request', 'prd_request' => $_POST));
}
//validate input data
if (trim($customer_email)!="" && trim($customer_name)!="" && trim($message_subject)!="" && trim($message_text)!="" && eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z]+\.)+[a-zA-Z]{2,6}$", $customer_email)){
if(CONF_ENABLE_CONFIRMATION_CODE){
require_once(DIR_CLASSES.'/class.ivalidator.php');
$iVal = new IValidator();
if(!$iVal->checkCode($_POST['fConfirmationCode'])){
Message::raiseMessageRedirectSQ(MSG_ERROR, '#product-request', 'err_wrong_ccode', '', array('name' => 'prd_request', 'prd_request' => $_POST));
}
}
$customer_name = str_replace(array('@','<',"\n"), array('[at]', '', ''), $customer_name);
$customer_email = str_replace(array("\n",'<'), '', $customer_email);
//send a message to store administrator
ss_mail(CONF_GENERAL_EMAIL,$message_subject,$message_text,false,
array('From'=>$customer_email,'Sender'=>$customer_email,'FromName'=>$customer_name));
RedirectSQ('sent=yes#product-request');
}elseif(isset($_POST["request_information"]))Message::raiseMessageRedirectSQ(MSG_ERROR, '#product-request', 'err_input_all_required_fields', '', array('name' => 'prd_request', 'prd_request' => $_POST));;
}
}
}
?>
Темплейт templates\frontend\kredit.tpl.html:
PHP:
<div class="clearfix" id="cat_path">
<table cellpadding="0" border="0" class="cat_path_in_productpage">
<tr>
<td><a href="{"?"|set_query}">{"lnk_homepage"|translate}</a> {$BREADCRUMB_DELIMITER}
<a><b>Заявка на оформление потребительского кредита</b></a>
</td>
</tr>
</table>
</div>
<br>
{if $sent eq NULL}
<div class="per-month"><h2>
Оформление кредита на
<span class="payments-number">3 платежа </span>
по
<span class="payment-value">{$PRICE} грн.</span>
</h2></div>
<form class="credit-form" action="{''|set_query_html}" name="submit-by-ajax" method="POST">
<div class="information-block">
<div class="item">
<div class="title">ФИО:</div>
<div class="field"><input type="text" class="text" name="customer[name]" _required="required" pattern="^[a-zA-ZА-Яа-яіїёєІЇЁЄ\d\.\,\s_-]{2,100}$" ></div>
</div>
<div class="item">
<div class="title">Дата рождения:</div>
<div class="field"><input type="text" class="text text-short" name="customer[birthday]" _required="required" pattern="^[А-Яа-я\d\.\s-]{8,50}$" ></div>
</div>
<div class="item">
<div class="title">Идентификационный номер:</div>
<div class="field"><input type="text" class="text text-short" name="customer[identification_number]" _required="required" pattern="^[\d]{10}$" ></div>
</div>
<div class="item">
<div class="title">Серия и номер паспорта:</div>
<div class="field">
<input type="text" class="text text-short1" name="customer[passport][series]" _required="required" pattern="^[А-Я]{2}$" >
<input type="text" class="text text-short2" name="customer[passport][number]" _required="required" pattern="^[\d]{6}$" >
</div>
</div>
<div class="item">
<div class="title">Место выдачи паспорта:</div>
<div class="field"><input type="text" class="text" name="customer[passport][giveout_place]" _required="required" pattern="^[А-Яа-я\d\.\\\/\,\s-]{8,100}$" ></div>
</div>
<div class="item">
<div class="title">Дата выдачи паспорта:</div>
<div class="field"><input type="text" class="text" name="customer[passport][giveout_date]" _required="required" pattern="^[А-Яа-я\d\.\s-]{8,50}$" ></div>
</div>
<div class="item">
<div class="title">Адрес прописки:</div>
<div class="field"><input type="text" class="text" name="customer[address][registration]" _required="required" pattern="^[А-Яа-я\d\.\/\,\;\\\s-]{5,100}$" ></div>
</div>
</div>
<div class="information-block">
<div class="item">
<div class="title">Адрес проживания:</div>
<div class="field"><input type="text" class="text" name="customer[address][living]" _required="required" pattern="^[А-Яа-я\d\.\/\,\;\\\s-]{5,100}$" ></div>
</div>
<div class="item">
<div class="title">Почтовый индекс:</div>
<div class="field"><input type="text" class="text text-short3" name="customer[address][postal_code]" _required="required" pattern="^[\d]{5}$" ></div>
</div>
<div class="item">
<div class="title">Домашний телефон:</div>
<div class="field">
<input type="text" class="text text-short1" name="customer[phone][home][code]" _required="required" pattern="^[\d]{3}$" >
<input type="text" class="text text-short2" name="customer[phone][home][number]" _required="required" pattern="^[\d]{7}$" >
</div>
</div>
<div class="item">
<div class="title">Мобильный телефон:</div>
<div class="field">
<input type="text" class="text text-short1" name="customer[phone][mobile][code]" _required="required" pattern="^[\d]{3}$" >
<input type="text" class="text text-short2" name="customer[phone][mobile][number]" _required="required" pattern="^[\d]{7}$" >
</div>
</div>
<div class="item">
<div class="title">Электронная почта:</div>
<div class="field"><input type="text" class="text" name="customer[email]" _required="required" pattern="^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z0-9]{2,4})$" ></div>
</div>
</div>
<input type="hidden" name="add_topic" value="yes" >
<input type="hidden" name="productID" value="{$productID}" >
<input type="hidden" name="discuss" value="yes" >
<input type="hidden" name="payments_number" value="3" >
<input type="hidden" name="payments_per_month" value="708" >
<div class="item submit">
{if $smarty.const.CONF_ENABLE_CONFIRMATION_CODE}
<table>
<tbody class="background1">
<tr>
<td colspan="2">{"str_enter_ccode"|translate}</td>
</tr>
<tr>
<td align="right">
<img src="{$conf_image}" alt="code" align="right" >
</td>
<td align="left">
<input name="fConfirmationCode" type="text" >
</td>
</tr>
</tbody>
</table>
{/if}
<div class="field"><button type="submit">Отправить</button></div>
</div>
</form>
{else}
<p>
<b><font class=faq color=blue>{"feedback_msg_sent_successfully"|translate}</font></b>
{/if}
Проблемма в том что не просходит редирект RedirectSQ, ни просто Redirect, ни MessageRedirectSQ
Хотя все остальное работает! Отправка письма осуществляется! Затык только на редиректе!
Происходит открытие пустой страницы. Танцы с бубном не помагают