diff --git a/classes/Sublimer.class.php b/classes/Sublimer.class.php index dc8de1d..6afa23c 100644 --- a/classes/Sublimer.class.php +++ b/classes/Sublimer.class.php @@ -129,20 +129,45 @@ final class Sublimer return implode(' ', $words); } - function formGet(Array $replaces) + /** + * Формирует get-строку для запроса + * + * @param array/string $replace - Имя переменной для замены (либо массив ключ=значение) В случае false вернет весь get + * @param mixed $value - значение переменной для замены, если $replace - массив, то не играет роли. В случае false переменная удаляется из get + * @return string + */ + function formGet($replace = false, $value = false) { + $chunk = true; //обрезать последний & (или ?) $get = $_GET; //дабы не менять дефолтный массив - foreach($replaces as $key => $val) { - $get[$key] = $val; + if (is_array($replace)) { + foreach($replace as $key => $val) { + if($val === false) { + unset($get[$key]); + $chunk = false; + } else { + $get[$key] = $val; + } + } + } else if ($replace !== false) { + if ($value === false) { //для получения строки БЕЗ параметра с именем $replace + unset($get[$replace]); + $chunk = false; + } else { + $get[$replace] = $value; + } } $str = '?'; - foreach($get as $key => $val) - { + foreach($get as $key => $val) { $str .= $key.'='.$val.'&'; } - return mb_substr($str, 0, -1); + if ($chunk) { + $str = mb_substr($str, 0, -1); + } + + return htmlspecialchars($str); } }