Modx $_SESSION
Здравствуйте.
Непонятная для меня проблема c $_SESSION в MODx revo 2.2.14 — 2.3.1
Вот не большой сниппет, который получает рандомно отсритрованные id нужных ресурсов, но во избежание повтора id использую сессию, следующим образом:
Непонятная для меня проблема c $_SESSION в MODx revo 2.2.14 — 2.3.1
Вот не большой сниппет, который получает рандомно отсритрованные id нужных ресурсов, но во избежание повтора id использую сессию, следующим образом:
<?php
$output = $modx->runSnippet('pdoResources',array(
'includeTVs' => 'place_banner',
'parents' => '3',
'depth' => '2',
'limit' => '0',
'sortby' => 'RAND()',
'returnIds' => '1',
'where' => '{"template:=":"5", "place_banner:!=":""}'
));
$outputArray = explode(',', $output);
echo("<script>console.log('IN SES: " . $_SESSION['current_adimg'] . "');</script>");
echo("<script>console.log('IN ARR: " . $outputArray[0] . "');</script>");
if ( empty( $_SESSION['current_adimg'] ) ) {
$_SESSION['current_adimg'] = $outputArray[0];
echo("<script>console.log('ON EMPTY SES: " . $_SESSION['current_adimg'] . "');</script>");
$modx->setPlaceholder($toPlaceholder, $_SESSION['current_adimg']);
return;
}
else if ($_SESSION['current_adimg'] == $outputArray[0]) {
$_SESSION['current_adimg'] = $outputArray[1];
echo("<script>console.log('ON REP SES: " . $_SESSION['current_adimg'] . "');</script>");
$modx->setPlaceholder($toPlaceholder, $_SESSION['current_adimg']);
return;
}
else {
$_SESSION['current_adimg'] = $outputArray[0];
echo("<script>console.log('JUST SES: " . $_SESSION['current_adimg'] . "');</script>");
$modx->setPlaceholder($toPlaceholder, $_SESSION['current_adimg']);
return;
}Так вот, проблема состоит в том, что после сохранения в сессию одного значение на входе у сессии уже совсем другое, как будто снипет сработал невидимо второй раз. Комментарии: 12
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
rtfm.modx.com/revolution/2.x/developing-in-modx/basic-development/snippets/how-to-write-a-good-snippet#HowtoWriteaGoodSnippet-DonotPrint
Определил что проблему создает getImageList — сниппет вывода значений MIGX. Если убрать его вызов все работает как надо. Можно как то выводить MIGX tv с помощю pdoPage\Resources например, вместо getImageList?
Дальнейшее исследование определило что в чанке-шаблоне для getImageList ету проблему создает pthumb.
Что именно в самом pthumb является причиной установить не удалось.
Отдельное спасибо Василию — Вы великий человек раз находите время на ответы рядовым пользователям:)
Пришлось избавится от pThumb, который в начале казалось не при чем.
Интересно, что такого внутри pThumb, что он так может помешать.
Заменил на phpThumbOn — все работает отлично, странно конечно что его выпилили из официального репозитория — вроде как лучший в своем роде.