Conn =& $this->Application->GetADODBConnection(); } /** * Created url part for this module * * @param kEvent $event */ function BuildEnv(&$event) { static $ThemesCache = array(); static $LangCache = array(); $prefix_special = $event->getPrefixSpecial(); $url_params = $event->getEventParam('url_params'); $query_vars = $this->Application->getUnitOption($event->Prefix, 'QueryString'); //if pass events is off and event is not implicity passed if ( !$event->getEventParam('pass_events') && !isset($url_params[$prefix_special.'_event']) ) { $url_params[$prefix_special.'_event'] = ''; // remove event from url if requested //otherwise it will use value from get_var } if(!$query_vars) return true; $processed_params = Array(); foreach($query_vars as $index => $var_name) { //if value passed in params use it, otherwise use current from application $var_name = $prefix_special.'_'.$var_name; $processed_params[$var_name] = isset( $url_params[$var_name] ) ? $url_params[$var_name] : $this->Application->GetVar($var_name); if ( isset($url_params[$var_name]) ) unset( $url_params[$var_name] ); } $ret = ''; $default_language_id = $this->Application->GetDefaultLanguageId(); if( $processed_params['m_lang'] != $default_language_id ) { if (!isset($LangCache[$processed_params['m_lang']])) { $LangCache[$processed_params['m_lang']] = $this->Conn->GetOne('SELECT PackName FROM '.TABLE_PREFIX.'Language WHERE LanguageId = '.$processed_params['m_lang']).'/'; } $ret .= $LangCache[$processed_params['m_lang']]; } $default_theme_id = $this->Application->GetDefaultThemeId(); if( $processed_params['m_theme'] != $default_theme_id ) { if (!isset($ThemesCache[$processed_params['m_theme']])) { $ThemesCache[$processed_params['m_theme']] = $this->Conn->GetOne('SELECT Name FROM '.TABLE_PREFIX.'Theme WHERE ThemeId = '.$processed_params['m_theme']).'/'; } $ret .= $ThemesCache[$processed_params['m_theme']]; } if( $processed_params['m_cat_id'] > 0 ) { $ret .= $this->Application->getFilename('c', $processed_params['m_cat_id']).'/'; } $force_page_adding = false; if (getArrayValue($url_params, 'reset')) { unset($url_params['reset']); if ($processed_params['m_cat_id']) { $processed_params['m_cat_page'] = 1; $force_page_adding = true; } } if( $processed_params['m_cat_page'] > 1 || $force_page_adding ) { $ret = preg_replace('/(.*)\//', '\\1', $ret).'_'.$processed_params['m_cat_page'].'/'; } $ret .= $event->getEventParam('t').'/'; $event->setEventParam('url_params', $url_params); $event->setEventParam('env_string', strtolower($ret) ); } /** * Occurs, when all configs were read, allows to change config data dynamically * * @param kEvent $event */ function OnAfterConfigRead(&$event) { // readonly, for hooking only! } } ?>