public function getTwitterCardImage($url = null)
 {
     if (empty($url)) {
         $siteConfiguration = $this->getSiteConfiguration();
         $siteConfiguration->load('ogpImage');
         $image = $siteConfiguration->ogpImage;
         if (empty($image)) {
             $image = $this->imageRepository->getBlankModel();
         }
         return $image->getThumbnailUrl(1024, 512);
     }
     return $url;
 }
 /**
  * @param array $conf
  * @param string $ext
  * @param int $categoryType
  * @param int $categorySubType
  * @param string $path
  * @param string $mediaType
  * @param array $metaInputs
  * @return \App\Models\Base|null
  */
 private function uploadImage($conf, $ext, $categoryType, $categorySubType, $path, $mediaType, $metaInputs)
 {
     $dstPath = $path . '.converted';
     $format = array_get($conf, 'format', 'jpeg');
     $size = $this->imageService->convert($path, $dstPath, $format, array_get($conf, 'size'));
     if (!file_exists($dstPath)) {
         return null;
     }
     $fileSize = filesize($path);
     $bucket = $this->decideBucket($conf['buckets']);
     $region = array_get($conf, 'region', 'ap-northeast-1');
     $seed = array_get($conf, 'seed_prefix', '') . time() . rand();
     $key = $this->generateFileName($seed, null, $ext);
     $url = $this->uploadToS3($dstPath, $region, $bucket, $key, 'image/' . $format);
     $image = $this->imageRepository->create(['url' => $url, 'title' => array_get($metaInputs, 'title', ''), 'file_category' => $categoryType, 'file_subcategory' => $categorySubType, 'article_id' => array_get($metaInputs, 'articleId', ''), 's3_key' => $key, 's3_bucket' => $bucket, 's3_region' => $region, 's3_extension' => $ext, 'media_type' => $mediaType, 'format' => $mediaType, 'file_size' => $fileSize, 'width' => array_get($size, 'width', 0), 'height' => array_get($size, 'height', 0), 'is_enabled' => true]);
     foreach (array_get($conf, 'thumbnails', []) as $thumbnail) {
         $this->imageService->convert($path, $dstPath, $format, $thumbnail);
         $thumbnailKey = $this->getThumbnailKeyFromKey($key, $thumbnail);
         $this->uploadToS3($dstPath, $region, $bucket, $thumbnailKey, 'image/' . $format);
     }
     return $image;
 }
Example #3
0
 /**
  * List the path of all images for the course.
  *
  * @param Course $course
  * @return mixed
  */
 public function listImages(Course $course)
 {
     return $this->repository->listImages($course);
 }