{ $sec = new CRsaSecurity(); $arKeys = $sec->Keygen(); if($arKeys !== false) { $sec->SaveKeys($arKeys); CAdminMessage::ShowNote(GetMessage("MAIN_OPT_SECURE_KEY_SUCCESS")); } else { CAdminMessage::ShowMessage(GetMessage("MAIN_OPT_SECURE_KEY_ERROR")); } } $bEmailIndex = (COption::GetOptionString("main", "new_user_email_uniq_check", "N") !== "Y") && !$DB->IndexExists("b_user", array("EMAIL")); $arSmileSet = CSmileSet::getFormList(true); foreach ($arSmileSet as $key => $value) $arSmileSet[$key] = htmlspecialcharsback($value); $arAllOptions = array( "main" => Array( Array("site_name", GetMessage("MAIN_OPTION_SITENAME"), $SERVER_NAME, Array("text", 30)), Array("server_name", GetMessage("MAIN_OPTION_SERVERNAME"), $SERVER_NAME, Array("text", 30)), Array("cookie_name", GetMessage("MAIN_PREFIX"), "FREETRIX_SM", Array("text", 30)), Array("ALLOW_SPREAD_COOKIE", GetMessage("MAIN_OPTION_ALLOW_SPREAD_COOKIE"), "Y", Array("checkbox", "Y")), Array("header_200", GetMessage("HEADER_200"), "N", Array("checkbox", "Y")), Array("error_reporting", GetMessage("MAIN_ERROR_REPORTING"), E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR|E_PARSE, Array("selectbox", Array(E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR|E_PARSE=>GetMessage("MAIN_OPTION_ERROR1"), E_ALL^E_NOTICE=>GetMessage("MAIN_OPTION_ERROR2"), 0=>GetMessage("MAIN_OPTION_ERROR3")))), Array("templates_visual_editor", GetMessage("main_options_use_editor"), "N", Array("checkbox", "Y")), Array("use_hot_keys", GetMessage("main_options_use_hot_keys"), "Y", Array("checkbox", "Y")), Array("smile_set_id", GetMessage("main_options_smile_set_id"), 0, Array("selectbox", $arSmileSet)),
private static function InstallSmiles() { global $DBType; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/virtual_io.php"; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/virtual_file.php"; include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/file.php"; include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/" . $DBType . "/file.php"; include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/archive.php"; include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/csv_data.php"; include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/file_temp.php"; include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/smile.php"; $result = CSmileSet::getByStringId('main'); if (!empty($result)) { return false; } $arLang = array(); $langs = CLanguage::GetList($b = "", $o = ""); while ($language = $langs->Fetch()) { $lid = $language["LID"]; $MESS = IncludeModuleLangFile(__FILE__, $lid, true); if ($MESS && isset($MESS['MAIN_SMILE_DEF_SET_NAME'])) { $arLang[$lid] = $MESS['MAIN_SMILE_DEF_SET_NAME']; } } $smileSetId = CSmileSet::add(array('STRING_ID' => 'main', 'LANG' => $arLang)); if (intval($smileSetId) > 0) { CSmile::import(array('FILE' => $_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/main/install/smiles/smiles_default.zip', 'SET_ID' => intval($smileSetId))); } }
" name="smile_import" enctype="multipart/form-data"> <input type="hidden" name="Update" value="Y" /> <input type="hidden" name="lang" value="<?php echo LANG; ?> " /> <input type="hidden" name="ID" value="<?php echo $ID; ?> " /> <?php echo bitrix_sessid_post(); $aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("SMILE_TAB_SMILE"), "ICON" => "smile", "TITLE" => GetMessage("SMILE_TAB_SMILE_DESCR"))); $tabControl = new CAdminTabControl("tabControl", $aTabs); $tabControl->Begin(); $arSmileSet = CSmileSet::getFormList(); if (empty($arSmileSet)) { $arSmileSet = array('' => ' '); } $tabControl->BeginNextTab(); ?> <tr class="adm-detail-required-field"> <td width="40%"><?php echo GetMessage("SMILE_SET_ID"); ?> :</td> <td width="60%"> <select name="SET_ID"> <?php foreach ($arSmileSet as $key => $value) { ?>
public static function PrepareSmiles() { $arResult = Array(); $arSmile = CSmile::getByType(CSmile::TYPE_SMILE); $arSmileSet = CSmileSet::getListCache(); foreach ($arSmile as $smile) { $typing = explode(" ", $smile['TYPING']); if (isset($arResult['SMILE'][$typing[0]])) continue; $arResult['SMILE'][$typing[0]] = Array( 'SET_ID' => $smile['SET_ID'], 'NAME' => $smile['NAME'], 'IMAGE' => CSmile::PATH_TO_SMILE.$smile["SET_ID"]."/".$smile["IMAGE"], 'TYPING' => $typing[0], 'WIDTH' => $smile['IMAGE_WIDTH'], 'HEIGHT' => $smile['IMAGE_HEIGHT'], ); } foreach ($arSmileSet as $key => $value) { unset($value['STRING_ID']); unset($value['SORT']); if (empty($value['NAME'])) $value['NAME'] = GetMessage('IM_SMILE_SET_EMPTY', Array('#ID#' => $key)); $arResult['SMILE_SET'][$key] = $value; } return $arResult; }
<input type="hidden" name="Update" value="Y" /> <input type="hidden" name="lang" value="<?php echo LANG; ?> " /> <input type="hidden" name="ID" value="<?php echo $ID; ?> " /> <?php echo bitrix_sessid_post(); $aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("SMILE_TAB_SMILE"), "ICON" => "smile", "TITLE" => GetMessage("SMILE_TAB_SMILE_DESCR"))); $tabControl = new CAdminTabControl("tabControl", $aTabs); $tabControl->Begin(); $arSmileSetDisabled = false; $arSmileSet = CSmileSet::getListForForm($arSmile['GALLERY_ID']); if (empty($arSmileSet)) { $arSmileSetDisabled = true; $arSmileSet = array('' => ' '); } $tabControl->BeginNextTab(); ?> <tr class="adm-detail-required-field"> <td width="40%"><?php echo GetMessage("SMILE_SET_ID"); ?> :</td> <td width="60%"> <select name="SET_ID" <?php echo $arSmileSetDisabled ? 'disabled="true"' : ''; ?>
/** * <p>Получение списка наборов. Использовать вместо <a href="http://dev.1c-bitrix.ru/api_help/main/reference/csmileset/getformlist.php">CSmileSet::getFormList</a>. Статичный метод.</p> * * * @param mixed $galleryId = 0 Идентификатор галереи. Не обязательный, по умолчанию использует * настройку главного модуля. * * @param mixed $lang = LANGUAGE_ID Идентификатор языка для получения локализации, по умолчанию * LANGUAGE_ID (можно передать константу CSmileSet::GET_ALL_LANGUAGE для получения * всех локализаций). * * @return mixed <p>Возвращает массив с данными о наборе.</p> <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/main/reference/csmileset/getlistforform.php * @author Bitrix */ public static function getListForForm($galleryId = 0, $lang = LANGUAGE_ID) { $arGalleryList = array(); if (!$galleryId) { $arGalleryList = CSmileGallery::getListForForm($lang); } $arSetList = array(); foreach (CSmileSet::getListCache($lang) as $key => $value) { if ($galleryId > 0 && $value['PARENT_ID'] != $galleryId) { continue; } $arSetList[$key] = !empty($value['NAME']) ? $value['NAME'] : GetMessage('MAIN_SMILE_SET_NAME', array('#ID#' => $key)); if (count($arGalleryList) > 1) { $arSetList[$key] = $arGalleryList[$value['PARENT_ID']] . ' > ' . $arSetList[$key]; } } return $arSetList; }
} if ($_REQUEST['action'] == 'delete') { CSmile::delete($ID); } } } if ($lAdmin->EditAction()) { foreach ($FIELDS as $ID => $arFields) { $ID = IntVal($ID); if ($ID <= 0) { continue; } CSmile::update($ID, array('LANG' => array(LANGUAGE_ID => $arFields['NAME']), 'SORT' => $arFields['SORT'], 'TYPING' => $arFields['TYPING'])); } } $arSmileSet = CSmileSet::getById($arFilter['SET_ID']); $dbResultList = CSmile::getList(array('SELECT' => array('ID', 'SET_ID', 'SET_NAME', 'TYPE', 'NAME', 'SORT', 'TYPING', 'IMAGE', 'IMAGE_WIDTH', 'IMAGE_HEIGHT'), 'FILTER' => $arFilter, 'ORDER' => array($by => $order), 'NAV_PARAMS' => array("nPageSize" => CAdminResult::GetNavSize($sTableID)), 'RETURN_RES' => 'Y')); $dbResultList = new CAdminResult($dbResultList, $sTableID); $dbResultList->NavStart(); $lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("SMILE_NAV"))); $lAdmin->AddHeaders(array(array("id" => "ID", "content" => GetMessage("SMILE_ID"), "sort" => "ID", "default" => false), array("id" => "TYPE", "content" => GetMessage('SMILE_TYPE'), "default" => true), array("id" => "NAME", "content" => GetMessage("SMILE_NAME"), "default" => true), array("id" => "TYPING", "content" => GetMessage("SMILE_TYPING"), "default" => true), array("id" => "ICON", "content" => GetMessage("SMILE_ICON"), "default" => true), array("id" => "SORT", "content" => GetMessage("SMILE_SORT"), "sort" => "SORT", "default" => true, "align" => "right"), array("id" => "SET_NAME", "content" => GetMessage("SMILE_SET_NAME"), "default" => false), array("id" => "IMAGE", "content" => GetMessage("SMILE_IMAGE_FILE"), "default" => false))); $arVisibleColumns = $lAdmin->GetVisibleHeaderColumns(); while ($arForum = $dbResultList->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arForum); $row->AddField("ID", $f_ID); $row->AddField("SORT", $f_SORT); $row->AddField("TYPE", $f_TYPE == CSmile::TYPE_ICON ? GetMessage("SMILE_TYPE_ICON") : GetMessage("SMILE_TYPE_SMILE")); $row->AddViewField("SET_NAME", '<a title="' . GetMessage("SMILE_EDIT_DESCR") . '" href="' . "smile_set_edit.php?ID=" . $f_SET_ID . "&lang=" . LANG . "&" . GetFilterParams("filter_") . '">' . (strlen($f_SET_NAME) > 0 ? $f_SET_NAME : GetMessage('SMILE_SET_NO_NAME', array('#ID#' => $f_SET_ID))) . '</a>'); $row->AddViewField("NAME", '<a title="' . GetMessage("SMILE_EDIT_DESCR") . '" href="' . "smile_edit.php?ID=" . $f_ID . "&lang=" . LANG . "&" . GetFilterParams("filter_") . '">' . (strlen($f_NAME) > 0 ? $f_NAME : GetMessage('SMILE_NO_NAME')) . '</a>'); $row->AddField("TYPING", $f_TYPING); $row->AddField("ICON", "<img src=\"" . ($f_TYPE == CSmile::TYPE_ICON ? CSmile::PATH_TO_ICON : CSmile::PATH_TO_SMILE) . $f_SET_ID . "/" . $f_IMAGE . "\" border=\"0\" " . (IntVal($f_IMAGE_WIDTH) > 0 ? "width=\"" . $f_IMAGE_WIDTH . "\"" : "") . " " . (IntVal($f_IMAGE_HEIGHT) > 0 ? "height=\"" . $f_IMAGE_HEIGHT . "\"" : "") . ">");
static function getSetsByType($type, $lang) { $type = $type == CSmile::TYPE_ICON ? CSmile::TYPE_ICON : CSmile::TYPE_SMILE; $key = $type . "_" . $lang; if (!array_key_exists($key, self::$sets)) { $smiles = self::GetByType($type, $lang); $smilesSet = CSmileSet::getListCache(); $result = array(); foreach ($smiles as $smile) { if (!array_key_exists($smile["SET_ID"], $result)) { $result[$smile["SET_ID"]] = $smilesSet[$smile["SET_ID"]]; } } self::$sets[$key] = $result; } return self::$sets[$key]; }
LocalRedirect(isset($_REQUEST['IMPORT']) ? "smile_import.php?lang=" . LANG . "&SET_ID=" . $ID : (strlen($save) > 0 ? "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" => isset($arFields['NAME']) ? $arFields['NAME'] : array(), "PARENT_ID" => isset($arFields['GALLERY_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" => isset($_REQUEST['NAME']) ? $_REQUEST['NAME'] : array(), "PARENT_ID" => isset($_REQUEST['GALLERY_ID']) ? $_REQUEST['GALLERY_ID'] : 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");
public static function getFormList($bWithOptionAll = false, $lang = LANGUAGE_ID) { $arSetList = array(); if ($bWithOptionAll) { $arSetList[0] = GetMessage('MAIN_SMILE_ALL_SET'); } foreach (CSmileSet::getListCache($lang) as $key => $value) { $arSetList[$key] = !empty($value['NAME']) ? $value['NAME'] : GetMessage('MAIN_SMILE_SET_NAME', array('#ID#' => $key)); } return $arSetList; }
} if ($lAdmin->EditAction()) { foreach ($FIELDS as $ID => $arFields) { $ID = IntVal($ID); if ($ID <= 0) { continue; } CSmileSet::update($ID, array('LANG' => array(LANGUAGE_ID => $arFields['NAME']), 'STRING_ID' => $arFields['STRING_ID'], 'SORT' => $arFields['SORT'])); } } if (isset($_REQUEST['GALLERY_ID'])) { $arFilter['PARENT_ID'] = intval($_REQUEST['GALLERY_ID']); } else { LocalRedirect("smile_gallery.php?lang=" . LANG); } $dbResultList = CSmileSet::getList(array('SELECT' => array('ID', 'STRING_ID', 'NAME', 'SORT', 'SMILE_COUNT'), 'FILTER' => $arFilter, 'ORDER' => array($by => $order), 'NAV_PARAMS' => array("nPageSize" => CAdminResult::GetNavSize($sTableID)), 'RETURN_RES' => 'Y')); $dbResultList = new CAdminResult($dbResultList, $sTableID); $dbResultList->NavStart(); $lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("SMILE_NAV"))); $lAdmin->AddHeaders(array(array("id" => "ID", "content" => GetMessage("SMILE_ID"), "sort" => "ID", "default" => false), array("id" => "NAME", "content" => GetMessage("SMILE_NAME"), "default" => true), array("id" => "STRING_ID", "content" => GetMessage("SMILE_STRING_ID"), "default" => false), array("id" => "SORT", "content" => GetMessage("SMILE_SORT"), "sort" => "SORT", "default" => true, "align" => "right"), array("id" => "SMILE_COUNT", "content" => GetMessage("SMILE_SMILE_COUNT"), "sort" => "SMILE_COUNT", "default" => true))); $arVisibleColumns = $lAdmin->GetVisibleHeaderColumns(); while ($arForum = $dbResultList->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arForum); $row->AddField("ID", $f_ID); $row->AddField("SORT", $f_SORT); $row->AddViewField("NAME", '<a title="' . GetMessage("SMILE_EDIT_DESCR") . '" href="' . "smile.php?SET_ID=" . $f_ID . "&lang=" . LANG . "&" . GetFilterParams("filter_") . '">' . (strlen($f_NAME) > 0 ? $f_NAME : GetMessage('SMILE_SET_NAME', array('#ID#' => $f_ID))) . '</a>'); $row->AddViewField("SMILE_COUNT", $f_SMILE_COUNT); $row->AddInputField("NAME", array("size" => 20)); $row->AddInputField("STRING_ID", array("size" => 20)); $row->AddInputField("SORT", array("size" => 5)); if (in_array($f_STRING_ID, array('bitrix_main'))) {
><?php echo GetMessage("SMILE_TYPE_ICON"); ?> </option> </select> </td> </tr> <tr> <td><?php echo GetMessage("SMILE_SET_ID"); ?> :</td> <td> <select name="SET_ID"> <?php foreach (CSmileSet::getListForForm($arSmile['PARENT_ID']) as $key => $value) { ?> <option value="<?php echo $key; ?> " <?php echo $arSmile["SET_ID"] == $key ? "selected" : ""; ?> ><?php echo $value; ?> </option> <?php } ?> </select>
><?php echo GetMessage("SMILE_TYPE_ICON"); ?> </option> </select> </td> </tr> <tr> <td><?php echo GetMessage("SMILE_SET_ID"); ?> :</td> <td> <select name="SET_ID"> <?php foreach (CSmileSet::getFormList() as $key => $value) { ?> <option value="<?php echo $key; ?> " <?php echo $arSmile["SET_ID"] == $key ? "selected" : ""; ?> ><?php echo $value; ?> </option> <?php } ?> </select>