Inheritance: extends CUrlManage\CUrlManager
Exemplo n.º 1
0
 /**
  * @param \yupe\components\urlManager\LangUrlManager $manager
  * @param CHttpRequest $request
  * @param string $pathInfo
  * @param string $rawPathInfo
  * @return bool|string
  */
 public function parseUrl($manager, $request, $pathInfo, $rawPathInfo)
 {
     $slugs = Yii::app()->getCache()->get(self::CACHE_KEY);
     if (false === $slugs) {
         /* @var $cmd CDbCommand */
         $cmd = Yii::app()->getDb()->createCommand();
         $slugs = $cmd->setFetchMode(PDO::FETCH_COLUMN, 0)->from('{{page_page}}')->select('slug')->queryAll();
         Yii::app()->getCache()->set(self::CACHE_KEY, $slugs, 0);
     }
     $parts = explode('/', $manager->removeLangFromUrl($pathInfo));
     if (!empty($parts)) {
         $slug = $parts[0];
         if (in_array($slug, $slugs, true)) {
             return 'page/page/view/slug/' . $slug;
         }
     }
     return false;
 }
Exemplo n.º 2
0
 /**
  * Обработка запроса
  *
  * @param mixed $event
  * @return void
  */
 public function handleLanguageBehavior($event)
 {
     $this->setLanguage($this->getLang());
     $this->lang = $this->lm->getAppLang() === $this->getLang() ? false : $this->getLang();
     // язык передан в url, но он равен дефолтному языку
     if ($this->getUrlLang() !== null && $this->lang === false) {
         Yii::app()->getRequest()->redirect(Yii::app()->getHomeUrl() . $this->lm->getCleanUrl(Yii::app()->getRequest()->url));
     }
 }
Exemplo n.º 3
0
 /**
  * @param string $language
  */
 protected function setLanguage($language)
 {
     Yii::app()->getUser()->setState($this->lm->getCookieKey(), $language);
     Yii::app()->getRequest()->cookies[$this->lm->getCookieKey()] = new CHttpCookie($this->lm->getCookieKey(), $language);
     Yii::app()->setLanguage($language);
 }