Пример #1
0
 /**
  * Get URL using URL alias
  * @static
  * @param string $alias
  * @return false|string
  */
 public static function getUrlByAlias($alias)
 {
     $result = rad_dbpdo::query('SELECT item_type, item_id, lang_id FROM ' . RAD . 'url_aliases WHERE alias=:alias', array('alias' => $alias));
     if (empty($result['item_type'])) {
         return false;
     }
     $lng = rad_lang::getLangByID($result['lang_id']);
     rad_lang::changeLanguage($lng->lng_code);
     switch ($result['item_type']) {
         //List all supported item types here (if they don't need some special processing)
         case 'product':
             return rad_input::makeURL('alias=' . $result['item_type'] . '&p=' . $result['item_id'], false);
         default:
             return false;
             //For not supported item types
     }
 }
Пример #2
0
 function __construct()
 {
     if ($this->request('lang')) {
         $previous_lang = rad_lang::getCurrentLanguage();
         if (rad_lang::changeLanguage($this->request('lang'))) {
             //all is ok - redirecting
             if ($this->request('fromsite')) {
                 $this->redirect($this->makeURL('alias=' . $this->config('mainAlias')));
             } elseif (!empty($_SERVER['HTTP_REFERER'])) {
                 $ref = $_SERVER['HTTP_REFERER'];
                 if (mb_substr($ref, 0, mb_strlen(SITE_URL)) == SITE_URL and $this->getParamsObject() and $this->getParamsObject()->_get('returntorefferer', false)) {
                     $this->redirect(str_replace(SITE_URL . $previous_lang . '/', SITE_URL . rad_lang::getCurrentLanguage() . '/', $ref));
                 } else {
                     $this->redirect($this->makeURL('alias=' . $this->config('mainAlias')));
                 }
             } else {
                 $this->redirect($this->makeURL('alias=' . $this->config('mainAlias')));
             }
         } else {
             $this->redirect($this->makeURL('alias=' . $this->config('defaultAlias')), 'Error changing language!');
             die('can\'t change language');
         }
     } elseif ($this->request('action')) {
         $this->setVar('action', strtolower($this->request('action')));
         switch (strtolower($this->request('action'))) {
             case 'adminlng':
                 $this->changeAdminLanguage();
                 break;
             case 'contentlng':
                 $this->changeContentLanguage();
                 break;
             case 'getjs':
                 $this->getJS();
                 break;
             default:
                 $this->securityHoleAlert(__FILE__, __LINE__, $this->getClassName());
                 break;
         }
         //switch
     } else {
         $this->securityHoleAlert(__FILE__, __LINE__, $this->getClassName());
     }
 }