Index: trunk/core/units/admin/admin_tag_processor.php
===================================================================
diff -u -N
--- trunk/core/units/admin/admin_tag_processor.php (revision 8901)
+++ trunk/core/units/admin/admin_tag_processor.php (revision 0)
@@ -1,852 +0,0 @@
-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 '';
- }
- return '';
- }
-
- /**
- * Returns section title with #section# keyword replaced with current section
- *
- * @param Array $params
- * @return string
- */
- function GetSectionTitle($params)
- {
- $params['name'] = replaceModuleSection($params['phrase']);
- $m =& $this->Application->recallObject('m_TagProcessor');
- return $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=
- $m =& $this->Application->recallObject('m_TagProcessor');
- $url = str_replace($this->Application->BaseURL(), '', $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();
- $super_admin_mode = $this->Application->RecallVar('super_admin');
-
- ksort($section_data['children'], SORT_NUMERIC);
- foreach ($section_data['children'] as $section_name) {
- $section_data =& $sections_helper->getSectionData($section_name);
-
- if (isset($section_data['show_mode']) && is_numeric($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;
- }
- }
-
- $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;
-
- case 'perm_section':
- if (isset($section_data['perm_prefix']) && $section_data['perm_prefix']) {
- $res = $this->Application->getUnitOption($section_data['perm_prefix'].'.main', 'PermSection');
- }
- else {
- $res = $section;
- }
- 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']) && is_numeric($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);
- }
-
- $m =& $this->Application->recallObject('m_TagProcessor');
- return $m->ModuleInclude($params);
- }
-
- function TodayDate($params)
- {
- return date($params['format']);
- }
-
- function TreeEditWarrning($params)
- {
- $ret = $this->Application->Phrase($params['label']);
- $ret = str_replace(Array('<', '>', 'br/', 'br /', "\n", "\r"), Array('<', '>', 'br', 'br', '', ''), $ret);
- if (getArrayValue($params, 'escape')) {
- $ret = addslashes($ret);
- }
- $ret = str_replace('
', '\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 = '' ;
-
- if ($this->Application->isModuleEnabled('In-Portal')) {
- $config_path = $this->Application->BaseURL().'kernel/admin_templates/incs/inp_fckconfig.js';
- }
- else {
- $config_path = $this->Application->BaseURL().'core/admin_templates/js/inp_fckconfig.js';
- }
-
- $oFCKeditor->Config = Array(
-// 'UserFilesPath' => FULL_PATH.'/kernel/user_files',
- 'ProjectPath' => BASE_PATH.'/',
- 'CustomConfigurationsPath' => $config_path,
-// '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, Application->recallObject('m_TagProcessor');
- return $main_processor->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 .= "