Проблема с плейсхолдерами

Суть вопроса такова, что товары без работы с плейсхолдерами показываются при фильтрации

ber.getahead.pro/whats-cooking/

А товары с плейсхолдерами не показываются при фильтрации
bergner.getahead.pro/whats-cooking/ в чем может быть проблема?

pastebin.com/FsdpDYkR
Максим
16 сентября 2014, 09:42
modx.pro
1
2 712
0

Комментарии: 15

Максим
17 сентября 2014, 14:45
0
Поможет кто разобраться с этой проблемой?
    Василий Наумкин
    17 сентября 2014, 20:28
    0
    Как минимум вижу в коде, что все плейсхолдеры некэшированные, кроме собственно my_results.
      Максим
      18 сентября 2014, 11:22
      0
      pastebin.com/pSFPYmFJ вот убрал. Все равно все одинаково
        Максим
        18 сентября 2014, 11:38
        0
        Просто он еще возвращяет кол-во результатов но не выводит

        {success:true, message:, data:{results: Подходящих результатов не найдено., pagination:, total:4,…}}
        data: {results: Подходящих результатов не найдено., pagination:, total:4,…}
        log: «0.0000782: pdoTools loaded.↵0.0036569: Getting filters for saved ids: (3,19,20,21)↵0.0023069: Filters retrieved.↵0.0002921: Suggestions retrieved.↵0.0231750: Total filter operations: 24↵0.0295281: Total time↵6 553 600: Memory usage↵»
        pagination: ""
        results: «Подходящих результатов не найдено.»
        suggestions: {ms|price:{3460.00:1, 1199.00:1, 499.00:1, 1299.00:1}, ms|liters:{0.00:1, 80.00:1, 60.00:1, 70.00:1},…}
        total: «4»
          Василий Наумкин
          18 сентября 2014, 12:23
          0
          Ну так результатов не найдено, говорит же, и в страницу вставляет.

          А вот почему не найдено — другой вопрос. Подозреваю проблему с доступом к сессии из коннектора action.php — уже видел подобное.
            Максим
            18 сентября 2014, 12:33
            0
            Может есть решение какое то, или подсказать в каком направлении двигаться?
              Максим
              18 сентября 2014, 12:54
              0
              в 108 строке он получае все ID элементов var_dump($paginatorProperties['resources']);
                Максим
                18 сентября 2014, 13:03
                0
                Точнее даже проблема в

                $results = $modx->runSnippet($mSearch2->config['paginator'], $paginatorProperties);
                  Максим
                  18 сентября 2014, 13:08
                  0
                  Такое чувство что в снипете pdoPage отсутствует обработка toSeparatePlaceholders
                    Максим
                    18 сентября 2014, 13:23
                    0
                    if (!empty($toPlaceholder)) {
                    			$object->process($scriptProperties);
                    			$output = $modx->getPlaceholder($toPlaceholder);
                    		} else {
                    			$output = $object->process($scriptProperties);
                    		}

                    В этом месте $output = $object->process($scriptProperties); в снипете pdoPage
                    он не получает данные с использованием toSeparatePlaceholders, без его использования получает.

                    Отличия 2 сайтов где работает и не работает в единственном параметре toSeparatePlaceholders в одному случае он ='' в другом ='my_'

                    И как понимаю он не отрабатывает в строке которую выше описал

                      Максим
                      18 сентября 2014, 13:34
                      0
                      Василий, наконец пришел к окончательному выводу в снипете msProducts

                      у вас идет код

                      // Return output
                      if (!empty($toSeparatePlaceholders)) {
                      	$modx->setPlaceholders($output, $toSeparatePlaceholders);
                      	$modx->setPlaceholder($log, $toSeparatePlaceholders.'log');
                      }
                      else {
                      	if (empty($outputSeparator)) {$outputSeparator = "\n";}
                      	$output = is_array($output) ? implode($outputSeparator, $output) : $output;
                      	$output .= $log;
                      
                      	if (!empty($tplWrapper) && (!empty($wrapIfEmpty) || !empty($output))) {
                      		$output = $pdoFetch->getChunk($tplWrapper, array('output' => $output), $pdoFetch->config['fastMode']);
                      	}
                      
                      	if (!empty($toPlaceholder)) {
                      		$modx->setPlaceholder($toPlaceholder, $output);
                      	}
                      	else {
                      		return $output;
                      	}
                      }

                      по факту он должен выглядить вот так

                      // Return output
                      if (!empty($toSeparatePlaceholders)) {
                      	$modx->setPlaceholders($output, $toSeparatePlaceholders);
                      	$modx->setPlaceholder($log, $toSeparatePlaceholders.'log');
                      }
                      
                      if (empty($outputSeparator)) {$outputSeparator = "\n";}
                      $output = is_array($output) ? implode($outputSeparator, $output) : $output;
                      $output .= $log;
                      
                      if (!empty($tplWrapper) && (!empty($wrapIfEmpty) || !empty($output))) {
                      	$output = $pdoFetch->getChunk($tplWrapper, array('output' => $output), $pdoFetch->config['fastMode']);
                      }
                      
                      if (!empty($toPlaceholder)) {
                      	$modx->setPlaceholder($toPlaceholder, $output);
                      }
                      else {
                      	return $output;
                      }

                      У условия
                      if (!empty($toSeparatePlaceholders)) {
                      не должно быть else, так как у нас идет только проверка, вы условием else перекрыли вывод товара при использовании параметра toSeparatePlaceholders
                        Василий Наумкин
                        18 сентября 2014, 13:59
                        0
                        А, понятно, ты не покупал mSearch2, поэтому у тебя там, видимо, старая версия без исправления работы с плейсхолдерами.

                        Вот коммит, который добавляет сборку выставленных плейсхолдеров из сниппета и запихивание их в results.

                        Просто я не подумал, что у тебя может быть не последняя версия.
                          Максим
                          18 сентября 2014, 14:06
                          0
                          Я делаю на тесте, и использовал версию от 13 августа как раз таки
                            Василий Наумкин
                            18 сентября 2014, 14:20
                            0
                            Версия от 13 августа, таки, не последняя.

                            Сделай одолжение, в следующий раз, прежде чем задавать вопросы, проверить репозиторий?
                              Максим
                              18 сентября 2014, 14:21
                              0
                              Я понял, в любом случае спасибо, я старался помочь как ни как)
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  15