Page MenuHomeIn-Portal Phabricator

D517.diff
No OneTemporary

File Metadata

Created
Sat, Apr 19, 9:24 PM

D517.diff

Index: branches/5.2.x/core/kernel/db/db_event_handler.php
===================================================================
--- branches/5.2.x/core/kernel/db/db_event_handler.php
+++ branches/5.2.x/core/kernel/db/db_event_handler.php
@@ -1731,31 +1731,29 @@
}
/**
- * Delete's kDBItem object
+ * Deletes kDBItem object.
+ *
+ * @param kEvent $event Event.
*
- * @param kEvent $event
* @return void
- * @access protected
*/
protected function OnDelete(kEvent $event)
{
if ( $this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1) ) {
$event->status = kEvent::erFAIL;
+
return;
}
- /** @var kTempTablesHandler $temp_handler */
- $temp_handler = $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => $event));
-
- $temp_handler->DeleteItems($event->Prefix, $event->Special, Array ($this->getPassedID($event)));
+ $this->deleteByIds($event, array($this->getPassedID($event)));
}
/**
- * Deletes all records from table
+ * Deletes all records from the table.
+ *
+ * @param kEvent $event Event.
*
- * @param kEvent $event
* @return void
- * @access protected
*/
protected function OnDeleteAll(kEvent $event)
{
@@ -1763,12 +1761,7 @@
FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName');
$ids = $this->Conn->GetCol($sql);
- if ( $ids ) {
- /** @var kTempTablesHandler $temp_handler */
- $temp_handler = $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => $event));
-
- $temp_handler->DeleteItems($event->Prefix, $event->Special, $ids);
- }
+ $this->deleteByIds($event, $ids);
}
/**
@@ -1839,34 +1832,54 @@
/**
* Deletes all selected items.
- * Automatically recurse into sub-items using temp handler, and deletes sub-items
- * by calling its Delete method if sub-item has AutoDelete set to true in its config file
*
- * @param kEvent $event
+ * Automatically recurses into subitems using a temp handler and deletes subitems
+ * by calling its Delete method if subitem has AutoDelete set to true in its config file.
+ *
+ * @param kEvent $event Event.
+ *
* @return void
- * @access protected
*/
protected function OnMassDelete(kEvent $event)
{
if ( $this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1) ) {
$event->status = kEvent::erFAIL;
- return ;
- }
- /** @var kTempTablesHandler $temp_handler */
- $temp_handler = $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => $event));
+ return;
+ }
$ids = $this->StoreSelectedIDs($event);
+ $this->clearSelectedIDs($event);
+ $this->deleteByIds($event, $ids);
+ }
+
+ /**
+ * Deletes records by given IDs
+ *
+ * @param kEvent $event Event.
+ * @param array $ids Record IDs.
+ *
+ * @return void
+ */
+ protected function deleteByIds(kEvent $event, array $ids)
+ {
$event->setEventParam('ids', $ids);
$this->customProcessing($event, 'before');
$ids = $event->getEventParam('ids');
- if ( $ids ) {
- $temp_handler->DeleteItems($event->Prefix, $event->Special, $ids);
+ if ( !$ids ) {
+ return;
}
- $this->clearSelectedIDs($event);
+ /** @var kTempTablesHandler $temp_handler */
+ $temp_handler = $this->Application->recallObject(
+ $event->getPrefixSpecial() . '_TempHandler',
+ 'kTempTablesHandler',
+ array('parent_event' => $event)
+ );
+
+ $temp_handler->DeleteItems($event->Prefix, $event->Special, $ids);
}
/**

Event Timeline