MSearch TV поля
Добрый день!
Я меня на сайте msearch при выводе найденных элементов выводит 2 доп.ТВполя. Проблема в том что они выводятся только для первого найденного элемента, для остальных не выводятся. Посмотреть можно на new.galaxiv.ru
Я меня на сайте msearch при выводе найденных элементов выводит 2 доп.ТВполя. Проблема в том что они выводятся только для первого найденного элемента, для остальных не выводятся. Посмотреть можно на new.galaxiv.ru
Комментарии: 13
Alexey Guz, аналогичная ситуация!
При выводе TV в результатах поиска, первый товар выводится как и задумано со всеми указанными TV, а все последующие товары выдаются без них (отображаются только стандартные плейсхолдеры modx). И выдаются 2 ошибки относительно обработки includeTVList.
Вот скриншот
Вот вызов mSearch:
При выводе TV в результатах поиска, первый товар выводится как и задумано со всеми указанными TV, а все последующие товары выдаются без них (отображаются только стандартные плейсхолдеры modx). И выдаются 2 ошибки относительно обработки includeTVList.
Вот скриншот
Вот вызов mSearch:
[[!getPage@catalog_fill?
&element=`mSearch`
&includeTV=`1`
&includeTVList=`image,price,articul,instock`
&tpl=`product_list`
&limit=`10` ]]
Minishop не установлен.
Насчет 2-х ошибок: у меня была аналогичная проблема. Решил заменой версии php 5.3 на php 5.0. Попробуйте может поможет
Не считаю это логичным решением, ведь для работы REVO нужна версия PHP не менее 5.1
Такая же проблема, неужели всё еще нет решения?
Решил с помощью следующего изврата:
[[!getPage?
&elementClass=`modSnippet`
&element=`getProducts`
&resources=`
[[!mSearch?
&element=`mSearch`
&context=`catalog`
&parents=`4`
&showHidden=`true`
<b>&returnIds=`1`</b>
]]
`
&includeTVs=`1`
&includeTVList=`блаблабла`
&limit=`10`
&depth=`100`
&tpl=`product_block_tpl`
&noResults=`Пусто`
]]
Ну спасибо конечно за плагин — рекламу везде дали, теперь придется удалять етот плгин!!! Ибо без тв и с такими сложными изворотами у меня не работает.
Сочувствую.
Решил проблему за пару минут. Необходимо, внести всего одну правку в сниппет mSearch.
Как решили?
Лови, замени данную часть кода начиная с 78 строки, собственно все. Удачи.
else {
$class = !empty($includeMS) ? 'msProduct' : 'modResource';
$i = $offset;
$result = array();
$includeTVListArr = array();
foreach ($res as $v) {
if ($tmp = $modx->getObject($class, $v['rid'])) {
$arr = $tmp->toArray();
$arr['num'] = 1+$i++;
$arr['intro'] = $mSearch->Highlight($v['resource'], $query);
if (!empty($includeTVs) && !empty($includeTVList)) {
$includeTVListArr = explode(',',$includeTVList);
foreach ($includeTVListArr as $v2) {
$arr[$tvPrefix.$v2] = $tmp->getTVValue($v2);
}
}
$result[] = $modx->getChunk($tpl, $arr);
}
}
$modx->setPlaceholder($plPrefix.'count', (($i != 0) ? $arr['num'] : 0));
$modx->setPlaceholder($plPrefix.'render_time', $mSearch->get_execution_time() - $modx->getPlaceholder($plPrefix.'query_time'));
if ($i == 0) {
$modx->setPlaceholder($plPrefix.'error', $modx->lexicon('mse.err_no_results'));
return;
}
return implode($outputSeparator, $result);
}
Спасибо! Работает.
Начал разбирать — не очень понятно, для чего прибавляли $arr['num'] = 1+$i++;?
Начал разбирать — не очень понятно, для чего прибавляли $arr['num'] = 1+$i++;?
К делу не относится, свои эксперементы, точно не помню, но что-то со счетчиком связано.
Ясно!
Спасибо!
Спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.