Mercurial > SimpleWebPresenter
changeset 45:6c2c6acba30c
Support for hardcoding parameters.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Mon, 08 Oct 2012 02:02:09 +0200 |
| parents | 79f708a48a7c |
| children | 15879e2aab65 |
| files | common-functions.inc filters.inc |
| diffstat | 2 files changed, 65 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/common-functions.inc Mon Oct 08 02:01:04 2012 +0200 +++ b/common-functions.inc Mon Oct 08 02:02:09 2012 +0200 @@ -44,20 +44,35 @@ exit; } -function genUrl($urlParams, $keys = array()) { - $out = "?"; +function genUrl($urlParams, $keys = array(), $nonQueryParams = array()) { + $out = ''; $first = 1; $new_params = $urlParams; foreach($keys as $param => $val) { $new_params[$param] = $val; } + + foreach($nonQueryParams as $nqp) { + if (array_key_exists($nqp, $new_params)) { + $val = $new_params[$nqp]; + if ($val) + $out .= "/${val}"; + unset($new_params[$nqp]); + } + } + foreach($new_params as $param => $val) { - if($first) - $first = 0; - else - $out .= "&"; - $out .= urlencode($param) . '=' . urlencode($val); + if ($val) { + if($first) { + $first = 0; + $out .= "?"; + } + else + $out .= "&"; + $out .= urlencode($param) . '=' . urlencode($val); + } } + return $out; } @@ -81,4 +96,45 @@ return $text; } +function startswith($haystack, $needle) +{ + return strpos($haystack, $needle) === 0; +} + +function endsWith($haystack, $needle) +{ + $l = strlen($haystack) - strlen($needle); + return strrpos($haystack, $needle) === $l; +} + +function getHeaders($url) +{ + $response = http_head($url, array("timeout"=>1), $info); + $headers = array(); + $str = explode("\n", $response); + foreach($str as $kv) { + $p = strpos($kv, ":"); + if ($p) { + $key = substr($kv, 0, $p); + $value = trim(substr($kv, $p + 1)); + $headers[$key] = $value; + } + } + return $headers; +} + +function opttostring($opts) +{ + $str = ''; + foreach (array_keys($opts) as $key) { + $value = $opts[$key]; + if ($str) { + $str .= "&${key}=${value}"; + } + else { + $str = "?${key}=${value}"; + } + } + return $str; +} ?> \ No newline at end of file
--- a/filters.inc Mon Oct 08 02:01:04 2012 +0200 +++ b/filters.inc Mon Oct 08 02:02:09 2012 +0200 @@ -29,7 +29,7 @@ $output = preg_replace_callback($pattern, create_function( '$matches', - 'return "<li id=\"$matches[1]\" $matches[2]><a href=\"" . genUrl(' . $opt . ', array("name" => $matches[1])) . "\">$matches[3]</a></li>";' + 'return "<li id=\"$matches[1]\" $matches[2]><a href=\"" . genUrl(' . $opt . ', array("name" => $matches[1]), array("lang") ) . "\">$matches[3]</a></li>";' ), $output); @@ -47,7 +47,7 @@ $langbar.= " <li class=\"${l}\">"; if ($active) - $langbar .= '<a href="'.genUrl(array( 'lang' => $l)) . '">'; + $langbar .= '<a href="'.genUrl($options->getUrlParams(), array( 'lang' => $l), array('lang', 'name') ) . '">'; $langbar .= " <img src=\"http://dev.bfginvest.no/php/flag.php?lang=${l}&active=${active}\" width=\"20\" height=\"16\" alt=\"Norsk versjon - inaktiv\" title=\"Norsk\"/>";
