2018-08-10 17:14:09 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Models;
|
|
|
|
|
|
|
|
use App;
|
2018-11-16 13:43:27 +01:00
|
|
|
use Common\Model;
|
2018-08-11 15:37:38 +02:00
|
|
|
use Illuminate\Database\Eloquent\Builder;
|
2019-07-26 16:24:20 +02:00
|
|
|
use Traits\Components\ChecklistTrait;
|
|
|
|
use Traits\Components\NoteTrait;
|
|
|
|
use Traits\Components\UploadTrait;
|
2018-12-29 12:03:22 +01:00
|
|
|
use Traits\ManagerTrait;
|
|
|
|
use Traits\StoreTrait;
|
2018-08-10 17:14:09 +02:00
|
|
|
|
|
|
|
class Plugin extends Model
|
|
|
|
{
|
2019-07-11 17:20:58 +02:00
|
|
|
use ManagerTrait;
|
|
|
|
use StoreTrait;
|
2018-11-30 19:40:06 +01:00
|
|
|
use UploadTrait {
|
|
|
|
getUploadDirectoryAttribute as protected defaultUploadDirectory;
|
|
|
|
}
|
2019-07-26 11:57:59 +02:00
|
|
|
use NoteTrait;
|
2019-07-26 16:24:20 +02:00
|
|
|
use ChecklistTrait;
|
2018-08-11 15:37:38 +02:00
|
|
|
|
2018-08-10 17:14:09 +02:00
|
|
|
protected $table = 'zz_plugins';
|
2018-08-11 15:37:38 +02:00
|
|
|
protected $main_folder = 'plugins';
|
2019-07-26 16:24:20 +02:00
|
|
|
protected $component_identifier = 'id_plugin';
|
2018-08-10 17:14:09 +02:00
|
|
|
|
|
|
|
protected $appends = [
|
2018-08-11 15:37:38 +02:00
|
|
|
'permission',
|
2018-08-10 17:14:09 +02:00
|
|
|
'option',
|
|
|
|
];
|
|
|
|
|
|
|
|
protected $hidden = [
|
|
|
|
'options',
|
|
|
|
'options2',
|
|
|
|
];
|
|
|
|
|
2018-08-11 15:37:38 +02:00
|
|
|
/**
|
|
|
|
* Restituisce i permessi relativi all'account in utilizzo.
|
|
|
|
*
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public function getPermissionAttribute()
|
2018-08-10 17:14:09 +02:00
|
|
|
{
|
2018-10-26 16:22:47 +02:00
|
|
|
return $this->originalModule->permission;
|
2018-08-10 17:14:09 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function getOptionAttribute()
|
|
|
|
{
|
2018-09-27 15:50:03 +02:00
|
|
|
return !empty($this->options2) ? $this->options2 : $this->options;
|
2018-08-11 15:37:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/* Metodi personalizzati */
|
|
|
|
|
2018-08-13 10:01:15 +02:00
|
|
|
/**
|
|
|
|
* Restituisce l'eventuale percorso personalizzato per il file di creazione dei record.
|
|
|
|
*
|
|
|
|
* @return string
|
|
|
|
*/
|
2018-08-11 15:37:38 +02:00
|
|
|
public function getCustomAddFile()
|
|
|
|
{
|
|
|
|
if (empty($this->script)) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2018-10-26 16:22:47 +02:00
|
|
|
$directory = 'modules/'.$this->originalModule->directory.'|custom|/plugins';
|
2018-08-11 15:37:38 +02:00
|
|
|
|
|
|
|
return App::filepath($directory, $this->script);
|
|
|
|
}
|
|
|
|
|
2018-08-13 10:01:15 +02:00
|
|
|
/**
|
|
|
|
* Restituisce l'eventuale percorso personalizzato per il file di modifica dei record.
|
|
|
|
*
|
|
|
|
* @return string
|
|
|
|
*/
|
2018-08-11 15:37:38 +02:00
|
|
|
public function getCustomEditFile()
|
|
|
|
{
|
2018-09-06 10:23:54 +02:00
|
|
|
if (empty($this->script)) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2018-08-11 15:37:38 +02:00
|
|
|
return $this->getAddFile();
|
2018-08-10 17:14:09 +02:00
|
|
|
}
|
|
|
|
|
2018-11-30 19:40:06 +01:00
|
|
|
/**
|
|
|
|
* Restituisce il percorso per il salvataggio degli upload.
|
|
|
|
*
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public function getUploadDirectoryAttribute()
|
|
|
|
{
|
|
|
|
if (!empty($this->script)) {
|
2018-12-23 14:01:59 +01:00
|
|
|
return $this->uploads_directory.'/'.basename($this->script, '.php');
|
2018-11-30 19:40:06 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
return $this->defaultUploadDirectory();
|
|
|
|
}
|
|
|
|
|
2018-08-10 17:14:09 +02:00
|
|
|
/* Relazioni Eloquent */
|
|
|
|
|
|
|
|
public function originalModule()
|
|
|
|
{
|
2018-10-25 16:57:39 +02:00
|
|
|
return $this->belongsTo(Module::class, 'idmodule_from');
|
2018-08-10 17:14:09 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function module()
|
|
|
|
{
|
2018-10-25 16:57:39 +02:00
|
|
|
return $this->belongsTo(Module::class, 'idmodule_to');
|
2018-08-10 17:14:09 +02:00
|
|
|
}
|
2018-12-29 12:03:22 +01:00
|
|
|
|
|
|
|
protected static function boot()
|
|
|
|
{
|
|
|
|
parent::boot();
|
|
|
|
|
|
|
|
static::addGlobalScope('enabled', function (Builder $builder) {
|
|
|
|
$builder->where('enabled', true);
|
|
|
|
});
|
|
|
|
}
|
2018-08-10 17:14:09 +02:00
|
|
|
}
|