Example #1
0
 /**
  * @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;
 }