mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-03 17:27:29 +01:00
Bugfix e miglioramenti Eloquent
This commit is contained in:
parent
ba186cd5a0
commit
eb0d8cf932
12
actions.php
12
actions.php
@ -18,14 +18,6 @@ if (empty($element) || empty($element['enabled'])) {
|
||||
die(tr('Accesso negato'));
|
||||
}
|
||||
|
||||
$php = App::filepath($directory.'|custom|', 'add.php');
|
||||
$html = App::filepath($directory.'|custom|', 'add.html');
|
||||
$element['add_file'] = !empty($php) ? $php : $html;
|
||||
|
||||
$php = App::filepath($directory.'|custom|', 'edit.php');
|
||||
$html = App::filepath($directory.'|custom|', 'edit.html');
|
||||
$element['edit_file'] = !empty($php) ? $php : $html;
|
||||
|
||||
$upload_dir = DOCROOT.'/'.Uploads::getDirectory($id_module, $id_plugin);
|
||||
|
||||
$database->beginTransaction();
|
||||
@ -140,9 +132,9 @@ if (filter('op') == 'link_file' || filter('op') == 'unlink_file') {
|
||||
|
||||
// Inclusione di eventuale plugin personalizzato
|
||||
if (!empty($element['script'])) {
|
||||
include App::filepath('modules/'.$element['module_dir'].'/plugins|custom|', $element['script']);
|
||||
include $element->getEditFile();
|
||||
|
||||
$dbo->query('COMMIT');
|
||||
$database->commitTransaction();
|
||||
|
||||
return;
|
||||
}
|
||||
|
5
add.php
5
add.php
@ -15,8 +15,7 @@ echo '
|
||||
<div id="form_'.$id_module.'-'.$id_plugin.'">
|
||||
';
|
||||
|
||||
$file = !empty(get('edit')) ? 'edit' : 'add';
|
||||
include $element[$file.'_file'];
|
||||
include !empty(get('edit')) ? $element->getEditFile() : $element->getAddFile();
|
||||
|
||||
echo '
|
||||
</div>';
|
||||
@ -58,7 +57,7 @@ if (isAjaxRequest()) {
|
||||
$(document).ready(function(){
|
||||
data = {};';
|
||||
|
||||
foreach ($get as $key => $value) {
|
||||
foreach (Filter::getGET() as $key => $value) {
|
||||
echo '
|
||||
data.'.$key.' = "'.$value.'";';
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ echo '
|
||||
<i class="'.$element['icon'].'"></i> '.$element['title'];
|
||||
|
||||
// Pulsante "Aggiungi" solo se il modulo è di tipo "table" e se esiste il template per la popup
|
||||
if (!empty($element['add_file']) && $element['permessi'] == 'rw') {
|
||||
if ($element->hasAddFile() && $element->permission == 'rw') {
|
||||
echo '
|
||||
<button type="button" class="btn btn-primary" data-toggle="modal" data-title="'.tr('Aggiungi').'..." data-target="#bs-popup" data-href="add.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'"><i class="fa fa-plus"></i></button>';
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ if (empty($record)) {
|
||||
<i class="'.$element['icon'].'"></i> '.$element['title'];
|
||||
|
||||
// Pulsante "Aggiungi" solo se il modulo è di tipo "table" e se esiste il template per la popup
|
||||
if (!empty($element['add_file']) && $element['permessi'] == 'rw') {
|
||||
if ($element->hasAddFile() && $element->permission == 'rw') {
|
||||
echo '
|
||||
<button type="button" class="btn btn-primary" data-toggle="modal" data-title="'.tr('Aggiungi').'..." data-target="#bs-popup" data-href="add.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'"><i class="fa fa-plus"></i></button>';
|
||||
}
|
||||
@ -160,7 +160,7 @@ if (empty($record)) {
|
||||
|
||||
<div id="module-edit">';
|
||||
|
||||
include $element['edit_file'];
|
||||
include $element->getEditFile();
|
||||
|
||||
echo '
|
||||
</div>
|
||||
@ -292,7 +292,7 @@ echo '
|
||||
<script>';
|
||||
|
||||
// Se l'utente ha i permessi in sola lettura per il modulo, converto tutti i campi di testo in span
|
||||
$read_only = $element['permessi'] == 'r';
|
||||
$read_only = $element->permission == 'r';
|
||||
if ($read_only || !empty($block_edit)) {
|
||||
$not = $read_only ? '' : '.not(".unblockable")';
|
||||
|
||||
|
@ -75,7 +75,7 @@ if (post('action') == 'init') {
|
||||
foreach ($settings as $setting) {
|
||||
$setting = Settings::get($setting);
|
||||
|
||||
Settings::setValue($setting['nome'], post($setting['id']));
|
||||
Settings::setValue($setting['nome'], post('setting')[$setting['id']]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,14 +13,10 @@ if (!empty($id_plugin)) {
|
||||
$directory = '/modules/'.$element['directory'];
|
||||
}
|
||||
|
||||
$php = App::filepath($directory.'|custom|', 'edit.php');
|
||||
$html = App::filepath($directory.'|custom|', 'edit.html');
|
||||
$element['edit_file'] = !empty($php) ? $php : $html;
|
||||
|
||||
if (!empty($id_plugin)) {
|
||||
// Inclusione di eventuale plugin personalizzato
|
||||
if (!empty($element['script'])) {
|
||||
include App::filepath('modules/'.$element['module_dir'].'/plugins|custom|', $element['script']);
|
||||
include $element->getEditFile();
|
||||
|
||||
return;
|
||||
}
|
||||
@ -30,7 +26,7 @@ if (!empty($id_plugin)) {
|
||||
<span class="'.(!empty($element['help']) ? ' tip' : '').'"'.(!empty($element['help']) ? ' title="'.prepareToField($element['help']).'" data-position="bottom"' : '').' >
|
||||
'.$element['title'].(!empty($element['help']) ? ' <i class="fa fa-question-circle-o"></i>' : '').'</span>';
|
||||
|
||||
if (!empty(Plugins::filepath($id_plugin, 'add.php'))) {
|
||||
if ($element->hasAddFile()) {
|
||||
echo '
|
||||
<button type="button" class="btn btn-primary" data-toggle="modal" data-title="'.tr('Aggiungi').'..." data-target="#bs-popup" data-href="add.php?id_module='.$id_module.'&id_plugin='.$id_plugin.'&id_parent='.$id_record.'"><i class="fa fa-plus"></i></button>';
|
||||
}
|
||||
@ -224,7 +220,7 @@ if (!empty($type) && $type != 'menu' && $type != 'custom') {
|
||||
* Inclusione modulo personalizzato
|
||||
*/
|
||||
elseif ($type == 'custom') {
|
||||
include $element['edit_file'];
|
||||
include $element->getEditFile();
|
||||
}
|
||||
|
||||
// Caricamento file aggiuntivo su elenco record
|
||||
|
@ -6,7 +6,7 @@ switch (filter('op')) {
|
||||
case 'update':
|
||||
$is_all_valid = true;
|
||||
|
||||
foreach ($post as $id => $value) {
|
||||
foreach (post('setting') as $id => $value) {
|
||||
$is_valid = Settings::setValue($id, $value);
|
||||
|
||||
if (!$is_valid) {
|
||||
|
@ -17,7 +17,8 @@ $idtipointervento = null;
|
||||
$idstatointervento = null;
|
||||
$richiesta = null;
|
||||
$impianti = [];
|
||||
//come tecnico posso aprire attività solo a mio nome
|
||||
|
||||
// Come tecnico posso aprire attività solo a mio nome
|
||||
if ($user['gruppo'] == 'Tecnici' && !empty($user['idanagrafica'])) {
|
||||
$idtecnico = $user['idanagrafica'];
|
||||
} else {
|
||||
|
@ -5,7 +5,6 @@ include_once __DIR__.'/../../core.php';
|
||||
//unset($_SESSION['superselect']['idanagrafica']);
|
||||
//unset($_SESSION['superselect']['idsede']);
|
||||
|
||||
|
||||
$source = get('source');
|
||||
$idanagrafica = null;
|
||||
|
||||
@ -30,9 +29,9 @@ if ($source == 'Attività') {
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "<?php echo $idanagrafica; ?>", "ajax-source": "clienti" ]}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Sede'); ?>", "name": "idsede", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='$idanagrafica$'", "value": "$idsede$", "required": "1", "ajax-source": "sedi" ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Sede'); ?>", "name": "idsede", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='$idanagrafica$'", "value": "$idsede$", "ajax-source": "sedi", "placeholder": "Sede legale" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
@ -53,19 +52,19 @@ if ($source == 'Attività') {
|
||||
$(document).ready(function(){
|
||||
|
||||
$('#idanagrafica').change( function(){
|
||||
|
||||
|
||||
session_set('superselect,idanagrafica', $(this).val(), 0);
|
||||
|
||||
var value = !$(this).val() ? true : false;
|
||||
|
||||
$("#idsede").prop("disabled", value);
|
||||
$("#idsede").selectReset();
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
$('#idsede').change( function(){
|
||||
//session_set('superselect,idsede', $(this).val(), 0);
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
@ -241,7 +241,7 @@ if (!empty($rs2)) {
|
||||
|
||||
if (!empty($rs2[$j]['idintervento'])) {
|
||||
echo '
|
||||
'.Modules::link('Interventi', $rs2[$j]['id'], tr('Intervento num. _NUM_ del _DATE_', [
|
||||
'.Modules::link('Interventi', $rs2[$j]['idintervento'], tr('Intervento num. _NUM_ del _DATE_', [
|
||||
'_NUM_' => $rs2[$j]['codice'],
|
||||
'_DATE_' => Translator::dateToLocale($rs2[$j]['data_intervento']),
|
||||
])).'<br>';
|
||||
|
@ -106,7 +106,7 @@ class HTMLWrapper implements WrapperInterface
|
||||
|
||||
$module = \Modules::get($id_module);
|
||||
|
||||
if (in_array($module['permessi'], ['r', 'rw'])) {
|
||||
if (in_array($module->permission, ['r', 'rw'])) {
|
||||
$result = '
|
||||
<button '.$extras.' data-href="'.ROOTDIR.'/add.php?id_module='.$id_module.$get.'&select='.$values['id'].'&ajax=yes" data-target="#bs-popup2" data-toggle="modal" data-title="'.tr('Aggiungi').'" type="button" class="btn'.$classes.'">
|
||||
<i class="fa fa-plus"></i>
|
||||
|
@ -4,12 +4,16 @@ namespace Models;
|
||||
|
||||
use App;
|
||||
use Auth;
|
||||
use Traits\Record;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class Module extends Model
|
||||
{
|
||||
use Record;
|
||||
|
||||
protected $table = 'zz_modules';
|
||||
protected $main_folder = 'modules';
|
||||
|
||||
protected $appends = [
|
||||
'permission',
|
||||
@ -83,7 +87,7 @@ class Module extends Model
|
||||
|
||||
public function plugins()
|
||||
{
|
||||
return $this->hasMany(Plugin::class, 'idmodule_to')->active();
|
||||
return $this->hasMany(Plugin::class, 'idmodule_to');
|
||||
}
|
||||
|
||||
public function prints()
|
||||
|
@ -2,14 +2,20 @@
|
||||
|
||||
namespace Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App;
|
||||
use Traits\Record;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class Plugin extends Model
|
||||
{
|
||||
use Record;
|
||||
|
||||
protected $table = 'zz_plugins';
|
||||
protected $main_folder = 'plugins';
|
||||
|
||||
protected $appends = [
|
||||
'permission',
|
||||
'option',
|
||||
];
|
||||
|
||||
@ -27,9 +33,14 @@ class Plugin extends Model
|
||||
});
|
||||
}
|
||||
|
||||
public function getModuleDirAttribute()
|
||||
/**
|
||||
* Restituisce i permessi relativi all'account in utilizzo.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getPermissionAttribute()
|
||||
{
|
||||
return $this->originalModule()->directory;
|
||||
return $this->originalModule()->permission;
|
||||
}
|
||||
|
||||
public function getOptionAttribute()
|
||||
@ -39,12 +50,30 @@ class Plugin extends Model
|
||||
|
||||
public function getOptionsAttribute($value)
|
||||
{
|
||||
return App::replacePlaceholder($value, app('parent_id'));
|
||||
return App::replacePlaceholder($value, filter('parent_id'));
|
||||
}
|
||||
|
||||
public function getOptions2Attribute($value)
|
||||
{
|
||||
return App::replacePlaceholder($value, app('parent_id'));
|
||||
return App::replacePlaceholder($value, filter('parent_id'));
|
||||
}
|
||||
|
||||
/* Metodi personalizzati */
|
||||
|
||||
public function getCustomAddFile()
|
||||
{
|
||||
if (empty($this->script)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$directory = 'modules/'.$this->originalModule()->directory.'|custom|/plugins';
|
||||
|
||||
return App::filepath($directory, $this->script);
|
||||
}
|
||||
|
||||
public function getCustomEditFile()
|
||||
{
|
||||
return $this->getAddFile();
|
||||
}
|
||||
|
||||
/* Relazioni Eloquent */
|
||||
|
@ -32,7 +32,9 @@ class Modules
|
||||
$modules = [];
|
||||
$references = [];
|
||||
|
||||
$results = Auth::user()->modules();
|
||||
$results = Auth::check() ? Auth::user()->modules() : Module::all();
|
||||
$results->load('plugins');
|
||||
|
||||
foreach ($results as $result) {
|
||||
$modules[$result['id']] = $result;
|
||||
$references[$result['name']] = $result['id'];
|
||||
@ -91,7 +93,7 @@ class Modules
|
||||
*/
|
||||
public static function getPermission($module)
|
||||
{
|
||||
return self::get($module)->permission ?? '-';
|
||||
return self::get($module)->permission;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -9,8 +9,7 @@ class Plugins
|
||||
{
|
||||
/** @var array Elenco dei plugin disponibili */
|
||||
protected static $plugins = [];
|
||||
/** @var array Elenco delle query generiche dei plugin */
|
||||
protected static $queries = [];
|
||||
protected static $references = [];
|
||||
|
||||
/**
|
||||
* Restituisce tutte le informazioni di tutti i plugin installati.
|
||||
@ -20,25 +19,19 @@ class Plugins
|
||||
public static function getPlugins()
|
||||
{
|
||||
if (empty(self::$plugins)) {
|
||||
$database = Database::getConnection();
|
||||
|
||||
$results = $database->fetchArray('SELECT *, (SELECT directory FROM zz_modules WHERE id=idmodule_from) AS module_dir FROM zz_plugins');
|
||||
|
||||
$plugins = [];
|
||||
$references = [];
|
||||
|
||||
foreach ($results as $result) {
|
||||
$result['options'] = App::replacePlaceholder($result['options'], filter('id_parent'));
|
||||
$result['options2'] = App::replacePlaceholder($result['options2'], filter('id_parent'));
|
||||
|
||||
$result['option'] = empty($result['options2']) ? $result['options'] : $result['options2'];
|
||||
|
||||
$result['permessi'] = Modules::getPermission($result['idmodule_to']);
|
||||
|
||||
$plugins[$result['id']] = $result;
|
||||
$plugins[$result['name']] = $result['id'];
|
||||
$modules = Modules::getModules();
|
||||
foreach ($modules as $module) {
|
||||
foreach ($module->plugins as $result) {
|
||||
$plugins[$result['id']] = $result;
|
||||
$references[$result['name']] = $result['id'];
|
||||
}
|
||||
}
|
||||
|
||||
self::$plugins = $plugins;
|
||||
self::$references = $references;
|
||||
}
|
||||
|
||||
return self::$plugins;
|
||||
@ -53,11 +46,13 @@ class Plugins
|
||||
*/
|
||||
public static function get($plugin)
|
||||
{
|
||||
if (!is_numeric($plugin) && !empty(self::getPlugins()[$plugin])) {
|
||||
$plugin = self::getPlugins()[$plugin];
|
||||
$plugins = self::getPlugins();
|
||||
|
||||
if (!is_numeric($plugin) && !empty(self::$references[$plugin])) {
|
||||
$plugin = self::$references[$module];
|
||||
}
|
||||
|
||||
return self::getPlugins()[$plugin];
|
||||
return $plugins[$plugin];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
use Respect\Validation\Validator as v;
|
||||
use Models\Setting;
|
||||
|
||||
/**
|
||||
* Classe per la gestione dell impostazioni del progetto.
|
||||
@ -22,21 +23,20 @@ class Settings
|
||||
public static function getSettings()
|
||||
{
|
||||
if (empty(self::$settings)) {
|
||||
$database = Database::getConnection();
|
||||
|
||||
$settings = [];
|
||||
$references = [];
|
||||
$sections = [];
|
||||
|
||||
$results = $database->select('zz_settings', '*');
|
||||
$results = Setting::all();
|
||||
|
||||
foreach ($results as $result) {
|
||||
$settings[$result['id']] = $result;
|
||||
$references[$result['nome']] = $result['id'];
|
||||
$settings[$result->id] = $result;
|
||||
$references[$result->nome] = $result->id;
|
||||
|
||||
if (!isset($sections[$result['sezione']])) {
|
||||
$sections[$result['sezione']] = [];
|
||||
}
|
||||
$sections[$result['sezione']][] = $result['id'];
|
||||
$sections[$result['sezione']][] = $result->id;
|
||||
}
|
||||
|
||||
self::$settings = $settings;
|
||||
@ -74,45 +74,47 @@ class Settings
|
||||
*/
|
||||
public static function getValue($setting)
|
||||
{
|
||||
return self::get($setting)['valore'];
|
||||
return self::get($setting)->valore;
|
||||
}
|
||||
|
||||
/**
|
||||
* Imposta il valore dell'impostazione indicata.
|
||||
*
|
||||
* @param string|int $setting
|
||||
* @param mixed $value
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function setValue($setting, $value)
|
||||
{
|
||||
$setting = self::get($setting);
|
||||
|
||||
// Trasformazioni
|
||||
// Boolean (checkbox)
|
||||
if ($setting['tipo'] == 'boolean') {
|
||||
if ($setting->tipo == 'boolean') {
|
||||
$value = (empty($value) || $value == 'off') ? false : true;
|
||||
}
|
||||
|
||||
// Validazioni
|
||||
// integer
|
||||
if ($setting['tipo'] == 'integer') {
|
||||
if ($setting->tipo == 'integer') {
|
||||
$validator = v::intVal()->validate($value);
|
||||
}
|
||||
|
||||
// list
|
||||
// verifico che il valore scelto sia nella lista enumerata nel db
|
||||
elseif (preg_match("/list\[(.+?)\]/", $setting['tipo'], $m)) {
|
||||
elseif (preg_match("/list\[(.+?)\]/", $setting->tipo, $m)) {
|
||||
$validator = v::in(explode(',', $m[1]));
|
||||
}
|
||||
|
||||
// Boolean (checkbox)
|
||||
elseif ($setting['tipo'] == 'boolean') {
|
||||
elseif ($setting->tipo == 'boolean') {
|
||||
$validator = v::boolType();
|
||||
}
|
||||
|
||||
if (empty($validator) || $validator->validate($value)) {
|
||||
$database = Database::getConnection();
|
||||
|
||||
$database->update('zz_settings', [
|
||||
'valore' => $value,
|
||||
], [
|
||||
'id' => $setting['id'],
|
||||
]);
|
||||
self::$settings[$setting['id']]['valore'] = $value;
|
||||
$setting->valore = $value;
|
||||
$setting->save();
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -124,7 +126,8 @@ class Settings
|
||||
{
|
||||
$setting = self::get($setting);
|
||||
|
||||
if (preg_match("/list\[(.+?)\]/", $setting['tipo'], $m)) {
|
||||
// Lista predefinita
|
||||
if (preg_match("/list\[(.+?)\]/", $setting->tipo, $m)) {
|
||||
$m = explode(',', $m[1]);
|
||||
$list = '';
|
||||
for ($j = 0; $j < count($m); ++$j) {
|
||||
@ -134,32 +137,36 @@ class Settings
|
||||
$list .= '\\"'.$m[$j].'\\": \\"'.$m[$j].'\\"';
|
||||
}
|
||||
$result = '
|
||||
{[ "type": "select", "label": "'.$setting['nome'].'", "name": "'.$setting['id'].'", "values": "list='.$list.'", "value": "'.$setting['valore'].'" ]}';
|
||||
{[ "type": "select", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "values": "list='.$list.'", "value": "'.$setting->valore.'" ]}';
|
||||
}
|
||||
|
||||
// query
|
||||
elseif (preg_match('/^query=(.+?)$/', $setting['tipo'], $m)) {
|
||||
// Lista da query
|
||||
elseif (preg_match('/^query=(.+?)$/', $setting->tipo, $m)) {
|
||||
$result = '
|
||||
{[ "type": "select", "label": "'.$setting['nome'].'", "name": "'.$setting['id'].'", "values": "'.$setting['tipo'].'", "value": "'.$setting['valore'].'" ]}';
|
||||
{[ "type": "select", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "values": "'.$setting->tipo.'", "value": "'.$setting->valore.'" ]}';
|
||||
}
|
||||
|
||||
// Boolean (checkbox)
|
||||
elseif ($setting['tipo'] == 'boolean') {
|
||||
elseif ($setting->tipo == 'boolean') {
|
||||
$result = '
|
||||
{[ "type": "checkbox", "label": "'.$setting['nome'].'", "name": "'.$setting['id'].'", "placeholder": "'.tr('Attivo').'", "value": "'.$setting['valore'].'" ]}';
|
||||
} elseif ($setting['tipo'] == 'textarea') {
|
||||
$result = '
|
||||
{[ "type": "textarea", "label": "'.$setting['nome'].'", "name": "'.$setting['id'].'", "value": '.json_encode($setting['valore']).' ]}';
|
||||
{[ "type": "checkbox", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "placeholder": "'.tr('Attivo').'", "value": "'.$setting->valore.'" ]}';
|
||||
}
|
||||
// Campo di testo normale
|
||||
else {
|
||||
$numerico = in_array($setting['tipo'], ['integer', 'decimal']);
|
||||
|
||||
$tipo = preg_match('/password/i', $setting['nome'], $m) ? 'password' : $setting['tipo'];
|
||||
// Textarea
|
||||
elseif ($setting->tipo == 'textarea') {
|
||||
$result = '
|
||||
{[ "type": "textarea", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "value": '.json_encode($setting->valore).' ]}';
|
||||
}
|
||||
|
||||
// Campo di testo
|
||||
else {
|
||||
$numerico = in_array($setting->tipo, ['integer', 'decimal']);
|
||||
|
||||
$tipo = preg_match('/password/i', $setting->nome, $m) ? 'password' : $setting->tipo;
|
||||
$tipo = $numerico ? 'number' : 'text';
|
||||
|
||||
$result = '
|
||||
{[ "type": "'.$tipo.'", "label": "'.$setting['nome'].'", "name": "'.$setting['id'].'", "value": "'.$setting['valore'].'"'.($numerico && $setting['tipo'] == 'integer' ? ', "decimals": 0' : '').' ]}';
|
||||
{[ "type": "'.$tipo.'", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "value": "'.$setting->valore.'"'.($numerico && $setting->tipo == 'integer' ? ', "decimals": 0' : '').' ]}';
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
55
src/Traits/Record.php
Normal file
55
src/Traits/Record.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace Traits;
|
||||
|
||||
use App;
|
||||
|
||||
trait Record
|
||||
{
|
||||
public function getAddFile()
|
||||
{
|
||||
if (method_exists($this, 'getCustomAddFile')) {
|
||||
$result = $this->getCustomAddFile();
|
||||
|
||||
if (!empty($result)) {
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
$php = $this->filepath('add.php');
|
||||
$html = $this->filepath('add.html');
|
||||
|
||||
return !empty($php) ? $php : $html;
|
||||
}
|
||||
|
||||
public function hasAddFile()
|
||||
{
|
||||
return !empty($this->getAddFile());
|
||||
}
|
||||
|
||||
public function getEditFile()
|
||||
{
|
||||
if (method_exists($this, 'getCustomEditFile')) {
|
||||
$result = $this->getCustomEditFile();
|
||||
|
||||
if (!empty($result)) {
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
$php = $this->filepath('edit.php');
|
||||
$html = $this->filepath('edit.html');
|
||||
|
||||
return !empty($php) ? $php : $html;
|
||||
}
|
||||
|
||||
public function getPath()
|
||||
{
|
||||
return $this->main_folder.'/'.$this->directory;
|
||||
}
|
||||
|
||||
public function filepath($file)
|
||||
{
|
||||
return App::filepath($this->getPath().'|custom|', $file);
|
||||
}
|
||||
}
|
@ -418,6 +418,8 @@ class Update
|
||||
|
||||
$database = Database::getConnection();
|
||||
|
||||
$database->getPDO()->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
|
||||
|
||||
$mysql_ver = $database->getMySQLVersion();
|
||||
|
||||
if (version_compare($mysql_ver, '5.5.3') >= 0) {
|
||||
@ -454,6 +456,8 @@ class Update
|
||||
foreach ($engines as $engine) {
|
||||
$database->query('ALTER TABLE `'.$engine['TABLE_NAME'].'` ENGINE=InnoDB');
|
||||
}
|
||||
|
||||
$database->getPDO()->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user