public static function getJobName($id) { if (empty($id)) { return false; } $result = false; $obCache = new CPHPCache(); $dir = '/companies/names'; if ($obCache->InitCache(9999999999, md5($id), $dir)) { $result = $obCache->GetVars(); } elseif ($obCache->StartDataCache() && \Bitrix\Main\Loader::includeModule('iblock')) { if ($result = CIBlockElement::GetByID($id)->Fetch()) { if (defined('BX_COMP_MANAGED_CACHE')) { $GLOBALS['CACHE_MANAGER']->StartTagCache($dir); $GLOBALS['CACHE_MANAGER']->RegisterTag('iblock_id_' . $result['IBLOCK_ID']); } $result = $result['NAME']; if (defined('BX_COMP_MANAGED_CACHE')) { $GLOBALS['CACHE_MANAGER']->EndTagCache(); } } $obCache->EndDataCache($result); } return $result; }
/** * ’эндлер, отслеживающий изменени¤ в инфоблоках * @param $arFields * @return bool */ static function getCradoBaners() { //$arResult = array(); CModule::IncludeModule('iblock'); global $DB; $result = $DB->Query('SELECT * FROM b_cradobaners'); $arResult = array(); $i = 0; while ($res = $result->fetch()) { $arResult[$i]['ID'] = $res['ID']; $arResult[$i]['COUNT_CLICK'] = $res['UF_COUNTCLICK']; $arResult[$i]['COUNT_VIEW'] = $res['UF_COUNTVIEW']; $arResult[$i]['DATE_LAST_CLICK'] = $res['UF_DATECLICK']; $obElement = CIBlockElement::GetByID($res['UF_IDBANERS']); if ($arEl = $obElement->GetNext()) { //$arResult[$i]['BANNER'] = $arEl; $arResult[$i]['BANNER']['ID'] = $arEl['ID']; $arResult[$i]['BANNER']['NAME'] = $arEl['NAME']; //Баннер в категории if ($arEl['PREVIEW_PICTURE'] != '') { $arResult[$i]['BANNER']['BANNER_CATEGORY'] = CFile::ResizeImageGet($arEl['PREVIEW_PICTURE'], array('width' => 140, 'height' => 95), BX_RESIZE_IMAGE_PROPORTIONAL, true); } if ($arEl['DETAIL_PICTURE'] != '') { $arResult[$i]['BANNER']['BANNER_ELEMENT'] = CFile::ResizeImageGet($arEl['DETAIL_PICTURE'], array('width' => 82, 'height' => 140), BX_RESIZE_IMAGE_PROPORTIONAL, true); } } $i++; } return $arResult; }
/** * @param int $id ID элемента * @param int $type тип возвращаемого результата * @return array|mixed элемент */ public static function getByID($id, $type = asst::FETCH) { $result = array(); if (self::getCache('element', $id, $type)) { return self::getCache('element', $id, $type); } if (CModule::IncludeModule('iblock')) { $rsResult = CIBlockElement::GetByID($id); switch ($type) { case self::FETCH: while ($ob = $rsResult->Fetch()) { $result = $ob; } break; case self::NEXT: while ($ob = $rsResult->GetNext()) { $result = $ob; } break; case self::NEXT_ELEMENT: while ($ob = $rsResult->GetNextElement()) { $fields = $ob->GetFields(); $fields['DISPLAY_PROPERTIES'] = $ob->GetProperties(); $result = $fields; } break; } $put['element'][$id][$type] = $result; self::writeCache($put); } return $result; }
public static function getSefviceMediaspect($service_id, $section_id = false) { $result = false; if (!$section_id) { $res = CIBlockElement::GetByID($service_id); if ($element = $res->GetNext()) { $section_id = $element["IBLOCK_SECTION_ID"]; } } if ($section_id) { $section = DrclinicsHelper::getMediaspects($section_id); $section = end($section); if ($section) { $result = $section; } else { $nav = CIBlockSection::GetNavChain(false, $section_id, array("ID", "CODE", "SECTION_PAGE_URL", "DEPTH_LEVEL")); while (($arSectionPath = $nav->GetNext()) && $arSectionPath["DEPTH_LEVEL"] != 2) { } if ($arSectionPath) { $result = $arSectionPath; } } } return $result; }
protected function getFieldHtml($arProperty) { $rsElement = CIBlockElement::GetByID(intval($_REQUEST['ID'])); $arResult['ELEMENT'] = $rsElement->Fetch(); $rsUsers = \CUser::GetList($by = 'id', $order = 'asc', array('ID' => $arResult['ELEMENT']['MODIFIED_BY'] . ' | ' . $arResult['ELEMENT']['CREATED_BY']), array('FIELDS' => array('ID', 'LOGIN', 'NAME', 'LAST_NAME'))); while ($arUser = $rsUsers->Fetch()) { $arResult['USERS'][$arUser['ID']] = $arUser; } include_once __DIR__ . '/templates/' . basename(__FILE__); }
public function genListHTML(&$row, $data) { $elementId = $this->getValue(); if ($elementId) { $dbRes = \CIBlockElement::GetByID($elementId); $arRes = $dbRes->GetNext(); $strElement = '<a href="/bitrix/admin/iblock_element_edit.php?IBLOCK_ID=' . $arRes['IBLOCK_ID'] . '&type=' . $arRes['IBLOCK_TYPE_ID'] . '&ID=' . $elementId . '&lang=ru">[' . $elementId . '] ' . $arRes['NAME'] . '</a>'; } else { $strElement = ''; } $row->AddViewField($this->getCode(), $strElement); }
function getcoverimg($cover_id = 0) { if ($cover_id == 0) { $cover_img = ''; } else { $resCover = CIBlockElement::GetByID($cover_id); $arCover = $resCover->Fetch(); $resFileCover = CFile::GetById($arCover[PREVIEW_PICTURE]); $arFileCover = $resFileCover->Fetch(); $cover_path = "/upload/" . $arFileCover[SUBDIR] . "/" . $arFileCover[FILE_NAME]; $cover_img = '<img src="' . $cover_path . '" style="border: 2px solid #C5C5C5;" width="110" height="65">'; } return $cover_img; }
function getStructure($id, $section=false) { $id = (int)$id; if (!$id) { return false; } if (!$section) { $res = CIBlockElement::GetByID($id); if ( $ar = $res->GetNext() ){ $id = $ar['IBLOCK_SECTION_ID']; } else { return false; } } $res = CIBlockSection::GetNavChain(false, $id); $arStructure = array(); while($ar = $res->GetNext()){ $arStructure[] = $ar; } return $arStructure; }
/** * Функция копирования * @param $From - откуда $To - куда, $ID * @return bool */ static function Copy($From, $To, $ID) { $result = array(); foreach ($ID as $key => $value) { $res = CIBlockElement::GetByID($value); while ($ob = $res->GetNextElement()) { $arFields = $ob->GetFields(); $arProps = $ob->GetProperties(); } foreach ($arProps as $key => $value) { $arProp[$key] = $value["VALUE"]; } $el = new CIBlockElement(); $arLoadProductArray = array("NAME" => str_replace(" ", " ", htmlspecialchars_decode($arFields["NAME"])), "IBLOCK_ID" => $To, "ACTIVE" => $arFields["ACTIVE"], "DATE_ACTIVE_FROM" => $arFields["DATE_ACTIVE_FROM"], "DATE_ACTIVE_TO" => $arFields["DATE_ACTIVE_TO"], "SORT" => $arFields["SORT"], "PREVIEW_PICTURE" => CFile::MakeFileArray($arFields["PREVIEW_PICTURE"]), "PREVIEW_TEXT" => str_replace(" ", " ", htmlspecialchars_decode($arFields["PREVIEW_TEXT"])), "PREVIEW_TEXT_TYPE" => $arFields["PREVIEW_TEXT_TYPE"], "DETAIL_PICTURE" => CFile::MakeFileArray($arFields["DETAIL_PICTURE"]), "DETAIL_TEXT" => str_replace(" ", " ", htmlspecialchars_decode($arFields["DETAIL_TEXT"])), "DETAIL_TEXT_TYPE" => $arFields["DETAIL_TEXT_TYPE"], "SEARCHABLE_CONTENT" => $arFields["SEARCHABLE_CONTENT"], "DATE_CREATE" => $arFields["DATE_CREATE"], "CREATED_BY" => $arFields["CREATED_BY"], "CREATED_USER_NAME" => $arFields["CREATED_USER_NAME"], "TIMESTAMP_X" => $arFields["TIMESTAMP_X"], "MODIFIED_BY" => $arFields["MODIFIED_BY"], "USER_NAME" => $arFields["USER_NAME"], "LANG_DIR" => $arFields["LANG_DIR"], "LIST_PAGE_URL" => $arFields["LIST_PAGE_URL"], "DETAIL_PAGE_URL" => $arFields["DETAIL_PAGE_URL"], "SHOW_COUNTER" => $arFields["SHOW_COUNTER"], "SHOW_COUNTER_START" => $arFields["SHOW_COUNTER_START"], "WF_COMMENTS" => $arFields["WF_COMMENTS"], "WF_STATUS_ID" => $arFields["WF_STATUS_ID"], "LOCK_STATUS" => $arFields["LOCK_STATUS"], "TAGS" => $arFields["TAGS"], "PROPERTY_VALUES" => $arProp); if ($PRODUCT_ID = $el->Add($arLoadProductArray)) { $result[] = "Yes"; } } return $result; }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (CModule::IncludeModule("catalog")) { $ajaxResult = array(); if (IntVal($_REQUEST["PRODUCT_ID"]) > 0) { $itemId = Add2BasketByProductID(IntVal($_REQUEST["PRODUCT_ID"])); if ($itemId !== false) { $arInfo = CIBlockElement::GetByID(IntVal($_REQUEST["PRODUCT_ID"]))->GetNext(); $strImageStorePath = COption::GetOptionString("main", "upload_dir", "upload"); $imageId = empty($arInfo["DETAIL_PICTURE"]) ? $arInfo["PREVIEW_PICTURE"] : $arInfo["DETAIL_PICTURE"]; if (!empty($imageId)) { $sPath = CFile::GetByID($imageId)->GetNext(); $sPath = "/" . $strImageStorePath . "/" . $sPath["SUBDIR"] . "/" . $sPath["FILE_NAME"]; } else { $sPath = ""; } $ajaxResult["MSG"]["NAME"] = $arInfo["NAME"]; $ajaxResult["MSG"]["URL"] = $arInfo["DETAIL_PAGE_URL"]; $ajaxResult["MSG"]["IMG"] = $sPath; } else { $ajaxResult["MSG"] = "Ошибка добавления товара в корзину"; } echo json_encode($ajaxResult); } }
$arFilter["ID"] = -1; } //check for access to current element if ($arParams["ID"] > 0) { if (empty($arFilter["ID"])) { $arFilter["ID"] = $arParams["ID"]; } // get current iblock element //echo "<pre>"; print_r($arFilter); echo "</pre>"; $rsIBlockElements = CIBlockElement::GetList(array("SORT" => "ASC"), $arFilter); if ($arElement = $rsIBlockElements->Fetch()) { $bAllowAccess = true; if ($bWorkflowIncluded) { $LAST_ID = CIBlockElement::WF_GetLast($arElement['ID']); if ($LAST_ID != $arElement["ID"]) { $rsElement = CIBlockElement::GetByID($LAST_ID); $arElement = $rsElement->Fetch(); } if (!in_array($arElement["WF_STATUS_ID"], $arParams["STATUS"])) { echo ShowError(GetMessage("IBLOCK_ADD_ACCESS_DENIED")); $bAllowAccess = false; } } else { if (in_array("INACTIVE", $arParams["STATUS"]) === true && $arElement["ACTIVE"] !== "N") { echo ShowError(GetMessage("IBLOCK_ADD_ACCESS_DENIED")); $bAllowAccess = false; } } } else { echo ShowError(GetMessage("IBLOCK_ADD_ELEMENT_NOT_FOUND")); $bAllowAccess = false;
} $arUsers = array(); uasort($arDocumentStates, "__bp_sort_in_template_by_modified"); ?> <div class="bizproc-page-document"> <?php if (!isset($arParams["TASK_ID"])) { ?> <form action="<?php echo POST_FORM_ACTION_URI; ?> " method="POST" class="bizproc-form" name="start_workflow_form1" id="start_workflow_form1"> <?php echo bitrix_sessid_post(); $docId = $arParams['DOCUMENT_ID'][2]; $dbRes = CIBlockElement::GetByID($docId); if ($dbRes) { if ($doc = $dbRes->Fetch()) { if (isset($doc['WF_PARENT_ELEMENT_ID'])) { $docId = $doc['WF_PARENT_ELEMENT_ID']; } } } $back_url = CComponentEngine::MakePathFromTemplate($arParams["WEBDAV_BIZPROC_VIEW_URL"], array("ELEMENT_ID" => $docId)); unset($doc); ?> <input type="hidden" name="back_url" value="<?php echo htmlspecialcharsbx($back_url); ?> " />
if ($arResult["REQUEST"]["~TAGS"]) { $res = array_unique(explode(",", $arResult["REQUEST"]["~TAGS"])); $url = array(); foreach ($res as $key => $tags) { $tags = trim($tags); if (!empty($tags)) { $url_without = $res; unset($url_without[$key]); $url[$tags] = $tags; $result = array("TAG_NAME" => htmlspecialcharsex($tags), "TAG_PATH" => $APPLICATION->GetCurPageParam("tags=" . urlencode(implode(",", $url)), array("tags")), "TAG_WITHOUT" => $APPLICATION->GetCurPageParam(count($url_without) > 0 ? "tags=" . urlencode(implode(",", $url_without)) : "", array("tags"))); $arResult["TAGS_CHAIN"][] = $result; } } } CModule::IncludeModule("iblock"); $arResult["ITEMS"] = array(); $arResult["SECTIONS"] = array(); $arResult["TEMP"] = array(); foreach ($arResult["SEARCH"] as $arItem) { if ($arItem["PARAM1"] == "catalog") { $arResult["ITEMS"][] = $arItem["ITEM_ID"]; $dbEl = CIBlockElement::GetByID($arItem["ITEM_ID"]); $rsEl = $dbEl->GetNext(); $arResult["TEMP"][] = $rsEl; if (isset($arResult["SECTIONS"][$rsEl["IBLOCK_SECTION_ID"]])) { $arResult["SECTIONS"][$rsEl["IBLOCK_SECTION_ID"]]++; } else { $arResult["SECTIONS"][$rsEl["IBLOCK_SECTION_ID"]] = 1; } } }
</tr> <tr> <td> <?php echo GetMessage("C2IT_TRIAL_FOR"); ?> </td> <td> <?php $str_CAT_TRIAL_PRICE_ID = $arBaseProduct["TRIAL_PRICE_ID"]; if ($bVarsFromForm) { $str_CAT_TRIAL_PRICE_ID = $CAT_TRIAL_PRICE_ID; } $catProductName = ""; if (intval($str_CAT_TRIAL_PRICE_ID) > 0) { $dbCatElement = CIBlockElement::GetByID(intval($str_CAT_TRIAL_PRICE_ID)); if ($arCatElement = $dbCatElement->GetNext()) { $catProductName = $arCatElement["NAME"]; } } ?> <input id="CAT_TRIAL_PRICE_ID" name="CAT_TRIAL_PRICE_ID" value="<?php echo htmlspecialcharsbx($str_CAT_TRIAL_PRICE_ID); ?> " size="5" type="text"><input type="button" id="CAT_TRIAL_PRICE_ID_BUTTON" name="CAT_TRIAL_PRICE_ID_BUTTON" value="..." onClick="window.open('cat_product_search.php?IBLOCK_ID=<?php echo $IBLOCK_ID; ?> &field_name=CAT_TRIAL_PRICE_ID&alt_name=trial_price_alt&form_name='+getElementFormName(), '', 'scrollbars=yes,resizable=yes,width=600,height=500,top='+Math.floor((screen.height - 500)/2-14)+',left='+Math.floor((screen.width - 600)/2-5));"> <span id="trial_price_alt"><?php echo $catProductName; ?> </span>
$str_ACTIVE_TO = ConvertTimeStamp(time() + intval($arIBlock["FIELDS"]["ACTIVE_TO"]["DEFAULT_VALUE"])*24*60*60 + CTimeZone::GetOffset(), "FULL"); $str_PREVIEW_TEXT_TYPE = $arIBlock["FIELDS"]["PREVIEW_TEXT_TYPE"]["DEFAULT_VALUE"] !== "html"? "text": "html"; $str_PREVIEW_TEXT = htmlspecialcharsbx($arIBlock["FIELDS"]["PREVIEW_TEXT"]["DEFAULT_VALUE"]); $str_DETAIL_TEXT_TYPE = $arIBlock["FIELDS"]["DETAIL_TEXT_TYPE"]["DEFAULT_VALUE"] !== "html"? "text": "html"; $str_DETAIL_TEXT = htmlspecialcharsbx($arIBlock["FIELDS"]["DETAIL_TEXT"]["DEFAULT_VALUE"]); if ($historyId > 0) { $view = "Y"; foreach ($arResult["DOCUMENT"]["FIELDS"] as $k => $v) ${"str_".$k} = $v; } else { $result = CIBlockElement::GetByID($WF_ID); if($arElement = $result->ExtractFields("str_")) { if($str_IN_SECTIONS=="N") { $str_IBLOCK_ELEMENT_SECTION[] = 0; } else { $result = CIBlockElement::GetElementGroups($WF_ID, true, array('ID', 'IBLOCK_ELEMENT_ID')); while($ar = $result->Fetch()) $str_IBLOCK_ELEMENT_SECTION[] = $ar["ID"]; } $ipropTemlates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($IBLOCK_ID, $WF_ID); }
<?php require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; CModule::IncludeModule("iblock"); $id = intval($_GET["event_id"]); $like = intval($_GET["like"]); $UID = $USER->GetID(); $ib_id = 6; $resObj = CIBlockElement::GetByID($id); $item = $resObj->GetNextElement(true, false); /*$propItems = $item->GetProperty("USERS");*/ if ($like) { $el = new CIBlockElement(); $PROP = array(); $PROP['LIKE'] = array("n0" => array("VALUE" => $id, "DESCRIPTION" => "")); $PROP['USER'] = array("n0" => array("VALUE" => $UID, "DESCRIPTION" => "")); $arLoadProductArray = array("IBLOCK_SECTION" => false, "IBLOCK_ID" => $ib_id, "PROPERTY_VALUES" => $PROP, "NAME" => "like"); $PRODUCT_ID = id_element; $res = $el->Add($arLoadProductArray); } else { $res = CIBlockElement::GetList(array(), array("IBLOCK_ID" => 6, "PROPERTY_LIKE" => $id, "PROPERTY_USER" => $USER->GetID())); $ob = $res->GetNextElement(); //echo "<xmp>";print_r($ob);echo "</xmp>"; if ($ob) { $obs = $ob->GetFields(); $ELEMENT_ID = $obs["ID"]; CIBlockElement::Delete($ELEMENT_ID); } }
$ID = intval(substr($ID,1)); if($TYPE == "E") { $arRes = CIBlockElement::GetByID($ID); $arRes = $arRes->Fetch(); if(!$arRes) continue; $WF_ID = $ID; if($bWorkFlow) { $WF_ID = CIBlockElement::WF_GetLast($ID); if($WF_ID!=$ID) { $rsData2 = CIBlockElement::GetByID($WF_ID); if($arRes = $rsData2->Fetch()) $WF_ID = $arRes["ID"]; else $WF_ID = $ID; } if($arRes["LOCK_STATUS"]=='red' && !($_REQUEST['action']=='unlock' && CWorkflow::IsAdmin())) { $lAdmin->AddUpdateError(GetMessage("IBLIST_A_UPDERR_LOCKED", array("#ID#" => $ID)), $TYPE.$ID); continue; } } elseif ($bBizproc) { if (call_user_func(array(ENTITY, "IsDocumentLocked"), $ID, "") && !($_REQUEST['action']=='unlock' && CBPDocument::IsAdmin()))
function Update($ID, $arFields, $bWorkFlow = false, $bUpdateSearch = true, $bResizePictures = false, $bCheckDiskQuota = true) { global $DB, $USER; $ID = intval($ID); $db_element = CIBlockElement::GetList(array(), array("ID" => $ID, "SHOW_HISTORY" => "Y"), false, false, array("ID", "TIMESTAMP_X", "MODIFIED_BY", "DATE_CREATE", "CREATED_BY", "IBLOCK_ID", "ACTIVE", "ACTIVE_FROM", "ACTIVE_TO", "SORT", "NAME", "PREVIEW_PICTURE", "PREVIEW_TEXT", "PREVIEW_TEXT_TYPE", "DETAIL_PICTURE", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "WF_STATUS_ID", "WF_PARENT_ELEMENT_ID", "WF_NEW", "WF_COMMENTS", "IN_SECTIONS", "CODE", "TAGS", "XML_ID", "TMP_ID")); if (!($ar_element = $db_element->Fetch())) { return false; } $arIBlock = CIBlock::GetArrayByID($ar_element["IBLOCK_ID"]); $bWorkFlow = $bWorkFlow && is_array($arIBlock) && $arIBlock["WORKFLOW"] != "N" && CModule::IncludeModule("workflow"); $ar_wf_element = $ar_element; $LAST_ID = 0; if ($bWorkFlow) { $LAST_ID = CIBlockElement::WF_GetLast($ID); if ($LAST_ID != $ID) { $db_element = CIBlockElement::GetByID($LAST_ID); if (!($ar_wf_element = $db_element->Fetch())) { return false; } } $arFields["WF_PARENT_ELEMENT_ID"] = $ID; if (!array_key_exists("PROPERTY_VALUES", $arFields) || !is_array($arFields["PROPERTY_VALUES"])) { $arFields["PROPERTY_VALUES"] = array(); } $bFieldProps = array(); foreach ($arFields["PROPERTY_VALUES"] as $k => $v) { $bFieldProps[$k] = true; } $arFieldProps =& $arFields['PROPERTY_VALUES']; $props = CIBlockElement::GetProperty($ar_element["IBLOCK_ID"], $ar_wf_element["ID"]); while ($arProp = $props->Fetch()) { $pr_val_id = $arProp['PROPERTY_VALUE_ID']; if ($arProp['PROPERTY_TYPE'] == 'F' && strlen($pr_val_id) > 0) { if (strlen($arProp["CODE"]) > 0 && is_set($arFieldProps, $arProp["CODE"])) { $pr_id = $arProp["CODE"]; } else { $pr_id = $arProp['ID']; } if (array_key_exists($pr_id, $arFieldProps) && array_key_exists($pr_val_id, $arFieldProps[$pr_id]) && is_array($arFieldProps[$pr_id][$pr_val_id])) { $new_value = $arFieldProps[$pr_id][$pr_val_id]; if (strlen($new_value['name']) <= 0 && $new_value['del'] != "Y" && strlen($new_value['VALUE']['name']) <= 0 && $new_value['VALUE']['del'] != "Y") { if (array_key_exists('DESCRIPTION', $new_value) && $new_value['DESCRIPTION'] != $arProp['DESCRIPTION']) { $p = array("VALUE" => CFile::MakeFileArray($arProp['VALUE'])); $p["DESCRIPTION"] = $new_value["DESCRIPTION"]; $p["MODULE_ID"] = "iblock"; $arFieldProps[$pr_id][$pr_val_id] = $p; } elseif ($arProp['VALUE'] > 0) { $arFieldProps[$pr_id][$pr_val_id] = array("VALUE" => $arProp['VALUE'], "DESCRIPTION" => $arProp["DESCRIPTION"]); } } } else { $arFieldProps[$pr_id][$pr_val_id] = array("VALUE" => $arProp['VALUE'], "DESCRIPTION" => $arProp["DESCRIPTION"]); } continue; } if (strlen($pr_val_id) <= 0 || array_key_exists($arProp["ID"], $bFieldProps) || strlen($arProp["CODE"]) > 0 && array_key_exists($arProp["CODE"], $bFieldProps)) { continue; } $arFieldProps[$arProp["ID"]][$pr_val_id] = array("VALUE" => $arProp['VALUE'], "DESCRIPTION" => $arProp["DESCRIPTION"]); } if ($ar_wf_element["IN_SECTIONS"] == "Y") { $ar_wf_element["IBLOCK_SECTION"] = array(); $rsSections = CIBlockElement::GetElementGroups($ar_element["ID"], true, array('ID', 'IBLOCK_ELEMENT_ID')); while ($arSection = $rsSections->Fetch()) { $ar_wf_element["IBLOCK_SECTION"][] = $arSection["ID"]; } } unset($ar_wf_element["DATE_ACTIVE_FROM"]); unset($ar_wf_element["DATE_ACTIVE_TO"]); unset($ar_wf_element["EXTERNAL_ID"]); unset($ar_wf_element["TIMESTAMP_X"]); unset($ar_wf_element["ID"]); $arFields = $arFields + $ar_wf_element; } $arFields["WF"] = $bWorkFlow ? "Y" : "N"; $bBizProc = is_array($arIBlock) && $arIBlock["BIZPROC"] == "Y" && IsModuleInstalled("bizproc"); if (array_key_exists("BP_PUBLISHED", $arFields)) { if ($bBizProc) { if ($arFields["BP_PUBLISHED"] == "Y") { $arFields["WF_STATUS_ID"] = 1; $arFields["WF_NEW"] = false; } else { $arFields["WF_STATUS_ID"] = 2; $arFields["WF_NEW"] = "Y"; $arFields["BP_PUBLISHED"] = "N"; } } else { $arFields["WF_NEW"] = false; unset($arFields["BP_PUBLISHED"]); } } else { $arFields["WF_NEW"] = false; } if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y") { $arFields["ACTIVE"] = "N"; } if (is_set($arFields, "PREVIEW_TEXT_TYPE") && $arFields["PREVIEW_TEXT_TYPE"] != "html") { $arFields["PREVIEW_TEXT_TYPE"] = "text"; } if (is_set($arFields, "DETAIL_TEXT_TYPE") && $arFields["DETAIL_TEXT_TYPE"] != "html") { $arFields["DETAIL_TEXT_TYPE"] = "text"; } $strWarning = ""; if ($bResizePictures) { $arDef = $arIBlock["FIELDS"]["PREVIEW_PICTURE"]["DEFAULT_VALUE"]; if ($arDef["DELETE_WITH_DETAIL"] === "Y" && $arFields["DETAIL_PICTURE"]["del"] === "Y") { $arFields["PREVIEW_PICTURE"]["del"] = "Y"; } if ($arDef["FROM_DETAIL"] === "Y" && ($arFields["PREVIEW_PICTURE"]["size"] <= 0 || $arDef["UPDATE_WITH_DETAIL"] === "Y") && is_array($arFields["DETAIL_PICTURE"]) && $arFields["DETAIL_PICTURE"]["size"] > 0) { if ($arFields["PREVIEW_PICTURE"]["del"] !== "Y" && $arDef["UPDATE_WITH_DETAIL"] !== "Y") { $rsElement = CIBlockElement::GetList(array("ID" => "DESC"), array("ID" => $ar_wf_element["ID"], "IBLOCK_ID" => $ar_wf_element["IBLOCK_ID"], "SHOW_HISTORY" => "Y"), false, false, array("ID", "PREVIEW_PICTURE")); $arOldElement = $rsElement->Fetch(); } else { $arOldElement = false; } if (!$arOldElement || !$arOldElement["PREVIEW_PICTURE"]) { $arNewPreview = $arFields["DETAIL_PICTURE"]; $arNewPreview["COPY_FILE"] = "Y"; $arNewPreview["description"] = $arFields["PREVIEW_PICTURE"]["description"]; $arFields["PREVIEW_PICTURE"] = $arNewPreview; } } if (array_key_exists("PREVIEW_PICTURE", $arFields) && is_array($arFields["PREVIEW_PICTURE"]) && $arFields["PREVIEW_PICTURE"]["size"] > 0 && $arDef["SCALE"] === "Y") { $arNewPicture = CIBlock::ResizePicture($arFields["PREVIEW_PICTURE"], $arDef); if (is_array($arNewPicture)) { $arNewPicture["description"] = $arFields["PREVIEW_PICTURE"]["description"]; $arFields["PREVIEW_PICTURE"] = $arNewPicture; } elseif ($arDef["IGNORE_ERRORS"] !== "Y") { unset($arFields["PREVIEW_PICTURE"]); $strWarning .= GetMessage("IBLOCK_FIELD_PREVIEW_PICTURE") . ": " . $arNewPicture . "<br>"; } } if (array_key_exists("PREVIEW_PICTURE", $arFields) && is_array($arFields["PREVIEW_PICTURE"]) && $arDef["USE_WATERMARK_FILE"] === "Y") { if (strlen($arFields["PREVIEW_PICTURE"]["tmp_name"]) > 0 && ($arFields["PREVIEW_PICTURE"]["tmp_name"] === $arFields["DETAIL_PICTURE"]["tmp_name"] || $arFields["PREVIEW_PICTURE"]["COPY_FILE"] == "Y" && !$arFields["PREVIEW_PICTURE"]["copy"])) { $tmp_name = CTempFile::GetFileName(basename($arFields["PREVIEW_PICTURE"]["tmp_name"])); CheckDirPath($tmp_name); copy($arFields["PREVIEW_PICTURE"]["tmp_name"], $tmp_name); $arFields["PREVIEW_PICTURE"]["copy"] = true; $arFields["PREVIEW_PICTURE"]["tmp_name"] = $tmp_name; } CIBLock::FilterPicture($arFields["PREVIEW_PICTURE"]["tmp_name"], array("name" => "watermark", "position" => $arDef["WATERMARK_FILE_POSITION"], "type" => "file", "size" => "real", "alpha_level" => 100 - min(max($arDef["WATERMARK_FILE_ALPHA"], 0), 100), "file" => $_SERVER["DOCUMENT_ROOT"] . Rel2Abs("/", $arDef["WATERMARK_FILE"]))); } if (array_key_exists("PREVIEW_PICTURE", $arFields) && is_array($arFields["PREVIEW_PICTURE"]) && $arDef["USE_WATERMARK_TEXT"] === "Y") { if (strlen($arFields["PREVIEW_PICTURE"]["tmp_name"]) > 0 && ($arFields["PREVIEW_PICTURE"]["tmp_name"] === $arFields["DETAIL_PICTURE"]["tmp_name"] || $arFields["PREVIEW_PICTURE"]["COPY_FILE"] == "Y" && !$arFields["PREVIEW_PICTURE"]["copy"])) { $tmp_name = CTempFile::GetFileName(basename($arFields["PREVIEW_PICTURE"]["tmp_name"])); CheckDirPath($tmp_name); copy($arFields["PREVIEW_PICTURE"]["tmp_name"], $tmp_name); $arFields["PREVIEW_PICTURE"]["copy"] = true; $arFields["PREVIEW_PICTURE"]["tmp_name"] = $tmp_name; } CIBLock::FilterPicture($arFields["PREVIEW_PICTURE"]["tmp_name"], array("name" => "watermark", "position" => $arDef["WATERMARK_TEXT_POSITION"], "type" => "text", "coefficient" => $arDef["WATERMARK_TEXT_SIZE"], "text" => $arDef["WATERMARK_TEXT"], "font" => $_SERVER["DOCUMENT_ROOT"] . Rel2Abs("/", $arDef["WATERMARK_TEXT_FONT"]), "color" => $arDef["WATERMARK_TEXT_COLOR"])); } $arDef = $arIBlock["FIELDS"]["DETAIL_PICTURE"]["DEFAULT_VALUE"]; if (array_key_exists("DETAIL_PICTURE", $arFields) && is_array($arFields["DETAIL_PICTURE"]) && $arDef["SCALE"] === "Y") { $arNewPicture = CIBlock::ResizePicture($arFields["DETAIL_PICTURE"], $arDef); if (is_array($arNewPicture)) { $arNewPicture["description"] = $arFields["DETAIL_PICTURE"]["description"]; $arFields["DETAIL_PICTURE"] = $arNewPicture; } elseif ($arDef["IGNORE_ERRORS"] !== "Y") { unset($arFields["DETAIL_PICTURE"]); $strWarning .= GetMessage("IBLOCK_FIELD_DETAIL_PICTURE") . ": " . $arNewPicture . "<br>"; } } if (array_key_exists("DETAIL_PICTURE", $arFields) && is_array($arFields["DETAIL_PICTURE"]) && $arDef["USE_WATERMARK_FILE"] === "Y") { if (strlen($arFields["DETAIL_PICTURE"]["tmp_name"]) > 0 && ($arFields["DETAIL_PICTURE"]["tmp_name"] === $arFields["PREVIEW_PICTURE"]["tmp_name"] || $arFields["DETAIL_PICTURE"]["COPY_FILE"] == "Y" && !$arFields["DETAIL_PICTURE"]["copy"])) { $tmp_name = CTempFile::GetFileName(basename($arFields["DETAIL_PICTURE"]["tmp_name"])); CheckDirPath($tmp_name); copy($arFields["DETAIL_PICTURE"]["tmp_name"], $tmp_name); $arFields["DETAIL_PICTURE"]["copy"] = true; $arFields["DETAIL_PICTURE"]["tmp_name"] = $tmp_name; } CIBLock::FilterPicture($arFields["DETAIL_PICTURE"]["tmp_name"], array("name" => "watermark", "position" => $arDef["WATERMARK_FILE_POSITION"], "type" => "file", "size" => "real", "alpha_level" => 100 - min(max($arDef["WATERMARK_FILE_ALPHA"], 0), 100), "file" => $_SERVER["DOCUMENT_ROOT"] . Rel2Abs("/", $arDef["WATERMARK_FILE"]))); } if (array_key_exists("DETAIL_PICTURE", $arFields) && is_array($arFields["DETAIL_PICTURE"]) && $arDef["USE_WATERMARK_TEXT"] === "Y") { if (strlen($arFields["DETAIL_PICTURE"]["tmp_name"]) > 0 && ($arFields["DETAIL_PICTURE"]["tmp_name"] === $arFields["PREVIEW_PICTURE"]["tmp_name"] || $arFields["DETAIL_PICTURE"]["COPY_FILE"] == "Y" && !$arFields["DETAIL_PICTURE"]["copy"])) { $tmp_name = CTempFile::GetFileName(basename($arFields["DETAIL_PICTURE"]["tmp_name"])); CheckDirPath($tmp_name); copy($arFields["DETAIL_PICTURE"]["tmp_name"], $tmp_name); $arFields["DETAIL_PICTURE"]["copy"] = true; $arFields["DETAIL_PICTURE"]["tmp_name"] = $tmp_name; } CIBLock::FilterPicture($arFields["DETAIL_PICTURE"]["tmp_name"], array("name" => "watermark", "position" => $arDef["WATERMARK_TEXT_POSITION"], "type" => "text", "coefficient" => $arDef["WATERMARK_TEXT_SIZE"], "text" => $arDef["WATERMARK_TEXT"], "font" => $_SERVER["DOCUMENT_ROOT"] . Rel2Abs("/", $arDef["WATERMARK_TEXT_FONT"]), "color" => $arDef["WATERMARK_TEXT_COLOR"])); } } $ipropTemplates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($ar_element["IBLOCK_ID"], $ar_element["ID"]); if (array_key_exists("PREVIEW_PICTURE", $arFields) && is_array($arFields["PREVIEW_PICTURE"])) { if (strlen($arFields["PREVIEW_PICTURE"]["name"]) <= 0 && strlen($arFields["PREVIEW_PICTURE"]["del"]) <= 0 && !is_set($arFields["PREVIEW_PICTURE"], "description")) { unset($arFields["PREVIEW_PICTURE"]); } else { $arFields["PREVIEW_PICTURE"]["MODULE_ID"] = "iblock"; $arFields["PREVIEW_PICTURE"]["old_file"] = $ar_wf_element["PREVIEW_PICTURE"]; $arFields["PREVIEW_PICTURE"]["name"] = \Bitrix\Iblock\Template\Helper::makeFileName($ipropTemplates, "ELEMENT_PREVIEW_PICTURE_FILE_NAME", array_merge($ar_element, $arFields), $arFields["PREVIEW_PICTURE"]); } } if (array_key_exists("DETAIL_PICTURE", $arFields) && is_array($arFields["DETAIL_PICTURE"])) { if (strlen($arFields["DETAIL_PICTURE"]["name"]) <= 0 && strlen($arFields["DETAIL_PICTURE"]["del"]) <= 0 && !is_set($arFields["DETAIL_PICTURE"], "description")) { unset($arFields["DETAIL_PICTURE"]); } else { $arFields["DETAIL_PICTURE"]["MODULE_ID"] = "iblock"; $arFields["DETAIL_PICTURE"]["old_file"] = $ar_wf_element["DETAIL_PICTURE"]; $arFields["DETAIL_PICTURE"]["name"] = \Bitrix\Iblock\Template\Helper::makeFileName($ipropTemplates, "ELEMENT_DETAIL_PICTURE_FILE_NAME", array_merge($ar_element, $arFields), $arFields["DETAIL_PICTURE"]); } } if (is_set($arFields, "DATE_ACTIVE_FROM")) { $arFields["ACTIVE_FROM"] = $arFields["DATE_ACTIVE_FROM"]; } if (is_set($arFields, "DATE_ACTIVE_TO")) { $arFields["ACTIVE_TO"] = $arFields["DATE_ACTIVE_TO"]; } if (is_set($arFields, "EXTERNAL_ID")) { $arFields["XML_ID"] = $arFields["EXTERNAL_ID"]; } $PREVIEW_tmp = is_set($arFields, "PREVIEW_TEXT") ? $arFields["PREVIEW_TEXT"] : $ar_wf_element["PREVIEW_TEXT"]; $PREVIEW_TYPE_tmp = is_set($arFields, "PREVIEW_TEXT_TYPE") ? $arFields["PREVIEW_TEXT_TYPE"] : $ar_wf_element["PREVIEW_TEXT_TYPE"]; $DETAIL_tmp = is_set($arFields, "DETAIL_TEXT") ? $arFields["DETAIL_TEXT"] : $ar_wf_element["DETAIL_TEXT"]; $DETAIL_TYPE_tmp = is_set($arFields, "DETAIL_TEXT_TYPE") ? $arFields["DETAIL_TEXT_TYPE"] : $ar_wf_element["DETAIL_TEXT_TYPE"]; $arFields["SEARCHABLE_CONTENT"] = ToUpper((is_set($arFields, "NAME") ? $arFields["NAME"] : $ar_wf_element["NAME"]) . "\r\n" . ($PREVIEW_TYPE_tmp == "html" ? HTMLToTxt($PREVIEW_tmp) : $PREVIEW_tmp) . "\r\n" . ($DETAIL_TYPE_tmp == "html" ? HTMLToTxt($DETAIL_tmp) : $DETAIL_tmp)); if (is_set($arFields["IBLOCK_SECTION_ID"]) && !is_set($arFields, "IBLOCK_SECTION")) { $arFields["IBLOCK_SECTION"] = array($arFields["IBLOCK_SECTION_ID"]); } $arFields["IBLOCK_ID"] = $ar_element["IBLOCK_ID"]; if (!$this->CheckFields($arFields, $ID, $bCheckDiskQuota) || strlen($strWarning)) { $this->LAST_ERROR .= $strWarning; $Result = false; $arFields["RESULT_MESSAGE"] =& $this->LAST_ERROR; } else { unset($arFields["ID"]); if (array_key_exists("PREVIEW_PICTURE", $arFields)) { $SAVED_PREVIEW_PICTURE = $arFields["PREVIEW_PICTURE"]; } else { $SAVED_PREVIEW_PICTURE = false; } if (array_key_exists("DETAIL_PICTURE", $arFields)) { $SAVED_DETAIL_PICTURE = $arFields["DETAIL_PICTURE"]; } else { $SAVED_DETAIL_PICTURE = false; } // edit was done in workflow mode if ($bWorkFlow) { $arFields["WF_PARENT_ELEMENT_ID"] = $ID; if (array_key_exists("PREVIEW_PICTURE", $arFields)) { if (is_array($arFields["PREVIEW_PICTURE"])) { if (strlen($arFields["PREVIEW_PICTURE"]["name"]) <= 0 && strlen($arFields["PREVIEW_PICTURE"]["del"]) <= 0) { if (array_key_exists("description", $arFields["PREVIEW_PICTURE"])) { $arFile = CFile::GetFileArray($ar_wf_element["PREVIEW_PICTURE"]); if ($arFields["PREVIEW_PICTURE"]["description"] != $arFile["DESCRIPTION"]) { //Description updated, so it's new file $arNewFile = CFile::MakeFileArray($ar_wf_element["PREVIEW_PICTURE"]); $arNewFile["description"] = $arFields["PREVIEW_PICTURE"]["description"]; $arNewFile["MODULE_ID"] = "iblock"; $arFields["PREVIEW_PICTURE"] = $arNewFile; } else { $arFields["PREVIEW_PICTURE"] = $ar_wf_element["PREVIEW_PICTURE"]; } } else { //File was not changed at all $arFields["PREVIEW_PICTURE"] = $ar_wf_element["PREVIEW_PICTURE"]; } } else { unset($arFields["PREVIEW_PICTURE"]["old_file"]); } } } else { $arFields["PREVIEW_PICTURE"] = $ar_wf_element["PREVIEW_PICTURE"]; } if (array_key_exists("DETAIL_PICTURE", $arFields)) { if (is_array($arFields["DETAIL_PICTURE"])) { if (strlen($arFields["DETAIL_PICTURE"]["name"]) <= 0 && strlen($arFields["DETAIL_PICTURE"]["del"]) <= 0) { if (array_key_exists("description", $arFields["DETAIL_PICTURE"])) { $arFile = CFile::GetFileArray($ar_wf_element["DETAIL_PICTURE"]); if ($arFields["DETAIL_PICTURE"]["description"] != $arFile["DESCRIPTION"]) { //Description updated, so it's new file $arNewFile = CFile::MakeFileArray($ar_wf_element["DETAIL_PICTURE"]); $arNewFile["description"] = $arFields["DETAIL_PICTURE"]["description"]; $arNewFile["MODULE_ID"] = "iblock"; $arFields["DETAIL_PICTURE"] = $arNewFile; } else { $arFields["DETAIL_PICTURE"] = $ar_wf_element["DETAIL_PICTURE"]; } } else { //File was not changed at all $arFields["DETAIL_PICTURE"] = $ar_wf_element["DETAIL_PICTURE"]; } } else { unset($arFields["DETAIL_PICTURE"]["old_file"]); } } } else { $arFields["DETAIL_PICTURE"] = $ar_wf_element["DETAIL_PICTURE"]; } $NID = $this->Add($arFields); if ($NID > 0) { if ($arFields["WF_STATUS_ID"] == 1) { $DB->Query("UPDATE b_iblock_element SET TIMESTAMP_X=TIMESTAMP_X, WF_NEW=null WHERE ID=" . $ID); $DB->Query("UPDATE b_iblock_element SET TIMESTAMP_X=TIMESTAMP_X, WF_NEW=null WHERE WF_PARENT_ELEMENT_ID=" . $ID); $ar_wf_element["WF_NEW"] = false; } if ($this->bWF_SetMove) { CIBlockElement::WF_SetMove($NID, $LAST_ID); } if ($ar_element["WF_STATUS_ID"] != 1 && $ar_wf_element["WF_STATUS_ID"] != $arFields["WF_STATUS_ID"] && $arFields["WF_STATUS_ID"] != 1) { $DB->Query("UPDATE b_iblock_element SET TIMESTAMP_X=TIMESTAMP_X, WF_STATUS_ID=" . $arFields["WF_STATUS_ID"] . " WHERE ID=" . $ID); } } //element was not published, so keep original if (is_set($arFields, "WF_STATUS_ID") && $arFields["WF_STATUS_ID"] != 1 && $ar_element["WF_STATUS_ID"] == 1 || !is_set($arFields, "WF_STATUS_ID") && $ar_wf_element["WF_STATUS_ID"] != 1) { CIBlockElement::WF_CleanUpHistoryCopies($ID); return true; } $arFields['WF_PARENT_ELEMENT_ID'] = false; $rs = $DB->Query("SELECT PREVIEW_PICTURE, DETAIL_PICTURE from b_iblock_element WHERE ID = " . $NID); $ar_new_element = $rs->Fetch(); } else { $ar_new_element = false; } if ($ar_new_element) { if (!intval($ar_new_element["PREVIEW_PICTURE"])) { $arFields["PREVIEW_PICTURE"] = false; } else { $arFields["PREVIEW_PICTURE"] = $ar_new_element["PREVIEW_PICTURE"]; } if (!intval($ar_new_element["DETAIL_PICTURE"])) { $arFields["DETAIL_PICTURE"] = false; } else { $arFields["DETAIL_PICTURE"] = $ar_new_element["DETAIL_PICTURE"]; } if (is_array($arFields["PROPERTY_VALUES"]) && count($arFields["PROPERTY_VALUES"]) > 0) { $i = 0; $db_prop = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $arFields["IBLOCK_ID"], "CHECK_PERMISSIONS" => "N", "PROPERTY_TYPE" => "F")); while ($arProp = $db_prop->Fetch()) { $i++; unset($arFields["PROPERTY_VALUES"][$arProp["CODE"]]); unset($arFields["PROPERTY_VALUES"][$arProp["ID"]]); $arFields["PROPERTY_VALUES"][$arProp["ID"]] = array(); } if ($i > 0) { //Delete previous files $props = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $ID, "sort", "asc", array("PROPERTY_TYPE" => "F", "EMPTY" => "N")); while ($arProp = $props->Fetch()) { $arFields["PROPERTY_VALUES"][$arProp["ID"]][$arProp['PROPERTY_VALUE_ID']] = array("VALUE" => array("del" => "Y"), "DESCRIPTION" => false); } //Add copy from history $arDup = array(); //This is cure for files duplication bug (just save element one more time) $props = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $NID, "sort", "asc", array("PROPERTY_TYPE" => "F", "EMPTY" => "N")); while ($arProp = $props->Fetch()) { if (!array_key_exists($arProp["VALUE"], $arDup)) { $arFields["PROPERTY_VALUES"][$arProp["ID"]][$arProp['PROPERTY_VALUE_ID']] = array("VALUE" => $arProp["VALUE"], "DESCRIPTION" => $arProp["DESCRIPTION"]); $arDup[$arProp["VALUE"]] = true; //This is cure for files duplication bug } } } } } else { if (array_key_exists("PREVIEW_PICTURE", $arFields)) { CFile::SaveForDB($arFields, "PREVIEW_PICTURE", "iblock"); } if (array_key_exists("DETAIL_PICTURE", $arFields)) { CFile::SaveForDB($arFields, "DETAIL_PICTURE", "iblock"); } } unset($arFields["IBLOCK_ID"]); unset($arFields["WF_NEW"]); unset($arFields["IBLOCK_SECTION_ID"]); $bTimeStampNA = false; if (is_set($arFields, "TIMESTAMP_X") && ($arFields["TIMESTAMP_X"] === NULL || $arFields["TIMESTAMP_X"] === false)) { $bTimeStampNA = true; unset($arFields["TIMESTAMP_X"]); } $strUpdate = $DB->PrepareUpdate("b_iblock_element", $arFields, "iblock"); if (strlen($strUpdate) > 0) { $strUpdate .= ", "; } $strSql = "UPDATE b_iblock_element SET " . $strUpdate . ($bTimeStampNA ? "TIMESTAMP_X=TIMESTAMP_X" : "TIMESTAMP_X=now()") . " WHERE ID=" . $ID; $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__); if (array_key_exists("PROPERTY_VALUES", $arFields) && is_array($arFields["PROPERTY_VALUES"]) && count($arFields["PROPERTY_VALUES"]) > 0) { CIBlockElement::SetPropertyValues($ID, $ar_element["IBLOCK_ID"], $arFields["PROPERTY_VALUES"]); } if (is_set($arFields, "IBLOCK_SECTION")) { CIBlockElement::SetElementSection($ID, $arFields["IBLOCK_SECTION"], false, $arIBlock["RIGHTS_MODE"] === "E" ? $arIBlock["ID"] : 0); } if ($arIBlock["RIGHTS_MODE"] === "E") { $obElementRights = new CIBlockElementRights($arIBlock["ID"], $ID); if (array_key_exists("RIGHTS", $arFields) && is_array($arFields["RIGHTS"])) { $obElementRights->SetRights($arFields["RIGHTS"]); } } if (array_key_exists("IPROPERTY_TEMPLATES", $arFields)) { $ipropTemplates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($arIBlock["ID"], $ID); $ipropTemplates->set($arFields["IPROPERTY_TEMPLATES"]); } if ($bUpdateSearch) { CIBlockElement::UpdateSearch($ID, true); } if ($bWorkFlow) { CIBlockElement::WF_CleanUpHistoryCopies($ID); } //Restore saved values if ($SAVED_PREVIEW_PICTURE !== false) { $arFields["PREVIEW_PICTURE_ID"] = $arFields["PREVIEW_PICTURE"]; $arFields["PREVIEW_PICTURE"] = $SAVED_PREVIEW_PICTURE; } else { unset($arFields["PREVIEW_PICTURE"]); } if ($SAVED_DETAIL_PICTURE !== false) { $arFields["DETAIL_PICTURE_ID"] = $arFields["DETAIL_PICTURE"]; $arFields["DETAIL_PICTURE"] = $SAVED_DETAIL_PICTURE; } else { unset($arFields["DETAIL_PICTURE"]); } if ($arIBlock["FIELDS"]["LOG_ELEMENT_EDIT"]["IS_REQUIRED"] == "Y") { $USER_ID = is_object($USER) ? intval($USER->GetID()) : 0; $arEvents = GetModuleEvents("main", "OnBeforeEventLog", true); if (empty($arEvents) || ExecuteModuleEventEx($arEvents[0], array($USER_ID)) === false) { $rsElement = CIBlockElement::GetList(array(), array("=ID" => $ID, "CHECK_PERMISSIONS" => "N", "SHOW_NEW" => "Y"), false, false, array("ID", "NAME", "LIST_PAGE_URL", "CODE")); $arElement = $rsElement->GetNext(); $res = array("ID" => $ID, "CODE" => $arElement["CODE"], "NAME" => $arElement["NAME"], "ELEMENT_NAME" => $arIBlock["ELEMENT_NAME"], "USER_ID" => $USER_ID, "IBLOCK_PAGE_URL" => $arElement["LIST_PAGE_URL"]); CEventLog::Log("IBLOCK", "IBLOCK_ELEMENT_EDIT", "iblock", $arIBlock["ID"], serialize($res)); } } $Result = true; /************* QUOTA *************/ $_SESSION["SESS_RECOUNT_DB"] = "Y"; /************* QUOTA *************/ } $arFields["ID"] = $ID; $arFields["IBLOCK_ID"] = $ar_element["IBLOCK_ID"]; $arFields["RESULT"] =& $Result; if (isset($arFields["PREVIEW_PICTURE"]) && $arFields["PREVIEW_PICTURE"]["COPY_FILE"] == "Y" && $arFields["PREVIEW_PICTURE"]["copy"]) { @unlink($arFields["PREVIEW_PICTURE"]["tmp_name"]); @rmdir(dirname($arFields["PREVIEW_PICTURE"]["tmp_name"])); } if (isset($arFields["DETAIL_PICTURE"]) && $arFields["DETAIL_PICTURE"]["COPY_FILE"] == "Y" && $arFields["DETAIL_PICTURE"]["copy"]) { @unlink($arFields["DETAIL_PICTURE"]["tmp_name"]); @rmdir(dirname($arFields["DETAIL_PICTURE"]["tmp_name"])); } foreach (GetModuleEvents("iblock", "OnAfterIBlockElementUpdate", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array(&$arFields)); } if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("iblock_id_" . $arIBlock["ID"]); } return $Result; }
public static function GetNameByID($prod_id) { $res = ''; $res = CIBlockElement::GetByID($prod_id); if ($arRes = $res->GetNext()) { $res = $arRes['NAME']; } return $res; }
public static function OnBeforePrologHandler() { global $USER_FIELD_MANAGER; if (isset($_REQUEST['action_button']) && !isset($_REQUEST['action'])) { $_REQUEST['action'] = $_REQUEST['action_button']; } if (!isset($_REQUEST['action'])) { return; } $BID = isset($_REQUEST['ID']) ? (int) $_REQUEST['ID'] : 0; if ($_REQUEST['action'] == 'asd_prop_export' && $BID > 0 && check_bitrix_sessid() && CModule::IncludeModule('iblock') && CASDIblockRights::IsIBlockEdit($BID)) { $strPath = $_SERVER['DOCUMENT_ROOT'] . '/bitrix/tmp/asd.iblock/'; $strName = 'asd_props_export_' . $BID . '_' . md5(LICENSE_KEY) . '.xml'; CheckDirPath($strPath); if ($hdlOutput = fopen($strPath . $strName, 'wb')) { fwrite($hdlOutput, '<?xml version="1.0" encoding="' . SITE_CHARSET . '"?>' . "\n"); fwrite($hdlOutput, '<asd_iblock_props>' . "\n"); fwrite($hdlOutput, CASDiblockTools::ExportPropsToXML($BID, $_REQUEST['p'])); if ($_REQUEST['forms'] == 'Y') { fwrite($hdlOutput, CASDiblockTools::ExportSettingsToXML($BID, array('forms'))); } fwrite($hdlOutput, '</asd_iblock_props>' . "\n"); fclose($hdlOutput); } ?> <script type="text/javascript"> top.BX.closeWait(); top.BX.WindowManager.Get().AllowClose(); top.BX.WindowManager.Get().Close(); window.location.href = '/bitrix/tools/asd.iblock/props_export.php?ID=<?php echo $BID; ?> '; </script><?php die; } if ($_REQUEST['action'] == 'asd_prop_import' && $BID > 0 && !$_FILES['xml_file']['error'] && check_bitrix_sessid() && CModule::IncludeModule('iblock') && CASDIblockRights::IsIBlockEdit($BID)) { CASDiblockTools::ImportPropsFromXML($BID, $_FILES['xml_file']['tmp_name'], $arOldNewID); CASDiblockTools::ImportFormsFromXML($BID, $_FILES['xml_file']['tmp_name'], $arOldNewID); LocalRedirect('/bitrix/admin/iblock_edit.php?type=' . $_REQUEST['type'] . '&tabControl_active_tab=edit2&lang=' . LANGUAGE_ID . '&ID=' . $BID . '&admin=Y'); } $IBLOCK_ID = 0; if (isset($_REQUEST['IBLOCK_ID'])) { $IBLOCK_ID = (int) $_REQUEST['IBLOCK_ID']; if ($IBLOCK_ID < 0) { $IBLOCK_ID = 0; } } if ($_REQUEST['action'] == 'asd_reverse' && $IBLOCK_ID > 0 && check_bitrix_sessid() && CModule::IncludeModule('iblock') && CASDIblockRights::IsIBlockEdit($IBLOCK_ID)) { $LIST_MODE = CIBlock::GetArrayByID($IBLOCK_ID, 'LIST_MODE'); if (!strlen($LIST_MODE)) { $LIST_MODE = COption::GetOptionString('iblock', 'combined_list_mode', 'N') == 'Y' ? 'C' : 'S'; } $LIST_MODE = $LIST_MODE == 'C' ? 'S' : 'C'; $ib = new CIBlock(); $ib->Update($IBLOCK_ID, array('LIST_MODE' => $LIST_MODE)); LocalRedirect('/bitrix/admin/' . ($LIST_MODE == 'S' ? 'iblock_element_admin' : 'iblock_list_admin') . '.php?IBLOCK_ID=' . $IBLOCK_ID . '&type=' . htmlspecialcharsbx($_REQUEST['type']) . '&find_section_section=' . intval($_REQUEST['find_section_section']) . '&lang=' . LANGUAGE_ID); } $strCurPage = $GLOBALS['APPLICATION']->GetCurPage(); $bElemPage = $strCurPage == '/bitrix/admin/iblock_element_admin.php' || $strCurPage == '/bitrix/admin/cat_product_admin.php'; $bSectPage = $strCurPage == '/bitrix/admin/iblock_section_admin.php' || $strCurPage == '/bitrix/admin/cat_section_admin.php'; $bMixPage = $strCurPage == '/bitrix/admin/iblock_list_admin.php'; $bRightPage = $bElemPage || $bSectPage || $bMixPage; $successRedirect = false; if ($bRightPage && $_REQUEST['action'] == 'asd_copy_in_list' && strlen($_REQUEST['ID']) > 0) { $bDoAction = true; $_REQUEST['action'] = 'asd_copy'; $_REQUEST['asd_ib_dest'] = $IBLOCK_ID; $_REQUEST['ID'] = array($_REQUEST['ID']); } else { $bDoAction = false; } if ($bRightPage && check_bitrix_sessid() && !empty($_REQUEST['ID']) && ($_SERVER['REQUEST_METHOD'] == 'POST' || $bDoAction) && CModule::IncludeModule('iblock') && ($_REQUEST['action'] == 'asd_copy' || $_REQUEST['action'] == 'asd_move') && isset($_REQUEST['asd_ib_dest']) && (int) $_REQUEST['asd_ib_dest'] > 0 && CASDIblockRights::IsIBlockDisplay($_REQUEST['asd_ib_dest'])) { $intSrcIBlockID = $IBLOCK_ID; $intDestIBlockID = (int) $_REQUEST['asd_ib_dest']; $intSetSectID = 0; if (isset($_REQUEST['asd_sect_dest'])) { $intSetSectID = (int) $_REQUEST['asd_sect_dest']; if ($intSetSectID < 0) { $intSetSectID = 0; } } $boolCreateElement = false; $boolCreateSection = false; if ($bElemPage || $bMixPage) { $boolCreateElement = CASDIblockRights::IsSectionElementCreate($intDestIBlockID, $intSetSectID); } if ($bSectPage || $bMixPage) { $boolCreateSection = CASDIblockRights::IsSectionSectionCreate($intDestIBlockID, $intSetSectID); } if ($boolCreateElement || $boolCreateSection) { $arPropListCache = array(); $arOldPropListCache = array(); $arNamePropListCache = array(); $arOldNamePropListCache = array(); $boolUFListCache = false; $arUFListCache = array(); $arOldUFListCache = array(); $arUFEnumCache = array(); $arOldUFEnumCache = array(); $arUFNameEnumCache = array(); $arOldUFNameEnumCache = array(); $arDestIBlock = CIBlock::GetArrayByID($intDestIBlockID); $arDestIBFields = $arDestIBlock['FIELDS']; $boolCodeUnique = false; if ($arDestIBFields['CODE']['DEFAULT_VALUE']['UNIQUE'] == 'Y') { $boolCodeUnique = $intSrcIBlockID == $intDestIBlockID; } $boolSectCodeUnique = false; if ($arDestIBFields['SECTION_CODE']['DEFAULT_VALUE']['UNIQUE'] == 'Y') { $boolSectCodeUnique = $intSrcIBlockID == $intDestIBlockID; } $boolCatalog = CModule::IncludeModule('catalog'); $boolCopyCatalog = false; $boolNewCatalog = false; if ($boolCatalog) { $boolCopyCatalog = is_array(CCatalog::GetByID($intDestIBlockID)); $boolNewCatalog = $boolCopyCatalog; if ($boolCopyCatalog) { $boolCopyCatalog = is_array(CCatalog::GetByID($intSrcIBlockID)); } } $el = new CIBlockElement(); $sc = new CIBlockSection(); $obEnum = new CUserFieldEnum(); foreach ($_REQUEST['ID'] as $eID) { $boolCopyElem = false; $boolCopySect = false; if ($bMixPage) { if (substr($eID, 0, 1) != 'E') { $boolCopySect = true; } else { $boolCopyElem = true; } $ID = (int) substr($eID, 1); } else { $boolCopyElem = $bElemPage; $boolCopySect = $bSectPage; $ID = (int) $eID; } if ($boolCreateElement && $boolCopyElem) { if ($obSrc = CIBlockElement::GetByID($ID)->GetNextElement()) { $arSrc = $obSrc->GetFields(); $arSrcPr = $obSrc->GetProperties(false, array('EMPTY' => 'N')); $arSrc['PREVIEW_PICTURE'] = (int) $arSrc['PREVIEW_PICTURE']; if ($arSrc['PREVIEW_PICTURE'] > 0) { $arSrc['PREVIEW_PICTURE'] = CFile::MakeFileArray($arSrc['PREVIEW_PICTURE']); if (empty($arSrc['PREVIEW_PICTURE'])) { $arSrc['PREVIEW_PICTURE'] = false; } else { $arSrc['PREVIEW_PICTURE']['COPY_FILE'] = 'Y'; } } else { $arSrc['PREVIEW_PICTURE'] = false; } $arSrc['DETAIL_PICTURE'] = (int) $arSrc['DETAIL_PICTURE']; if ($arSrc['DETAIL_PICTURE'] > 0) { $arSrc['DETAIL_PICTURE'] = CFile::MakeFileArray($arSrc['DETAIL_PICTURE']); if (empty($arSrc['DETAIL_PICTURE'])) { $arSrc['DETAIL_PICTURE'] = false; } else { $arSrc['DETAIL_PICTURE']['COPY_FILE'] = 'Y'; } } else { $arSrc['DETAIL_PICTURE'] = false; } $arSrc = array('IBLOCK_ID' => $intDestIBlockID, 'ACTIVE' => $arSrc['ACTIVE'], 'ACTIVE_FROM' => $arSrc['ACTIVE_FROM'], 'ACTIVE_TO' => $arSrc['ACTIVE_TO'], 'SORT' => $arSrc['SORT'], 'NAME' => $arSrc['~NAME'], 'PREVIEW_PICTURE' => $arSrc['PREVIEW_PICTURE'], 'PREVIEW_TEXT' => $arSrc['~PREVIEW_TEXT'], 'PREVIEW_TEXT_TYPE' => $arSrc['PREVIEW_TEXT_TYPE'], 'DETAIL_TEXT' => $arSrc['~DETAIL_TEXT'], 'DETAIL_TEXT_TYPE' => $arSrc['DETAIL_TEXT_TYPE'], 'DETAIL_PICTURE' => $arSrc['DETAIL_PICTURE'], 'WF_STATUS_ID' => $arSrc['WF_STATUS_ID'], 'CODE' => $arSrc['~CODE'], 'TAGS' => $arSrc['~TAGS'], 'XML_ID' => $arSrc['~XML_ID'], 'PROPERTY_VALUES' => array()); if ($arDestIBFields['CODE']['IS_REQUIRED'] == 'Y') { if (!strlen($arSrc['CODE'])) { $arSrc['CODE'] = mt_rand(100000, 1000000); } } if ($arDestIBFields['CODE']['DEFAULT_VALUE']['UNIQUE'] == 'Y') { $boolElCodeUnique = $boolCodeUnique; if (!$boolCodeUnique) { $rsCheckItems = CIBlockElement::GetList(array(), array('IBLOCK_ID' => $intDestIBlockID, '=CODE' => $arSrc['CODE'], 'CHECK_PERMISSIONS' => 'N'), false, array('nTopCount' => 1), array('ID', 'IBLOCK_ID')); if ($arCheck = $rsCheckItems->Fetch()) { $boolElCodeUnique = true; } } if ($boolElCodeUnique) { $arSrc['CODE'] .= mt_rand(100, 10000); } } if ($intSetSectID > 0) { $arSrc['IBLOCK_SECTION_ID'] = $intSetSectID; } elseif ($intSrcIBlockID == $intDestIBlockID) { $arSectionList = array(); $rsSections = CIBlockElement::GetElementGroups($ID, true); while ($arSection = $rsSections->Fetch()) { $arSectionList[] = $arSection['ID']; } $arSrc['IBLOCK_SECTION'] = $arSectionList; } if ($intSrcIBlockID != $intDestIBlockID) { if (empty($arPropListCache)) { $rsProps = CIBlockProperty::GetList(array(), array('IBLOCK_ID' => $intDestIBlockID, 'PROPERTY_TYPE' => 'L', 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N')); while ($arProp = $rsProps->Fetch()) { $arValueList = array(); $arNameList = array(); $rsValues = CIBlockProperty::GetPropertyEnum($arProp['ID']); while ($arValue = $rsValues->Fetch()) { $arValueList[$arValue['XML_ID']] = $arValue['ID']; $arNameList[$arValue['ID']] = trim($arValue['VALUE']); } if (!empty($arValueList)) { $arPropListCache[$arProp['CODE']] = $arValueList; } if (!empty($arNameList)) { $arNamePropListCache[$arProp['CODE']] = $arNameList; } } } if (empty($arOldPropListCache)) { $rsProps = CIBlockProperty::GetList(array(), array('IBLOCK_ID' => $intSrcIBlockID, 'PROPERTY_TYPE' => 'L', 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N')); while ($arProp = $rsProps->Fetch()) { $arValueList = array(); $arNameList = array(); $rsValues = CIBlockProperty::GetPropertyEnum($arProp['ID']); while ($arValue = $rsValues->Fetch()) { $arValueList[$arValue['ID']] = $arValue['XML_ID']; $arNameList[$arValue['ID']] = trim($arValue['VALUE']); } if (!empty($arValueList)) { $arOldPropListCache[$arProp['CODE']] = $arValueList; } if (!empty($arNameList)) { $arOldNamePropListCache[$arProp['CODE']] = $arNameList; } } } } foreach ($arSrcPr as &$arProp) { if ($arProp['USER_TYPE'] == 'HTML') { if (is_array($arProp['~VALUE'])) { if ($arProp['MULTIPLE'] == 'N') { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = array('VALUE' => array('TEXT' => $arProp['~VALUE']['TEXT'], 'TYPE' => $arProp['~VALUE']['TYPE'])); if ($arProp['WITH_DESCRIPTION'] == 'Y') { $arSrc['PROPERTY_VALUES'][$arProp['CODE']]['DESCRIPTION'] = $arProp['~DESCRIPTION']; } } else { if (!empty($arProp['~VALUE'])) { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = array(); foreach ($arProp['~VALUE'] as $propValueKey => $propValue) { $oneNewValue = array('VALUE' => array('TEXT' => $propValue['TEXT'], 'TYPE' => $propValue['TYPE'])); if ($arProp['WITH_DESCRIPTION'] == 'Y') { $oneNewValue['DESCRIPTION'] = $arProp['~DESCRIPTION'][$propValueKey]; } $arSrc['PROPERTY_VALUES'][$arProp['CODE']][] = $oneNewValue; unset($oneNewValue); } unset($propValue, $propValueKey); } } } } elseif ($arProp['PROPERTY_TYPE'] == 'F') { if (is_array($arProp['VALUE'])) { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = array(); foreach ($arProp['VALUE'] as $propValueKey => $file) { if ($file > 0) { $tmpValue = CFile::MakeFileArray($file); if (!is_array($tmpValue)) { continue; } if ($arProp['WITH_DESCRIPTION'] == 'Y') { $tmpValue = array('VALUE' => $tmpValue, 'DESCRIPTION' => $arProp['~DESCRIPTION'][$propValueKey]); } $arSrc['PROPERTY_VALUES'][$arProp['CODE']][] = $tmpValue; } } } elseif ($arProp['VALUE'] > 0) { $tmpValue = CFile::MakeFileArray($arProp['VALUE']); if (is_array($tmpValue)) { if ($arProp['WITH_DESCRIPTION'] == 'Y') { $tmpValue = array('VALUE' => $tmpValue, 'DESCRIPTION' => $arProp['~DESCRIPTION']); } $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = $tmpValue; } } } elseif ($arProp['PROPERTY_TYPE'] == 'L') { if (!empty($arProp['VALUE_ENUM_ID'])) { if ($intSrcIBlockID == $arSrc['IBLOCK_ID']) { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = $arProp['VALUE_ENUM_ID']; } else { if (isset($arPropListCache[$arProp['CODE']]) && isset($arOldPropListCache[$arProp['CODE']])) { if (is_array($arProp['VALUE_ENUM_ID'])) { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = array(); foreach ($arProp['VALUE_ENUM_ID'] as &$intValueID) { $strValueXmlID = $arOldPropListCache[$arProp['CODE']][$intValueID]; if (isset($arPropListCache[$arProp['CODE']][$strValueXmlID])) { $arSrc['PROPERTY_VALUES'][$arProp['CODE']][] = $arPropListCache[$arProp['CODE']][$strValueXmlID]; } else { $strValueName = $arOldNamePropListCache[$arProp['CODE']][$intValueID]; $intValueKey = array_search($strValueName, $arNamePropListCache[$arProp['CODE']]); if ($intValueKey !== false) { $arSrc['PROPERTY_VALUES'][$arProp['CODE']][] = $intValueKey; } } } if (isset($intValueID)) { unset($intValueID); } if (empty($arSrc['PROPERTY_VALUES'][$arProp['CODE']])) { unset($arSrc['PROPERTY_VALUES'][$arProp['CODE']]); } } else { $strValueXmlID = $arOldPropListCache[$arProp['CODE']][$arProp['VALUE_ENUM_ID']]; if (isset($arPropListCache[$arProp['CODE']][$strValueXmlID])) { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = $arPropListCache[$arProp['CODE']][$strValueXmlID]; } else { $strValueName = $arOldNamePropListCache[$arProp['CODE']][$arProp['VALUE_ENUM_ID']]; $intValueKey = array_search($strValueName, $arNamePropListCache[$arProp['CODE']]); if ($intValueKey !== false) { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = $intValueKey; } } } } } } } elseif ($arProp['PROPERTY_TYPE'] == 'S' || $arProp['PROPERTY_TYPE'] == 'N') { if ($arProp['MULTIPLE'] == 'Y') { if (is_array($arProp['~VALUE'])) { if ($arProp['WITH_DESCRIPTION'] == 'Y') { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = array(); foreach ($arProp['~VALUE'] as $propValueKey => $propValue) { $arSrc['PROPERTY_VALUES'][$arProp['CODE']][] = array('VALUE' => $propValue, 'DESCRIPTION' => $arProp['~DESCRIPTION'][$propValueKey]); } unset($propValue, $propValueKey); } else { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = $arProp['~VALUE']; } } } else { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = $arProp['WITH_DESCRIPTION'] == 'Y' ? array('VALUE' => $arProp['~VALUE'], 'DESCRIPTION' => $arProp['~DESCRIPTION']) : $arProp['~VALUE']; } } else { $arSrc['PROPERTY_VALUES'][$arProp['CODE']] = $arProp['~VALUE']; } } if (isset($arProp)) { unset($arProp); } AddMessage2Log($arSrc['PROPERTY_VALUES']); $intNewID = $el->Add($arSrc, true, true, true); if ($intNewID) { if ($boolCatalog && $boolCopyCatalog) { $priceRes = CPrice::GetListEx(array(), array('PRODUCT_ID' => $ID), false, false, array('PRODUCT_ID', 'EXTRA_ID', 'CATALOG_GROUP_ID', 'PRICE', 'CURRENCY', 'QUANTITY_FROM', 'QUANTITY_TO')); while ($arPrice = $priceRes->Fetch()) { $arPrice['PRODUCT_ID'] = $intNewID; CPrice::Add($arPrice); } } if ($boolCatalog && $boolNewCatalog) { $arProduct = array('ID' => $intNewID); if ($boolCopyCatalog) { $productRes = CCatalogProduct::GetList(array(), array('ID' => $ID), false, false, array('QUANTITY', 'QUANTITY_TRACE_ORIG', 'CAN_BUY_ZERO_ORIG', 'NEGATIVE_AMOUNT_TRACE_ORIG', 'SUBSCRIBE_ORIG', 'WEIGHT', 'PRICE_TYPE', 'RECUR_SCHEME_TYPE', 'RECUR_SCHEME_LENGTH', 'TRIAL_PRICE_ID', 'WITHOUT_ORDER', 'SELECT_BEST_PRICE', 'VAT_ID', 'VAT_INCLUDED', 'WIDTH', 'LENGTH', 'HEIGHT', 'PURCHASING_PRICE', 'PURCHASING_CURRENCY', 'MEASURE')); if ($arCurProduct = $productRes->Fetch()) { $arProduct = $arCurProduct; $arProduct['ID'] = $intNewID; $arProduct['QUANTITY_TRACE'] = $arProduct['QUANTITY_TRACE_ORIG']; $arProduct['CAN_BUY_ZERO'] = $arProduct['CAN_BUY_ZERO_ORIG']; $arProduct['NEGATIVE_AMOUNT_TRACE'] = $arProduct['NEGATIVE_AMOUNT_TRACE_ORIG']; if (isset($arProduct['SUBSCRIBE_ORIG'])) { $arProduct['SUBSCRIBE'] = $arProduct['SUBSCRIBE_ORIG']; } foreach ($arProduct as $productKey => $productValue) { if ($productValue === null) { unset($arProduct[$productKey]); } } } } CCatalogProduct::Add($arProduct, false); } if ($_REQUEST['action'] == 'asd_move') { if (CASDIblockRights::IsElementDelete($intSrcIBlockID, $ID)) { $el->Delete($ID); } else { CASDiblock::$error .= '[' . $ID . '] ' . GetMessage('ASD_ACTION_ERR_DELETE_ELEMENT_RIGHTS') . "\n"; } } } else { CASDiblock::$error .= '[' . $ID . '] ' . $el->LAST_ERROR . "\n"; } } } if ($boolCreateSection && $boolCopySect) { if ($_REQUEST['action'] == 'asd_move') { continue; } $rsSections = CIBlockSection::GetList(array(), array('ID' => $ID, 'IBLOCK_ID' => $intSrcIBlockID), false, array('ID', 'NAME', 'XML_ID', 'CODE', 'IBLOCK_SECTION_ID', 'IBLOCK_ID', 'ACTIVE', 'SORT', 'PICTURE', 'DESCRIPTION', 'DESCRIPTION_TYPE', 'DETAIL_PICTURE', 'SOCNET_GROUP_ID', 'UF_*')); if ($arSrcSect = $rsSections->Fetch()) { $arDestSect = $arSrcSect; unset($arDestSect['ID']); $arDestSect['IBLOCK_ID'] = $intDestIBlockID; if ($arDestIBFields['SECTION_CODE']['IS_REQUIRED'] == 'Y') { if (!strlen($arDestSect['CODE'])) { $arDestSect['CODE'] = mt_rand(100000, 1000000); } } if ($arDestIBFields['SECTION_CODE']['DEFAULT_VALUE']['UNIQUE'] == 'Y') { $boolScCodeUnique = $boolSectCodeUnique; if (!$boolSectCodeUnique) { $rsCheckItems = CIBlockElement::GetList(array(), array('IBLOCK_ID' => $intDestIBlockID, '=CODE' => $arSrc['CODE'], 'CHECK_PERMISSIONS' => 'N'), false, array('nTopCount' => 1), array('ID', 'IBLOCK_ID')); if ($arCheck = $rsCheckItems->Fetch()) { $boolScCodeUnique = true; } } if ($boolScCodeUnique) { $arDestSect['CODE'] .= mt_rand(100, 10000); } } if ($intSetSectID > 0) { $arDestSect['IBLOCK_SECTION_ID'] = $intSetSectID; } elseif ($intSrcIBlockID != $intDestIBlockID) { $arDestSect['IBLOCK_SECTION_ID'] = 0; } $arDestSect['PICTURE'] = (int) $arDestSect['PICTURE']; if ($arDestSect['PICTURE'] > 0) { $arDestSect['PICTURE'] = CFile::MakeFileArray($arDestSect['PICTURE']); if (empty($arDestSect['PICTURE'])) { $arDestSect['PICTURE'] = false; } else { $arDestSect['PICTURE']['COPY_FILE'] = 'Y'; } } else { $arDestSect['PICTURE'] = false; } $arDestSect['DETAIL_PICTURE'] = (int) $arDestSect['DETAIL_PICTURE']; if ($arDestSect['DETAIL_PICTURE'] > 0) { $arDestSect['DETAIL_PICTURE'] = CFile::MakeFileArray($arDestSect['DETAIL_PICTURE']); if (empty($arDestSect['DETAIL_PICTURE'])) { $arDestSect['DETAIL_PICTURE'] = false; } else { $arDestSect['DETAIL_PICTURE']['COPY_FILE'] = 'Y'; } } else { $arDestSect['DETAIL_PICTURE'] = false; } if (!$boolUFListCache) { $boolUFListCache = true; $arUFListCache = $USER_FIELD_MANAGER->GetUserFields('IBLOCK_' . $intDestIBlockID . '_SECTION'); if (!empty($arUFListCache)) { if ($intSrcIBlockID != $intDestIBlockID) { $arOldUFListCache = $USER_FIELD_MANAGER->GetUserFields('IBLOCK_' . $intSrcIBlockID . '_SECTION'); if (empty($arOldUFListCache)) { $arUFListCache = array(); } } else { $arOldUFListCache = $arUFListCache; } } if (!empty($arUFListCache)) { if ($intSrcIBlockID != $intDestIBlockID) { foreach ($arUFListCache as &$arOneUserField) { if ('enum' == $arOneUserField['USER_TYPE']['BASE_TYPE']) { $arUFEnumCache[$arOneUserField['FIELD_NAME']] = array(); $arUFNameEnumCache[$arOneUserField['FIELD_NAME']] = array(); $rsEnum = $obEnum->GetList(array(), array('USER_FIELD_ID' => $arOneUserField['ID'])); while ($arEnum = $rsEnum->Fetch()) { $arUFEnumCache[$arOneUserField['FIELD_NAME']][$arEnum['XML_ID']] = $arEnum['ID']; $arUFNameEnumCache[$arOneUserField['FIELD_NAME']][$arEnum['ID']] = trim($arEnum['VALUE']); } } } if (isset($arOneUserField)) { unset($arOneUserField); } foreach ($arOldUFListCache as &$arOneUserField) { if ($arOneUserField['USER_TYPE']['BASE_TYPE'] == 'enum') { $arOldUFEnumCache[$arOneUserField['FIELD_NAME']] = array(); $arOldUFNameEnumCache[$arOneUserField['FIELD_NAME']] = array(); $rsEnum = $obEnum->GetList(array(), array('USER_FIELD_ID' => $arOneUserField['ID'])); while ($arEnum = $rsEnum->Fetch()) { $arOldUFEnumCache[$arOneUserField['FIELD_NAME']][$arEnum['ID']] = $arEnum['XML_ID']; $arOldUFNameEnumCache[$arOneUserField['FIELD_NAME']][$arEnum['ID']] = trim($arEnum['VALUE']); } } } if (isset($arOneUserField)) { unset($arOneUserField); } } } } if (!empty($arUFListCache)) { foreach ($arUFListCache as &$arOneUserField) { if (!isset($arDestSect[$arOneUserField['FIELD_NAME']])) { continue; } if ($arOneUserField['USER_TYPE']['BASE_TYPE'] == 'file') { if (!empty($arDestSect[$arOneUserField['FIELD_NAME']])) { if (is_array($arDestSect[$arOneUserField['FIELD_NAME']])) { $arNewFileList = array(); foreach ($arDestSect[$arOneUserField['FIELD_NAME']] as &$intFileID) { $arNewFile = false; $intFileID = (int) $intFileID; if ($intFileID > 0) { $arNewFile = CFile::MakeFileArray($intFileID); } if (!empty($arNewFile)) { $arNewFileList[] = $arNewFile; } } if (isset($intFileID)) { unset($intFileID); } $arDestSect[$arOneUserField['FIELD_NAME']] = !empty($arNewFileList) ? $arNewFileList : false; } else { $arNewFile = false; $intFileID = (int) $arDestSect[$arOneUserField['FIELD_NAME']]; if ($intFileID > 0) { $arNewFile = CFile::MakeFileArray($intFileID); } $arDestSect[$arOneUserField['FIELD_NAME']] = !empty($arNewFile) ? $arNewFile : false; } } else { $arDestSect[$arOneUserField['FIELD_NAME']] = false; } } elseif ($arOneUserField['USER_TYPE']['BASE_TYPE'] == 'enum') { if (!empty($arDestSect[$arOneUserField['FIELD_NAME']])) { if ($intSrcIBlockID != $intDestIBlockID) { if (array_key_exists($arOneUserField['FIELD_NAME'], $arUFEnumCache) && array_key_exists($arOneUserField['FIELD_NAME'], $arOldUFEnumCache)) { if (is_array($arDestSect[$arOneUserField['FIELD_NAME']])) { $arNewEnumList = array(); foreach ($arDestSect[$arOneUserField['FIELD_NAME']] as &$intValueID) { $strValueXmlID = $arOldUFEnumCache[$arOneUserField['FIELD_NAME']][$intValueID]; if (array_key_exists($strValueXmlID, $arUFEnumCache[$arOneUserField['FIELD_NAME']])) { $arNewEnumList[] = $arUFEnumCache[$arOneUserField['FIELD_NAME']][$strValueXmlID]; } else { $strValueName = $arOldUFNameEnumCache[$arOneUserField['FIELD_NAME']][$intValueID]; $intValueKey = array_search($strValueName, $arUFNameEnumCache[$arOneUserField['FIELD_NAME']]); if ($intValueKey !== false) { $arNewEnumList[] = $intValueKey; } } } if (isset($intValueID)) { unset($intValueID); } if (!empty($arNewEnumList)) { $arDestSect[$arOneUserField['FIELD_NAME']] = $arNewEnumList; } } else { $strValueXmlID = $arOldUFEnumCache[$arOneUserField['FIELD_NAME']][$arDestSect[$arOneUserField['FIELD_NAME']]]; if (array_key_exists($strValueXmlID, $arUFEnumCache[$arOneUserField['FIELD_NAME']])) { $arDestSect[$arOneUserField['FIELD_NAME']] = $arUFEnumCache[$arOneUserField['FIELD_NAME']][$strValueXmlID]; } else { $strValueName = $arOldUFNameEnumCache[$arOneUserField['FIELD_NAME']][$arDestSect[$arOneUserField['FIELD_NAME']]]; $intValueKey = array_search($strValueName, $arUFNameEnumCache[$arOneUserField['FIELD_NAME']]); if ($intValueKey !== false) { $arDestSect[$arOneUserField['FIELD_NAME']] = $intValueKey; } } } } } } else { $arDestSect[$arOneUserField['FIELD_NAME']] = false; } } } if (isset($arOneUserField)) { unset($arOneUserField); } } $intNewID = $sc->Add($arDestSect); if (!$intNewID) { CASDiblock::$error .= '[' . $ID . '] ' . $sc->LAST_ERROR . "\n"; } } } } $successRedirect = true; } unset($_REQUEST['action']); if (isset($_REQUEST['action_button'])) { unset($_REQUEST['action_button']); } if ($successRedirect) { LocalRedirect($GLOBALS['APPLICATION']->GetCurPageParam('', array('action', 'action_button', 'asd_ib_dest', 'asd_sect_dest', 'ID'))); } } if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'asd_remove' && $IBLOCK_ID > 0 && isset($_REQUEST['find_section_section']) && check_bitrix_sessid() && CASDIblockRights::IsIBlockDisplay($IBLOCK_ID)) { $intSectionID = (int) $_REQUEST['find_section_section']; if ($intSectionID > 0) { $strCurPage = $GLOBALS['APPLICATION']->GetCurPage(); $bElemPage = $strCurPage == '/bitrix/admin/iblock_element_admin.php' || $strCurPage == '/bitrix/admin/cat_product_admin.php'; $bMixPage = $strCurPage == '/bitrix/admin/iblock_list_admin.php'; if ($bElemPage || $bMixPage) { foreach ($_REQUEST['ID'] as $eID) { if ($bMixPage) { if (substr($eID, 0, 1) != 'E') { continue; } $ID = (int) substr($eID, 1); } else { $ID = (int) $eID; } if ($ID <= 0) { continue; } if (CASDIblockRights::IsElementEdit($IBLOCK_ID, $ID)) { $arSectionList = array(); $rsSections = CIBlockElement::GetElementGroups($ID, true); while ($arSection = $rsSections->Fetch()) { $arSection['ID'] = (int) $arSection['ID']; if ($arSection['ID'] != $intSectionID) { $arSectionList[] = $arSection['ID']; } } CIBlockElement::SetElementSection($ID, $arSectionList, false); $successRedirect = true; } } } } unset($_REQUEST['action']); if (isset($_REQUEST['action_button'])) { unset($_REQUEST['action_button']); } if ($successRedirect) { LocalRedirect($GLOBALS['APPLICATION']->GetCurPageParam('', array('action', 'action_button'))); } } }
<?php require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; CModule::IncludeModule("sale"); CModule::IncludeModule("catalog"); CModule::IncludeModule("iblock"); switch ($_REQUEST["action"]) { case "add": if (intval($_REQUEST["productid"]) > 0) { //добавление товара в корзину //$allproducts = explode("-", $_REQUEST["productid"]); //foreach ($allproducts as $product) { $product = intval($_REQUEST["productid"]); //$product = intval($_POST["add2basket"]); //проверим $res = CIBlockElement::GetByID($product); if ($ar_res = $res->GetNext()) { $arProps = array(); $PRODUCT = $ar_res; $ar_res = CPrice::GetBasePrice($PRODUCT[ID]); $price = $ar_res["PRICE"]; if (intval($price) == 0) { $price = 0; $arFields = array("PRODUCT_ID" => $PRODUCT[ID], "QUANTITY" => $quantity, "PRODUCT_XML_ID" => $PRODUCT[ID], "PRICE" => $price, "CURRENCY" => "RUB", "LID" => "s1", "NAME" => $PRODUCT[NAME]); $basket_id = CSaleBasket::Add($arFields); $arItem = CSaleBasket::GetByID($basket_id); if ($arItem["QUANTITY"] != $quantity) { $arFields = array("QUANTITY" => $arItem["QUANTITY"] + $quantity); CSaleBasket::Update($basket_id, $arFields); } } else {
$raz = $ds + (cal_days_in_month(CAL_GREGORIAN, $mn, $yn) - $dn) . " д."; } } } else { $raz = $ds - $dn . " д."; } } } else { $raz = "срок истёк"; } //date("m"); $mass["DATE_N"] = date("d.m.Y H:i:s"); $mass["DATE_F"] = $datefin; $mass["DATE_R"] = date("d.m.Y H:i:s", strtotime($mass["DATE_F"]) - strtotime($mass["DATE_N"])); $mass["DIFFERENCE_DATE"] = $raz; //$raz=date("d.m.Y H:i:s",strtotime($datefin)-strtotime(date("d.m.Y H:i:s"))); $resClient = CIBlockElement::GetByID($mass["PROPERTY_CNTRCT_CLIENT_VALUE"]); if ($ar_res = $resClient->GetNext()) { $mass["CLIENT_NAME"] = $ar_res["NAME"]; } $mass["AM_VALUE"] = $arFields["NAME"]; $mass["AM_ID"] = $arFields["ID"]; //$end=$datefin;//date("Y",strtotime($mass["PROPERTY_CNTRCT_VALID_FROM_DATE_VALUE"])); // $mass["OSTATOK"]=$raz;//date("d.m.Y H:i:s"); $arResult[] = $mass; //$arResult } } echo json_encode($arResult); } require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";
function WF_SetMove($NEW_ID, $OLD_ID = 0) { if (CModule::IncludeModule("workflow")) { $err_mess = "FILE: " . __FILE__ . "<br>LINE: "; global $DB, $USER; $USER_ID = is_object($USER) ? intval($USER->GetID()) : 0; $NEW = "Y"; $OLD_ID = intval($OLD_ID); $NEW_ID = intval($NEW_ID); if ($OLD_ID > 0) { $old = $DB->Query("SELECT WF_STATUS_ID FROM b_iblock_element WHERE ID = " . $OLD_ID, false, $err_mess . __LINE__); if ($old_r = $old->Fetch()) { $NEW = "N"; } } CTimeZone::Disable(); $new = CIBlockElement::GetByID($NEW_ID); CTimeZone::Enable(); if ($new_r = $new->Fetch()) { $NEW_STATUS_ID = intval($new_r["WF_STATUS_ID"]); $OLD_STATUS_ID = intval($old_r["WF_STATUS_ID"]); $PARENT_ID = intval($new_r["WF_PARENT_ELEMENT_ID"]); CTimeZone::Disable(); $parent = CIBlockElement::GetByID($PARENT_ID); CTimeZone::Enable(); if ($parent_r = $parent->Fetch()) { $arFields = array("TIMESTAMP_X" => $DB->GetNowFunction(), "IBLOCK_ELEMENT_ID" => $PARENT_ID, "OLD_STATUS_ID" => $OLD_STATUS_ID, "STATUS_ID" => $NEW_STATUS_ID, "USER_ID" => $USER_ID); $DB->Insert("b_workflow_move", $arFields, $err_mess . __LINE__); if ($NEW_STATUS_ID != $OLD_STATUS_ID) { // Get creator Email $strSql = "SELECT EMAIL FROM b_user WHERE ID = " . intval($parent_r["CREATED_BY"]); $rs = $DB->Query($strSql, false, $err_mess . __LINE__); if ($ar = $rs->Fetch()) { $parent_r["CREATED_BY_EMAIL"] = $ar["EMAIL"]; } else { $parent_r["CREATED_BY_EMAIL"] = ""; } // gather email of the workflow admins $WORKFLOW_ADMIN_GROUP_ID = intval(COption::GetOptionString("workflow", "WORKFLOW_ADMIN_GROUP_ID")); $strSql = "\n\t\t\t\t\t\t\tSELECT U.ID, U.EMAIL\n\t\t\t\t\t\t\tFROM b_user U, b_user_group UG\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tUG.GROUP_ID=" . $WORKFLOW_ADMIN_GROUP_ID . "\n\t\t\t\t\t\t\t\tAND U.ID = UG.USER_ID\n\t\t\t\t\t\t\t\tAND U.ACTIVE='Y'\n\t\t\t\t\t\t"; $rs = $DB->Query($strSql, false, $err_mess . __LINE__); $arAdmin = array(); while ($ar = $rs->Fetch()) { $arAdmin[$ar["ID"]] = $ar["EMAIL"]; } // gather email for BCC $arBCC = array(); // gather all who changed doc in its current status $strSql = "\n\t\t\t\t\t\t\tSELECT U.EMAIL\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\tb_workflow_move WM\n\t\t\t\t\t\t\t\tINNER JOIN b_user U on U.ID = WM.USER_ID\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tIBLOCK_ELEMENT_ID = " . $PARENT_ID . "\n\t\t\t\t\t\t\t\tAND OLD_STATUS_ID = " . $NEW_STATUS_ID . "\n\t\t\t\t\t\t"; $rs = $DB->Query($strSql, false, $err_mess . __LINE__); while ($ar = $rs->Fetch()) { $arBCC[$ar["EMAIL"]] = $ar["EMAIL"]; } // gather all editors // in case status have notifier flag //First those who have write permissions on iblock $strSql = "\n\t\t\t\t\t\t\tSELECT U.EMAIL\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\tb_workflow_status S\n\t\t\t\t\t\t\t\tINNER JOIN b_workflow_status2group SG on SG.STATUS_ID = S.ID\n\t\t\t\t\t\t\t\tINNER JOIN b_iblock_group IG on IG.GROUP_ID = SG.GROUP_ID\n\t\t\t\t\t\t\t\tINNER JOIN b_user_group UG on UG.GROUP_ID = IG.GROUP_ID\n\t\t\t\t\t\t\t\tINNER JOIN b_user U on U.ID = UG.USER_ID\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tS.ID = " . $NEW_STATUS_ID . "\n\t\t\t\t\t\t\t\tAND S.NOTIFY = 'Y'\n\t\t\t\t\t\t\t\tAND IG.IBLOCK_ID = " . intval($new_r["IBLOCK_ID"]) . "\n\t\t\t\t\t\t\t\tAND IG.PERMISSION >= 'U'\n\t\t\t\t\t\t\t\tAND SG.PERMISSION_TYPE = '2'\n\t\t\t\t\t\t\t\tAND U.ACTIVE = 'Y'\n\t\t\t\t\t\t"; $rs = $DB->Query($strSql, false, $err_mess . __LINE__); while ($ar = $rs->Fetch()) { $arBCC[$ar["EMAIL"]] = $ar["EMAIL"]; } //Second admins if they in PERMISSION_TYPE = 2 list //because they have all the rights $strSql = "\n\t\t\t\t\t\t\tSELECT U.EMAIL\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\tb_workflow_status S\n\t\t\t\t\t\t\t\tINNER JOIN b_workflow_status2group SG on SG.STATUS_ID = S.ID\n\t\t\t\t\t\t\t\tINNER JOIN b_user_group UG on UG.GROUP_ID = SG.GROUP_ID\n\t\t\t\t\t\t\t\tINNER JOIN b_user U on U.ID = UG.USER_ID\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tS.ID = " . $NEW_STATUS_ID . "\n\t\t\t\t\t\t\t\tAND S.NOTIFY = 'Y'\n\t\t\t\t\t\t\t\tAND SG.GROUP_ID = 1\n\t\t\t\t\t\t\t\tAND SG.PERMISSION_TYPE = '2'\n\t\t\t\t\t\t\t\tAND U.ACTIVE = 'Y'\n\t\t\t\t\t\t"; $rs = $DB->Query($strSql, false, $err_mess . __LINE__); while ($ar = $rs->Fetch()) { $arBCC[$ar["EMAIL"]] = $ar["EMAIL"]; } $iblock_r = CIBlock::GetArrayByID($new_r["IBLOCK_ID"]); $iblock_r["LID"] = array(); $rsIBlockSite = $DB->Query("SELECT SITE_ID FROM b_iblock_site WHERE IBLOCK_ID= " . intval($new_r["IBLOCK_ID"])); while ($arIBlockSite = $rsIBlockSite->Fetch()) { $iblock_r["LID"][] = $arIBlockSite["SITE_ID"]; } if (array_key_exists($new_r["MODIFIED_BY"], $arAdmin)) { $new_r["USER_NAME"] .= " (Admin)"; } // it is not new doc if ($NEW != "Y") { if (array_key_exists($parent_r["CREATED_BY"], $arAdmin)) { $parent_r["CREATED_USER_NAME"] .= " (Admin)"; } // send change notification $arEventFields = array("ID" => $PARENT_ID, "IBLOCK_ID" => $new_r["IBLOCK_ID"], "IBLOCK_TYPE" => $iblock_r["IBLOCK_TYPE_ID"], "ADMIN_EMAIL" => implode(",", $arAdmin), "BCC" => implode(",", $arBCC), "PREV_STATUS_ID" => $OLD_STATUS_ID, "PREV_STATUS_TITLE" => CIblockElement::WF_GetStatusTitle($OLD_STATUS_ID), "STATUS_ID" => $NEW_STATUS_ID, "STATUS_TITLE" => CIblockElement::WF_GetStatusTitle($NEW_STATUS_ID), "DATE_CREATE" => $parent_r["DATE_CREATE"], "CREATED_BY_ID" => $parent_r["CREATED_BY"], "CREATED_BY_NAME" => $parent_r["CREATED_USER_NAME"], "CREATED_BY_EMAIL" => $parent_r["CREATED_BY_EMAIL"], "DATE_MODIFY" => $new_r["TIMESTAMP_X"], "MODIFIED_BY_ID" => $new_r["MODIFIED_BY"], "MODIFIED_BY_NAME" => $new_r["USER_NAME"], "NAME" => $new_r["NAME"], "SECTION_ID" => $new_r["IBLOCK_SECTION_ID"], "PREVIEW_HTML" => $new_r["PREVIEW_TEXT_TYPE"] == "html" ? $new_r["PREVIEW_TEXT"] : TxtToHtml($new_r["PREVIEW_TEXT"]), "PREVIEW_TEXT" => $new_r["PREVIEW_TEXT_TYPE"] == "text" ? $new_r["PREVIEW_TEXT"] : HtmlToTxt($new_r["PREVIEW_TEXT"]), "PREVIEW" => $new_r["PREVIEW_TEXT"], "PREVIEW_TYPE" => $new_r["PREVIEW_TEXT_TYPE"], "DETAIL_HTML" => $new_r["DETAIL_TEXT_TYPE"] == "html" ? $new_r["DETAIL_TEXT"] : TxtToHtml($new_r["DETAIL_TEXT"]), "DETAIL_TEXT" => $new_r["DETAIL_TEXT_TYPE"] == "text" ? $new_r["DETAIL_TEXT"] : HtmlToTxt($new_r["DETAIL_TEXT"]), "DETAIL" => $new_r["DETAIL_TEXT"], "DETAIL_TYPE" => $new_r["DETAIL_TEXT_TYPE"], "COMMENTS" => $new_r["WF_COMMENTS"]); CEvent::Send("WF_IBLOCK_STATUS_CHANGE", $iblock_r["LID"], $arEventFields); } else { // it was new one $arEventFields = array("ID" => $PARENT_ID, "IBLOCK_ID" => $new_r["IBLOCK_ID"], "IBLOCK_TYPE" => $iblock_r["IBLOCK_TYPE_ID"], "ADMIN_EMAIL" => implode(",", $arAdmin), "BCC" => implode(",", $arBCC), "STATUS_ID" => $NEW_STATUS_ID, "STATUS_TITLE" => CIblockElement::WF_GetStatusTitle($NEW_STATUS_ID), "DATE_CREATE" => $parent_r["DATE_CREATE"], "CREATED_BY_ID" => $parent_r["CREATED_BY"], "CREATED_BY_NAME" => $parent_r["CREATED_USER_NAME"], "CREATED_BY_EMAIL" => $parent_r["CREATED_BY_EMAIL"], "NAME" => $new_r["NAME"], "PREVIEW_HTML" => $new_r["PREVIEW_TEXT_TYPE"] == "html" ? $new_r["PREVIEW_TEXT"] : TxtToHtml($new_r["PREVIEW_TEXT"]), "PREVIEW_TEXT" => $new_r["PREVIEW_TEXT_TYPE"] == "text" ? $new_r["PREVIEW_TEXT"] : HtmlToTxt($new_r["PREVIEW_TEXT"]), "PREVIEW" => $new_r["PREVIEW_TEXT"], "PREVIEW_TYPE" => $new_r["PREVIEW_TEXT_TYPE"], "SECTION_ID" => $new_r["IBLOCK_SECTION_ID"], "DETAIL_HTML" => $new_r["DETAIL_TEXT_TYPE"] == "html" ? $new_r["DETAIL_TEXT"] : TxtToHtml($new_r["DETAIL_TEXT"]), "DETAIL_TEXT" => $new_r["DETAIL_TEXT_TYPE"] == "text" ? $new_r["DETAIL_TEXT"] : HtmlToTxt($new_r["DETAIL_TEXT"]), "DETAIL" => $new_r["DETAIL_TEXT"], "DETAIL_TYPE" => $new_r["DETAIL_TEXT_TYPE"], "COMMENTS" => $new_r["WF_COMMENTS"]); CEvent::Send("WF_NEW_IBLOCK_ELEMENT", $iblock_r["LID"], $arEventFields); } } } } } }
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); /** @var array $arParams */ /** @var array $arResult */ /** @global CMain $APPLICATION */ /** @global CUser $USER */ /** @global CDatabase $DB */ /** @var CBitrixComponentTemplate $this */ $res = CIBlockElement::GetByID($arResult['ID']); if($ar_res = $res->GetNext()) $arResult['DATE_ACTIVE'] = dateActiveFrom($ar_res['DATE_ACTIVE_FROM']); ?>
<?php require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; $url = substr($_SERVER['REQUEST_URI'], strlen('/bitrix/tools/ws_tasks/')); $matches = array(); if (preg_match_all("/[\\w]+.aspx\\?ID=([\\d]+)(.*)/i", $url, $matches)) { if (COption::GetOptionString("intranet", "use_tasks_2_0", "N") != "Y") { if (($ID = intval($matches[1][0])) && CModule::IncludeModule('iblock')) { $dbRes = CIBlockElement::GetByID($ID); if ($obElement = $dbRes->GetNextElement()) { $arFields = $obElement->GetFields(); $obSection = CIBLockSection::GetByID($arFields['IBLOCK_SECTION_ID']); $arSection = $obSection->Fetch(); if ($arSection['XML_ID'] == 'users_tasks') { $arProperty = $obElement->GetProperty('TaskAssignedTo'); $url = str_replace(array('#USER_ID#', '#TASK_ID#'), array($arProperty['VALUE'], $ID), COption::GetOptionString('intranet', 'path_task_user_entry', '/company/personal/user/#USER_ID#/tasks/task/view/#TASK_ID#/')); } else { while (!$arSection['XML_ID']) { if ($arSection['IBLOCK_SECTION_ID'] <= 0) { break; } $obSection = CIBLockSection::GetByID($arSection['IBLOCK_SECTION_ID']); $arSection = $obSection->Fetch(); } if ($arSection['XML_ID']) { $url = str_replace(array('#GROUP_ID#', '#TASK_ID#'), array($arSection['XML_ID'], $ID), COption::GetOptionString('intranet', 'path_task_group_entry', '/workgroups/group/#GROUP_ID#/tasks/task/view/#TASK_ID#/')); } else { $url = str_replace(array('#USER_ID#'), array(intval($url)), COption::GetOptionString('intranet', 'path_task_user', '/company/personal/user/#USER_ID#/tasks/')); } } }
public static function OnAdminContextMenuShowHandler(&$items) { if ($GLOBALS['APPLICATION']->GetCurPage() == '/bitrix/admin/iblock_edit.php' && $_REQUEST['ID'] > 0) { CJSCore::Init(array('asd_iblock')); $BID = intval($_REQUEST['ID']); $importAction = "javascript:(new BX.CDialog({\n\t\t\t\t\t\t\twidth: 310,\n\t\t\t\t\t\t\theight: 110,\n\t\t\t\t\t\t\tresizable: false,\n\t\t\t\t\t\t\ttitle: '" . GetMessage('ASD_ACTION_IMPORT_FORM') . "',\n\t\t\t\t\t\t\tcontent: '<form action=\"" . CUtil::JSEscape($GLOBALS['APPLICATION']->GetCurPageParam('', array('action'))) . "\" method=\"post\" enctype=\"multipart/form-data\">" . bitrix_sessid_post() . "<input type=\"hidden\" name=\"action\" value=\"asd_prop_import\" />" . "<input type=\"hidden\" name=\"ID\" value=\"" . $BID . "\" />" . "<input type=\"hidden\" name=\"type\" value=\"" . htmlspecialcharsbx($_REQUEST['type']) . "\" />" . "<input type=\"file\" name=\"xml_file\" /><br/><br/>" . "<center><input type=\"submit\" value=\"" . GetMessage('ASD_ACTION_IMPORT_SUBMIT') . "\" /></center>" . "</form>'\n\t\t\t\t\t\t})).Show()"; $exportAction = "javascript:(new BX.CDialog({\n\t\t\t\t\t\t\twidth: 310,\n\t\t\t\t\t\t\theight: 200,\n\t\t\t\t\t\t\tresizable: false,\n\t\t\t\t\t\t\ttitle: '" . GetMessage('ASD_ACTION_EXPORT_FORM') . "',\n\t\t\t\t\t\t\tbuttons: [BX.CAdminDialog.btnSave, BX.CAdminDialog.btnCancel],\n\t\t\t\t\t\t\tcontent: '<form action=\"" . CUtil::JSEscape($GLOBALS['APPLICATION']->GetCurPageParam('', array('action'))) . "\" method=\"post\" enctype=\"multipart/form-data\">" . bitrix_sessid_post() . "<input type=\"hidden\" name=\"action\" value=\"asd_prop_export\" />" . "<input type=\"hidden\" name=\"ID\" value=\"" . $BID . "\" />"; $exportAction .= '<input type="checkbox" name="forms" id="forms" value="Y" />' . '<label for="forms">' . GetMessage('ASD_ACTION_EXPORT_FORMS') . '</label><br/><br/>'; $exportAction .= '<input type="checkbox" id="asd_export_prop_all" checked="checked" />' . '<label for="asd_export_prop_all"><i>' . GetMessage('ASD_ACTION_EXPORT_ALL') . '</i></label><br/>'; $rsProp = CIBlockProperty::GetList(array(), array('IBLOCK_ID' => $BID)); while ($arProp = $rsProp->GetNext()) { $exportAction .= '<input type="checkbox" class="asd_export_prop" name="p[' . $arProp['ID'] . ']" id="p' . $arProp['ID'] . '" value="Y" checked="checked" />' . '<label for="p' . $arProp['ID'] . '" title="' . $arProp['CODE'] . '">' . $arProp['NAME'] . '</label><br/>'; } $exportAction .= "</form>'\n\t\t\t\t\t\t\t})).Show()"; $items[] = array('TEXT' => GetMessage('ASD_ACTION_EXPORT_IMPORT'), 'TITLE' => GetMessage('ASD_ACTION_EXPORT_IMPORT_TITLE'), 'LINK' => '#', 'ICON' => 'btn_settings', 'MENU' => array(array('TEXT' => GetMessage('ASD_ACTION_EXPORT_PROP'), 'ACTION' => version_compare(SM_VERSION, '11.5.5') >= 0 ? $exportAction : htmlspecialcharsbx($exportAction)), array('TEXT' => GetMessage('ASD_ACTION_IMPORT_PROP'), 'ACTION' => version_compare(SM_VERSION, '11.5.5') >= 0 ? $importAction : htmlspecialcharsbx($importAction)))); } if (($GLOBALS['APPLICATION']->GetCurPage() == '/bitrix/admin/iblock_element_edit.php' || $GLOBALS['APPLICATION']->GetCurPage() == '/bitrix/admin/cat_product_edit.php') && $_REQUEST['ID'] > 0 && (!isset($_REQUEST['action']) && $_REQUEST['action'] != 'copy')) { if ($arElement = CIBlockElement::GetByID($_REQUEST['ID'])->GetNext()) { if (strlen($arElement['DETAIL_PAGE_URL'])) { $items[] = array('ICON' => 'asd_iblock_show_element', 'TEXT' => GetMessage('ASD_ACTION_VIEW_DETAIL'), 'LINK' => str_replace('%2F', '/', $arElement['DETAIL_PAGE_URL'])); } } } }
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); if (CModule::IncludeModuleEx('prmedia.treelikecomments') != MODULE_DEMO_EXPIRED) { if ($this->StartResultCache($arParams['CACHE_TIME'])) { CModule::IncludeModule("prmedia.treelikecomments"); CModule::IncludeModule("iblock"); $arResult['TITLE'] = $arParams['TITLE']; $res = CTreelikeComments::getPopularElements($arParams['COUNT']); while ($arRes = $res->GetNext()) { $element = CIBlockElement::GetByID($arRes['OBJECT_ID']); if ($arElement = $element->GetNext()) { $detailURL = $arParams['DETAIL_PAGE_URL']; if (preg_match('/ID/i', $detailURL)) $detailURL = str_replace('#ID#', $arElement['ID'], $detailURL); if (preg_match('/CODE/i', $detailURL)) $detailURL = str_replace('#CODE#', $arElement['CODE'], $detailURL); if (preg_match('/DETAIL_PAGE_URL/i', $detailURL)) $detailURL = str_replace('#DETAIL_PAGE_URL#', $arElement['DETAIL_PAGE_URL'], $detailURL); if (preg_match('/SECTION_ID/i', $detailURL)) $detailURL = str_replace('#SECTION_ID#', $arElement['IBLOCK_SECTION_ID'], $detailURL); if (preg_match('/SECTION_CODE/i', $detailURL)) { $section = CIBlockSection::GetByID($arElement['IBLOCK_SECTION_ID']);
//если такой товар есть if(in_array($item['offer']['externalId'], $bItms)){ if ((int) $item['quantity'] != (int) $bItms[$item['offer']['externalId']]['QUANTITY']) { $arProduct['QUANTITY'] = $item['quantity']; $g = CSaleBasket::Update($bItms[$item['offer']['externalId']]['ID'], $arProduct); //резерв $ar_res = CCatalogProduct::GetByID($item['offer']['externalId']); $arFields = array( 'QUANTITY' => (int)$ar_res['QUANTITY'] + (int)$bItms[$item['offer']['externalId']]['QUANTITY'] - (int) $item['quantity'], 'QUANTITY_RESERVED' => (int)$ar_res['QUANTITY_RESERVED'] - (int)$bItms[$item['offer']['externalId']]['QUANTITY'] + (int) $item['quantity'], ); $d = CCatalogProduct::Update($item['offer']['externalId'], $arFields); } }//если нет, добавляем else{ $p = CIBlockElement::GetByID($item['offer']['externalId'])->Fetch(); $iblock = CIBlock::GetByID($p['IBLOCK_ID'])->Fetch(); $p['CATALOG_XML_ID'] = $iblock['XML_ID']; $p['PRODUCT_XML_ID'] = $p['XML_ID']; $arProduct = array( 'FUSER_ID' => $userId, 'ORDER_ID' => $order['externalId'], 'QUANTITY' => $item['quantity'], 'CURRENCY' => CCurrency::GetBaseCurrency(), 'LID' => $LID, 'PRODUCT_ID' => $item['offer']['externalId'], 'PRODUCT_PRICE_ID' => $p['PRODUCT_PRICE_ID'], 'WEIGHT' => $p['WEIGHT'], 'DELAY' => $p['DELAY'], 'CAN_BUY' => $p['CAN_BUY'], 'MODULE' => $p['MODULE'],
CSocNetLog::Update($logID, array('TMP_ID' => $logID)); CSocNetLogRights::SetForSonet($logID, SONET_SUBSCRIBE_ENTITY_GROUP, intval($arParams['SOCNET_GROUP_ID']), "wiki", "view", true); CSocNetLog::CounterIncrement($logID); $arNotifyParams = array("LOG_ID" => $logID, "GROUP_ID" => intval($arParams['SOCNET_GROUP_ID']), "NOTIFY_MESSAGE" => "", "FROM_USER_ID" => $arSoFields["USER_ID"], "URL" => $arSoFields["URL"], "MESSAGE" => GetMessage("WIKI_SONET_IM_ADD", array("#title#" => "<a href=\"#URL#\" class=\"bx-notifier-item-action\">" . $notify_title . "</a>")), "MESSAGE_OUT" => GetMessage("WIKI_SONET_IM_ADD", array("#title#" => $notify_title_out)) . " (#URL#)", "EXCLUDE_USERS" => array($arSoFields["USER_ID"])); CSocNetSubscription::NotifyGroup($arNotifyParams); } } } } $arResult['ELEMENT'] = $arFields + $arResult['ELEMENT']; break; case 'edit_title': break; case 'delete': if (CWikiSocnet::IsSocNet()) { $dbResTmp = CIBlockElement::GetByID($arParams['ELEMENT_ID']); if ($arResTmp = $dbResTmp->GetNext()) { $strTitleTmp = $arResTmp['NAME']; } $dbLog = CSocNetLog::GetList(array('ID' => 'DESC'), array('SOURCE_ID' => $arParams['ELEMENT_ID'])); $arLog = $dbLog->Fetch(); } $CWiki->Delete($arParams['ELEMENT_ID'], $arParams['IBLOCK_ID']); if (strlen($strTitleTmp) > 0 && isset($arLog['ID']) && CWikiSocnet::IsSocNet()) { $arSoFields = array('ENTITY_TYPE' => SONET_SUBSCRIBE_ENTITY_GROUP, 'IS_CUSTOM_ET' => 'N', 'ENTITY_ID' => intval($arParams['SOCNET_GROUP_ID']), 'EVENT_ID' => 'wiki_del', 'USER_ID' => $GLOBALS['USER']->GetID(), '=LOG_DATE' => $GLOBALS['DB']->CurrentTimeFunction(), 'TITLE_TEMPLATE' => GetMessage('WIKI_DEL_SONET_LOG_TITLE_TEMPLATE'), 'TITLE' => $strTitleTmp, 'MESSAGE' => '', 'TEXT_MESSAGE' => '', 'MODULE_ID' => 'wiki', 'URL' => '', 'CALLBACK_FUNC' => false, 'SOURCE_ID' => $arParams['ELEMENT_ID'], 'RATING_TYPE_ID' => 'WIKI_' . $arParams['IBLOCK_ID'] . '_PAGE', 'RATING_ENTITY_ID' => intval($arParams['ELEMENT_ID'])); $logID = CSocNetLog::Update($arLog['ID'], $arSoFields); if (intval($logID) > 0) { CSocNetLogRights::SetForSonet($arLog['ID'], SONET_SUBSCRIBE_ENTITY_GROUP, intval($arParams['SOCNET_GROUP_ID']), "wiki", "view"); CSocNetLog::CounterIncrement($logID); $notify_title_tmp = str_replace(array("\r\n", "\n"), " ", $strTitleTmp); $notify_title = TruncateText($notify_title_tmp, 100);
} $html_temp .= '</a>'; if ($arFields["PROPERTY_AKTIA_VALUE"]) { $html_temp .= " <font color='#e20a17'>Акция</font>"; } $html_temp .= '</td><td'; if ($arFields["PROPERTY_PRICE_NEW_VALUE"]) { $html_temp .= ' class="price_new" nowrap'; } $html_temp .= '>'; if ($arFields["PROPERTY_PRICE_NEW_VALUE"]) { $html_temp .= $arFields["PROPERTY_PRICE_NEW_VALUE"] . ' р.'; } $html_temp .= '</td></tr> <tr><td class="all_items_td">'; $res1 = CIBlockElement::GetByID($arFields["PROPERTY_SALON_VALUE"]); if ($ar_res1 = $res1->GetNext()) { $saloname = $ar_res1['NAME']; } $html_temp .= '<a href="/redesign/where_buy/detail.php?id=' . $arFields["PROPERTY_SALON_VALUE"] . '">' . $saloname . '</a>'; $html_temp .= '</td><td'; if ($arFields["PROPERTY_PRICE_OLD_VALUE"]) { $html_temp .= ' class="price_old" nowrap'; } $html_temp .= '>'; if ($arFields["PROPERTY_PRICE_OLD_VALUE"]) { $html_temp .= $arFields["PROPERTY_PRICE_OLD_VALUE"] . ' р.'; } $html_temp .= '</td></tr> </table>