61 lines
1.8 KiB
PHP
61 lines
1.8 KiB
PHP
<?php
|
|
namespace App\CMS\Helpers;
|
|
|
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
|
use Symfony\Component\Process\Exception\InvalidArgumentException;
|
|
|
|
class Path
|
|
{
|
|
/**
|
|
* Get URL to uploaded file
|
|
*
|
|
* @param $filename
|
|
*
|
|
* @return string
|
|
*/
|
|
public static function upload($filename)
|
|
{
|
|
// for debug environment check if file exists
|
|
if (env('APP_DEBUG') && !file_exists(config('app.upload_path') . '/' . $filename)) {
|
|
throw new NotFoundHttpException('File ' . $filename . ' cannot be found in ' . config('app.upload_path') . '.');
|
|
}
|
|
|
|
// return url to uploaded file
|
|
return config('app.upload_url') . '/' . $filename;
|
|
}
|
|
|
|
public static function thumbnail($filename)
|
|
{
|
|
// try to check if file have thumbnail
|
|
if (file_exists(config('app.thumbnail_path') . '/' . $filename)) {
|
|
$url = config('app.thumbnail_url') . '/' . $filename;
|
|
} else {
|
|
$url = self::upload($filename);
|
|
}
|
|
|
|
return $url;
|
|
}
|
|
|
|
/**
|
|
* Get path to given asset
|
|
*
|
|
* @param $path
|
|
*
|
|
* @return string
|
|
*/
|
|
public static function asset($path)
|
|
{
|
|
if (env('APP_DEBUG')) {
|
|
if (empty($path)) {
|
|
throw new InvalidArgumentException('No asset name defined!');
|
|
}
|
|
|
|
// check if asset exists and is file
|
|
if (!file_exists(public_path('assets/' . config('app.theme') . '/' . $path))) {
|
|
throw new NotFoundHttpException('Cannot find any asset in ' . public_path('assets/' . config('app.theme') . '/' . $path) . '. Try to check your paths.');
|
|
}
|
|
}
|
|
|
|
return config('app.url') . '/assets/' . config('app.theme') . '/' . $path;
|
|
}
|
|
} |