Сниппет выбивает сайт в 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}
Спасибо! Действительно проблема была в этом, из-за множественного обявления функции, только правда не понятно почему логи пустые.
За скобки да действительно так удобнее)
За скобки да действительно так удобнее)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.