90 lines
2.5 KiB
PHP
90 lines
2.5 KiB
PHP
<?php
|
|
namespace App\Helpers;
|
|
|
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
|
use Symfony\Component\Process\Exception\InvalidArgumentException;
|
|
|
|
class Template
|
|
{
|
|
/**
|
|
* Getter for real template name
|
|
*
|
|
* @param $template
|
|
*
|
|
* @return null|string
|
|
*/
|
|
public static function name($template)
|
|
{
|
|
$namespace = null;
|
|
if (strpos($template, '::')) {
|
|
list($namespace, $template) = explode('::', $template);
|
|
$namespace .= '::';
|
|
}
|
|
|
|
$theme = config('app.theme');
|
|
|
|
// list of prefixes
|
|
$prefixes = [$theme . '.custom.', $theme . '.', ''];
|
|
|
|
$view = null;
|
|
foreach ($prefixes as $prefix) {
|
|
if (view()->exists($namespace . 'visitor.' . $prefix . $template)) {
|
|
$view = $namespace . 'visitor.' . $prefix . $template;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (is_null($view)) {
|
|
throw new InvalidArgumentException('Cannot find template for ' . $namespace . $template);
|
|
}
|
|
|
|
return $view;
|
|
}
|
|
|
|
/**
|
|
* 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 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;
|
|
}
|
|
|
|
public static function date($datestamp, $withTime = true)
|
|
{
|
|
$timestamp = strtotime($datestamp);
|
|
|
|
if ($timestamp <= 0) {
|
|
return '';
|
|
}
|
|
|
|
$format = $withTime ? config('app.datetime_format') : config('app.date_format');
|
|
|
|
return date($format, $timestamp);
|
|
}
|
|
} |