/**
  *
  * @return array
  *   (memberId => imagePath...)
  */
 public function findImageFileUrlsByMemberIds($memberIds)
 {
     static $queryCacheHash;
     $q = Doctrine_Query::create();
     if (!$queryCacheHash) {
         $q->from('MemberImage mi, mi.File f');
         $q->select('mi.member_id, f.name');
         $searchResult = $q->fetchArray();
         $queryCacheHash = $q->calculateQueryCacheHash();
     } else {
         $q->setCachedQueryCacheHash($queryCacheHash);
         $searchResult = $q->fetchArray();
     }
     $imageUrls = array();
     foreach ($searchResult as $row) {
         $image = sf_image_path($row['File']['name'], array('size' => '48x48'), true);
         $imageUrls[$row['member_id']] = $image;
     }
     //画像を設定していないユーザーはno_imageにする
     foreach ($memberIds as $id) {
         if (!isset($imageUrls[$id])) {
             $imageUrls[$id] = opTimelineImage::getNotImageUrl();
         }
     }
     return $imageUrls;
 }
 private function createUploadImageFileByFileInfoAndSaveFileName($fileInfo, $filename)
 {
     $filename = opTimelineImage::addExtensionToBasenameForFileTable($filename);
     $uploadDirPath = opTimelineImage::findUploadDirPath($fileInfo['name']);
     $fileSavePath = $uploadDirPath . '/' . $filename;
     opTimelineImage::copyByResourcePathAndTargetPath($fileInfo['tmp_name'], $fileSavePath);
     $imageSize = opTimelineImage::getImageSizeByPath($fileSavePath);
     //画像が縮小サイズより小さい場合は縮小した画像を作成しない
     if ($imageSize['width'] <= self::MINIMUM_IMAGE_WIDTH) {
         return true;
     }
     $minimumDirPath = opTimelineImage::findUploadDirPath($fileInfo['name'], self::MINIMUM_IMAGE_WIDTH);
     $minimumPath = $minimumDirPath . '/' . basename($fileSavePath);
     $paths = array('resource' => $fileSavePath, 'target' => $minimumPath);
     opTimelineImage::createMinimumImageByWidthSizeAndPaths(self::MINIMUM_IMAGE_WIDTH, $paths);
 }