Index: branches/5.2.x/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r14646 -r14657 --- branches/5.2.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 14646) +++ branches/5.2.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 14657) @@ -1,6 +1,6 @@ Application->getUnitOption($event->Prefix,'StatusField'); - if (!$status_fields) { + $status_fields = $this->Application->getUnitOption($event->Prefix, 'StatusField'); + if ( !$status_fields ) { return true; } $status_field = array_shift($status_fields); - if ($status_field == 'Status' || $status_field == 'Enabled') { + + if ( $status_field == 'Status' || $status_field == 'Enabled' ) { $object =& $event->getObject(); - if (!$object->isLoaded()) { + /* @var $object kDBItem */ + + if ( !$object->isLoaded() ) { return true; } return $object->GetDBField($status_field) == STATUS_ACTIVE; } + return true; } @@ -594,6 +598,12 @@ $object =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); /* @var $object kTempTablesHandler */ + $parent_event = $event->getEventParam('parent_event'); + + if ( is_object($parent_event) ) { + $object->setParentEvent($parent_event); + } + $object->BuildTables( $event->Prefix, $this->getSelectedIDs($event) ); } @@ -1459,10 +1469,10 @@ return; } - $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); - /* @var $temp kTempTablesHandler */ + $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler', Array ('parent_event' => &$event)); + /* @var $temp_handler kTempTablesHandler */ - $temp->DeleteItems($event->Prefix, $event->Special, Array($this->getPassedID($event))); + $temp_handler->DeleteItems($event->Prefix, $event->Special, Array ($this->getPassedID($event))); } /** @@ -1477,7 +1487,7 @@ $ids = $this->Conn->GetCol($sql); if ($ids) { - $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler'); + $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => &$event)); /* @var $temp_handler kTempTablesHandler */ $temp_handler->DeleteItems($event->Prefix, $event->Special, $ids); @@ -1528,7 +1538,7 @@ if ( $items_info ) { $delete_ids = Array (); - $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler'); + $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => &$event)); /* @var $temp_handler kTempTablesHandler */ foreach ($items_info as $id => $field_values) { @@ -1563,7 +1573,7 @@ return ; } - $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler'); + $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => &$event)); /* @var $temp_handler kTempTablesHandler */ $ids = $this->StoreSelectedIDs($event); @@ -1615,10 +1625,10 @@ $changes_var_name = $this->Prefix . '_changes_' . $this->Application->GetTopmostWid($this->Prefix); $this->Application->RemoveVar($changes_var_name); - $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); - /* @var $temp kTempTablesHandler */ + $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler', Array ('parent_event' => &$event)); + /* @var $temp_handler kTempTablesHandler */ - $temp->PrepareEdit(); + $temp_handler->PrepareEdit(); $event->SetRedirectParam('m_lang', $this->Application->GetDefaultLanguageId()); $event->SetRedirectParam($event->getPrefixSpecial() . '_id', array_shift($ids)); @@ -1642,7 +1652,7 @@ } $skip_master = false; - $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler'); + $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => &$event)); /* @var $temp_handler kTempTablesHandler */ $changes_var_name = $this->Prefix . '_changes_' . $this->Application->GetTopmostWid($this->Prefix); @@ -1780,7 +1790,7 @@ */ protected function OnCancelEdit(&$event) { - $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler'); + $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => &$event)); /* @var $temp_handler kTempTablesHandler */ $temp_handler->CancelEdit(); @@ -1942,7 +1952,7 @@ $object =& $event->getObject( Array ('skip_autoload' => true) ); /* @var $object kDBItem */ - $temp_handler =& $this->Application->recallObject($event->Prefix . '_TempHandler', 'kTempTablesHandler'); + $temp_handler =& $this->Application->recallObject($event->Prefix . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => &$event)); /* @var $temp_handler kTempTablesHandler */ $temp_handler->PrepareEdit(); @@ -2079,7 +2089,7 @@ return ; } - $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler'); + $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => &$event)); /* @var $temp_handler kTempTablesHandler */ $ids = $this->StoreSelectedIDs($event); @@ -2234,8 +2244,10 @@ * Occurs before validation attempt * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemValidate(&$event) + protected function OnBeforeItemValidate(kEvent &$event) { }