Зависимые селекты в способах доставки

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

transinffo
transinffo
Репутация: 3
Сообщения: 9
Зарегистрирован: 02.09.2017
С нами: 6 лет 6 месяцев

Сообщение #1 transinffo » 02.09.2017, 15:53

Всем доброго времени суток.

У меня okaycms 2.1 lite шаблон stok.

Задача (см. скрин): при выборе области (страница оформления заказа - способы доставки) в первом select, чтобы подтягивался список городов во втором select ? Для каждого способа доставки есть ассоциативный массив (подтягивается из бд).

Написал на php аналог - все в одном файле - работает, а вот с реализацией в okaycms проблемы.

Код: Выделить всё

<?php

$city = array (
 'Амурская обл.' => array (
    0 => 'Айгунь',
    1 => 'Архара',
    2 => 'Белогорск',
    3 => 'Благовещенск (Амурская обл.)',
  ),
  'Архангельская обл.' => array (
    0 => 'Амдерма',
    1 => 'Архангельск',
    2 => 'Березник',
  ),
  'Астраханская обл.' => array (
    0 => 'Астрахань',
    1 => 'Ахтубинск',
    2 => 'Верхний Баскунчак',
  ),
);


$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
// возвращаем список городов
if ($action == 'getCity')
{
    if (isset($city[$_GET['region']])) echo json_encode($city[$_GET['region']]); // возвраащем данные в JSON формате;
    else echo json_encode(array('Выберите область'));
    exit;
}

?>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

    <script type="text/javascript">
    // <![CDATA[
        function loadCity(select)
        {
            var citySelect = $('select[name="city"]');
            citySelect.attr('disabled', 'disabled'); // делаем список городов не активным
           
            // послыаем AJAX запрос, который вернёт список городов для выбранной области
            $.getJSON('', {action:'getCity', region:select.value}, function(cityList){
               
                citySelect.html(''); // очищаем список городов
               
                // заполняем список городов новыми пришедшими данными
                $.each(cityList, function(i){
                    citySelect.append('<option value="' + i + '">' + this + '</option>');
                });
               
                citySelect.removeAttr('disabled'); // делаем список городов активным
               
            });
        }
    // ]]>
    </script>


        <select name="region" onchange="loadCity(this)">
            <option>Область</option>
           
            <?php
            // заполняем список областей
            foreach ($city as $region => $cityList)
            {
                echo '<option value="' . $region . '">' . $region . '</option>' . "\n";
            }
            ?>
           
        </select>
       
        <select name="city" disabled="disabled">
            <option>Выберите область</option>
        </select>


Может есть более простое решение?
Буду благодарен за любую помощь.
Вложения
Безымянный.jpg

koteyka-2 M
Аватара
koteyka-2 M
Репутация: 7
Сообщения: 45
Зарегистрирован: 27.09.2016
С нами: 7 лет 6 месяцев
Откуда: Днепр
Skype

Сообщение #2 koteyka-2 » 02.09.2017, 16:54

Есть готовые API от транспортных служб. Там не просто города, а даже адреса отделений подтянуть можно.
Но я не сказал бы, что эта реализация будет проще. По крайней мере, она будет по круче.
работает, а вот с реализацией в okaycms проблемы.
А в чем проблемы-то?
Выводите эти массивы в шаблон и там перебирайте.
Последний раз редактировалось koteyka-2 08.09.2017, 17:56, всего редактировалось 1 раз.
Настройка обмена OKAY и SIMPLA с 1С 7.7 и 8.х, Мой склад и Укрсклад
Доработка, изменение функционала.

transinffo
transinffo
Репутация: 3
Сообщения: 9
Зарегистрирован: 02.09.2017
С нами: 6 лет 6 месяцев

Сообщение #3 transinffo » 03.09.2017, 09:21

koteyka-2 писал(а):Есть готовые API от транспортных служб. Там не просто города, а дпже адреса отделений подтянуть можно.
Но я не сказал бы, что эта реализация будет проще. По крайней мере, она будет по круче.
работает, а вот с реализацией в okaycms проблемы.
А в чем проблемы-то?
Выводите эти массивы в шаблон и там перебирайте.

Проблема в том какие куски кода в какие файлы вставить.

1. Получаю массив из бд здесь:
\view\CartView.php
(получается массив - $delivery->reg_delivery)

2. Вывожу 2 селекта здесь:
\design\stok_1\html\cart_deliveries.tpl

таким кодом

Код: Выделить всё

<select name="region" onchange="loadCity(this)">
                                    <option>Область</option>

                                     {foreach $delivery->reg_delivery as $region => $cityList}
                                       <option value="{$region}">{$region}</option>
                                     {/foreach}
                                 </select>
                                 
                                 <select name="city" disabled="disabled">
                                    <option>Выберите область</option>
                                 </select>


3. javascript часть кода пишу в \design\stok_1\js\custom.js

4. Вот этот оставшийся код куда правильно вставить?

Код: Выделить всё

<? $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
// возвращаем список городов
if ($action == 'getCity')
{
    if (isset($city[$_GET['region']])) echo json_encode($city[$_GET['region']]); // возвраащем данные в JSON формате;
    else echo json_encode(array('Выберите область'));
    exit;
}

?>

koteyka-2 M
Аватара
koteyka-2 M
Репутация: 7
Сообщения: 45
Зарегистрирован: 27.09.2016
С нами: 7 лет 6 месяцев
Откуда: Днепр
Skype

Сообщение #4 koteyka-2 » 03.09.2017, 09:49

Я реализовал немного по другому.
Скрипт

Код: Выделить всё

   
   $("#nova_city").change(function(){
      var id = $("#nova_city option:selected").attr('data-id');
      $.ajax({
         url: "ajax/insert_addr.php",
         data: {id: id},
         success: function(data){
          if(data){
           var options = '<option value=""></option>';
            jQuery.each(data, function(i){
               var str_otdel = data[i].otdels;
               var new_otdel = str_otdel.replace(new RegExp('"','g'),'');
              options += '<option value="' + new_otdel + '">' + new_otdel + '</option>';
            });      
            $("#nova_otdels").html(options); 
          }
         }         
      });
      });
 


HTML

Код: Выделить всё

               <select name="nova_city" id="nova_city" data-placeholder="Выберите город доставки">
                            <option value=""></option>
                        </select>
                        <br>
                        <select name="nova_otdel" id="nova_otdels" data-placeholder="Выберите отделение новой почты">
                            <option value=""></option>
                        </select> 
                       


ajax/insert_addr.php

Код: Выделить всё

<?php
   require_once('../api/Newcms.php');
   $admin = new Newcms();
   $id = $admin->request->get('id');

   $query = "SELECT novap_pointers_adress AS otdels FROM s_novap_pointers WHERE novap_city_id = $id";
   $admin->db->query($query);
   $otdels = $admin->db->results();

   header("Content-type: application/json; charset=UTF-8");
   header("Cache-Control: must-revalidate");
   header("Pragma: no-cache");
   header("Expires: -1");      
   print json_encode($otdels);
   

Собственно в PHP идет выборка данных из БД. Можете выборку делать по своему.
Написано для симплы, но принцип тот же.
Города у меня в одной таблице, а отделения в другой.
В первый селект я загружаю города (в Вашем случае регионы) стандартно через фореч, как и у Вас, затем при выборе города в первом селекте, аяксом заполняю второй на основании ID города.
Настройка обмена OKAY и SIMPLA с 1С 7.7 и 8.х, Мой склад и Укрсклад
Доработка, изменение функционала.

transinffo
transinffo
Репутация: 3
Сообщения: 9
Зарегистрирован: 02.09.2017
С нами: 6 лет 6 месяцев

Сообщение #5 transinffo » 08.09.2017, 16:40

Вопрос решен - благодарочка koteyka-2 за участие.

Подробнее о решении.

Задание было такое:
1. okaycms 2.1 + платный шаблон stok.
2. Добавить возможность выбора области и города доставки для любого способа доставки.
Реализация во Фронте: два связанных выпадающих списка (область и город) в способе доставки на странице оформления заказа.
Реализация в Беке: дополнительное текстовое поле, для ввода данных в виде: "область1:город1;город2;город3", таких строк может быть несколько.
Как должно получиться во Фронте смотрим на скрине итог.

1. Добавим текстовое поле в админку на страницу способа доставки:
а) Сначала добавим в таблицу ok_delivery поле "reg_delivery" типа text так как ,возможно, в нем будет много текста.

б) Теперь нужно определить какой файл нужно править.
У страницы способа доставки в админке такой адрес:
"backend/index.php?module=DeliveryAdmin&id=6&return=%2Fbackend%2Findex.php%3Fmodule%3DDeliveriesAdmin"
Значит нужен DeliveryAdmin.php - он в папке "backend\core", но это логика, а html файл лежит здесь:
"backend\design\html\delivery.tpl" . Как нашли delivery.tpl - он указан в конце DeliveryAdmin.php в таком куске:

Код: Выделить всё

return $this->design->fetch('delivery.tpl');


В delivery.tpl перед </form> вставим:

Код: Выделить всё

             <div class="row">
             <div class="col-lg-12 col-md-12 pr-0">
             <div class="boxed fn_toggle_wrap min_height_400px">
                <div class="heading_box">Регионы доставки</div>
                  <div class="col-xs-12">
                     <div>
                        <textarea name="reg_delivery" class="form-control okay_textarea">{$delivery->reg_delivery|escape}</textarea>
                     </div>
               </div>
               </div>
               </div>
                 </div>


г)Поле в админке появилось, но не красиво. Стиль правим здесь:
backend\design\css\okay.css

д) Теперь нужно его научить отправлять что-то в базу.
В DeliveryAdmin.php в начало добавим наш запрос reg_delivery:

Код: Выделить всё

        if($this->request->method('post')) {
            $delivery->id               = $this->request->post('id', 'intgeger');
            $delivery->enabled          = $this->request->post('enabled', 'boolean');
            $delivery->name             = $this->request->post('name');
            $delivery->description      = $this->request->post('description');
            $delivery->price            = $this->request->post('price');
            $delivery->free_from        = $this->request->post('free_from');
            $delivery->separate_payment = $this->request->post('separate_payment','boolean');
         $delivery->reg_delivery     = $this->request->post('reg_delivery');


Также добавим его в api\Delivery.php в двух местах, код такой:

Код: Выделить всё

        $query = "SELECT
                d.id,
                d.free_from,
                d.price,
                d.enabled,
                d.position,
                d.separate_payment,
                d.image,
      d.reg_delivery,
                $lang_sql->fields
            FROM __delivery d
            $lang_sql->join
            WHERE
                1
                $enabled_filter
            ORDER BY position
        ";


Можно проверить, введя что-нибудь в наше новое поле - все работает и сохраняется в базу.
Вложения
itog.jpg
итог

koteyka-2 M
Аватара
koteyka-2 M
Репутация: 7
Сообщения: 45
Зарегистрирован: 27.09.2016
С нами: 7 лет 6 месяцев
Откуда: Днепр
Skype

Сообщение #6 koteyka-2 » 08.09.2017, 18:06

Вот и чудненько, что всё получилось ;-)
В моей юности был такой киножурнал, назывался Ералаш. Так вот мне всегда там нравилась строчка из песни-заставки -
"Но было бы желание, придут к тебе и знания" :-)
А вообще, опыт, он как и половое бессилие, приходит с годами )))))))))))))))))))
Настройка обмена OKAY и SIMPLA с 1С 7.7 и 8.х, Мой склад и Укрсклад
Доработка, изменение функционала.

transinffo
transinffo
Репутация: 3
Сообщения: 9
Зарегистрирован: 02.09.2017
С нами: 6 лет 6 месяцев

Сообщение #7 transinffo » 08.09.2017, 19:45

2. Теперь нужно вывести выпадающие списки на страницу оформления заказа и подгружать аякс запросом города в зависимости от выбранной области.
Для начала нашел пример и проверил - работает. Немного его переделал чтобы все было на одной странице, получилось так:

Код: Выделить всё

<?php

$city = array (
 'Амурская обл.' => array (
    0 => 'Айгунь',
    1 => 'Архара',
    2 => 'Белогорск',
    3 => 'Благовещенск (Амурская обл.)',
  ),
  'Архангельская обл.' => array (
    0 => 'Амдерма',
    1 => 'Архангельск',
    2 => 'Березник',
  ),
  'Астраханская обл.' => array (
    0 => 'Астрахань',
    1 => 'Ахтубинск',
    2 => 'Верхний Баскунчак',
  ),
);


$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
// возвращаем список городов
if ($action == 'getCity')
{
    if (isset($city[$_GET['region']])) echo json_encode($city[$_GET['region']]); // возвраащем данные в JSON формате;
    else echo json_encode(array('Выберите область'));
    exit;
}

?>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

    <script type="text/javascript">
    // <![CDATA[
        function loadCity(select)
        {
            var citySelect = $('select[name="city"]');
            citySelect.attr('disabled', 'disabled'); // делаем список городов не активным
           
            // послыаем AJAX запрос, который вернёт список городов для выбранной области
            $.getJSON('', {action:'getCity', region:select.value}, function(cityList){
               
                citySelect.html(''); // очищаем список городов
               
                // заполняем список городов новыми пришедшими данными
                $.each(cityList, function(i){
                    citySelect.append('<option value="' + i + '">' + this + '</option>');
                });
               
                citySelect.removeAttr('disabled'); // делаем список городов активным
               
            });
        }
    // ]]>
    </script>


        <select name="region" onchange="loadCity(this)">
            <option>Область</option>
           
            <?php
            // заполняем список областей
            foreach ($city as $region => $cityList)
            {
                echo '<option value="' . $region . '">' . $region . '</option>' . "\n";
            }
            ?>
           
        </select>
       
        <select name="city" disabled="disabled">
            <option>Выберите область</option>
        </select>
        ?>
       


а) Теперь нужно все это разбросать в разные файла движка.
Логика здесь:
view\CartView.php

Получился следующий код для способов доставки:

Код: Выделить всё

   
    /*Отображение заказа*/
    public function fetch() {
        // Способы доставки
        $deliveries = $this->delivery->get_deliveries(array('enabled'=>1));
        foreach($deliveries as $delivery) {
            $delivery->payment_methods = $this->payment->get_payment_methods(array('delivery_id'=>$delivery->id, 'enabled'=>1));
         $delivery->reg_delivery = $this->delivery->get_delivery($delivery->id)->reg_delivery;
             $array2 = explode("\r\n", $delivery->reg_delivery);
                  $city = array();
                        for($i=0;$i<count($array2);$i++)
                         $city[mb_substr($array2[$i],0,mb_strpos($array2[$i],":"))] = explode(";", mb_substr($array2[$i],(mb_strpos($array2[$i],":")+1)));
                   $delivery->reg_delivery = $city;
                         
        }
        $this->design->assign('all_currencies', $this->money->get_currencies());
        $this->design->assign('deliveries', $deliveries);


Берем данные из базы и разбиваем весь текст сначала по переносу строки, потом по ":" и по ";",таким образом получим ассоциативный массив вида

Код: Выделить всё

 'Амурская обл.' => array (
    0 => 'Айгунь',
    1 => 'Архара',
    2 => 'Белогорск',
    3 => 'Благовещенск',
  ),
 


Html часть добавим здесь:
design\stok_1\html\cart_deliveries.tpl
После

Код: Выделить всё

                <div class="description d_{$delivery->id}" {if !$delivery@first} style="display:none;"{/if}>
                    {$delivery->description}
                </div>

Вставил:

Код: Выделить всё

            
             <div class="description d_{$delivery->id}" id="reg_gorod" {if !$delivery@first} style="display:none;"{/if}>
                {foreach $delivery->reg_delivery as $region=>$cityList}
                  {$region = $region}
                {/foreach}
                   {if $region}
                           <select name="region" onchange="loadCity(this);reset_selects(this)" id="region_{$delivery->id}">
                        <option>Область</option>
                        {foreach $delivery->reg_delivery as $region => $cityList}
                          <option value="{$region}">{$region}</option>
                          {/foreach}
                     </select>
                        <select name="city" disabled="disabled" onchange="city_to_order(this)" id="city_{$delivery->id}">
                        <option>Выберите область</option>
                     </select>
                    {/if}                  
                </div>
               
               


Также в этом же файле перед

Код: Выделить всё

   
   {* Способ оплаты *}
   {foreach $deliveries as $delivery}


Добавим:

Код: Выделить всё

      <input type="hidden" name="region" value="" id="region">
                <input type="hidden" name="gorod" value="" id="gorod">


скрытые инпуты нужны для передачи данных через форму.

В папке ajax создал новый файл reg_delivery.php - код:

Код: Выделить всё

<?
require_once('../api/Okay.php');
 $admin = new Okay();
 $id = $admin->request->get('id');
 
   $query = "SELECT reg_delivery AS goroda FROM ok_delivery WHERE id = $id";
   $admin->db->query($query);
   $otdels = $admin->db->result();
   foreach($otdels as $value) $value = $value;
   
   
   $array2 = explode("\r\n", $value);
   $city = array();
   for($i=0;$i<count($array2);$i++)
   $city[mb_substr($array2[$i],0,mb_strpos($array2[$i],":"))] = explode(";", mb_substr($array2[$i],(mb_strpos($array2[$i],":")+1)));

$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
// возвращаем список городов
if ($action == 'getCity')
{
    if (isset($city[$_GET['region']])) echo json_encode($city[$_GET['region']]); // возвраащем данные в JSON формате;
    else echo json_encode(array('Выберите область'));
    exit;
}
?>

Если коротко, то тут мы делаем запрос в бд для конкретного способа доставки по id и получаем ассоц. массив областей и городов для этого способа.

Jquery код добавил тут design\stok_1\js\custom.js

Код: Выделить всё

/* функция выдирания в строке только цифр */
function parseNum(str){ return parseFloat(String(str).match(/-?\d+(?:\.\d+)?/g, '') || 0, 10); }

/* Подгрузка  AJAX запросом городов в зависимости от области*/
function loadCity(select)
        {
            var citySelect = $('select[name="city"]');
            citySelect.attr('disabled', 'disabled'); // делаем список городов не активным
         
         var id = parseNum($(select).attr("id"));

            // послыаем AJAX запрос, который вернёт список городов для выбранной области
            $.getJSON('ajax/reg_delivery.php', {action:'getCity', region:select.value, id:id}, function(cityList){
               
                citySelect.html(''); // очищаем список городов
               
                // заполняем список городов новыми пришедшими данными
                $.each(cityList, function(i){
                    citySelect.append('<option value="' + i + '">' + this + '</option>');
                });
               
                citySelect.removeAttr('disabled'); // делаем список городов активным
       
         var reg = $('#region_'+id+' option:selected').text();
          var cit = $('#city_'+id+' option:selected').text();
         $('#region').val(reg);
         $('#gorod').val(cit);

            });

        }
      
/* обнуляем скрытые инпуты при переходе на новый способ доставки*/
function reset_selects(select)
    {
           
         var id = parseNum($(select).attr("id"));
            var reg = $('#region_'+id+' option:selected').text();
         var first_gorod = $('#city_'+id+' option:first');
         $('#region').val('');
         $('#gorod').val('');

   }
      

/* пишем в скрытые инпуты выбранный город и область*/      
function city_to_order(select)
        {
         var id = parseNum($(select).attr("id"));
         var regionSelect = $('#region_'+id+' option:selected').text();
          var citySelect = $('#city_'+id+' option:selected').text();
         $('#region').val(regionSelect);
         $('#gorod').val(citySelect);
      }


Селекты на странице оформления заказа появились и при выборе области , список городов меняется - все ок.

Добавлено спустя 37 минут 13 секунд:
Но нужно всю эту музыку передать:
- на страницу благодарности за заказ или как там она называется;
- в заказ в админку;
- в письмо админу;
- в письмо клиенту.

Добавим в таблицу БД ok_orders поля region и gorod типа varchar длиной 255 символов.

Добавим запрос к базе, чтобы эти поля прочитать api\Orders.php

в двух местах вначале файла кусок кода будет такой:

Код: Выделить всё

                o.lang_id,
      o.region,
      o.gorod
            FROM __orders o
            WHERE
                1
                $where
            LIMIT 1


Еще добавим запросы тут\view\CartView.php в районе "/*Оформление заказа*/"
такое добавим:

Код: Выделить всё

         $order->region     = $this->request->post('region');
         $order->gorod     = $this->request->post('gorod');
         $this->design->assign('region', $order->region);
                        $this->design->assign('gorod', $order->gorod);


Html страницы благодарности:
design\stok_1\html\order.tpl
после

Код: Выделить всё

            {if $order->comment}
               <tr>
                  <td><span data-language="order_comment">{$lang->order_comment}</span></td>
                  <td>{$order->comment|escape|nl2br}</td>
               </tr>
            {/if}

добавим

Код: Выделить всё

            {if $order->region}
               <tr>
                  <td><span data-language="order_region">{$lang->order_region}</span></td>
                  <td>{$order->region|escape|nl2br}</td>
               </tr>
            {/if}
                {if $order->gorod}
               <tr>
                  <td><span data-language="order_gorod">{$lang->order_gorod}</span></td>
                  <td>{$order->gorod|escape|nl2br}</td>
               </tr>
            {/if}


Все ок, но нужно добавить в переводы языковую переменную order_region и order_gorod. Идем в настройки сайта - переводы - добавить перевод - в поле "название переменной" пишу order_gorod, а в поле "русский" - "Город". Для order_region - аналогично.

Добавлено спустя 20 минут 14 секунд:
Вывод в заказ в админку.

В \backend\core\OrderAdmin.php вначале добавим запросы:

Код: Выделить всё

       $order->region = $this->request->post('region');
            $order->gorod = $this->request->post('gorod');


Html добавим тут:
\backend\design\html\order.tpl
после

Код: Выделить всё

                                    <div class="okay_list_body_item">
                                        <div class="okay_list_row  d_flex">
                                            <div class="okay_list_boding okay_list_ordfig_name">
                                                <div class="text_600 text_dark boxes_inline">{$btr->general_shipping|escape}</div>
                                                <div class="111boxes_inline">
                                                    <select name="delivery_id" class="selectpicker">
                                                        <option value="0">{$btr->order_not_selected|escape}</option>
                                                        {foreach $deliveries as $d}
                                                            <option value="{$d->id}" {if $d->id==$delivery->id}selected{/if}>{$d->name|escape}</option>
                                                        {/foreach}
                                                    </select>   
                                                </div>
                                            </div>
                                            <div class="okay_list_boding okay_list_ordfig_val">
                                                <div class="input-group">
                                                    <input type=text name=delivery_price class="form-control" value='{$order->delivery_price}'>
                                                    <span class="input-group-addon p-0">{$currency->sign|escape}</span>
                                                </div>
                                            </div>
                                            <div class="okay_list_boding okay_list_ordfig_price">
                                                <div class="input-group"></div>
                                            </div>
                                        </div>
                                    </div>


добавляю:

Код: Выделить всё

         {if $order->region}
                            <div class="okay_list_body_item">
                                        <div class="okay_list_row  d_flex">
                                            <div class="okay_list_boding okay_list_ordfig_name">
                                                <div class="text_600 text_dark">Область</div>
                                            </div>
                                            <div class="okay_list_boding okay_list_ordfig_price">
                                                <div class="text_dark">
                                                    <span>{$order->region}</span>
                                                   
                                                </div>
                                            </div>
                                        </div>
                                    </div>                           
                           <div class="okay_list_body_item">
                                        <div class="okay_list_row  d_flex">
                                            <div class="okay_list_boding okay_list_ordfig_name">
                                                <div class="text_600 text_dark">Город</div>
                                            </div>
                                            <div class="okay_list_boding okay_list_ordfig_price">
                                                <div class="text_dark">
                                                    <span>{$order->gorod}</span>
                                                   
                                                </div>
                                            </div>
                                        </div>
                                    </div>                           
                           {/if}


Добавлено спустя 6 минут 59 секунд:
В письмо админу

\backend\design\html\email\email_order_admin.tpl
Вставлю новые данные после комментария к заказу:

Код: Выделить всё

<tr>
                                                        <td style="background-color:#38c0f3;border-bottom: 1px solid #fff"><span style="font-size:14px;"><span style="color:#ffffff;"><strong><span style="font-family:trebuchet ms,helvetica,sans-serif;">{$btr->email_order_comment}</span></strong></span></span></td>
                                                        <td style="border: 1px solid #38c0f3;">{$order->comment|escape|nl2br}</td>
                                                    </tr>
                                       {if $order->region}
                                        <tr>
                                                        <td style="background-color:#38c0f3;border-bottom: 1px solid #fff"><span style="font-size:14px;"><span style="color:#ffffff;"><strong><span style="font-family:trebuchet ms,helvetica,sans-serif;">Область</span></strong></span></span></td>
                                                        <td style="border: 1px solid #38c0f3;">{$order->region}</td>
                                                    </tr>
                                                    <tr>
                                                        <td style="background-color:#38c0f3;border-bottom: 1px solid #38c0f3"><span style="font-size:14px;"><span style="color:#ffffff;"><strong><span style="font-family:trebuchet ms,helvetica,sans-serif;">Город</span></strong></span></span></td>
                                                        <td style="border: 1px solid #38c0f3;">{$order->gorod}</td>
                                                    </tr>
                                       {/if}



В письмо клиенту

design\stok_1\html\email\email_order.tpl

Код: Выделить всё

                                                    <tr>
                                                        <td style="background-color:#38c0f3;border-bottom: 1px solid #fff"><span style="font-size:14px;"><span style="color:#ffffff;"><strong><span style="font-family:trebuchet ms,helvetica,sans-serif;">{$lang->email_order_comment}</span></strong></span></span></td>
                                                        <td style="border: 1px solid #38c0f3;">{$order->comment|escape|nl2br}</td>
                                                    </tr>
                                       {if $order->region}
                                        <tr>
                                                        <td style="background-color:#38c0f3;border-bottom: 1px solid #fff"><span style="font-size:14px;"><span style="color:#ffffff;"><strong><span style="font-family:trebuchet ms,helvetica,sans-serif;">Область</span></strong></span></span></td>
                                                        <td style="border: 1px solid #38c0f3;">{$order->region}</td>
                                                    </tr>
                                                    <tr>
                                                        <td style="background-color:#38c0f3;border-bottom: 1px solid #38c0f3"><span style="font-size:14px;"><span style="color:#ffffff;"><strong><span style="font-family:trebuchet ms,helvetica,sans-serif;">Город</span></strong></span></span></td>
                                                        <td style="border: 1px solid #38c0f3;">{$order->gorod}</td>
                                                    </tr>
                                       {/if}


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 33 гостя