]> dev.renevier.net Git - syj.git/blob - application/views/helpers/AddParamToUrl.php
e0b37a346750a5554d9649ebec17591c5a5c9ae9
[syj.git] / application / views / helpers / AddParamToUrl.php
1 <?php
2 /*  This file is part of Syj, Copyright (c) 2010 Arnaud Renevier,
3     and is published under the AGPL license. */
4
5 class Syj_View_Helper_AddParamToUrl extends Zend_View_Helper_Abstract
6 {
7     public function addParamToUrl($url, $param, $value, $replace = false) {
8         if (strpos ($url, '?') === false) {
9             return $url . '?' . $param . '=' . $this->view->escape($value);
10         }
11
12         $parts = explode('&', substr(strstr($url, '?'), 1));
13
14         foreach (explode('&', substr(strstr($url, '?'), 1)) as $key => $part) {
15             if (substr($part, 0, strlen($param . '=')) === ($param . '=')) {
16                 if ($replace) {
17                     unset($parts[$key]);
18                 } else {
19                     return $url;
20                 }
21             }
22         }
23
24         $parts[] = $param . '=' . $this->view->escape($value);
25
26         return strstr($url, '?', true) . '?' . implode('&', $parts);
27     }
28 }