summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--framework/Web/Services/TPageService.php5
-rw-r--r--framework/Web/THttpRequest.php15
2 files changed, 15 insertions, 5 deletions
diff --git a/framework/Web/Services/TPageService.php b/framework/Web/Services/TPageService.php
index 8d3ccca3..022c1286 100644
--- a/framework/Web/Services/TPageService.php
+++ b/framework/Web/Services/TPageService.php
@@ -452,11 +452,12 @@ class TPageService extends TService
* @param string page path
* @param array list of GET parameters, null if no GET parameters required
* @param boolean whether to encode the ampersand in URL, defaults to false.
+ * @param boolean whether to encode the GET parameters (their names and values), defaults to true.
* @return string URL for the page and GET parameters
*/
- public function constructUrl($pagePath,$getParams=null,$encodeAmpersand=false)
+ public function constructUrl($pagePath,$getParams=null,$encodeAmpersand=false,$encodeGetItems=true)
{
- return $this->getRequest()->constructUrl($this->_id,$pagePath,$getParams,$encodeAmpersand);
+ return $this->getRequest()->constructUrl($this->_id,$pagePath,$getParams,$encodeAmpersand,$encodeGetItems);
}
}
diff --git a/framework/Web/THttpRequest.php b/framework/Web/THttpRequest.php
index d3a8480a..2fd02d1d 100644
--- a/framework/Web/THttpRequest.php
+++ b/framework/Web/THttpRequest.php
@@ -436,16 +436,25 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar
* @param string service parameter
* @param array GET parameters, null if not needed
* @param boolean whether to encode the ampersand in URL, defaults to false.
+ * @param boolean whether to encode the GET parameters (their names and values), defaults to true.
* @return string URL
*/
- public function constructUrl($serviceID,$serviceParam,$getItems=null,$encodeAmpersand=false)
+ public function constructUrl($serviceID,$serviceParam,$getItems=null,$encodeAmpersand=false,$encodeGetItems=true)
{
$url=$serviceID.'='.$serviceParam;
$amp=$encodeAmpersand?'&':'&';
if(is_array($getItems) || $getItems instanceof Traversable)
{
- foreach($getItems as $name=>$value)
- $url.=$amp.urlencode($name).'='.urlencode($value);
+ if($encodeGetItems)
+ {
+ foreach($getItems as $name=>$value)
+ $url.=$amp.urlencode($name).'='.urlencode($value);
+ }
+ else
+ {
+ foreach($getItems as $name=>$value)
+ $url.=$amp.$name.'='.$value;
+ }
}
if($this->getUrlFormat()==='Path')
{