/**
  * @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;
 }