AuthForm(GetMessage("ACCESS_DENIED")); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/include.php"); IncludeModuleLangFile(__FILE__); $err_mess = "File: ".__FILE__."
Line: "; define("HELP_FILE","ticket_dict_list.php"); $message = null; /*************************************************************************** Функции ***************************************************************************/ function CheckFields() // проверка на наличие обязательных полей { global $ID, $NAME, $SID, $C_TYPE, $arrSITE, $DB; $str = ""; $arMsg = Array(); if (trim($NAME) == '') //$str .= GetMessage("SUP_FORGOT_NAME")."
"; $arMsg[] = array("id"=>"NAME", "text"=> GetMessage("SUP_FORGOT_NAME")); if (preg_match("/[^A-Za-z_0-9]/",$SID)) //$str .= GetMessage("SUP_INCORRECT_SID")."
"; $arMsg[] = array("id"=>"SID", "text"=> GetMessage("SUP_INCORRECT_SID")); elseif ($SID <> '' && is_array($arrSITE) && count($arrSITE)>0) { $arFilter = array( "ID" => "~".$ID, "TYPE" => $C_TYPE, "SID" => $SID, "SITE" => $arrSITE ); $z = CTicketDictionary::GetList(); if ($zr = $z->Fetch()) { $s = str_replace("#TYPE#", CTicketDictionary::GetTypeNameByID($str_C_TYPE), GetMessage("SUP_SID_ALREADY_IN_USE")); $s = str_replace("#LANG#", $zr['LID'] <> ''? $zr['LID'] : mb_strtolower($zr['SITE_ID']), $s); $s = str_replace("#RECORD_ID#",$zr["ID"],$s); //$str .= $s."
"; $arMsg[] = array("id"=>"SID", "text"=> $s); } } if(!empty($arMsg)) { $e = new CAdminException($arMsg); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; } function symbolsAndNumbers($str) { return preg_replace ("/[^a-z0-9A-Z]/","",$str); } /*************************************************************************** Обработка GET | POST ***************************************************************************/ $ID = intval($_REQUEST['ID']); $SET_AS_DEFAULT = $_REQUEST['SET_AS_DEFAULT']; InitBVar($SET_AS_DEFAULT); // если была нажата кнопка "save" на текущей странице if (($save <> '' || $apply <> '') && $REQUEST_METHOD=="POST" && $bAdmin=="Y" && check_bitrix_sessid()) { $arFields = array( 'C_TYPE' => symbolsAndNumbers($_REQUEST['C_TYPE']), 'SID' => $_REQUEST['SID'], 'SET_AS_DEFAULT' => $SET_AS_DEFAULT, 'C_SORT' => $_REQUEST['C_SORT'], 'NAME' => $_REQUEST['NAME'], 'DESCR' => $_REQUEST['DESCR'], 'RESPONSIBLE_USER_ID' => $_REQUEST['RESPONSIBLE_USER_ID'], 'arrSITE' => $_REQUEST['arrSITE'], ); if (is_array($_REQUEST['arrSITE']) && count($_REQUEST['arrSITE']) > 0) { $arFields['FIRST_SITE_ID'] = reset($_REQUEST['arrSITE']); $_SESSION['SESS_TICKET_DIC_SITE'] = $_REQUEST['arrSITE']; } if (CModule::IncludeModule('statistic') && $_REQUEST['C_TYPE']=='C') { $arFields['EVENT1'] = $_REQUEST['EVENT1']; $arFields['EVENT2'] = $_REQUEST['EVENT2']; $arFields['EVENT3'] = $_REQUEST['EVENT3']; } $bOK = false; $new = false; if ($ID > 0) { $bOK = CTicketDictionary::Update($ID, $arFields); } else { if ($ID = CTicketDictionary::Add($arFields)) { $new = true; $bOK = true; } } if ($bOK) { if ($save <> '') LocalRedirect("/bitrix/admin/ticket_dict_list.php?lang=".LANGUAGE_ID. "&find_type=".symbolsAndNumbers($_REQUEST['C_TYPE'])); elseif ($new) LocalRedirect("/bitrix/admin/ticket_dict_edit.php?ID=".$ID. "&lang=".LANGUAGE_ID."&find_type=".symbolsAndNumbers($_REQUEST['C_TYPE'])."&tabControl_active_tab=".urlencode($tabControl_active_tab)); } else { if ($e = $APPLICATION->GetException()) $message = new CAdminMessage(GetMessage("SUP_ERROR"), $e); } /* if (CheckFields()) { $DB->PrepareFields("b_ticket_dictionary"); if (is_array($arrSite)>0) $_SESSION["SESS_TICKET_DIC_SITE"] = $arrSite; if ($SET_AS_DEFAULT=="Y") { $arFilter = array( "TYPE" => $C_TYPE, "SITE" => $arrSITE ); $z = CTicketDictionary::GetList($v1, $v2, $arFilter, $v3); while ($zr = $z->Fetch()) { $arFields = array("SET_AS_DEFAULT" => "'N'"); $DB->Update("b_ticket_dictionary",$arFields,"WHERE ID='".$zr["ID"]."'",$err_mess.__LINE__); } } if (is_array($arrSITE)) { reset($arrSITE); list($k, $FIRST_SITE_ID) = each($arrSITE); } $arFields = array( "FIRST_SITE_ID" => "'".$DB->ForSql($FIRST_SITE_ID,2)."'", "C_TYPE" => "'".$str_C_TYPE."'", "SID" => "'".$str_SID."'", "SET_AS_DEFAULT" => "'".$str_SET_AS_DEFAULT."'", "C_SORT" => "'".$str_C_SORT."'", "NAME" => "'".$str_NAME."'", "DESCR" => "'".$str_DESCR."'", "RESPONSIBLE_USER_ID" => "'".$str_RESPONSIBLE_USER_ID."'" ); if (CModule::IncludeModule("statistic") && $str_C_TYPE=="C") { $arFields["EVENT1"] = "'".$str_EVENT1."'"; $arFields["EVENT2"] = "'".$str_EVENT2."'"; $arFields["EVENT3"] = "'".$str_EVENT3."'"; } if ($ID>0) $DB->Update("b_ticket_dictionary",$arFields,"WHERE ID='".$ID."'",$err_mess.__LINE__); else { $ID = $DB->Insert("b_ticket_dictionary",$arFields, $err_mess.__LINE__); $new = "Y"; } if (!$message) { // сайты $DB->Query("DELETE FROM b_ticket_dictionary_2_site WHERE DICTIONARY_ID='".$ID."'", false, $err_mess.__LINE__); if (is_array($arrSITE)) { reset($arrSITE); foreach($arrSITE as $sid) { $strSql = "INSERT INTO b_ticket_dictionary_2_site (DICTIONARY_ID, SITE_ID) VALUES ($ID, '".$DB->ForSql($sid,2)."')"; $DB->Query($strSql, false, $err_mess.__LINE__); } } if (strlen($save)>0) LocalRedirect("/bitrix/admin/ticket_dict_list.php?lang=".LANGUAGE_ID. "&find_type=".$str_C_TYPE."&set_filter=Y"); elseif ($new=="Y") LocalRedirect("/bitrix/admin/ticket_dict_edit.php?ID=".$ID. "&lang=".LANGUAGE_ID."&find_type=".$str_C_TYPE."&set_filter=Y&tabControl_active_tab=".urlencode($tabControl_active_tab)); } } else { if ($e = $APPLICATION->GetException()) $message = new CAdminMessage(GetMessage("SUP_ERROR"), $e); } //*/ } $arrSites = array(); $rs = CSite::GetList(); while ($ar = $rs->Fetch()) $arrSites[$ar["ID"]] = $ar; $tdic = CTicketDictionary::GetByID($ID); if (!($tdic && $tdic->ExtractFields())) { $ID=0; $str_C_SORT="100"; $arrSite = $_SESSION["SESS_TICKET_DIC_SITE"]; $str_C_TYPE = symbolsAndNumbers($find_type); if ($str_C_TYPE <> '') $str_C_SORT = CTicketDictionary::GetNextSort($TYPE_ID); //$str_EVENT1 = "ticket"; $str_EVENT1 = ""; } else { $arrSITE = CTicketDictionary::GetSiteArray($ID); if ($str_C_TYPE!="C") { $str_EVENT1 = ""; $str_EVENT2 = ""; $str_EVENT3 = ""; } } if ($message) $DB->InitTableVarsForEdit("b_ticket_dictionary", "", "str_"); if ($ID>0) $sDocTitle = GetMessage("SUP_EDIT_RECORD", array("#ID#" => $ID)); else $sDocTitle = GetMessage("SUP_NEW_RECORD"); $APPLICATION->SetTitle($sDocTitle); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); /*************************************************************************** HTML форма ****************************************************************************/ ?> "btn_list", "TEXT" => GetMessage("SUP_RECORDS_LIST"), "LINK" => "/bitrix/admin/ticket_dict_list.php?lang=".LANGUAGE_ID."&find_type=".symbolsAndNumbers($find_type) ) ); if(intval($ID)>0) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "ICON" => "btn_new", "TEXT" => GetMessage("SUP_CREATE_NEW_RECORD"), "LINK" => "/bitrix/admin/ticket_dict_edit.php?lang=".LANGUAGE_ID."&find_type=".symbolsAndNumbers($find_type) ); if ($bAdmin=="Y") { $aMenu[] = array( "ICON" => "btn_delete", "TEXT" => GetMessage("SUP_DELETE_RECORD"), "LINK" => "javascript:if(confirm('".GetMessage("SUP_DELETE_RECORD_CONFIRM")."')) window.location='/bitrix/admin/ticket_dict_list.php?action=delete&ID=".$ID."&lang=".LANGUAGE_ID."&find_type=".symbolsAndNumbers($find_type) ."&". bitrix_sessid_get()."';", ); } } $context = new CAdminContextMenu($aMenu); $context->Show(); if ($message) echo $message->Show(); ?>