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