/** * Publishes a draft. * * @param EntryDraftModel $draft * * @return bool */ public function publishDraft(EntryDraftModel $draft) { // If this is a single, we'll have to set the title manually if ($draft->getSection()->type == SectionType::Single) { $draft->getContent()->title = $draft->getSection()->name; } // Set the version notes if (!$draft->revisionNotes) { $draft->revisionNotes = Craft::t('Published draft “{name}”.', array('name' => $draft->name)); } if (craft()->entries->saveEntry($draft)) { // Fire an 'onPublishDraft' event $this->onPublishDraft(new Event($this, array('draft' => $draft))); $this->deleteDraft($draft); return true; } else { return false; } }
/** * Sets a draft's attributes from the post data. * * @param EntryDraftModel $draft * * @return null */ private function _setDraftAttributesFromPost(EntryDraftModel $draft) { $draft->typeId = craft()->request->getPost('typeId'); $draft->slug = craft()->request->getPost('slug'); $draft->postDate = craft()->request->getPost('postDate'); $draft->expiryDate = craft()->request->getPost('expiryDate'); $draft->enabled = (bool) craft()->request->getPost('enabled'); $draft->authorId = craft()->request->getPost('author'); $draft->getContent()->title = craft()->request->getPost('title'); }
/** * Sets a draft's attributes from the post data. * * @param EntryDraftModel $draft * * @return null */ private function _setDraftAttributesFromPost(EntryDraftModel $draft) { $draft->typeId = craft()->request->getPost('typeId'); $draft->slug = craft()->request->getPost('slug'); $draft->postDate = ($postDate = craft()->request->getPost('postDate')) ? DateTime::createFromString($postDate, craft()->timezone) : $draft->postDate; $draft->expiryDate = ($expiryDate = craft()->request->getPost('expiryDate')) ? DateTime::createFromString($expiryDate, craft()->timezone) : null; $draft->enabled = (bool) craft()->request->getPost('enabled'); $draft->getContent()->title = craft()->request->getPost('title'); // Author $authorId = craft()->request->getPost('author', $draft->authorId ? $draft->authorId : craft()->userSession->getUser()->id); if (is_array($authorId)) { $authorId = isset($authorId[0]) ? $authorId[0] : null; } $draft->authorId = $authorId; // Parent $parentId = craft()->request->getPost('parentId'); if (is_array($parentId)) { $parentId = isset($parentId[0]) ? $parentId[0] : null; } $draft->parentId = $parentId; }
/** * Sets the draft model's values from the post data. * * @access private * @param EntryDraftModel $draft */ private function _setDraftValuesFromPost(EntryDraftModel $draft) { $draft->slug = craft()->request->getPost('slug'); $draft->postDate = craft()->request->getPost('postDate'); $draft->expiryDate = craft()->request->getPost('expiryDate'); $draft->enabled = (bool) craft()->request->getPost('enabled'); $draft->getContent()->title = craft()->request->getPost('title'); $fields = craft()->request->getPost('fields'); $draft->getContent()->setAttributes($fields); if (Craft::hasPackage(CraftPackage::Users)) { $draft->authorId = craft()->request->getPost('author'); } else { $draft->authorId = craft()->userSession->getUser()->id; } }