'ID', 'field_id' => 'Field ID', 'item_id' => 'Item ID', 'item_type' => 'Item Type', 'order' => 'Order', 'value' => 'Value', 'type_file' => 'Тип файла' ]; } /** * @return \yii\db\ActiveQuery */ public function getField() { return $this->hasOne(AdditionalFields::class, ['id' => 'field_id']); } public function isImage() { if ($this->type_file === 'text') { return false; } try{ $mime = mime_content_type(Yii::getAlias('@frontend/web' . $this->value)); }catch (ErrorException $e){ return false; } $extension = explode('/', $mime)['0']; if (($extension === 'image') || $extension === 'application') { return true; } else { return false; } } public function getValue() { $test = $this->type_file === 'file' ? $this->getFileValue() : $this->getTextValue(); return $test; } public function getFileValue() { $filename = $this->getFileName(); $filePath = Yii::getAlias('@frontend/web' . $this->value); if($this->isImage()){ $imageHTML = Html::img($this->value, ['width' => '200px', 'alt' => $filename]); $downloadLinkHTML = ' (' . Html::a('Скачать', $this->value, ['target' => '_blank', 'download' => $filename]) . ')'; $result = $imageHTML . $downloadLinkHTML; }else{ $result = $filename . ' (' . Html::a('Скачать', $this->value, ['target' => '_blank', 'download' => $filename]) . ')'; } return $result; } public function getTextValue() { return $this->value; } public function getFileName(){ if($this->type_file === 'file'){ $explode = explode('/', $this->value); $filename = array_pop($explode); return $filename; } return $this->value; } }