示例#1
0
	public static function DeleteByIBlock($IBLOCK_ID)
	{
		global $DB;
		$IBLOCK_ID = intval($IBLOCK_ID);
		$DB->Query("DELETE FROM b_iblock_section_property WHERE IBLOCK_ID = ".$IBLOCK_ID);
		$DB->Query("UPDATE b_iblock SET SECTION_PROPERTY = 'N' WHERE ID = ".$IBLOCK_ID);
		CIBlock::CleanCache($IBLOCK_ID);
	}
示例#2
0
function LastStep21($arIBlock)
{
    global $DB, $_SESSION, $arErrors, $arMessages, $INTERVAL;
    $DB->Query("UPDATE b_iblock_property SET VERSION=1 WHERE IBLOCK_ID = " . $arIBlock["ID"]);
    $DB->Query("UPDATE b_iblock SET VERSION=1,LAST_CONV_ELEMENT = 0 WHERE ID = " . $arIBlock["ID"]);
    CIBlock::CleanCache($arIBlock["ID"]);
    $DB->DDL("DROP TABLE b_iblock_element_prop_s" . $arIBlock["ID"]);
    $DB->DDL("DROP TABLE b_iblock_element_prop_m" . $arIBlock["ID"]);
    $DB->DDL("DROP SEQUENCE sq_b_iblock_element_prop_m" . $arIBlock["ID"], true);
    return 6;
}
示例#3
0
 /**
  * <p>Функция изменяет описание полей элементов инфоблоков. С ее помощью можно отметить поля как обязательные для заполнения, а также установить значение по умолчанию для новых элементов. <br></p> <p><b>Примечание</b>: обязательность полей будет проверена в функциях <a href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/add.php">CIBlock::Add</a> и <a href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/update.php">CIBlock::Update</a>, а значение по умолчанию будет установлено только в форме редактирования элемента в административной части сайта. <br></p>
  *
  *
  *
  *
  * @param int $ID  Код информационного блока. <br>
  *
  *
  *
  * @param array $arFields  Массив вида array("код поля" =&gt; "значение" ...), где значение это массив
  * содержащий следующие элементы: <br><ul> <li>IS_REQUIRED - признак
  * обязательности заполнения (Y|N).</li> <li>DEFAULT_VALUE - значение поля по
  * умолчанию. <br> </li> </ul>
  *
  *
  *
  * @return mixed <p>Функция ничего не возвращает.</p>
  *
  *
  * <h4>Example</h4> 
  * <pre>
  * //Как сделать поле "Символьный код" обязательным
  * if (CModule::IncludeModule('iblock'))
  * {
  * $fields = CIBlock::getFields();
  * $fields["CODE"]["IS_REQUIRED"] = "Y";
  * CIBlock::setFields($fields);
  * }
  * </pre>
  *
  *
  *
  * <h4>See Also</h4> 
  * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/iblock/fields.php#fiblockfields">Поля элемента</a> </li>
  * </ul><br>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/SetFields.php
  * @author Bitrix
  */
 public static function SetFields($ID, $arFields)
 {
     /** @global CDatabase $DB */
     global $DB;
     $ID = intval($ID);
     if ($ID > 0) {
         $arDefFields = CIBlock::GetFieldsDefaults();
         $res = $DB->Query("\n\t\t\t\tSELECT * FROM b_iblock_fields\n\t\t\t\tWHERE IBLOCK_ID = " . $ID . "\n\t\t\t");
         if (array_key_exists("PREVIEW_PICTURE", $arFields)) {
             $arDef =& $arFields["PREVIEW_PICTURE"]["DEFAULT_VALUE"];
             if (is_array($arDef)) {
                 $arDef = serialize(array("FROM_DETAIL" => $arDef["FROM_DETAIL"] === "Y" ? "Y" : "N", "SCALE" => $arDef["SCALE"] === "Y" ? "Y" : "N", "WIDTH" => intval($arDef["WIDTH"]) > 0 ? intval($arDef["WIDTH"]) : "", "HEIGHT" => intval($arDef["HEIGHT"]) > 0 ? intval($arDef["HEIGHT"]) : "", "IGNORE_ERRORS" => $arDef["IGNORE_ERRORS"] === "Y" ? "Y" : "N", "METHOD" => $arDef["METHOD"] === "resample" ? "resample" : "", "COMPRESSION" => intval($arDef["COMPRESSION"]) > 100 ? 100 : (intval($arDef["COMPRESSION"]) > 0 ? intval($arDef["COMPRESSION"]) : ""), "DELETE_WITH_DETAIL" => $arDef["DELETE_WITH_DETAIL"] === "Y" ? "Y" : "N", "UPDATE_WITH_DETAIL" => $arDef["UPDATE_WITH_DETAIL"] === "Y" ? "Y" : "N", "USE_WATERMARK_TEXT" => $arDef["USE_WATERMARK_TEXT"] === "Y" ? "Y" : "N", "WATERMARK_TEXT" => $arDef["WATERMARK_TEXT"], "WATERMARK_TEXT_FONT" => $arDef["WATERMARK_TEXT_FONT"], "WATERMARK_TEXT_COLOR" => $arDef["WATERMARK_TEXT_COLOR"], "WATERMARK_TEXT_SIZE" => intval($arDef["WATERMARK_TEXT_SIZE"]) > 0 ? intval($arDef["WATERMARK_TEXT_SIZE"]) : "", "WATERMARK_TEXT_POSITION" => $arDef["WATERMARK_TEXT_POSITION"], "USE_WATERMARK_FILE" => $arDef["USE_WATERMARK_FILE"] === "Y" ? "Y" : "N", "WATERMARK_FILE" => $arDef["WATERMARK_FILE"], "WATERMARK_FILE_ALPHA" => intval($arDef["WATERMARK_FILE_ALPHA"]) > 0 ? intval($arDef["WATERMARK_FILE_ALPHA"]) : "", "WATERMARK_FILE_POSITION" => $arDef["WATERMARK_FILE_POSITION"], "WATERMARK_FILE_ORDER" => $arDef["WATERMARK_FILE_ORDER"]));
             } else {
                 $arDef = "";
             }
         }
         if (array_key_exists("DETAIL_PICTURE", $arFields)) {
             $arDef =& $arFields["DETAIL_PICTURE"]["DEFAULT_VALUE"];
             if (is_array($arDef)) {
                 $arDef = serialize(array("SCALE" => $arDef["SCALE"] === "Y" ? "Y" : "N", "WIDTH" => intval($arDef["WIDTH"]) > 0 ? intval($arDef["WIDTH"]) : "", "HEIGHT" => intval($arDef["HEIGHT"]) > 0 ? intval($arDef["HEIGHT"]) : "", "IGNORE_ERRORS" => $arDef["IGNORE_ERRORS"] === "Y" ? "Y" : "N", "METHOD" => $arDef["METHOD"] === "resample" ? "resample" : "", "COMPRESSION" => intval($arDef["COMPRESSION"]) > 100 ? 100 : (intval($arDef["COMPRESSION"]) > 0 ? intval($arDef["COMPRESSION"]) : ""), "USE_WATERMARK_TEXT" => $arDef["USE_WATERMARK_TEXT"] === "Y" ? "Y" : "N", "WATERMARK_TEXT" => $arDef["WATERMARK_TEXT"], "WATERMARK_TEXT_FONT" => $arDef["WATERMARK_TEXT_FONT"], "WATERMARK_TEXT_COLOR" => $arDef["WATERMARK_TEXT_COLOR"], "WATERMARK_TEXT_SIZE" => intval($arDef["WATERMARK_TEXT_SIZE"]) > 0 ? intval($arDef["WATERMARK_TEXT_SIZE"]) : "", "WATERMARK_TEXT_POSITION" => $arDef["WATERMARK_TEXT_POSITION"], "USE_WATERMARK_FILE" => $arDef["USE_WATERMARK_FILE"] === "Y" ? "Y" : "N", "WATERMARK_FILE" => $arDef["WATERMARK_FILE"], "WATERMARK_FILE_ALPHA" => intval($arDef["WATERMARK_FILE_ALPHA"]) > 0 ? intval($arDef["WATERMARK_FILE_ALPHA"]) : "", "WATERMARK_FILE_POSITION" => $arDef["WATERMARK_FILE_POSITION"], "WATERMARK_FILE_ORDER" => $arDef["WATERMARK_FILE_ORDER"]));
             } else {
                 $arDef = "";
             }
         }
         if (array_key_exists("CODE", $arFields)) {
             $arDef =& $arFields["CODE"]["DEFAULT_VALUE"];
             if (is_array($arDef)) {
                 $trans_len = intval($arDef["TRANS_LEN"]);
                 if ($trans_len > 255) {
                     $trans_len = 255;
                 } elseif ($trans_len < 1) {
                     $trans_len = 100;
                 }
                 $arDef = serialize(array("UNIQUE" => $arDef["UNIQUE"] === "Y" ? "Y" : "N", "TRANSLITERATION" => $arDef["TRANSLITERATION"] === "Y" ? "Y" : "N", "TRANS_LEN" => $trans_len, "TRANS_CASE" => $arDef["TRANS_CASE"] == "U" ? "U" : ($arDef["TRANS_CASE"] == "" ? "" : "L"), "TRANS_SPACE" => substr($arDef["TRANS_SPACE"], 0, 1), "TRANS_OTHER" => substr($arDef["TRANS_OTHER"], 0, 1), "TRANS_EAT" => $arDef["TRANS_EAT"] === "N" ? "N" : "Y", "USE_GOOGLE" => $arDef["USE_GOOGLE"] === "Y" ? "Y" : "N"));
             } else {
                 $arDef = "";
             }
         }
         if (array_key_exists("SECTION_PICTURE", $arFields)) {
             $arDef =& $arFields["SECTION_PICTURE"]["DEFAULT_VALUE"];
             if (is_array($arDef)) {
                 $arDef = serialize(array("FROM_DETAIL" => $arDef["FROM_DETAIL"] === "Y" ? "Y" : "N", "SCALE" => $arDef["SCALE"] === "Y" ? "Y" : "N", "WIDTH" => intval($arDef["WIDTH"]) > 0 ? intval($arDef["WIDTH"]) : "", "HEIGHT" => intval($arDef["HEIGHT"]) > 0 ? intval($arDef["HEIGHT"]) : "", "IGNORE_ERRORS" => $arDef["IGNORE_ERRORS"] === "Y" ? "Y" : "N", "METHOD" => $arDef["METHOD"] === "resample" ? "resample" : "", "COMPRESSION" => intval($arDef["COMPRESSION"]) > 100 ? 100 : (intval($arDef["COMPRESSION"]) > 0 ? intval($arDef["COMPRESSION"]) : ""), "DELETE_WITH_DETAIL" => $arDef["DELETE_WITH_DETAIL"] === "Y" ? "Y" : "N", "UPDATE_WITH_DETAIL" => $arDef["UPDATE_WITH_DETAIL"] === "Y" ? "Y" : "N", "USE_WATERMARK_TEXT" => $arDef["USE_WATERMARK_TEXT"] === "Y" ? "Y" : "N", "WATERMARK_TEXT" => $arDef["WATERMARK_TEXT"], "WATERMARK_TEXT_FONT" => $arDef["WATERMARK_TEXT_FONT"], "WATERMARK_TEXT_COLOR" => $arDef["WATERMARK_TEXT_COLOR"], "WATERMARK_TEXT_SIZE" => intval($arDef["WATERMARK_TEXT_SIZE"]) > 0 ? intval($arDef["WATERMARK_TEXT_SIZE"]) : "", "WATERMARK_TEXT_POSITION" => $arDef["WATERMARK_TEXT_POSITION"], "USE_WATERMARK_FILE" => $arDef["USE_WATERMARK_FILE"] === "Y" ? "Y" : "N", "WATERMARK_FILE" => $arDef["WATERMARK_FILE"], "WATERMARK_FILE_ALPHA" => intval($arDef["WATERMARK_FILE_ALPHA"]) > 0 ? intval($arDef["WATERMARK_FILE_ALPHA"]) : "", "WATERMARK_FILE_POSITION" => $arDef["WATERMARK_FILE_POSITION"], "WATERMARK_FILE_ORDER" => $arDef["WATERMARK_FILE_ORDER"]));
             } else {
                 $arDef = "";
             }
         }
         if (array_key_exists("SECTION_DETAIL_PICTURE", $arFields)) {
             $arDef =& $arFields["SECTION_DETAIL_PICTURE"]["DEFAULT_VALUE"];
             if (is_array($arDef)) {
                 $arDef = serialize(array("SCALE" => $arDef["SCALE"] === "Y" ? "Y" : "N", "WIDTH" => intval($arDef["WIDTH"]) > 0 ? intval($arDef["WIDTH"]) : "", "HEIGHT" => intval($arDef["HEIGHT"]) > 0 ? intval($arDef["HEIGHT"]) : "", "IGNORE_ERRORS" => $arDef["IGNORE_ERRORS"] === "Y" ? "Y" : "N", "METHOD" => $arDef["METHOD"] === "resample" ? "resample" : "", "COMPRESSION" => intval($arDef["COMPRESSION"]) > 100 ? 100 : (intval($arDef["COMPRESSION"]) > 0 ? intval($arDef["COMPRESSION"]) : ""), "USE_WATERMARK_TEXT" => $arDef["USE_WATERMARK_TEXT"] === "Y" ? "Y" : "N", "WATERMARK_TEXT" => $arDef["WATERMARK_TEXT"], "WATERMARK_TEXT_FONT" => $arDef["WATERMARK_TEXT_FONT"], "WATERMARK_TEXT_COLOR" => $arDef["WATERMARK_TEXT_COLOR"], "WATERMARK_TEXT_SIZE" => intval($arDef["WATERMARK_TEXT_SIZE"]) > 0 ? intval($arDef["WATERMARK_TEXT_SIZE"]) : "", "WATERMARK_TEXT_POSITION" => $arDef["WATERMARK_TEXT_POSITION"], "USE_WATERMARK_FILE" => $arDef["USE_WATERMARK_FILE"] === "Y" ? "Y" : "N", "WATERMARK_FILE" => $arDef["WATERMARK_FILE"], "WATERMARK_FILE_ALPHA" => intval($arDef["WATERMARK_FILE_ALPHA"]) > 0 ? intval($arDef["WATERMARK_FILE_ALPHA"]) : "", "WATERMARK_FILE_POSITION" => $arDef["WATERMARK_FILE_POSITION"], "WATERMARK_FILE_ORDER" => $arDef["WATERMARK_FILE_ORDER"]));
             } else {
                 $arDef = "";
             }
         }
         if (array_key_exists("SECTION_CODE", $arFields)) {
             $arDef =& $arFields["SECTION_CODE"]["DEFAULT_VALUE"];
             if (is_array($arDef)) {
                 $trans_len = intval($arDef["TRANS_LEN"]);
                 if ($trans_len > 255) {
                     $trans_len = 255;
                 } elseif ($trans_len < 1) {
                     $trans_len = 100;
                 }
                 $arDef = serialize(array("UNIQUE" => $arDef["UNIQUE"] === "Y" ? "Y" : "N", "TRANSLITERATION" => $arDef["TRANSLITERATION"] === "Y" ? "Y" : "N", "TRANS_LEN" => $trans_len, "TRANS_CASE" => $arDef["TRANS_CASE"] == "U" ? "U" : ($arDef["TRANS_CASE"] == "" ? "" : "L"), "TRANS_SPACE" => substr($arDef["TRANS_SPACE"], 0, 1), "TRANS_OTHER" => substr($arDef["TRANS_OTHER"], 0, 1), "TRANS_EAT" => $arDef["TRANS_EAT"] === "N" ? "N" : "Y", "USE_GOOGLE" => $arDef["USE_GOOGLE"] === "Y" ? "Y" : "N"));
             } else {
                 $arDef = "";
             }
         }
         if (array_key_exists("SORT", $arFields)) {
             $arFields["SORT"]["DEFAULT_VALUE"] = intval($arFields["SORT"]["DEFAULT_VALUE"]);
         }
         while ($ar = $res->Fetch()) {
             if (array_key_exists($ar["FIELD_ID"], $arFields) && array_key_exists($ar["FIELD_ID"], $arDefFields)) {
                 if ($arDefFields[$ar["FIELD_ID"]]["IS_REQUIRED"] === false) {
                     $IS_REQUIRED = $arFields[$ar["FIELD_ID"]]["IS_REQUIRED"];
                 } else {
                     $IS_REQUIRED = $arDefFields[$ar["FIELD_ID"]]["IS_REQUIRED"];
                 }
                 $IS_REQUIRED = $IS_REQUIRED === "Y" ? "Y" : "N";
                 if ($ar["IS_REQUIRED"] !== $IS_REQUIRED || $ar["DEFAULT_VALUE"] !== $arFields[$ar["FIELD_ID"]]["DEFAULT_VALUE"]) {
                     $arUpdate = array("IS_REQUIRED" => $IS_REQUIRED, "DEFAULT_VALUE" => $arFields[$ar["FIELD_ID"]]["DEFAULT_VALUE"]);
                 } else {
                     $arUpdate = array();
                 }
                 unset($arDefFields[$ar["FIELD_ID"]]);
             } elseif (array_key_exists($ar["FIELD_ID"], $arDefFields)) {
                 $IS_REQUIRED = $arDefFields[$ar["FIELD_ID"]]["IS_REQUIRED"];
                 $IS_REQUIRED = $IS_REQUIRED === "Y" ? "Y" : "N";
                 if ($ar["IS_REQUIRED"] !== $IS_REQUIRED) {
                     $arUpdate = array("IS_REQUIRED" => $IS_REQUIRED, "DEFAULT_VALUE" => "");
                 } else {
                     $arUpdate = array();
                 }
                 unset($arDefFields[$ar["FIELD_ID"]]);
             } else {
                 $DB->Query("DELETE FROM b_iblock_fields WHERE IBLOCK_ID = " . $ID . " AND FIELD_ID = '" . $DB->ForSQL($ar["FIELD_ID"]) . "'");
                 $arUpdate = array();
             }
             $strUpdate = $DB->PrepareUpdate("b_iblock_fields", $arUpdate);
             if ($strUpdate != "") {
                 $strSql = "UPDATE b_iblock_fields SET " . $strUpdate . " WHERE IBLOCK_ID = " . $ID . " AND FIELD_ID = '" . $ar["FIELD_ID"] . "'";
                 $arBinds = array("DEFAULT_VALUE" => $arUpdate["DEFAULT_VALUE"]);
                 $DB->QueryBind($strSql, $arBinds);
             }
         }
         foreach ($arDefFields as $FIELD_ID => $arDefaults) {
             if (array_key_exists($FIELD_ID, $arFields)) {
                 if ($arDefaults["IS_REQUIRED"] === false) {
                     $IS_REQUIRED = $arFields[$FIELD_ID]["IS_REQUIRED"];
                 } else {
                     $IS_REQUIRED = $arDefaults["IS_REQUIRED"];
                 }
                 $DEFAULT_VALUE = $arFields[$FIELD_ID]["DEFAULT_VALUE"];
             } else {
                 $IS_REQUIRED = $arDefaults["IS_REQUIRED"];
                 $DEFAULT_VALUE = false;
             }
             $IS_REQUIRED = $IS_REQUIRED === "Y" ? "Y" : "N";
             $arAdd = array("ID" => 1, "IBLOCK_ID" => $ID, "FIELD_ID" => $FIELD_ID, "IS_REQUIRED" => $IS_REQUIRED, "DEFAULT_VALUE" => $DEFAULT_VALUE);
             $DB->Add("b_iblock_fields", $arAdd, array("DEFAULT_VALUE"));
         }
         CIBlock::CleanCache($ID);
     }
 }
 protected function disableIndexIblocks()
 {
     if ($this->isStepFinished(__METHOD__)) {
         return;
     }
     $this->connection->queryExecute("\n\t\t\tUPDATE b_iblock\n\t\t\t\tSET\n\t\t\t\t\tINDEX_ELEMENT = 'N',\n\t\t\t\t\tINDEX_SECTION = 'N'\n\t\t\tWHERE IBLOCK_TYPE_ID  = 'library'\n\t\t");
     $query = $this->connection->query("\n\t\t\tSELECT ID FROM b_iblock WHERE IBLOCK_TYPE_ID  = 'library'\n\t\t");
     while ($row = $query->fetch()) {
         if (!empty($row['ID'])) {
             CIBlock::CleanCache($row['ID']);
         }
     }
     $this->setStepFinished(__METHOD__);
 }