当前位置: 首页>>代码示例>>PHP>>正文


PHP CIBlockPropertyEnum::DeleteByPropertyID方法代码示例

本文整理汇总了PHP中CIBlockPropertyEnum::DeleteByPropertyID方法的典型用法代码示例。如果您正苦于以下问题:PHP CIBlockPropertyEnum::DeleteByPropertyID方法的具体用法?PHP CIBlockPropertyEnum::DeleteByPropertyID怎么用?PHP CIBlockPropertyEnum::DeleteByPropertyID使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CIBlockPropertyEnum的用法示例。


在下文中一共展示了CIBlockPropertyEnum::DeleteByPropertyID方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: UpdateEnum

 /**
  * <p>Метод устанавливает значения перечислений свойства типа "список". Метод динамичный.</p>
  *
  *
  * @param int $ID  Код свойства.
  *
  * @param array $arVALUES  Массив всех значений в формате Array("код существующего
  * значения"=&gt;"массив полей значения", ..., "массив полей нового
  * значения", ...). Где массив полей имеет вид: Array("VALUE"=&gt;"значение"[,
  * "SORT"=&gt;"порядок сортировки"][, "DEF"=&gt;"является значением по
  * умолчанию (Y|N)"][, "XML_ID"=&gt;"внешний код"]).
  *
  * @param bool $bForceDelete = true Если принимает значение <i>true</i>, то удаляются варианты значений, у
  * которых <i>VALUE</i> пустой. Значение <i>false</i> позволяет сохранить
  * значения, использованные хотя бы у одного элемента.
  * Необязательный параметр.
  *
  * @return mixed 
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?
  * $cnt = 0;<br>$ar_all_values = Array();<br>$db_enum_list = CIBlockProperty::GetPropertyEnum($PROP_ID, Array('SORT'=&gt;'ASC'));<br>while($ar_enum = $db_enum_list-&gt;Fetch())<br>{<br>	$cnt++;<br>	$ar_all_values[$ar_enum['ID']] = Array('SORT'=&gt;$cnt, 'VALUE'=&gt;$ar_enum['VALUE']);<br>}<br>$CIBlockProp = new CIBlockProperty;
  * $CIBlockProp-&gt;UpdateEnum($PROP_ID, $ar_all_values); ?&gt;
  * </pre>
  *
  *
  * <h4>See Also</h4> 
  * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/iblock/fields.php#fiblockpropertyenum">Поля значений
  * свойства типа "список</a><a
  * href="http://dev.1c-bitrix.ru/api_help/main/reference/ceventmessage/index.php#flds">" </a> </li> <li> <a
  * href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockpropertyenum/index.php">CIBlockPropetyEnum</a>::<a
  * href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockpropertyenum/update.php">Update()</a> </li> <li> <a
  * href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockpropertyenum/index.php">CIBlockPropetyEnum</a>::<a
  * href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockpropertyenum/add.php">Add()</a> </li> </ul> <a
  * name="examples"></a>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockproperty/updateenum.php
  * @author Bitrix
  */
 public function UpdateEnum($ID, $arVALUES, $bForceDelete = true)
 {
     global $DB, $CACHE_MANAGER;
     $ID = IntVal($ID);
     if (!is_array($arVALUES) || empty($arVALUES) && $bForceDelete) {
         CIBlockPropertyEnum::DeleteByPropertyID($ID);
         return true;
     }
     $ar_XML_ID = array();
     $db_res = $this->GetPropertyEnum($ID);
     while ($res = $db_res->Fetch()) {
         $ar_XML_ID[$res["XML_ID"]] = $res["ID"];
     }
     $sqlWhere = "";
     if (!$bForceDelete) {
         $rsProp = CIBlockProperty::GetByID($ID);
         if ($arProp = $rsProp->Fetch()) {
             if ($arProp["VERSION"] == 1) {
                 $sqlWhere = "AND NOT EXISTS (\n\t\t\t\t\t\tSELECT *\n\t\t\t\t\t\tFROM b_iblock_element_property\n\t\t\t\t\t\tWHERE b_iblock_element_property.IBLOCK_PROPERTY_ID = b_iblock_property_enum.PROPERTY_ID\n\t\t\t\t\t\tAND b_iblock_element_property.VALUE_ENUM = b_iblock_property_enum.ID\n\t\t\t\t\t)";
             } elseif ($arProp["MULTIPLE"] == "N") {
                 $sqlWhere = "AND NOT EXISTS (\n\t\t\t\t\t\tSELECT *\n\t\t\t\t\t\tFROM b_iblock_element_prop_s" . $arProp["IBLOCK_ID"] . "\n\t\t\t\t\t\tWHERE b_iblock_element_prop_s" . $arProp["IBLOCK_ID"] . ".PROPERTY_" . $arProp["ID"] . " = b_iblock_property_enum.ID\n\t\t\t\t\t)";
             } else {
                 $sqlWhere = "AND NOT EXISTS (\n\t\t\t\t\t\tSELECT *\n\t\t\t\t\t\tFROM b_iblock_element_prop_m" . $arProp["IBLOCK_ID"] . "\n\t\t\t\t\t\tWHERE b_iblock_element_prop_m" . $arProp["IBLOCK_ID"] . ".IBLOCK_PROPERTY_ID = b_iblock_property_enum.PROPERTY_ID\n\t\t\t\t\t\tAND b_iblock_element_prop_m" . $arProp["IBLOCK_ID"] . ".VALUE_ENUM = b_iblock_property_enum.ID\n\t\t\t\t\t)";
             }
         }
     }
     $db_res = $this->GetPropertyEnum($ID);
     while ($res = $db_res->Fetch()) {
         $VALUE = $arVALUES[$res["ID"]];
         $VAL = is_array($VALUE) ? $VALUE["VALUE"] : $VALUE;
         unset($arVALUES[$res["ID"]]);
         if (strlen($VAL) <= 0) {
             unset($ar_XML_ID[$res["XML_ID"]]);
             $strSql = "\n\t\t\t\t\tDELETE FROM b_iblock_property_enum\n\t\t\t\t\tWHERE ID=" . $res["ID"] . "\n\t\t\t\t\t" . $sqlWhere . "\n\t\t\t\t";
             $DB->Query($strSql);
         } else {
             $DEF = "";
             $SORT = 0;
             $XML_ID = "";
             if (is_array($VALUE)) {
                 if (array_key_exists("DEF", $VALUE)) {
                     $DEF = $VALUE["DEF"] == "Y" ? "Y" : "N";
                 }
                 if (array_key_exists("SORT", $VALUE)) {
                     $SORT = intval($VALUE["SORT"]);
                 }
                 if ($SORT < 0) {
                     $SORT = 0;
                 }
                 if (array_key_exists("XML_ID", $VALUE) && strlen($VALUE["XML_ID"])) {
                     $XML_ID = substr($VALUE["XML_ID"], 0, 200);
                 } elseif (array_key_exists("EXTERNAL_ID", $VALUE) && strlen($VALUE["EXTERNAL_ID"])) {
                     $XML_ID = substr($VALUE["EXTERNAL_ID"], 0, 200);
                 }
             }
             if ($XML_ID) {
                 unset($ar_XML_ID[$res["XML_ID"]]);
                 if (array_key_exists($XML_ID, $ar_XML_ID)) {
//.........这里部分代码省略.........
开发者ID:andy-profi,项目名称:bxApiDocs,代码行数:101,代码来源:iblockproperty.php


注:本文中的CIBlockPropertyEnum::DeleteByPropertyID方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。