Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Программирование

Помогите с реализацией расчета стоимости монтажа : Программирование

16.04.2024 16:52


10.06.2016 07:41
aldemko
 
Оо вышло
я не там ковырял
В общем за вывод в карточке отвечает другая строка

Код:
  <div class="install-cost">
                                Цена с установкой: <br/><span>[[!viewPrice? &price=`[[*tradeprice]]`&service=`[[*servicePrice]]`&sqrSrv=`[[*SrvSq]]&discount=`[[*discount]]`&islabel=`0`]] р.</span>

я переделал в 
  <div class="install-cost">
                                Цена с установкой: <br/><span>[[!viewPrice? &price=`[[*tradeprice]]`&service=`[[*servicePrice]]`&sqrSrv=`[[*SrvSq]]`&inverter=`[[*inverter]]`&discount=`[[*discount]]`&islabel=`0`]] р.</span>
вставил тот код который ты дал и 500 рублей добавило (в карточке товара, в просмотре каталога нет - но это нужно будет шаблон найти и добавить ), но как теперь совместить все с площадью

20-25 без инвертора = 7500 с инвертором 8к
25-35 без = 8к с инвертором например 10
то-есть что бы можно было регулировать

кажется разобрался
сейчас отпишу

В общем получилось у меня такое
Код:
if(!isset($service) || $service == 0)
    if($ids[3] == 29)
    {
            if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 7500;
               
                
            else
                if($srvSqr > 25 && $srvSqr <= 35)
                    $service = 8000;
                else
                    if($srvSqr > 35 && $srvSqr <= 50)
                        $service = 9000;
                        else
                    if($srvSqr > 50 && $srvSqr <= 70)
                        $service = 10000;
                          else
                    if($srvSqr > 70 && $srvSqr <= 80)
                        $service = 10500;
                    else
                       if($srvSqr > 80 && $srvSqr <= 100)
                            $service = 11000;
                            
                            
    }
    
  if ($inverter == 1) {
  if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 8000;
               
                
            else
                if($srvSqr > 25 && $srvSqr <= 35)
                    $service = 8500;
                else
                    if($srvSqr > 35 && $srvSqr <= 50)
                        $service = 9500;
                        else
                    if($srvSqr > 50 && $srvSqr <= 70)
                        $service = 11000;
                          else
                    if($srvSqr > 70 && $srvSqr <= 80)
                        $service = 11500;
                    else
                       if($srvSqr > 80 && $srvSqr <= 100)
                            $service = 12000;
}
и вывод подправленный в карточке товара
Код:
 <div class="install-cost">
                                Цена с установкой: <br/><span>[[!viewPrice? &price=`[[*tradeprice]]`&service=`[[*servicePrice]]`&sqrSrv=`[[*SrvSq]]`&inverter=`[[*inverter]]`&discount=`[[*discount]]`&islabel=`0`]] р.</span>
Осталось вывести измененную цену в каталоге а не в карточке товара, но это уже в шаблоне надо поковыряться
Спасибо
15.06.2016 06:13
aldemko
 
Загвоздка получается

код:
Код:
if(!isset($service) || $service == 0)
    if($ids[3] == 29)
    {
            if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 7500;
               
                
            else
                if($srvSqr > 25 && $srvSqr <= 35)
                    $service = 8000;
                else
                    if($srvSqr > 35 && $srvSqr <= 50)
                        $service = 9000;
                        else
                    if($srvSqr > 50 && $srvSqr <= 70)
                        $service = 10000;
                          else
                    if($srvSqr > 70 && $srvSqr <= 80)
                        $service = 10500;
                    else
                       if($srvSqr > 80 && $srvSqr <= 100)
                            $service = 11000;
                            
                            
    }
    
  if ($inverter == 1) {
  if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 8000;
               
                
            else
                if($srvSqr > 25 && $srvSqr <= 35)
                    $service = 8500;
                else
                    if($srvSqr > 35 && $srvSqr <= 50)
                        $service = 9500;
                        else
                    if($srvSqr > 50 && $srvSqr <= 70)
                        $service = 11000;
                          else
                    if($srvSqr > 70 && $srvSqr <= 80)
                        $service = 11500;
                    else
                       if($srvSqr > 80 && $srvSqr <= 100)
                            $service = 12000;
}


в таком варианте в карточке товара цена на монтаж (берем 25 кв для примера) остается 7500. но так как есть инвертор должна быть 8000
для реализации вывода в карточке достаточно было дописать:
Код:
 Цена с установкой: <br/><span>[[!viewPrice? &price=`[[*tradeprice]]`&service=`[[*servicePrice]]`&sqrSrv=`[[*SrvSq]]`&inverter=`[[*inverter]]`&discount=`[[*discount]]`&islabel=`0`]] р.</span>
в карточке товара теперь все отлично выводится, но есть еще каталог товаров общий - там цена по прежнему 7500.
При этом если я в карточке вручную впишу 8000 тысяч то цена будет ( в каталоге товаров ) 8000 тысяч.

Получается что расчет $service производится лишь на основе площади, и
Код:
 if ($inverter == 1) {
  if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 8000;
не влияет на изменение.

каким образом можно заставить меняться цену переменной service ?
15.06.2016 06:39
aldemko
 
Конечно было бы проще изменить шаблон вывода
Но я запутался в этом модХ

вот что выводит таблицу каталога
код:
Код:
 <table class="productTbl">
                    [[!getConditioners? &productTemplates=`7` &categoryTemplates=`17` &id=`[[*id]]`]]
                    </table>


в шаблонах 7 и 17 ничего значительного и примечательного нет
вот шаблон getConditioners
Код:
Код:
<?php
$start_time = microtime(true);

if(!isset($_GET['select']) || $id == 3)
$out = $modx->runSnippet('Wayfinder', array(
                'startId' => $id,
                'ignoreHidden' => 1,
                'outerTpl' => 'catOuterTpl',
                'rowTpl' => 'catOuterRowTpl',
                'innerTpl' => 'catInnerTpl',
                'innerRowTpl' => 'catInnerRowTpl',
                'where' => '{"isfolder":1}',
            ));

if(isset($_GET['select']) || $id != 3){
    //ИД шаблона или шаблонов, которые будут представлять из себя заголовки секций
    //по-умолчанию - шаблон 8 - Производитель кондиционеров
    $categoryTemplates = isset($categoryTemplates) ? $categoryTemplates : 8;
    //ИД шаблона или шаблонов, которые будут представлять из себя строку товара
    //по-умолчанию - шаблон 7 - Кондиционер
    $productTemplates = isset($productTemplates) ? $productTemplates : 7;
    
    $out = '';
    $inverter = 0;
    $square = 20;
    $noise = 0;
    $rh = 2.7;
    $llvl = 0;
    $ccnt = 1;
    $pcnt = 1;
    $tvFilter = '';
    
    if(isset($_GET['rh'])){
        $rh = $_GET['rh'];
    }
    
    if(isset($_GET['llvl'])){
        $llvl = $_GET['llvl'];
    }
    
    if(isset($_GET['ccnt'])){
        $ccnt = $GET['ccnt'];
    }
    
    if(isset($_GET['pcnt'])){
        $pcnt = $_GET['pcnt'];
    }
    
    if(isset($_GET['noise'])){
        $noise = $_GET['noise'];
    }
    
    if(isset($_GET['inverter'])){
            $inverter = $_GET['inverter'];
            $tvFilter = '"inverter:=:AND":1';
    }
    
    if(isset($_GET['sq'])){
        $square = $_GET['sq'];
        $coolingPwr = ceil((($llvl/1000)*$square*$rh+0.3*$ccnt+0.1*$pcnt)*10)/10;
        $out = $out . '<br/>Минимальная необходимая мощность охлаждения: ' . $coolingPwr . 'кВт';
    
        if($tvFilter == '')
            $tvFilter = '"coolingPwr:>=,<:AND":[' . $coolingPwr . ',' . ($coolingPwr + 1) . ']';
        else
            $tvFilter = $tvFilter . ',"coolingPwr:>=,<:AND":[' . $coolingPwr  . ',' . ($coolingPwr + 1) . ']';
    }
    
    $tvFilter = '{' . $tvFilter . '}';
    //die($tvFilter);
    $where = 'WHERE template in (' . $categoryTemplates . ')';
    
    if(isset($id) && $id != 3)
        $where = $where . ' AND (parent = ' . $id . ' OR id = ' . $id . ')';
    if(isset($manufacturer))
        $where = $where . ' AND (id = ' . $manufacturer . ' OR parent = ' . $manufacturer . ')';
    
    if(isset($limit))    
        $limit = ' LIMIT ' . $limit;
    else
        $limit = '';

    $sql='SELECT DISTINCT id FROM modx_site_content ' . $where;
    //die($sql);
    $query = $modx->prepare($sql);
    $query->execute();
    
    $result = $query->fetchAll(PDO::FETCH_ASSOC);
    foreach($result as $row){
        $currentParent = $row['id'];
        $conditioners = $modx->runSnippet('getProducts', array(
                'parents' => $currentParent,
                'depth' => 3,
                'returnIDs' => 1,
                'where' => '{"isfolder": 0}',
                'tvFilters' => $tvFilter,
            ));
        if($conditioners != ''){
            //Секция
            $out = $out . $modx->runSnippet('getProducts', array(
                    'parents' => -1,
                    'resources' => $currentParent,
                    'tpl' => 'condSectionTpl',
                ));
            //Кондиционеры в секции
            $out = $out . $modx->runSnippet('getProducts', array(
                    'parents' => -1,
                    'resources' => $conditioners,
                    'includeTVs' => 1,
                    'processTVs' => 1,
                    'sortbyTV' => 'tradeprice',
                    'sortbyTVType' => 'integer',
                    'tpl' => 'conditionersTpl',
                ));
        }
    }
}

$end_time = microtime(true) - $start_time;
return $out;


но здесь нет ни слова про цену с монтажом и переменной service тоже ... (
15.06.2016 07:58
aldemko
 
В обещем если я пишу

Код:
    
  if (!isset($service) || $service == 0 || $inverter == 1) {
  if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 8000;
               
                
            else
                if($srvSqr > 26 && $srvSqr <= 35)
                    $service = 8500;
                else
                    if($srvSqr > 36 && $srvSqr <= 50)
                        $service = 9500;
                        else
                    if($srvSqr > 51 && $srvSqr <= 70)
                        $service = 11000;
                          else
                    if($srvSqr > 71 && $srvSqr <= 80)
                        $service = 11500;
                    else
                       if($srvSqr > 81 && $srvSqr <= 100)
                            $service = 12000;
}
при этом убираю первую часть кода
Код:
if(!isset($service) || $service == 0)
    if($ids[3] == 29)
    {
            if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 7500;
               
                
            else
                if($srvSqr > 25 && $srvSqr <= 35)
                    $service = 8000;
                else
                    if($srvSqr > 35 && $srvSqr <= 50)
                        $service = 9000;
                        else
                    if($srvSqr > 50 && $srvSqr <= 70)
                        $service = 10000;
                          else
                    if($srvSqr > 70 && $srvSqr <= 80)
                        $service = 10500;
                    else
                       if($srvSqr > 80 && $srvSqr <= 100)
                            $service = 11000;
                            
                            
    }
то данные в списке (каталоге) товаров меняются
значит мне нужно изменить как то в одной формуле значение service,
если 20-25 service = 7500 если имеется inverter ==1 то service = 8000
если 25-235 service = 8000 если имеется inverter ==1 то service = 8500
и тд и тп

попробовал затею, как это сделать но не вышло. видимо не так прописываю условия - с точки зрения правильности написания (составления в php)
15.06.2016 08:20
aldemko
 
Я надеюсь я уже близок
убираю верхние расчеты пишу $service =1
везде цена монтажа равно 1р.
15.06.2016 08:49
aldemko
 
В общем единственное что мне пришло в голову:

Код:
if(!isset($service) || $service == 0 )
    if($ids[3] == 29)
    {
            if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 7500 ;
изменить на
Код:
if(!isset($service) || $service == 0 )
    if($ids[3] == 29)
    {
            if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 7500 ;
      
            else
                if($srvSqr > 20 && $srvSqr <= 25 $interter ==1)
                    $service = 8000;
Но это не работает тоже (

так тоже

Код:
if(!isset($service) || $service == 0 || $interter ==0)
    if($ids[3] == 29)
    {
            if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 7500 ;
      
            else
                if($srvSqr > 20 && $srvSqr <= 25 $interter ==1)
                    $service = 8000;
15.06.2016 09:46
aldemko
 
Это тоже не работает (

код:
Код:
if(!isset($service) || $service == 0 )
    if($ids[3] == 29)
    {
            if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 7500 ;
      
            else
                if($srvSqr > 20 && $inverter ==1)
                    $service = 8000;
                else
                    if($srvSqr > 26 && $srvSqr <= 35)
                        $service = 8000;
                      
                  else
                    if($srvSqr > 26 && $inverter ==1)
                        $service = 8500;           
                      else
                    if($srvSqr > 36 && $srvSqr <= 50)
                        $service = 9000;       
   else
                    if($srvSqr > 36 && $inverter ==1)
                        $service = 9500;       	
  else
                    if($srvSqr > 51 && $srvSqr <= 70)
                        $service = 10000;     
 else
                    if($srvSqr > 51 && $inverter ==1)
                        $service = 11000;    
else
                    if($srvSqr > 71 && $srvSqr <= 80)
                        $service = 10500;  	
 else
                    if($srvSqr > 71 && $inverter ==1)
                        $service = 11500;    	
else
                    if($srvSqr > 81 && $srvSqr <= 100)
                        $service = 11000;  	
 else
                    if($srvSqr > 81 && $inverter ==1)
                        $service = 12000;    							
    }
15.06.2016 21:09
KirillHome
 
Цитата:
aldemko Это тоже не работает (

код:
Код:
if(!isset($service) || $service == 0 )
    if($ids[3] == 29)
    {
            if($srvSqr >= 20 && $srvSqr <= 25 )
                $service = 7500 ;
      
            else
                if($srvSqr > 20 && $inverter ==1)
                    $service = 8000;
                else
                    if($srvSqr > 26 && $srvSqr <= 35)
                        $service = 8000;
                      
                  else
                    if($srvSqr > 26 && $inverter ==1)
                        $service = 8500;           
                      else
                    if($srvSqr > 36 && $srvSqr <= 50)
                        $service = 9000;       
   else
                    if($srvSqr > 36 && $inverter ==1)
                        $service = 9500;       	
  else
                    if($srvSqr > 51 && $srvSqr <= 70)
                        $service = 10000;     
 else
                    if($srvSqr > 51 && $inverter ==1)
                        $service = 11000;    
else
                    if($srvSqr > 71 && $srvSqr <= 80)
                        $service = 10500;  	
 else
                    if($srvSqr > 71 && $inverter ==1)
                        $service = 11500;    	
else
                    if($srvSqr > 81 && $srvSqr <= 100)
                        $service = 11000;  	
 else
                    if($srvSqr > 81 && $inverter ==1)
                        $service = 12000;    							
    }
А по человечески проверки написать - не, не получится?

код:
Код:
if(!isset($service) || $service == 0 )
{
   if($ids[3] == 29)
   {
      if($srvSqr >= 20)
      {
         if($srvSqr <= 25 )
         {
            $service = 7500 ;
            if $inverter==1
            {
               $service = $service + 500;
            }
         }
         else
         {
            if($srvSqr <= 35)
            {
               $service = 8000;
               if $inverter==1
               {
                  $service = $service + 500;
               }
            }
            else
            {
               if($srvSqr <= 50)
               {
                  $service = 9000;
                  if $inverter==1
                  {
                     $service = $service + 500;
                  }
               }
               else
               {
                  if($srvSqr <= 70)
                  {
                     $service = 10000;
                     if $inverter==1
                     {
                        $service = $service + 1000;
                     }
                  }
                  else
                  {
                     if($srvSqr <= 80)
                     {
                        $service = 10500;
                        if $inverter==1
                        {
                           $service = $service + 1000;
                        }
                     }
                     else
                     {
                        if($srvSqr <= 100)
                        {
                           $service = 11000;
                           if $inverter==1
                           {
                              $service = $service + 1000;
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }
}

Вопрос - что нужно делать, если $srvSqr
1) Меньше 20
2) Больше 100
16.06.2016 02:37
aldemko
 
В общем
код:
Код:
if(!isset($service) || $service == 0 )
{
   if($ids[3] == 29)
   {
      if($srvSqr >= 20)
      {
         if($srvSqr <= 26 )
         {
            $service = 7500 ;
            if ($inverter==1)
            {
               $service = $service + 500;
            }
         }
         else
         {
            if($srvSqr <= 35)
            {
               $service = 8000;
               if ($inverter==1)
               {
                  $service = $service + 500;
               }
            }
            else
            {
               if($srvSqr <= 50)
               {
                  $service = 9000;
                  if ($inverter==1)
                  {
                     $service = $service + 500;
                  }
               }
               else
               {
                  if($srvSqr <= 70)
                  {
                     $service = 10000;
                     if ($inverter==1)
                     {
                        $service = $service + 1000;
                     }
                  }
                  else
                  {
                     if($srvSqr <= 80)
                     {
                        $service = 10500;
                        if ($inverter==1)
                        {
                           $service = $service + 1000;
                        }
                     }
                     else
                     {
                        if($srvSqr <= 100)
                        {
                           $service = 11000;
                           if ($inverter==1)
                           {
                              $service = $service + 1000;
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }
}


в карточке добавляет, в каталоге товаров, он считает его как не инвертор (((
видимо нужно искать где шаблон вывода для каталога менять, но я уже перерыл все возможные файлы которые должны отвечать за вывод каталога там только строка вызова таблицы, а какие переменные в ней используются не понятно

в карточке товара это выглядит так
код:
Код:
 <div class="install-cost">
                                Цена с установкой: <br/><span>[[!viewPrice? &price=`[[*tradeprice]]`&service=`[[*servicePrice]]`&sqrSrv=`[[*SrvSq]]`&inverter=`[[*inverter]]`&discount=`[[*discount]]`&islabel=`0`]] р.</span>


при этом если написать вместо
код:
Код:
if(!isset($service) || $service == 0 )
{
   if($ids[3] == 29)
   {
      if($srvSqr >= 20)
      {
         if($srvSqr <= 26 )
         {
            $service = 7500 ;
            if ($inverter==1)
            {
               $service = $service + 500;
            }
         }
         else
         {
            if($srvSqr <= 35)
            {
               $service = 8000;
               if ($inverter==1)
               {
                  $service = $service + 500;
               }
            }
            else
            {
               if($srvSqr <= 50)
               {
                  $service = 9000;
                  if ($inverter==1)
                  {
                     $service = $service + 500;
                  }
               }
               else
               {
                  if($srvSqr <= 70)
                  {
                     $service = 10000;
                     if ($inverter==1)
                     {
                        $service = $service + 1000;
                     }
                  }
                  else
                  {
                     if($srvSqr <= 80)
                     {
                        $service = 10500;
                        if ($inverter==1)
                        {
                           $service = $service + 1000;
                        }
                     }
                     else
                     {
                        if($srvSqr <= 100)
                        {
                           $service = 11000;
                           if ($inverter==1)
                           {
                              $service = $service + 1000;
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }
}


$service=1;

то цена с монтажом становится +1 к цене везде и в карточке и в каталоге

Я не очень понимаю почему так:
код:
Код:
if(!isset($service)|| $service == 0)
{
   if($ids[3] == 29)
   {
      if($srvSqr >= 20)
      {
         if($srvSqr <= 25 )
         {
            $service = 7500 ;  Если изменить это значение - оно меняется и в карточке и в каталоге
            if ($inverter==1)
            {
               $service = $service + 500;  Это значение ни на что не влияет, только почему, я пробовал и $service = 8000 и $service == 8000
            }
         }
16.06.2016 03:04
aldemko
 
в общем я изменил $inverter==1 на $inverter=1
и цена монтажа везде стала как инверторная - даже у тех кто не инвертор.
получается либо service принимает значение без инвертора, либо с ним. а одновременно разные значения не хочет почему то (


я вообще запутался
если я пишу :

Код:
if(!isset($service)|| $service == 0)
{
   if($ids[3] == 29)
   {
      if($srvSqr >= 20)
      {
         if($srvSqr <= 25 )
         {
            $service = 7500 ;
            if ($inverter==0)
            {
               $service = $service + 500;
            }
         }
то не инверторный прибавляет к цене 500 рублей
а инверторные не меняют значение - принимают лишь значение цены не инверторного. Почему так ?


Елемент выводящий таблицу каталога с ценой
Код:
  <table class="productTbl">
                    [[!getConditioners? &productTemplates=`7` &categoryTemplates=`17` &id=`[[*id]]`]]
                    </table>
я уже пересмотрел все файлы с Id 7 и 17
нигде нет упоминания про то как формируется вывод каталога

есть снипнет

getConditioners:
Код:
<?php
$start_time = microtime(true);

if(!isset($_GET['select']) || $id == 3)
$out = $modx->runSnippet('Wayfinder', array(
                'startId' => $id,
                'ignoreHidden' => 1,
                'outerTpl' => 'catOuterTpl',
                'rowTpl' => 'catOuterRowTpl',
                'innerTpl' => 'catInnerTpl',
                'innerRowTpl' => 'catInnerRowTpl',
                'where' => '{"isfolder":1}',
            ));

if(isset($_GET['select']) || $id != 3){
    //ИД шаблона или шаблонов, которые будут представлять из себя заголовки секций
    //по-умолчанию - шаблон 8 - Производитель кондиционеров
    $categoryTemplates = isset($categoryTemplates) ? $categoryTemplates : 8;
    //ИД шаблона или шаблонов, которые будут представлять из себя строку товара
    //по-умолчанию - шаблон 7 - Кондиционер
    $productTemplates = isset($productTemplates) ? $productTemplates : 7;
    
    $out = '';
    $inverter = 0;
    $square = 20;
    $noise = 0;
    $rh = 2.7;
    $llvl = 0;
    $ccnt = 1;
    $pcnt = 1;
    $tvFilter = '';
    
    if(isset($_GET['rh'])){
        $rh = $_GET['rh'];
    }
    
    if(isset($_GET['llvl'])){
        $llvl = $_GET['llvl'];
    }
    
    if(isset($_GET['ccnt'])){
        $ccnt = $GET['ccnt'];
    }
    
    if(isset($_GET['pcnt'])){
        $pcnt = $_GET['pcnt'];
    }
    
    if(isset($_GET['noise'])){
        $noise = $_GET['noise'];
    }
    
    if(isset($_GET['inverter'])){
            $inverter = $_GET['inverter'];
            $tvFilter = '"inverter:=:AND":1';
    }
    
    if(isset($_GET['sq'])){
        $square = $_GET['sq'];
        $coolingPwr = ceil((($llvl/1000)*$square*$rh+0.3*$ccnt+0.1*$pcnt)*10)/10;
        $out = $out . '<br/>Минимальная необходимая мощность охлаждения: ' . $coolingPwr . 'кВт';
    
        if($tvFilter == '')
            $tvFilter = '"coolingPwr:>=,<:AND":[' . $coolingPwr . ',' . ($coolingPwr + 1) . ']';
        else
            $tvFilter = $tvFilter . ',"coolingPwr:>=,<:AND":[' . $coolingPwr  . ',' . ($coolingPwr + 1) . ']';
    }
    
    $tvFilter = '{' . $tvFilter . '}';
    //die($tvFilter);
    $where = 'WHERE template in (' . $categoryTemplates . ')';
    
    if(isset($id) && $id != 3)
        $where = $where . ' AND (parent = ' . $id . ' OR id = ' . $id . ')';
    if(isset($manufacturer))
        $where = $where . ' AND (id = ' . $manufacturer . ' OR parent = ' . $manufacturer . ')';
    
    if(isset($limit))    
        $limit = ' LIMIT ' . $limit;
    else
        $limit = '';

    $sql='SELECT DISTINCT id FROM modx_site_content ' . $where;
    //die($sql);
    $query = $modx->prepare($sql);
    $query->execute();
    
    $result = $query->fetchAll(PDO::FETCH_ASSOC);
    foreach($result as $row){
        $currentParent = $row['id'];
        $conditioners = $modx->runSnippet('getProducts', array(
                'parents' => $currentParent,
                'depth' => 3,
                'returnIDs' => 1,
                'where' => '{"isfolder": 0}',
                'tvFilters' => $tvFilter,
            ));
        if($conditioners != ''){
            //Секция
            $out = $out . $modx->runSnippet('getProducts', array(
                    'parents' => -1,
                    'resources' => $currentParent,
                    'tpl' => 'condSectionTpl',
                ));
            //Кондиционеры в секции
            $out = $out . $modx->runSnippet('getProducts', array(
                    'parents' => -1,
                    'resources' => $conditioners,
                    'includeTVs' => 1,
                    'processTVs' => 1,
                    'sortbyTV' => 'tradeprice',
                    'sortbyTVType' => 'integer',
                    'tpl' => 'conditionersTpl',
                ));
        }
    }
}

$end_time = microtime(true) - $start_time;
return $out;
Часовой пояс GMT +3, время: 16:52.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.