CanDoOperation('edit_other_settings')) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); if (!isset($_REQUEST['GALLERY_ID'])) { LocalRedirect("smile_gallery.php?lang=".LANG); } $ID = intval($_REQUEST["ID"] ?? 0); $parentId = intval($_REQUEST['GALLERY_ID'] ?? 0); $arError = $arSmileSet = $arFields = $arLang = array(); $message = null; /* LANGS */ $arLangTitle = array("reference_id" => array(), "reference" => array()); $db_res = CLanguage::GetList(); while ($res = $db_res->GetNext(true, false)) { $arLang[$res["LID"]] = $res; $arLangTitle["reference_id"][] = $res["LID"]; $arLangTitle["reference"][] = $res["NAME"]; } $bInitVars = false; $APPLICATION->SetTitle($ID > 0 ? GetMessage("SMILE_EDIT_RECORD") : GetMessage("SMILE_NEW_RECORD")); $fileName = ''; if ($_SERVER["REQUEST_METHOD"] == "POST" && (!empty($_POST['save']) || !empty($_POST['apply']))) { if (isset($_FILES["IMAGE"]["name"])) $fileName = RemoveScriptExtension($_FILES["IMAGE"]["name"]); if (!check_bitrix_sessid()) { $arError[] = array( "id" => "bad_sessid", "text" => GetMessage("ERROR_BAD_SESSID")); } if (empty($arError)) { $GLOBALS["APPLICATION"]->ResetException(); $arSmileSet = CSmileSet::getById($ID); $arFields = array( "STRING_ID" => $_REQUEST["STRING_ID"], "SORT" => $_REQUEST["SORT"], "PARENT_ID" => $parentId, "LANG" => array() ); if (in_array($arSmileSet["STRING_ID"], Array('bitrix_main'))) { unset($arFields['STRING_ID']); } foreach ($arLang as $key => $val) $arFields["LANG"][$key] = $_REQUEST["NAME"][$key]; if ($ID > 0) { CSmileSet::update($ID, $arFields); } else { $ID = CSmileSet::add($arFields); } if ($e = $GLOBALS["APPLICATION"]->GetException()) { $arError[] = array( "id" => "", "text" => $e->getString() ); } else { LocalRedirect( isset($_REQUEST['IMPORT'])? "smile_import.php?lang=".LANG."&SET_ID=".$ID : (!empty($_POST['save']) ? "smile_set.php?GALLERY_ID=".$parentId."&lang=".LANG."&".GetFilterParams("filter_", false) : "smile_set_edit.php?GALLERY_ID=".$parentId."&lang=".LANG."&ID=".$ID."&".GetFilterParams("filter_", false))); } } $e = new CAdminException($arError); $message = new CAdminMessage(($ID > 0 ? GetMessage("ERROR_EDIT_SMILE") : GetMessage("ERROR_ADD_SMILE")), $e); $bInitVars = true; } if ($bInitVars && !empty($arFields)) { if (isset($arFields['NAME'])) foreach ($arFields['NAME'] as $key => $value) $arFields['NAME'][htmlspecialcharsbx($key)] = htmlspecialcharsbx($value); $arSmileSet = array( "SORT" => isset($arFields['SORT'])? intval($arFields['SORT']): 300, "STRING_ID" => isset($arFields['STRING_ID'])? htmlspecialcharsbx($arFields['STRING_ID']): "", "NAME" => $arFields['NAME'] ?? array(), "PARENT_ID" => $arFields['GALLERY_ID'] ?? 0 ); } elseif ($ID > 0) { $arSmileSet = CSmileSet::getById($ID, CSmileSet::GET_ALL_LANGUAGE); } else { if (isset($_REQUEST['NAME'])) foreach ($_REQUEST['NAME'] as $key => $value) $_REQUEST['NAME'][htmlspecialcharsbx($key)] = htmlspecialcharsbx($value); $arSmileSet = array( "SORT" => isset($_REQUEST['SORT'])? intval($_REQUEST['SORT']): 300, "STRING_ID" => isset($_REQUEST['STRING_ID'])? htmlspecialcharsbx($_REQUEST['STRING_ID']): "", "NAME" => $_REQUEST['NAME'] ?? array(), "PARENT_ID" => isset($_REQUEST['GALLERY_ID'])? $parentId : 0 ); } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $aMenu = array( array( "TEXT" => GetMessage("SMILE_BTN_BACK"), "LINK" => "/bitrix/admin/smile_set.php?GALLERY_ID=".$arSmileSet['PARENT_ID']."&lang=".LANG."&".GetFilterParams("filter_", false), "ICON" => "btn_list", ) ); if ($ID > 0) { $aMenu[] = array("SEPARATOR" => "Y"); $aMenu[] = array( "TEXT" => GetMessage("SMILE_BTN_NEW"), "LINK" => "/bitrix/admin/smile_set_edit.php?GALLERY_ID=".$arSmileSet['PARENT_ID']."&lang=".LANG."&".GetFilterParams("filter_", false), "ICON" => "btn_new", ); if (!in_array($arSmileSet["STRING_ID"], Array('bitrix_main'))) { $aMenu[] = array( "TEXT" => GetMessage("SMILE_BTN_DELETE"), "LINK" => "javascript:if(confirm('".GetMessage("SMILE_BTN_DELETE_CONFIRM")."')) window.location='/bitrix/admin/smile_set.php?GALLERY_ID=".$arSmileSet['PARENT_ID']."&action=delete&ID[]=".$ID."&lang=".LANG."&".bitrix_sessid_get()."#tb';", "ICON" => "btn_delete", ); } } $context = new CAdminContextMenu($aMenu); $context->Show(); if (isset($message) && $message) echo $message->Show(); ?>