XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
compiler.xoAppUrl.php
Go to the documentation of this file.
1 <?php
50 function smarty_compiler_xoAppUrl($argStr, &$compiler)
51 {
52  global $xoops;
53  $argStr = trim($argStr);
54 
55  @list($url, $params) = explode(' ', $argStr, 2);
56 
57  if (substr($url, 0, 1) == '/') {
58  $url = 'www' . $url;
59  }
60  // Static URL generation
61  if (strpos($argStr, '$') === false && $url != '.') {
62  if (isset($params)) {
63  $params = $compiler->_parse_attrs($params, false);
64  foreach ($params as $k => $v) {
65  if (in_array(substr($v, 0, 1), array('"', "'"))) {
66  $params[$k] = substr($v, 1, -1);
67  }
68  }
69  $url = $xoops->buildUrl($url, $params);
70  }
71  $url = $xoops->path($url, true);
72  return "echo '" . addslashes(htmlspecialchars($url)) . "';";
73  }
74  // Dynamic URL generation
75  if ($url == '.') {
76  $str = "\$_SERVER['REQUEST_URI']";
77  } else {
78  $str = "\$xoops->path('$url', true)";
79  }
80  if (isset($params)) {
81  $params = $compiler->_parse_attrs($params, false);
82  $str = "\$xoops->buildUrl($str, array(\n";
83  foreach ($params as $k => $v) {
84  $str .= var_export($k, true) . " => $v,\n";
85  }
86  $str .= "))";
87  }
88  return "echo htmlspecialchars($str);";
89 }
90 
91 ?>