/** * @brief delete all notifications with the given class id * @param $uid user id * @param $class class id or array with multiple class ids */ public static function deleteByClassId($uid = null, $class) { if (is_null($uid)) { if (OCP\User::isLoggedIn()) { $uid = OCP\User::getUser(); } else { return 0; } } if (!isset(self::$deleteParamsByClassIdStmt)) { self::$deleteParamsByClassIdStmt = OCP\DB::prepare("DELETE FROM *PREFIX*notification_params WHERE nid IN (SELECT id FROM *PREFIX*notifications WHERE class = ? AND uid = ?)"); } if (!isset(self::$deleteByClassIdStmt)) { self::$deleteByClassIdStmt = OCP\DB::prepare("DELETE FROM *PREFIX*notifications WHERE class = ? AND uid = ?"); } if (!is_array($class)) { if ($class === false) { return 0; } $class = array($class); } $return = 0; foreach ($class as $c) { self::$deleteParamsByClassIdStmt->execute(array($c, $uid)); self::$deleteByClassIdStmt->execute(array($c, $uid)); $return += self::$deleteByClassIdStmt->numRows(); } return $return; }