public function createUrl($route, $params = array(), $ampersand = '&') { if (preg_match('/[A-Z]/', $route) !== 0) { $route = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '-\\1', $route)); } return parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { $route = preg_replace_callback('/(?<![A-Z])[A-Z]/', function ($matches) { return '-' . lcfirst($matches[0]); }, $route); return parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { if (isset($params[$this->languageParam])) { $language = $params[$this->languageParam]; $forceLanguage = true; unset($params[$this->languageParam]); } else { $language = Yii::app()->language; $forceLanguage = false; } $url = parent::createUrl($route, $params, $ampersand); $request = Yii::app()->request; if (!$forceLanguage && !$request->redirectDefault && $language === $request->getDefaultLanguage()) { return $url; } $key = array_search($language, $request->languages); if (is_string($key)) { $language = $key; } if (($baseUrl = $this->getBaseUrl()) === '') { return '/' . $language . $url; } else { return strtr($url, array($baseUrl => $baseUrl . '/' . $language)); } }
public function createUrl($route, $params = array(), $ampersand = '&') { $route = trim($route, '/'); //for admin and admin/* $parts = explode('/', $route); //do not mess with gii if ($parts[0] == 'gii') { return parent::createUrl($route, $params, $ampersand); } // ignore defaultController if (Yii::app()->hasModule($parts[0]) && isset($parts[1]) && $parts[1] == Yii::app()->getModule($parts[0])->defaultController) { unset($parts[1]); $route = implode('/', $parts); } if (substr(Yii::app()->getRequest()->pathInfo, 0, 6) == 'admin/' || Yii::app()->getRequest()->pathInfo == 'admin') { $route = 'admin/' . trim($route, '/'); } $url = parent::createUrl($route, $params, $ampersand); if (Settings::get('SEO', 'slugs_enabled')) { //handle slugs here if ($slug = Slug::getSlug(preg_replace('/' . trim(Yii::app()->baseUrl, '/') . '/', '', $url, 1))) { //if (Settings::get('SEO','externalSlug') $url = $slug; $url = Yii::app()->baseUrl . '/' . $url; } } return $url; }
public function createUrl($route, $params = array(), $ampersand = '&') { if (empty($params['language']) && Yii::app()->language !== 'ru') { $params['language'] = Yii::app()->language; } if (!isset(Yii::app()->controller->module->id)) { if (!strstr($route, 'register')) { if (isset($_POST['city'])) { $cookie = new CHttpCookie('city', $_POST['city']); Yii::app()->request->cookies['city'] = $cookie; $cookie->expire = time() + 3600; $c = City::model()->localized('ru')->findByPk($_POST['city'])->name; $params['city'] = Settings::toLatin($c); } elseif (isset(Yii::app()->request->cookies['city'])) { $c = City::model()->localized('ru')->findByPk(Yii::app()->request->cookies['city']->value)->name; $params['city'] = Settings::toLatin($c); } else { unset($params['city']); } } else { unset($params['city']); } } /*if (!strstr($route,'/')) { $route = '/cat/'.$route; }*/ return Yii::app()->request->hostInfo . parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { if (!isset($params['language'])) { $params['language'] = Yii::app()->language; } return parent::createUrl($route, $params, $ampersand); }
public function createLangUrl($language, $ampersand = '&') { $route = Yii::app()->controller->route; $params = $_GET; unset($params[$this->routeVar]); $params[$this->langParam] = $language; return parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { $url = parent::createUrl($route, $params, $ampersand); if ($this->getFrontendMode()) { $baseUrl = $this->getBaseUrl(); return mb_substr($url, mb_strlen($baseUrl)); } return $url; }
/** * @inheritDoc */ public function createUrl($route, $params = array(), $ampersand = '&') { $oldUrlSuffix = $this->urlSuffix; if (isset($params['_ext'])) { $this->urlSuffix = '.' . $params['_ext']; unset($params['_ext']); } $url = parent::createUrl($route, $params, $ampersand); $this->urlSuffix = $oldUrlSuffix; return $url; }
public function createUrl($route,$params=array(),$ampersand='&') { if (!isset($params['language'])) { if (Yii::app()->user->hasState('language')) Yii::app()->language = Yii::app()->user->getState('language'); else if(isset(Yii::app()->request->cookies['language'])) Yii::app()->language = Yii::app()->request->cookies['language']->value; $params['language']=Yii::app()->language; } return parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { if ($route != 'min/serve' && $route != 'site/uploadimage') { $langs = Lang::getActiveLangs(); $countLangs = count($langs); if (!isFree() && empty($params['lang']) && ($countLangs > 1 || $countLangs == 1 && param('useLangPrefixIfOneLang'))) { $params['lang'] = Yii::app()->language; } } return parent::createUrl($route, $params, $ampersand); }
/** * Create url based on current language. * @param mixed $route * @param array $params * @param string $ampersand * @param boolean $respectLang * @access public * @return string */ public function createUrl($route, $params = array(), $ampersand = '&', $respectLang = true) { $result = parent::createUrl($route, $params, $ampersand); if ($respectLang === true) { $langPrefix = Yii::app()->languageManager->getUrlPrefix(); if ($langPrefix) { $result = '/' . $langPrefix . $result; } } return $result; }
/** * * @see CUrlManager * * Constructs a URL. * @param string the controller and the action (e.g. article/read) * @param array list of GET parameters (name=>value). Both the name and value will be URL-encoded. * If the name is '#', the corresponding value will be treated as an anchor * and will be appended at the end of the URL. This anchor feature has been available since version 1.0.1. * @param string the token separating name-value pairs in the URL. Defaults to '&'. * @return string the constructed URL */ public function createUrl($route, $params = array(), $ampersand = '&') { // We added this by default to all links to show // Content based on language - Add only when not excplicity set if (!isset($params['lang'])) { $params['lang'] = Yii::app()->language; } if (isset($params['lang']) && $params['lang'] === false) { unset($params['lang']); } // Use parent to finish url construction return parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { $url = parent::createUrl($route, $params, $ampersand); // If already an absolute URL, return it directly if (strpos($url, 'http') === 0) { return $url; } // Check if the current protocol matches the expected protocol of the route // If not, prefix the generated URL with the correct host info. $secureRoute = $this->isSecureRoute($route); if (Yii::app()->request->isSecureConnection) { return $secureRoute ? $url : $this->hostInfo . $url; } else { return $secureRoute ? $this->secureHostInfo . $url : $url; } }
public function createUrl($route, $params = array(), $ampersand = '&') { if ($route !== 'tstranslation') { if ($this->showLangInUrl) { if (empty($params['_lang'])) { $params['_lang'] = Yii::app()->language; } } else { if (isset($params['_lang'])) { unset($params['_lang']); } } } else { $params = array(); } return parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { if (!isset($params['language'])) { if (Yii::app()->language != Yii::app()->settings->getValue('language')) { $params['language'] = Yii::app()->language; } } else { if ($params['language'] == Yii::app()->settings->getValue('language')) { unset($params['language']); } } if (isset($params['pageId']) && $params['pageId'] == 1) { $tmp = $params; unset($tmp['pageId'], $tmp['language'], $tmp['alias'], $tmp['url']); if (empty($tmp)) { return Yii::app()->homeUrl; } else { $params = $tmp; } } if (!isset($params['alias']) && isset($params['pageId'])) { $params['alias'] = ''; } if ($this->getUrlFormat() == self::GET_FORMAT) { unset($params['alias']); unset($params['url']); } if (!empty($params['url'])) { if (substr($params['url'], 0, 1) == '/') { $params['url'] = substr($params['url'], 1); } $tmp = explode('/', $params['url']); if ($tmp[count($tmp) - 1] == '') { unset($params['url']); } } if ($this->fullUrl && !empty($params['url'])) { unset($params['alias']); unset($params['pageId']); } else { unset($params['url']); } $ret = parent::createUrl($route, $params, $ampersand); $ret = str_ireplace('%2F', '/', $ret); return $ret; }
public function createUrl($route, $params = array(), $ampersand = '&') { $route = preg_replace_callback('/(?<![A-Z])[A-Z]/', function ($matches) { return '-' . lcfirst($matches[0]); }, $route); //Francis - This feels very hacky, it would be good to find a cleaner //way of doing this. if (strpos($route, 'content/view') !== false && isset($params['path'])) { $path = $params['path']; unset($params['path']); //Add on any extra parameters to the get string (fixes pagination) if (!empty($params)) { $path .= '?' . http_build_query($params); } return Yii::app()->baseUrl . $path; } return parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { if ($route == 'detail/index') { if ($params['cate_id'] == 20) { $route = 'review/index'; $all_params['alias'] = $params['alias']; } else { $all_params['alias'] = $params['alias']; } $params = $all_params; } if ($route == 'category/index') { if ($params['alias'] == 'how-to') { return '/how-to.html'; } } return parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { // Формируем стандартный URL без языка $url = parent::createUrl($route, $params, $ampersand); $domains = explode('/', ltrim($url, '/')); if (in_array($domains[0], array_keys(Yii::app()->params['languages']))) { if ($domains[0] == Yii::app()->sourceLanguage) { // Вырезем из урла дефолтный язык array_shift($domains); $url = '/' . implode('/', $domains); } else { // В урле задан язык, отличный от дефолтного, ничего делать не надо } } else { if (Yii::app()->language != Yii::app()->sourceLanguage) { // Язык не задан в урле, добавляем его array_unshift($domains, Yii::app()->language); $url = '/' . implode('/', $domains); } else { // Язык не задан, но он дефолтный, ничего подставлять не надо } } return $url; }
public function createUrl($route, $params = array(), $ampersand = '&') { /*if (!isset($params['lang'])) $params['lang']=Yii::app()->GetLanguage();*/ return parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { $url = parent::createUrl($route, $params, $ampersand); return DMultilangHelper::addLangToUrl($url); }
public function testParsingOnly() { $config = array('basePath' => dirname(__FILE__), 'components' => array('request' => array('class' => 'TestHttpRequest'))); $rules = array('(articles|article)/<id:\\d+>' => array('article/read', 'parsingOnly' => true), 'article/<id:\\d+>' => array('article/read', 'verb' => 'GET')); $_SERVER['REQUEST_METHOD'] = 'GET'; $app = new TestApplication($config); $app->request->baseUrl = null; // reset so that it can be determined based on scriptUrl $app->request->scriptUrl = '/apps/index.php'; $app->request->pathInfo = 'articles/123'; $um = new CUrlManager(); $um->urlFormat = 'path'; $um->rules = $rules; $um->init($app); $route = $um->parseUrl($app->request); $this->assertEquals('article/read', $route); $url = $um->createUrl('article/read', array('id' => 345)); $this->assertEquals('/apps/index.php/article/345', $url); }
public function createUrl($route, $params = array(), $ampersand = '&') { if ($route != 'min/serve' && $route != 'site/uploadimage') { $langs = Lang::getActiveLangs(); $countLangs = count($langs); $defaultLang = Lang::getDefaultLang(); if (isset($params['lang']) && $params['lang'] == $defaultLang && $this->isInstalled) { if (!param('useBootstrap')) { unset($params['lang']); } } else { if (Yii::app()->language != $defaultLang && !isFree() && empty($params['lang']) && $countLangs > 1) { $params['lang'] = Yii::app()->language; } } if (!$this->isInstalled && $countLangs == 1 && $route != 'install') { $params['lang'] = Yii::app()->language; } if (!$this->isInstalled && $countLangs > 1 && !isset($params['lang']) && $route != 'install') { $params['lang'] = Yii::app()->language; } } return parent::createUrl($route, $params, $ampersand); }
public function createUrl($route, $params = array(), $ampersand = '&') { return $this->fixPathSlashes(parent::createUrl($route, $params, $ampersand)); }
public function testCreateUrlWithGetFormat() { $config = array('basePath' => dirname(__FILE__), 'components' => array('request' => array('class' => 'TestHttpRequest'))); $app = new TestApplication($config); $entries = array(array('scriptUrl' => '/apps/index.php', 'url' => '/apps/index.php?route=article/read&name=value&name1=value1', 'url2' => '/apps/?route=article/read&name=value&name1=value1', 'route' => 'article/read', 'params' => array('name' => 'value', 'name1' => 'value1')), array('scriptUrl' => '/index.php', 'url' => '/index.php?route=article/read&name=value&name1=value1', 'url2' => '/?route=article/read&name=value&name1=value1', 'route' => 'article/read', 'params' => array('name' => 'value', 'name1' => 'value1'))); foreach ($entries as $entry) { $app->request->baseUrl = null; $app->request->scriptUrl = $entry['scriptUrl']; $um = new CUrlManager(); $um->urlFormat = 'get'; $um->routeVar = 'route'; $um->init($app); $url = $um->createUrl($entry['route'], $entry['params'], '&'); $this->assertEquals($url, $entry['url']); $um = new CUrlManager(); $um->urlFormat = 'get'; $um->routeVar = 'route'; $um->showScriptName = false; $um->init($app); $url = $um->createUrl($entry['route'], $entry['params'], '&'); $this->assertEquals($url, $entry['url2']); } }