Как-то раз было мне нужно создать несколько свойств, в нескольких инфоблоках, данный код показывает пример создания 3-х свойств типа чек-бокс (на самом деле типа список, с одним значением «Y»:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
<? if ($USER->IsAdmin()): if(CModule::IncludeModule('iblock')) { $arFilter = array( "TYPE" => "catalog", "SITE_ID" => SITE_ID, //"ACTIVE" => "Y", //"CNT_ACTIVE" => "Y" ); $dbIBlock = CIBlock::GetList(array('SORT' => 'ASC', 'ID' => 'ASC'), $arFilter, true); $dbIBlock = new CIBlockResult($dbIBlock); $arIB = array(); while ($arIBlock = $dbIBlock->GetNext()) { //if ($arIBlock['ELEMENT_CNT']>0) { $arIB[$arIBlock['ID']] = array( 'ID'=> $arIBlock['ID'], 'NAME' => $arIBlock['NAME'], 'URL' => $arIBlock['LIST_PAGE_URL'], 'ELEMENTS' => $arIBlock['ELEMENT_CNT'] ); } } $arPropCN = array( 'IS_SALE'=> 'Распродажа', 'IS_HIT' => 'Хит продаж', 'IS_NEW' => 'Новинка' ); $ibp = new CIBlockProperty; //проверка свойств foreach ($arIB as $aIB) { $arPropsExists = array(); $properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$aIB['ID'])); while ($prop_fields = $properties->GetNext()) { //echo $prop_fields["ID"]." - ".$prop_fields["CODE"].'-'.$prop_fields["NAME"]."<br>"; if ( in_array($prop_fields['CODE'], array_keys($arPropCN)) ) { $arPropsExists[] = $prop_fields['CODE']; } } if ( (1==1) && (count($arPropsExists)<3) ) { foreach ($arPropCN as $code => $name) if (!in_array($code, $arPropsExists)) { //добавление свойства $arFields = Array( "NAME" => $name, "ACTIVE" => "Y", "SORT" => "1000", "CODE" => $code, "PROPERTY_TYPE" => "L", //тип список "LIST_TYPE" => "C", //вид - флажки "IBLOCK_ID" => $aIB['ID'], "VALUES" => array( Array( "VALUE" => "Y", "DEF" => "N", "SORT" => "100" ) ) ); if ( !$PropID = $ibp->Add($arFields) ) { echo 'ERROR: свойство '.$code.' '.$ibp->LAST_ERROR.'<br>'; } else { echo 'свойство '.$code.' успешно создано PropID='.$PropID.' <br> '; } } } else { echo ' all props allready exists '; } //break; //test 1 iblock } //PR($arIB); } endif; ?> |