append("LinkBuilder -> link()", $params);
if (is_array($params))
{
return $this->linkFromArray($params);
}
else
{
return $this->linkFomString($params);
}
}
public function linkToResource($pathFromResources)
{
if (defined("RESOURCES_SUBDOMAIN"))
{
return "http://".RESOURCES_SUBDOMAIN."/".$pathFromResources;
}
else
{
return SITE_SUBDIR . DS . RESOURCES_SYMLINK . DS . $pathFromResources;
}
}
public function externalLink($params)
{
return "http://" . $_SERVER["SERVER_NAME"] . $this->link($params);
}
public function frontendLink($params)
{
if(is_array($params))
{
return "http://".SROVNAVAC_ADMIN_DEFAULT_SITE . ".povinne-ruceni.tv" .$this->linkRewriteFromArray($params);
}
else
{
return "http://".SROVNAVAC_ADMIN_DEFAULT_SITE . ".povinne-ruceni.tv" .$this->linkRewriteFromString($params);
}
}
private function linkRewriteFromArray($params)
{
$p = "";
$controller = (array_key_exists("controller", $params) ? $params["controller"] : null);
unset($params["controller"]);
$task = (array_key_exists("task", $params) ? $params["task"] : null);
unset($params["task"]);
$product = (array_key_exists("product", $params) ? $params["product"] : null);
unset($params["product"]);
$uuid = (array_key_exists("uuid", $params) ? $params["uuid"] : null);
unset($params["uuid"]);
foreach ($params as $key => $value)
{
$p.=$key . "=" . $value . "&";
}
$link = "/srovnani";
if ($controller != null)
$link.="/$controller";
if ($task != null)
$link.="/$task";
if ($product != null)
$link.="/$product";
else if ($uuid != null)
$link.="/$uuid";
if ($p != "")
$link.= "?" . substr($p, 0, strlen($p) - 1);
return $link;
}
private function linkNormalFromArray($params)
{
$p = "";
foreach ($params as $key => $value)
{
$p.=$key . "=" . $value . "&";
}
$link = "index.php";
if ($p != "")
$link.= "?" . substr($p, 0, strlen($p) - 1);
return $link;
}
private function linkFromArray($params)
{
if (REWRITE_LINKS)
{
return $this->linkRewriteFromArray($params);
}
else
{
return $this->linkNormalFromArray($params);
}
}
private function linkRewriteFromString($link)
{
//pozice dvojtečky
$p1 = strpos($link, ":");
$p2 = strpos($link, "=");
if (!$p1)
{
$odd = "=";
}
else if (!$p2)
{
$odd = ":";
}
else if ($p2 < $p1)
{
$odd = "=";
}
else
{
$odd = ":";
}
if ($link == "")
return $this->linkRewriteFromArray(array());
$link = explode(",", $link);
$params = array();
foreach ($link as $l)
{
$l = explode($odd, $l);
$params[$l[0]] = $l[1];
}
return $this->linkRewriteFromArray($params);
}
private function linkFomString($link)
{
//pozice dvojtečky
$p1 = strpos($link, ":");
$p2 = strpos($link, "=");
if (!$p1)
{
$odd = "=";
}
else if (!$p2)
{
$odd = ":";
}
else if ($p2 < $p1)
{
$odd = "=";
}
else
{
$odd = ":";
}
if ($link == "")
return $this->linkFromArray(array());
$link = explode(",", $link);
$params = array();
foreach ($link as $l)
{
$l = explode($odd, $l);
$params[$l[0]] = $l[1];
}
return $this->linkFromArray($params);
}
public function setUrlParameter($url, $key, $value)
{
$parseUrl = parse_url($url);
parse_str($parseUrl['query'], $query);
$query[$key] = $value;
return $parseUrl['path'].'?'.http_build_query($query);
}
public function navigate($controller,$task)
{
return $this->link(array("controller"=>$controller,"task"=>$task));
}
}
WebSVN
- freenet-router
- Blame
- Rev 2
- /trunk/freenet-router/var/www/freenet-router/Framework/Environment/LinkBuilder.php
freenet-router |
Subversion Repositories: |
[/] [trunk/] [freenet-router/] [var/] [www/] [freenet-router/] [Framework/] [Environment/] [LinkBuilder.php] - Blame information for rev 2
Powered by WebSVN 2.2.1