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

Тема в разделе "WebAsyst", создана пользователем Slaviq, 22 фев 2011.

Модераторы: mdss
  1. Slaviq

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