Доброго дня. В скрипте props.php массив $arResultProperties абсолютно пуст, из-за чего не работает оформление заказа. Как этот массив формируется и как исправить данную проблему ?
Перед вызовом кешируемого компонента делаете ob_start();
затем в component_epilog делаете
$content = ob_get_clean();
echo str_replace('#NEED_TO_REPLACE#', $replace, $content);
где,
#NEED_TO_REPLACE# - это маска для замены, её нужно разметить в template.php в том месте где должен быть некеширующийся контент
$replace - это то что должно быть в этом месте.
подробности найдёте в одной из публикаций моего блога
потому что конструкцию $APPLICATION->ShowViewContent() нельзя использовать в кешируемой области (в вашем случае это кешируемый шаблон компонента). Тут есть несколько путей решения задачи: 1. Выводить в некешируемой области (т.е. перенести вывод в другое место) 2. Использовать собственную буферизацию (помещать все содержимое кешируемого шаблона в буфер и затем в нем менять определнную маску на нужное содержимое) 3. Сделать АЯКС обновление (вывод) списка комментов (отзывов) при открытии страницы.
3 - очень нежелательный для меня способ. по поводу 2 : мог бы кто подсказать примерную схему ?
А возможно ли сделать без JS, но с помощью отложенного выполнения ? В component_epilog сгенерировать массив с рандомными значениями, сформировать html, при помощи отложенного выполнения запихать html в нужное место... Нет ли в этом способе подводных камней ?
Доброго дня. Имеется компонент, который выводит список элементов, у каждого элемента имеется значок, который является рандомно выбранным из нескольких значков. Так вот, эта рандомность работает только при clear_cache=Y. Код в шаблоне компонента примерно такой :
Доброго дня. Проблема в том что сейчас пагинация имеет вид типа такого: https://gyazo.com/174db1777ddef10f6539528205ea5a5a , т.е. выводятся сразу номера всех страниц. Мне нужно, чтобы пагинация имела следующий вид: на страницах 1, 2, 3 отображается 1 2 3 4 ... N на страницах N, N-1, N-2 отображается 1 ... N-3, N-2, N-1, N ну и для остальных 1 ... K-1, K, K+1 ... N . Где можно найти шаблон для данного решения ?
был позаимствован код из DoProcessOrder и из компонента корзины. Суть задачи была в том, чтобы если в корзине сработало правило работы с корзиной (например, дающее скидку 5%, оно срабатывает, если товаров в корзине на сумму больше 2000 р.), то делаем следующее: пробегаемся по товарам, если собственная скидка товара меньше скидки правила работы с корзиной, то убиваем скидку товара и применяем к товару скидку правила.