Index: branches/unlabeled/unlabeled-1.64.2/core/units/general/cat_event_handler.php =================================================================== diff -u -r5802 -r5820 --- branches/unlabeled/unlabeled-1.64.2/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 5802) +++ branches/unlabeled/unlabeled-1.64.2/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 5820) @@ -1618,25 +1618,31 @@ $event->setEventParam('pass_events', true); } - if ($dst_field == 'ItemCategory') { - $object =& $event->getObject(); // category item object (e.g. link, product, etc.) + $this->finalizePopup($event); + } - $object->assignToCategory($category_id); - - /*$ci_prefix = $object->Prefix.'-ci'; - $ci_object =& $this->Application->recallObject($ci_prefix, null, Array('skip_autoload' => true)); - - $ci_object->Load($category_id); - if (!$ci_object->isLoaded()) { - $fields_hash = Array('CategoryId' => $category_id, 'ItemResourceId' => $object->GetDBField('ResourceId')); - $ci_object->SetDBFieldsFromHash($fields_hash); - $ci_object->Create(true); - }*/ + /** + * Process items selected in item_selector + * + * @param kEvent $event + */ + function OnProcessSelected(&$event) + { + $selected_ids = $this->Application->GetVar('selected_ids'); + + $dst_field = $this->Application->RecallVar('dst_field'); + + if ($dst_field == 'ItemCategory') { + $object =& $event->getObject(); + $category_ids = explode(',', $selected_ids['c']); + foreach ($category_ids as $category_id) { + $object->assignToCategory($category_id); + } } $this->finalizePopup($event); } - + /** * Saves Import/Export settings to session *