Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Wed, Jun 18, 10:33 AM

in-portal

Index: branches/unlabeled/unlabeled-1.36.2/core/units/admin/admin_tag_processor.php
===================================================================
--- branches/unlabeled/unlabeled-1.36.2/core/units/admin/admin_tag_processor.php (nonexistent)
+++ branches/unlabeled/unlabeled-1.36.2/core/units/admin/admin_tag_processor.php (revision 8115)
@@ -0,0 +1,730 @@
+<?php
+
+ class AdminTagProcessor extends kDBTagProcessor {
+
+ function SetConst($params)
+ {
+ $name = $this->SelectParam($params, 'name,const');
+ safeDefine($name, $params['value']);
+ }
+
+ /**
+ * Allows to execute js script after the page is fully loaded
+ *
+ * @param Array $params
+ * @return string
+ */
+ function AfterScript($params)
+ {
+ $after_script = $this->Application->GetVar('after_script');
+ if ($after_script) {
+ return '<script type="text/javascript">'.$after_script.'</script>';
+ }
+ return '';
+ }
+
+ /**
+ * Returns section title with #section# keyword replaced with current section
+ *
+ * @param Array $params
+ * @return string
+ */
+ function GetSectionTitle($params)
+ {
+ $params['name'] = replaceModuleSection($params['phrase']);
+ return $this->Application->ProcessParsedTag('m', 'Phrase', $params);
+ }
+
+ /**
+ * Returns section icon with #section# keyword replaced with current section
+ *
+ * @param Array $params
+ * @return string
+ */
+ function GetSectionIcon($params)
+ {
+ return replaceModuleSection($params['icon']);
+ }
+
+ /**
+ * Allows to detect if current template is one of listed ones
+ *
+ * @param Array $params
+ * @return int
+ */
+ function TemplateMatches($params)
+ {
+ $templates = explode(',' ,$params['templates']);
+ $t = $this->Application->GetVar('t');
+ return in_array($t, $templates) ? 1 : 0;
+ }
+
+ /**
+ * Save return script in cases, when old sections are opened from new sections
+ *
+ * @param Array $params
+ */
+ function SaveReturnScript($params)
+ {
+ // admin/save_redirect.php?do=
+ $url = str_replace($this->Application->BaseURL(), '', $this->Application->ProcessParsedTag('m', 'Link', $params) );
+ $url = explode('?', $url, 2);
+ $url = 'save_redirect.php?'.$url[1].'&do='.$url[0];
+
+ $this->Application->StoreVar('ReturnScript', $url);
+ }
+
+ /**
+ * Redirects to correct next import step template based on import script data
+ *
+ * @param Array $params
+ */
+ function ImportRedirect($params)
+ {
+ $import_id = $this->Application->GetVar('import_id');
+ if ($import_id) {
+ // redirect forward to step3 (import parameters coosing)
+ $this->Application->StoreVar('ImportScriptID', $import_id);
+
+ $sql = 'SELECT *
+ FROM '.TABLE_PREFIX.'ImportScripts
+ WHERE is_id = '.$import_id;
+
+ $db =& $this->Application->GetADODBConnection();
+ $is_params = $db->GetRow($sql);
+
+ if ($is_params['is_type'] == 'db') {
+ $this->Application->Redirect('', null, '', 'import/step3.php');
+ }
+ elseif ($is_params['is_type'] == 'csv') {
+ $module = strtolower($is_params['is_Module']);
+ $template = $module.'/import';
+ $module_info = $this->Application->findModule('Name', $module);
+
+ $item_prefix = $module_info['Var'];
+ $pass_params = Array('m_opener' => 'd', $item_prefix.'.import_id' => 0, $item_prefix.'.import_event' => 'OnNew', 'pass' => 'm,'.$item_prefix.'.import', 'm_cat_id' => $module_info['RootCat']);
+
+ $this->Application->Redirect($template, $pass_params);
+ }
+ }
+ else {
+ // redirect back to step2 (import type choosing)
+ $this->Application->Redirect('', null, '', 'import/step2.php');
+ }
+ }
+
+ /**
+ * Returns version of module by name
+ *
+ * @param Array $params
+ * @return string
+ */
+ function ModuleVersion($params)
+ {
+ return $this->Application->findModule('Name', $params['module'], 'Version');
+ }
+
+ /**
+ * Used in table form section drawing
+ *
+ * @param Array $params
+ * @return string
+ */
+ function DrawTree($params)
+ {
+ static $deep_level = 0;
+
+ // when processings, then sort children by priority (key of children array)
+ $ret = '';
+ $section_name = $params['section_name'];
+ $params['name'] = $this->SelectParam($params, 'name,render_as,block');
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ $section_data =& $sections_helper->getSectionData($section_name);
+
+ $params['children_count'] = isset($section_data['children']) ? count($section_data['children']) : 0;
+ $params['deep_level'] = $deep_level++;
+ $template = $section_data['url']['t'];
+ unset($section_data['url']['t']);
+ $section_data['section_url'] = $this->Application->HREF($template, '', $section_data['url']);
+ $ret .= $this->Application->ParseBlock( array_merge_recursive2($params, $section_data) );
+ if (!isset($section_data['children'])) {
+ return $ret;
+ }
+
+ $debug_mode = $this->Application->isDebugMode(); // caching for faster performance
+ ksort($section_data['children'], SORT_NUMERIC);
+ foreach ($section_data['children'] as $section_name) {
+ $section_data =& $sections_helper->getSectionData($section_name);
+ if (!$debug_mode && isset($section_data['debug_only']) && $section_data['debug_only']) {
+ // don't show section for debug mode only without debug mode turned on
+ continue;
+ }
+ $params['section_name'] = $section_name;
+ $ret .= $this->DrawTree($params);
+ $deep_level--;
+ }
+
+
+ return $ret;
+ }
+
+
+ function SectionInfo($params)
+ {
+ $section = $params['section'];
+ if ($section == '#session#') {
+ $section = $this->Application->RecallVar('section');
+ }
+
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ /* @var $sections_helper kSectionsHelper */
+ $section_data =& $sections_helper->getSectionData($section);
+
+ if (isset($params['parent']) && $params['parent']) {
+ do {
+ $section_data =& $sections_helper->getSectionData($section_data['parent']);
+ } while (isset($section_data['use_parent_header']) && $section_data['use_parent_header']);
+ }
+
+ $info = $params['info'];
+ switch ($info) {
+ case 'module_path':
+ if (isset($params['module']) && $params['module']) {
+ $module = $params['module'];
+ }
+ elseif (isset($section_data['icon_module'])) {
+ $module = $section_data['icon_module'];
+ }
+ else {
+ $module = '#session#';
+ }
+ $res = $this->ModulePath(array('module' => $module));
+ break;
+ default:
+ $res = $section_data[$info];
+ }
+
+ if ($info == 'label' || isset($params['as_label'])) {
+ $res = $this->Application->Phrase($res);
+ }
+ return $res;
+ }
+
+
+ function PrintSection($params)
+ {
+ $section_name = $params['section_name'];
+ if ($section_name == '#session#') {
+ $section_name = $this->Application->RecallVar('section');
+ }
+
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ /* @var $sections_helper kSectionsHelper */
+ $section_data =& $sections_helper->getSectionData($section_name);
+
+ $params['name'] = $this->SelectParam($params, 'name,render_as,block');
+ $params['section_name'] = $section_name;
+
+ $template = $section_data['url']['t'];
+ unset($section_data['url']['t']);
+
+ $section_data['section_url'] = $this->Application->HREF($template, '', $section_data['url']);
+ $ret = $this->Application->ParseBlock( array_merge_recursive2($params, $section_data) );
+
+ return $ret;
+ }
+
+ /**
+ * Used in XML drawing for tree
+ *
+ * @param Array $params
+ * @return string
+ */
+ function PrintSections($params)
+ {
+ // when processings, then sort children by priority (key of children array)
+ $ret = '';
+ $section_name = $params['section_name'];
+ if ($section_name == '#session#') {
+ $section_name = $this->Application->RecallVar('section');
+ }
+
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ $section_data =& $sections_helper->getSectionData($section_name);
+
+ $params['name'] = $this->SelectParam($params, 'name,render_as,block');
+ if (!isset($section_data['children'])) {
+ return '';
+ }
+
+ $debug_mode = $this->Application->isDebugMode();
+ $super_admin_mode = $this->Application->RecallVar('super_admin');
+
+ ksort($section_data['children'], SORT_NUMERIC);
+ foreach ($section_data['children'] as $section_name) {
+ $params['section_name'] = $section_name;
+ $section_data =& $sections_helper->getSectionData($section_name);
+
+ if (isset($section_data['show_mode'])) {
+ $show_mode = $section_data['show_mode'];
+ // if super admin section -> show in super admin mode & debug mode
+ $show_section = (($show_mode & smSUPER_ADMIN) == smSUPER_ADMIN) && ($super_admin_mode || $debug_mode);
+ if (!$show_section) {
+ // if section is in debug mode only && debug mode -> show
+ $show_section = (($show_mode & smDEBUG) == smDEBUG) && $debug_mode;
+ }
+ if (!$show_section) {
+ continue;
+ }
+ }
+
+ if (isset($section_data['tabs_only']) && $section_data['tabs_only']) {
+ $perm_status = false;
+ $folder_label = $section_data['label'];
+ ksort($section_data['children'], SORT_NUMERIC);
+ foreach ($section_data['children'] as $priority => $section_name) {
+ // if only tabs in this section & none of them have permission, then skip section too
+ $section_data =& $sections_helper->getSectionData($section_name);
+ if ($section_data && isset($section_data['perm_prefix'])) {
+ // this section uses other section permissions
+ $section_name = $this->Application->getUnitOption($section_data['perm_prefix'].'.main', 'PermSection');
+ }
+
+ $perm_status = $this->Application->CheckPermission($section_name.'.view', 1);
+ if ($perm_status) {
+ break;
+ }
+ }
+ if (!$perm_status) {
+ // no permission for all tabs -> don't display tree node either
+ continue;
+ }
+
+ $params['section_name'] = $section_name;
+ $section_data =& $sections_helper->getSectionData($section_name);
+ $section_data['label'] = $folder_label; // use folder label in tree
+ $section_data['is_tab'] = 1;
+ }
+ else {
+ if ($section_data && isset($section_data['perm_prefix'])) {
+ // this section uses other section permissions
+ $section_name = $this->Application->getUnitOption($section_data['perm_prefix'].'.main', 'PermSection');
+ }
+
+ if (!$this->Application->CheckPermission($section_name.'.view', 1)) continue;
+ }
+
+ $params['children_count'] = isset($section_data['children']) ? count($section_data['children']) : 0;
+
+ $template = $section_data['url']['t'];
+ unset($section_data['url']['t']);
+
+ $section_data['section_url'] = $this->Application->HREF($template, '', $section_data['url']);
+
+ $late_load = getArrayValue($section_data, 'late_load');
+ if ($late_load) {
+ $t = $late_load['t'];
+ unset($late_load['t']);
+ $section_data['late_load'] = $this->Application->HREF($t, '', $late_load);
+ $params['children_count'] = 99;
+ }
+ else {
+ $section_data['late_load'] = '';
+ }
+
+ $ret .= $this->Application->ParseBlock( array_merge_recursive2($params, $section_data) );
+ $params['section_name'] = $section_name;
+ }
+
+ return preg_replace("/\r\n|\n/", '', $ret);
+ }
+
+ function ListSectionPermissions($params)
+ {
+ $section_name = isset($params['section_name']) ? $params['section_name'] : $this->Application->GetVar('section_name');
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ $section_data =& $sections_helper->getSectionData($section_name);
+
+ $block_params = array_merge_recursive2($section_data, Array('name' => $params['render_as'], 'section_name' => $section_name));
+
+ $ret = '';
+ foreach ($section_data['permissions'] as $perm_name) {
+ if (preg_match('/^advanced:(.*)/', $perm_name) != $params['type']) continue;
+ $block_params['perm_name'] = $perm_name;
+ $ret .= $this->Application->ParseBlock($block_params);
+ }
+ return $ret;
+ }
+
+ function ModuleInclude($params)
+ {
+ foreach ($params as $param_name => $param_value) {
+ $params[$param_name] = replaceModuleSection($param_value);
+ }
+
+ return $this->Application->ProcessParsedTag('m', 'ModuleInclude', $params);
+ }
+
+ function TodayDate($params)
+ {
+ return date($params['format']);
+ }
+
+ function TreeEditWarrning($params)
+ {
+ $ret = $this->Application->Phrase($params['label']);
+ $ret = str_replace(Array('&lt;', '&gt;', 'br/', 'br /', "\n", "\r"), Array('<', '>', 'br', 'br', '', ''), $ret);
+ if (getArrayValue($params, 'escape')) {
+ $ret = addslashes($ret);
+ }
+ $ret = str_replace('<br>', '\n', $ret);
+ return $ret;
+ }
+
+ /**
+ * Draws section tabs using block name passed
+ *
+ * @param Array $params
+ */
+ function ListTabs($params)
+ {
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ $section_data =& $sections_helper->getSectionData($params['section_name']);
+
+ $ret = '';
+ $block_params = Array('name' => $params['render_as']);
+ ksort($section_data['children'], SORT_NUMERIC);
+ foreach ($section_data['children'] as $priority => $section_name) {
+ if (!$this->Application->CheckPermission($section_name.'.view', 1)) continue;
+
+ $tab_data =& $sections_helper->getSectionData($section_name);
+ $block_params['t'] = $tab_data['url']['t'];
+ $block_params['title'] = $tab_data['label'];
+ $block_params['main_prefix'] = $section_data['SectionPrefix'];
+ $ret .= $this->Application->ParseBlock($block_params);
+ }
+
+
+ return $ret;
+ }
+
+ /**
+ * Returns list of module item tabs that have view permission in current category
+ *
+ * @param Array $params
+ */
+ function ListCatalogTabs($params)
+ {
+ $ret = '';
+ $special = isset($params['special']) ? $params['special'] : '';
+ $replace_main = isset($params['replace_m']) && $params['replace_m'];
+ $skip_prefixes = isset($params['skip_prefixes']) ? explode(',', $params['skip_prefixes']) : Array();
+ $block_params = Array('name' => $params['render_as']);
+ foreach ($this->Application->ModuleInfo as $module_name => $module_info) {
+ $prefix = $module_info['Var'];
+
+ if (in_array($prefix, $skip_prefixes) || !$this->Application->prefixRegistred($prefix) || !$this->Application->getUnitOption($prefix, 'CatalogItem')) continue;
+ if ($prefix == 'm' && $replace_main) $prefix = 'c';
+ $label = $this->Application->getUnitOption($prefix, $params['title_property']);
+ $block_params['title'] = $label;
+ $block_params['prefix'] = $prefix;
+ $ret .= $this->Application->ParseBlock($block_params);
+ }
+ return $ret;
+ }
+
+ function FCKEditor($params)
+ {
+ if (file_exists(FULL_PATH.'/core/cmseditor/fckeditor.php')) {
+ $editor_path = 'core/cmseditor/';
+ }
+ else {
+ $editor_path = 'admin/editor/cmseditor/';
+ }
+ include_once(FULL_PATH.'/'.$editor_path.'/fckeditor.php');
+ $oFCKeditor = new FCKeditor($params['name']);
+ $oFCKeditor->BasePath = BASE_PATH.'/'.$editor_path;
+ $oFCKeditor->Width = $params['width'] ;
+ $oFCKeditor->Height = $params['height'] ;
+ $oFCKeditor->ToolbarSet = 'Advanced' ;
+ $oFCKeditor->Value = '' ;
+ $oFCKeditor->Config = Array(
+// 'UserFilesPath' => FULL_PATH.'/kernel/user_files',
+ 'ProjectPath' => BASE_PATH.'/',
+ 'CustomConfigurationsPath' => $this->Application->isModuleEnabled('In-Portal') ? $this->Application->BaseURL().'kernel/admin_templates/incs/inp_fckconfig.js' : $this->Application->BaseURL().$editor_path.'fckconfig.js',
+// 'EditorAreaCSS' => $this->Application->BaseURL().'/themes/inportal_site/inc/inportal.css', //GetThemeCSS(),
+ //'StylesXmlPath' => '../../inp_styles.xml',
+// 'Debug' => 1,
+ 'Admin' => 1,
+ 'K4' => 1,
+ );
+ return $oFCKeditor->CreateHtml();
+
+ }
+
+ /**
+ * Allows to construct link for opening any type of catalog item selector
+ *
+ * @param Array $params
+ * @return string
+ */
+ function SelectorLink($params)
+ {
+ $mode = 'catalog';
+ if (isset($params['mode'])) { // {catalog, advanced_view}
+ $mode = $params['mode'];
+ unset($params['mode']);
+ }
+
+ $params['t'] = 'in-portal/item_selector/item_selector_'.$mode;
+
+ $default_params = Array('no_amp' => 1, 'pass' => 'all,'.$params['prefix']);
+ unset($params['prefix']);
+
+ $pass_through = Array();
+ if (isset($params['tabs_dependant'])) { // {yes, no}
+ $pass_through['td'] = $params['tabs_dependant'];
+ unset($params['tabs_dependant']);
+ }
+
+ if (isset($params['selection_mode'])) { // {single, multi}
+ $pass_through['tm'] = $params['selection_mode'];
+ unset($params['selection_mode']);
+ }
+
+ if (isset($params['tab_prefixes'])) { // {all, none, <comma separated prefix list}
+ $pass_through['tp'] = $params['tab_prefixes'];
+ unset($params['tab_prefixes']);
+ }
+
+ if ($pass_through) {
+ // add pass_through to selector url if any
+ $params['pass_through'] = implode(',', array_keys($pass_through));
+ $params = array_merge_recursive2($params, $pass_through);
+ }
+
+ // user can override default parameters (except pass_through of course)
+ $params = array_merge_recursive2($default_params, $params);
+
+ return $this->Application->ProcessParsedTag('m', 't', $params);
+ }
+
+ function TimeFrame($params)
+ {
+ $w = adodb_date('w');
+ $m = adodb_date('m');
+ $y = adodb_date('Y');
+ //FirstDayOfWeek is 0 for Sunday and 1 for Monday
+ $fdow = $this->Application->ConfigValue('FirstDayOfWeek');
+ if ($fdow && $w == 0) $w = 7;
+ $today_start = adodb_mktime(0,0,0,adodb_date('m'),adodb_date('d'),$y);
+ $first_day_of_this_week = $today_start - ($w - $fdow)*86400;
+ $first_day_of_this_month = adodb_mktime(0,0,0,$m,1,$y);
+ $this_quater = ceil($m/3);
+ $this_quater_start = adodb_mktime(0,0,0,$this_quater*3-2,1,$y);
+
+ switch ($params['type']) {
+ case 'last_week_start':
+ $timestamp = $first_day_of_this_week - 86400*7;
+ break;
+ case 'last_week_end':
+ $timestamp = $first_day_of_this_week - 1;
+ break;
+
+ case 'last_month_start':
+ $timestamp = $m == 1 ? adodb_mktime(0,0,0,12,1,$y-1) : adodb_mktime(0,0,0,$m-1,1,$y);
+ break;
+ case 'last_month_end':
+ $timestamp = $first_day_of_this_month = adodb_mktime(0,0,0,$m,1,$y) - 1;
+ break;
+
+ case 'last_quater_start':
+ $timestamp = $this_quater == 1 ? adodb_mktime(0,0,0,10,1,$y-1) : adodb_mktime(0,0,0,($this_quater-1)*3-2,1,$y);
+ break;
+ case 'last_quater_end':
+ $timestamp = $this_quater_start - 1;
+ break;
+
+ case 'last_6_months_start':
+ $timestamp = $m <= 6 ? adodb_mktime(0,0,0,$m+6,1,$y-1) : adodb_mktime(0,0,0,$m-6,1,$y);
+ break;
+
+ case 'last_year_start':
+ $timestamp = adodb_mktime(0,0,0,1,1,$y-1);
+ break;
+ case 'last_year_end':
+ $timestamp = adodb_mktime(23,59,59,12,31,$y-1);
+ break;
+ }
+
+
+ if (isset($params['format'])) {
+ $format = $params['format'];
+ if(preg_match("/_regional_(.*)/", $format, $regs))
+ {
+ $lang =& $this->Application->recallObject('lang.current');
+ $format = $lang->GetDBField($regs[1]);
+ }
+ return adodb_date($format, $timestamp);
+ }
+
+ return $timestamp;
+
+ }
+ function CheckPermCache($params)
+ {
+ if ($this->Conn->GetOne('SELECT Data FROM '.TABLE_PREFIX.'Cache WHERE VarName = \'ForcePermCacheUpdate\'')) {
+ $this->Application->Redirect($params['cache_update_t'], array('continue' => 1));
+ }
+ }
+ /**
+ * Checks if current protocol is SSL
+ *
+ * @param Array $params
+ * @return int
+ */
+ function IsSSL($params)
+ {
+ return (PROTOCOL == 'https://')? 1 : 0;
+ }
+
+ function PrintColumns($params)
+ {
+ $picker_helper =& $this->Application->RecallObject('ColumnPickerHelper');
+ $picker_helper->SetGridName($this->Application->GetLinkedVar('grid_name'));
+ /* @var $picker_helper kColumnPickerHelper */
+
+ $main_prefix = $this->Application->RecallVar('main_prefix');
+ $cols = $picker_helper->LoadColumns($main_prefix);
+
+ $o = '';
+ if (isset($params['hidden']) && $params['hidden']) {
+ foreach ($cols['hidden_fields'] as $col) {
+ $title = $this->Application->Phrase($cols['titles'][$col]);
+ $o .= "<option value='$col'>".$title;
+ }
+ }
+ else {
+ foreach ($cols['order'] as $col) {
+ if (in_array($col, $cols['hidden_fields'])) continue;
+ $title = $this->Application->Phrase($cols['titles'][$col]);
+ $o .= "<option value='$col'>".$title;
+ }
+ }
+ return $o;
+ }
+
+ /**
+ * Allows to set popup size (key - current template name)
+ *
+ * @param Array $params
+ */
+ function SetPopupSize($params)
+ {
+ if (!$this->UsePopups($params)) return ;
+
+ $width = $params['width'];
+ $height = $params['height'];
+
+ if ($this->Application->GetVar('ajax') == 'yes') {
+ // during AJAX request just output size
+ die($width.'x'.$height);
+ }
+
+ $t = $this->Application->GetVar('t');
+ $sql = 'SELECT *
+ FROM '.TABLE_PREFIX.'PopupSizes
+ WHERE TemplateName = '.$this->Conn->qstr($t);
+ $popup_info = $this->Conn->GetRow($sql);
+ if (!$popup_info) {
+ // create new popup size record
+ $fields_hash = Array (
+ 'TemplateName' => $t,
+ 'PopupWidth' => $width,
+ 'PopupHeight' => $height,
+ );
+ $this->Conn->doInsert($fields_hash, TABLE_PREFIX.'PopupSizes');
+ }
+ elseif ($popup_info['PopupWidth'] != $width || $popup_info['PopupHeight'] != $height) {
+ // popup found and size in tag differs from one in db -> update in db
+ $fields_hash = Array (
+ 'PopupWidth' => $width,
+ 'PopupHeight' => $height,
+ );
+ $this->Conn->doUpdate($fields_hash, TABLE_PREFIX.'PopupSizes', 'PopupId = '.$popup_info['PopupId']);
+ }
+ }
+
+ /**
+ * Returns popup size (by template), if not cached, then parse template to get value
+ *
+ * @param Array $params
+ * @return string
+ */
+ function GetPopupSize($params)
+ {
+ $t = $this->Application->GetVar('template_name');
+ $sql = 'SELECT *
+ FROM '.TABLE_PREFIX.'PopupSizes
+ WHERE TemplateName = '.$this->Conn->qstr($t);
+ $popup_info = $this->Conn->GetRow($sql);
+ if (!$popup_info) {
+ $this->Application->InitParser();
+ $this->Application->ParseBlock(array('name' => $t)); // dies when SetPopupSize tag found & in ajax requrest
+ return '750x400'; // tag SetPopupSize not found in template -> use default size
+ }
+ return $popup_info['PopupWidth'].'x'.$popup_info['PopupHeight'];
+ }
+
+ function UsePopups($params)
+ {
+ return (int)$this->Application->ConfigValue('UsePopups');
+ }
+
+ function UseToolbarLabels($params)
+ {
+ return (int)$this->Application->ConfigValue('UseToolbarLabels');
+ }
+
+ /**
+ * Checks if debug mode enabled (optionally) and specified constant is on
+ *
+ * @param Array $params
+ * @return bool
+ */
+ function ConstOn($params)
+ {
+ $constant_name = $this->SelectParam($params, 'name,const');
+ $debug_mode = isset($params['debug_mode']) && $params['debug_mode'] ? $this->Application->isDebugMode() : true;
+ return $debug_mode && constOn($constant_name);
+ }
+
+ /**
+ * Builds link to last template in main frame of admin
+ *
+ * @param Array $params
+ * @return string
+ */
+ function MainFrameLink($params)
+ {
+ $last_template = $this->Application->RecallVar('last_template_popup'); // because of m_opener=s there
+ if (!$last_template) {
+ return false;
+ }
+
+ list(, $env) = explode('|', $last_template);
+ $vars = $this->Application->HttpQuery->processQueryString($env, 'pass');
+ if ($vars['t'] == 'login' || $vars['t'] == 'index') {
+ // prevents redirect recursion OR old in-portal pages
+ return false;
+ }
+
+ $vars = array_merge_recursive2($vars, $params);
+ $t = $vars['t'];
+ unset($vars['t']);
+
+ return $this->Application->HREF($t, '', $vars);
+ }
+ }
+
+?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.36.2/core/units/admin/admin_tag_processor.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.36
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property

Event Timeline