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; }