Артём Жабин пишет: Вопрос от меня (раз уж речь про фильтры пошла) Можно ли сделать, например, такой филтьтр при котором выводились бы товары в каталоге, количество которых больше 5 и меньше 0? (Это к примеру)
а где у тебя кол-во хранится? в свойстве инфоблока? тогда так
Валентин Ципан пишет: А можно как то меню навигации снизу делать что бы переходить по всех хит продажах а не видеть только те что задаются в компоненте )? типа 12345> >>
тогда компонент catalog.section.list лучше используй) для того чтобы в нём вывести все с нужным полем используй фильтр перед компонентом
напишу мои соображения - вообще я думаю сделать через большой костыль - вместо того, чтобы во всех компонентах менять урлы разделов и товаров ( а ведь кто знает, какие ещё компоненты будут кидать на сайт) я думаю сделать такую шляпу :
завести таблицу с полем OLD_URL и NEW_URL
с помощью обработчиков перехватываю все события по изменению, удалению, добавлению разделов - поддерживаю обработчиками эту таблицу в актуальном состоянии короче например OLD_URL /catalog/razdel5/ ; NEW_URL /catalog/razdel1/razdel2/razdel3/razdel4/razdel5/
теперь костыль)) - во всех шаблонах - в футере в самом конце я подключаю мой файлик (впринципе можно и событиями главного модуля - которое там срабатывает в самом конце - ещё не смотрел -не суть)
суть в том что этим куском кода, который всегда отрабатывает в самом конце на каждой странице получить значение всего буфера $r = $APPLICATION->EndBufferContentMan();
и строковой функцией заменить все совпадения которые у меня в OLD_URL на NEW_URL
всё!
плюсы - не нужно кастомизировать ни одного компонента - всё будет работать с моим чпу минусы - конечно же скорость - я сейчас тестирую варианты как производить эту автозамену - или тащить сразу все значения из базы и str_replace(массив OLD_URL , NEW_URL, $r ) , либо регулярным выражением сразу найти все ссылки на каталог и затем тащить с таблицы значнния только для них и менять
понимаю конечно же что через задницу, но это самый простой вариант в битриксе, который я вижу.... отпишусь ещё по результатам..
нужно сразу получить значение этого множественного поля ... затем добавить к нему текущего типа так $element["WITHUSER"][] = $USER->GetID(); и уже этот массив всех пользователей записывать "CIBlockElement::SetPropertyValuesEx($Int["ID"], IBLOCK_INTERES, $element["WITHUSER"] );"
вообще нужно сразу решить как сделать так, чтобы один и тот же человек не мог лайкнуть товар больше 1 раза ...
допустим ограничение на ip адрес. я это вижу так. создаём инфоблок - чисто технический с свойством 'привязка к товару'. в него мы допустим будем записывать элементы с ip адресом человека и оценкой товара (в вашем случае случае допустим 0 или 1, но можно сделать шкалу например 5 звёзд))) 1 2 3 4 или 5 - не суть)
когда человек жмёт оценить - скрипт проверяет среди всех элементов с привязкой к конкретно этому товару нет ли элемента с таким записанным ip адресом, если нет, то добавляет
так же висит обработчик на добавление элементов в этот инфоблок, который при добавлении будет суммировать оценки для добавленного товара и делить на кол-во голосов (количество элементов с привязкой именно к этому товару) - образно говоря находить среднюю оценку - и присваивать эту оценку свойству товара
если ты используешь битриксовый компонент то там есть параметр - массив для фильтрации ... $arrFilter по умолчанию ты можеш перед подклюением компонента допустим $arFilter присвоить массив с любыми фильтрами $arFilter = array( array( "LOGIC" => "OR", array("<PROPERTY_RADIUS" => 50, "=PROPERTY_CONDITION" => "Y"), array(">=PROPERTY_RADIUS" => 50, "!=PROPERTY_CONDITION" => "Y"), ), );