public function executePost(sfWebRequest $request) { $conn = opDoctrineQuery::getMasterConnection(); $conn->beginTransaction(); try { $params = $this->getDiaryCommentFormParameter($request, $this->getUser()->getMemberId()); $diaryComment = new DiaryComment(); $diaryComment->setMemberId($this->member->getId()); $diaryComment->setDiaryId($params['diary_id']); $diaryComment->setBody($request['body']); $diaryComment->save($conn); if ($params['image']) { $diaryImage = new DiaryCommentImage(); $diaryImage->setDiaryCommentId($diaryComment->id); $diaryImage->setFile($params['image']); $diaryImage->save($conn); //re-save because file name doesnt have prefix(refs #1643) $diaryImage->getFile()->save($conn); } $conn->commit(); } catch (opDiaryPluginAPIException $e) { $conn->rollback(); $this->forward400($e->getMessage()); } catch (Exception $e) { $conn->rollback(); throw $e; } $this->memberId = $this->getUser()->getMemberId(); $this->comment = $diaryComment; }
public function executeCreate(opMailRequest $request) { if (!Doctrine::getTable('SnsConfig')->get('op_diary_plugin_use_email_post', true)) { return sfView::NONE; } $member = $this->getRoute()->getMember(); if (!$member) { return sfView::NONE; } $diary = Doctrine::getTable('Diary')->find($request['id']); if (!$diary || !$diary->isViewable($member->id)) { return sfView::NONE; } if ($diary->member_id !== $member->id) { $relation = Doctrine::getTable('MemberRelationship')->retrieveByFromAndTo($diary->member_id, $member->id); if ($relation && $relation->getIsAccessBlock()) { return sfView::NONE; } } $mailMessage = $request->getMailMessage(); $validator = new opValidatorString(array('rtrim' => true)); try { $body = $validator->clean($mailMessage->getContent()); } catch (Exception $e) { return sfView::ERROR; } $diaryComment = new DiaryComment(); $diaryComment->setDiary($diary); $diaryComment->setMember($member); $diaryComment->setBody($body); $diaryComment->save(); if (sfConfig::get('app_diary_comment_is_upload_images', true)) { $num = (int) sfConfig::get('app_diary_comment_max_image_file_num', 3); $files = $this->getImageFiles($mailMessage, $num); foreach ($files as $file) { $image = new DiaryCommentImage(); $image->setDiaryComment($diaryComment); $image->setFile($file); $image->save(); } } return sfView::NONE; }