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


Форум
 SX CMS / Техническая помощь
         Всем снова привет.

Похожие темы

Всем снова привет.


События Пятница, 01.02.2013, 14:26

anatoliy.pribytkov

Группа: Пользователь
Cообщений: 4
Регистрация: 02.07.2012
Город: Los Angeles
Итак мне нужно в админке сделать кнопку "Создать счет"
шаблон я взял стандартный
email_order_html.tpl

Так вот я нашел
PHP-код

  $mail_content 
$this->_CS->fetch(SOURCE '/shop/email_order_html.tpl');


Т.е. он таким образом генерирует счет потом сохраняет в базу по ID (типа LAST_INSERT_ID )
все в одной функции
PHP-код

$_SESSION
['id_num_order'] = $iid $this->_DB->Insert_Id();
.....
$this->_DB->Query("UPDATE " PREFIX "_shop_bestellungen SET Bestellung = '" $this->_DB->Escape(base64_encode($mail_content)) . "', Order_Type = '" $this->_DB->Escape(base64_encode($order_content)) . "' WHERE Id = '" $iid "'");
...


Так вот в этом классе мне совершенно не понятно как генерируется $mail_content ??
Как работает fetch(SOURCE... т.е. он берет содержимое шаблона с уже сгенерированными данными, или только скелет а данные генерируются какой либо функцией ?


В классе class.AdminShop.php я создал функцию аналог Создания заказа.


PHP-код

public function addOrders($insert_array) {

    
//Вызываем номер транзакции
    
$order_num $this->orderNumber(10);

    
//Подготовливаем данные забираем и массива POST ID клиента
    
foreach ($insert_array as $val) {
        
$client_id $val['client'];    //Идентификатор клиента
        
$article_id $val['products']; //Идентификатор товара
    
}


    
//Собираем данные по Клиенту
    
$article $this->getArticlesItems($article_id);
    foreach (
$article as $articles_item){
    }

    
//Собираем все данные по клиенту $row->Email;

    
$sql $this->_DB->Query("SELECT * FROM " PREFIX "_benutzer WHERE Id = '$client_id'"); 
    
//$user = array();
    
    
while ($row $sql->Result_Fetch_Object()) 
        {      
        
array_push($row);

        
//Служебные данные
        
$_SESSION['user_order_date'] = $this->stime;
            
$Ostatus = ($_SESSION['price_netto_zwi'] == '0' && $this->_canorder_emptybasket == 1) ? 'progress' 'wait';
                
$order_time date('d-m-Y, H:i'$this->stime);

        
//Если цена отличается от каталога
            
$total_price $val['price2'];
                if (
$total_price == '0'
                    {
                    
$price $val['price'];
                    }
                    else 
                    {
                    
$price $val['price2'];
                    }
                    
        
//Массив с данными для INSERT
         
$insert_array = array(
                ....
                    
'Lief_MiddleName'     => '');
                    
$this->_DB->Insert_Query('shop_bestellungen'$insert_array);

                    
$_SESSION['id_num_order'] = $iid $this->_DB->Insert_Id();     
                    
                
                    
$inf_array = array(
                    
'__NUM__'   => $order_num,
                    
'__DATE__'  => date('d-m-Y'$this->stime),
                    
'__ORDER__' => $iid);
                    
$inf_payment Sys::getReplaceText($this->_lang['Payment_Info'], $inf_array);
                    
$this->_CS->assign('inf_payment'$inf_payment);
                    
                    
$this->_DB->Query("UPDATE " PREFIX "_shop_bestellungen SET Bestellung = '" $this->_DB->Escape(base64_encode($ord_print)) . "' WHERE Id = '".$iid."'");

                    
//Записываем данные в shop_bestellungen_items
                 
if (!empty($_POST['client'])) {
                            
$insert_array = array(
                            
'Benutzer'      => $client_id,
                            
'Vorname'       => $row->Vorname,
                            
'Nachname'      => $row->Nachname,
                            
'Firma'         => $row->Firma,
                            
'Datum'         => $this->stime,
                            
'Datum_TS'      => date('Y-m-d H:i:s'$this->stime),
                            
'Bestellnummer' => $order_num,
                            
'Artikelnummer' => $articles_item->Artikelnummer,
                            
'ArtikelName'   => $articles_item->Titel_1,
                            
'Anzahl'        => '0',
                            
'Varianten'     => '',
                            
'Konfig_Frei'   => '');
                            
$this->_DB->Insert_Query('shop_bestellungen_items'$insert_array);
                        }
          

        } 
    
$sql->Result_Close();
    
//Закрываем окно по завершению
    
$this->_getClass('AdminCore')->getScriptOut('close');
}





Так вот основной вопрос как заставить генерироваться email_order_html.tpl что бы записывать в колонку Bestellung.

Пользователь офлайн
События Пятница, 01.02.2013, 18:27

SX

Группа: Администратор
Cообщений: 3016
Регистрация: 23.10.2009
В смарти не может браться скелет шаблона, так fetch берет содержимое шаблона с уже сгенерированными данными.
Что бы передать данные выпишите все переменные которые используются в email_order_html.tpl, многое там передается через сессию, при создании заказа без оформления, там придется это поменять на обычные переменные, после этого формируете данные у себя в скрипте и передаете методом assign в шаблон и точно также фетчите шаблон и пишите куда надо


Пользователь офлайн
События Пятница, 01.02.2013, 19:07

anatoliy.pribytkov

Автор текущей темы
Группа: Пользователь
Cообщений: 4
Регистрация: 02.07.2012
Город: Los Angeles
Спасибо попробую второй способ новое поля с массивом всех данных.
Пользователь офлайн
События Пятница, 01.02.2013, 19:59

SX

Группа: Администратор
Cообщений: 3016
Регистрация: 23.10.2009
Странно сообщение пропало про массив,мистика.
Можно конечно и с существующими полями в таблице работать, но там насколько помню не все данные сохраняются


Пользователь офлайн


Похожие темы  |   Предыдущая тема  |   Следующая тема

Быстрый переход:  
 

 Сейчас на сайте

Пользователей: 0, Гостей: 2

Поисковые боты: 172
Bot(154), Mail.Ru Bot(6), oBot(6), BingBot(3), Googlebot(2), Crawler
 Статистика форума

  Темы Сообщения Пользователи
За сутки:
За неделю:
За месяц:
Всего:
Мы приветствуем нового участника: dota812651
 Дни рождения

Junr (63), ololo (25)
Copyright © 2009 - 2024 SX All rights reserved | Powered by SX CMS 1.06 UTF | Контакты