function.geturl.php 930 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. /**
  3. * Smarty function to wrap url builder
  4. *
  5. * @author Christopher Han <xiphux@gmail.com>
  6. * @copyright Copyright (c) 2012 Christopher Han
  7. * @package GitPHP
  8. * @subpackage Smarty
  9. *
  10. * @param array $params parameter array
  11. * @param Smarty_Internal_Template $template smarty template
  12. * @return string url
  13. */
  14. function smarty_function_geturl($params, Smarty_Internal_Template $template)
  15. {
  16. $full = false;
  17. if (!empty($params['fullurl']) && ($params['fullurl'] == true)) {
  18. $full = true;
  19. }
  20. unset($params['fullurl']);
  21. $escape = true;
  22. if (isset($params['escape']) && ($params['escape'] == false))
  23. $escape = false;
  24. unset($params['escape']);
  25. $router = $template->getTemplateVars('router');
  26. if (!$router) {
  27. trigger_error("geturl: missing router");
  28. return;
  29. }
  30. $finalurl = $router->GetUrl($params, $full);
  31. if ($escape)
  32. $finalurl = htmlspecialchars($finalurl, ENT_COMPAT, 'UTF-8', false);
  33. return $finalurl;
  34. }