/** * @return Translation[] */ public function getAllTranslations() { $dbr = Database::getConnection(DB_SLAVE); $rows = $dbr->select(array('cx_translations', 'cx_translators'), '*', array('translator_translation_id = translation_id', 'translator_user_id' => $this->getGlobalUserId()), __METHOD__, array('ORDER BY' => 'translation_last_updated_timestamp DESC')); $result = array(); foreach ($rows as $row) { $result[] = Translation::newFromRow($row); } return $result; }
/** * @param int $limit How many results to return * @param string [$offset] Offset condition (timestamp) * @return Translation[] */ public function getAllTranslations($limit, $offset = null, $type = null) { // Note: there is no index on translation_last_updated_timestamp $dbr = Database::getConnection(DB_SLAVE); $tables = array('cx_translations', 'cx_translators'); $fields = '*'; $conds = array('translator_translation_id = translation_id', 'translator_user_id' => $this->getGlobalUserId()); if ($type !== null) { $conds['translation_status'] = $type; } if ($offset !== null) { $ts = $dbr->addQuotes($dbr->timestamp($offset)); $conds[] = "translation_last_updated_timestamp < {$ts}"; } $options = array('ORDER BY' => 'translation_last_updated_timestamp DESC', 'LIMIT' => $limit); $res = $dbr->select($tables, $fields, $conds, __METHOD__, $options); $result = array(); foreach ($res as $row) { $result[] = Translation::newFromRow($row); } return $result; }
public static function newFromId($translationId) { $dbr = Database::getConnection(DB_SLAVE); $rows = $dbr->select(array('cx_translations', 'cx_drafts'), '*', array('translation_id' => $translationId, 'draft_id' => $translationId), __METHOD__); $result = array(); foreach ($rows as $row) { $result[] = Translation::newFromRow($row); } return $result; }