Page MenuHomeIn-Portal Phabricator

D517.id1329.diff
No OneTemporary

File Metadata

Created
Sat, Jun 28, 7:18 PM

D517.id1329.diff

Index: core/kernel/db/db_event_handler.php
===================================================================
--- core/kernel/db/db_event_handler.php
+++ core/kernel/db/db_event_handler.php
@@ -1744,10 +1744,7 @@
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)));
}
/**
@@ -1761,14 +1758,36 @@
{
$sql = 'SELECT ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . '
FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName');
- $ids = $this->Conn->GetCol($sql);
+ $this->deleteByIds($event, $this->Conn->GetCol($sql));
+ }
- if ( $ids ) {
- /** @var kTempTablesHandler $temp_handler */
- $temp_handler = $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => $event));
+ /**
+ * Deletes records having given IDs
+ *
+ * @param kEvent $event Event.
+ * @param array $ids Record IDs.
+ *
+ * @return void
+ * @access protected
+ */
+ protected function deleteByIds(kEvent $event, array $ids)
+ {
+ $event->setEventParam('ids', $ids);
+ $this->customProcessing($event, 'before');
+ $ids = $event->getEventParam('ids');
- $temp_handler->DeleteItems($event->Prefix, $event->Special, $ids);
+ if ( !$ids ) {
+ 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, $ids);
}
/**
@@ -1853,20 +1872,9 @@
return ;
}
- /** @var kTempTablesHandler $temp_handler */
- $temp_handler = $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler', Array ('parent_event' => $event));
-
$ids = $this->StoreSelectedIDs($event);
-
- $event->setEventParam('ids', $ids);
- $this->customProcessing($event, 'before');
- $ids = $event->getEventParam('ids');
-
- if ( $ids ) {
- $temp_handler->DeleteItems($event->Prefix, $event->Special, $ids);
- }
-
$this->clearSelectedIDs($event);
+ $this->deleteByIds($event, $ids);
}
/**

Event Timeline