public function executeUpload(opMailRequest $request)
 {
     $member = $this->getRoute()->getMember();
     if (!$member) {
         return sfView::NONE;
     }
     $mailMessage = $request->getMailMessage();
     $album = Doctrine::getTable('Album')->find($request['id']);
     if (!$album || !$album->isAuthor($member->id)) {
         return sfView::NONE;
     }
     $files = $this->getImageFiles($mailMessage, 5);
     foreach ($files as $file) {
         $albumImage = new AlbumImage();
         $albumImage->setAlbum($album);
         $albumImage->setMember($member);
         $albumImage->setFile($file);
         $albumImage->save();
     }
     return sfView::NONE;
 }
 public function save()
 {
     foreach ($this->getValues() as $k => $v) {
         if (0 !== strpos($k, 'photo_')) {
             continue;
         }
         if (empty($v['file'])) {
             continue;
         }
         $file = new File();
         $file->setFromValidatedFile($v['file']);
         if (empty($v['description'])) {
             $description = $file->getName();
         } else {
             $description = $v['description'];
         }
         $albumImage = new AlbumImage();
         $albumImage->setAlbum($this->albumInstance);
         $albumImage->setFile($file);
         $albumImage->setDescription($description);
         $albumImage->save();
     }
 }
 public function getNextAlbumImage(AlbumImage $image, $myMemberId)
 {
     $q = $this->createQuery()->andWhere('member_id = ?', $image->getMemberId())->andWhere('album_id = ?', $image->getAlbumId())->andWhere('id > ?', $image->getId())->orderBy('id ASC');
     return $q->fetchOne();
 }
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return AlbumImage the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = AlbumImage::model()->with('image')->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
$albumImage2 = Doctrine::getTable('AlbumImage')->find(2);
$albumImage3 = Doctrine::getTable('AlbumImage')->find(3);
$conn = Doctrine::getTable('AlbumImage')->getConnection();
// isAuthor()
$t->cmp_ok($albumImage1->isAuthor(1), '===', true, '->isAuthor() returns true.');
$t->cmp_ok($albumImage1->isAuthor(2), '===', false, '->isAuthor() returns false.');
// getPrevious()
$t->cmp_ok($albumImage1->getPrevious(), '===', false, '->getPrevious() returns false.');
$result = $albumImage2->getPrevious();
$t->isa_ok($result, 'AlbumImage', "->getPrevious() returns AlbumImage's instance.");
$t->is($result->id, $albumImage1->id, '->getPrevious() returns previous AlbumImage corectlly.');
// getNext()
$result = $albumImage1->getNext();
$t->isa_ok($result, 'AlbumImage', "->getNext() returns AlbumImage's instance.");
$t->is($result->id, $albumImage2->id, '->getNext() returns next AlbumImage corectlly.');
$t->cmp_ok($albumImage2->getNext(), '===', false, '->getNext() returns false.');
// save()
$conn->beginTransaction();
$file_new = new File();
$data = array('tmp_name' => dirname(__FILE__) . '/../../../images/OpenPNE.jpg', 'type' => 'image/jpeg', 'size' => 8327, 'name' => 'OpenPNE.jpg');
$validatorFile = new opValidatorImageFile();
$validatedFile = $validatorFile->clean($data);
$file_new->setFromValidatedFile($validatedFile);
$albumImage_new = new AlbumImage();
$albumImage_new->setMember($member1);
$albumImage_new->setAlbum($album1);
$albumImage_new->setFile($file_new);
$albumImage_new->save();
$t->is($albumImage1->getFile()->getName(), 'a_1055_a_2_a_1_a_1_dummy_file', 'filename is setted by ->save()');
$t->is($albumImage_new->getFilesize(), 8327, 'filesize is setted by ->preSave().');
$conn->rollback();
 /**
  * Get Associated Album Images.
  * @return array AlbumImage
  */
 public function getImages()
 {
     return AlbumImage::model()->with('image')->findAllByAttributes(['album_id' => $this->id]);
 }