Нет, переустановил еще 2 раза, тот же результат... теперь в ступоре
05.08.2015 13:39:13
|
|||||
|
14.11.2011 12:45:48
ничего не понимаю, если верить ману -
все работает, т.е. фильтрует по заполненному значению, но как только пытаешься сделать жесткую проверку на соответствие значению - фильтр подыхает... |
|||
|
14.11.2011 11:18:17
может кто чего заметит? вот часть кода элемента:
|
|||
|
14.11.2011 11:09:33
сразу хочу поклониться Николаю, что не бросил и пытается помочь, а то видимо мои мучения для крутых экспертов по битриксу слишком мелки...
мои последние изыскания: изучал маны, форум, инет... в манах через форум нашел вот это - сделал сегодня с утра вот что: в компоненте добавил параметр
т.е. получил форму для ввода значения, по которому можно фильтровать...далее, сделал в самом компоненте на всякий случай отсекание пробелов
далее замутил проверки на наличие значений в параметрах компонента и вот что вывел
|
|||||||
|
12.11.2011 11:47:09
скопировал стандартный компонент store.catalog.top, подредактировал и подтянул его в битриксе, теперь могу над ним издеваться не кастамизируя стандартный. проблема в силе, есть мысли, только помогите!!!!
вот мысль - перед применением фильтра проверить соответствие выбранного свойства в компоненте его значению, что-то примерно следующее:
что-то похожее есть дальше в коде компонента, но пока не пойму как можно этим воспользоваться:
может я вообще не там ковыряю? |
|||||
|
11.11.2011 16:57:26
может есть какие-то другие решения, без кастомизации стандартного компонента store.catalog.top? каким-то образом преобразовывать строковые параметры из 1С во флажки в торговом каталоге и т.д. а? ну не реально же при смене свойства у товара, несмотря на синхронизацию 1С и Битрикса лезть потом на сайт и вручную менять эти свойства у каждого товара!!! что делать?
|
|
|
11.11.2011 13:11:47
уже методом "тыка" перебрал такие варианты:
1. $arrFilter[($arParams['FLAG_PROPERTY_CODE']['VALUE'] == 'YES')] = false; 2. $arrFilter[($arParams['FLAG_PROPERTY_CODE']['VALUES'] == 'YES')] = false; 3. $arrFilter[('!PROPERTY_'.$arParams['FLAG_PROPERTY_CODE']) && ($arParams['FLAG_PROPERTY_CODE']['VALUE'] == 'YES')] = false; 4. $arrFilter[('!PROPERTY_'.$arParams['FLAG_PROPERTY_CODE']) && ($arParams['FLAG_PROPERTY_CODE']['VALUES'] == 'YES')] = false; ничего не получается.... помогите!!! |
|
|
11.11.2011 12:27:24
В параметрах все правильно задано, у товаров свойства все есть... Вот пока в одном свойстве есть значение Y (причем, в значение можно написать все что угодно, фильтр увидет только то, что там "НЕ ПУСТО" и все), а в остальных значения пустые, тогда все работает! Как только я по всем свойствам начина расписывать значения (например, NO, YES), вот тогда фильтр и воспринимает все свойства как активные для отбора, ибо у все из них значения не пустые, а мне надо заставить его видеть, какое именно значение в свойствах стоит и по нему отфильтровать массив, и делает он это все именно в этой строчке, как правильно ее отредактировать я как раз и не пойму:
if ($arParams['FLAG_PROPERTY_CODE']) - проверка, заполнено значение параметра компонента или нет (тут все ясно) { $arrFilter['!PROPERTY_'.$arParams['FLAG_PROPERTY_CODE']] = false; - вот тут как быть? тут по идее на выходе что-то типа $arrFilter['!PROPERTY_SALELIDER'] = false; } |
|
|
11.11.2011 10:58:51
нет, так не работает и работать не будет... и так тоже не работает:
if ($arParams['FLAG_PROPERTY_CODE']) { $arrFilter['PROPERTY_'.$arParams['FLAG_PROPERTY_CODE']] == 'Y'; } и вот так тоже не работает: if ($arParams['FLAG_PROPERTY_CODE']) { $arrFilter['PROPERTY_'.$arParams['FLAG_PROPERTY_CODE']['VALUE']] == 'Y'; } |
|
|
10.11.2011 23:22:44
что-то как-то не влезло все, попробую еще разок:
Ситуация в следущем: Необходимо выводить разные топы товаров по разным свойствам. Сделано в 1С: в номенклатуре введены свойства для каждого товара - Новинка, Лидер продаж, Спецпредложение, со значением "Y" (либо значение полностью отсутствует). Сделано в битриксе: при синхронизации 1С и битрикса (выгрузке) в товарах, если в свойстве товара присутствует значение "Y", то в файле импорта оно присутствует, попадает в каталог битрикса, прописывается в том же свойстве у необходимого товара, работают топы, фильтры и т.д. все хорошо. При синхронизации 1С выгружает эти свойства в виде строки и переделка их в битриксе под "флаги" при первой же новой синхронизации слетает, появляются дубликаты от 1С опять со строковыми значениями. Проблема заключается в следующем! - со строками у меня везде все получается - фильтрую по ним, ввожу для товара различные добавления основываясь на этих свойствах кроме одного: после того как в 1С свойство меняется (т.е. значение "Y" удаляется и остается пустота) сама 1С эти свойства уже не выгружает, победить это в самой 1С в обработке выгрузки на сайт не получается. а поскольку изменения на сайт не долетают, то на сайте начинается бардак, да и строки не могут работать как флаги, например в топах при выводе товаров по FLAG_PROPERTY_CODE. есть вариант добавить в 1С дополнительное значение "N", но тогда для фильтров будет одинаково, что Y, что N, т.к. <?if (array_key_exists("PROPERTIES", $arResult) && is_array($arResult["PROPERTIES"])) { $sticker = ""; foreach (Array("SPECIALOFFER", "NEWPRODUCT", "SALELEADER") as $propertyCode) { if (array_key_exists($propertyCode, $arResult["PROPERTIES"]) && intval($arResult["PROPERTIES"][$propertyCode]["PROPERTY_VALUE_ID"]) > 0) $sticker .= $arResult["PROPERTIES"][$propertyCode]["CODE"]; } } ?> это тоже можно победить, если сделать так: <?if (array_key_exists("PROPERTIES", $arResult) && is_array($arResult["PROPERTIES"])) { $sticker = ""; foreach (Array("SPECIALOFFER", "NEWPRODUCT", "SALELEADER") as $propertyCode) { if (array_key_exists($propertyCode, $arResult["PROPERTIES"]) && ($arResult["PROPERTIES"][$propertyCode]["VALUE"]) == "Y") $sticker .= $arResult["PROPERTIES"][$propertyCode]["CODE"]; } } ?> но вот как победить работу фильтра в компоненте топа по флагу????? if ($arParams['FLAG_PROPERTY_CODE']) { $arrFilter['!PROPERTY_'.$arParams['FLAG_PROPERTY_CODE']] = false; } Прошу помощи, как разрулить такую вот проблемку... |
|
|
10.11.2011 23:06:15
Постараюсь все описать максимально доходчиво и как можно короче.
Ситуация в следущем: Необходимо выводить разные топы товаров по разным свойствам. Сделано в 1С: в номенклатуре введены свойства для каждого товара - Новинка, Лидер продаж, Спецпредложение, со значением "Y" (либо значение полностью отсутствует). Сделано в битриксе: при синхронизации 1С и битрикса (выгрузке) в товарах, если в свойстве товара присутствует значение "Y", то в файле импорта оно присутствует, попадает в каталог битрикса, прописывается в том же свойстве у необходимого товара, работают топы, фильтры и т.д. все хорошо. При синхронизации 1С выгружает эти свойства в виде строки и переделка их в битриксе под "флаги" при первой же новой синхронизации слетает, появляются дубликаты от 1С опять со строковыми значениями. Проблема заключается в следующем! - со строками у меня везде все получается - фильтрую по ним, ввожу для товара различные добавления основываясь на этих свойствах кроме одного: после того как в 1С свойство меняется (т.е. значение "Y" удаляется и остается пустота) сама 1С эти свойства уже не выгружает, победить это в самой 1С в обработке выгрузки на сайт не получается. а поскольку изменения на сайт не долетают, то на сайте начинается бардак, да и строки не могут работать как флаги, например в топах при выводе товаров по FLAG_PROPERTY_CODE. есть вариант добавить в 1С дополнительное значение "N", но тогда для фильтров будет одинаково, что Y, что N, т.к.
Прошу помощи, как разрулить такую вот проблемку...
|
|||||||||
|