/** * Method used to remove all issues associated with a specific list of * projects. * * XXX: this is dangerous, maybe remove such methods? * * @param array $ids The list of projects to look for * @return boolean */ public static function removeByProjects($ids) { $stmt = 'SELECT iss_id FROM {{%issue}} WHERE iss_prj_id IN (' . DB_Helper::buildList($ids) . ')'; try { $res = DB_Helper::getInstance()->getColumn($stmt, $ids); } catch (DbException $e) { return false; } if (count($res) > 0) { self::deleteAssociations($res); Attachment::removeByIssues($res); SCM::removeByIssues($res); Impact_Analysis::removeByIssues($res); self::deleteUserAssociations($res); Note::removeByIssues($res); Time_Tracking::removeTimeEntriesByIssues($res); Notification::removeByIssues($res); Custom_Field::removeByIssues($res); Phone_Support::removeByIssues($res); History::removeByIssues($res); // now really delete the issues $items = implode(', ', $res); $stmt = "DELETE FROM\n {{%issue}}\n WHERE\n iss_id IN ({$items})"; DB_Helper::getInstance()->query($stmt); } return true; }