Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F847983
D517.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Apr 19, 9:24 PM
Size
3 KB
Mime Type
text/x-diff
Expires
Sun, Apr 20, 9:24 PM (1 h, 5 m)
Engine
blob
Format
Raw Data
Handle
602757
Attached To
D517: INP-1906 Execute "customProcessing" method in the "OnDelete" and "OnDeleteAll" events
D517.diff
View Options
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
Log In to Comment