uawdijnntqw1x1x1
IP : 18.188.66.142
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
nn.axolotls.ru
/
bitrix
/
components
/
bitrix
/
lists.field.edit
/
component.php
/
/
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); if(!CModule::IncludeModule('lists')) { ShowError(GetMessage("CC_BLFE_MODULE_NOT_INSTALLED")); return; } $lists_perm = CListPermissions::CheckAccess( $USER, $arParams["~IBLOCK_TYPE_ID"], intval($arParams["~IBLOCK_ID"]), $arParams["~SOCNET_GROUP_ID"] ); if($lists_perm < 0) { switch($lists_perm) { case CListPermissions::WRONG_IBLOCK_TYPE: ShowError(GetMessage("CC_BLFE_WRONG_IBLOCK_TYPE")); return; case CListPermissions::WRONG_IBLOCK: ShowError(GetMessage("CC_BLFE_WRONG_IBLOCK")); return; default: ShowError(GetMessage("CC_BLFE_UNKNOWN_ERROR")); return; } } elseif($lists_perm < CListPermissions::IS_ADMIN) { ShowError(GetMessage("CC_BLFE_ACCESS_DENIED")); return; } $arParams["CAN_EDIT"] = $lists_perm >= CListPermissions::IS_ADMIN; $arIBlock = CIBlock::GetArrayByID(intval($arParams["~IBLOCK_ID"])); $arResult["~IBLOCK"] = $arIBlock; $arResult["IBLOCK"] = htmlspecialcharsex($arIBlock); $arResult["IBLOCK_ID"] = $arIBlock["ID"]; if(isset($arParams["SOCNET_GROUP_ID"]) && $arParams["SOCNET_GROUP_ID"] > 0) $arParams["SOCNET_GROUP_ID"] = intval($arParams["SOCNET_GROUP_ID"]); else $arParams["SOCNET_GROUP_ID"] = ""; $arResult["GRID_ID"] = "lists_fields"; $arResult["FORM_ID"] = "lists_field_edit"; $arResult["~LISTS_URL"] = str_replace( array("#group_id#"), array($arParams["SOCNET_GROUP_ID"]), $arParams["~LISTS_URL"] ); $arResult["LISTS_URL"] = htmlspecialchars($arResult["~LISTS_URL"]); $arResult["~LIST_URL"] = CHTTP::urlAddParams(str_replace( array("#list_id#", "#section_id#", "#group_id#"), array($arResult["IBLOCK_ID"], 0, $arParams["SOCNET_GROUP_ID"]), $arParams["~LIST_URL"] ), array("list_section_id" => "")); $arResult["LIST_URL"] = htmlspecialchars($arResult["~LIST_URL"]); $arResult["~LIST_EDIT_URL"] = str_replace( array("#list_id#", "#group_id#"), array($arResult["IBLOCK_ID"], $arParams["SOCNET_GROUP_ID"]), $arParams["~LIST_EDIT_URL"] ); $arResult["LIST_EDIT_URL"] = htmlspecialchars($arResult["~LIST_EDIT_URL"]); $arResult["~LIST_FIELDS_URL"] = str_replace( array("#list_id#", "#group_id#"), array($arResult["IBLOCK_ID"], $arParams["SOCNET_GROUP_ID"]), $arParams["~LIST_FIELDS_URL"] ); $arResult["LIST_FIELDS_URL"] = htmlspecialchars($arResult["~LIST_FIELDS_URL"]); $obList = new CList($arIBlock["ID"]); $arFields = $obList->GetFields(); if(array_key_exists($arParams["FIELD_ID"], $arFields)) { $arResult["FIELD"] = $arFields[$arParams["FIELD_ID"]]; $arResult["FIELD_ID"] = $arParams["FIELD_ID"]; } else { $arResult["FIELD"] = false; $arResult["FIELD_ID"] = false; } $arResult["~LIST_FIELD_EDIT_URL"] = str_replace( array("#list_id#", "#field_id#", "#group_id#"), array($arResult["IBLOCK_ID"], $arResult["FIELD_ID"], $arParams["SOCNET_GROUP_ID"]), $arParams["~LIST_FIELD_EDIT_URL"] ); $arResult["LIST_FIELD_EDIT_URL"] = htmlspecialchars($arResult["~LIST_FIELD_EDIT_URL"]); //Assume there was no error $bVarsFromForm = false; //Form submitted if($_SERVER["REQUEST_METHOD"] == "POST" && check_bitrix_sessid()) { //When Save or Apply buttons was pressed if(isset($_POST["save"]) || isset($_POST["apply"])) { $strError = ""; //Gather fields for update $arField = array( "SORT" => $_POST["SORT"], "NAME" => trim($_POST["NAME"], " \n\r\t\x0"), "IS_REQUIRED" => $_POST["IS_REQUIRED"], "MULTIPLE" => $_POST["MULTIPLE"], "TYPE" => $_POST["TYPE"], "DEFAULT_VALUE" => $_POST["DEFAULT_VALUE"], "USER_TYPE_SETTINGS" => $_POST["USER_TYPE_SETTINGS"], "SETTINGS" => $_POST["SETTINGS"], ); if(strlen($arField["NAME"]) <= 0) $strError = GetMessage("CC_BLFE_BAD_FIELD_NAME")."<br>"; if($arField["TYPE"] == "PREVIEW_PICTURE") { $arField["DEFAULT_VALUE"]["METHOD"] = "resample"; $arField["DEFAULT_VALUE"]["COMPRESSION"] = intval(COption::GetOptionString('main', 'image_resize_quality', '95')); } if(preg_match("/^(G|G:|E|E:)/", $arField["TYPE"])) { $arField["LINK_IBLOCK_ID"] = intval($_POST["LINK_IBLOCK_ID"]); $arIBLOCKS = CLists::GetIBlocks($arParams["~IBLOCK_TYPE_ID"], !$arParams["CAN_EDIT"], $arParams["~SOCNET_GROUP_ID"]); if(substr($arField["TYPE"], 0, 1) == "G") unset($arIBLOCKS[$arResult["IBLOCK_ID"]]); if(!array_key_exists($arField["LINK_IBLOCK_ID"], $arIBLOCKS)) $strError = GetMessage("CC_BLFE_WRONG_LINK_IBLOCK")."<br>"; } if(isset($_POST["LIST"])) $arField["LIST"] = $_POST["LIST"]; if(!is_array($arField["LIST"])) $arField["LIST"] = array(); //Import values from textarea if(isset($_POST["LIST_TEXT_VALUES"]) && strlen($_POST["LIST_TEXT_VALUES"])) { $max_sort = 0; //create values "map" $arListMap = array(); foreach($arField["LIST"] as $i => $arEnum) { if($arEnum["SORT"] > $max_sort) $max_sort = intval($arEnum["SORT"]); $arListMap[trim($arEnum["VALUE"], " \t\n\r")] = $arEnum["ID"]; } //add non empty lines to the list foreach(explode("\n", $_POST["LIST_TEXT_VALUES"]) as $value_line) { $value = trim($value_line, " \t\n\r"); if(strlen($value) > 0 && !isset($arListMap[$value])) { $max_sort += 10; $arListMap[$value] = "m".$max_sort; $arField["LIST"]["m".$max_sort] = array( "SORT" => $max_sort, "VALUE" => $value, ); } } } if(isset($_POST["LIST_DEF"]) && is_array($_POST["LIST_DEF"])) { $bWasDef = false; foreach($_POST["LIST_DEF"] as $def) { $def = intval($def); if($def > 0 && isset($arField["LIST"][$def])) { $arField["LIST"][$def]["DEF"] = "Y"; $bWasDef = true; } } if($bWasDef) foreach($arField["LIST"] as $i => $arEnum) if($arEnum["DEF"] !== "Y") $arField["LIST"][$i]["DEF"] = "N"; } if(!$strError) { if($arResult["FIELD_ID"]) $arResult["FIELD_ID"] = $obList->UpdateField($arResult["FIELD_ID"], $arField); else $arResult["FIELD_ID"] = $obList->AddField($arField); //Clear components cache $GLOBALS["CACHE_MANAGER"]->ClearByTag("lists_list_".$arIBlock["ID"]); $tab_name = $arResult["FORM_ID"]."_active_tab"; //And go to proper page if(isset($_POST["save"])) LocalRedirect($arResult["~LIST_FIELDS_URL"]); elseif($arResult["FIELD_ID"]) LocalRedirect( CHTTP::urlAddParams(str_replace( array("#list_id#", "#field_id#", "#group_id#"), array($arResult["IBLOCK_ID"], $arResult["FIELD_ID"], $arParams["SOCNET_GROUP_ID"]), $arParams["~LIST_FIELD_EDIT_URL"] ), array($tab_name => $_POST[$tab_name]), array("skip_empty" => true, "encode" => true) ) ); else LocalRedirect($arResult["~LIST_FIELDS_URL"]); } else { ShowError($strError); $bVarsFromForm = true; } } elseif(isset($_POST["action"]) && $_POST["action"]==="type_changed") { $bVarsFromForm = true; } elseif($arResult["FIELD_ID"] && isset($_POST["action"]) && $_POST["action"]==="delete") { $obList->DeleteField($arResult["FIELD_ID"]); $obList->Save(); //Clear components cache $GLOBALS["CACHE_MANAGER"]->ClearByTag("lists_list_".$arIBlock["ID"]); LocalRedirect($arResult["~LIST_FIELDS_URL"]); } else { //Go to lists page LocalRedirect($arResult["~LISTS_URL"]); } } $arResult["TYPES"] = $obList->GetAvailableTypes($arResult["FIELD_ID"]); $data = array(); if($bVarsFromForm) {//There was an error so display form values $data["SORT"] = $_POST["SORT"]; $data["NAME"] = $_POST["NAME"]; $data["IS_REQUIRED"] = $_POST["IS_REQUIRED"]; $data["MULTIPLE"] = $_POST["MULTIPLE"]; $data["TYPE"] = $_POST["TYPE"]; if($data["TYPE"] !== $arResult["FIELD"]["TYPE"]) { //field type was changed so it needs adjustment if(preg_match("/^(.):(.+)$/", $data["TYPE"], $arMatch)) { $arResult["FIELD"]["PROPERTY_USER_TYPE"] = CIBlockProperty::GetUserType($arMatch[2]); } } if( $data["TYPE"] !== "PREVIEW_PICTURE" && $data["TYPE"] !== "DETAIL_PICTURE" && is_array($_POST["DEFAULT_VALUE"]) ) { $data["DEFAULT_VALUE"] = ""; } else { $data["DEFAULT_VALUE"] = $_POST["DEFAULT_VALUE"]; } $data["SETTINGS"] = $_POST["SETTINGS"]; if(isset($_POST["LIST"]) && is_array($_POST["LIST"])) { $n = 0; $arResult["LIST"] = array(); foreach($_POST["LIST"] as $k => $v) { if(preg_match("/^n(\d+)$/", $k, $match)) { if(intval($match[1]) > $n) $n = intval($match[1]); } $arResult["LIST"][$k] = array( "ID" => $k, "SORT" => $v["SORT"], "VALUE" => $v["VALUE"], ); } while($n >= 0) { if(array_key_exists("n".$n, $arResult["LIST"])) { if(strlen($arResult["LIST"]["n".$n]["VALUE"]) > 0) break; else unset($arResult["LIST"]["n".$n]); } $n--; } $arResult["LIST"][] = array( "ID" => "n".($n+1), "SORT" => 500, "NAME" => "", ); } elseif(preg_match("/^(L|L:)/", $data["TYPE"])) { $arResult["LIST"] = array(); $arResult["LIST"][] = array( "ID" => "n0", "SORT" => 500, "NAME" => "", ); } else { $arResult["LIST"] = false; } $data["LIST_TEXT_VALUES"] = $_POST["LIST_TEXT_VALUES"]; if(isset($_POST["LIST_DEF"]) && is_array($_POST["LIST_DEF"])) { $n = 0; $arResult["LIST_DEF"] = array(); foreach($_POST["LIST_DEF"] as $def) { if(array_key_exists($def, $arResult['LIST'])) $arResult["LIST_DEF"][$def] = true; } } elseif(preg_match("/^(L|L:)/", $data["TYPE"])) { $arResult["LIST_DEF"] = array(); } else { $arResult["LIST_DEF"] = false; } if(isset($_POST["LINK_IBLOCK_ID"]) && $_POST["LINK_IBLOCK_ID"] > 0) { $data["LINK_IBLOCK_ID"] = intval($_POST["LINK_IBLOCK_ID"]); } } elseif($arResult["FIELD_ID"]) {//Edit existing field $data["SORT"] = $arResult["FIELD"]["SORT"]; $data["NAME"] = $arResult["FIELD"]["NAME"]; $data["IS_REQUIRED"] = $arResult["FIELD"]["IS_REQUIRED"]; $data["MULTIPLE"] = $arResult["FIELD"]["MULTIPLE"]; $data["TYPE"] = $arResult["FIELD"]["TYPE"]; $data["DEFAULT_VALUE"] = $arResult["FIELD"]["DEFAULT_VALUE"]; $data["SETTINGS"] = $arResult["FIELD"]["SETTINGS"]; if(isset($arResult["FIELD"]["LINK_IBLOCK_ID"])) { $data["LINK_IBLOCK_ID"] = intval($arResult["FIELD"]["LINK_IBLOCK_ID"]); } if(preg_match("/^PROPERTY_(\\d+)$/", $arResult["FIELD_ID"], $arMatch)) { $arResult["LIST"] = array(); $arResult["LIST_DEF"] = array(); $rsEnum = CIBlockPropertyEnum::GetList(array("sort"=>"asc", "value"=>"asc"), array("PROPERTY_ID" => $arMatch[1])); while($ar = $rsEnum->GetNext()) { $arResult["LIST"][$ar["ID"]] = $ar; if($ar["DEF"] == "Y") $arResult["LIST_DEF"][$ar["ID"]] = true; } $arResult["LIST"][] = array( "ID" => "n0", "SORT" => 500, "NAME" => "", ); } else { $arResult["LIST"] = false; $arResult["LIST_DEF"] = false; } $data["LIST_TEXT_VALUES"] = ''; } else {//New one $data["ID"] = ""; $data["SORT"] = 500; $data["NAME"] = GetMessage("CC_BLFE_FIELD_NAME_DEFAULT"); $data["IS_REQUIRED"] = "N"; $data["MULTIPLE"] = "N"; list($data["TYPE"], $temp) = each($arResult["TYPES"]); reset($arResult["TYPES"]); $arResult["LIST"] = false; $data["LIST_TEXT_VALUES"] = ''; $arResult["LIST_DEF"] = false; } if(preg_match("/^(G|G:|E|E:)/", $data["TYPE"])) { $arResult["LINK_IBLOCKS"] = CLists::GetIBlocks($arParams["~IBLOCK_TYPE_ID"], !$arParams["CAN_EDIT"], $arParams["~SOCNET_GROUP_ID"]); if(substr($data["TYPE"], 0, 1) == "G") unset($arResult["LINK_IBLOCKS"][$arResult["IBLOCK_ID"]]); } $arResult["FORM_DATA"] = array(); foreach($data as $key => $value) { $arResult["FORM_DATA"]["~".$key] = $value; if(is_array($value)) { foreach($value as $key1 => $value1) $value[$key1] = htmlspecialchars($value1); $arResult["FORM_DATA"][$key] = $value; } else { $arResult["FORM_DATA"][$key] = htmlspecialchars($value); } } $arResult["CAN_BE_MULTIPLE"] = !$obList->is_field($data["TYPE"]); $arResult["CAN_BE_OPTIONAL"] = $data["TYPE"] != "NAME"; $arResult["IS_READ_ONLY"] = $arResult["FIELD_ID"]? $obList->is_readonly($arResult["FIELD_ID"]): CListFieldTypeList::GetByID($data["TYPE"])->IsReadonly(); $this->IncludeComponentTemplate(); if($arResult["FIELD_ID"]) $APPLICATION->SetTitle(GetMessage("CC_BLFE_TITLE_EDIT", array("#NAME#" => htmlspecialcharsex($arResult["FIELD"]["NAME"])))); else $APPLICATION->SetTitle(GetMessage("CC_BLFE_TITLE_NEW")); $APPLICATION->AddChainItem($arResult["IBLOCK"]["NAME"], $arResult["~LIST_URL"]); $APPLICATION->AddChainItem(GetMessage("CC_BLFE_CHAIN_LIST_EDIT"), $arResult["~LIST_EDIT_URL"]); $APPLICATION->AddChainItem(GetMessage("CC_BLFE_CHAIN_FIELDS"), $arResult["~LIST_FIELDS_URL"]); ?>
/var/www/axolotl/data/www/nn.axolotls.ru/bitrix/components/bitrix/lists.field.edit/component.php