first commit
This commit is contained in:
131
modules/leoblog/classes/link.php
Normal file
131
modules/leoblog/classes/link.php
Normal file
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
/**
|
||||
* 2007-2015 Leotheme
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* Content Management
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* @author leotheme <leotheme@gmail.com>
|
||||
* @copyright 2007-2015 Leotheme
|
||||
* @license http://leotheme.com - prestashop template provider
|
||||
*/
|
||||
|
||||
class LeoBlogLink extends Link
|
||||
{
|
||||
|
||||
/**
|
||||
* Create a link to a module
|
||||
*
|
||||
* @since 1.5.0
|
||||
* @param string $module Module name
|
||||
* @param string $process Action name
|
||||
* @param int $id_lang
|
||||
* @return string
|
||||
* Get link of ROOT_BLOG "Show All"
|
||||
*/
|
||||
public function getLink($route_id, $controller = 'default', array $params = array(), $ssl = null, $id_lang = null, $id_shop = null)
|
||||
{
|
||||
# validate module
|
||||
unset($controller);
|
||||
if (!$id_lang) {
|
||||
$id_lang = Context::getContext()->language->id;
|
||||
}
|
||||
$url = $this->getBaseLink($id_shop, $ssl).$this->getLangLink($id_lang, null, $id_shop);
|
||||
return $url.Dispatcher::getInstance()->createUrl($route_id, $id_lang, $params, $this->allow, '', $id_shop);
|
||||
}
|
||||
|
||||
public function getLeoblogLink($id_object, $controller, $params = array())
|
||||
{
|
||||
return $this->getLink($id_object, $controller, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get pagination link
|
||||
*
|
||||
* @param string $type Controller name
|
||||
* @param int $id_object
|
||||
* @param boolean $nb Show nb element per page attribute
|
||||
* @param boolean $sort Show sort attribute
|
||||
* @param boolean $pagination Show page number attribute
|
||||
* @param boolean $array If false return an url, if true return an array
|
||||
*/
|
||||
public function getLeoPaginationLink($type, $id_object, $controller, $params, $nb = false, $sort = false, $pagination = false, $array = true)
|
||||
{
|
||||
// If no parameter $type, try to get it by using the controller name
|
||||
if (!$type && !$id_object) {
|
||||
$method_name = 'get'.Dispatcher::getInstance()->getController().'Link';
|
||||
if (method_exists($this, $method_name) && Tools::getIsset(Tools::getValue('id_'.Dispatcher::getInstance()->getController()))) {
|
||||
$type = Dispatcher::getInstance()->getController();
|
||||
$id_object = Tools::getValue('id_'.$type);
|
||||
}
|
||||
}
|
||||
|
||||
if ($type && $id_object) {
|
||||
$url = $this->{'get'.$type.'Link'}($id_object, $controller, $params);
|
||||
} else {
|
||||
if (isset(Context::getContext()->controller->php_self)) {
|
||||
$name = Context::getContext()->controller->php_self;
|
||||
} else {
|
||||
$name = Dispatcher::getInstance()->getController();
|
||||
}
|
||||
$url = $this->getPageLink($name);
|
||||
}
|
||||
|
||||
$vars = array();
|
||||
$vars_nb = array('n', 'search_query');
|
||||
$vars_sort = array('orderby', 'orderway');
|
||||
$vars_pagination = array('p');
|
||||
|
||||
$get = array();
|
||||
$get['isolang'] = Tools::getValue('isolang');
|
||||
$get['id_lang'] = Tools::getValue('id_lang');
|
||||
$get['id'] = Tools::getValue('id');
|
||||
$get['fc'] = Tools::getValue('fc');
|
||||
$get['module'] = Tools::getValue('module');
|
||||
$get['controller'] = Tools::getValue('controller');
|
||||
|
||||
foreach ($get as $k => $value) {
|
||||
if ($k != 'id_'.$type && $k != 'controller') {
|
||||
if (Configuration::get('PS_REWRITING_SETTINGS') && ($k == 'isolang' || $k == 'id_lang')) {
|
||||
continue;
|
||||
}
|
||||
$if_nb = (!$nb || ($nb && !in_array($k, $vars_nb)));
|
||||
$if_sort = (!$sort || ($sort && !in_array($k, $vars_sort)));
|
||||
$if_pagination = (!$pagination || ($pagination && !in_array($k, $vars_pagination)));
|
||||
if ($if_nb && $if_sort && $if_pagination) {
|
||||
if (!is_array($value)) {
|
||||
$vars[urlencode($k)] = $value;
|
||||
} else {
|
||||
foreach (explode('&', http_build_query(array($k => $value), '', '&')) as $val) {
|
||||
$data = explode('=', $val);
|
||||
$vars[urldecode($data[0])] = $data[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$array) {
|
||||
if (count($vars)) {
|
||||
return $url.(($this->allow == 1 || $url == $this->url) ? '?' : '&').http_build_query($vars, '', '&');
|
||||
} else {
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
|
||||
$vars['requestUrl'] = $url;
|
||||
|
||||
if ($type && $id_object) {
|
||||
$vars['id_'.$type] = (is_object($id_object) ? (int)$id_object->id : (int)$id_object);
|
||||
}
|
||||
|
||||
if (!$this->allow == 1) {
|
||||
$vars['controller'] = Dispatcher::getInstance()->getController();
|
||||
}
|
||||
|
||||
return $vars;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user