Changeset 3988
- Timestamp:
- 04/12/11 10:40:42 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.0.1/mobile/inc/class.mobiletemplate.inc.php
r3867 r3988 140 140 141 141 private function process_back_link() { 142 $url = $GLOBALS['phpgw']->session->appsession('mobile.last_url','mobile'); 143 144 if($url) { 145 $params = $GLOBALS['phpgw']->session->appsession('mobile.last_request','mobile'); 146 147 $query_string = ""; 148 unset($params['sessionid']); 149 unset($params['domain']); 150 unset($params['last_loginid']); 151 unset($params['last_domain']); 152 unset($params['kp3']); 153 unset($params['showHeader']); 154 155 foreach ($params as $key => $value) { 156 $query_string .= "&".$key."=".$value; 142 $trace = $GLOBALS['phpgw']->session->appsession('mobile.trace_urls','mobile'); 143 144 $trace_idx = 0; 145 146 if($trace) { 147 $trace_idx = sizeof($trace)-1; 148 149 if($_REQUEST["is_back_link"]) 150 $trace_idx = $trace_idx - 2; 151 152 if($trace_idx < 0) $trace_idx = 0; 153 154 $url = $trace[$trace_idx]["url"]; 155 $params = $trace[$trace_idx]["request"]; 156 157 $this->href_back = $this->build_url($url, $params); 158 } else { 159 $trace = array(); 160 $this->href_back = ''; 161 } 162 163 if(!$_REQUEST["is_back_link"]) { 164 $current_url = $_SERVER["SCRIPT_NAME"]; 165 $current_params = $_REQUEST; 166 167 unset($current_params['sessionid']); 168 unset($current_params['domain']); 169 unset($current_params['last_loginid']); 170 unset($current_params['last_domain']); 171 unset($current_params['kp3']); 172 unset($current_params['showHeader']); 173 174 $built_current_url = $this->build_url($current_url, $current_params); 175 176 //se der reload não vai gravar a url e vai sobreescrever o link do botão voltar para não voltar para a mesma página 177 if(str_replace("&is_back_link=true","",$built_current_url) != str_replace("&is_back_link=true","",$this->href_back)) 178 $trace[sizeof($trace)] = array("url" => $current_url, "request" => $current_params); 179 else { 180 if($trace_idx >= 1) $trace_idx--; 181 $this->href_back = $this->build_url($trace[$trace_idx]["url"], $trace[$trace_idx]["request"]); 157 182 } 158 159 if($query_string != "")160 $url .= "?".substr($query_string,1);161 162 $this->href_back = $url;163 183 } else { 164 $this->href_back = 'javascript:history.back()'; 165 } 166 167 $GLOBALS['phpgw']->session->appsession('mobile.last_url','mobile',$_SERVER["SCRIPT_NAME"]); 168 $GLOBALS['phpgw']->session->appsession('mobile.last_request','mobile',$_REQUEST); 184 if(sizeof($trace) > 1) 185 unset($trace[sizeof($trace)-1]); 186 } 187 188 if(sizeof($trace) > 0) 189 $GLOBALS['phpgw']->session->appsession('mobile.trace_urls','mobile',$trace); 190 else 191 $GLOBALS['phpgw']->session->appsession('mobile.trace_urls','mobile',null); 192 193 $this->template->set_var('href_back', $this->href_back); 194 } 195 196 private function build_url($url, $params) { 197 $query_string = ""; 198 199 foreach ($params as $key => $value) { 200 $query_string .= "&".$key."=".$value; 201 } 202 203 if($query_string != "") 204 $url .= "?".substr($query_string,1); 205 206 if(!$params["is_back_link"]) 207 $url .= "&is_back_link=true"; 208 209 return $url; 169 210 } 170 211
Note: See TracChangeset
for help on using the changeset viewer.