fix URL::retrieve
This commit is contained in:
@@ -169,9 +169,7 @@ class UrlGenerator extends AbstractSmartyPlugin
|
|||||||
|
|
||||||
protected function getCurrentUrl()
|
protected function getCurrentUrl()
|
||||||
{
|
{
|
||||||
$retriever = URL::init()->retrieveCurrent($this->request);
|
return URL::init()->retrieveCurrent($this->request)->toString();
|
||||||
|
|
||||||
return $retriever->rewrittenUrl === null ? $retriever->url : $retriever->rewrittenUrl ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getReturnToUrl()
|
protected function getReturnToUrl()
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class Category extends BaseCategory
|
|||||||
|
|
||||||
public function getUrl($locale)
|
public function getUrl($locale)
|
||||||
{
|
{
|
||||||
return URL::init()->retrieve('category', $this->getId(), $locale);
|
return URL::init()->retrieve('category', $this->getId(), $locale)->toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -9,6 +9,6 @@ class Content extends BaseContent
|
|||||||
{
|
{
|
||||||
public function getUrl($locale)
|
public function getUrl($locale)
|
||||||
{
|
{
|
||||||
return URL::init()->retrieve('content', $this->getId(), $locale);
|
return URL::init()->retrieve('content', $this->getId(), $locale)->toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class Folder extends BaseFolder
|
|||||||
|
|
||||||
public function getUrl($locale)
|
public function getUrl($locale)
|
||||||
{
|
{
|
||||||
return URL::init()->retrieve('folder', $this->getId(), $locale);
|
return URL::init()->retrieve('folder', $this->getId(), $locale)->toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -9,6 +9,6 @@ class Product extends BaseProduct
|
|||||||
{
|
{
|
||||||
public function getUrl($locale)
|
public function getUrl($locale)
|
||||||
{
|
{
|
||||||
return URL::init()->retrieve('product', $this->getId(), $locale);
|
return URL::init()->retrieve('product', $this->getId(), $locale)->toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,4 +98,12 @@ class RewritingRetriever
|
|||||||
$this->rewrittenUrl = $this->search->getUrl();
|
$this->rewrittenUrl = $this->search->getUrl();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function toString()
|
||||||
|
{
|
||||||
|
return $this->rewrittenUrl === null ? $this->url : $this->rewrittenUrl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,25 +124,32 @@ class URL
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Retrieve a rewritten URL from a view, a view id and a locale
|
||||||
|
*
|
||||||
* @param $view
|
* @param $view
|
||||||
* @param $viewId
|
* @param $viewId
|
||||||
* @param $viewLocale
|
* @param $viewLocale
|
||||||
*
|
*
|
||||||
* @return null|string
|
* @return RewritingRetriever You can access $url and $rewrittenUrl properties
|
||||||
*/
|
*/
|
||||||
public function retrieve($view, $viewId, $viewLocale)
|
public function retrieve($view, $viewId, $viewLocale)
|
||||||
{
|
{
|
||||||
$rewrittenUrl = null;
|
|
||||||
if(ConfigQuery::isRewritingEnable()) {
|
if(ConfigQuery::isRewritingEnable()) {
|
||||||
$rewrittenUrl = $this->retriever->loadViewUrl($view, $viewLocale, $viewId);
|
$this->retriever->loadViewUrl($view, $viewLocale, $viewId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $rewrittenUrl === null ? self::viewUrl($view, array($view . '_id' => $viewId, 'locale' => $viewLocale)) : $rewrittenUrl;
|
return $this->retriever;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve a rewritten URL from the current GET parameters
|
||||||
|
*
|
||||||
|
* @param Request $request
|
||||||
|
*
|
||||||
|
* @return RewritingRetriever You can access $url and $rewrittenUrl properties or use toString method
|
||||||
|
*/
|
||||||
public function retrieveCurrent(Request $request)
|
public function retrieveCurrent(Request $request)
|
||||||
{
|
{
|
||||||
$rewrittenUrl = null;
|
|
||||||
if(ConfigQuery::isRewritingEnable()) {
|
if(ConfigQuery::isRewritingEnable()) {
|
||||||
$view = $request->query->get('view', null);
|
$view = $request->query->get('view', null);
|
||||||
$viewLocale = $request->query->get('locale', null);
|
$viewLocale = $request->query->get('locale', null);
|
||||||
@@ -165,6 +172,13 @@ class URL
|
|||||||
return $this->retriever;
|
return $this->retriever;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve a rewritten URL from the current GET parameters or use toString method
|
||||||
|
*
|
||||||
|
* @param $url
|
||||||
|
*
|
||||||
|
* @return RewritingResolver
|
||||||
|
*/
|
||||||
public function resolve($url)
|
public function resolve($url)
|
||||||
{
|
{
|
||||||
$this->resolver->load($url);
|
$this->resolver->load($url);
|
||||||
|
|||||||
Reference in New Issue
Block a user