О Битрикс

Установить значение свойства в зависимости от другого свойства

Установить программно значение свойства типа список в зависимости от другого свойства типа строка в init.php.

Проделать подобное мне понадобилось на сайте с большим количеством товаров и для каждого из них нужно было заполнить новое свойство. Новое свойство зависело от имеющегося. И поэтому я использовала нижеследующий код:

<?php if(CModule::IncludeModule('iblock')) {
   $arSort= Array("NAME"=>"ASC");
   $arSelect = Array("ID", "IBLOCK_ID", "NAME");
   $arFilter = Array("IBLOCK_ID" => 33);
   $res = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect);
   while($ob = $res->GetNextElement()){
   $arFields = $ob->GetFields();
   $arProps = $ob->GetProperties();
   $hh = $arProps["PLOSHAD"]["VALUE"];    if($hh<=20) {
      CIBlockElement::SetPropertyValues($arFields["ID"], 33, 164, "SPISOK_PLOSHAD");
   }
   else if($hh>20 && $hh<=25) {
      CIBlockElement::SetPropertyValues($arFields["ID"], 33, 165, "SPISOK_PLOSHAD");
   }
   else if($hh>25 && $hh<=35) {
      CIBlockElement::SetPropertyValues($arFields["ID"], 33, 166, "SPISOK_PLOSHAD");
   }
   else if($hh>35 && $hh<=50) {
      CIBlockElement::SetPropertyValues($arFields["ID"], 33, 167, "SPISOK_PLOSHAD");
   }
   else if($hh>50 && $hh<=70) {
      CIBlockElement::SetPropertyValues($arFields["ID"], 33, 168, "SPISOK_PLOSHAD");
   }
   else if($hh>70 && $hh<=90) {
      CIBlockElement::SetPropertyValues($arFields["ID"], 33, 169, "SPISOK_PLOSHAD");
   }
   else {
      CIBlockElement::SetPropertyValues($arFields["ID"], 33, 170, "SPISOK_PLOSHAD");
   }
   }
}?>

В переменную $hh попадает текущее значение свойства PLOSHAD и в зависимости от этого значения, свойству SPISOK_PLOSHAD присваивается значение по id из списка с помощью функции SetPropertyValues.


сайт на Bitrix

Территориально я нахожусь в Санкт-Петербурге, но могу и готова работать со всеми, вне зависимости от вашего местоположения. Вы можете написать мне через форму обратной связи, либо связаться через социальные сети. Ознакомиться с портфолио можно здесь и здесь.

Социальные сети

Рандом новостей