/** * Generate response based on Media primary key. * * @param Media $media * * @return array */ public function generateResponse($media) { $metadata = $media->getMeta('metadata'); $response = ArrayHelper::merge(ArrayHelper::toArray($media), $metadata); $response['media_data_formatted'] = Yii::$app->formatter->asDatetime($media->media_date); $response['media_readable_size'] = Yii::$app->formatter->asShortSize($metadata['media_file_size']); $response['media_delete_url'] = Url::to(['/media/ajax-delete', 'id' => $media->id, 'delete' => '1']); $response['media_update_url'] = Url::to(['/media/update', 'id' => $media->id]); $response['media_view_url'] = $media->url; if (preg_match('/^image\\//', $media->media_mime_type)) { $response['media_render_type'] = 'image'; $response['media_icon_url'] = $this->getOption('upload_url') . '/' . $metadata['media_icon_url']; foreach ($metadata['media_versions'] as $versionName => $version) { $response['media_size'][] = ['version' => $versionName, 'url' => $version['url'], 'width' => $version['width'], 'height' => $version['height']]; } } else { $response['media_icon_url'] = Yii::getAlias('@web') . '/' . $metadata['media_icon_url']; if (preg_match('/^video\\//', $media->media_mime_type)) { $response['media_render_type'] = 'video'; } else { if (preg_match('/^audio\\//', $media->media_mime_type)) { $response['media_render_type'] = 'audio'; } else { $response['media_render_type'] = 'file'; } } } return $response; }
/** * Generate response based on Media primary key. * * @param Media $media * @return array */ public function generateResponse($media) { $metadata = $media->getMeta('metadata'); $response = ArrayHelper::merge(ArrayHelper::toArray($media), $metadata); $response['date_formatted'] = Yii::$app->formatter->asDatetime($media->date); $response['readable_size'] = Yii::$app->formatter->asShortSize($metadata['file_size']); $response['delete_url'] = Url::to(['/media/ajax-delete', 'id' => $media->id, 'delete' => '1']); $response['update_url'] = Url::to(['/media/update', 'id' => $media->id]); $response['view_url'] = $media->getUrl(); if (preg_match('/^image\\//', $media->mime_type)) { $response['type'] = 'image'; $response['icon_url'] = $this->getOption('upload_url') . $metadata['icon_url']; } else { $response['icon_url'] = Yii::getAlias('@web') . '/' . $metadata['icon_url']; if (preg_match('/^video\\//', $media->mime_type)) { $response['type'] = 'video'; } elseif (preg_match('/^audio\\//', $media->mime_type)) { $response['type'] = 'audio'; } else { $response['type'] = 'file'; } } return $response; }