public static function getDrafts($title = null, $userID = null) { global $wgUser; Draft::cleanDrafts(); // Get db connection $dbw = wfGetDB(DB_MASTER); // Build where clause $where = array(); if ($title !== null) { $pageId = $title->getArticleId(); if ($pageId) { $where['draft_page'] = $pageId; } else { $where['draft_page'] = 0; // page not created yet $where['draft_namespace'] = $title->getNamespace(); $where['draft_title'] = $title->getDBKey(); } } if ($userID !== null) { $where['draft_user'] = $userID; } else { $where['draft_user'] = $wgUser->getID(); } // Create an array of matching drafts $drafts = array(); $result = $dbw->select('drafts', '*', $where, __METHOD__); if ($result) { while ($row = $dbw->fetchRow($result)) { // Add a new draft to the list from the row $drafts[] = Draft::newFromRow($row); } } // Return array of matching drafts return count($drafts) ? $drafts : null; }
/** * 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; }