mayushi
С нами с 07 февраля 2019; Место в рейтинге пользователей: #825Не работает json_encode, мешает fenom
            Всем привет, задрался гуглить. Плз, хелп:
Имеется сниппет
Я подозреваю, что после кодирования массива в json парсер еще раз вызывается зачем-то и спотыкается об эту фигурную скобку. И все ломается
Что интересно, этот же код не вызывает ошибку, если тестировать в modalConsole
Полный код сниппета:
        
        
        
    Имеется сниппет
$array = [
  'parents' => '5',
  'limit' => '0',
  'includeTVs' => '
    gallery,
    price,
    seats,
    year,
  ',
  'where' => '{"template:=":3}',
  'return' => 'json'
];
$output = $modx->runSnippet('pdoResources', $array);
$output = json_decode($output, true);
...
...
print_r(json_encode($arr);Белый экран, а в журнале Unexpected token ':' in 6659645b22726b14e4c56b6a41d87d64 line 16, near '{"catid":' <- thereПри том, что если массив $arr не пытаться декодить, то он прекрасно выводится.Я подозреваю, что после кодирования массива в json парсер еще раз вызывается зачем-то и спотыкается об эту фигурную скобку. И все ломается
Что интересно, этот же код не вызывает ошибку, если тестировать в modalConsole
Полный код сниппета:
<?php
$array = [
  'parents' => '5',
  'limit' => '0',
  'includeTVs' => '
    gallery,
    price,
    seats,
    year,
  ',
  'where' => '{"template:=":3}',
  'return' => 'json'
];
$output = $modx->runSnippet('pdoResources', $array);
$output = json_decode($output, true);
$arr = [];
foreach($output as $o){
    global $modx;
    $pids = $modx->getParentIds($o['id'], 10, array('context' => 'web'));
    $gal = [];
    
    foreach($o['tv.gallery'] as $g){
        $gal[] = $g['image'];
    }
    
    $a = [
            "catid"     =>  $pids[0],
            "id"        =>  $o['id'],
            "title"     =>  $o['pagetitle'],
            "uri"       =>  $o['uri'],
            "year"      =>  $o['tv.year'],
            "seats"     =>  $o['tv.seats'],
            "price"     =>  $o['tv.price'][0],
            "gallery"   =>  $gal
        ];
    $arr[] = $a;
}
print_r(json_encode($arr));        Сортировка msProducts в порядке переданном в resources
            Добрый день, подскажите, пожалуйста, как мне вывести товары согласно порядку id, переданному в сниппет?
        
        
        
    [[!msProducts?
      &resources=`2,1,3,4`
      &limit = `0`
      &tpl=`prod.card`
    ]]Мне именно в переданном порядке нужно вывести ресурсы. sortby и sortdir вроде не подходят        две разных 404 страницы для Modx Evo
            Всем привет!
У нас есть двуязычный сайт на MODX Evo и хотелось бы сделать две 404 страницы на разных языках. Для русской версии — на русском, на английской — английскую.
Программист упирается рогами и говорит, что нельзя обработать событие OnPageNotFound
так как нам хочется.
Я — еще не писал плагины, но меня вдохновила статья
но написав кусочек кода
Плиз, хелп ми =/
P.S. на сайте стоит также evoBabel версии 0.21 и там происходит следующее:
================
UPDATE
Я тут выяснил, что плагин у нас просто для красоты стоит, в качестве недовыпиленного легаси.
И мультиязычность якобы реализована средствами modx (то есть все-все ручками делается)
        
        
        
    У нас есть двуязычный сайт на MODX Evo и хотелось бы сделать две 404 страницы на разных языках. Для русской версии — на русском, на английской — английскую.
Программист упирается рогами и говорит, что нельзя обработать событие OnPageNotFound
так как нам хочется.
Я — еще не писал плагины, но меня вдохновила статья
но написав кусочек кода
<?php
if ($modx->event->name != 'OnPageNotFound') {return false;}
echo '<pre>';
print_r($_REQUEST);
print_r($_SERVER);
die; и назначив плагину соответствующее событие OnPageNotFound, пытаясь открыть несуществующий адрес на сайте, я не заметил разницы.Плиз, хелп ми =/
switch ($e->name) {
        case 'OnPageNotFound'://переадресация на нужную страницу 404, указать ее в модуле лексикона
            //$docid = 0;
            $docid = !empty($modx->config['error_page']) ?  $modx->config['error_page'] : $modx->config['site_start'];
            if (!isset($_SESSION['perevod'])) {
                //$docid = $modx->config['site_start'];
                $modx->sendRedirect($modx->makeUrl($docid), 0, 'REDIRECT_HEADER', 'HTTP/1.0 404 Not Found');exit();
            }
            $id = $_SESSION['perevod']['Страница не найдена'];
            $docid = (int)$id;
            if ($docid == 0) {
                $id = $_SESSION['perevod']['Главная страница'];
                $docid = (int)$id;
                if ($docid == 0) {
                    $id = $_SESSION['perevod']['Корневая папка'];
                    $docid = (int)$id;
                }
            }
            if ($docid != 0) {
                $modx->sendRedirect($modx->makeUrl($docid), 0, 'REDIRECT_HEADER', 'HTTP/1.0 404 Not Found');exit();
            }  else {
                $docid = !empty($modx->config['error_page']) ?  $modx->config['error_page'] : $modx->config['site_start'];
            }
            break ;================
UPDATE
Я тут выяснил, что плагин у нас просто для красоты стоит, в качестве недовыпиленного легаси.
И мультиязычность якобы реализована средствами modx (то есть все-все ручками делается)