コード例 #1
0
ファイル: Drafts.classes.php プロジェクト: Tjorriemorrie/app
 /**
  * Gets a list of existing drafts for a specific user
  *
  * @param $title Object: [optional] Title of article, defaults to all articles
  * @param $userID Integer: [optional] ID of user, defaults to current user
  * @return List of drafts or null
  */
 public static function get($title = null, $userID = null)
 {
     global $wgUser;
     // Removes expired drafts for a more accurate list
     Drafts::clean();
     // Gets database connection
     $dbw = wfGetDB(DB_MASTER);
     // Builds where clause
     $where = array('draft_savetime > ' . $dbw->addQuotes($dbw->timestamp(self::getDraftAgeCutoff())));
     // Checks if specific title was given
     if ($title !== null) {
         // Get page id from title
         $pageId = $title->getArticleId();
         // Checks if page id exists
         if ($pageId) {
             // Adds specific page id to conditions
             $where['draft_page'] = $pageId;
         } else {
             // Adds new page information to conditions
             $where['draft_namespace'] = $title->getNamespace();
             $where['draft_title'] = $title->getDBkey();
         }
     }
     // Checks if a specific user was given
     if ($userID !== null) {
         // Adds specific user to conditions
         $where['draft_user'] = $userID;
     } else {
         // Adds current user to conditions
         $where['draft_user'] = $wgUser->getID();
     }
     // Gets matching drafts from database
     $result = $dbw->select('drafts', '*', $where, __METHOD__);
     if ($result) {
         // Creates an array of matching drafts
         $drafts = array();
         while ($row = $dbw->fetchRow($result)) {
             // Adds a new draft to the list from the row
             $drafts[] = Draft::newFromRow($row);
         }
     }
     // Returns array of matching drafts or null if there were none
     return count($drafts) ? $drafts : null;
 }