* Name: pageurl
* Input: * - =value> (optional) - pass in any attributes and they will be added to the url string
* Output: url of the form: $_SERVER[SCRIPT_NAME]?attribute1=value1&attribute2=value2 /* Build up URL variable string */ function smarty_function_pageurl( $params, &$gBitSmarty ) { extract( $params ); if( !isset( $pgnUrl ) ) { $pgnUrl = $gBitSmarty->getTemplateVars('returnURL'); if ( isset( $params['url'] ) ) { $pgnUrl = $params['url']; unset( $params['url'] ); } if( empty( $pgnUrl ) ) { $pgnUrl = $_SERVER['SCRIPT_NAME']; } } $str = ''; if( !empty( $listInfo['parameters'] ) ){ $str .= pageurl_hash_to_string( $listInfo['parameters'] ); } if( !empty( $listInfo['ihash'] ) ){ $str .= pageurl_hash_to_string( $listInfo['ihash'] ); // find can show up in two places $foundFind = !empty( $listInfo['ihash']['find'] ); } if( !empty( $pgnHidden ) ){ $str .= pageurl_hash_to_string( $pgnHidden ); } if ( !empty( $listInfo['sort_mode'] ) ){ if ( is_array( $listInfo['sort_mode']) ){ foreach( $listInfo['sort_mode'] as $sort ){ $str .= "&sort_mode[]=".$sort; } }else{ $str .= "&sort_mode=".$listInfo['sort_mode']; } } if( !$foundFind && isset($listInfo['find']) && $listInfo['find'] != '' ){ $str .= "&find=".$listInfo['find']; } $pageUrlVar = preg_replace( '/^\&/', '', $str ); $pageUrl = $pgnUrl . "?" . $pageUrlVar; return $pageUrl; } function pageurl_hash_to_string( $pParamHash ){ $str = ""; foreach( $pParamHash as $param=>$value ){ if( is_array( $value ) ){ foreach ( $value as $v ){ if ( $value != '' ){ $str .= "&".$param."[]=".$v; } } }elseif ( $value != '' ){ $str .= "&".$param."=".$value; } } return $str; }