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