示例#1
0
 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 setup()
 {
     parent::setup();
     unset($this['id']);
     $this->useFields(array('body'));
     $this->validatorSchema['body'] = new opValidatorString(array('rtrim' => true));
     if (sfConfig::get('app_diary_comment_is_upload_images', true)) {
         $max = (int) sfConfig::get('app_diary_comment_max_image_file_num', 3);
         for ($i = 1; $i <= $max; $i++) {
             $key = 'photo_' . $i;
             $image = new DiaryCommentImage();
             $image->setDiaryComment($this->getObject());
             $imageForm = new DiaryCommentImageForm($image);
             $imageForm->getWidgetSchema()->setFormFormatterName('list');
             $this->embedForm($key, $imageForm, '<ul id="diary_comment_' . $key . '">%content%</ul>');
         }
     }
 }
示例#3
0
 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;
 }
<?php

include dirname(__FILE__) . '/../../bootstrap/unit.php';
include dirname(__FILE__) . '/../../bootstrap/database.php';
$t = new lime_test(4);
$t->diag('DiaryCommentImage::delete()');
$dcImage = Doctrine::getTable('DiaryCommentImage')->find(1);
$file_id = $dcImage->file_id;
$conn = Doctrine::getTable('DiaryCommentImage')->getConnection();
$conn->beginTransaction();
$dcImage->delete();
$t->ok(!Doctrine::getTable('File')->find($file_id), 'File is deleted');
$t->ok(!Doctrine::getTable('FileBin')->find($file_id), 'FileBin is deleted');
$conn->rollback();
$t->diag('DiaryCommentImage::save()');
$conn->beginTransaction();
$file = new File();
$file->name = 'test.gif';
$dcImage = new DiaryCommentImage();
$dcImage->diary_comment_id = 1;
$dcImage->File = $file;
$dcImage->save();
$t->is($dcImage->File->name, 'dc_1_test.gif', 'File name is prefixed');
$dcImage->save();
$t->is($dcImage->File->name, 'dc_1_test.gif', 'File name is not double prefixed');
$conn->rollback();