Index: trunk/kernel/include/parseditem.php =================================================================== diff -u -N -r2978 -r3124 --- trunk/kernel/include/parseditem.php (.../parseditem.php) (revision 2978) +++ trunk/kernel/include/parseditem.php (.../parseditem.php) (revision 3124) @@ -1711,74 +1711,63 @@ { global $objConfig, $var_list_update, $var_list; + $url_params = $EnvSuffix ? ExtractParams($EnvSuffix) : Array(); $v= $this->PageEnvar; global ${$v}; - if(!strlen($page)) - $page = GetIndexURL(2); +// if(!strlen($page)) $page = GetIndexURL(2); $PerPage = $objConfig->Get($this->PerPageVar); - if($PerPage<1) - $PerPage=20; - $NumPages = ceil($this->GetNumPages($PerPage)); - if($NumPages==1 && $HideEmpty) - return ""; + if($PerPage < 1) $PerPage = 20; + $NumPages = ceil( $this->GetNumPages($PerPage) ); + if($NumPages == 1 && $HideEmpty) return ''; + + $var_list_update['t'] = isset($dest_template) && $dest_template ? $dest_template : $var_list['t']; - if(strlen($dest_template)) - { - $var_list_update["t"] = $dest_template; - } - else - $var_list_update["t"] = $var_list["t"]; + $o = ''; + if( $this->Page == 0 || !is_numeric($this->Page) ) $this->Page = 1; + if($this->Page > $NumPages) $this->Page = $NumPages; - $o = ""; - if($this->Page==0 || !is_numeric($this->Page)) - $this->Page=1; - if($this->Page>$NumPages) - $this->Page=$NumPages; + $StartPage = (int)$this->Page - ($PagesToList / 2); + if($StartPage < 1) $StartPage = 1; - $StartPage = (int)$this->Page - ($PagesToList/2); - if($StartPage<1) - $StartPage=1; - - $EndPage = $StartPage+($PagesToList-1); - if($EndPage>$NumPages) + $EndPage = $StartPage + ($PagesToList - 1); + if($EndPage > $NumPages) { $EndPage = $NumPages; - $StartPage = $EndPage-($PagesToList-1); - if($StartPage<1) - $StartPage=1; + $StartPage = $EndPage - ($PagesToList - 1); + if($StartPage < 1) $StartPage = 1; } - $o = ""; - if($StartPage>1) + $o = ''; + if($StartPage > 1) { - ${$v}[$this->PageEnvarIndex] = $this->Page-$PagesToList; + ${$v}[$this->PageEnvarIndex] = $this->Page - $PagesToList; - $prev_url = $page."?env=".BuildEnv().$EnvSuffix; - $o .= "<<"; + $prev_url = HREF_Wrapper('', $url_params); + $o .= '<<'; } - for($p=$StartPage;$p<=$EndPage;$p++) + for($p = $StartPage; $p <= $EndPage; $p++) { - if($p!=$this->Page) + if($p != $this->Page) { - ${$v}[$this->PageEnvarIndex]=$p; - $href = $page."?env=".BuildEnv().$EnvSuffix; - $o .= " $p "; + ${$v}[$this->PageEnvarIndex] = $p; + $href = HREF_Wrapper('', $url_params); + $o .= ' '.$p.' '; } else { $o .= " $p"; } } - if($EndPage<$NumPages && $EndPage>0) + if($EndPage < $NumPages && $EndPage > 0) { - ${$v}[$this->PageEnvarIndex]=$this->Page+$PagesToList; + ${$v}[$this->PageEnvarIndex] = $this->Page + $PagesToList; - $next_url = $page."?env=".BuildEnv().$EnvSuffix; + $next_url = HREF_Wrapper('', $url_params); $o .= " >>"; } unset(${$v}[$this->PageEnvarIndex],$var_list_update["t"] ); Index: trunk/core/kernel/application.php =================================================================== diff -u -N -r3103 -r3124 --- trunk/core/kernel/application.php (.../application.php) (revision 3103) +++ trunk/core/kernel/application.php (.../application.php) (revision 3124) @@ -743,20 +743,27 @@ $pass = isset($params['pass']) ? $params['pass'] : ''; $pass_events = isset($params['pass_events']) ? $params['pass_events'] : false; // pass events with url - + + $map_link = ''; + if( isset($params['anchor']) ) + { + $map_link = '#'.$params['anchor']; + unset($params['anchor']); + } + if (defined('MOD_REWRITE') && MOD_REWRITE) { $env = $this->BuildEnv('', $params, $pass, $pass_events, false); $env = ltrim($env, ':-'); $session =& $this->recallObject('Session'); $sid = $session->NeedQueryString() ? '?sid='.$this->GetSID() : ''; // $env = str_replace(':', '/', $env); - $ret = rtrim($this->BaseURL($prefix, $ssl).$t.'.html/'.$env.'/'.$sid, '/'); + $ret = rtrim($this->BaseURL($prefix, $ssl).$t.'.html/'.$env.'/'.$sid.$map_link, '/'); } else { $env = $this->BuildEnv($t, $params, $pass, $pass_events); - $ret = $this->BaseURL($prefix, $ssl).$index_file.'?'.$env; + $ret = $this->BaseURL($prefix, $ssl).$index_file.'?'.$env.$map_link; } return $ret; Index: trunk/globals.php =================================================================== diff -u -N -r3021 -r3124 --- trunk/globals.php (.../globals.php) (revision 3021) +++ trunk/globals.php (.../globals.php) (revision 3124) @@ -1928,5 +1928,65 @@ if(!defined($const_name)) define($const_name,$const_value); } } + + function HREF_Wrapper($t = '', $params = null, $index_file = null ) + { + $ret = GetIndexURL(2).'?env='.BuildEnv(); + if( isset($params) ) + { + $map_link = ''; + if( is_array($params) ) + { + if( isset($params['anchor']) ) + { + $map_link = '#'.$params['anchor']; + unset($params['anchor']); + } + foreach ($params as $param_name => $param_value) + { + $ret .= '&'.$param_name.'='.urlencode($param_value); + } + } + else + { + $app =& kApplication::Instance(); + $app->Debugger->appendTrace(); + trigger_error('Incorrect HREF_Wrapper call', E_USER_WARNING); + } + } + return $ret.$map_link; + + /*$application =& kApplication::Instance(); + return $application->HREF($t, '', $params, $index_file);*/ + } + + /** + * Set url params based on tag params & mapping hash passed + * + * @param Array $url_params - url params before change + * @param Array $tag_attribs - tag attributes + * @param Array $params_map key - tag_param, value - url_param + */ + function MapTagParams(&$url_params, $tag_attribs, $params_map) + { + foreach ($params_map as $tag_param => $url_param) + { + if( getArrayValue($tag_attribs, $tag_param) ) $url_params[$url_param] = $tag_attribs[$tag_param]; + } + } + + function ExtractParams($params_str, $separator = '&') + { + if(!$params_str) return Array(); + + $ret = Array(); + $parts = explode($separator, trim($params_str, $separator) ); + foreach ($parts as $part) + { + list($var_name, $var_value) = explode('=', $part); + $ret[$var_name] = $var_value; + } + return $ret; + } ?> Index: trunk/kernel/include/portaluser.php =================================================================== diff -u -N -r3109 -r3124 --- trunk/kernel/include/portaluser.php (.../portaluser.php) (revision 3109) +++ trunk/kernel/include/portaluser.php (.../portaluser.php) (revision 3124) @@ -488,7 +488,7 @@ case 'send_pm_link': $var_list_update['t'] = $element->GetAttributeByName('_Template'); - $ret = GetIndexURL(2)."?env=".BuildEnv()."&ToUser=".$this->Get('Login'); + $ret = HREF_Wrapper('', Array('ToUser' => $this->Get('Login') ) ); break; case "profile_link": @@ -503,8 +503,10 @@ $var_list_update["t"] = $t; } else + { $var_list_update["t"] = $var_list["t"]; - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&UserId=".$this->Get("PortalUserId"); + } + $ret = HREF_Wrapper('', Array('UserId' => $this->Get('PortalUserId') ) ); break; case "add_friend_link": /* @@ -521,9 +523,10 @@ $var_list_update["t"] = $t; } else + { $var_list_update["t"] = $var_list["t"]; - $action = "m_add_friend"; - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=".$action."&UserId=".$this->Get("PortalUserId"); + } + $ret = HREF_Wrapper('', Array('Action' => 'm_add_friend', 'UserId' => $this->Get('PortalUserId') ) ); } else $ret = ""; @@ -543,9 +546,10 @@ $var_list_update["t"] = $t; } else + { $var_list_update["t"] = $var_list["t"]; - $action = "m_del_friend"; - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=".$action."&UserId=".$this->Get("PortalUserId"); + } + $ret = HREF_Wrapper('', Array('Action' => 'm_del_friend', 'UserId' => $this->Get('PortalUserId') ) ); } else $ret = ""; @@ -703,7 +707,7 @@ case "user_profile_link": $var_list_update["t"] = "user_profile"; $m_var_list_update["action"] = $this->Get("UserId"); - $ret = GetIndexURL(2)."?env=" . BuildEnv(); + $ret = HREF_Wrapper(); unset($m_var_list_update["action"], $var_list_update["t"]); return $ret; break; @@ -712,7 +716,7 @@ break; case "user_messages_link": $var_list_update["t"] = "inbulletin/bb_private_msg_list"; - return GetIndexURL(2)."?env=" . BuildEnv(); + return HREF_Wrapper(); unset($var_list_update); break; default: @@ -744,8 +748,7 @@ { global $objConfig, $m_var_list_update, $var_list_update, $var_list; - if(!strlen($page)) - $page = GetIndexURL(2); +// if(!strlen($page)) $page = GetIndexURL(2); $NumPages = $this->GetNumPages($objConfig->Get("Perpage_Topics")); if(strlen($dest_template)>0) { @@ -759,12 +762,12 @@ if($this->Page>1) { $m_var_list_update["p"]=$this->Page-1; - $prev_url = $page."?env=".BuildEnv(); + $prev_url = HREF_Wrapper(); } if($this->Page<$NumPages) { $m_var_list_update["p"]=$this->Page+1; - $next_url = $page."?env=".BuildEnv(); + $next_url = HREF_Wrapper(); } for($p=1;$p<=$NumPages;$p++) @@ -773,7 +776,7 @@ if($p!=$this->Page) { $m_var_list_update["p"]=$p; - $href = $page."?env=".BuildEnv(); + $href = HREF_Wrapper(); $t = str_replace("<%page_link%>", $href, $t); $t = str_replace("<%page_number%>",$p,$t); $t = str_replace("<%prev_url%>",$prev_url,$t); Index: trunk/kernel/include/language.php =================================================================== diff -u -N -r1649 -r3124 --- trunk/kernel/include/language.php (.../language.php) (revision 1649) +++ trunk/kernel/include/language.php (.../language.php) (revision 3124) @@ -275,9 +275,11 @@ $var_list_update["t"] = $t; } else + { $var_list_update["t"] = $var_list["t"]; + } $m_var_list_update["lang"] = $this->Get("LanguageId"); - $ret = GetIndexURL(2)."?env=".BuildEnv(); + $ret = HREF_Wrapper(); unset($var_list_update["t"],$m_var_list_update["lang"]); break; case "primary": Index: trunk/kernel/parser.php =================================================================== diff -u -N -r3021 -r3124 --- trunk/kernel/parser.php (.../parser.php) (revision 3021) +++ trunk/kernel/parser.php (.../parser.php) (revision 3124) @@ -869,398 +869,308 @@ { global $var_list, $var_list_update, $m_var_list_update, $objSession, $objConfig, $objCatList; - $target_template = getArrayValue($attribs,'_template'); - if(strlen($target_template)) - { - $var_list_update["t"] = $target_template; - } - else - $var_list_update["t"] = $var_list["t"]; + $var_list_update['t'] = getArrayValue($attribs, '_template') ? $attribs['_template'] : $var_list['t']; - $ret = ""; - $form = strtolower($attribs["_form"]); + $ret = ''; + $form = strtolower( $attribs['_form'] ); + $url_params = Array(); + switch($form) { - case "login": - if(!$objSession->SessionEnabled()) - { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - } - else - { - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_login"; - if(getArrayValue($attribs,'_successtemplate')) - { - $ret .= "&dest=".$attribs["_successtemplate"]; - } - else - if(getArrayValue($var_list,'dest')) - $ret .= "&dest=".$var_list["dest"]; - } - break; - case "logout": - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_logout"; - break; - case "forgotpw": - if(!$objSession->SessionEnabled()) - { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - } - else - { - if(strlen($attribs["_errortemplate"])) - { - $err = $attribs["_errortemplate"]; - } - else - $err = $var_list["t"]; - $ret = GetIndexURL(2)."?env=".BuildEnv()."&Action=m_forgotpw&error=$err"; - if( $attribs['_confirm'] ) $ret .= '&Confirm='.$attribs['_confirm']; - - } - break; - case "forgotpw_confirm": - $ret = GetIndexURL(2)."?env=".BuildEnv(); - break; - case "m_sort_cats": - $ret = GetIndexURL(2)."?env=".BuildEnv()."&Action=m_sort_cats"; - break; - case "suggest": - if(!$objSession->SessionEnabled()) - { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - } - else - { - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_suggest_email"; - if(strlen($attribs["_confirmtemplate"])>0) - { - $ret .= "&Confirm=".$attribs["_confirmtemplate"]; - } - /*if(strlen($Dest)) - { - $ret .= "&DestTemplate=$Dest"; - } - else - {*/ - if(strlen($attribs["_confirmtemplate"])>0) - $ret .="&DestTemplate=".$var_list["t"]; - //} - - if(strlen($attribs["_errortemplate"])>0) - { - $ret .= "&Error=".$attribs["_errortemplate"]; - } - } - break; - case "suggest_confirm": - if(!$objSession->SessionEnabled()) - { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - } - else - { - if(strlen($_GET["DestTemplate"])) - { - $var_list_update["t"] = $_GET["DestTemplate"]; - } - else - $var_list_update["t"] = "index"; - - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - } - break; - case "m_subscribe": - if(!$objSession->SessionEnabled()) - { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - } - else - { - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_subscribe_confirm"; - if(strlen($attribs["_subscribetemplate"])) - { - $ret .="&Subscribe=".$attribs["_subscribetemplate"]; - } - - if(strlen($attribs["_unsubscribetemplate"])>0) - { - $ret .= "&Unsubscribe=".$attribs["_unsubscribetemplate"]; - } - if(strlen($attribs["_errortemplate"])>0) - { - $ret .= "&Error=".$attribs["_errortemplate"]; - } - } - break; + case 'login': + if( !$objSession->SessionEnabled() ) + { + $var_list_update['t'] = 'error_session'; + } + else + { + $url_params = Array('Action' => 'm_login'); + if( getArrayValue($attribs, '_successtemplate') ) + { + $url_params['dest'] = $attribs['_successtemplate']; + } + else + { + if( getArrayValue($var_list, 'dest') ) $url_params['dest'] = $var_list['dest']; + } + } + break; - case "subscribe_confirm": - - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_subscribe"; - if($attribs["_subscribetemplate"]) - $ret .= "&Subscribe=".$attribs["_subscribetemplate"]; - break; - case "unsubscribe_confirm": - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_unsubscribe"; - if($attribs["_subscribetemplate"]) - $ret .= "&Subscribe=".$attribs["_subscribetemplate"]; - break; - case "m_unsubscribe": - if(!$objSession->SessionEnabled()) - { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - } - else - { - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_unsubscribe"; - if(strlen($attribs["_confirmtemplate"])>0) - { - $ret .= "&Confirm=".$attribs["_confirmtemplate"]; - } - if(strlen($Dest)) - { - $ret .= "&DestTemplate=$Dest"; - } - else - { - if(strlen($attribs["_confirmtemplate"])>0) - $ret .="&DestTemplate=".$var_list["t"]; - } - } + case 'logout': + $url_params = Array('Action' => 'm_logout'); + break; - if(strlen($attribs["_confirmtemplate"])>0) - { - $ret .="&ErrorTemplate=".$attribs["_confirmtemplate"]; - } + case 'forgotpw': + if(!$objSession->SessionEnabled()) + { + $var_list_update['t'] = 'error_session'; + } + else + { + $url_params = Array('Action' => 'm_forgotpw'); + $url_params['error'] = getArrayValue($attribs, '_errortemplate') ? $attribs['_errortemplate'] : $var_list['t']; + if( getArrayValue($attribs, '_confirm') ) $url_params['Confirm'] = $attribs['_confirm']; + } + break; + + /*case 'forgotpw_confirm': + break;*/ + + case 'm_sort_cats': + $url_params = Array('Action' => 'm_sort_cats'); + break; + + case 'suggest': + if( !$objSession->SessionEnabled() ) + { + $var_list_update['t'] = 'error_session'; + } + else + { + $url_params = Array('Action' => 'm_suggest_email'); + + if( getArrayValue($attribs, '_confirmtemplate') ) + { + $url_params['Confirm'] = $attribs['_confirmtemplate']; + $url_params['DestTemplate'] = $var_list['t']; + } + if( getArrayValue($attribs, '_errortemplate') ) $url_params['Error'] = $attribs['_errortemplate']; + } + break; + + case 'suggest_confirm': + if( !$objSession->SessionEnabled() ) + { + $var_list_update['t'] = 'error_session'; + } + else + { + $var_list_update['t'] = getArrayValue($_GET, 'DestTemplate') ? $_GET['DestTemplate'] : 'index'; + } + break; + + case 'm_subscribe': + if( !$objSession->SessionEnabled() ) + { + $var_list_update['t'] = 'error_session'; + } + else + { + $url_params = Array('Action' => 'm_subscribe_confirm'); + $params_map = Array('_subscribetemplate' => 'Subscribe', '_unsubscribetemplate' => 'Unsubscribe', '_errortemplate' => 'Error'); + MapTagParams($url_params, $attribs, $params_map); + } + break; - - break; - case "m_unsubscribe_confirm": - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - break; - case "m_acctinfo": - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_acctinfo&UserId=".$objSession->Get("PortalUserId"); - m_form_load_values($form, $objSession->Get("PortalUserId")); - break; - case "m_profile": - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_profile&UserId=".$objSession->Get("PortalUserId"); - m_form_load_values($form,$objSession->Get("PortalUserId")); - break; + case 'subscribe_confirm': + $url_params = Array('Action' => 'm_subscribe'); + $params_map = Array('_subscribetemplate' => 'Subscribe'); + MapTagParams($url_params, $attribs, $params_map); + break; + + case 'unsubscribe_confirm': + $url_params = Array('Action' => 'm_unsubscribe'); + $params_map = Array('_subscribetemplate' => 'Subscribe'); + MapTagParams($url_params, $attribs, $params_map); + break; - case "m_set_theme": - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_set_theme"; - break; - - case "m_register": + case 'm_unsubscribe': + $params_map = Array('_confirmtemplate' => 'ErrorTemplate'); + MapTagParams($url_params, $attribs, $params_map); + + if( !$objSession->SessionEnabled() ) + { + $var_list_update['t'] = 'error_session'; + } + else + { + $url_params['Action'] = 'm_unsubscribe'; + if( getArrayValue($attribs, '_confirmtemplate') ) + { + $url_params['Confirm'] = $attribs['_confirmtemplate']; + $url_params['DestTemplate'] = $var_list['t']; + } + } + break; - if(!$objSession->SessionEnabled()) + /*case 'm_unsubscribe_confirm': + break;*/ + + case 'm_acctinfo': + $url_params = Array('Action' => 'm_acctinfo', 'UserId' => $objSession->Get('PortalUserId') ); + m_form_load_values( $form, $objSession->Get('PortalUserId') ); + break; + + case 'm_profile': + $url_params = Array('Action' => 'm_profile', 'UserId' => $objSession->Get('PortalUserId') ); + m_form_load_values( $form, $objSession->Get('PortalUserId') ); + break; + + case 'm_set_theme': + $url_params = Array('Action' => 'm_set_theme'); + break; + + case 'm_register': + if( !$objSession->SessionEnabled() ) { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); + $var_list_update['t'] = 'error_session'; } else { - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_register"; + $url_params = Array('Action' => 'm_register'); - switch ($objConfig->Get("User_Allow_New")) + switch ( $objConfig->Get('User_Allow_New') ) { - case "1": - if(strlen($attribs["_confirmtemplate"]) && $objConfig->Get("User_Password_Auto")) - $_dest = "&dest=".$attribs["_confirmtemplate"]; - else - $_dest = "&dest=".$attribs["_logintemplate"]; + case 1: + if( getArrayValue($attribs, '_confirmtemplate') && $objConfig->Get('User_Password_Auto') ) + { + $url_params['dest'] = $attribs['_confirmtemplate']; + } + else + { + $url_params['dest'] = $attribs['_logintemplate']; + } break; - case "2": - if(strlen($attribs["_notallowedtemplate"])) - $_dest = "&dest=".$attribs["_notallowedtemplate"]; + case 2: + if( getArrayValue($attribs, '_notallowedtemplate') ) $url_params['dest'] = $attribs['_notallowedtemplate']; break; - case "3": - if(strlen($attribs["_pendingtemplate"])) - $_dest = "&dest=".$attribs["_pendingtemplate"]; + case 3: + if( getArrayValue($attribs, '_pendingtemplate') ) $url_params['dest'] = $attribs['_pendingtemplate']; break; } - - if (strlen($_dest)) - $ret .= $_dest; } - break; + break; - case "register_confirm": - if(!$objSession->SessionEnabled()) + case 'register_confirm': + if( !$objSession->SessionEnabled() ) $var_list_update['t'] = 'error_session'; + break; + + case 'm_addcat': + if( !$objSession->SessionEnabled() ) { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); + $var_list_update['t'] = 'error_session'; } else { - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - } - break; - case "m_addcat": - if(!$objSession->SessionEnabled()) - { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - } - else - { - $action = "m_add_cat"; - if ($objSession->HasCatPermission("CATEGORY.ADD.PENDING")) + $url_params = Array('Action' => 'm_add_cat'); + if ( $objSession->HasCatPermission('CATEGORY.ADD.PENDING') ) { - if(strlen($attribs["_confirmpending"])) - { - $ConfirmTemplate = $attribs["_confirmpending"]; - } - else - $ConfirmTemplate = $attribs["_confirm"]; - $action="m_add_cat_confirm"; + + $url_params['Confirm'] = $attribs[ getArrayValue($attribs, '_confirmpending') ? '_confirmpending' : '_confirm' ]; + $url_params['Action'] = 'm_add_cat_confirm'; } - if ($objSession->HasCatPermission("CATEGORY.ADD")) + if ( $objSession->HasCatPermission('CATEGORY.ADD') ) { - $ConfirmTemplate = $attribs["_confirm"]; - $action="m_add_cat_confirm"; + $url_params['Confirm'] = $attribs['_confirm']; + $url_params['Action'] = 'm_add_cat_confirm'; } + if( !$url_params['Confirm'] ) unset($url_params['Confirm']); + + if ( getArrayValue($attribs, '_mod_finishtemplate') ) + { + $CurrentCat = (int)$objCatList->CurrentCategoryID(); + if($CurrentCat > 0) + { + $c = $objCatList->GetCategory($CurrentCat); - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=$action"; - if(strlen($ConfirmTemplate)) - $ret .= "&Confirm=$ConfirmTemplate"; + //will prefix the template with module template root path depending on category + $ids = $c->GetParentIds(); + $tpath = GetModuleArray('template'); + $roots = GetModuleArray('rootcat'); - if (strlen($attribs["_mod_finishtemplate"])) { - - $CurrentCat = $objCatList->CurrentCategoryID(); - if((int)$CurrentCat>0) - { - $c = $objCatList->GetCategory($CurrentCat); - - //will prefix the template with module template root path depending on category - $ids = $c->GetParentIds(); - $tpath = GetModuleArray("template"); - $roots = GetModuleArray("rootcat"); - - // get template path of module, by searching for moudle name - // in this categories first parent category - // and then using found moudle name as a key for module template paths array - $path = $tpath[array_search ($ids[0], $roots)]; - $t = $path . $attribs["_mod_finishtemplate"]; - } - else { - $t = $attribs["_mod_finishtemplate"]; //Just in case - } - } - else { - $t = $attribs["_finishtemplate"]; - } - - $ret .="&DestTemplate=".$t; + // get template path of module, by searching for moudle name + // in this categories first parent category + // and then using found moudle name as a key for module template paths array + $path = $tpath[ array_search($ids[0], $roots) ]; + $url_params['DestTemplate'] = $path . $attribs['_mod_finishtemplate']; + } + else + { + $url_params['DestTemplate'] = $attribs['_mod_finishtemplate']; //Just in case + } + } + else + { + $url_params['DestTemplate'] = $attribs['_finishtemplate']; + } } break; - case "m_addcat_confirm": - $target_template = $_GET["DestTemplate"]; - if(strlen($target_template)) + + case 'm_addcat_confirm': + $var_list_update['t'] = getArrayValue($_GET, 'DestTemplate') ? $_GET['DestTemplate'] : $var_list['t']; + break; + + case 'm_simplesearch': + if( !$objSession->SessionEnabled() ) { - $var_list_update["t"] = $target_template; + $var_list_update['t'] = 'error_session'; } else - $var_list_update["t"] = $var_list["t"]; - $ret = GetIndexURL(2)."?env=".BuildEnv(); - break; - case "m_simplesearch": - if(!$objSession->SessionEnabled()) { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); + $url_params = Array('Action' => 'm_simple_search'); + if( getArrayValue($attribs, '_errortemplate') ) $url_params['Error'] = $attribs['_errortemplate']; + m_form_load_values($form, 0); } - else - { - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_simple_search"; - - if(strlen($attribs["_errortemplate"])) - $ret.= "&Error=".$attribs["_errortemplate"]; - - m_form_load_values($form, 0); - } - break; - case "m_simple_subsearch": - if(!$objSession->SessionEnabled()) + break; + + case 'm_simple_subsearch': + if( !$objSession->SessionEnabled() ) { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); + $var_list_update['t'] = 'error_session'; } else { - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_simple_subsearch"; + $url_params = Array('Action' => 'm_simple_subsearch'); m_form_load_values($form,0); } - break; - case "m_adv_search_type": - if(!$objSession->SessionEnabled()) + break; + + case 'm_adv_search_type': + if( !$objSession->SessionEnabled() ) { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); + $var_list_update['t'] = 'error_session'; } else { - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_advsearch_type"; + $url_params = Array('Action' => 'm_advsearch_type'); m_form_load_values($form,0); } - break; - case "m_adv_search": - $SearchType = $_GET["type"]; - if(!is_numeric($SearchType)) - $SearchType = $_POST["itemtype"]; - if(!$objSession->SessionEnabled() && !strlen($SearchType)) + break; + + case 'm_adv_search': + $SearchType = getArrayValue($_GET, 'type') ? $_GET['type'] : $_POST['itemtype']; + if( !$objSession->SessionEnabled() && !$SearchType ) { - $var_list_update["t"] = "error_session"; - $ret = GetIndexURL(2)."?env=" . BuildEnv(); + $var_list_update['t'] = 'error_session'; } else { - $ret = GetIndexURL(2)."?env=" . BuildEnv()."&Action=m_adv_search&type=$SearchType"; + $url_params = Array('Action' => 'm_adv_search', 'type' => $SearchType); m_form_load_values($form,0); } - break; + break; - case "error_access": - $target_template = $_GET["DestTemplate"]; - if(!strlen($target_template)) - $target_template="login"; - $var_list_update["t"] = $target_template; - - $ret = GetIndexURL(2)."?env=" . BuildEnv(); - break; + case 'error_access': + $var_list_update['t'] = getArrayValue($_GET, 'DestTemplate') ? $_GET['DestTemplate'] : 'login'; + break; - case "error_template": - - $target_template = $_GET["DestTemplate"]; - - if($attribs["_referer"] == 1) + case 'error_template': + $target_template = getArrayValue($_GET, 'DestTemplate'); + if($attribs['_referer'] == 1) { - $target_template = "_referer_"; + $target_template = '_referer_'; } - elseif (!strlen($target_template)) + elseif (!$target_template) { - $target_template = "index"; + $target_template = 'index'; } - - $var_list_update["t"] = $target_template; - -// $m_var_list_update["cat"]=0; - - $ret = GetIndexURL(2)."?env=".BuildEnv(); - - break; - + $var_list_update['t'] = $target_template; + break; } - return $ret; + return HREF_Wrapper('', $url_params); } /* @@ -1409,23 +1319,27 @@ { global $m_var_list_update, $objSession,$objLanguages; - $lang = $attribs["_language"]; - if(strlen($lang)) + $lang = getArrayValue($attribs, '_language'); + if($lang) { - $l = $objLanguages->GetItemByField("PackName",$lang); - if(is_object($l)) - $LangId = $l->Get("LanguageId"); + $l = $objLanguages->GetItemByField('PackName', $lang); + if( is_object($l) ) $LangId = $l->Get('LanguageId'); } else - $LangId=$objSession->Get("Language"); + { + $LangId = $objSession->Get('Language'); + } + if($LangId) { - $m_var_list_update["lang"] = $LangId; - $ret = GetIndexURL(2)."?env=".BuildEnv(); - unset($m_var_list_update["lang"]); + $m_var_list_update['lang'] = $LangId; + $ret = HREF_Wrapper(); + unset($m_var_list_update['lang']); } else - $ret = ""; + { + $ret = ''; + } return $ret; } @@ -1513,29 +1427,24 @@ */ function m_settheme_link($attribs) { - global $m_var_list_update, $objSession, $objThemes, $CurrentTheme; + global $m_var_list_update, $objSession, $objThemes, $CurrentTheme; - $ThemeName = $attribs["_theme"]; - - if(strlen($ThemeName)) - { - $t = $objThemes->GetItemByField("Name",$ThemeName); - if(is_object($t)) - { - $Id = $t->Get("ThemeId"); - } - else - $Id = 0; - } - else - { - $t = $CurrentTheme; - $Id = 0; - } - $m_var_list_update["theme"] = $Id; - $ret = GetIndexURL(2)."?env=".BuildEnv(); - unset($m_var_list_update["theme"]); - return $ret; + $ThemeName = getArrayValue($attribs, '_theme'); + if($ThemeName) + { + $t = $objThemes->GetItemByField('Name',$ThemeName); + $Id = is_object($t) ? $t->Get('ThemeId') : 0; + } + else + { + $t = $CurrentTheme; + $Id = 0; + } + $m_var_list_update['theme'] = $Id; + $ret = HREF_Wrapper(); + unset($m_var_list_update['theme']); + + return $ret; } /* @@ -2406,36 +2315,20 @@ { global $var_list, $var_list_update, $m_var_list_update, $objCatList; - $template = getArrayValue($attribs,'_template'); + $var_list_update['t'] = getArrayValue($attribs,'_template') ? $attribs['_template'] : $var_list['t']; - $query = trim( getArrayValue($attribs,'_query') ); - $query = !ereg("^&", $query)? "&$query" : $query; + $query_string = trim( getArrayValue($attribs,'_query') ); + $url_params = $query_string ? ExtractParams($query_string) : Array(); - if(!strlen($template)) - $template = $var_list["t"]; - $cat = getArrayValue($attribs,'_category'); - $var_list_update["t"] = $template; + $cat = getArrayValue($attribs, '_category'); - if(strlen($cat)) - { - if($cat=="NULL") - { - $m_var_list_update["cat"]=0; - } - else - { - $m_var_list_update["cat"] = $cat; - } - } - - $link_type = getArrayValue($attribs,'_relative') ? 0 : 2; - $ret = GetIndexURL($link_type)."?env=".BuildEnv().$query; - - if(strlen(getArrayValue($attribs,'_anchor'))) - $ret .= "#".$attribs["_anchor"]; - unset($var_list_update["t"]); - if(strlen($cat)) - unset($m_var_list_update["cat"]); + if($cat) $m_var_list_update['cat'] = ($cat == 'NULL') ? 0 : $cat; + if( getArrayValue($attribs,'_anchor') ) $url_params['anchor'] = $attribs['_anchor']; + + $ret = HREF_Wrapper('', $url_params); + + unset( $var_list_update['t'] ); + if($cat) unset( $m_var_list_update['cat'] ); return $ret; } @@ -2497,6 +2390,9 @@ } } } + + $url_params = Array('dest' => ''); + $access = $attribs["_template"]; $denied = $attribs["_deniedtemplate"]; if(!strlen($denied)) @@ -2517,15 +2413,16 @@ $template = $var_list["t"]; if($template == "login") { - $dest = $access; + $url_params['dest'] = $access; } $var_list_update["t"] = $template; } - $ret = GetIndexURL(2)."?env=".BuildEnv(); + if( !$url_params['dest'] ) unset($url_params['dest']); + $ret = HREF_Wrapper('', $url_params); + unset($var_list_update["t"]); - if(isset($dest)&&$dest) - $ret .= "&dest=$dest"; + return $ret; } Index: trunk/kernel/include/itemreview.php =================================================================== diff -u -N -r1462 -r3124 --- trunk/kernel/include/itemreview.php (.../itemreview.php) (revision 1462) +++ trunk/kernel/include/itemreview.php (.../itemreview.php) (revision 3124) @@ -652,8 +652,7 @@ { global $objConfig, $var_list_update, $var_list; - if(!strlen($page)) - $page = GetIndexURL(2); +// if( !strlen($page) ) $page = GetIndexURL(2); $PerPage = $objConfig->Get($this->PerPageVar); if($PerPage<1) $PerPage=20; @@ -690,7 +689,7 @@ if($StartPage>1) { $UpdateVar["rp"] = $this->Page-$PagesToList; - $prev_url = $page."?env=".BuildEnv(); + $prev_url = HREF_Wrapper(); $o .= "<<"; } @@ -700,7 +699,7 @@ if($p!=$this->Page) { $UpdateVar["rp"]=$p; - $href = $page."?env=".BuildEnv(); + $href = HREF_Wrapper(); $o .= " $p "; } else @@ -711,7 +710,7 @@ if($EndPage<$NumPages && $EndPage>0) { $UpdateVar["rp"]=$this->Page+$PagesToList; - $next_url = $page."?env=".BuildEnv(); + $next_url = HREF_Wrapper(); $o .= " >>"; } unset($UpdateVar,$var_list_update["t"] ); Index: trunk/kernel/frontaction.php =================================================================== diff -u -N -r3109 -r3124 --- trunk/kernel/frontaction.php (.../frontaction.php) (revision 3109) +++ trunk/kernel/frontaction.php (.../frontaction.php) (revision 3124) @@ -47,9 +47,8 @@ { $objSession->SetVariable('next_template',''); $var_list_update["t"] = $next_template; - - $url = GetIndexURL(2)."?env=".BuildEnv(); - header('Location: '.$url); + + header('Location: ' . HREF_Wrapper() ); exit; $var_list['t'] = $next_template.'.tpl'; } @@ -527,8 +526,7 @@ { $objSession->SetVariable('next_template',''); $var_list_update["t"] = $next_template; - $url = GetIndexURL(2)."?env=".BuildEnv(); - header('Location: '.$url); + header('Location: ' . HREF_Wrapper() ); exit; $var_list['t'] = $next_template.'.tpl'; } Index: trunk/kernel/admin/include/toolbar/browse.php =================================================================== diff -u -N -r2329 -r3124 --- trunk/kernel/admin/include/toolbar/browse.php (.../browse.php) (revision 2329) +++ trunk/kernel/admin/include/toolbar/browse.php (.../browse.php) (revision 3124) @@ -394,6 +394,10 @@ AddButtonAction('delete',"check_submit('$admin/browse','delete');"); //delete AddButtonAction('approve',"check_submit('$admin/browse','approve');"); //approve AddButtonAction('decline',"check_submit('$admin/browse','decline');"); //decline + + AddButtonAction('import',"check_submit('','import');"); //decline + AddButtonAction('export',"check_submit('','export');"); //decline + AddButtonAction('cut',"check_submit('$admin/browse','cut');"); //cut AddButtonAction('copy',"check_submit('$admin/browse','copy');"); //copy AddButtonAction('paste',"get_to_server('$adminURL/browse.php',env+'&Action=m_paste');"); //paste @@ -533,6 +537,12 @@ if(f) { f.Action.value = action_prefix + actionValue; + + if(actionValue == 'import' || actionValue == 'export') + { + page = 'admin/browse'; + } + f.action = '$rootURL' + page + '.php?'+ env; //alert(f.name+ ' is submitting to '+ f.action + ' action=' + f.Action.value); f.submit(); Index: trunk/kernel/include/category.php =================================================================== diff -u -N -r2562 -r3124 --- trunk/kernel/include/category.php (.../category.php) (revision 2562) +++ trunk/kernel/include/category.php (.../category.php) (revision 3124) @@ -184,7 +184,7 @@ $m_var_list_update["p"] = "1"; $cat_name = $rs->fields['Name']; if (!is_null($anchor)) - $ret .= "$cat_name"; + $ret .= "$cat_name"; else $ret .= "$cat_name"; @@ -615,7 +615,7 @@ global $m_var_list_update; $m_var_list_update["cat"] = $this->Get("CategoryId"); - $ret = GetIndexURL(2)."?env=".BuildEnv(); + $ret = HREF_Wrapper(); unset($m_var_list_update["cat"]); return $ret; } @@ -625,7 +625,7 @@ global $m_var_list_update; $m_var_list_update["cat"] = $this->Get("ParentId"); - $ret = GetIndexURL(2)."?env=".BuildEnv(); + $ret = HREF_Wrapper(); unset($m_var_list_update["cat"]); return $ret; } @@ -998,9 +998,11 @@ $var_list_update["t"] = $t; } else + { $var_list_update["t"] = $var_list["t"]; + } $m_var_list_update["cat"] = $this->Get("CategoryId"); - $ret = GetIndexURL(2)."?env=" . BuildEnv(); + $ret = HREF_Wrapper(); unset($m_var_list_update["cat"], $var_list_update["t"]); break; case "adminlink": @@ -1018,9 +1020,11 @@ $var_list_update["t"] = $t; } else + { $var_list_update["t"] = $var_list["t"]; + } $m_var_list_update["cat"] = $this->Get("CategoryId"); - $ret = GetIndexURL(2)."?env=" . BuildEnv(); + $ret = HREF_Wrapper(); unset($m_var_list_update["cat"], $var_list_update["t"]); break; case "link_selector": @@ -1693,8 +1697,7 @@ { global $objConfig, $m_var_list_update, $var_list_update, $var_list; - if(!strlen($page)) - $page = GetIndexURL(2); +// if(!strlen($page)) $page = GetIndexURL(2); $PerPage = $this->GetPerPage(); $NumPages = ceil( $this->GetNumPages($PerPage) ); @@ -1729,7 +1732,7 @@ if($StartPage>1) { $m_var_list_update["p"] = $this->Page-$PagesToList; - $prev_url = $page."?env=".BuildEnv(); + $prev_url = HREF_Wrapper(); $o .= "<<"; } @@ -1739,7 +1742,7 @@ if($p!=$this->Page) { $m_var_list_update["p"]=$p; - $href = $page."?env=".BuildEnv(); + $href = HREF_Wrapper(); $o .= " $p "; } else @@ -1750,7 +1753,7 @@ if($EndPage<$NumPages && $EndPage>0) { $m_var_list_update["p"]=$this->Page+$PagesToList; - $next_url = $page."?env=".BuildEnv(); + $next_url = HREF_Wrapper(); $o .= " >>"; } unset($m_var_list_update,$var_list_update["t"] ); @@ -1848,12 +1851,11 @@ // draw category navigation bar (at top) global $Errors, $var_list_update, $var_list, $m_var_list_update, $m_var_list, $objConfig; - $selector = isset($_REQUEST['Selector']) ? '&Selector='.$_REQUEST['Selector'] : ''; - $new = isset($_REQUEST['new']) ? '&new='.$_REQUEST['new'] : ''; - $destform = GetVar('destform') !== false ? '&destform='.GetVar('destform') : ''; + $url_params = Array('reset' => 1); + if( GetVar('Selector') ) $url_params['Selector'] = GetVar('Selector'); + if( GetVar('new') ) $url_params['new'] = GetVar('new'); + if( GetVar('destform') ) $url_params['destform'] = GetVar('destform'); - $add = $selector.$new.$destform.'&reset=1'; - $nav = ""; $m_var_list_update["p"]=1; if(strlen($target_template)==0) @@ -1866,7 +1868,7 @@ if ($LinkRoot) { $var_list_update["t"] = strlen($RootTemplate)? $RootTemplate : $target_template; - $nav = "$cat_name"; } + $nav = "$cat_name"; } else $nav = "$cat_name"; } @@ -1896,7 +1898,7 @@ { if ($admin == 1) { - $nav[] = "".$cat_name.""; + $nav[] = "".$cat_name.""; } else { @@ -1908,7 +1910,7 @@ { $var_list_update["t"] = $target_template; } - $nav[] = "".$cat_name.""; + $nav[] = "".$cat_name.""; } } } @@ -1925,7 +1927,7 @@ { if ($admin == 1) { - $nav[] = "".$cat_name.""; + $nav[] = "".$cat_name.""; } else { @@ -1935,7 +1937,7 @@ } else $var_list_update["t"] = $target_template; - $nav[] = "".$cat_name.""; + $nav[] = "".$cat_name.""; } } @@ -1969,12 +1971,12 @@ { if ($admin == 1) { - $nav[] = "".$cat_name.""; + $nav[] = "".$cat_name.""; } else { $var_list_update["t"] = $t; - $nav[] = "".$cat_name.""; + $nav[] = "".$cat_name.""; unset($var_list_update["t"]); } } Index: trunk/kernel/include/theme.php =================================================================== diff -u -N -r3000 -r3124 --- trunk/kernel/include/theme.php (.../theme.php) (revision 3000) +++ trunk/kernel/include/theme.php (.../theme.php) (revision 3124) @@ -572,7 +572,7 @@ break; case "select_url": $var_list_update["t"] = "index"; - $ret = GetIndexURL(2)."?env=".BuildEnv()."&Action=m_set_theme&ThemeId=".$this->Get("ThemeId"); + $ret = HREF_Wrapper('', Array('Action' => 'm_set_theme', 'ThemeId' => $this->Get('ThemeId') ) ); break; case "selected": $ret = "";