Index: branches/5.2.x/units/products/products_event_handler.php =================================================================== diff -u -N -r14908 -r14986 --- branches/5.2.x/units/products/products_event_handler.php (.../products_event_handler.php) (revision 14908) +++ branches/5.2.x/units/products/products_event_handler.php (.../products_event_handler.php) (revision 14986) @@ -1,6 +1,6 @@ Array('self' => true), - 'OnRateProduct' => Array('self' => true), - 'OnClearRecent' => Array('self' => true), - 'OnRecommendProduct' => Array('self' => true), - 'OnAddToCompare' => Array('self' => true), - 'OnRemoveFromCompare' => Array('self' => true), - 'OnCancelCompare' => Array('self' => true), + // front + 'OnCancelAction' => Array('self' => true), + 'OnRateProduct' => Array('self' => true), + 'OnClearRecent' => Array('self' => true), + 'OnRecommendProduct' => Array('self' => true), + 'OnAddToCompare' => Array('self' => true), + 'OnRemoveFromCompare' => Array('self' => true), + 'OnCancelCompare' => Array('self' => true), - // admin - 'OnQtyAdd' => Array('self' => 'add|edit'), - 'OnQtyRemove' => Array('self' => 'add|edit'), - 'OnQtyOrder' => Array('self' => 'add|edit'), - 'OnQtyReceiveOrder' => Array('self' => 'add|edit'), - 'OnQtyCancelOrder' => Array('self' => 'add|edit'), + // admin + 'OnQtyAdd' => Array('self' => 'add|edit'), + 'OnQtyRemove' => Array('self' => 'add|edit'), + 'OnQtyOrder' => Array('self' => 'add|edit'), + 'OnQtyReceiveOrder' => Array('self' => 'add|edit'), + 'OnQtyCancelOrder' => Array('self' => 'add|edit'), + ); - ); $this->permMapping = array_merge($this->permMapping, $permissions); } - function mapEvents() + /** + * Define alternative event processing method names + * + * @return void + * @see kEventHandler::$eventMethods + * @access protected + */ + protected function mapEvents() { parent::mapEvents(); // ensure auto-adding of approve/decine and so on events - $product_events = Array( 'OnQtyAdd'=>'InventoryAction', - 'OnQtyRemove'=>'InventoryAction', - 'OnQtyOrder'=>'InventoryAction', - 'OnQtyReceiveOrder'=>'InventoryAction', - 'OnQtyCancelOrder'=>'InventoryAction',); + $product_events = Array ( + 'OnQtyAdd'=>'InventoryAction', + 'OnQtyRemove'=>'InventoryAction', + 'OnQtyOrder'=>'InventoryAction', + 'OnQtyReceiveOrder'=>'InventoryAction', + 'OnQtyCancelOrder'=>'InventoryAction', + ); + $this->eventMethods = array_merge($this->eventMethods, $product_events); } @@ -325,9 +339,18 @@ $temp->Update(); } - function clearSelectedIDs(&$event) + /** + * Removes any information about current/selected ids + * from Application variables and Session + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function clearSelectedIDs(kEvent &$event) { parent::clearSelectedIDs($event); + $this->Application->SetVar('inventory_actions', $this->Application->RecallVar('inventory_actions')); $this->Application->RemoveVar('inventory_actions'); } @@ -377,25 +400,32 @@ $event->CallSubEvent('OnPreSave'); $this->LoadItem($event); + $object =& $event->getObject(); + /* @var $object kDBItem */ + $from_type = $object->GetDBField('Type'); - if ($event->status==kEvent::erSUCCESS) { - $this->Application->SetVar($event->getPrefixSpecial().'_id', $this->Application->GetVar($event->getPrefixSpecial(true).'_GoId')); + if ( $event->status == kEvent::erSUCCESS ) { + $this->Application->SetVar($event->getPrefixSpecial() . '_id', $this->Application->GetVar($event->getPrefixSpecial(true) . '_GoId')); $this->LoadItem($event); $to_type = $object->GetDBField('Type'); - if ($from_type != $to_type) { + if ( $from_type != $to_type ) { $from_tabs = $this->GetTabs($from_type); $from_tab_i = array_search($this->Application->GetVar('t'), $from_tabs); $to_tabs = $this->GetTabs($to_type); $to_tab = $this->Application->GetVar('t'); $found = false; - while ( !isset($to_tabs[$from_tab_i]) && $from_tab_i < count($to_tabs)) { + while (!isset($to_tabs[$from_tab_i]) && $from_tab_i < count($to_tabs)) { $from_tab_i++; } - if ( !isset($to_tabs[$from_tab_i]) ) $from_tab_i = 0; + + if ( !isset($to_tabs[$from_tab_i]) ) { + $from_tab_i = 0; + } + $to_tab = $to_tabs[$from_tab_i]; $event->redirect = $to_tab; @@ -823,12 +853,14 @@ */ function OnDeleteListingType(&$event) { - $listing_type = $event->MasterEvent->getObject(); + $listing_type =& $event->MasterEvent->getObject(); + /* @var $listing_type kDBItem */ + $product_id = $listing_type->GetDBField('VirtualProductId'); - if ($product_id) { - $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); - $temp_handler->DeleteItems($event->Prefix, $event->Special, Array($product_id)); + if ( $product_id ) { + $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler'); + $temp_handler->DeleteItems($event->Prefix, $event->Special, Array ($product_id)); } } @@ -1303,7 +1335,9 @@ parent::setCustomExportColumns($event); $object =& $event->getObject(); - $this->setPrimaryPrice($object->GetID(), (double)$object->GetDBField('Price'), Array('Cost' => (double)$object->GetDBField('Cost')) ); + /* @var $object kDBItem */ + + $this->setPrimaryPrice($object->GetID(), (double)$object->GetDBField('Price'), Array ('Cost' => (double)$object->GetDBField('Cost'))); } function OnPreSaveAndOpenPopup(&$event) @@ -1321,20 +1355,32 @@ } - function getPassedID(&$event) + /** + * Returns ID of current item to be edited + * by checking ID passed in get/post as prefix_id + * or by looking at first from selected ids, stored. + * Returned id is also stored in Session in case + * it was explicitly passed as get/post + * + * @param kEvent $event + * @return int + * @access public + */ + public function getPassedID(kEvent &$event) { $event->setEventParam('raise_warnings', 0); $passed = parent::getPassedID($event); - if ($passed) { + if ( $passed ) { return $passed; } - if ($this->Application->isAdminUser) { + if ( $this->Application->isAdminUser ) { // we may get product id out of OrderItem, if it exists $ord_item =& $this->Application->recallObject('orditems', null, Array ('raise_warnings' => 0)); + /* @var $ord_item OrdersItem */ - if ($ord_item->GetDBField('ProductId')) { + if ( $ord_item->GetDBField('ProductId') ) { $passed = $ord_item->GetDBField('ProductId'); } }