104 lines
2.8 KiB
PHP
104 lines
2.8 KiB
PHP
<?php
|
|
|
|
|
|
namespace App;
|
|
|
|
use Froiden\RestAPI\ApiModel;
|
|
use Illuminate\Support\Facades\Schema;
|
|
|
|
class BaseModel extends ApiModel
|
|
{
|
|
|
|
protected $mimeType = [
|
|
'txt' => 'fa-file-text',
|
|
'htm' => 'fa-file-code-o',
|
|
'html' => 'fa-file-code-o',
|
|
// 'php' => 'fa-file-code-o',
|
|
'css' => 'fa-file-code-o',
|
|
'js' => 'fa-file-code-o',
|
|
'json' => 'fa-file-code-o',
|
|
'xml' => 'fa-file-code-o',
|
|
'swf' => 'fa-file-o',
|
|
'CR2' => 'fa-file-o',
|
|
'flv' => 'fa-file-video-o',
|
|
|
|
// images
|
|
'png' => 'fa-file-image-o',
|
|
'jpe' => 'fa-file-image-o',
|
|
'jpeg' => 'fa-file-image-o',
|
|
'jpg' => 'fa-file-image-o',
|
|
'gif' => 'fa-file-image-o',
|
|
'bmp' => 'fa-file-image-o',
|
|
'ico' => 'fa-file-image-o',
|
|
'tiff' => 'fa-file-image-o',
|
|
'tif' => 'fa-file-image-o',
|
|
'svg' => 'fa-file-image-o',
|
|
'svgz' => 'fa-file-image-o',
|
|
|
|
// archives
|
|
'zip' => 'fa-file-o',
|
|
'rar' => 'fa-file-o',
|
|
'exe' => 'fa-file-o',
|
|
'msi' => 'fa-file-o',
|
|
'cab' => 'fa-file-o',
|
|
|
|
// audio/video
|
|
'mp3' => 'fa-file-audio-o',
|
|
'qt' => 'fa-file-video-o',
|
|
'mov' => 'fa-file-video-o',
|
|
'mp4' => 'fa-file-video-o',
|
|
'mkv' => 'fa-file-video-o',
|
|
'avi' => 'fa-file-video-o',
|
|
'wmv' => 'fa-file-video-o',
|
|
'mpg' => 'fa-file-video-o',
|
|
'mp2' => 'fa-file-video-o',
|
|
'mpeg' => 'fa-file-video-o',
|
|
'mpe' => 'fa-file-video-o',
|
|
'mpv' => 'fa-file-video-o',
|
|
'3gp' => 'fa-file-video-o',
|
|
'm4v' => 'fa-file-video-o',
|
|
|
|
// adobe
|
|
'pdf' => 'fa-file-pdf-o',
|
|
'psd' => 'fa-file-image-o',
|
|
'ai' => 'fa-file-o',
|
|
'eps' => 'fa-file-o',
|
|
'ps' => 'fa-file-o',
|
|
|
|
// ms office
|
|
'doc' => 'fa-file-text',
|
|
'rtf' => 'fa-file-text',
|
|
'xls' => 'fa-file-excel-o',
|
|
'ppt' => 'fa-file-powerpoint-o',
|
|
'docx' => 'fa-file-text',
|
|
'xlsx' => 'fa-file-excel-o',
|
|
'pptx' => 'fa-file-powerpoint-o',
|
|
|
|
|
|
// open office
|
|
'odt' => 'fa-file-text',
|
|
'ods' => 'fa-file-text',
|
|
];
|
|
|
|
public function getIconAttribute($value) {
|
|
|
|
$isColExist = Schema::hasColumn($this->getTable(),'icon');
|
|
|
|
if($isColExist){
|
|
return $value;
|
|
}
|
|
if (is_null($this->external_link) && !$isColExist) {
|
|
$ext = pathinfo($this->filename, PATHINFO_EXTENSION);
|
|
if ($ext == 'png' || $ext == 'jpe' || $ext == 'jpeg' || $ext == 'jpg' || $ext == 'gif' || $ext == 'bmp' ||
|
|
$ext == 'ico' || $ext == 'tif' || $ext == 'svg' || $ext == 'svgz' || $ext == 'psd' || $ext == 'csv')
|
|
{
|
|
return 'images';
|
|
}
|
|
else{
|
|
return $this->mimeType[$ext];
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|