['status' => ACTION_STATUS_DISABLED], 'where' => ['actionid' => array_keys($actionids)] ]); // Delete action conditions. DB::delete('conditions', ['conditionid' => $conditionids]); } // Remove trigger sysmap elements. $selement_triggerids = []; $selementids = []; $db_selement_triggers = DBselect( 'SELECT st.selement_triggerid,st.selementid'. ' FROM sysmap_element_trigger st'. ' WHERE '.dbConditionInt('st.triggerid', $del_triggerids) ); while ($db_selement_trigger = DBfetch($db_selement_triggers)) { $selement_triggerids[] = $db_selement_trigger['selement_triggerid']; $selementids[$db_selement_trigger['selementid']] = true; } if ($selement_triggerids) { DB::delete('sysmap_element_trigger', ['selement_triggerid' => $selement_triggerids]); // Remove map elements without triggers. $db_selement_triggers = DBselect( 'SELECT DISTINCT st.selementid'. ' FROM sysmap_element_trigger st'. ' WHERE '.dbConditionInt('st.selementid', array_keys($selementids)) ); while ($db_selement_trigger = DBfetch($db_selement_triggers)) { unset($selementids[$db_selement_trigger['selementid']]); } if ($selementids) { DB::delete('sysmaps_elements', ['selementid' => array_keys($selementids)]); } } // Remove related events. $ins_housekeeper = []; foreach ($del_triggerids as $del_triggerid) { $ins_housekeeper[] = [ 'tablename' => 'events', 'field' => 'triggerid', 'value' => $del_triggerid ]; } DB::insertBatch('housekeeper', $ins_housekeeper); DB::delete('functions', ['triggerid' => $del_triggerids]); DB::delete('trigger_discovery', ['triggerid' => $del_triggerids]); DB::delete('trigger_depends', ['triggerid_down' => $del_triggerids]); DB::delete('trigger_depends', ['triggerid_up' => $del_triggerids]); DB::delete('trigger_tag', ['triggerid' => $del_triggerids]); DB::update('triggers', [ 'values' => ['templateid' => 0], 'where' => ['triggerid' => $del_triggerids] ]); DB::delete('triggers', ['triggerid' => $del_triggerids]); } }