73 lines
1.5 KiB
PHP
73 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace App\View\Components;
|
||
|
|
||
|
use App\Abstracts\View\Component;
|
||
|
|
||
|
class Script extends Component
|
||
|
{
|
||
|
/** @var string */
|
||
|
public $alias;
|
||
|
|
||
|
/** @var string */
|
||
|
public $folder;
|
||
|
|
||
|
/** @var string */
|
||
|
public $file;
|
||
|
|
||
|
/** @var string */
|
||
|
public $source;
|
||
|
|
||
|
/**
|
||
|
* Create a new component instance.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function __construct(
|
||
|
string $alias = 'core', string $folder = '', string $file = ''
|
||
|
) {
|
||
|
$this->alias = $alias;
|
||
|
$this->folder = $folder;
|
||
|
$this->file = $file;
|
||
|
|
||
|
$this->source = $this->getSource($alias, $folder, $file);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the view / contents that represent the component.
|
||
|
*
|
||
|
* @return \Illuminate\Contracts\View\View|string
|
||
|
*/
|
||
|
public function render()
|
||
|
{
|
||
|
return view('components.script');
|
||
|
}
|
||
|
|
||
|
protected function getSource($alias, $folder, $file)
|
||
|
{
|
||
|
$path = 'public/js/';
|
||
|
$version = version('short');
|
||
|
|
||
|
if ($alias != 'core') {
|
||
|
try {
|
||
|
$module = module($alias);
|
||
|
|
||
|
if ($module) {
|
||
|
$path = 'modules/' . $module->getStudlyName() . '/Resources/assets/js/';
|
||
|
$version = module_version($alias);
|
||
|
}
|
||
|
} catch (\Exception $e) {
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (! empty($folder)) {
|
||
|
$path .= $folder . '/';
|
||
|
}
|
||
|
|
||
|
$path .= $file . '.min.js?v=' . $version;
|
||
|
|
||
|
return $path;
|
||
|
}
|
||
|
}
|