Index: trunk/core/kernel/application.php =================================================================== diff -u -r2604 -r2659 --- trunk/core/kernel/application.php (.../application.php) (revision 2604) +++ trunk/core/kernel/application.php (.../application.php) (revision 2659) @@ -667,13 +667,15 @@ if( isset($params['index_file']) ) $index_file = $params['index_file']; + $ssl = isset($params['__SSL__']) ? $params['__SSL__'] : null; + if (getArrayValue($params, 'opener') == 'u') { $opener_stack=$this->RecallVar('opener_stack'); if($opener_stack) { $opener_stack=unserialize($opener_stack); if (count($opener_stack) > 0) { list($index_file, $env) = explode('|', $opener_stack[count($opener_stack)-1]); - $ret = $this->BaseURL($prefix).$index_file.'?'.ENV_VAR_NAME.'='.$env; + $ret = $this->BaseURL($prefix, $ssl).$index_file.'?'.ENV_VAR_NAME.'='.$env; if( getArrayValue($params,'escape') ) $ret = addslashes($ret); return $ret; } @@ -691,21 +693,19 @@ $pass = isset($params['pass']) ? $params['pass'] : ''; $pass_events = isset($params['pass_events']) ? $params['pass_events'] : false; // pass events with url - - 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).$t.'.html/'.$env.'/'.$sid, '/'); + $ret = rtrim($this->BaseURL($prefix, $ssl).$t.'.html/'.$env.'/'.$sid, '/'); } else { $env = $this->BuildEnv($t, $params, $pass, $pass_events); - $ret = $this->BaseURL($prefix).$index_file.'?'.$env; + $ret = $this->BaseURL($prefix, $ssl).$index_file.'?'.$env; } return $ret; @@ -788,9 +788,19 @@ return $ret; } - function BaseURL($prefix='') + function BaseURL($prefix='', $ssl=null) { - return PROTOCOL.SERVER_NAME.(defined('PORT')?':'.PORT : '').BASE_PATH.$prefix.'/'; + if ($ssl == null) { + return PROTOCOL.SERVER_NAME.(defined('PORT')?':'.PORT : '').BASE_PATH.$prefix.'/'; + } + else { + if ($ssl) { + return $this->ConfigValue('SSL_URL').$prefix.'/'; + } + else { + return 'http://'.SERVER_NAME.(defined('PORT')?':'.PORT : '').BASE_PATH.$prefix.'/'; + } + } } function Redirect($t='', $params=null, $prefix='', $index_file=null)