Index: trunk/core/kernel/startup.php =================================================================== diff -u -N -r2853 -r3031 --- trunk/core/kernel/startup.php (.../startup.php) (revision 2853) +++ trunk/core/kernel/startup.php (.../startup.php) (revision 3031) @@ -2,12 +2,9 @@ define('KERNEL_PATH', FULL_PATH.'/kernel/kernel4'); include_once(KERNEL_PATH.'/globals.php'); // non OOP functions used through kernel, e.g. print_pre + + if( defined('ADMIN') && ADMIN ) define('SPECIAL_TEMPLATES_FOLDER', '/kernel/admin_templates'); - if( defined('ADMIN') && ADMIN ) - { - define('SPECIAL_TEMPLATES_FOLDER', '/kernel/admin_templates'); - } - define('INPORTAL_ENV', 1); # New path detection method: begin Index: trunk/core/kernel/db/db_tag_processor.php =================================================================== diff -u -N -r2942 -r3031 --- trunk/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 2942) +++ trunk/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 3031) @@ -687,6 +687,7 @@ if ($total_pages) $this->Application->Parser->DataExists = true; + if($total_pages == 0) $total_pages = 1; // display 1st page as selected in case if we have no pages at all $o = ''; // what are these 2 lines for? Index: trunk/core/kernel/session/session.php =================================================================== diff -u -N -r3021 -r3031 --- trunk/core/kernel/session/session.php (.../session.php) (revision 3021) +++ trunk/core/kernel/session/session.php (.../session.php) (revision 3031) @@ -363,7 +363,7 @@ function CheckIfCookiesAreOn() { // $this->CheckDuplicateCookies(); - if ($this->Mode == smGET_ONLY || (defined('INPORTAL_ENV')&&INPORTAL_ENV && defined('ADMIN')&&ADMIN && !$this->Application->GetVar('front')) ) + if ($this->Mode == smGET_ONLY || (defined('INPORTAL_ENV')&&INPORTAL_ENV && $this->Application->IsAdmin() && !$this->Application->GetVar('front')) ) { //we don't need to bother checking if we would not use it $this->CookiesEnabled = false; Index: trunk/core/units/general/inp_ses_storage.php =================================================================== diff -u -N -r3021 -r3031 --- trunk/core/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 3021) +++ trunk/core/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 3031) @@ -5,26 +5,27 @@ function Init($prefix,$special) { $this->SessionTimeout = $this->Application->ConfigValue('SessionTimeout'); - if (BASE_PATH == '') { - $path = '/'; + + $path = (BASE_PATH == '') ? '/' : BASE_PATH; + if ( $this->Application->IsAdmin() ) $path = rtrim($path, '/').'/admin'; + $this->SetCookiePath($path); + + $this->SetCookieName( $this->Application->ConfigValue('SessionCookieName') ); + $this->SetCookieDomain(SERVER_NAME); + + if( $this->Application->IsAdmin() ) + { + $mode = smAUTO; } - else { - $path = BASE_PATH; - } - if ( defined('ADMIN') && ADMIN ) + else { - $path = rtrim($path, '/'); - $path .= '/admin'; + $ses_mode = $this->Application->ConfigValue('CookieSessions'); + if ($ses_mode == 2) $mode = smAUTO; + if ($ses_mode == 1) $mode = smCOOKIES_ONLY; + if ($ses_mode == 0) $mode = smGET_ONLY; } - $this->SetCookiePath( $path ); - $ses_mode = $this->Application->ConfigValue('CookieSessions'); - if ($ses_mode == 2) $mode = smAUTO; - if ($ses_mode == 1) $mode = smCOOKIES_ONLY; - if ($ses_mode == 0) $mode = smGET_ONLY; - if ( defined('ADMIN') && ADMIN ) $mode = smAUTO; $this->SetMode($mode); - $this->SetCookieName( $this->Application->ConfigValue('SessionCookieName') ); - $this->SetCookieDomain(SERVER_NAME); + parent::Init($prefix,$special); if( !$this->Application->IsAdmin() && $this->GetField('PortalUserId') <= 0 ) Index: trunk/kernel/units/users/users_event_handler.php =================================================================== diff -u -N -r3013 -r3031 --- trunk/kernel/units/users/users_event_handler.php (.../users_event_handler.php) (revision 3013) +++ trunk/kernel/units/users/users_event_handler.php (.../users_event_handler.php) (revision 3031) @@ -55,7 +55,7 @@ { $groups = $object->getMembershipGroups(true); if(!$groups) $groups = Array(); - if (!defined('ADMIN')) array_push($groups, $this->Application->ConfigValue('User_LoggedInGroup') ); + if ( !$this->Application->IsAdmin() ) array_push($groups, $this->Application->ConfigValue('User_LoggedInGroup') ); $this->Application->StoreVar( 'UserGroups', implode(',', $groups) ); if( $this->Application->CheckPermission('LOGIN',0) ) Index: trunk/core/kernel/utility/http_query.php =================================================================== diff -u -N -r2600 -r3031 --- trunk/core/kernel/utility/http_query.php (.../http_query.php) (revision 2600) +++ trunk/core/kernel/utility/http_query.php (.../http_query.php) (revision 3031) @@ -73,7 +73,7 @@ { parent::Params(); $this->Order = $order; - $this->Admin = defined('ADMIN') && ADMIN; + $this->Admin = $this->Application->IsAdmin(); // better cache this value, not to calculate it each time in foreach $this->AddAllVars(); $this->specialsToRemove = $this->Get('remove_specials'); Index: trunk/core/units/users/users_event_handler.php =================================================================== diff -u -N -r3013 -r3031 --- trunk/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 3013) +++ trunk/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 3031) @@ -55,7 +55,7 @@ { $groups = $object->getMembershipGroups(true); if(!$groups) $groups = Array(); - if (!defined('ADMIN')) array_push($groups, $this->Application->ConfigValue('User_LoggedInGroup') ); + if ( !$this->Application->IsAdmin() ) array_push($groups, $this->Application->ConfigValue('User_LoggedInGroup') ); $this->Application->StoreVar( 'UserGroups', implode(',', $groups) ); if( $this->Application->CheckPermission('LOGIN',0) ) Index: trunk/core/kernel/parser/template.php =================================================================== diff -u -N -r2839 -r3031 --- trunk/core/kernel/parser/template.php (.../template.php) (revision 2839) +++ trunk/core/kernel/parser/template.php (.../template.php) (revision 3031) @@ -82,14 +82,21 @@ function SetThemePath() { - if ( defined('SPECIAL_TEMPLATES_FOLDER') ) { - safeDefine( 'THEMES_PATH', preg_replace('/'.preg_quote(rtrim(FULL_PATH, '/'), '/').'/i','',str_replace('\\', '/', FULL_PATH)). SPECIAL_TEMPLATES_FOLDER ); + if ( defined('SPECIAL_TEMPLATES_FOLDER') ) + { + $sub_folder = SPECIAL_TEMPLATES_FOLDER; } - else { + elseif( $this->Application->IsAdmin() ) + { + $sub_folder = '/admin/templates'; + } + else + { $current_theme = $this->Application->GetVar('m_theme'); - $folder = $this->Application->DB->GetOne('SELECT Name FROM '.TABLE_PREFIX.'Theme WHERE ThemeId = '.$current_theme); - safeDefine( 'THEMES_PATH', preg_replace('/'.preg_quote(rtrim(FULL_PATH, '/'), '/').'/i','',str_replace('\\', '/', FULL_PATH)). ( defined('ADMIN') ? '/admin/templates' : '/themes/'.$folder)); + $theme_folder = $this->Application->DB->GetOne('SELECT Name FROM '.TABLE_PREFIX.'Theme WHERE ThemeId = '.$current_theme); + $sub_folder = '/themes/'.$theme_folder; } + safeDefine('THEMES_PATH', $sub_folder); } function LoadTemplate($filename, $title=NULL, $silent=0) @@ -103,7 +110,7 @@ $module_filename = $filename; } - if ( defined('ADMIN') && ADMIN && in_array(strtolower($first_dir), $this->ModulesCache)) { + if ( $this->Application->IsAdmin() && in_array(strtolower($first_dir), $this->ModulesCache)) { $path = MODULES_PATH.'/'.strtolower($first_dir).'/admin_templates'; } else { @@ -126,7 +133,7 @@ $module_filename = $filename; } - if ( defined('ADMIN') && ADMIN && in_array(strtolower($first_dir), $this->ModulesCache)) { + if ( $this->Application->IsAdmin() && in_array(strtolower($first_dir), $this->ModulesCache)) { $path = MODULES_PATH.'/'.strtolower($first_dir).'/admin_templates'; } else { Index: trunk/kernel/units/general/cat_event_handler.php =================================================================== diff -u -N -r2915 -r3031 --- trunk/kernel/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 2915) +++ trunk/kernel/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 3031) @@ -188,16 +188,16 @@ $view_perm = 1; $object->addFilter('perm_filter', 'perm.PermId = '.$view_perm); - if (!defined('ADMIN')) { - $groups = explode(',',$this->Application->RecallVar('UserGroups')); - foreach ($groups as $group) { + + if ( !$this->Application->IsAdmin() ) + { + $groups = explode( ',', $this->Application->RecallVar('UserGroups') ); + foreach($groups as $group) + { $view_filters[] = 'FIND_IN_SET('.$group.', perm.acl) || ((NOT FIND_IN_SET('.$group.',perm.dacl)) AND perm.acl=\'\')'; } $view_filter = implode(' OR ', $view_filters); $object->addFilter('perm_filter2', $view_filter); - } - - if (!defined('ADMIN')) { $object->addFilter('status_filter', $object->TableName.'.Status = 1'); } Index: trunk/kernel/units/email_events/email_events_event_handler.php =================================================================== diff -u -N -r2995 -r3031 --- trunk/kernel/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 2995) +++ trunk/kernel/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 3031) @@ -68,6 +68,11 @@ function OnEmailEvent(&$event){ $email_event = $event->getEventParam('EmailEventName'); + if( strpos($email_event, '_') !== false ) + { + trigger_error('Invalid email event name '.$email_event.'. Use only UPPERCASE characters and dots as email event names', E_USER_ERROR); + } + $to_user_id = $event->getEventParam('EmailEventToUserId'); $email_event_type = $event->getEventParam('EmailEventType'); @@ -87,7 +92,7 @@ $direct_send_params = $event->getEventParam('DirectSendParams'); if ($enabled == 0) return; // disabled event - if ($enabled == 2 && defined("ADMIN")) return; // event only for front-end + if ($enabled == 2 && $this->Application->IsAdmin() ) return; // event only for front-end if ($type == 1){ // For type "Admin" recipient is a user from field FromUserId which means From/To user in Email events list Index: trunk/kernel/units/categories/categories_event_handler.php =================================================================== diff -u -N -r2586 -r3031 --- trunk/kernel/units/categories/categories_event_handler.php (.../categories_event_handler.php) (revision 2586) +++ trunk/kernel/units/categories/categories_event_handler.php (.../categories_event_handler.php) (revision 3031) @@ -80,16 +80,14 @@ $view_perm = 1; $object->addFilter('perm_filter', 'PermId = '.$view_perm); - if (!defined('ADMIN')) { + if ( !$this->Application->IsAdmin() ) + { $groups = explode(',',$this->Application->RecallVar('UserGroups')); foreach ($groups as $group) { $view_filters[] = 'FIND_IN_SET('.$group.', acl) || ((NOT FIND_IN_SET('.$group.',dacl)) AND acl=\'\')'; } $view_filter = implode(' OR ', $view_filters); $object->addFilter('perm_filter2', $view_filter); - } - - if (!defined('ADMIN')) { $object->addFilter('status_filter', $object->TableName.'.Status = 1'); } @@ -214,7 +212,7 @@ function GetPassedId(&$event) { - if (defined('ADMIN')) return parent::getPassedID($event); + if ( $this->Application->IsAdmin() ) return parent::getPassedID($event); $ret = $this->Application->GetVar('m_cat_id'); if($ret) return $ret; Index: trunk/core/kernel/application.php =================================================================== diff -u -N -r2914 -r3031 --- trunk/core/kernel/application.php (.../application.php) (revision 2914) +++ trunk/core/kernel/application.php (.../application.php) (revision 3031) @@ -697,8 +697,8 @@ { if(!$t) $t = $this->GetVar('t'); // moved from MainProcessor->T() - if (defined('ADMIN') && $prefix == '') $prefix='/admin'; - if (defined('ADMIN') && $prefix == '_FRONT_END_') $prefix = ''; + if ( $this->IsAdmin() && $prefix == '') $prefix='/admin'; + if ( $this->IsAdmin() && $prefix == '_FRONT_END_') $prefix = ''; $index_file = isset($index_file) ? $index_file : (defined('INDEX_FILE') ? INDEX_FILE : basename($_SERVER['SCRIPT_NAME'])); if( isset($params['index_file']) ) $index_file = $params['index_file']; Index: trunk/core/units/categories/categories_event_handler.php =================================================================== diff -u -N -r2586 -r3031 --- trunk/core/units/categories/categories_event_handler.php (.../categories_event_handler.php) (revision 2586) +++ trunk/core/units/categories/categories_event_handler.php (.../categories_event_handler.php) (revision 3031) @@ -80,16 +80,14 @@ $view_perm = 1; $object->addFilter('perm_filter', 'PermId = '.$view_perm); - if (!defined('ADMIN')) { + if ( !$this->Application->IsAdmin() ) + { $groups = explode(',',$this->Application->RecallVar('UserGroups')); foreach ($groups as $group) { $view_filters[] = 'FIND_IN_SET('.$group.', acl) || ((NOT FIND_IN_SET('.$group.',dacl)) AND acl=\'\')'; } $view_filter = implode(' OR ', $view_filters); $object->addFilter('perm_filter2', $view_filter); - } - - if (!defined('ADMIN')) { $object->addFilter('status_filter', $object->TableName.'.Status = 1'); } @@ -214,7 +212,7 @@ function GetPassedId(&$event) { - if (defined('ADMIN')) return parent::getPassedID($event); + if ( $this->Application->IsAdmin() ) return parent::getPassedID($event); $ret = $this->Application->GetVar('m_cat_id'); if($ret) return $ret; Index: trunk/core/units/general/cat_event_handler.php =================================================================== diff -u -N -r2915 -r3031 --- trunk/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 2915) +++ trunk/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 3031) @@ -188,16 +188,16 @@ $view_perm = 1; $object->addFilter('perm_filter', 'perm.PermId = '.$view_perm); - if (!defined('ADMIN')) { - $groups = explode(',',$this->Application->RecallVar('UserGroups')); - foreach ($groups as $group) { + + if ( !$this->Application->IsAdmin() ) + { + $groups = explode( ',', $this->Application->RecallVar('UserGroups') ); + foreach($groups as $group) + { $view_filters[] = 'FIND_IN_SET('.$group.', perm.acl) || ((NOT FIND_IN_SET('.$group.',perm.dacl)) AND perm.acl=\'\')'; } $view_filter = implode(' OR ', $view_filters); $object->addFilter('perm_filter2', $view_filter); - } - - if (!defined('ADMIN')) { $object->addFilter('status_filter', $object->TableName.'.Status = 1'); } Index: trunk/core/units/email_events/email_events_event_handler.php =================================================================== diff -u -N -r2995 -r3031 --- trunk/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 2995) +++ trunk/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 3031) @@ -68,6 +68,11 @@ function OnEmailEvent(&$event){ $email_event = $event->getEventParam('EmailEventName'); + if( strpos($email_event, '_') !== false ) + { + trigger_error('Invalid email event name '.$email_event.'. Use only UPPERCASE characters and dots as email event names', E_USER_ERROR); + } + $to_user_id = $event->getEventParam('EmailEventToUserId'); $email_event_type = $event->getEventParam('EmailEventType'); @@ -87,7 +92,7 @@ $direct_send_params = $event->getEventParam('DirectSendParams'); if ($enabled == 0) return; // disabled event - if ($enabled == 2 && defined("ADMIN")) return; // event only for front-end + if ($enabled == 2 && $this->Application->IsAdmin() ) return; // event only for front-end if ($type == 1){ // For type "Admin" recipient is a user from field FromUserId which means From/To user in Email events list Index: trunk/kernel/units/general/inp_ses_storage.php =================================================================== diff -u -N -r3021 -r3031 --- trunk/kernel/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 3021) +++ trunk/kernel/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 3031) @@ -5,26 +5,27 @@ function Init($prefix,$special) { $this->SessionTimeout = $this->Application->ConfigValue('SessionTimeout'); - if (BASE_PATH == '') { - $path = '/'; + + $path = (BASE_PATH == '') ? '/' : BASE_PATH; + if ( $this->Application->IsAdmin() ) $path = rtrim($path, '/').'/admin'; + $this->SetCookiePath($path); + + $this->SetCookieName( $this->Application->ConfigValue('SessionCookieName') ); + $this->SetCookieDomain(SERVER_NAME); + + if( $this->Application->IsAdmin() ) + { + $mode = smAUTO; } - else { - $path = BASE_PATH; - } - if ( defined('ADMIN') && ADMIN ) + else { - $path = rtrim($path, '/'); - $path .= '/admin'; + $ses_mode = $this->Application->ConfigValue('CookieSessions'); + if ($ses_mode == 2) $mode = smAUTO; + if ($ses_mode == 1) $mode = smCOOKIES_ONLY; + if ($ses_mode == 0) $mode = smGET_ONLY; } - $this->SetCookiePath( $path ); - $ses_mode = $this->Application->ConfigValue('CookieSessions'); - if ($ses_mode == 2) $mode = smAUTO; - if ($ses_mode == 1) $mode = smCOOKIES_ONLY; - if ($ses_mode == 0) $mode = smGET_ONLY; - if ( defined('ADMIN') && ADMIN ) $mode = smAUTO; $this->SetMode($mode); - $this->SetCookieName( $this->Application->ConfigValue('SessionCookieName') ); - $this->SetCookieDomain(SERVER_NAME); + parent::Init($prefix,$special); if( !$this->Application->IsAdmin() && $this->GetField('PortalUserId') <= 0 )