%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/cfiles/libs/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/cfiles/libs/FileUtils.php |
<?php namespace humhub\modules\cfiles\libs; use humhub\modules\file\models\File; use humhub\modules\comment\models\Comment; use humhub\modules\content\models\Content; use humhub\modules\post\models\Post; /** * This is a utility lib for files. * * @package humhub.modules.gallery.libs * @since 1.0 * @author Sebastian Stumpf */ class FileUtils { public static $map = [ 'code' => [ 'ext' => [ 'html', 'cmd', 'bat', 'xml' ], 'icon' => 'fa-file-code-o' ], 'archive' => [ 'ext' => [ 'zip', 'rar', 'gz', 'tar' ], 'icon' => 'fa-file-archive-o' ], 'audio' => [ 'ext' => [ 'mp3', 'wav' ], 'icon' => 'fa-file-audio-o' ], 'excel' => [ 'ext' => [ 'xls', 'xlsx' ], 'icon' => 'fa-file-excel-o' ], 'image' => [ 'ext' => [ 'jpg', 'jpeg', 'gif', 'bmp', 'svg', 'tiff', 'png' ], 'icon' => 'fa-file-image-o' ], 'pdf' => [ 'ext' => [ 'pdf' ], 'icon' => 'fa-file-pdf-o' ], 'powerpoint' => [ 'ext' => [ 'ppt', 'pptx' ], 'icon' => 'fa-file-powerpoint-o' ], 'text' => [ 'ext' => [ 'txt', 'log', 'md' ], 'icon' => 'fa-file-text-o' ], 'video' => [ 'ext' => [ 'mp4', 'mpeg', 'swf' ], 'icon' => 'fa-file-video-o' ], 'word' => [ 'ext' => [ 'doc', 'docx' ], 'icon' => 'fa-file-word-o' ], 'default' => [ 'ext' => [], 'icon' => 'fa-file-o' ] ]; /** * Get the extensions font awesome icon class. * * @param string $ext * the extension. * @return string the font awesome icon class for this extension. */ public static function getIconClassByExt($ext = '') { $ext = strtolower($ext); foreach (self::$map as $type => $info) { if (in_array($ext, $info['ext'])) { return $info['icon']; } } return self::$map['default']['icon']; } /** * Get the extensions type. * * @param string $ext * the extension. * @return string the type or 'unknown'. */ public static function getItemTypeByExt($ext) { $ext = strtolower($ext); foreach (self::$map as $type => $info) { if (in_array($ext, $info['ext'])) { return $type; } } return 'unknown'; } /** * Get the content model the file is connected to. * @param File $basefile the file. */ public static function getBaseContent($file = null) { if ($file === null) { return null; } $searchItem = $file; // if the item is connected to a Comment, we have to search for the corresponding Post if ($file->object_model === Comment::className()) { $searchItem = Comment::findOne([ 'id' => $file->object_id ]); } $query = Content::find(); $query->andWhere([ 'content.object_id' => $searchItem->object_id, 'content.object_model' => $searchItem->object_model ]); return $query->one(); } /** * Get the post the file is connected to. * @param File $basefile the file. */ public static function getBasePost($file = null) { if ($file === null) { return null; } $searchItem = $file; // if the item is connected to a Comment, we have to search for the corresponding Post if ($file->object_model === Comment::className()) { $searchItem = Comment::findOne([ 'id' => $file->object_id ]); } $return = Post::findOne(['id' => $searchItem->object_id ]); } }