function __DSGetInitData() { $map = new \Bitrix\MobileApp\Designer\ConfigMap(); $params = $map->getParamsByGroups(); $groups = array_keys($params); $tmpLangs = array_change_key_case($map->getLangMessages(), CASE_LOWER); $langs = array(); foreach ($tmpLangs as $k => $v) { $langs[str_replace("_", "/", $k)] = $v; } $result = \Bitrix\Mobileapp\Designer\AppTable::getList(array("select" => array("CODE", "FOLDER", "DESCRIPTION", "SHORT_NAME", "NAME", "CONFIG.PLATFORM", "CONFIG.PARAMS"))); $fetchedApps = $result->fetchAll(); $apps = array(); $count = count($fetchedApps); for ($i = 0; $i < $count; $i++) { $apps[] = array("code" => $fetchedApps[$i]["CODE"], "name" => $fetchedApps[$i]["NAME"], "folder" => $fetchedApps[$i]["FOLDER"], "desc" => $fetchedApps[$i]["DESCRIPTION"], "params" => $fetchedApps[$i]["MOBILEAPP_DESIGNER_APP_CONFIG_PARAMS"], "platform" => $fetchedApps[$i]["MOBILEAPP_DESIGNER_APP_CONFIG_PLATFORM"]); } $dbres = \CSiteTemplate::GetList(); $templates = array(); while ($t = $dbres->Fetch()) { $templates[] = $t; } $data = array("map" => array("groups" => $groups, "groupedParams" => $params, "params" => $map->getDescriptionConfig(), "lang" => $tmpLangs), "apps" => $apps, "templates" => $templates); return $data; }
public static function GetComponentProperties($name = '', $template = '', $siteTemplate = '', $currentValues = array()) { $template = !$template || $template == '.default' ? '' : $template; $arTemplates = CComponentUtil::GetTemplatesList($name, $siteTemplate); $result = array('templates' => array()); $arSiteTemplates = array(".default" => GetMessage("PAR_MAN_DEFAULT")); if (!empty($siteTemplate)) { $dbst = CSiteTemplate::GetList(array(), array("ID" => $siteTemplate), array()); while ($siteTempl = $dbst->Fetch()) { $arSiteTemplates[$siteTempl['ID']] = $siteTempl['NAME']; } } foreach ($arTemplates as $k => $templ) { $showTemplateName = $templ["TEMPLATE"] !== '' && $arSiteTemplates[$templ["TEMPLATE"]] != '' ? $arSiteTemplates[$templ["TEMPLATE"]] : GetMessage("PAR_MAN_DEF_TEMPLATE"); $arTemplates[$k]['DISPLAY_NAME'] = $templ['NAME'] . ' (' . $showTemplateName . ')'; } $arTemplateProps = array(); if (is_array($arTemplates)) { foreach ($arTemplates as $arTemplate) { $result['templates'][] = $arTemplate; $tName = !$arTemplate['NAME'] || $arTemplate['NAME'] == '.default' ? '' : $arTemplate['NAME']; if ($tName == $template) { $arTemplateProps = CComponentUtil::GetTemplateProps($name, $arTemplate['NAME'], $siteTemplate, $currentValues); } } } $result['parameters'] = array(); $arProps = CComponentUtil::GetComponentProps($name, $currentValues, $arTemplateProps); $result['tooltips'] = self::FetchHelp($name); if (!isset($arProps['GROUPS']) || !is_array($arProps['GROUPS'])) { $arProps['GROUPS'] = array(); } if (!isset($arProps['PARAMETERS']) || !is_array($arProps['PARAMETERS'])) { $arProps['PARAMETERS'] = array(); } $result['groups'] = array(); foreach ($arProps['GROUPS'] as $k => $arGroup) { $arGroup['ID'] = $k; $result['groups'][] = $arGroup; } foreach ($arProps['PARAMETERS'] as $k => $arParam) { $arParam['ID'] = preg_replace("/[^a-zA-Z0-9_-]/is", "_", $k); if (!isset($arParam['PARENT'])) { $arParam['PARENT'] = 'ADDITIONAL_SETTINGS'; } $result['parameters'][] = $arParam; if ($arParam['TYPE'] == 'FILE') { self::$fileDialogs[] = array('NAME' => $arParam['ID'], 'TARGET' => isset($arParam['FD_TARGET']) ? $arParam['FD_TARGET'] : 'F', 'EXT' => isset($arParam['FD_EXT']) ? $arParam['FD_EXT'] : '', 'UPLOAD' => isset($arParam['FD_UPLOAD']) && $arParam['FD_UPLOAD'] && $arParam['FD_TARGET'] == 'F', 'USE_ML' => isset($arParam['FD_USE_MEDIALIB']) && $arParam['FD_USE_MEDIALIB'], 'ONLY_ML' => isset($arParam['FD_USE_ONLY_MEDIALIB']) && $arParam['FD_USE_ONLY_MEDIALIB'], 'ML_TYPES' => isset($arParam['FD_MEDIALIB_TYPES']) ? $arParam['FD_MEDIALIB_TYPES'] : false); } // TOOLTIPS FROM .parameters langs if (!isset($result['tooltips'][$arParam['ID'] . '_TIP'])) { $tip = GetMessage($arParam['ID'] . '_TIP'); if ($tip) { $result['tooltips'][$arParam['ID'] . '_TIP'] = $tip; } } } return $result; }
function ShowHTMLEditControl($name, $content, $arParams = array()) { global $USER; // We have to avoid of showing HTML-editor with probably unsecure content when loosing the session [mantis:#0007986] if ($_SERVER["REQUEST_METHOD"] == "POST" && !check_bitrix_sessid()) { return; } CUtil::InitJSCore(array('window', 'ajax')); $relPath = isset($arParams["path"]) ? $arParams["path"] : "/"; $site = isset($arParams["site"]) ? $arParams["site"] : ""; $__path = Rel2Abs("/", $relPath); $site = CFileMan::__CheckSite($site); $name = preg_replace("/[^a-zA-Z0-9_:\\.]/is", "", $name); if (!isset($arParams["limit_php_access"])) { $arParams["limit_php_access"] = false; } $arParams["light_mode"] = defined('BX_PUBLIC_MODE') && BX_PUBLIC_MODE == 1 || isset($arParams["light_mode"]) && $arParams["light_mode"] == 'Y'; $io = CBXVirtualIo::GetInstance(); $direction_rtl = false; if ($site) { $DOC_ROOT = CSite::GetSiteDocRoot($site); $abs_path = $DOC_ROOT . $__path; if ($io->FileExists($abs_path)) { $relPath = substr($relPath, 0, strrpos($relPath, "/")); if ($relPath == "") { $relPath = "/"; } } } static $bFirstUsed; $template = $arParams["templateID"]; if (!isset($template) && defined('SITE_TEMPLATE_ID')) { $template = SITE_TEMPLATE_ID; } if (!isset($template) && isset($_GET['siteTemplateId'])) { $template = $_GET['siteTemplateId']; } if (!isset($template) && isset($site)) { $dbSiteRes = CSite::GetTemplateList($site); $SITE_TEMPLATE = array(); while ($arSiteRes = $dbSiteRes->Fetch()) { if ($arSiteRes['CONDITION'] == "" || !isset($template)) { $template = $arSiteRes['TEMPLATE']; } } } if (isset($arParams['use_editor_3'])) { $useEditor3 = $arParams['use_editor_3'] == "Y"; } else { $useEditor3 = COption::GetOptionString('fileman', "use_editor_3", "Y") == "Y"; } if ($useEditor3) { $Editor = new CHTMLEditor(); $Editor->Show(array('name' => $name, 'id' => $name, 'siteId' => $arParams["site"], 'width' => $arParams["width"], 'height' => $arParams["height"], 'content' => $content, 'bAllowPhp' => !$arParams["bWithoutPHP"] && $USER->CanDoOperation('edit_php'), "limitPhpAccess" => $arParams["limit_php_access"], "display" => $arParams['bDisplay'], "componentFilter" => isset($arParams['componentFilter']) ? $arParams['componentFilter'] : false, "setFocusAfterShow" => isset($arParams['setFocusAfterShow']) ? $arParams['setFocusAfterShow'] : true, "relPath" => $relPath, "templateId" => $template)); return; } //Taskbars $arTaskbars = isset($arParams["arTaskbars"]) ? $arParams["arTaskbars"] : array(); //Toolbars $arToolbars = isset($arParams["arToolbars"]) ? $arParams["arToolbars"] : false; // Toolbar config $arParams["toolbarConfig"] = is_array($arParams["toolbarConfig"]) ? $arParams["toolbarConfig"] : false; $arParams["use_advanced_php_parser"] = COption::GetOptionString("fileman", "use_advanced_php_parser", "Y"); $arParams["ar_entities"] = COption::GetOptionString("fileman", "ar_entities", 'umlya,greek,other'); if ($arParams["ar_entities"] == 'none') { $arParams["ar_entities"] = ''; } if (!isset($arParams["usePspell"])) { $arParams["usePspell"] = COption::GetOptionString("fileman", "use_pspell", "N"); } if (!isset($arParams["useCustomSpell"])) { $arParams["useCustomSpell"] = COption::GetOptionString("fileman", "use_custom_spell", "Y"); } $arParams['allowRenderComp2'] = COption::GetOptionString('fileman', "allow_render_components", "N") == 'Y'; $arParams['renderComponents'] = $arParams['allowRenderComp2'] && CUserOptions::GetOption('fileman', "render_components", "Y") == 'Y'; $lca = COption::GetOptionString("fileman", "use_lca", "N"); $styleList_render_style = COption::GetOptionString("fileman", "render_styles_in_classlist", "Y") == 'Y' ? 'true' : 'false'; $arAdditionalParams = isset($arParams["arAdditionalParams"]) ? $arParams["arAdditionalParams"] : array(); $arResult = CFileman::GetAllTemplateParams($template, $site, $arParams["bWithoutPHP"] != true, $arAdditionalParams); $arParams["TEMPLATE"] = $arResult; if ($bUseOnlyDefinedStyles && !is_set($arResult, "STYLES_TITLE")) { $bUseOnlyDefinedStyles = false; } $arParams["body_class"] = COption::GetOptionString("fileman", "editor_body_class", ""); $arParams["body_id"] = COption::GetOptionString("fileman", "editor_body_id", ""); ?> <script bxrunfirst="true"> var relPath = "<?php echo CUtil::JSEscape($relPath); ?> "; var <?php echo 'ar_' . $name . '_taskbars'; ?> = {}; <?php for ($k = 0, $l = count($arTaskbars); $k < $l; $k++) { echo 'ar_' . $name . '_taskbars["' . $arTaskbars[$k] . '"] = true;'; } if ($arToolbars !== false) { echo 'var ar_' . $name . '_toolbars = {};'; for ($k = 0, $l = count($arToolbars); $k < $l; $k++) { echo 'ar_' . $name . '_toolbars["' . $arToolbars[$k] . '"] = true;'; } } else { echo 'var ar_' . $name . '_toolbars = false;'; } ?> window.ar_<?php echo $name; ?> _config = <?php echo CUtil::PhpToJSObject($arParams); ?> ; // editor-config </script> <?php $str_taskbars = ""; CFileman::GetHTMLEditorSettings($name, $arParams["light_mode"], $arTaskbars, $str_taskbars); $str_taskbars .= '_' . CFileman::GetVersion(); if (!$bFirstUsed) { $arTemplates = array(array('value' => '.default', 'name' => GetMessage("FILEMAN_DEFTEMPL"))); $db_site_templates = CSiteTemplate::GetList(array(), array(), array()); while ($ar_site_templates = $db_site_templates->Fetch()) { $arTemplates[] = array('value' => $ar_site_templates['ID'], 'name' => $ar_site_templates['NAME']); } ?> <script bxrunfirst="true"> var arBXTemplates = <?php echo CUtil::PhpToJSObject($arTemplates); ?> , BXSite = "<?php echo CUtil::JSEscape($site); ?> ", BXLang = "<?php echo CUtil::JSEscape(LANGUAGE_ID); ?> ", styleList_render_style = <?php echo $styleList_render_style; ?> , limit_php_access = <?php echo $arParams["limit_php_access"] ? 'true' : 'false'; ?> , lca = <?php echo $lca == 'Y' ? 'true' : 'false'; ?> , lightMode = <?php echo $arParams["light_mode"] ? 'true' : 'false'; ?> , BX_PERSONAL_ROOT = "<?php echo BX_PERSONAL_ROOT; ?> "; window.limit_php_access = top.limit_php_access = limit_php_access; window.lightMode = top.lightMode = lightMode; window.lca = top.lca = lca; window.BXLang = top.BXLang = BXLang; window.BXSite = top.BXSite = BXSite; window.BX_PERSONAL_ROOT = top.BX_PERSONAL_ROOT = BX_PERSONAL_ROOT; </script> <?php $arJS = array(); $arCSS = array(); $events = GetModuleEvents("fileman", "OnBeforeHTMLEditorScriptsGet"); while ($arEvent = $events->Fetch()) { $tmp = ExecuteModuleEventEx($arEvent, array($name, $arParams)); if (!is_array($tmp)) { continue; } if (is_array($tmp['JS'])) { $arJS = array_merge($arJS, $tmp['JS']); } if (is_array($tmp['CSS'])) { $arCSS = array_merge($arCSS, $tmp['CSS']); } } $arr = array(); // Additional JS files from event OnBeforeHtmlEditorScriptGet for ($i = 0, $c = count($arJS); $i < $c; $i++) { $arJS[$i] = preg_replace("/[^a-zA-Z0-9_:\\.]/is", "", $arJS[$i]); if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin/htmleditor2/' . $arJS[$i])) { $arr[] = $arJS[$i]; } } ?> <script type="text/javascript" src="/bitrix/admin/fileman_js.php?lang=<?php echo LANGUAGE_ID; ?> &v=<?php echo @filemtime($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/fileman/lang/' . LANGUAGE_ID . '/admin/fileman_js.php'); ?> "></script> <script type="text/javascript" src="/bitrix/admin/fileman_common_js.php?s=<?php echo $str_taskbars; ?> "></script> <?php for ($i = 0, $l = count($arr); $i < $l; $i++) { $script_filename = $arr[$i]; ?> <script type="text/javascript" src="/bitrix/admin/htmleditor2/<?php echo $script_filename; ?> ?v=<?php echo @filemtime($_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin/htmleditor2/' . $script_filename); ?> "></script><?php } ?> <script type="text/javascript" src="/bitrix/js/main/popup_menu.js?v=<?php echo @filemtime($_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/main/popup_menu.js'); ?> "></script> <?php for ($i = 0, $l = count($arCSS); $i < $l; $i++) { $arCSS[$i] = preg_replace("/[^a-zA-Z0-9_:\\.]/is", "", $arCSS[$i]); if (!file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin/htmleditor2/' . $arCSS[$i])) { continue; } ?> <link rel="stylesheet" type="text/css" href="/bitrix/admin/htmleditor2/<?php echo $arCSS[$i]; ?> ?v=<?php echo @filemtime($_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin/htmleditor2/' . $arCSS[$i]); ?> "/><?php } $db_events = GetModuleEvents("fileman", "OnIncludeHTMLEditorScript"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent); } $bFirstUsed = true; } ?> <div class="bxedmain-cont" id="<?php echo $name . '_object'; ?> "><table id="<?php echo $name; ?> _pFrame" class="bxedmainframe dim100x100" style="display:none;"> <tr style="height: 1%;"><td id="<?php echo $name; ?> _toolBarSet0" colspan="2" style="width: 100%; display: none; border-bottom: 1px solid #808080 !important;"></td></tr> <tr> <td id="<?php echo $name; ?> _toolBarSet1" style="width:0%; display: none; border-right: 1px solid #808080 !important;"></td> <td vAlign="top" style="width: 4000px; padding: 0!important;"> <table class="dim100x100"> <tr> <td class="bx-ceditor" id="<?php echo $name; ?> _cEditor"></td> <td id="<?php echo $name; ?> _taskBarSet2" class="bxedtaskbarset" style="width:0%; display: none;"> <table> <tr><td class="bx-move-col-v" rowSpan="3"><img src="/bitrix/images/1.gif" /></td><td style="height:26px;"></td></tr> <tr><td style="vertical-align: top;"></td></tr> <tr><td class="bx-taskbar-tabs"></td></tr> </table> </td> </tr> <tr style="height:0%; display: none;"> <td id="<?php echo $name; ?> _taskBarSet3" colspan="2"> <table> <tr><td class="bx-move-col-h"><img src="/bitrix/images/1.gif" /></td></tr> <tr><td style="height:26px;"></td></tr> <tr><td style="vertical-align: top; background: #F4F4F4 none !important;"></td></tr> <tr><td class="bx-taskbar-tabs"></td></tr> </table> </td> </tr> </table> </td> </tr> <tr id="bx-css-tt"><td id="<?php echo $name; ?> _taskBarTabs" colspan="2" class="tasktabcell"></td></tr> </table> </div> <script> BX.loadCSS('/bitrix/admin/htmleditor2/editor.css'); var bEd = BX("bxed_<?php echo $name; ?> _editor"); if (bEd && !bEd.checked) BX("<?php echo $name; ?> _object").style.display = "none"; </script> <?php if (!$arParams["bFromTextarea"]) { echo '<input type="hidden" name="' . $name . '" id="bxed_' . $name . '" value="' . htmlspecialcharsbx($content) . '">'; } if ($arParams["bDisplay"] !== false) { setEditorEventHandlers($name); ?> <script> BX.ready(function(){ BX.showWait(); BX("bxed_<?php echo $name; ?> ").pMainObj = new BXHTMLEditor("<?php echo $name; ?> "); }); </script> <?php } }
function Update($ID, $arFields) { /** @global CMain $APPLICATION */ global $APPLICATION; if (!$this->CheckFields($arFields, $ID)) { return false; } CheckDirPath($_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/templates/" . $ID); if (is_set($arFields, "CONTENT")) { $p = strpos($arFields["CONTENT"], "#WORK_AREA#"); $header = substr($arFields["CONTENT"], 0, $p); $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/templates/" . $ID . "/header.php", $header); $footer = substr($arFields["CONTENT"], $p + strlen("#WORK_AREA#")); $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/templates/" . $ID . "/footer.php", $footer); } if (is_set($arFields, "STYLES")) { $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/templates/" . $ID . "/styles.css", $arFields["STYLES"]); } if (is_set($arFields, "TEMPLATE_STYLES")) { $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/templates/" . $ID . "/template_styles.css", $arFields["TEMPLATE_STYLES"]); } if (is_set($arFields, "NAME") || is_set($arFields, "DESCRIPTION")) { $db_t = CSiteTemplate::GetList(array(), array("ID" => $ID)); $ar_t = $db_t->Fetch(); if (!is_set($arFields, "NAME")) { $arFields["NAME"] = $ar_t["NAME"]; } if (!is_set($arFields, "DESCRIPTION")) { $arFields["DESCRIPTION"] = $ar_t["DESCRIPTION"]; } $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/templates/" . $ID . "/description.php", '<' . '?' . '$arTemplate = array("NAME"=>"' . EscapePHPString($arFields['NAME']) . '", "DESCRIPTION"=>"' . EscapePHPString($arFields['DESCRIPTION']) . '");' . '?' . '>'); } return true; }
?> '); </script> <?php break; case "copy": $from = getLocalPath("templates/" . $ID, BX_PERSONAL_ROOT); $to = substr($from, 0, -strlen($ID)) . ($ID == ".default" ? "default" : $ID) . "_copy"; CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . $from, $_SERVER["DOCUMENT_ROOT"] . $to, false, true); break; } } } /** @global string $by */ /** @global string $order */ $rsData = CSiteTemplate::GetList(array($by => $order), array(), array("ID", "NAME", "DESCRIPTION", "SCREENSHOT", "SORT")); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("PAGES"), false)); $lAdmin->AddHeaders(array(array("id" => "SCREENSHOT", "content" => GetMessage("site_templ_edit_screen"), "default" => true), array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true), array("id" => "NAME", "content" => GetMessage('MAIN_T_ADMIN_NAME'), "sort" => "name", "default" => true), array("id" => "DESCRIPTION", "content" => GetMessage('MAIN_T_ADMIN_DESCRIPTION'), "sort" => "description", "default" => true), array("id" => "SORT", "content" => GetMessage("site_templ_edit_sort"), "sort" => "sort", "default" => true))); while ($arRes = $rsData->NavNext(true, "f_")) { $u_ID = urlencode($f_ID); $row =& $lAdmin->AddRow($f_ID, $arRes, "template_edit.php?ID=" . $u_ID, GetMessage("MAIN_EDIT_TITLE")); $row->AddViewField("SCREENSHOT", $f_SCREENSHOT != '' ? CFile::Show2Images($f_PREVIEW != '' ? $f_PREVIEW : $f_SCREENSHOT, $f_SCREENSHOT, 130, 100, "border=0") : ''); $row->AddViewField("ID", '<a href="template_edit.php?lang=' . LANGUAGE_ID . '&ID=' . $u_ID . '" title="' . GetMessage("MAIN_EDIT_TITLE") . '">' . $f_ID . '</a>'); if ($edit_php) { $row->AddInputField("NAME"); $row->AddInputField("DESCRIPTION"); $row->AddInputField("SORT"); } else { $row->AddViewField("NAME", $f_NAME);
function Update($ID, $arFields) { /** @global CMain $APPLICATION */ global $APPLICATION; if (!$this->CheckFields($arFields, $ID)) { return false; } $path = getLocalPath("templates/" . $ID, BX_PERSONAL_ROOT); if ($path === false) { return false; } if (isset($arFields["CONTENT"])) { $p = strpos($arFields["CONTENT"], "#WORK_AREA#"); $header = substr($arFields["CONTENT"], 0, $p); $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . $path . "/header.php", $header); $footer = substr($arFields["CONTENT"], $p + strlen("#WORK_AREA#")); $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . $path . "/footer.php", $footer); } if (isset($arFields["STYLES"])) { $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . $path . "/styles.css", $arFields["STYLES"]); } if (isset($arFields["TEMPLATE_STYLES"])) { $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . $path . "/template_styles.css", $arFields["TEMPLATE_STYLES"]); } if (isset($arFields["NAME"]) || isset($arFields["DESCRIPTION"]) || isset($arFields["SORT"])) { $db_t = CSiteTemplate::GetList(array(), array("ID" => $ID), array("NAME", "DESCRIPTION", "SORT")); $ar_t = $db_t->Fetch(); if (!isset($arFields["NAME"])) { $arFields["NAME"] = $ar_t["NAME"]; } if (!isset($arFields["DESCRIPTION"])) { $arFields["DESCRIPTION"] = $ar_t["DESCRIPTION"]; } if (!isset($arFields["SORT"])) { $arFields["SORT"] = $ar_t["SORT"]; } $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . $path . "/description.php", '<' . '?' . '$arTemplate = array(' . "\n" . ' "NAME" => "' . EscapePHPString($arFields['NAME']) . '",' . "\n" . ' "DESCRIPTION" => "' . EscapePHPString($arFields['DESCRIPTION']) . '",' . "\n" . ' "SORT" => ' . (intval($arFields['SORT']) > 0 ? intval($arFields['SORT']) : '""') . ',' . "\n" . ');' . "\n" . '?' . '>'); } if (isset($arFields["STYLES_DESCRIPTION"]) && is_array($arFields["STYLES_DESCRIPTION"])) { $str = '<' . '?' . "\nreturn array(\n"; foreach ($arFields["STYLES_DESCRIPTION"] as $code => $val) { $str .= "\t\"" . EscapePHPString($code) . '" => "' . EscapePHPString($val) . "\",\n"; } $str .= ");\n" . '?' . '>'; $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . $path . "/.styles.php", $str); } return true; }
/** * @return array * @throws \Bitrix\Main\ArgumentException */ public static function onPresetTemplateListSite($templateType = null, $templateId = null) { $resultList = array(); if ($templateType && $templateType !== 'SITE_TMPL') { return $resultList; } $by = 'SORT'; $order = 'ASC'; $filter = array('TYPE' => 'mail'); if ($templateId) { $filter['ID'] = $templateId; } $templateDb = \CSiteTemplate::GetList(array($by => $order), $filter, array("ID", "NAME", "CONTENT", "SCREENSHOT")); \Bitrix\Main\Loader::includeModule('fileman'); $replaceAttr = Editor::BLOCK_PLACE_ATTR . '="' . Editor::BLOCK_PLACE_ATTR_DEF_VALUE . '"'; $replaceText = '<div style="padding: 20px; border: 2px dashed #868686;"><span style="color: #868686; font-size: 20px;">' . Loc::getMessage('PRESET_TEMPLATE_LIST_SITE_DEF_TEXT') . '</span></div>'; while ($template = $templateDb->Fetch()) { if ($template['ID'] == 'mail_user') { continue; } $replaceTo = $replaceText; $html = $template['CONTENT']; $html = preg_replace('/<\\?[\\w\\w].*?B_PROLOG_INCLUDED[^>].*?\\?>/is', '', $html); if (stripos($html, $replaceAttr) === false) { $replaceTo = '<div id="bxStylistBody" ' . $replaceAttr . '>' . $replaceText . '</div>'; } $html = str_replace('#WORK_AREA#', $replaceTo, $html); $resultList[] = array('TYPE' => 'SITE_TMPL', 'ID' => $template['ID'], 'NAME' => $template['NAME'], 'ICON' => $template['SCREENSHOT'], 'HTML' => $html); } return $resultList; }
public static function GetSiteTemplates() { $arTemplates = Array(Array('value' => '.default', 'name' => GetMessage("FILEMAN_DEFTEMPL"))); $db_site_templates = CSiteTemplate::GetList(array(), array(), array()); while($ar = $db_site_templates->Fetch()) { $arTemplates[] = Array('value'=>$ar['ID'], 'name'=> $ar['NAME']); } return $arTemplates; }
else continue; } $SITE_TEMPLATE[$key] = array( "TEMPLATE" => $val['TEMPLATE'], "SORT" => $val['SORT'], "CONDITION" => $cond ); } } //templates $arSiteTemplates = array(); $db_res = CSiteTemplate::GetList(); while($arRes = $db_res->GetNext()) $arSiteTemplates[] = $arRes; foreach($SITE_TEMPLATE as $i=>$val): ConditionParse($val['CONDITION']); ?> <tr> <td> <select name="SITE_TEMPLATE[<?php echo $i; ?> ][TEMPLATE]" id="SITE_TEMPLATE[<?php echo $i; ?> ][TEMPLATE]">
?> '); </script> <?php break; case "copy": $from = getLocalPath("templates/" . $ID, BX_PERSONAL_ROOT); $to = substr($from, 0, -strlen($ID)) . ($ID == ".default" ? "default" : $ID) . "_copy"; CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . $from, $_SERVER["DOCUMENT_ROOT"] . $to, false, true); break; } } } /** @global string $by */ /** @global string $order */ $rsData = CSiteTemplate::GetList(array($by => $order), array('TYPE' => $isEditingMessageThemePage ? 'mail' : ''), array("ID", "NAME", "DESCRIPTION", "SCREENSHOT", "SORT")); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("PAGES"), false)); $lAdmin->AddHeaders(array(array("id" => "SCREENSHOT", "content" => GetMessage("site_templ_edit_screen"), "default" => true), array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true), array("id" => "NAME", "content" => GetMessage('MAIN_T_ADMIN_NAME'), "sort" => "name", "default" => true), array("id" => "DESCRIPTION", "content" => GetMessage('MAIN_T_ADMIN_DESCRIPTION'), "sort" => "description", "default" => true), array("id" => "SORT", "content" => GetMessage("site_templ_edit_sort"), "sort" => "sort", "default" => true))); while ($arRes = $rsData->NavNext(true, "f_")) { $u_ID = urlencode($f_ID); $row =& $lAdmin->AddRow($f_ID, $arRes, ($isEditingMessageThemePage ? "message_theme_edit.php" : "template_edit.php") . "?ID=" . $u_ID, GetMessage("MAIN_EDIT_TITLE")); $row->AddViewField("SCREENSHOT", $f_SCREENSHOT != '' ? CFile::Show2Images($f_PREVIEW != '' ? $f_PREVIEW : $f_SCREENSHOT, $f_SCREENSHOT, 130, 100, "border=0") : ''); $row->AddViewField("ID", '<a href="' . ($isEditingMessageThemePage ? "message_theme_edit.php" : "template_edit.php") . '?lang=' . LANGUAGE_ID . '&ID=' . $u_ID . '" title="' . GetMessage("MAIN_EDIT_TITLE") . '">' . $f_ID . '</a>'); if ($edit_php) { $row->AddInputField("NAME"); $row->AddInputField("DESCRIPTION"); $row->AddInputField("SORT"); } else { $row->AddViewField("NAME", $f_NAME);
$str_LID[] = $ar_LID["LID"]; } $attachmentFileDb = \Bitrix\Main\Mail\Internal\EventMessageAttachmentTable::getList(array('select' => array('FILE_ID'), 'filter' => array('EVENT_MESSAGE_ID' => $ID))); while ($ar = $attachmentFileDb->fetch()) { if ($arFileFetch = CFile::GetFileArray($ar['FILE_ID'])) { $arEventMessageFile[] = $arFileFetch; } } } if ($bVarsFromForm) { $str_LID = $LID; $DB->InitTableVarsForEdit("b_event_message", "", "str_"); $str_ADDITIONAL_FIELD = $ADDITIONAL_FIELD; } $arMailSiteTemplate = array(); $mailSiteTemplateDb = CSiteTemplate::GetList(null, array('TYPE' => 'mail')); while ($mailSiteTemplate = $mailSiteTemplateDb->GetNext()) { $arMailSiteTemplate[] = $mailSiteTemplate; } if (!$isUserHavePhpAccess) { $str_MESSAGE = htmlspecialcharsbx(LPA::PrepareContent(htmlspecialcharsback($str_MESSAGE))); } if ($ID > 0 && $COPY_ID <= 0) { $APPLICATION->SetTitle(str_replace("#ID#", "{$ID}", GetMessage("EDIT_MESSAGE_TITLE"))); } else { $APPLICATION->SetTitle(GetMessage("NEW_MESSAGE_TITLE")); } require $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/prolog_admin_after.php"; ?> <form method="POST" action="<?php echo $APPLICATION->GetCurPage();
echo $sCurrentTemplateName; ?> </b><?php if ($templateSiteTemplate == "") { ?> (<?php echo GetMessage("comp_templ_system"); ?> )<?php } ?> </td> </tr> <?php $arSiteTemplates = array(".default" => GetMessage("comp_templ_def_templ")); $db_site_templates = CSiteTemplate::GetList(array("sort" => "asc", "name" => "asc"), array(), array()); while ($ar_site_templates = $db_site_templates->Fetch()) { $arSiteTemplates[$ar_site_templates['ID']] = $ar_site_templates['NAME']; } if ($templateSiteTemplate != "") { $sSiteTemplate = $arSiteTemplates[$templateSiteTemplate]; ?> <tr> <td class="bx-popup-label bx-width50"><?php echo GetMessage("comp_templ_cur_site_template"); ?> :</td> <td><b><?php echo htmlspecialcharsbx($templateSiteTemplate); ?> </b><?php
} </script> <table cellspacing="0" class="bx-width100"> <tr> <td class="bx-popup-label bx-width50"><?php echo GetMessage("comp_templ_cur_template"); ?> :</td> <td><b><?php echo $sCurrentTemplateName; ?> </b><?if($templateSiteTemplate==""):?> (<?echo GetMessage("comp_templ_system")?>)<?endif?></td> </tr> <? $arSiteTemplates = array(".default"=>GetMessage("comp_templ_def_templ")); $db_site_templates = CSiteTemplate::GetList(array(), array(), array()); while($ar_site_templates = $db_site_templates->Fetch()) $arSiteTemplates[$ar_site_templates['ID']] = $ar_site_templates['NAME']; if($templateSiteTemplate<>""): $sSiteTemplate = $arSiteTemplates[$templateSiteTemplate]; ?> <tr> <td class="bx-popup-label bx-width50"><?php echo GetMessage("comp_templ_cur_site_template"); ?> :</td> <td><b><?php echo htmlspecialcharsbx($templateSiteTemplate); ?> </b><?if($sSiteTemplate <> "") echo " (".htmlspecialcharsbx($sSiteTemplate).")"?></td>
public static function AddPagerSettings(&$arComponentParameters, $pager_title, $bDescNumbering=true, $bShowAllParam=false) { $arHiddenTemplates = array( 'js' => true ); if (!isset($arComponentParameters['GROUPS'])) $arComponentParameters['GROUPS'] = array(); $arComponentParameters["GROUPS"]["PAGER_SETTINGS"] = array( "NAME" => GetMessage("T_IBLOCK_DESC_PAGER_SETTINGS"), ); $arTemplateInfo = CComponentUtil::GetTemplatesList('freetrix:system.pagenavigation'); if (empty($arTemplateInfo)) { $arComponentParameters["PARAMETERS"]["PAGER_TEMPLATE"] = Array( "PARENT" => "PAGER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_PAGER_TEMPLATE"), "TYPE" => "STRING", "DEFAULT" => "", ); } else { sortByColumn($arTemplateInfo, array('TEMPLATE' => SORT_ASC, 'NAME' => SORT_ASC)); $arTemplateList = array(); $arSiteTemplateList = array( '.default' => GetMessage('T_IBLOCK_DESC_PAGER_TEMPLATE_SITE_DEFAULT') ); $arTemplateID = array(); foreach ($arTemplateInfo as &$template) { if ('' != $template["TEMPLATE"] && '.default' != $template["TEMPLATE"]) $arTemplateID[] = $template["TEMPLATE"]; if (!isset($template['TITLE'])) $template['TITLE'] = $template['NAME']; } unset($template); if (!empty($arTemplateID)) { $rsSiteTemplates = CSiteTemplate::GetList( array(), array("ID"=>$arTemplateID), array() ); while ($arSitetemplate = $rsSiteTemplates->Fetch()) { $arSiteTemplateList[$arSitetemplate['ID']] = $arSitetemplate['NAME']; } } foreach ($arTemplateInfo as &$template) { if (isset($arHiddenTemplates[$template['NAME']])) continue; $strDescr = $template["TITLE"].' ('.('' != $template["TEMPLATE"] && '' != $arSiteTemplateList[$template["TEMPLATE"]] ? $arSiteTemplateList[$template["TEMPLATE"]] : GetMessage("T_IBLOCK_DESC_PAGER_TEMPLATE_SYSTEM")).')'; $arTemplateList[$template['NAME']] = $strDescr; } unset($template); $arComponentParameters["PARAMETERS"]["PAGER_TEMPLATE"] = array( "PARENT" => "PAGER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_PAGER_TEMPLATE_EXT"), "TYPE" => "LIST", "VALUES" => $arTemplateList, "DEFAULT" => ".default", "ADDITIONAL_VALUES" => "Y" ); } $arComponentParameters["PARAMETERS"]["DISPLAY_TOP_PAGER"] = Array( "PARENT" => "PAGER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_TOP_PAGER"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", ); $arComponentParameters["PARAMETERS"]["DISPLAY_BOTTOM_PAGER"] = Array( "PARENT" => "PAGER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_BOTTOM_PAGER"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", ); $arComponentParameters["PARAMETERS"]["PAGER_TITLE"] = Array( "PARENT" => "PAGER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_PAGER_TITLE"), "TYPE" => "STRING", "DEFAULT" => $pager_title, ); $arComponentParameters["PARAMETERS"]["PAGER_SHOW_ALWAYS"] = Array( "PARENT" => "PAGER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_PAGER_SHOW_ALWAYS"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", ); if($bDescNumbering) { $arComponentParameters["PARAMETERS"]["PAGER_DESC_NUMBERING"] = Array( "PARENT" => "PAGER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_PAGER_DESC_NUMBERING"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", ); $arComponentParameters["PARAMETERS"]["PAGER_DESC_NUMBERING_CACHE_TIME"] = Array( "PARENT" => "PAGER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_PAGER_DESC_NUMBERING_CACHE_TIME"), "TYPE" => "STRING", "DEFAULT" => "36000", ); } if($bShowAllParam) { $arComponentParameters["PARAMETERS"]["PAGER_SHOW_ALL"] = Array( "PARENT" => "PAGER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_SHOW_ALL"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y" ); } }
$cond = ConditionCompose($val, $key); } else { if (isset($arTemplates[$key])) { $cond = $arTemplates[$key]; } else { continue; } } $SITE_TEMPLATE[$key] = array("TEMPLATE" => $val['TEMPLATE'], "SORT" => $val['SORT'], "CONDITION" => $cond); } } $signer = new Bitrix\Main\Security\Sign\Signer(); //templates $arSiteTemplates = array(); $templateSigns = array(); $db_res = CSiteTemplate::GetList(array("sort" => "asc", "name" => "asc"), array("TYPE" => ""), array("ID", "NAME")); while ($arRes = $db_res->GetNext()) { $arSiteTemplates[] = $arRes; $templateSigns[$arRes["ID"]] = $signer->sign($arRes["ID"], "template_preview" . bitrix_sessid()); } $bFirst = true; foreach ($SITE_TEMPLATE as $i => $val) { ConditionParse($val['CONDITION']); ?> <tr> <td> <select name="SITE_TEMPLATE[<?php echo $i; ?> ][TEMPLATE]" id="SITE_TEMPLATE[<?php echo $i;
?> <script type="text/javascript"> exportData('<?php echo CUtil::JSEscape($ID); ?> '); </script> <?php break; case "copy": CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/templates/" . $ID, $_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/templates/" . ($ID == ".default" ? "default" : $ID) . "_copy", false, true); break; } } } $rsData = CSiteTemplate::GetList(); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("PAGES"), false)); $lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true), array("id" => "NAME", "content" => GetMessage('MAIN_T_ADMIN_NAME'), "default" => true), array("id" => "DESCRIPTION", "content" => GetMessage('MAIN_T_ADMIN_DESCRIPTION'), "default" => true))); while ($arRes = $rsData->NavNext(true, "f_")) { $u_ID = urlencode($f_ID); $row =& $lAdmin->AddRow($f_ID, $arRes, "template_edit.php?ID=" . $u_ID, GetMessage("MAIN_EDIT_TITLE")); $row->AddViewField("ID", '<a href="template_edit.php?lang=' . LANGUAGE_ID . '&ID=' . $u_ID . '" title="' . GetMessage("MAIN_EDIT_TITLE") . '">' . $f_ID . '</a>' . ($f_SCREENSHOT != '' ? CFile::Show2Images($f_PREVIEW != '' ? $f_PREVIEW : $f_SCREENSHOT, $f_SCREENSHOT, 130, 100, "hspace=0 vspace=4 border=0 align=left") : '')); if ($edit_php) { $row->AddInputField("NAME"); $row->AddInputField("DESCRIPTION"); } else { $row->AddViewField("NAME", $f_NAME); $row->AddViewField("DESCRIPTION", $f_DESCRIPTION); }
function Update($ID, $arFields) { /** @global CMain $APPLICATION */ global $APPLICATION; if (!$this->CheckFields($arFields, $ID)) { return false; } $path = getLocalPath("templates/" . $ID, BX_PERSONAL_ROOT); if ($path === false) { return false; } if (isset($arFields["CONTENT"])) { $p = strpos($arFields["CONTENT"], "#WORK_AREA#"); $header = substr($arFields["CONTENT"], 0, $p); $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . $path . "/header.php", $header); $footer = substr($arFields["CONTENT"], $p + strlen("#WORK_AREA#")); $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . $path . "/footer.php", $footer); } if (isset($arFields["STYLES"])) { $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . $path . "/styles.css", $arFields["STYLES"]); } if (isset($arFields["TEMPLATE_STYLES"])) { $APPLICATION->SaveFileContent($_SERVER["DOCUMENT_ROOT"] . $path . "/template_styles.css", $arFields["TEMPLATE_STYLES"]); } if (isset($arFields["NAME"]) || isset($arFields["DESCRIPTION"]) || isset($arFields["SORT"]) || isset($arFields["TYPE"])) { $db_t = CSiteTemplate::GetList(array(), array("ID" => $ID), array("NAME", "DESCRIPTION", "SORT")); $ar_t = $db_t->Fetch(); if (!isset($arFields["NAME"])) { $arFields["NAME"] = $ar_t["NAME"]; } if (!isset($arFields["DESCRIPTION"])) { $arFields["DESCRIPTION"] = $ar_t["DESCRIPTION"]; } if (!isset($arFields["SORT"])) { $arFields["SORT"] = $ar_t["SORT"]; } if (!isset($arFields["TYPE"])) { $arFields["TYPE"] = $ar_t["TYPE"]; } if (!isset($arFields["EDITOR_STYLES"])) { $arFields["EDITOR_STYLES"] = $ar_t["EDITOR_STYLES"]; } self::SaveDescription($arFields, $_SERVER["DOCUMENT_ROOT"] . $path . "/description.php"); } self::SaveStyleDescription($arFields["STYLES_DESCRIPTION"], $_SERVER["DOCUMENT_ROOT"] . $path . "/.styles.php"); return true; }
:</td> <td> <select name="NEW_COMPONENT_TEMPLATE" onchange="<?php echo $obJSPopup->jsPopup . ".PostParameters('" . PageParams() . "&action=refresh&scroll='+" . $obJSPopup->jsPopup . ".GetContent().scrollTop);"; ?> "> <?php $arTemplateID = array(); foreach ($arComponentTemplates as $template) { if ($template["TEMPLATE"] != '' && $template["TEMPLATE"] != '.default') { $arTemplateID[] = $template["TEMPLATE"]; } } $arTemplates = array(".default" => GetMessage("comp_prop_default_templ")); if (!empty($arTemplateID)) { $db_site_templates = CSiteTemplate::GetList(array(), array("ID" => $arTemplateID), array()); while ($ar_site_templates = $db_site_templates->Fetch()) { $arTemplates[$ar_site_templates['ID']] = $ar_site_templates['NAME']; } } foreach ($arComponentTemplates as $template) { $showTemplateName = $template["TEMPLATE"] != '' && $arTemplates[$template["TEMPLATE"]] != '' ? $arTemplates[$template["TEMPLATE"]] : GetMessage("comp_prop_template_sys"); ?> <option value="<?php echo htmlspecialcharsbx($template["NAME"]); ?> "<?php if ($template["NAME"] == $curTemplate || $curTemplate == '' && $template["NAME"] == ".default") { echo " selected"; } ?>
require_once dirname(__FILE__) . "/../include/prolog_admin_before.php"; require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/prolog.php"; define("HELP_FILE", "settings/wizard_list.php"); require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/classes/general/wizard.php"; if (!$USER->CanDoOperation('edit_php') && !$USER->CanDoOperation('view_other_settings')) { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } $isAdmin = $USER->CanDoOperation('edit_php'); IncludeModuleLangFile(__FILE__); $sTableID = "package_list"; $oSort = new CAdminSorting($sTableID, "sort", "asc"); $lAdmin = new CAdminList($sTableID, $oSort); if (($arID = $lAdmin->GroupAction()) && $isAdmin) { if ($_REQUEST['action_target'] == 'selected') { $arID = array(); $rsData = CSiteTemplate::GetList($by, $order, array()); while ($arRes = $rsData->Fetch()) { $arID[] = $arRes['ID']; } } foreach ($arID as $ID) { if (strlen($ID) <= 0) { continue; } switch ($_REQUEST['action']) { case "delete": @set_time_limit(0); if (!CWizardUtil::DeleteWizard($ID)) { $lAdmin->AddGroupError(GetMessage("MAIN_WIZARD_DELETE_ERROR"), $ID); } break;