Index: trunk/core/kernel/db/dblist.php =================================================================== diff -u -N -r2910 -r3559 --- trunk/core/kernel/db/dblist.php (.../dblist.php) (revision 2910) +++ trunk/core/kernel/db/dblist.php (.../dblist.php) (revision 3559) @@ -271,12 +271,12 @@ $this->RecordsCount = (int)$this->Conn->GetOne($sql); } - $system_sql = $this->GetSelectSQL(true,true); - if($system_sql == $all_sql) //no need to query the same again - { - $this->NoFilterCount = $this->RecordsCount; - return; - } + $system_sql = $this->GetSelectSQL(true,true); + if($system_sql == $all_sql) //no need to query the same again + { + $this->NoFilterCount = $this->RecordsCount; + return; + } $sql = $this->getCountSQL($system_sql); if( $this->GetGroupClause() ) Index: trunk/core/kernel/session/session.php =================================================================== diff -u -N -r3472 -r3559 --- trunk/core/kernel/session/session.php (.../session.php) (revision 3472) +++ trunk/core/kernel/session/session.php (.../session.php) (revision 3559) @@ -640,14 +640,14 @@ function SaveData() { - if( $this->Application->GetVar('t') != 'help' ) + if( $this->Application->GetVar('t') != 'help' && !$this->Application->GetVar('skip_last_template')) { $last_env = $this->Application->BuildEnv($this->Application->GetVar('t'), Array('m_opener' => 'u'), 'all'); $last_template = basename($_SERVER['PHP_SELF']).'|'; $last_template .= substr($last_env, strlen(ENV_VAR_NAME) + 1); $this->StoreVar('last_template', $last_template); + $this->StoreVar('last_env', substr($this->Application->BuildEnv($this->Application->GetVar('t'),Array('pass'=>'all')), strlen(ENV_VAR_NAME)+1 )); } - $this->StoreVar('last_env', substr($this->Application->BuildEnv($this->Application->GetVar('t'),Array('pass'=>'all')), strlen(ENV_VAR_NAME)+1 )); $this->PrintSession('after save'); $this->Storage->SaveData($this); Index: trunk/kernel/units/general/cat_event_handler.php =================================================================== diff -u -N -r3543 -r3559 --- trunk/kernel/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 3543) +++ trunk/kernel/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 3559) @@ -1019,6 +1019,20 @@ } } + /*$cur_per_page = $per_page; + $per_page = $event->getEventParam('per_page'); + if ($per_page == 'list_next') { + + $cur_page = $page; + + $object =& $this->Application->recallObject($event->Prefix); + $object->SetPerPage(1); + $cur_item_index = $object->CurrentIndex; + + $page = ($cur_page-1) * $cur_per_page + $cur_item_index + 1; + $object->SetPerPage(1); + }*/ + $object->SetPage($page); } Index: trunk/admin/install/upgrades/changelog_1_1_6.txt =================================================================== diff -u -N --- trunk/admin/install/upgrades/changelog_1_1_6.txt (revision 0) +++ trunk/admin/install/upgrades/changelog_1_1_6.txt (revision 3559) @@ -0,0 +1,128 @@ +File in-portal/globals.php changed +File in-portal/admin/browse.php changed +File in-portal/admin/backupdata/.cvs is removed +File in-portal/admin/backupdata/.cvsignore is new +File in-portal/admin/backupdata/dummy is new +File in-portal/admin/config/addcustomfield.php changed +File in-portal/admin/export/.cvsignore is new +File in-portal/admin/include/mainscript.js changed +File in-portal/admin/install/inportal_data.sql changed +File in-portal/admin/install/inportal_schema.sql changed +File in-portal/admin/install/langpacks/english.lang changed +File in-portal/admin/install/upgrades/inportal_upgrade_v1.1.6.sql is new +File in-portal/kernel/constants.php changed +File in-portal/kernel/admin/include/toolbar/browse.php changed +File in-portal/kernel/admin_templates/incs/form_blocks.tpl changed +File in-portal/kernel/admin_templates/incs/grid_blocks.tpl changed +File in-portal/kernel/admin_templates/incs/script.js changed +File in-portal/kernel/cache/.cvsignore is new +File in-portal/kernel/include/customfield.php changed +File in-portal/kernel/include/language.php changed +File in-portal/kernel/include/searchconfig.php changed +File in-portal/kernel/module_help/visits_list.txt changed +File in-portal/kernel/stylesheets/.cvsignore is new +File in-portal/kernel/units/categories/categories_tag_processor.php changed +File in-portal/kernel/units/general/cat_dbitem.php changed +File in-portal/kernel/units/general/cat_dbitem_export.php is new +File in-portal/kernel/units/general/cat_event_handler.php changed +File in-portal/kernel/units/general/cat_tag_processor.php changed +File in-portal/kernel/units/general/main_event_handler.php changed +File in-portal/kernel/units/general/my_application.php changed +File in-portal/kernel/units/languages/import_xml.php changed +File in-portal/kernel/units/stylesheets/stylesheets_item.php changed +File kernel4_dev/kernel4/application.php changed +File kernel4_dev/kernel4/event_manager.php changed +File kernel4_dev/kernel4/globals.php changed +File kernel4_dev/kernel4/db/db_event_handler.php changed +File kernel4_dev/kernel4/db/dbitem.php changed +File kernel4_dev/kernel4/db/dblist.php changed +File kernel4_dev/kernel4/parser/construct_tags.php changed +File kernel4_dev/kernel4/parser/template.php changed +File kernel4_dev/kernel4/parser/template_parser.php changed +File kernel4_dev/kernel4/session/session.php changed +File kernel4_dev/kernel4/utility/email.php changed +File kernel4_dev/kernel4/utility/http_query.php changed +File kernel4_dev/kernel4/utility/smtp_client.php changed + + +Changes in phrases and events: + + +Added label "la_btn_Down" of type "1" +Added label "la_btn_Up" of type "1" +Removed label "la_config_use_js_redirect" of type "1" +Changed label "la_Description_in-link:inlink_paid_listings" of type "1" +Changed label "la_Description_in-link:inlink_paid_listings" of type "1" +Changed label "la_Description_in-portal:configure_styles" of type "1" +Changed label "la_Description_in-portal:configure_styles" of type "1" +Changed label "la_event_user.membership_expiration_notice" of type "1" +Changed label "la_event_user.membership_expired" of type "1" +Changed label "la_event_user.membership_expiration_notice" of type "1" +Changed label "la_event_user.membership_expired" of type "1" +Added label "la_fld_AvailableColumns" of type "1" +Added label "la_fld_CategoryFormat" of type "1" +Added label "la_fld_CategorySeparator" of type "1" +Added label "la_fld_ExportColumns" of type "1" +Added label "la_fld_ExportFormat" of type "1" +Added label "la_fld_FieldsEnclosedBy" of type "1" +Added label "la_fld_FieldsSeparatedBy" of type "1" +Added label "la_fld_IncludeFieldTitles" of type "1" +Added label "la_fld_IsBaseCategory" of type "1" +Added label "la_fld_LineEndings" of type "1" +Changed label "la_MembershipExpirationReminder" of type "1" +Changed label "la_MembershipExpirationReminder" of type "1" +Added label "la_MixedCategoryPath" of type "1" +Changed label "la_promt_ReferrerCheck" of type "1" +Changed label "la_promt_ReferrerCheck" of type "1" +Added label "la_SeparatedCategoryPath" of type "1" +Changed label "la_users_assign_all_to" of type "1" +Changed label "la_users_assign_all_to" of type "1" +Changed label "lu_fieldcustom__a" of type "2" +Changed label "lu_fieldcustom__a" of type "2" +Changed label "lu_fieldcustom__samplefield" of type "2" +Changed label "lu_fieldcustom__samplefield" of type "2" +Removed label "lu_fieldcustom__user_from" of type "2" +Changed event "CATEGORY.ADD.PENDING" of type "0" +Changed event "USER.VALIDATE" of type "1" +Changed event "USER.APPROVE" of type "1" +Changed event "USER.UNSUBSCRIBE" of type "0" +Changed event "USER.APPROVE" of type "0" +Removed event "USER.PSWD" of type "0" +Removed event "USER.APPROVE" of type "0" +Removed event "USER.DENY" of type "1" +Removed event "USER.UNSUBSCRIBE" of type "0" +Removed event "USER.SUGGEST" of type "1" +Removed event "CATEGORY.ADD.PENDING" of type "1" +Removed event "USER.ADD" of type "1" +Changed event "USER.MEMBERSHIP.EXPIRED" of type "1" +Changed event "USER.SUGGEST" of type "1" +Changed event "USER.VALIDATE" of type "0" +Added event "USER.MEMBERSHIP.EXPIRED" of type "1" +Added event "USER.ADD" of type "1" +Added event "USER.DENY" of type "1" +Added event "CATEGORY.APPROVE" of type "1" +Added event "CATEGORY.ADD.PENDING" of type "1" +Added event "CATEGORY.DENY" of type "1" +Added event "CATEGORY.DENY" of type "0" +Added event "CATEGORY.APPROVE" of type "0" +Removed event "CATEGORY.DENY" of type "1" +Removed event "CATEGORY.APPROVE" of type "1" +Removed event "USER.VALIDATE" of type "0" +Changed event "CATEGORY.APPROVE" of type "0" +Changed event "CATEGORY.DENY" of type "0" +Changed event "CATEGORY.ADD" of type "0" +Changed event "USER.UNSUBSCRIBE" of type "1" +Removed event "USER.UNSUBSCRIBE" of type "1" +Removed event "CATEGORY.ADD" of type "0" +Removed event "USER.ADD" of type "0" +Removed event "USER.PSWDC" of type "0" +Changed event "USER.APPROVE" of type "1" +Changed event "USER.SUBSCRIBE" of type "0" +Changed event "USER.ADD.PENDING" of type "0" +Changed event "USER.VALIDATE" of type "1" +Changed event "USER.PSWDC" of type "0" +Changed event "USER.ADD" of type "0" +Changed event "CATEGORY.ADD.PENDING" of type "0" +Added event "USER.PSWD" of type "0" +Added event "USER.ADD.PENDING" of type "0" +Added event "USER.SUBSCRIBE" of type "0" Index: trunk/core/kernel/application.php =================================================================== diff -u -N -r3513 -r3559 --- trunk/core/kernel/application.php (.../application.php) (revision 3513) +++ trunk/core/kernel/application.php (.../application.php) (revision 3559) @@ -787,6 +787,11 @@ { if(!$t) $t = $this->GetVar('t'); // moved from kMainTagProcessor->T() + if ($this->GetVar('skip_last_template')) { + $params['opener'] = 'p'; + $this->SetVar('m_opener', 'p'); + } + if( substr($t, -4) == '.tpl' ) $t = substr($t, 0, strlen($t) - 4 ); if ( $this->IsAdmin() && $prefix == '') $prefix = '/admin'; Index: trunk/core/units/general/cat_event_handler.php =================================================================== diff -u -N -r3543 -r3559 --- trunk/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 3543) +++ trunk/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 3559) @@ -1019,6 +1019,20 @@ } } + /*$cur_per_page = $per_page; + $per_page = $event->getEventParam('per_page'); + if ($per_page == 'list_next') { + + $cur_page = $page; + + $object =& $this->Application->recallObject($event->Prefix); + $object->SetPerPage(1); + $cur_item_index = $object->CurrentIndex; + + $page = ($cur_page-1) * $cur_per_page + $cur_item_index + 1; + $object->SetPerPage(1); + }*/ + $object->SetPage($page); } Index: trunk/kernel/admin_templates/incs/script.js =================================================================== diff -u -N -r3543 -r3559 --- trunk/kernel/admin_templates/incs/script.js (.../script.js) (revision 3543) +++ trunk/kernel/admin_templates/incs/script.js (.../script.js) (revision 3559) @@ -254,14 +254,18 @@ if(!isset($width)) $width=750; if(!isset($height)) $height=400; if(!isset($event)) $event=''; - set_hidden_field('m_opener','s'); + + cur_opener = get_hidden_field('m_opener'); + set_hidden_field('m_opener','p'); + openwin('',$window_name,$width,$height); set_hidden_field('main_prefix', $prefix); document.kernel_form.target=$window_name; var old_action = document.kernel_form.action; document.kernel_form.action = $url; submit_event($prefix,$event,$t); document.kernel_form.action = old_action; + set_hidden_field('m_opener',cur_opener); } function openwin($url,$name,$width,$height) @@ -473,33 +477,33 @@ // related to lists operations (moving) - - + + function move_selected($from_list, $to_list) { if (typeof($from_list) != 'object') $from_list = document.getElementById($from_list); if (typeof($to_list) != 'object') $to_list = document.getElementById($to_list); - + if (has_selected_options($from_list)) { var $from_array = select_to_array($from_list); var $to_array = select_to_array($to_list); var $new_from = Array(); var $cur = null; - + for (var $i = 0; $i < $from_array.length; $i++) { $cur = $from_array[$i]; if ($cur[2]) // If selected - add to To array - { + { $to_array[$to_array.length] = $cur; } else //Else - keep in new From - { + { $new_from[$new_from.length] = $cur; } } - + $from_list = array_to_select($new_from, $from_list); $to_list = array_to_select($to_array, $to_list); } @@ -508,35 +512,35 @@ alert('Please select items to perform moving!'); } } - + function select_to_array($aSelect) { var $an_array = new Array(); var $cur = null; - + for (var $i = 0; $i < $aSelect.length; $i++) { $cur = $aSelect.options[$i]; $an_array[$an_array.length] = new Array($cur.text, $cur.value, $cur.selected); } return $an_array; } - + function array_to_select($anArray, $aSelect) { var $initial_length = $aSelect.length; for (var $i = $initial_length - 1; $i >= 0; $i--) { $aSelect.options[$i] = null; } - + for (var $i = 0; $i < $anArray.length; $i++) { $cur = $anArray[$i]; $aSelect.options[$aSelect.length] = new Option($cur[0], $cur[1]); } } - + function select_compare($a, $b) { if ($a[0] < $b[0]) @@ -545,29 +549,29 @@ return 1; return 0; } - + function select_to_string($aSelect) { var $result = ''; var $cur = null; - + if (typeof($aSelect) != 'object') $aSelect = document.getElementById($aSelect); - + for (var $i = 0; $i < $aSelect.length; $i++) { $result += $aSelect.options[$i].value + '|'; } - + return $result.length ? '|' + $result : ''; } - + function selected_to_string($aSelect) { var $result = ''; var $cur = null; - + if (typeof($aSelect) != 'object') $aSelect = document.getElementById($aSelect); - + for (var $i = 0; $i < $aSelect.length; $i++) { $cur = $aSelect.options[$i]; @@ -576,10 +580,10 @@ $result += $cur.value + '|'; } } - + return $result.length ? '|' + $result : ''; } - + function string_to_selected($str, $aSelect) { var $cur = null; @@ -589,11 +593,11 @@ $aSelect.options[$i].selected = $str.match(',' + $cur.value + ',') ? true : false; } } - + function set_selected($selected_options, $aSelect) { if (!$selected_options.length) return false; - + for (var $i = 0; $i < $aSelect.length; $i++) { for (var $k = 0; $k < $selected_options.length; $k++) @@ -605,7 +609,7 @@ } } } - + function get_selected_count($theList) { var $count = 0; @@ -617,7 +621,7 @@ } return $count; } - + function get_selected_index($aSelect, $typeIndex) { var $index = 0; @@ -631,38 +635,38 @@ } return $index; } - + function has_selected_options($theList) { var $ret = false; var $cur = null; - + for (var $i = 0; $i < $theList.length; $i++) { $cur = $theList.options[$i]; if ($cur.selected) $ret = true; } return $ret; } - + function select_sort($aSelect) { if (typeof($aSelect) != 'object') $aSelect = document.getElementById($aSelect); - + var $to_array = select_to_array($aSelect); $to_array.sort(select_compare); array_to_select($to_array, $aSelect); } - + function move_options_up($aSelect, $interval) { if (typeof($aSelect) != 'object') $aSelect = document.getElementById($aSelect); - + if (has_selected_options($aSelect)) { var $selected_options = Array(); var $first_selected = get_selected_index($aSelect, 'firstSelected'); - + for (var $i = 0; $i < $aSelect.length; $i++) { if ($aSelect.options[$i].selected && ($first_selected > 0) ) @@ -672,27 +676,27 @@ } else if ($first_selected == 0) { - alert('Begin of list'); + //alert('Begin of list'); break; - } + } } set_selected($selected_options, $aSelect); } else { - alert('Check items from moving'); + //alert('Check items from moving'); } } - + function move_options_down($aSelect, $interval) { if (typeof($aSelect) != 'object') $aSelect = document.getElementById($aSelect); - + if (has_selected_options($aSelect)) { var $last_selected = get_selected_index($aSelect, 'lastSelected'); var $selected_options = Array(); - + for (var $i = $aSelect.length - 1; $i >= 0; $i--) { if ($aSelect.options[$i].selected && ($aSelect.length - ($last_selected + 1) > 0)) @@ -702,23 +706,23 @@ } else if ($last_selected + 1 == $aSelect.length) { - alert('End of list'); + //alert('End of list'); break; } } set_selected($selected_options, $aSelect); } else { - alert('Check items from moving'); + //alert('Check items from moving'); } } - + function swap_options($aSelect, $src_num, $dst_num) { var $src_option = new Option($aSelect.options[$src_num].innerHTML, $aSelect.options[$src_num].value); var $dst_option = new Option($aSelect.options[$dst_num].innerHTML, $aSelect.options[$dst_num].value); - + $aSelect.options[$src_num] = $dst_option; $aSelect.options[$dst_num] = $src_option; } \ No newline at end of file Index: trunk/core/kernel/utility/http_query.php =================================================================== diff -u -N -r3441 -r3559 --- trunk/core/kernel/utility/http_query.php (.../http_query.php) (revision 3441) +++ trunk/core/kernel/utility/http_query.php (.../http_query.php) (revision 3559) @@ -345,7 +345,6 @@ $this->Application->VerifyLanguageId(); - $this->Application->Phrases->Init('phrases'); // $this->Get('m_lang') ); // match theme @@ -472,6 +471,8 @@ $this->Set('t', $this->getDefaultTemplate($template_found ? $template_path : '') ); // pass params left to module + $this->Application->Phrases->Init('phrases'); + $passed = Array('m'); $module_params = Array(); Index: trunk/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r3543 -r3559 --- trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 3543) +++ trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 3559) @@ -146,7 +146,7 @@ { $this->Application->Debugger->appendTrace(); }*/ - + trigger_error('Requested ID for prefix '.$event->getPrefixSpecial().' not passed',E_USER_NOTICE); } $this->Application->SetVar($event->getPrefixSpecial(true).'_id', $first_id); @@ -417,13 +417,32 @@ } } + /*$per_page = $event->getEventParam('per_page'); + if ($per_page == 'list_next') { + + $cur_page = $page; + $cur_per_page = $per_page; + + $object->SetPerPage(1); + + $object =& $this->Application->recallObject($event->Prefix); + $cur_item_index = $object->CurrentIndex; + + $page = ($cur_page-1) * $cur_per_page + $cur_item_index + 1; + $object->SetPerPage(1); + }*/ + $object->SetPage($page); } function getPerPage(&$event) { $per_page = $event->getEventParam('per_page'); + /* if ($per_page == 'list_next') { + $per_page = ''; + }*/ + $config_mapping = $this->Application->getUnitOption($event->Prefix, 'ConfigMapping'); if ( $config_mapping ) { Index: trunk/kernel/admin_templates/incs/grid_blocks.tpl =================================================================== diff -u -N -r3299 -r3559 --- trunk/kernel/admin_templates/incs/grid_blocks.tpl (.../grid_blocks.tpl) (revision 3299) +++ trunk/kernel/admin_templates/incs/grid_blocks.tpl (.../grid_blocks.tpl) (revision 3559) @@ -30,7 +30,7 @@ - + @@ -236,7 +236,7 @@ - + Index: trunk/core/kernel/event_manager.php =================================================================== diff -u -N -r3543 -r3559 --- trunk/core/kernel/event_manager.php (.../event_manager.php) (revision 3543) +++ trunk/core/kernel/event_manager.php (.../event_manager.php) (revision 3559) @@ -145,7 +145,7 @@ trigger_error('Prefix '.$event->Prefix.' not registred (requested event '.$event->Name.')', E_USER_NOTICE); return false; } - + if (!$event->SkipBeforeHooks) { $this->processHooks($event, hBEFORE); if ($event->status == erFATAL) return true; @@ -161,7 +161,7 @@ return true; } - + function ProcessRequest() { $this->processOpener(); @@ -246,10 +246,16 @@ array_pop($opener_stack); break; + case 'p': //pop-up - do not store last template + $this->Application->SetVar('skip_last_template', 1); + break; + default: // "s/0," stay on same deep level break; } - $this->Application->SetVar('m_opener','s'); + if ( !$this->Application->GetVar('skip_last_template') ) { + $this->Application->SetVar('m_opener','s'); + } $this->Application->StoreVar('opener_stack',serialize($opener_stack)); } Index: trunk/core/units/general/main_event_handler.php =================================================================== diff -u -N -r3344 -r3559 --- trunk/core/units/general/main_event_handler.php (.../main_event_handler.php) (revision 3344) +++ trunk/core/units/general/main_event_handler.php (.../main_event_handler.php) (revision 3559) @@ -1,16 +1,16 @@ 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) { @@ -52,29 +55,35 @@ $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 ) { - $ret = $this->Conn->GetOne('SELECT PackName + 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 ) { - $ret .= $this->Conn->GetOne('SELECT Name - FROM '.TABLE_PREFIX.'Theme - WHERE ThemeId = '.$processed_params['m_theme']).'/'; + 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')) { @@ -85,14 +94,14 @@ $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) ); } Index: trunk/core/units/stylesheets/stylesheets_item.php =================================================================== diff -u -N -r3282 -r3559 --- trunk/core/units/stylesheets/stylesheets_item.php (.../stylesheets_item.php) (revision 3282) +++ trunk/core/units/stylesheets/stylesheets_item.php (.../stylesheets_item.php) (revision 3559) @@ -1,14 +1,14 @@ Application->setUnitOption('selectors', 'AutoLoad', false); $selector_item =& $this->Application->recallObject('selectors.item', 'selectors', Array('live_table'=>true) ); $parent_field = $this->Application->getUnitOption($selector_item->Prefix, 'ForeignKey'); - $sql_template = 'SELECT '.$selector_item->IDField.' FROM '.$selector_item->TableName.' WHERE '.$parent_field.' = %s'; + $sql_template = 'SELECT '.$selector_item->IDField.' FROM '.$selector_item->TableName.' WHERE '.$parent_field.' = %s ORDER BY SelectorName ASC'; $selectors_ids = $this->Conn->GetCol( sprintf($sql_template, $this->GetID() ) ); $ret = '/* This file is generated automatically. Don\'t edit it manually ! */'."\n\n"; Index: trunk/kernel/units/general/main_event_handler.php =================================================================== diff -u -N -r3344 -r3559 --- trunk/kernel/units/general/main_event_handler.php (.../main_event_handler.php) (revision 3344) +++ trunk/kernel/units/general/main_event_handler.php (.../main_event_handler.php) (revision 3559) @@ -1,16 +1,16 @@ 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) { @@ -52,29 +55,35 @@ $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 ) { - $ret = $this->Conn->GetOne('SELECT PackName + 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 ) { - $ret .= $this->Conn->GetOne('SELECT Name - FROM '.TABLE_PREFIX.'Theme - WHERE ThemeId = '.$processed_params['m_theme']).'/'; + 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')) { @@ -85,14 +94,14 @@ $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) ); } Index: trunk/kernel/units/stylesheets/stylesheets_item.php =================================================================== diff -u -N -r3282 -r3559 --- trunk/kernel/units/stylesheets/stylesheets_item.php (.../stylesheets_item.php) (revision 3282) +++ trunk/kernel/units/stylesheets/stylesheets_item.php (.../stylesheets_item.php) (revision 3559) @@ -1,14 +1,14 @@ Application->setUnitOption('selectors', 'AutoLoad', false); $selector_item =& $this->Application->recallObject('selectors.item', 'selectors', Array('live_table'=>true) ); $parent_field = $this->Application->getUnitOption($selector_item->Prefix, 'ForeignKey'); - $sql_template = 'SELECT '.$selector_item->IDField.' FROM '.$selector_item->TableName.' WHERE '.$parent_field.' = %s'; + $sql_template = 'SELECT '.$selector_item->IDField.' FROM '.$selector_item->TableName.' WHERE '.$parent_field.' = %s ORDER BY SelectorName ASC'; $selectors_ids = $this->Conn->GetCol( sprintf($sql_template, $this->GetID() ) ); $ret = '/* This file is generated automatically. Don\'t edit it manually ! */'."\n\n";