Проблема с плейсхолдерами
Суть вопроса такова, что товары без работы с плейсхолдерами показываются при фильтрации
ber.getahead.pro/whats-cooking/
А товары с плейсхолдерами не показываются при фильтрации
bergner.getahead.pro/whats-cooking/ в чем может быть проблема?
pastebin.com/FsdpDYkR
ber.getahead.pro/whats-cooking/
А товары с плейсхолдерами не показываются при фильтрации
bergner.getahead.pro/whats-cooking/ в чем может быть проблема?
pastebin.com/FsdpDYkR
Комментарии: 15
Поможет кто разобраться с этой проблемой?
Как минимум вижу в коде, что все плейсхолдеры некэшированные, кроме собственно my_results.
pastebin.com/pSFPYmFJ вот убрал. Все равно все одинаково
Просто он еще возвращяет кол-во результатов но не выводит
{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»
{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»
Ну так результатов не найдено, говорит же, и в страницу вставляет.
А вот почему не найдено — другой вопрос. Подозреваю проблему с доступом к сессии из коннектора action.php — уже видел подобное.
А вот почему не найдено — другой вопрос. Подозреваю проблему с доступом к сессии из коннектора action.php — уже видел подобное.
Может есть решение какое то, или подсказать в каком направлении двигаться?
в 108 строке он получае все ID элементов var_dump($paginatorProperties['resources']);
Точнее даже проблема в
$results = $modx->runSnippet($mSearch2->config['paginator'], $paginatorProperties);
$results = $modx->runSnippet($mSearch2->config['paginator'], $paginatorProperties);
Такое чувство что в снипете pdoPage отсутствует обработка toSeparatePlaceholders
if (!empty($toPlaceholder)) {
$object->process($scriptProperties);
$output = $modx->getPlaceholder($toPlaceholder);
} else {
$output = $object->process($scriptProperties);
}
В этом месте $output = $object->process($scriptProperties); в снипете pdoPage
он не получает данные с использованием toSeparatePlaceholders, без его использования получает.
Отличия 2 сайтов где работает и не работает в единственном параметре toSeparatePlaceholders в одному случае он ='' в другом ='my_'
И как понимаю он не отрабатывает в строке которую выше описал
Василий, наконец пришел к окончательному выводу в снипете 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
А, понятно, ты не покупал mSearch2, поэтому у тебя там, видимо, старая версия без исправления работы с плейсхолдерами.
Вот коммит, который добавляет сборку выставленных плейсхолдеров из сниппета и запихивание их в results.
Просто я не подумал, что у тебя может быть не последняя версия.
Вот коммит, который добавляет сборку выставленных плейсхолдеров из сниппета и запихивание их в results.
Просто я не подумал, что у тебя может быть не последняя версия.
Я делаю на тесте, и использовал версию от 13 августа как раз таки
Версия от 13 августа, таки, не последняя.
Сделай одолжение, в следующий раз, прежде чем задавать вопросы, проверить репозиторий?
Сделай одолжение, в следующий раз, прежде чем задавать вопросы, проверить репозиторий?
Я понял, в любом случае спасибо, я старался помочь как ни как)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.