модуль заявка на кредит помогите дописать

Slaviq

Создатель
Регистрация
19 Сен 2007
Сообщения
37
Реакции
1
Вкладываю и прошу знающих помощи добить модуль "Заявка на кредит"
Также отмечу что чуть переделанный вариант этого модуля подойдет и для "Быстрый заказ", и для "Нашли дешевле" и чего угдно что требует отправки (писем/заявок/вопросов) на почту.

Установка модуля, файл 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
Хотя все остальное работает! Отправка письма осуществляется! Затык только на редиректе!
Происходит открытие пустой страницы. Танцы с бубном не помагают :(
 
Назад
Сверху