Esempio n. 1
0
 /**
  * <p>Функция изменяет параметры информационного блока с кодом <i>ID</i>. Модифицировать поля, а также отменить изменение параметров можно добавив обработчик события <a href="http://dev.1c-bitrix.ru/api_help/iblock/events/onbeforeiblockupdate.php">OnBeforeIBlockUpdate</a>. После успешного добавления инфоблока вызываются обработчики события <a href="http://dev.1c-bitrix.ru/api_help/iblock/events/onafteriblockupdate.php">OnAfterIBlockUpdate</a>.</p>
  *
  *
  *
  *
  * @param int $ID  ID изменяемого информационного блока.
  *
  *
  *
  * @param array $arFields  Массив Array("поле"=&gt;"значение", ...). Содержит значения <a
  * href="http://dev.1c-bitrix.ru/api_help/iblock/fields.php#fiblock">всех полей</a> информационного
  * блока. <br> Дополнительно в поле SITE_ID должен находиться массив
  * идентификаторов сайтов, к которым привязан изменяемый
  * информационный блок. <br> Кроме того, с помощью поля "GROUP_ID",
  * значением которого должен быть массив соответствий кодов групп
  * правам доступа, можно установить права для разных групп на доступ
  * к информационному блоку(см. <a
  * href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/index.php">CIBlock</a>::<a
  * href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/setpermission.php">SetPermission()</a>). <br> Если
  * задано поле "FIELDS", то будут выполнены настройки полей инфоблока
  * (см. <a href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/SetFields.php">CIBlock::SetFields</a>). <br>
  *
  *
  *
  * @return bool 
  *
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?<br>$arPICTURE = $_FILES["PICTURE"];<br>$ib = new CIBlock;<br>$arFields = Array(<br>  "ACTIVE" =&gt; $ACTIVE,<br>  "NAME" =&gt; $NAME,<br>  "CODE" =&gt; $CODE,<br>  "LIST_PAGE_URL" =&gt; $LIST_PAGE_URL,<br>  "DETAIL_PAGE_URL" =&gt; $DETAIL_PAGE_URL,<br>  "IBLOCK_TYPE_ID" =&gt; $type,<br>  "SITE_ID" =&gt; Array("en", "de"),<br>  "SORT" =&gt; $SORT,<br>  "PICTURE" =&gt; $arPICTURE,<br>  "DESCRIPTION" =&gt; $DESCRIPTION,<br>  "DESCRIPTION_TYPE" =&gt; $DESCRIPTION_TYPE,<br>  "GROUP_ID" =&gt; Array("2"=&gt;"D", "3"=&gt;"R")<br>  );<br>if ($ID &gt; 0)<br>  $res = $ib-&gt;Update($ID, $arFields);<br>else<br>{<br>  $ID = $ib-&gt;Add($arFields);<br>  $res = ($ID&gt;0);<br>}<br>?&gt;
  * </pre>
  *
  *
  *
  * <h4>See Also</h4> 
  * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/add.php">CIBlock::Add</a> </li> <li> <a
  * href="http://dev.1c-bitrix.ru/api_help/iblock/fields.php#fiblock">Поля информационного блока</a>
  * </li> <li> <a href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/SetFields.php">CIBlock::SetFields</a> </li>
  * <li> <a href="http://dev.1c-bitrix.ru/api_help/iblock/events/onbeforeiblockupdate.php">OnBeforeIBlockUpdate</a> </li>
  * <li> <a href="http://dev.1c-bitrix.ru/api_help/iblock/events/onafteriblockupdate.php">OnAfterIBlockUpdate</a> </li>
  * </ul><a name="examples"></a>
  *
  *
  * @link http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/update.php
  * @author Bitrix
  */
 public function Update($ID, $arFields)
 {
     /** @global CCacheManager $CACHE_MANAGER */
     global $CACHE_MANAGER;
     /** @global CDatabase $DB */
     global $DB;
     $ID = intval($ID);
     $SAVED_PICTURE = null;
     if (is_set($arFields, "EXTERNAL_ID")) {
         $arFields["XML_ID"] = $arFields["EXTERNAL_ID"];
     }
     if (is_set($arFields, "PICTURE")) {
         if (strlen($arFields["PICTURE"]["name"]) <= 0 && strlen($arFields["PICTURE"]["del"]) <= 0) {
             unset($arFields["PICTURE"]);
         } else {
             $pic_res = $DB->Query("SELECT PICTURE FROM b_iblock WHERE ID=" . $ID);
             if ($pic_res = $pic_res->Fetch()) {
                 $arFields["PICTURE"]["old_file"] = $pic_res["PICTURE"];
             }
             $arFields["PICTURE"]["MODULE_ID"] = "iblock";
         }
     }
     if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y") {
         $arFields["ACTIVE"] = "N";
     }
     if (is_set($arFields, "WORKFLOW") && $arFields["WORKFLOW"] != "N") {
         $arFields["WORKFLOW"] = "Y";
     }
     if (is_set($arFields, "BIZPROC") && $arFields["BIZPROC"] != "Y") {
         $arFields["BIZPROC"] = "N";
     }
     if (is_set($arFields, "SECTION_CHOOSER") && $arFields["SECTION_CHOOSER"] != "D" && $arFields["SECTION_CHOOSER"] != "P") {
         $arFields["SECTION_CHOOSER"] = "L";
     }
     if (is_set($arFields, "INDEX_SECTION") && $arFields["INDEX_SECTION"] != "Y") {
         $arFields["INDEX_SECTION"] = "N";
     }
     if (is_set($arFields, "INDEX_ELEMENT") && $arFields["INDEX_ELEMENT"] != "Y") {
         $arFields["INDEX_ELEMENT"] = "N";
     }
     if (is_set($arFields, "DESCRIPTION_TYPE") && $arFields["DESCRIPTION_TYPE"] != "html") {
         $arFields["DESCRIPTION_TYPE"] = "text";
     }
     if (is_set($arFields, "SITE_ID")) {
         $arFields["LID"] = $arFields["SITE_ID"];
     }
     if (is_set($arFields, "SECTION_PROPERTY")) {
         $arFields["SECTION_PROPERTY"] = "Y";
     }
     $RIGHTS_MODE = CIBlock::GetArrayByID($ID, "RIGHTS_MODE");
     if (!$this->CheckFields($arFields, $ID)) {
         $Result = false;
         $arFields["RESULT_MESSAGE"] =& $this->LAST_ERROR;
     } else {
         $arLID = array();
         $str_LID = "";
         if (is_set($arFields, "LID")) {
             if (is_array($arFields["LID"])) {
                 $arLID = $arFields["LID"];
             } else {
                 $arLID[] = $arFields["LID"];
             }
             $arFields["LID"] = false;
             $str_LID = "''";
             foreach ($arLID as $v) {
                 $arFields["LID"] = $v;
                 $str_LID .= ", '" . $DB->ForSql($v) . "'";
             }
         }
         unset($arFields["ID"]);
         unset($arFields["VERSION"]);
         if (array_key_exists("PICTURE", $arFields)) {
             $SAVED_PICTURE = $arFields["PICTURE"];
             CFile::SaveForDB($arFields, "PICTURE", "iblock");
         }
         $strUpdate = $DB->PrepareUpdate("b_iblock", $arFields, "iblock");
         if (array_key_exists("PICTURE", $arFields)) {
             $arFields["PICTURE"] = $SAVED_PICTURE;
         }
         $arBinds = array();
         if (is_set($arFields, "DESCRIPTION")) {
             $arBinds["DESCRIPTION"] = $arFields["DESCRIPTION"];
         }
         if (strlen($strUpdate) > 0) {
             $strSql = "UPDATE b_iblock SET " . $strUpdate . " WHERE ID=" . $ID;
             $DB->QueryBind($strSql, $arBinds);
         }
         $this->SetMessages($ID, $arFields);
         if (isset($arFields["FIELDS"]) && is_array($arFields["FIELDS"])) {
             $this->SetFields($ID, $arFields["FIELDS"]);
         }
         if (array_key_exists("RIGHTS_MODE", $arFields)) {
             if ($arFields["RIGHTS_MODE"] === "E" && $RIGHTS_MODE !== "E") {
                 CIBlock::SetPermission($ID, array());
             } elseif ($arFields["RIGHTS_MODE"] !== "E" && $RIGHTS_MODE === "E") {
                 $obIBlockRights = new CIBlockRights($ID);
                 $obIBlockRights->DeleteAllRights();
             }
             if ($arFields["RIGHTS_MODE"] === "E") {
                 $RIGHTS_MODE = "E";
             }
         }
         if ($RIGHTS_MODE === "E") {
             if (!array_key_exists("RIGHTS", $arFields) && array_key_exists("GROUP_ID", $arFields) && is_array($arFields["GROUP_ID"])) {
                 $obIBlockRights = new CIBlockRights($ID);
                 $obIBlockRights->SetRights($obIBlockRights->ConvertGroups($arFields["GROUP_ID"]));
             } elseif (array_key_exists("RIGHTS", $arFields) && is_array($arFields["RIGHTS"])) {
                 $obIBlockRights = new CIBlockRights($ID);
                 $obIBlockRights->SetRights($arFields["RIGHTS"]);
             }
         } else {
             if (array_key_exists("GROUP_ID", $arFields) && is_array($arFields["GROUP_ID"])) {
                 CIBlock::SetPermission($ID, $arFields["GROUP_ID"]);
             }
         }
         if (!empty($arLID)) {
             $strSql = "DELETE FROM b_iblock_site WHERE IBLOCK_ID=" . $ID;
             $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
             $strSql = "INSERT INTO b_iblock_site(IBLOCK_ID, SITE_ID) " . "SELECT " . $ID . ", LID " . "FROM b_lang " . "WHERE LID IN (" . $str_LID . ") ";
             $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
         }
         if (CModule::IncludeModule("search")) {
             $dbAfter = $DB->Query("SELECT ACTIVE FROM b_iblock WHERE ID=" . $ID);
             $arAfter = $dbAfter->Fetch();
             if ($arAfter["ACTIVE"] != "Y") {
                 CSearch::DeleteIndex("iblock", false, false, $ID);
             }
         }
         $_SESSION["SESS_RECOUNT_DB"] = "Y";
         $Result = true;
     }
     $this->CleanCache($ID);
     $arFields["ID"] = $ID;
     $arFields["RESULT"] =& $Result;
     foreach (GetModuleEvents("iblock", "OnAfterIBlockUpdate", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array(&$arFields));
     }
     if (defined("BX_COMP_MANAGED_CACHE")) {
         $CACHE_MANAGER->ClearByTag("iblock_id_" . $ID);
     }
     return $Result;
 }
Esempio n. 2
0
 function ImportIBlockFromXML($xmlFile, $iblockCode, $iblockType, $siteID, $permissions = array())
 {
     if (!CModule::IncludeModule("iblock")) {
         return false;
     }
     $rsIBlock = CIBlock::GetList(array(), array("CODE" => $iblockCode, "TYPE" => $iblockType, "SITE_ID" => $siteID));
     if ($arIBlock = $rsIBlock->Fetch()) {
         return false;
     }
     if (!is_array($siteID)) {
         $siteID = array($siteID);
     }
     require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/classes/" . strtolower($GLOBALS["DB"]->type) . "/cml2.php";
     $iblockID = ImportXMLFile($xmlFile, $iblockType, $siteID, $section_action = "N", $element_action = "N", $use_crc = false, $preview = false, $sync = false, $return_last_error = false, $return_iblock_id = true);
     //Import was not able to return iblock_id by error
     if (!is_integer($iblockID) || $iblockID <= 0) {
         //try to find iblock
         $rsIBlock = CIBlock::GetList(array(), array("CODE" => $iblockCode, "TYPE" => $iblockType, "SITE_ID" => $siteID));
         if ($arIBlock = $rsIBlock->Fetch()) {
             $iblockID = $arIBlock["ID"];
         } else {
             $iblockID = false;
         }
     }
     //Set iblock permissions
     if ($iblockID > 0) {
         if (empty($permissions)) {
             $permissions = array(1 => "X", 2 => "R");
         }
         CIBlock::SetPermission($iblockID, $permissions);
     }
     return $iblockID;
 }
Esempio n. 3
0
 function createSampleIblock($sSiteId)
 {
     include $this->sModuleInstallFullPath . "bitrixmigration.php";
     $arResult = (include $this->sModuleInstallFullPath . "import.php");
     //$sSiteId добавляется в массив в этом файле
     $bm = new Bit\Includer\BitrixMigration($this->sModuleInstallFullPath, 'bm_files/');
     $bm->uploadArray($arResult);
     COption::SetOptionString("bit.includer", "iblock_type", "bit_includer");
     COption::SetOptionString("bit.includer", "iblock_id", $iIblockId = $this->getIBlockIdByCode("bit_includer_content"));
     COption::SetOptionString("bit.includer", "demo_iblock_id", $iIblockId);
     define("FOR_ALL_USERS_GROUP_ID", 2);
     //Id групп для всех пользователей по-умолчанию
     CIBlock::SetPermission($iIblockId, array(FOR_ALL_USERS_GROUP_ID => "R"));
 }
Esempio n. 4
0
	function ImportIBlockFromXML($xmlFile, $iblockCode, $iblockType, $siteID, $permissions = Array(), $checkExists = true)
	{
		if (!CModule::IncludeModule("iblock"))
			return false;

		if($checkExists)
		{
				$rsIBlock = CIBlock::GetList(array(), array("CODE" => $iblockCode, "TYPE" => $iblockType));
				if ($arIBlock = $rsIBlock->Fetch())
					return false;
		}

		if (!is_array($siteID))
			$siteID = Array($siteID);

		require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/classes/".strtolower($GLOBALS["DB"]->type)."/cml2.php");
		ImportXMLFile($xmlFile, $iblockType, $siteID, $section_action = "N", $element_action = "N");

		$iblockID = false;
		$rsIBlock = CIBlock::GetList(array(), array("CODE" => $iblockCode, "TYPE" => $iblockType));
		if ($arIBlock = $rsIBlock->Fetch())
		{
			$iblockID = $arIBlock["ID"];

			if (empty($permissions))
				$permissions = Array(1 => "X", 2 => "R");

			CIBlock::SetPermission($iblockID, $permissions);
		}

		return $iblockID;
	}
Esempio n. 5
0
 function Update($ID, $arFields)
 {
     global $DB;
     if (is_set($arFields, "EXTERNAL_ID")) {
         $arFields["XML_ID"] = $arFields["EXTERNAL_ID"];
     }
     if (is_set($arFields, "PICTURE")) {
         if (strlen($arFields["PICTURE"]["name"]) <= 0 && strlen($arFields["PICTURE"]["del"]) <= 0) {
             unset($arFields["PICTURE"]);
         } else {
             $pic_res = $DB->Query("SELECT PICTURE FROM b_iblock WHERE ID=" . $ID);
             if ($pic_res = $pic_res->Fetch()) {
                 $arFields["PICTURE"]["old_file"] = $pic_res["PICTURE"];
             }
         }
     }
     if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y") {
         $arFields["ACTIVE"] = "N";
     }
     if (is_set($arFields, "INDEX_SECTION") && $arFields["INDEX_SECTION"] != "Y") {
         $arFields["INDEX_SECTION"] = "N";
     }
     if (is_set($arFields, "INDEX_ELEMENT") && $arFields["INDEX_ELEMENT"] != "Y") {
         $arFields["INDEX_ELEMENT"] = "N";
     }
     if (is_set($arFields, "DESCRIPTION_TYPE") && $arFields["DESCRIPTION_TYPE"] != "html") {
         $arFields["DESCRIPTION_TYPE"] = "text";
     }
     if (!$this->CheckFields(&$arFields, $ID)) {
         $Result = false;
         $arFields["RESULT_MESSAGE"] =& $this->LAST_ERROR;
     } else {
         $arLID = array();
         if (is_set($arFields, "LID")) {
             if (is_array($arFields["LID"])) {
                 $arLID = $arFields["LID"];
             } else {
                 $arLID[] = $arFields["LID"];
             }
             $arFields["LID"] = false;
             $str_LID = "''";
             foreach ($arLID as $v) {
                 $arFields["LID"] = $v;
                 $str_LID .= ", '" . $DB->ForSql($v) . "'";
             }
         }
         unset($arFields["ID"]);
         unset($arFields["VERSION"]);
         $strUpdate = $DB->PrepareUpdate("b_iblock", $arFields, "iblock");
         $arBinds = array();
         if (is_set($arFields, "DESCRIPTION")) {
             $arBinds["DESCRIPTION"] = $arFields["DESCRIPTION"];
         }
         $strSql = "UPDATE b_iblock SET " . $strUpdate . " WHERE ID=" . $ID;
         $DB->QueryBind($strSql, $arBinds);
         if (is_set($arFields, "GROUP_ID") && is_array($arFields["GROUP_ID"])) {
             CIBlock::SetPermission($ID, $arFields["GROUP_ID"]);
         }
         if (count($arLID) > 0) {
             $strSql = "DELETE FROM b_iblock_site WHERE IBLOCK_ID=" . $ID;
             $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
             $strSql = "INSERT INTO b_iblock_site(IBLOCK_ID, SITE_ID) " . "SELECT " . $ID . ", LID " . "FROM b_lang " . "WHERE LID IN (" . $str_LID . ") ";
             $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
         }
         if (CModule::IncludeModule("search")) {
             $dbafter = $DB->Query("SELECT ACTIVE, DETAIL_PAGE_URL, LID FROM b_iblock WHERE ID=" . $ID);
             $arAfter = $dbafter->Fetch();
             if ($arAfter["ACTIVE"] != "Y") {
                 CSearch::DeleteIndex("iblock", false, false, $ID);
             } else {
                 if (is_set($arFields, "GROUP_ID")) {
                     $arPerms = array();
                     $arGroupsPerm = $arFields["GROUP_ID"];
                     $arGroups = array_keys($arGroupsPerm);
                     for ($i = 0; $i < count($arGroups); $i++) {
                         if ($arGroupsPerm[$arGroups[$i]] >= "R") {
                             if ($arGroups[$i] == 2) {
                                 $arPerms = array(2);
                                 break;
                             }
                             $arPerms[] = $arGroups[$i];
                         }
                     }
                     CSearch::ChangePermission("iblock", $arPerms, false, false, $ID);
                 }
             }
         }
         $Result = true;
     }
     $arFields["ID"] = $ID;
     $arFields["RESULT"] =& $Result;
     $events = GetModuleEvents("iblock", "OnAfterIBlockUpdate");
     while ($arEvent = $events->Fetch()) {
         ExecuteModuleEvent($arEvent, &$arFields);
     }
     return $Result;
 }
Esempio n. 6
0
function DEMO_IBlock_ImportXML($file, $site_id, $xml_force = false, $workflow = false)
{
    if (strlen($file) <= 0) {
        return false;
    }
    $xml_dir = $_SERVER['DOCUMENT_ROOT'] . "/bitrix/wizards/bitrix/demo/modules/iblock/xml/" . LANGUAGE_ID;
    if (file_exists($xml_dir) && is_dir($xml_dir)) {
        if (is_file($xml_dir . "/" . $file)) {
            if (preg_match("/^(\\d\\d\\d)_([a-z]+)_(.+)_([a-z]{2})\\.xml\$/", $file, $match)) {
                $documentRoot = rtrim(str_replace(array("\\\\", "//"), array("\\", "/"), $_SERVER["DOCUMENT_ROOT"]), "\\/");
                $arFile = array("DIR" => substr($xml_dir, strlen($documentRoot)), "NAME" => $file, "TYPE" => $match[2], "XML_ID" => $match[3], "LANG" => $match[4]);
                if ($arFile["TYPE"] == "FUTURE") {
                    $arFile["TYPE"] = "xmlcatalog";
                }
                //Check if iblock exists
                $obIBlock = new CIBlock();
                $rsIBlock = $obIBlock->GetList(array(), array("XML_ID" => $arFile["XML_ID"]));
                $arIBlock = $rsIBlock->Fetch();
                if (!$arIBlock || $xml_force === true) {
                    //Create iblock type
                    DEMO_IBlock_CreateType(array($arFile["TYPE"]));
                    ImportXMLFile($arFile["DIR"] . "/" . $arFile["NAME"], $arFile["TYPE"], array($site_id), "N", "N");
                    $rsIBlock = $obIBlock->GetList(array(), array("XML_ID" => $arFile["XML_ID"]));
                    $arIBlock = $rsIBlock->Fetch();
                    if (is_array($arIBlock)) {
                        $obIBlock = new CIBlock();
                        if ($workflow === "bizproc") {
                            if (IsModuleInstalled('bizproc')) {
                                $obIBlock->Update($arIBlock["ID"], array("WORKFLOW" => "N", "BIZPROC" => "Y"));
                            } else {
                                $obIBlock->Update($arIBlock["ID"], array("WORKFLOW" => "Y", "BIZPROC" => "N"));
                            }
                        } elseif ($workflow) {
                            $obIBlock->Update($arIBlock["ID"], array("WORKFLOW" => "Y"));
                        }
                    }
                }
                if ($arIBlock["ID"]) {
                    $obIBlock = new CIBlock();
                    $obIBlock->SetPermission($arIBlock["ID"], array(1 => "X", 2 => "R"));
                }
                return $arIBlock["ID"];
            }
        }
    }
    return false;
}
Esempio n. 7
0
} else {
    $source_base = dirname(__FILE__);
    $documentRoot = rtrim(str_replace(array("\\\\", "//", "\\"), array("\\", "/", "/"), $_SERVER["DOCUMENT_ROOT"]), "\\/");
    $source_base = substr($source_base, strLen($documentRoot));
    $source_base = str_replace(array("\\", "//"), "/", "/" . $source_base . "/");
    require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/classes/" . $DBType . "/cml2.php";
    $res = ImportXMLFile($source_base . "xml/" . LANGUAGE_ID . "/photogallery.xml", "gallery", $SITE_ID);
    $db_res = CIBlock::GetList(array(), array("CODE" => "photo", "XML_ID" => "photo-gallery"));
    if ($db_res && ($res = $db_res->Fetch())) {
        $iBlockId = intVal($res["ID"]);
    }
}
if ($iBlockId <= 0) {
    return false;
}
CIBlock::SetPermission($iBlockId, array("1" => "W", "2" => "R"));
// 3. Add Forum
$arParams = array("USE_COMMENTS" => "N", "COMMENTS_TYPE" => "none", "FORUM_ID" => "", "BLOG_URL" => "", "PATH_TO_SMILE" => "");
if (CModule::IncludeModule("forum")) {
    // 3.1 Add group
    $iGroupId = 0;
    $db_res = CForumGroup::GetListEx(array(), array("LID" => LANGUAGE_ID));
    if ($db_res && ($res = $db_res->Fetch())) {
        do {
            if (GetMessage("P_FORUM_GROUP_COMMENTS") == $res["NAME"]) {
                $iGroupId = intVal($res["ID"]);
                break;
            }
        } while ($res = $db_res->Fetch());
    }
    if ($iGroupId <= 0) {
Esempio n. 8
0
                }
            }
            $res = $ib->Update($iblock_id, $arFields);
            if ($ob->e_rights) {
                $arParams['ENTITY_TYPE'] = 'IBLOCK';
                $arParams['ENTITY_ID'] = $arParams['IBLOCK_ID'] = $iblock_id;
                $arParams['ACTION'] = 'set_rights';
                $arParams['DO_NOT_REDIRECT'] = true;
                include $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/components/bitrix/webdav.iblock.rights/action.php";
            } else {
                if (is_array($_REQUEST["GROUP_ADD"]) && !empty($_REQUEST["GROUP_ADD"])) {
                    foreach ($_REQUEST["GROUP_ADD"] as $key => $group_id) {
                        $_REQUEST["GROUP"][$group_id] = $_REQUEST["GROUP_ADD_PERMISSION"][$key];
                    }
                }
                CIBlock::SetPermission($iblock_id, $_REQUEST["GROUP"]);
                WDClearComponentCache(array("webdav.element.edit", "webdav.element.hist", "webdav.element.upload", "webdav.element.view", "webdav.menu", "webdav.section.edit", "webdav.section.list"));
            }
            $popupWindow->Close($bReload = true, $_REQUEST["back_url"]);
            die;
        }
    }
}
/********************************************************************
				/Actions
********************************************************************/
//HTML output
$popupWindow->ShowTitlebar($arIBlock["NAME"]);
if (isset($strWarning) && $strWarning != "") {
    $popupWindow->ShowValidationError($strWarning);
}