Index: branches/unlabeled/unlabeled-1.14.2/kernel/units/general/cat_dbitem_export.php =================================================================== diff -u -N -r4039 -r4066 --- branches/unlabeled/unlabeled-1.14.2/kernel/units/general/cat_dbitem_export.php (.../cat_dbitem_export.php) (revision 4039) +++ branches/unlabeled/unlabeled-1.14.2/kernel/units/general/cat_dbitem_export.php (.../cat_dbitem_export.php) (revision 4066) @@ -603,12 +603,15 @@ $field_name = substr($field_name, 7); $this->customValues[$field_name] = $value; } - elseif ($field_name == 'CategoryPath') { + elseif ($field_name == 'CategoryPath' || $field_name == '__CATEGORY__CategoryPath') { $this->curItem->CategoryPath = $value ? explode($this->exportOptions['CategorySeparator'], $value) : Array(); } elseif (substr($field_name, 0, 8) == 'Category') { $this->curItem->CategoryPath[ (int)substr($field_name, 8) ] = $value; } + elseif (substr($field_name, 0, 20) == '__CATEGORY__Category') { + $this->curItem->CategoryPath[ (int)substr($field_name, 20) ] = $value; + } elseif (substr($field_name, 0, 11) == '__VIRTUAL__') { $field_name = substr($field_name, 11); $this->curItem->SetField($field_name, $value); Index: branches/unlabeled/unlabeled-1.14.2/core/units/general/cat_dbitem_export.php =================================================================== diff -u -N -r4039 -r4066 --- branches/unlabeled/unlabeled-1.14.2/core/units/general/cat_dbitem_export.php (.../cat_dbitem_export.php) (revision 4039) +++ branches/unlabeled/unlabeled-1.14.2/core/units/general/cat_dbitem_export.php (.../cat_dbitem_export.php) (revision 4066) @@ -603,12 +603,15 @@ $field_name = substr($field_name, 7); $this->customValues[$field_name] = $value; } - elseif ($field_name == 'CategoryPath') { + elseif ($field_name == 'CategoryPath' || $field_name == '__CATEGORY__CategoryPath') { $this->curItem->CategoryPath = $value ? explode($this->exportOptions['CategorySeparator'], $value) : Array(); } elseif (substr($field_name, 0, 8) == 'Category') { $this->curItem->CategoryPath[ (int)substr($field_name, 8) ] = $value; } + elseif (substr($field_name, 0, 20) == '__CATEGORY__Category') { + $this->curItem->CategoryPath[ (int)substr($field_name, 20) ] = $value; + } elseif (substr($field_name, 0, 11) == '__VIRTUAL__') { $field_name = substr($field_name, 11); $this->curItem->SetField($field_name, $value); Index: branches/unlabeled/unlabeled-1.10.2/admin/head.php =================================================================== diff -u -N -r3962 -r4066 --- branches/unlabeled/unlabeled-1.10.2/admin/head.php (.../head.php) (revision 3962) +++ branches/unlabeled/unlabeled-1.10.2/admin/head.php (.../head.php) (revision 4066) @@ -132,7 +132,7 @@ $http_request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); $http_request.send(null); - setTimeout('checkServer()', 5 * 60000); // one time in 5 minutes + setTimeout('checkServer()', 20 * 60000); // one time in 20 minutes } checkServer(); Index: branches/unlabeled/unlabeled-1.35.2/kernel/units/general/cat_event_handler.php =================================================================== diff -u -N -r4039 -r4066 --- branches/unlabeled/unlabeled-1.35.2/kernel/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 4039) +++ branches/unlabeled/unlabeled-1.35.2/kernel/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 4066) @@ -1371,6 +1371,7 @@ if (!$items_info) { $items_info = unserialize( $this->Application->RecallVar($event->getPrefixSpecial().'_ItemsInfo') ); + $this->Application->SetVar($event->getPrefixSpecial(true), $items_info); } list($item_id, $field_values) = each($items_info); Index: branches/unlabeled/unlabeled-1.35.2/core/units/general/cat_event_handler.php =================================================================== diff -u -N -r4039 -r4066 --- branches/unlabeled/unlabeled-1.35.2/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 4039) +++ branches/unlabeled/unlabeled-1.35.2/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 4066) @@ -1371,6 +1371,7 @@ if (!$items_info) { $items_info = unserialize( $this->Application->RecallVar($event->getPrefixSpecial().'_ItemsInfo') ); + $this->Application->SetVar($event->getPrefixSpecial(true), $items_info); } list($item_id, $field_values) = each($items_info); Index: branches/unlabeled/unlabeled-1.11.10/kernel/admin_templates/incs/script.js =================================================================== diff -u -N -r4039 -r4066 --- branches/unlabeled/unlabeled-1.11.10/kernel/admin_templates/incs/script.js (.../script.js) (revision 4039) +++ branches/unlabeled/unlabeled-1.11.10/kernel/admin_templates/incs/script.js (.../script.js) (revision 4066) @@ -10,8 +10,64 @@ var $env = ''; var submitted = false; var $init_made = true; // in case of double inclusion of script.js :) + + // hook processing + const hBEFORE = 1; + const hAFTER = 2; + var $hooks = new Array(); } +function getArrayValue() +{ + var $value = arguments[0]; + var $current_key = 0; + $i = 1; + while ($i < arguments.length) { + $current_key = arguments[$i]; + if (isset($value[$current_key])) { + $value = $value[$current_key]; + } + else { + return false; + } + $i++; + } + return $value; +} + +function setArrayValue() +{ + // first argument - array, other arguments - keys (arrays too), last argument - value + var $array = arguments[0]; + var $current_key = 0; + $i = 1; + while ($i < arguments.length - 1) { + $current_key = arguments[$i]; + if (!isset($array[$current_key])) { + $array[$current_key] = new Array(); + } + $array = $array[$current_key]; + $i++; + } + $array[$array.length] = arguments[arguments.length - 1]; +} + +function processHooks($function_name, $hook_type) +{ + var $i = 0; + var $local_hooks = getArrayValue($hooks, $function_name, $hook_type); + + while($i < $local_hooks.length) { + $local_hooks[$i]($function_name); + $i++; + } +} + +function registerHook($function_name, $hook_type, $hook_body) +{ + setArrayValue($hooks, $function_name, $hook_type, $hook_body); +} + function resort_grid(prefix_special,field,form_action) { set_hidden_field(prefix_special+'_Sort1', field); @@ -254,7 +310,7 @@ if(!isset($width)) $width=750; if(!isset($height)) $height=400; if(!isset($event)) $event=''; - + processHooks('openSelector', hBEFORE); cur_opener = get_hidden_field('m_opener'); set_hidden_field('m_opener','p'); @@ -264,6 +320,7 @@ var old_action = document.kernel_form.action; document.kernel_form.action = $url; submit_event($prefix,$event,$t); + processHooks('openSelector', hAFTER); document.kernel_form.action = old_action; set_hidden_field('m_opener',cur_opener); }