コード例 #1
0
ファイル: class.loader.php プロジェクト: ValenokPC/tabernacms
 public static function getAliasByName(&$aliasname = '')
 {
     $result = self::getAliasRecord($aliasname);
     if (!$result->id || !$result->active) {
         rad_session::setVar('message', $aliasname);
         $aliasname = rad_config::getParam('alias.404');
         $result = self::getAliasRecord(self::$alias);
         header(rad_config::getParam('header.404'));
     }
     if ($result->ali_admin && !rad_session::adminAccess()) {
         rad_session::setVar('message', $aliasname);
         rad_session::logout();
         $aliasname = rad_config::getParam('alias.loginform');
         $result = self::getAliasRecord(self::$alias);
     }
     if ($result->id) {
         $result->includes = array();
         $themeId = $result->themeid ? $result->themeid : 0;
         $sqlParams = array('alias_1_id' => $result->id, 'theme_1_id' => $themeId);
         if ($result->group_id) {
             $sqlParams['alias_2_id'] = $result->group_id;
             $theme2Id = rad_dbpdo::query('SELECT theme_id FROM ' . RAD . 'themes WHERE theme_aliasid=? AND theme_folder=?', array($result->group_id, rad_themer::getCurrentTheme()));
             $theme2Id = !empty($theme2Id['theme_id']) ? (int) $theme2Id['theme_id'] : $themeId;
             $sqlParams['theme_2_id'] = $theme2Id;
         }
         $sql = 'SELECT inc_id,inc_name,inc_filename,controller,order_sort,rp_name,id_module,m_name,params_hash,ina.id as incinal_id,ina.params_presonal as params_presonal, ip.ip_params as original_params ' . 'FROM ' . RAD . 'includes_in_aliases ina ' . 'INNER JOIN ' . RAD . 'includes on include_id=inc_id ' . 'INNER JOIN ' . RAD . 'modules m on m.m_id=id_module ' . 'INNER JOIN ' . RAD . 'positions p on position_id=p.rp_id ' . 'LEFT JOIN ' . RAD . 'includes_params ip on ip.ip_incid=ina.include_id ' . 'WHERE alias_id=:alias_1_id' . ' AND ina.theme_id=:theme_1_id' . ($result->group_id ? ' UNION (SELECT inc_id,inc_name,inc_filename,controller,order_sort,rp_name,id_module,m_name,params_hash,ina.id as incinal_id,ina.params_presonal as params_presonal, ip.ip_params as original_params ' . 'FROM ' . RAD . 'includes_in_aliases ina ' . 'INNER JOIN ' . RAD . 'includes on include_id=inc_id ' . 'INNER JOIN ' . RAD . 'modules m on m.m_id=id_module ' . 'INNER JOIN ' . RAD . 'positions p on position_id=p.rp_id ' . 'LEFT JOIN ' . RAD . 'includes_params ip on ip.ip_incid=ina.include_id ' . 'WHERE alias_id=:alias_2_id' . ' AND ina.theme_id=:theme_2_id' . ')' : '') . ' ORDER BY order_sort, rp_name';
         foreach (rad_dbpdo::queryAll($sql, $sqlParams) as $id) {
             $result->includes[] = new struct_core_include($id);
         }
     } else {
         $result = NULL;
     }
     return $result;
 }
コード例 #2
0
ファイル: login.php プロジェクト: ValenokPC/tabernacms
 function loginFromSite()
 {
     $login = $this->request('login');
     $pass = $this->request('pass');
     if (strlen($login) and strlen($pass) and $this->hash() == $this->request('hash')) {
         if (rad_session::login($login, $pass)) {
             $this->setVar('user', $this->getCurrentUser());
             rad_instances::get('model_corecatalog_bin')->mergeCart();
             if ($this->request('referer')) {
                 $this->redirect($this->request('referer'));
             } else {
                 $this->redirect($this->makeURL('alias=' . $this->config('mainAlias')));
             }
         } elseif (rad_session::$error_code == rad_session::ERROR_USER_IS_BLOCKED) {
             $this->setVar('message_error', $this->lang('user_is_blocked.session.message'));
         } elseif (rad_session::$error_code == rad_session::ERROR_USER_NOT_ACTIVATED) {
             $this->setVar('message_error', $this->lang('user_not_activated.session.message', null, true, array('@link@' => $this->makeURL('alias=register&a=reactivate&hash=' . $this->hash()))));
         } else {
             //login incorrect
             $this->setVar('message_error', $this->lang('loginpassincorrect.session.message'));
             $this->setVar('req', $this->getAllRequest());
         }
     } elseif ($this->request('logout')) {
         rad_session::logout();
         $this->redirect($this->makeUrl('alias=' . $this->config('defaultAlias')));
     }
 }