/** * Returns an array of all the revision data for a draft or version. * * @param EntryDraftModel|EntryVersionModel $revision * * @return array */ private function _getRevisionData($revision) { $revisionData = array('typeId' => $revision->typeId, 'authorId' => $revision->authorId, 'title' => $revision->title, 'slug' => $revision->slug, 'postDate' => $revision->postDate ? $revision->postDate->getTimestamp() : null, 'expiryDate' => $revision->expiryDate ? $revision->expiryDate->getTimestamp() : null, 'enabled' => $revision->enabled, 'parentId' => $revision->parentId, 'fields' => array()); $content = $revision->getContentFromPost(); foreach (craft()->fields->getAllFields() as $field) { if (isset($content[$field->handle]) && $content[$field->handle] !== null) { $revisionData['fields'][$field->id] = $content[$field->handle]; } } return $revisionData; }