public function transformTags($aOldTags, $aNewTags, $bSaveOldTags = false, $sOperation = false)
 {
     $aElements = $this->getMaterialsByTags($aOldTags);
     $mResult = array('iTotalElements' => count($aElements), 'iProcessedElements' => 0, 'aErrorElementID' => array());
     if (!empty($aElements)) {
         $oElement = new CIBlockElement();
         foreach ($aElements as $aElement) {
             $aTags = explode(',', $aElement['TAGS']);
             $aNewTags = array_map('trim', array_unique(array_merge($aTags, $aNewTags)));
             if (!$bSaveOldTags) {
                 foreach ($aNewTags as $iKey => &$sTag) {
                     $sTag = trim($sTag);
                     if (in_array($sTag, $aOldTags)) {
                         unset($aNewTags[$iKey]);
                     }
                 }
             }
             //var_dump($aElement['TAGS'],implode( ', ', $aNewTags ) );
             $bResult = $oElement->Update($aElement['ID'], array('TAGS' => implode(', ', $aNewTags)));
             if ($bResult) {
                 $mResult['iProcessedElements']++;
             } else {
                 $mResult['aErrorElementID'][] = array('ID' => $aElement['ID'], 'IBLOCK_ID' => $aElement['IBLOCK_ID'], 'FORMATTED_LINK' => $this->getElementLink($aElement));
             }
         }
     }
     return $mResult;
 }
Beispiel #2
0
 function WF_Restore($ID)
 {
     $obElement = new CIBlockElement();
     $rsElement = $obElement->GetByID($ID);
     if ($arElement = $rsElement->Fetch()) {
         if (strlen($arElement["WF_PARENT_ELEMENT_ID"]) > 0) {
             $arElement["PROPERTY_VALUES"] = array();
             $rsProperties = $obElement->GetProperty($arElement["IBLOCK_ID"], $arElement["WF_PARENT_ELEMENT_ID"], "sort", "asc", array("PROPERTY_TYPE" => "F"));
             while ($arProperty = $rsProperties->Fetch()) {
                 if (!array_key_exists($arProperty["ID"], $arElement["PROPERTY_VALUES"])) {
                     $arElement["PROPERTY_VALUES"][$arProperty["ID"]] = array();
                 }
                 $arElement["PROPERTY_VALUES"][$arProperty["ID"]][$arProperty["PROPERTY_VALUE_ID"]] = array("del" => "Y");
             }
             $n = 1;
             $rsProperties = $obElement->GetProperty($arElement["IBLOCK_ID"], $arElement["ID"]);
             while ($arProperty = $rsProperties->Fetch()) {
                 if (!array_key_exists($arProperty["ID"], $arElement["PROPERTY_VALUES"])) {
                     $arElement["PROPERTY_VALUES"][$arProperty["ID"]] = array();
                 }
                 if ($arProperty["PROPERTY_TYPE"] == "F") {
                     $arElement["PROPERTY_VALUES"][$arProperty["ID"]]["n" . $n] = array("VALUE" => $arProperty["VALUE"], "DESCRIPTION" => $arProperty["DESCRIPTION"]);
                     $n++;
                 } else {
                     $arElement["PROPERTY_VALUES"][$arProperty["ID"]][$arProperty["PROPERTY_VALUE_ID"]] = array("VALUE" => $arProperty["VALUE"], "DESCRIPTION" => $arProperty["DESCRIPTION"]);
                 }
             }
             return $obElement->Update($arElement["WF_PARENT_ELEMENT_ID"], $arElement, true);
         }
     }
     return false;
 }
 /**
  * Обновляет элемент
  *
  * @param int $id
  * @param array $fields
  * @param array $properties
  *
  * @return bool
  */
 public function update($id, array $fields, array $properties = array())
 {
     if ($this->iBEGateway->Update($id, $fields)) {
         if (!empty($properties)) {
             $item = $this->find($id, array('ID', 'IBLOCK_ID'), false);
             \CIBlockElement::SetPropertyValuesEx($id, $item['IBLOCK_ID'], $properties);
         }
         return true;
     }
     return false;
 }
Beispiel #4
0
	/**
	 * [deactivatedProducts description]
	 * @param  array $arProducts
	 * @return bool
	 */
	protected function deactivatedProducts($arProducts){
		if (!CModule::IncludeModule("iblock")):
			return false;
		endif;
		$el = new CIBlockElement;
		$arLoadProductArray = Array("ACTIVE" => "N");
		foreach ($arProducts as $key => $prod) :
			if(!$el->Update($prod["ID"], $arLoadProductArray)):
				return false;
			endif;
		endforeach;
		return true;
	}
Beispiel #5
0
/**
 * Выключает прошедшие акции
 * User: Tabota Oleg (sForge.ru)
 * Date: 18.11.12 16:20
 * File name: no_active_stock.php
 */
function no_active_stock()
{
    require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
    CModule::IncludeModule("iblock");
    $sort = array("SORT" => "ASC");
    $filter = array("ACTIVE" => "Y", "IBLOCK_ID" => IB_SUB_STOCK_ID, "<DATE_ACTIVE_TO" => date("d.m.Y"));
    $select = array("ID", "IBLOCK_ID");
    $ob = CIBlockElement::GetList($sort, $filter, FALSE, FALSE, $select);
    while ($row = $ob->Fetch()) {
        $el = new CIBlockElement();
        $el->Update(intval($row['ID']), array("ACTIVE" => "N"));
    }
    return "no_active_stock();";
}
Beispiel #6
0
 /**
  * Renames inner links, and categories on wiki pages
  * alternatively you must do that manualy, after page, or catgory was renamed.
  * @param int $iBlockId (mandatory)- id of iblock witch contain page, or category.
  * @param str $oldName (mandatory)- old page or category name.
  * @param str $newName (mandatory)- new page or category name.
  * @param int $iBlockSectId (optional) - id of iBlock section witch contain page, or category.
  *			if wiki used with socnet groups, this param must be setted, otherwise all pages of all soc. groups
  *			will be changed.
  * @return int the amount of changed pages.
  */
 public function RenameLinkOnPages($iBlockId, $oldName, $newName, $iBlockSectId = false)
 {
     if (!$iBlockId || !$oldName || !$newName) {
         return false;
     }
     $arFilter["IBLOCK_ID"] = $iBlockId;
     $arFilter["CHECK_PERMISSIONS"] = "N";
     if ($iBlockSectId) {
         $arFilter["SECTION_ID"] = $iBlockSectId;
         $arFilter["INCLUDE_SUBSECTIONS"] = "Y";
     }
     $count = 0;
     $sCatName = '';
     $isCategory = CWikiUtils::IsCategoryPage($oldName, $sCatName);
     $catSearch = "[[" . GetMessage('CATEGORY_NAME') . ":" . $sCatName . "]]";
     $arPatterns = array(array("search" => "[[" . $oldName . "|" . $oldName . "]]", "pattern" => "/\\[\\[(" . preg_quote($oldName) . ")\\|(" . preg_quote($oldName) . ")\\]\\]/isU" . BX_UTF_PCRE_MODIFIER, "replacement" => "[[" . $newName . "|" . $newName . "]]"), array("search" => "[[" . $oldName . "|", "pattern" => "/\\[\\[(" . preg_quote($oldName) . ")\\|(.*)\\]\\]/isU" . BX_UTF_PCRE_MODIFIER, "replacement" => "[[" . $newName . "|\$2]]"), array("search" => "[[" . $oldName . "]]", "pattern" => "/\\[\\[" . preg_quote($oldName) . "\\]\\]/isU" . BX_UTF_PCRE_MODIFIER, "replacement" => "[[" . $newName . "]]"));
     $dbRes = CIBlockElement::GetList(array(), $arFilter, false, false, array("ID", "NAME", "DETAIL_TEXT"));
     while ($arElement = $dbRes->GetNext()) {
         $bChanged = false;
         $newText = $arElement["~DETAIL_TEXT"];
         foreach ($arPatterns as $arPattern) {
             if (strpos($newText, $arPattern["search"]) !== false) {
                 $newText = preg_replace($arPattern["pattern"], $arPattern["replacement"], $newText);
                 $bChanged = true;
             }
         }
         if ($isCategory) {
             if (strpos($newText, $catSearch) !== false) {
                 $newText = $this->RenameCategoryOnPage($newText, $sCatName, $newName);
                 $bChanged = true;
             }
         }
         if ($bChanged) {
             $this->CleanCache($arElement["ID"], $arElement["NAME"], $iBlockId);
             $this->cIB_E->Update($arElement["ID"], array("DETAIL_TEXT" => $newText), false, true);
             self::MarkPageAsUpdated($iBlockId, $iBlockSectId, $arElement["NAME"]);
             $count++;
         }
     }
     return $count;
 }
Beispiel #7
0
function EditAbsence($arFields)
{
    global $iblockID;
    if (CModule::IncludeModule('iblock')) {
        $PROP = array();
        $db_absence = CIBlockProperty::GetList(array(), array("CODE" => "ABSENCE_TYPE", "IBLOCK_ID" => $iblockID));
        if ($ar_absence = $db_absence->Fetch()) {
            $PROP[$ar_absence['ID']] = array($arFields["ABSENCE_TYPE"]);
        }
        $db_user = CIBlockProperty::GetList(array(), array("CODE" => "USER", "IBLOCK_ID" => $iblockID));
        if ($ar_user = $db_user->Fetch()) {
            $PROP[$ar_user['ID']] = array($arFields["USER_ID"]);
        }
        $arNewFields = array("NAME" => $arFields["NAME"], "PROPERTY_VALUES" => $PROP, "ACTIVE_FROM" => $arFields["ACTIVE_FROM"], "ACTIVE_TO" => $arFields["ACTIVE_TO"], "IBLOCK_ID" => $iblockID);
        $element = new CIBlockElement();
        $ID = $element->Update(intval($arFields["absence_element_id"]), $arNewFields);
    }
    if (!$ID) {
        $arErrors = preg_split("/<br>/", $element->LAST_ERROR);
        return $arErrors;
    } else {
        return $ID;
    }
}
Beispiel #8
0
function seaseon()
{
$tek_date = date("d.m"); //формат текущей даты 01.01
	$tek_day = date("d");
	$tek_month = date("m");
	//Активируем либо дезактивируем элементы по их сезонности
	
	CModule::IncludeModule("iblock");
	$arSelect = Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM","CODE","*");
	$arFilter = Array("IBLOCK_ID"=>2);
	$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
	
	while($ob = $res->GetNextElement()){

		$arProps = $ob->GetProperties();
		$arFields = $ob->GetFields();

		if(isset($arProps['season']['VALUE_XML_ID']))
		{
			$a = 0;
			foreach($arProps['season']['VALUE_XML_ID'] as $season)
			{
				$season = explode("-",$season);

				$sean_start = $season[0];
				//$sean_start_day = explode(".",$sean_start)[0];
				//$sean_start_month = explode(".",$sean_start)[1];				
				
				$sean_finish = $season[1];
				//$sean_finish_day = explode(".",$sean_finish)[0];
				//$sean_finish_month = explode(".",$sean_finish)[1];	

				if(($tek_day >= $sean_start_day && $tek_day <= $sean_finish_day) && ($tek_month >= $sean_start_month && $tek_month <= $sean_finish_month))
				{
						//echo $season;
						$el = new CIBlockElement;
						$arLoadProductArray = Array(
						  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
						  "ACTIVE"         => "Y"            // активен
						  );

						$PRODUCT_ID = $arFields['ID'];  // изменяем элемент с кодом (ID) 2
						$result = $el->Update($PRODUCT_ID, $arLoadProductArray);
						$a = 1;
				}
				else
				{
					$el = new CIBlockElement;
						$arLoadProductArray = Array(
						  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
						  "ACTIVE"         => "N"            // активен
						  );
						$PRODUCT_ID = $arFields['ID'];  // изменяем элемент с кодом (ID) 2
						$result = $el->Update($PRODUCT_ID, $arLoadProductArray);
				}
				if($a == 1) break;
			}
		}
	}
}
Beispiel #9
0
				if ($_REQUEST['action'] == 'upload') {
					// Сохраним файл
					$arrFile = $_FILES[$strNameField];
					$arrFile['MODULE_ID'] = 'iblock';

					if (isset($arrAdvert[$arrField[$strNameField]])) {
						$arrFile['old_file'] = $arrAdvert[$arrField[$strNameField]];
						$arrFile['del'] = ${$arrField[$strNameField].'_del'};
					}//\\ if
					$res = CFile::CheckImageFile($arrFile, 20971520, 4000, 4000);
					if (strlen($res)) {
						$arrResult['error'] = $res;
						$arrResult['result'] = 'fail';
					} else {
						$el = new CIBlockElement;
						$res = $el->Update($intAdvertID, array($arrField[$strNameField] => $arrFile));
						if(!$res) {
							$arrResult['error'] = $el->LAST_ERROR;
							$arrResult['result'] = 'fail';
						} else {
							$objE = CIBlockElement::GetList(array(), array('IBLOCK_ID' => $intBlockID, 'ID' => $intAdvertID, 'SECTION_ID' => $intRootSection, 'INCLUDE_SUBSECTIONS' => 'Y', 'ACTIVE' => 'Y'));
							if ($arrAdvert = $objE->GetNext()) {
								$arrPhoto = CFile::ResizeImageGet($arrAdvert[$arrField[$strNameField]], array('width' => 100, 'height' => 100), BX_RESIZE_IMAGE_EXACT, true);
								$arrResult['src'] = $arrPhoto['src'];
							}
						}//\\ if
					}//\\ if
				}//\\ if
			} elseif(isset($arrFieldProp[$strNameField])) {
				if ($_REQUEST['action'] == 'upload') {
					// Сохраним файл
Beispiel #10
0
					continue;
				}
				if ($bBizproc)
					call_user_func(array(ENTITY, "UnlockDocument"), $ID, "");
				else
					CIBlockElement::WF_UnLock($ID);
			}
			break;
		case 'clear_counter':
			if ($TYPE=="E")
			{
				if(CIBlockElementRights::UserHasRightTo($IBLOCK_ID, $ID, "element_edit"))
				{
					$obE = new CIBlockElement();
					$arFields = array('SHOW_COUNTER' => false, 'SHOW_COUNTER_START' => false);
					if(!$obE->Update($ID, $arFields, false, false))
						$lAdmin->AddGroupError(GetMessage("IBLIST_A_SAVE_ERROR", array("#ID#" => $ID, "#ERROR_MESSAGE#" => $obE->LAST_ERROR)), $TYPE.$ID);
				}
				else
				{
					$lAdmin->AddGroupError(GetMessage("IBLIST_A_UPDERR_ACCESS", array("#ID#" => $ID)), $TYPE.$ID);
				}
			}
			break;
		}
	}

	if(isset($return_url) && strlen($return_url)>0)
		LocalRedirect($return_url);
}
Beispiel #11
0
 /**
  * @param int $elementID
  * @param int $target
  * @param string $description
  * @return bool
  * @throws RequestError
  */
 public function saveToIBElement($elementID, $target = self::F_IB_IMG_DETAIL, $description = '')
 {
     if (true !== $this->_bRequestSuccess && true !== $this->_bDownloadSuccess) {
         return false;
     }
     if ($this->_ID === null) {
         $this->_ID = static::generateID();
     }
     if (!CheckDirPath(OBX_DOC_ROOT . static::DOWNLOAD_FOLDER . '/' . $this->_ID)) {
         throw new RequestError('', RequestError::E_PERM_DENIED);
     }
     $downloadFileRelPath = $this->getDownloadFilePath(false);
     if ($this->_bDownloadSuccess) {
         $arFile = \CFile::MakeFileArray($downloadFileRelPath);
     } elseif ($this->_bRequestSuccess) {
         $this->saveToFile($downloadFileRelPath);
         $this->_saveFileName = null;
         $this->_saveRelPath = null;
         $this->_savePath = null;
         $arFile = \CFile::MakeFileArray($downloadFileRelPath);
     }
     $arFile['name'] = $this->_originalName . '.' . $this->_originalExt;
     if (is_string($description) && !empty($description)) {
         $arFile['description'] = $description;
     }
     $el = new \CIBlockElement();
     $arFields = array();
     if ($target === self::F_IB_IMG_PREVIEW) {
         $arFields['PREVIEW_PICTURE'] = $arFile;
     } elseif ($target === self::F_IB_IMG_DETAIL) {
         $arFields['DETAIL_PICTURE'] = $arFile;
     } elseif ($target === self::F_IB_IMG_BOTH) {
         $arFields['PREVIEW_PICTURE'] = $arFile;
         $arFields['DETAIL_PICTURE'] = $arFile;
     }
     return $el->Update($elementID, $arFields);
 }
Beispiel #12
0
             $arError[] = array("id" => "delete", "text" => "Element was droped with error.");
         }
     } else {
         $result = array("url" => $arResult["~SECTION_LINK"]);
         $arResult["URL"] = $arResult["~SECTION_LINK"];
     }
 } else {
     $arFields = array("MODIFIED_BY" => $USER->GetID(), "IBLOCK_SECTION" => $_REQUEST["TO_SECTION_ID"], "TAGS" => $_REQUEST["TAGS"], "NAME" => $_REQUEST["TITLE"], "PREVIEW_TEXT" => $_REQUEST["DESCRIPTION"], "DETAIL_TEXT" => $_REQUEST["DESCRIPTION"], "DATE_CREATE" => $_REQUEST["DATE_CREATE"], "DETAIL_TEXT_TYPE" => "text", "PREVIEW_TEXT_TYPE" => "text");
     if ($arParams["BEHAVIOUR"] == "USER") {
         $_REQUEST["ACTIVE"] = $_REQUEST["ACTIVE"] == "Y" ? "Y" : "N";
         if ($arParams["ABS_PERMISSION"] >= "U" && $arResult["ELEMENT"]["ACTIVE"] != $_REQUEST["ACTIVE"]) {
             $arFields["ACTIVE"] = $_REQUEST["ACTIVE"];
         }
     }
     $bs = new CIBlockElement();
     $ID = $bs->Update($arParams["ELEMENT_ID"], $arFields);
     if ($ID <= 0) {
         $arError[] = array("id" => "update", "text" => $bs->LAST_ERROR);
     } else {
         $_REQUEST["PUBLIC_ELEMENT"] = $_REQUEST["PUBLIC_ELEMENT"] == "Y" ? "Y" : "N";
         $_REQUEST["APPROVE_ELEMENT"] = $_REQUEST["APPROVE_ELEMENT"] == "Y" ? "Y" : "N";
         if ($arParams["BEHAVIOUR"] == "USER") {
             if (is_set($arResult["ELEMENT"]["PROPERTIES"], "PUBLIC_ELEMENT") && $arResult["ELEMENT"]["PROPERTIES"]["PUBLIC_ELEMENT"]["VALUE"] != $_REQUEST["PUBLIC_ELEMENT"]) {
                 CIBlockElement::SetPropertyValues($arParams["ELEMENT_ID"], $arParams["IBLOCK_ID"], $_REQUEST["PUBLIC_ELEMENT"], "PUBLIC_ELEMENT");
                 if ($arParams["ABS_PERMISSION"] < "U" && $_REQUEST["PUBLIC_ELEMENT"] == "Y") {
                     CIBlockElement::SetPropertyValues($arParams["ELEMENT_ID"], $arParams["IBLOCK_ID"], 'X', "APPROVE_ELEMENT");
                 }
             }
             if ($arParams["ABS_PERMISSION"] >= "U" && is_set($arResult["ELEMENT"]["PROPERTIES"], "APPROVE_ELEMENT") && $arResult["ELEMENT"]["PROPERTIES"]["APPROVE_ELEMENT"]["VALUE"] != $_REQUEST["APPROVE_ELEMENT"]) {
                 CIBlockElement::SetPropertyValues($arParams["ELEMENT_ID"], $arParams["IBLOCK_ID"], $_REQUEST["APPROVE_ELEMENT"], "APPROVE_ELEMENT");
             }
Beispiel #13
0
/**
 * @param $id ID заказа
 * @param $val статус оплаты Y или N
 * функция после подтверждения оплаты
 * изменяет статус объявления на VIP
 */

function OnPayads($id,$val)
{
    // Если оплата Y
    if($val == 'Y')
    {
        //SendEmailPartnerByOrder($id, "SALE_ORDER_PAIDPARTNER");
        $dbBasketItems = CSaleBasket::GetList(
            array("PRICE" => "DESC"),
            array(
                "ORDER_ID" => $id
            ),
            false,
            false,
            array("ID", "NAME")
        );

        while ($arBasketItems = $dbBasketItems->Fetch())
        {

            $dbProp = CSaleBasket::GetPropsList(array("SORT" => "ASC", "ID" => "ASC"), array("BASKET_ID" => $arBasketItems["ID"]));
            if($arProp = $dbProp -> GetNext())
            {

                $dbProp = CSaleBasket::GetPropsList(array("SORT" => "ASC", "ID" => "ASC"), array("BASKET_ID" => $arBasketItems["ID"]));
                if($arProp = $dbProp -> GetNext())
                {

                    if($arProp['CODE']=='TEST_VIP'){
                        $status_true=true;
                        $ELEMENT_ID = intval($arProp['VALUE']);
                        $PROPERTY_CODE = "VIPORDERCHECK";
                        $PROPERTY_VALUE = "Y";
                        if (CModule::IncludeModule("iblock"))
                            CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, false, array($PROPERTY_CODE => $PROPERTY_VALUE));

                    }
                    if($arProp['CODE']=='TEST_ADSUP'){
                        $status_true=true;
                        $ELEMENT_ID = intval($arProp['VALUE']);
                        $PROPERTY_CODE = "ADSUP";
                        $PROPERTY_VALUE = "Y";
                        if (CModule::IncludeModule("iblock")){
                            //CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, false, array($PROPERTY_CODE => $PROPERTY_VALUE));
                            $el = new CIBlockElement;
                            $el->Update($ELEMENT_ID, Array('TIMESTAMP_X' => true,"ACTIVE_FROM"=>date("d.m.Y H:i:s")));
                        }

                    }
                }
            }
        }
        if($status_true){
            CSaleOrder::StatusOrder($id, "Y");
        }else{
            CSaleOrder::StatusOrder($id, "P");
        }


    }
}
						{
							$arFields["WF_STATUS_ID"] = $_POST["WF_STATUS_ID"];
						}
					}

					if($bBizproc)
					{
						$BP_HISTORY_NAME = $arFields["NAME"];
						if($ID <= 0)
							$arFields["BP_PUBLISHED"] = "N";
					}

					if($ID > 0)
					{
						$bCreateRecord = false;
						$res = $bs->Update($ID, $arFields, $WF=="Y", true, true);
					}
					else
					{
						$bCreateRecord = true;
						$ID = $bs->Add($arFields, $bWorkflow, true, true);
						$res = ($ID > 0);
						$PARENT_ID = $ID;

						if ($res)
						{
							if ($arShowTabs['sku'])
							{
								$arFilter = array('IBLOCK_ID' => $arMainCatalog['IBLOCK_ID'],'=PROPERTY_'.$arMainCatalog['SKU_PROPERTY_ID'] => '-'.$str_TMP_ID);
								$rsOffersItems = CIBlockElement::GetList(
									array(),
Beispiel #15
0
 public static function UpdateUFRights($files, $rights, $ufEntity = array())
 {
     static $arTasks = null;
     if (!is_array($rights) || sizeof($rights) <= 0) {
         return false;
     }
     if ($files === null || $files === false) {
         return false;
     }
     if (!is_array($files)) {
         $files = array($files);
     }
     if (sizeof($files) <= 0) {
         return false;
     }
     if (!CModule::IncludeModule('iblock') || !CModule::IncludeModule('webdav')) {
         return false;
     }
     $arFiles = array();
     foreach ($files as $id) {
         $id = intval($id);
         if (intval($id) > 0) {
             $arFiles[] = $id;
         }
     }
     if (sizeof($arFiles) <= 0) {
         return false;
     }
     if ($arTasks == null) {
         $arTasks = CWebDavIblock::GetTasks();
     }
     $arCodes = array();
     foreach ($rights as $value) {
         if (substr($value, 0, 2) === 'SG') {
             $arCodes[] = $value . '_K';
         }
         $arCodes[] = $value;
     }
     $arCodes = array_unique($arCodes);
     $i = 0;
     $arViewRights = $arEditRights = array();
     $curUserID = 'U' . $GLOBALS['USER']->GetID();
     foreach ($arCodes as $right) {
         if ($curUserID == $right) {
             // do not override owner's rights
             continue;
         }
         $key = 'n' . $i++;
         $arViewRights[$key] = array('GROUP_CODE' => $right, 'TASK_ID' => $arTasks['R']);
     }
     $ibe = new CIBlockElement();
     $dbWDFile = $ibe->GetList(array(), array('ID' => $arFiles, 'SHOW_NEW' => 'Y'), false, false, array('ID', 'NAME', 'SECTION_ID', 'IBLOCK_ID', 'WF_NEW'));
     $iblockIds = array();
     if ($dbWDFile) {
         while ($arWDFile = $dbWDFile->Fetch()) {
             $id = $arWDFile['ID'];
             if ($arWDFile['WF_NEW'] == 'Y') {
                 $ibe->Update($id, array('BP_PUBLISHED' => 'Y'));
             }
             if (CIBlock::GetArrayByID($arWDFile['IBLOCK_ID'], "RIGHTS_MODE") === "E") {
                 $ibRights = CWebDavIblock::_get_ib_rights_object('ELEMENT', $id, $arWDFile['IBLOCK_ID']);
                 $ibRights->SetRights(CWebDavTools::appendRights($ibRights, $arViewRights, $arTasks));
                 if (empty($iblockIds[$arWDFile['IBLOCK_ID']])) {
                     $iblockIds[$arWDFile['IBLOCK_ID']] = $arWDFile['IBLOCK_ID'];
                 }
             }
         }
         global $CACHE_MANAGER;
         foreach ($iblockIds as $iblockId) {
             $CACHE_MANAGER->ClearByTag('iblock_id_' . $iblockId);
         }
         unset($iblockId);
     }
 }
Beispiel #16
0
function __InTaskTaskComplete($taskCompleteId, $iblockId, $taskType, $ownerId, $arTaskStatus, $arParams)
{
    $errorMessage = "";
    $taskCompleteId = IntVal($taskCompleteId);
    if ($taskCompleteId <= 0) {
        return "";
    }
    $arTask = __InTaskGetTask($taskCompleteId, $iblockId, $taskType, $ownerId);
    if (!$arTask) {
        $errorMessage .= GetMessage("INTL_TASK_NOT_FOUND") . ".";
    }
    if (StrLen($errorMessage) <= 0) {
        if ($arTask["PROPS"]["TASKASSIGNEDTO"]["VALUE"] != $GLOBALS["USER"]->GetID()) {
            $errorMessage .= GetMessage("INTL_CAN_NOT_FINISH") . ".";
        }
    }
    if (StrLen($arResult["ErrorMessage"]) <= 0) {
        $obIB = new CIBlockElement();
        $obIB->SetPropertyValueCode($taskCompleteId, $arTask["PROPS"]["TASKSTATUS"]["ID"], $arTaskStatus["COMPLETED"]["ID"]);
        $obIB->SetPropertyValueCode($taskCompleteId, $arTask["PROPS"]["TASKCOMPLETE"]["ID"], array(100));
        $obIB->SetPropertyValueCode($taskCompleteId, $arTask["PROPS"]["TASKFINISH"]["ID"], array(Date($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME))));
        // added by sigurd
        CIntranetUtils::UpdateOWSVersion($iblockId, $taskCompleteId);
        $obIB->Update($taskCompleteId, array('TIMESTAMP_X' => Date($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME))));
        $arMessageFields = array("=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE_TYPE" => SONET_MESSAGE_SYSTEM, "FROM_USER_ID" => $GLOBALS["USER"]->GetID(), "TO_USER_ID" => $arTask["FIELDS"]["CREATED_BY"]);
        if ($arMessageFields["FROM_USER_ID"] != $arMessageFields["TO_USER_ID"]) {
            $path2view = ($GLOBALS["APPLICATION"]->IsHTTPS() ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_TASKS_TASK"], array("owner_id" => $arTask["PROPS"]["TASKASSIGNEDTO"]["VALUE"], "task_id" => $taskCompleteId, "action" => "view"));
            $arMessageFields["MESSAGE"] = str_replace(array("#URL_VIEW#", "#NAME#"), array($path2view, $arTask["FIELDS"]["NAME"]), GetMessage("INTL_FINISH_MESSAGE"));
            CSocNetMessages::Add($arMessageFields);
        }
    }
    return $errorMessage;
}
Beispiel #17
0
 function _updateRights($files, $rights, $ufEntity = array())
 {
     static $arIBlock = array();
     static $op_X = 'element_rights_edit';
     static $arTasks = null;
     if (!is_array($rights) || sizeof($rights) <= 0) {
         return false;
     }
     if ($files === null || $files === false) {
         return false;
     }
     if (!is_array($files)) {
         $files = array($files);
     }
     if (sizeof($files) <= 0) {
         return false;
     }
     if (!CModule::IncludeModule('iblock')) {
         return false;
     }
     $arFiles = array();
     foreach ($files as $id) {
         $id = intval($id);
         if (intval($id) > 0) {
             $arFiles[] = $id;
         }
     }
     if (sizeof($arFiles) <= 0) {
         return false;
     }
     $arFiles = array_unique($arFiles);
     if ($arTasks == null) {
         $arTasks = CWebDavIblock::GetTasks();
     }
     $i = 0;
     $arViewRights = $arEditRights = array();
     $curUserID = 'U' . $GLOBALS['USER']->GetID();
     foreach ($rights as $right) {
         if ($curUserID == $right) {
             // do not override owner's rights
             continue;
         }
         $key = 'n' . $i++;
         $arViewRights[$key] = array('GROUP_CODE' => $right, 'TASK_ID' => $arTasks['R']);
         $arEditRights[$key] = array('GROUP_CODE' => $right, 'TASK_ID' => $arTasks['W']);
     }
     $ibe = new CIBlockElement();
     $dbWDFile = $ibe->GetList(array(), array('ID' => $arFiles, 'SHOW_NEW' => 'Y'), false, false, array('ID', 'NAME', 'SECTION_ID', 'IBLOCK_ID', 'WF_NEW'));
     $iblockIds = array();
     if ($dbWDFile) {
         if (!empty($ufEntity['ENTITY_VALUE_ID'])) {
             //hack you
             CIBlockWebdavSocnet::storeFileIdsByComment($ufEntity['ENTITY_VALUE_ID'], $arFiles);
         }
         while ($arWDFile = $dbWDFile->Fetch()) {
             $id = $arWDFile['ID'];
             if ($arWDFile['WF_NEW'] == 'Y') {
                 $ibe->Update($id, array('BP_PUBLISHED' => 'Y'));
             }
             if (CIBlock::GetArrayByID($arWDFile['IBLOCK_ID'], "RIGHTS_MODE") === "E") {
                 $dropped = false;
                 $ibRights = CWebDavIblock::_get_ib_rights_object('ELEMENT', $id, $arWDFile['IBLOCK_ID']);
                 // change rights on comment files if they are 'attached to the post'
                 $dropped = static::_isDropped($arWDFile['IBLOCK_ID'], $arWDFile['IBLOCK_SECTION_ID']);
                 $canEditFiles = static::isAllowEditAttachedFiles($ufEntity);
                 if ($dropped || $ibRights->UserHasRightTo($arWDFile['IBLOCK_ID'], $id, 'element_edit')) {
                     $ibRights->SetRights(static::appendRights($ibRights, $canEditFiles ? $arEditRights : $arViewRights, $arTasks));
                 } else {
                     $ibRights->SetRights(static::appendRights($ibRights, $arViewRights, $arTasks));
                 }
                 if (empty($iblockIds[$arWDFile['IBLOCK_ID']])) {
                     $iblockIds[$arWDFile['IBLOCK_ID']] = $arWDFile['IBLOCK_ID'];
                 }
             }
         }
         global $CACHE_MANAGER;
         foreach ($iblockIds as $iblockId) {
             $CACHE_MANAGER->ClearByTag('iblock_id_' . $iblockId);
         }
         unset($iblockId);
     }
 }
Beispiel #18
0
 protected function _Sync($arService, $row, &$arQueue)
 {
     $IBLOCK_ID = $arService['IBLOCK_ID'];
     if (!is_array($arQueue)) {
         $arQueue = array();
     }
     $arFields = array('IBLOCK_ID' => $IBLOCK_ID, 'XML_ID' => $row['UniqueId']);
     $arProperties = array();
     foreach ($arService['FIELDS'] as $fld) {
         $arValue = self::_SyncGetValueByType(array('FIELD' => $fld, 'VALUE' => $row[$fld['SP_FIELD']], 'ROW' => $row, 'SP_LIST_ID' => $arService['SP_LIST_ID']), $arQueue);
         if (null !== $arValue['VALUE']) {
             if ($arValue['PROPERTY']) {
                 $arProperties[$arValue['PROPERTY']] = $arValue['VALUE'];
             } else {
                 $arFields[$arValue['FIELD']] = $arValue['VALUE'];
             }
         }
     }
     $ib = new CIBlockElement();
     $dbRes = CIBlockElement::GetList(array('id' => 'asc'), array('IBLOCK_ID' => $IBLOCK_ID, 'XML_ID' => $arFields['XML_ID'], "CHECK_PERMISSIONS" => "N"), false, false, array('ID'));
     CIntranetSharepoint::$bUpdateInProgress = true;
     $bVersionConflict = false;
     if ($arRes = $dbRes->Fetch()) {
         $bNew = false;
         if (false && $arService['PRIORITY'] == 'B') {
             if ($version = CIntranetSharepointLog::ItemUpdated($IBLOCK_ID, $arRes['ID'])) {
                 if ($row['owshiddenversion'] > $version) {
                     $bVersionConflict = true;
                     // we won't allow changes from SP until pushing our changes onto it.
                     $ID = false;
                 }
             }
         }
         $arProperties['OWSHIDDENVERSION'] = intval($row['owshiddenversion']);
         if (!$bVersionConflict) {
             $ib->Update($ID = $arRes['ID'], $arFields);
             CIntranetSharepointLog::ItemUpdatedClear($IBLOCK_ID, $ID);
         }
     } else {
         $bNew = true;
         $ID = $ib->Add($arFields);
     }
     CIntranetSharepoint::$bUpdateInProgress = false;
     if (!$ID) {
         if (!$bVersionConflict) {
             $GLOBALS['APPLICATION']->ThrowException($ib->LAST_ERROR);
         }
     } else {
         if (count($arProperties) > 0) {
             CIBlockElement::SetPropertyValuesEx($ID, $IBLOCK_ID, $arProperties, $bNew ? array('NewElement' => true) : array());
         }
     }
     return $ID;
 }
Beispiel #19
0
        $el = new CIBlockElement();
        $PROP = array();
        $PROP["PHONE"] = trim(strip_tags($_POST['CLUB']['PHONE']));
        $PROP["ADDRESS"] = trim(strip_tags($_POST['CLUB']['ADDRESS']));
        $PROP["METRO"] = trim(strip_tags($_POST['CLUB']['METRO']));
        $PROP["SITE"] = trim(strip_tags($_POST['CLUB']['SITE']));
        $PROP["PRICE_COCKTAIL"] = trim($_POST['CLUB']['PRICE_COCKTAIL']);
        $PROP["TIME_WORKING"] = trim($_POST['CLUB']['TIME_WORKING']);
        //            "PROPERTY_TYPE_FACILITY"=>trim($_POST['CLUB']['TYPE_FACILITY']),
        //            "PROPERTY_MUSIC"=>trim($_POST['CLUB']['MUSIC']),
        //            "PROPERTY_FACE_CONTROL"=>trim($_POST['CLUB']['FACE_CONTROL']),
        //            "PROPERTY_DRESS_CODE"=>trim($_POST['CLUB']['DRESS_CODE']),
        //            "PROPERTY_EMAIL_MANAGER"=>trim($_POST['CLUB']['EMAIL_MANAGER']),
        //            "PROPERTY_AVERAGE_TICKET"=>trim($_POST['CLUB']['AVERAGE_TICKET']),
        $arLoadProductArray = array("MODIFIED_BY" => $USER->GetID(), "NAME" => trim(strip_tags($_POST['CLUB']['NAME'])), "DETAIL_TEXT" => trim($_POST['CLUB']['DETAIL_TEXT']), "PROPERTY_VALUES" => $PROP);
        $res = $el->Update($clubID, $arLoadProductArray);
    }
}
$arField = $Club->getInfo(array("arSelect" => array("ID", "PROPERTY_PLAN", "NAME", "PREVIEW_PICTURE", "DETAIL_TEXT", "PROPERTY_PHONE", "PROPERTY_ADDRESS", "PROPERTY_METRO", "PROPERTY_SITE", "PROPERTY_PRICE_COCKTAIL", "PROPERTY_TYPE_FACILITY", "PROPERTY_MUSIC", "PROPERTY_FACE_CONTROL", "PROPERTY_DRESS_CODE", "PROPERTY_TIME_WORKING", "PROPERTY_EMAIL_MANAGER", "PROPERTY_AVERAGE_TICKET"), "arFilter" => array()), true);
$arFile = CFile::GetFileArray($arField["PREVIEW_PICTURE"]);
$arField["PREVIEW_PICTURE"] = $arFile["SRC"];
$obTableList = $Club->getResTableList(array("arSelect" => array("ID", "NAME", "ACTIVE", "PROPERTY_PRICE_GROUP", "PREVIEW_PICTURE", "PROPERTY_COUNT", "PROPERTY_PRICE_GROUP"), "arFilter" => array("ACTIVE" => "Y")));
$arTableList = array();
while ($ob = $obTableList->Fetch()) {
    $arFile = CFile::GetFileArray($ob["PREVIEW_PICTURE"]);
    $ob["PREVIEW_PICTURE"] = empty($arFile["SRC"]) ? "/img/160x120.gif" : $arFile["SRC"];
    $arTableList[] = $ob;
}
$PriceGroupList = $Club->getPriceGroupList(array("arSelect" => array("ID", "ACTIVE", "PROPERTY_PRICE", "PREVIEW_CLUB")));
while ($ob = $PriceGroupList->Fetch()) {
    $arGroupPrice[$ob["ID"]] = $ob["PROPERTY_PRICE_VALUE"];
Beispiel #20
0
         }
         $templates = array_merge(\CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType($documentType, CBPDocumentEventType::Create), \CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType($documentType, CBPDocumentEventType::Edit));
         $error = false;
         foreach ($templates as $template) {
             if (!CBPWorkflowTemplateLoader::isConstantsTuned($template["ID"]) && !$error) {
                 $error = true;
                 $strError .= GetMessage('CC_BLEE_IS_CONSTANTS_TUNED') . "<br />";
                 $arResult["isConstantsTuned"] = true;
             }
         }
     }
 }
 if (!$strError) {
     $obElement = new CIBlockElement();
     if ($arResult["ELEMENT_ID"]) {
         $res = $obElement->Update($arResult["ELEMENT_ID"], $arElement, false, true, true);
         if (!$res) {
             $strError = $obElement->LAST_ERROR;
         }
     } else {
         $res = $obElement->Add($arElement, false, true, true);
         if ($res) {
             $arResult["ELEMENT_ID"] = $res;
         } else {
             $strError = $obElement->LAST_ERROR;
         }
     }
 }
 if ($bBizproc) {
     if (!$strError) {
         /* Find the new or modified field. */
Beispiel #21
0
 function DeactivateElement($action, $start_time, $interval)
 {
     $counter = array("DEL" => 0, "DEA" => 0, "NON" => 0);
     if (array_key_exists("bUpdateOnly", $this->next_step) && $this->next_step["bUpdateOnly"]) {
         return $counter;
     }
     if ($action != "D" && $action != "A") {
         return $counter;
     }
     $bDelete = $action == "D";
     //This will protect us from deactivating when next_step is lost
     $IBLOCK_ID = intval($this->next_step["IBLOCK_ID"]);
     if ($IBLOCK_ID < 1) {
         return $counter;
     }
     $arFilter = array(">ID" => $this->next_step["LAST_ID"], "IBLOCK_ID" => $IBLOCK_ID);
     if (!$bDelete) {
         $arFilter["ACTIVE"] = "Y";
     }
     $obElement = new CIBlockElement();
     $rsElement = $obElement->GetList(array("ID" => "asc"), $arFilter, false, false, array("ID", "ACTIVE"));
     while ($arElement = $rsElement->Fetch()) {
         $rs = $this->_xml_file->GetList(array(), array("PARENT_ID+0" => 0, "LEFT_MARGIN" => $arElement["ID"]), array("ID"));
         $ar = $rs->Fetch();
         if (!$ar) {
             if ($bDelete) {
                 $obElement->Delete($arElement["ID"]);
                 $counter["DEL"]++;
             } else {
                 $obElement->Update($arElement["ID"], array("ACTIVE" => "N"));
                 $counter["DEA"]++;
             }
         } else {
             $counter["NON"]++;
         }
         $this->next_step["LAST_ID"] = $arElement["ID"];
         if ($interval > 0 && time() - $start_time > $interval) {
             break;
         }
     }
     return $counter;
 }
Beispiel #22
0
         $bFieldProps[$prop_id] = true;
     }
     $dbPropV = CIBlockElement::GetProperty($arParams["IBLOCK_ID"], $arParams["ID"], "sort", "asc", array("ACTIVE" => "Y"));
     while ($arPropV = $dbPropV->Fetch()) {
         if (!array_key_exists($arPropV["ID"], $bFieldProps) && $arPropV["PROPERTY_TYPE"] != "F") {
             if ($arPropV["MULTIPLE"] == "Y") {
                 if (!array_key_exists($arPropV["ID"], $arUpdateValues["PROPERTY_VALUES"])) {
                     $arUpdateValues["PROPERTY_VALUES"][$arPropV["ID"]] = array();
                 }
                 $arUpdateValues["PROPERTY_VALUES"][$arPropV["ID"]][$arPropV["PROPERTY_VALUE_ID"]] = array("VALUE" => $arPropV["VALUE"], "DESCRIPTION" => $arPropV["DESCRIPTION"]);
             } else {
                 $arUpdateValues["PROPERTY_VALUES"][$arPropV["ID"]] = array("VALUE" => $arPropV["VALUE"], "DESCRIPTION" => $arPropV["DESCRIPTION"]);
             }
         }
     }
     if (!($res = $oElement->Update($arParams["ID"], $arUpdateValues, $bWorkflowIncluded, true, $arParams["RESIZE_IMAGES"]))) {
         $arResult["ERRORS"][] = $oElement->LAST_ERROR;
     }
 } else {
     $arUpdateValues["IBLOCK_ID"] = $arParams["IBLOCK_ID"];
     // set activity start date for new element to current date. Change it, if ya want ;-)
     if (strlen($arUpdateValues["DATE_ACTIVE_FROM"]) <= 0) {
         $arUpdateValues["DATE_ACTIVE_FROM"] = ConvertTimeStamp(false, "FULL");
     }
     $sAction = "ADD";
     if (!($arParams["ID"] = $oElement->Add($arUpdateValues, $bWorkflowIncluded, true, $arParams["RESIZE_IMAGES"]))) {
         $arResult["ERRORS"][] = $oElement->LAST_ERROR;
     } else {
         if ($arParams["SEND_EMAIL"] == "Y") {
             if (!empty($arUpdateValues["IBLOCK_SECTION"]["0"])) {
                 $SECTION_ID = $arUpdateValues["IBLOCK_SECTION"]["0"];
Beispiel #23
0
 public function UpdateDocument($documentId, $arFields)
 {
     $documentId = intval($documentId);
     if ($documentId <= 0) {
         throw new CBPArgumentNullException("documentId");
     }
     CIBlockElement::WF_CleanUpHistoryCopies($documentId, 0);
     $arFieldsPropertyValues = array();
     $dbResult = CIBlockElement::GetList(array(), array("ID" => $documentId, "SHOW_NEW" => "Y"), false, false, array("ID", "IBLOCK_ID"));
     $arResult = $dbResult->Fetch();
     if (!$arResult) {
         throw new Exception("Element is not found");
     }
     $arDocumentFields = self::GetDocumentFields("type_" . $arResult["IBLOCK_ID"]);
     $arKeys = array_keys($arFields);
     foreach ($arKeys as $key) {
         if (!array_key_exists($key, $arDocumentFields)) {
             continue;
         }
         if ($arDocumentFields[$key]["Multiple"] && is_string($arFields[$key])) {
             $arFieldsTmp = explode(",", $arFields[$key]);
             $arFields[$key] = array();
             foreach ($arFieldsTmp as $value) {
                 $arFields[$key][] = trim($value);
             }
         }
         $arFields[$key] = is_array($arFields[$key]) && !CBPHelper::IsAssociativeArray($arFields[$key]) ? $arFields[$key] : array($arFields[$key]);
         if ($arDocumentFields[$key]["Type"] == "S:UserID") {
             $ar = array();
             foreach ($arFields[$key] as $v1) {
                 if (substr($v1, 0, strlen("user_")) == "user_") {
                     $ar[] = substr($v1, strlen("user_"));
                 } else {
                     $a1 = self::GetUsersFromUserGroup($v1, $documentId);
                     foreach ($a1 as $a11) {
                         $ar[] = $a11;
                     }
                 }
             }
             $arFields[$key] = $ar;
         } elseif ($arDocumentFields[$key]["Type"] == "L") {
             $realKey = substr($key, 0, strlen("PROPERTY_")) == "PROPERTY_" ? substr($key, strlen("PROPERTY_")) : $key;
             $arV = array();
             $db = CIBlockProperty::GetPropertyEnum($realKey, false, array("IBLOCK_ID" => $arResult["IBLOCK_ID"]));
             while ($ar = $db->GetNext()) {
                 $arV[$ar["XML_ID"]] = $ar["ID"];
             }
             foreach ($arFields[$key] as &$value) {
                 if (array_key_exists($value, $arV)) {
                     $value = $arV[$value];
                 }
             }
         } elseif ($arDocumentFields[$key]["Type"] == "F") {
             foreach ($arFields[$key] as &$value) {
                 $value = CFile::MakeFileArray($value);
             }
         } elseif ($arDocumentFields[$key]["Type"] == "S:HTML") {
             foreach ($arFields[$key] as &$value) {
                 $value = array("VALUE" => $value);
             }
         }
         if (!$arDocumentFields[$key]["Multiple"] && is_array($arFields[$key])) {
             if (count($arFields[$key]) > 0) {
                 $a = array_values($arFields[$key]);
                 $arFields[$key] = $a[0];
             } else {
                 $arFields[$key] = null;
             }
         }
         if (substr($key, 0, strlen("PROPERTY_")) == "PROPERTY_") {
             $realKey = substr($key, strlen("PROPERTY_"));
             $arFieldsPropertyValues[$realKey] = is_array($arFields[$key]) && !CBPHelper::IsAssociativeArray($arFields[$key]) ? $arFields[$key] : array($arFields[$key]);
             unset($arFields[$key]);
         }
     }
     $iblockElement = new CIBlockElement();
     if (count($arFieldsPropertyValues) > 0) {
         $iblockElement->SetPropertyValuesEx($documentId, $arResult["IBLOCK_ID"], $arFieldsPropertyValues);
     }
     if (count($arFields) > 0) {
         $res = $iblockElement->Update($documentId, $arFields, false, true, true);
         if (!$res) {
             throw new Exception($iblockElement->LAST_ERROR);
         }
     }
 }
Beispiel #24
0
         $arFields = array("ACTIVE" => $_REQUEST['action'] == "activate" ? "Y" : "N");
         if (!$ob->Update($subID, $arFields, true)) {
             $lAdmin->AddGroupError(GetMessage("IBEL_A_UPDERR") . $ob->LAST_ERROR, $subID);
         }
     } else {
         $lAdmin->AddGroupError(GetMessage("IBEL_A_UPDERR3") . " (ID:" . $subID . ")", $subID);
     }
     break;
 case "wf_status":
     if ($boolSubWorkFlow) {
         $new_status = intval($_REQUEST["wf_status_id"]);
         if ($new_status > 0) {
             if (CIBlockElement::WF_GetStatusPermission($new_status) > 0 || CIBlockElementRights::UserHasRightTo($intSubIBlockID, $subID, "element_edit_any_wf_status")) {
                 if ($arRes["WF_STATUS_ID"] != $new_status) {
                     $obE = new CIBlockElement();
                     $res = $obE->Update($subID, array("WF_STATUS_ID" => $new_status, "MODIFIED_BY" => $USER->GetID()), true);
                     if (!$res) {
                         $lAdmin->AddGroupError(GetMessage("IBEL_A_SAVE_ERROR", array("#ID#" => $subID, "#ERROR_TEXT#" => $obE->LAST_ERROR)), $subID);
                     }
                 }
             } else {
                 $lAdmin->AddGroupError(GetMessage("IBEL_A_UPDERR3") . " (ID:" . $subID . ")", $subID);
             }
         }
     }
     break;
 case "lock":
     if ($bWorkFlow && !CIBlockElementRights::UserHasRightTo($intSubIBlockID, $subID, "element_edit")) {
         $lAdmin->AddGroupError(GetMessage("IBEL_A_UPDERR3") . " (ID:" . $subID . ")", $subID);
     }
     CIBlockElement::WF_Lock($subID);
Beispiel #25
0
 /**
  * ћетод восстанавливает указанный документ из массива. ћассив создаетс¤ методом RecoverDocumentFromHistory.
  *
  * @param string $documentId - код документа.
  * @param array $arDocument - массив.
  */
 public function RecoverDocumentFromHistory($documentId, $arDocument)
 {
     $documentId = intval($documentId);
     if ($documentId <= 0) {
         throw new CBPArgumentNullException("documentId");
     }
     $arFields = $arDocument["FIELDS"];
     if (strlen($arFields["PREVIEW_PICTURE"]) > 0) {
         $arFields["PREVIEW_PICTURE"] = CFile::MakeFileArray($arFields["PREVIEW_PICTURE"]);
     }
     if (strlen($arFields["DETAIL_PICTURE"]) > 0) {
         $arFields["DETAIL_PICTURE"] = CFile::MakeFileArray($arFields["DETAIL_PICTURE"]);
     }
     $arFields["PROPERTY_VALUES"] = array();
     $dbProperties = CIBlockProperty::GetList(array("sort" => "asc", "name" => "asc"), array("IBLOCK_ID" => $arFields["IBLOCK_ID"]));
     while ($arProperty = $dbProperties->Fetch()) {
         if (strlen(trim($arProperty["CODE"])) > 0) {
             $key = $arProperty["CODE"];
         } else {
             $key = $arProperty["ID"];
         }
         if (!array_key_exists($key, $arDocument["PROPERTIES"])) {
             continue;
         }
         $documentValue = $arDocument["PROPERTIES"][$key]["VALUE"];
         if (strlen($arProperty["USER_TYPE"]) <= 0 && $arProperty["PROPERTY_TYPE"] == "F") {
             $arFields["PROPERTY_VALUES"][$key] = array();
             //Mark files to be deleted
             $rsFiles = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $documentId, array("ID" => $arProperty["ID"], "EMPTY" => "N"));
             while ($arFile = $rsFiles->Fetch()) {
                 if ($arFile["PROPERTY_VALUE_ID"] > 0) {
                     $arFields["PROPERTY_VALUES"][$key][$arFile["PROPERTY_VALUE_ID"]] = array("VALUE" => array("del" => "Y"), "DESCRIPTION" => "");
                 }
             }
             //Restore from history
             $io = CBXVirtualIo::GetInstance();
             if (is_array($documentValue)) {
                 $n = 0;
                 foreach ($documentValue as $i => $v) {
                     if (strlen($v) > 0) {
                         $arFields["PROPERTY_VALUES"][$key]["n" . $n++] = array("VALUE" => CFile::MakeFileArray($io->GetPhysicalName($v)), "DESCRIPTION" => $arDocument["PROPERTIES"][$key]["DESCRIPTION"][$i]);
                     }
                 }
             } else {
                 if (strlen($documentValue) > 0) {
                     $arFields["PROPERTY_VALUES"][$key]["n0"] = array("VALUE" => CFile::MakeFileArray($io->GetPhysicalName($documentValue)), "DESCRIPTION" => $arDocument["PROPERTIES"][$key]["DESCRIPTION"]);
                 }
             }
         } else {
             if (is_array($documentValue)) {
                 $n = 0;
                 foreach ($documentValue as $i => $v) {
                     if (strlen($v) > 0) {
                         $arFields["PROPERTY_VALUES"][$key]["n" . $n++] = array("VALUE" => $v, "DESCRIPTION" => $arDocument["PROPERTIES"][$key]["DESCRIPTION"][$i]);
                     }
                 }
             } else {
                 if (strlen($documentValue) > 0) {
                     $arFields["PROPERTY_VALUES"][$key]["n0"] = array("VALUE" => $documentValue, "DESCRIPTION" => $arDocument["PROPERTIES"][$key]["DESCRIPTION"]);
                 }
             }
         }
     }
     $iblockElement = new CIBlockElement();
     $res = $iblockElement->Update($documentId, $arFields);
     if (intVal($arFields["WF_STATUS_ID"]) > 1 && intVal($arFields["WF_PARENT_ELEMENT_ID"]) <= 0) {
         self::UnpublishDocument($documentId);
     }
     if (!$res) {
         throw new Exception($iblockElement->LAST_ERROR);
     }
     return true;
 }
Beispiel #26
0
        if (empty($arPost["ADDRESS"])) {
            $result['errors']['USER[PASSPORT][ADDRESS]'] = "Заполните поле.";
        }
        if (count($result['errors']) == 0) {
            $arrFilter = array("IBLOCK_ID" => PASSPORT_IB, "ACTIVE" => "Y", "PROPERTY_USER_ID" => $USER->GetID());
            $arSelect = array("ID");
            $rsRes = CIBlockElement::GetList($arOrder, $arrFilter, false, false, $arSelect);
            $arPassport = $rsRes->GetNext();
            $el = new CIBlockElement();
            $PROP = array();
            $PROP["USER_ID"] = $USER->GetID();
            $PROP["SERIA_NUMBER"] = $arPost["SERIA"] . " " . $arPost["NUMBER"];
            $PROP["WHEN_ISSUED"] = $arPost["WHEN_ISSUED"];
            $PROP["CODE_DIVISION"] = $arPost["CODE_DIVISION"];
            $arLoadProductArray = array("IBLOCK_SECTION_ID" => false, "IBLOCK_ID" => PASSPORT_IB, "PROPERTY_VALUES" => $PROP, "NAME" => "Паспорт №" . $USER->GetID(), "ACTIVE" => "Y", "PREVIEW_TEXT" => $arPost["WHO_ISSUED"], "DETAIL_TEXT" => $arPost["ADDRESS"]);
            if (isset($arPassport["ID"])) {
                $el->Update($arPassport["ID"], $arLoadProductArray);
            } else {
                $el->Add($arLoadProductArray);
            }
            $result['status'] = true;
            $result['message'] = "<font style='color:green'>Данные успешно изменены.</font>";
        }
    }
    if ($action == "avatar-upload") {
        require 'UploadHandler.php';
        $upload_handler = new UploadHandler();
    }
}
exit(json_encode($result));
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";
Beispiel #27
0
         $arLoadProductArray["PREVIEW_PICTURE"]["old_file"] = $arr["PREVIEW_PICTURE"];
     }
     if (isset($arLoadProductArray["DETAIL_PICTURE"]) && intval($arr["DETAIL_PICTURE"]) > 0) {
         $arLoadProductArray["DETAIL_PICTURE"]["old_file"] = $arr["DETAIL_PICTURE"];
     }
     if ($bThereIsGroups) {
         $LAST_GROUP_CODE_tmp = $LAST_GROUP_CODE > 0 ? $LAST_GROUP_CODE : false;
         if (!isset($arProductGroups[$PRODUCT_ID])) {
             $arProductGroups[$PRODUCT_ID] = array();
         }
         if (!in_array($LAST_GROUP_CODE_tmp, $arProductGroups[$PRODUCT_ID])) {
             $arProductGroups[$PRODUCT_ID][] = $LAST_GROUP_CODE_tmp;
         }
         $arLoadProductArray["IBLOCK_SECTION"] = $arProductGroups[$PRODUCT_ID];
     }
     $res = $el->Update($PRODUCT_ID, $arLoadProductArray, $bWorkflow, true, 'Y' === $IMAGE_RESIZE);
 } else {
     if ($bThereIsGroups) {
         $arLoadProductArray["IBLOCK_SECTION"] = $LAST_GROUP_CODE > 0 ? $LAST_GROUP_CODE : false;
     }
     if ($arLoadProductArray["ACTIVE"] != "N") {
         $arLoadProductArray["ACTIVE"] = "Y";
     }
     $PRODUCT_ID = $el->Add($arLoadProductArray, $bWorkflow, true, 'Y' === $IMAGE_RESIZE);
     if ($bThereIsGroups) {
         if (!isset($arProductGroups[$PRODUCT_ID])) {
             $arProductGroups[$PRODUCT_ID] = array();
         }
         $arProductGroups[$PRODUCT_ID][] = $LAST_GROUP_CODE > 0 ? $LAST_GROUP_CODE : false;
     }
     $res = $PRODUCT_ID > 0;
            $office[0] = trim(str_replace("\n", ' ', str_replace("\t", ' ', $office[0])));
            $itemname = trim(str_replace("\n", '', str_replace("\t", '', $itemname)));
            $office[1] = trim(str_replace("\t", ' ', strip_tags($office[1], '<br>')));
            $office[2] = '';
            $office[3] = '';
            $office[4] = '';
            $arValues = array('IBLOCK_ID' => $iBlockTypeID, 'NAME' => $office[0], 'PREVIEW_TEXT' => $office[1], 'PREVIEW_TEXT_TYPE' => 'html', 'SORT' => $subject * 10, 'PROPERTY_VALUES' => array('SUBJECT_ID' => $subject, 'GIBDD_NAME' => $itemname));
            if ($subject) {
                $arFilter = array('PROPERTY_SUBJECT_ID' => $subject, 'IBLOCK_ID' => $iBlockTypeID);
            } else {
                $arFilter = array('NAME' => $office[0], 'IBLOCK_ID' => $iBlockTypeID);
            }
            $res = $cibe->GetList(array(), $arFilter);
            $ar = $res->Fetch();
            if ($ar['ID']) {
                $cibe->Update($ar['ID'], $arValues);
            } else {
                $cibe->Add($arValues);
                echo $cibe->LAST_ERROR;
            }
        }
    }
    echo $set[1] . ' - ok<br>';
}
/*

//echo htmlspecialchars(print_r($raw_html, 1));

echo '<pre>';

print_r($raw_html);
Beispiel #29
0
     $arFields["PREVIEW_PICTURE"] = CFile::MakeFileArray($arImg['tmp_name']);
 }
 // Detail
 if ($arRes["DETAIL_PICTURE"] > 0) {
     $arImg = CFile::MakeFileArray($arRes["DETAIL_PICTURE"]);
     CFile::ImageRotate($arImg['tmp_name'], $angle);
     $arFields["DETAIL_PICTURE"] = CFile::MakeFileArray($arImg['tmp_name']);
 }
 // Real
 if ($arRes["PROPERTY_REAL_PICTURE_VALUE"] > 0) {
     $arImg = CFile::MakeFileArray($arRes["PROPERTY_REAL_PICTURE_VALUE"]);
     CFile::ImageRotate($arImg['tmp_name'], $angle);
     CIBlockElement::SetPropertyValues($arParams["ELEMENT_ID"], $arParams["IBLOCK_ID"], array("REAL_PICTURE" => CFile::MakeFileArray($arImg['tmp_name'])), "REAL_PICTURE");
 }
 $bs = new CIBlockElement();
 if ($res = $bs->Update($arParams["ELEMENT_ID"], $arFields)) {
     $db_res = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect);
     if ($arRes1 = $db_res->Fetch()) {
         $w = 0;
         $h = 0;
         $src = '';
         $thumb_src = '';
         if ($arRes1["PREVIEW_PICTURE"] > 0) {
             $file = CFile::GetFileArray($arRes1["PREVIEW_PICTURE"]);
             $thumb_src = $file['SRC'];
         }
         if ($arRes1["PROPERTY_REAL_PICTURE_VALUE"] > 0) {
             $file = CFile::GetFileArray($arRes1["PROPERTY_REAL_PICTURE_VALUE"]);
         } elseif ($arRes1["DETAIL_PICTURE"] > 0) {
             $file = CFile::GetFileArray($arRes1["DETAIL_PICTURE"]);
         }
Beispiel #30
0
                if ($_REQUEST["ACTION"] == "approve") {
                    CIBlockElement::SetPropertyValues($item, $arParams["IBLOCK_ID"], "Y", "APPROVE_ELEMENT");
                    CIBlockElement::SetPropertyValues($item, $arParams["IBLOCK_ID"], "Y", "PUBLIC_ELEMENT");
                } else {
                    CIBlockElement::SetPropertyValues($item, $arParams["IBLOCK_ID"], "N", "APPROVE_ELEMENT");
                }
                if ($res["ACTIVE"] != "Y") {
                    $_REQUEST["ACTION"] = "active";
                }
                PClearComponentCacheEx($arParams["IBLOCK_ID"]);
            }
            if ($_REQUEST["ACTION"] == "active" || $_REQUEST["ACTION"] == "drop") {
                if ($_REQUEST["ACTION"] == "active") {
                    $arFields = array("ACTIVE" => "Y");
                    $be = new CIBlockElement();
                    $be->Update($item, $arFields);
                } else {
                    CIBlockElement::Delete($item);
                }
                // section
                if (is_set($arSections, $res["IBLOCK_SECTION_ID"])) {
                    $res = $arSections[$res["IBLOCK_SECTION_ID"]];
                }
                PClearComponentCacheEx($arParams["IBLOCK_ID"], array(0, $res["ID"], $res["IBLOCK_SECTION_ID"]));
            }
        }
        LocalRedirect($_REQUEST["from_detail_list"]);
    }
}
$arParams["SHOW_BEST_ELEMENT"] = $arParams["SHOW_BEST_ELEMENT"] == "N" ? "N" : "Y";
$arResult["MENU_VARIABLES"] = array();