/** * Returns a draft by its offset. * * @param int $entryId * @param int $offset * @return EntryDraftModel|null */ public function getDraftByOffset($entryId, $offset = 0) { $draftRecord = EntryDraftRecord::model()->find(array('condition' => 'entryId = :entryId AND locale = :locale', 'params' => array(':entryId' => $entryId, ':locale' => craft()->i18n->getPrimarySiteLocale()), 'offset' => $offset)); if ($draftRecord) { return EntryDraftModel::populateModel($draftRecord); } }
/** * Returns drafts of a given entry. * * @param int $entryId * @param string $localeId * * @return array */ public function getDraftsByEntryId($entryId, $localeId = null) { if (!$localeId) { $localeId = craft()->i18n->getPrimarySiteLocale(); } $drafts = array(); $results = craft()->db->createCommand()->select('*')->from('entrydrafts')->where(array('and', 'entryId = :entryId', 'locale = :locale'), array(':entryId' => $entryId, ':locale' => $localeId))->order('name asc')->queryAll(); foreach ($results as $result) { $result['data'] = JsonHelper::decode($result['data']); // Don't initialize the content unset($result['data']['fields']); $drafts[] = EntryDraftModel::populateModel($result); } return $drafts; }