Beispiel #1
0
 public static function Add($iblock_id, $arFields)
 {
     if ($iblock_id > 0) {
         $property_id = intval($arFields["ID"]);
         if ($property_id > 0) {
             return new CListPropertyField($iblock_id, "PROPERTY_" . $property_id, $arFields["NAME"], $arFields["SORT"]);
         } else {
             $arFields["IBLOCK_ID"] = $iblock_id;
             if (strpos($arFields["TYPE"], ":") !== false) {
                 list($arFields["PROPERTY_TYPE"], $arFields["USER_TYPE"]) = explode(":", $arFields["TYPE"]);
             } else {
                 $arFields["PROPERTY_TYPE"] = $arFields["TYPE"];
             }
             $arFields["MULTIPLE_CNT"] = 1;
             $arFields["CHECK_PERMISSIONS"] = "N";
             $arFields["CODE"] = $arFields["CODE"] ? $arFields["CODE"] : CLists::generateMnemonicCode();
             $obProperty = new CIBlockProperty();
             $res = $obProperty->Add($arFields);
             if ($res) {
                 self::resetPropertyArrayCache();
                 if ($arFields["PROPERTY_TYPE"] == "L" && is_array($arFields["LIST"])) {
                     CList::UpdatePropertyList($res, $arFields["LIST"]);
                 }
                 return new CListPropertyField($iblock_id, "PROPERTY_" . $res, $arFields["NAME"], $arFields["SORT"]);
             }
         }
     }
     return null;
 }