Сниппет выбивает сайт в 500 ошибку если вызывается только один раз
        Столкнулся с непонятной ошибкой, а именно:
Есть сниппет который сортирует данные полученные из msproducts
Если я добавляю просто рядом второй раз аналогичный вызов, то первый отрабатывает нормально — на втором вылетает 500
С чем может быть связано?
    
    
                                                                                
            Есть сниппет который сортирует данные полученные из msproducts
<?php
$data = json_decode($data, true);
function transpose($array) {
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);
}
$result = call_user_func_array('array_merge', transpose(array_chunk($data , 6)));
return json_encode($result);Данные я в него отправляю таким образом:{set $res_array = '!msProducts' | snippet : [
    'parents' => $id,
    'limit' => 0,
    'return' => 'json'
]}
    {set $colors_full_array = '!sort3' | snippet : [
        'data' => $res_array
    ] | fromJSON}И проблема в том что сайт прогружается до начала этого кода и в консоли появляется ошибка 500, в логах все чисто как на сервере так и в модксЕсли я добавляю просто рядом второй раз аналогичный вызов, то первый отрабатывает нормально — на втором вылетает 500
С чем может быть связано?
Комментарии: 3
{set $res_array = '!msProducts' | snippet : [
    'parents' => $id,
    'limit' => 0,
    'return' => 'json'
]}
    {set $full_colors_array = '!sort3' | snippet : ['data' => $res_array, 'cols' => 6] | fromJSON}
     {foreach $full_colors_array as $res}
        <div class="kc-slide">
            <div class="kc-item-block">
              <div class="kc-item-image-wrap">
                <img class="kc-item-img" src="{$res.thumb}">
              </div>
              <div class="kc-item-name">{$res.pagetitle} </div>
            </div>
        </div>
    {/foreach}
    {set $full_colors_array = '!sort3' | snippet : ['data' => $res_array, 'cols' => 6] | fromJSON}Так работает первый вызов на втором вылетает{set $res_array = '!msProducts' | snippet : [
    'parents' => $id,
    'limit' => 0,
    'return' => 'json'
]}
    {set $full_colors_array = '!sort3' | snippet : ['data' => $res_array, 'cols' => 6] | fromJSON}
     {foreach $full_colors_array as $res}
        <div class="kc-slide">
            <div class="kc-item-block">
              <div class="kc-item-image-wrap">
                <img class="kc-item-img" src="{$res.thumb}">
              </div>
              <div class="kc-item-name">{$res.pagetitle} </div>
            </div>
        </div>
    {/foreach} так просто вылетает            
                Странно, что в логах пусто.
скорее всего вы вызываете функцию два раза, нужно проверять ее наличие
Я обычно оборачиваю вызов сниппета в скобки если еще каким-то модификатором обрабатываю
                    скорее всего вы вызываете функцию два раза, нужно проверять ее наличие
<?
if (!function_exists('transpose')) {
    function transpose($array) {
        array_unshift($array, null);
        return call_user_func_array('array_map', $array);
    }
}Я обычно оборачиваю вызов сниппета в скобки если еще каким-то модификатором обрабатываю
{set $full_colors_array = ('!sort3' | snippet : ['data' => $res_array, 'cols' => 6]) | fromJSON}            
                Спасибо! Действительно проблема была в этом, из-за множественного обявления функции, только правда не понятно почему логи пустые.
За скобки да действительно так удобнее)
                    За скобки да действительно так удобнее)
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.