/** * Download a media file */ public function actionDownload() { $media = Media::findOne(Yii::$app->request->get('file')); $filePath = $this->uploadConfig['kalibao\\common\\models\\media\\Media']['file']['basePath'] . '/' . $media->file; $fileName = ($media->mediaI18n ? $media->mediaI18n->title : $media->file) . '.' . strtolower(pathinfo($filePath)['extension']); return Yii::$app->response->sendFile($filePath, $fileName); }
/** * @inheritdoc */ public function init() { parent::init(); // get model $model = $this->getModel(); // language $language = $this->getLanguage(); // get drop down list methods $dropDownList = $this->getDropDownList(); // set titles $this->setTitle(Yii::t('kalibao', 'list_title')); // set head attributes $this->setGridHeadAttributes(['tree_i18n_label' => true, 'tree_i18n_description' => true, 'media_file' => true]); // set head filters $this->setGridHeadFilters([new InputField(['model' => $model, 'attribute' => 'tree_i18n_label', 'type' => 'activeTextInput', 'options' => ['class' => 'form-control input-sm', 'placeholder' => Yii::t('kalibao', 'input_search')]]), new InputField(['model' => $model, 'attribute' => 'media_id', 'type' => 'activeHiddenInput', 'options' => ['class' => 'form-control input-sm input-ajax-select', 'data-action' => Url::to(['advanced-drop-down-list', 'id' => 'media.file']), 'data-allow-clear' => 1, 'data-placeholder' => Yii::t('kalibao', 'input_select'), 'data-text' => !empty($model->media_id) ? Media::findOne(['id' => $model->media_id])->file : '']]), new InputField(['model' => $model, 'attribute' => 'tree_i18n_description', 'type' => 'activeTextInput', 'options' => ['class' => 'form-control input-sm', 'placeholder' => Yii::t('kalibao', 'input_search')]])]); // set advanced filters $this->setAdvancedFilters([new InputField(['model' => $model, 'attribute' => 'tree_i18n_label', 'type' => 'activeTextInput', 'options' => ['class' => 'form-control input-sm', 'placeholder' => Yii::t('kalibao', 'input_search')]]), new InputField(['model' => $model, 'attribute' => 'media_id', 'type' => 'activeHiddenInput', 'options' => ['class' => 'form-control input-sm input-ajax-select', 'data-action' => Url::to(['advanced-drop-down-list', 'id' => 'media.file']), 'data-allow-clear' => 1, 'data-placeholder' => Yii::t('kalibao', 'input_select'), 'data-text' => !empty($model->media_id) ? Media::findOne(['id' => $model->media_id])->file : '']]), new InputField(['model' => $model, 'attribute' => 'tree_i18n_description', 'type' => 'activeTextInput', 'options' => ['class' => 'form-control input-sm', 'placeholder' => Yii::t('kalibao', 'input_search')]])]); }
/** * @return \yii\db\ActiveQuery */ public function getMedia() { return $this->hasOne(Media::className(), ['id' => 'media_id']); }