Index: branches/5.2.x/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r16746 -r16779 --- branches/5.2.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 16746) +++ branches/5.2.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 16779) @@ -1,6 +1,6 @@ Array ('self' => 'add|add.pending', 'subitem' => 'edit|edit.pending'), 'OnEdit' => Array ('self' => 'edit|edit.pending', 'subitem' => 'edit|edit.pending'), + 'OnDeleteExportPreset' => array('self' => 'view'), 'OnExport' => Array ('self' => 'view|advanced:export'), 'OnExportBegin' => Array ('self' => 'view|advanced:export'), 'OnExportProgress' => Array ('self' => 'view|advanced:export'), @@ -3082,38 +3083,22 @@ */ protected function OnDeleteExportPreset(kEvent $event) { - $field_values = $this->getSubmittedFields($event); + $delete_preset_name = $this->Application->GetVar('delete_preset_name'); - if ( !$field_values ) { - return ; + if ( !$delete_preset_name ) { + return; } - $preset_key = $field_values['ExportPresets']; - $export_settings = $this->Application->RecallPersistentVar('export_settings'); + $where_clause = array( + 'ItemPrefix = ' . $this->Conn->qstr($event->Prefix), + 'PortalUserId = ' . $this->Application->RecallVar('user_id'), + 'PresetName = ' . $this->Conn->qstr($delete_preset_name), + ); - if ( !$export_settings ) { - return ; - } - - $export_settings = unserialize($export_settings); - - if ( !isset($export_settings[$event->Prefix]) ) { - return ; - } - - $to_delete = ''; - - foreach ($export_settings[$event->Prefix] as $key => $val) { - if ( implode('|', $val['ExportColumns']) == $preset_key ) { - $to_delete = $key; - break; - } - } - - if ( $to_delete ) { - unset($export_settings[$event->Prefix][$to_delete]); - $this->Application->StorePersistentVar('export_settings', serialize($export_settings)); - } + $sql = 'DELETE + FROM ' . TABLE_PREFIX . 'ExportUserPresets + WHERE (' . implode(') AND (', $where_clause) . ')'; + $this->Conn->Query($sql); } /**