예제 #1
0
 /**
  * @brief get the class id of a given app/class name pair or all class ids of the given app
  * @param $app app id
  * @param $class class name defined in the app's info.xml or null to fetch all class IDs of the given app
  * @return id, array or false, if the class doesn't exist
  */
 private static function getClassId($app, $class = null)
 {
     $return = array();
     if ($class == null) {
         // get all classes of $app
         if (!isset(self::$classIdsStmt)) {
             self::$classIdsStmt = OCP\DB::prepare("SELECT id FROM *PREFIX*notification_classes WHERE appid = ?");
         }
         $result = self::$classIdsStmt->execute(array($app));
         while (($row = $result->fetchOne()) !== false) {
             $return[] = (int) $row;
         }
     } else {
         if (!isset(self::$classIdStmt)) {
             self::$classIdStmt = OCP\DB::prepare("SELECT id FROM *PREFIX*notification_classes WHERE appid = ? AND name = ?");
         }
         $result = self::$classIdStmt->execute(array($app, $class));
         if (($row = $result->fetchOne()) !== false) {
             $return = (int) $row;
         }
     }
     if (!count($return)) {
         return self::parseAppNotifications($app, $class);
     }
     return $return;
 }