parent
3d61592543
commit
cec0d1d7a9
|
@ -57,7 +57,7 @@ La documentazione ufficiale è disponibile all'indirizzo <https://devcode-it.git
|
|||
L'installazione del gestionale richiede la presenza di un server web con abilitato il [DBMS MySQL](https://www.mysql.com) e il linguaggio di programmazione [PHP](http://php.net).
|
||||
|
||||
- PHP >= 5.6
|
||||
- MySQL >= 5.0
|
||||
- MySQL >= 5.6.5
|
||||
|
||||
Per ulteriori informazioni sui pacchetti che forniscono questi elementi di default, visitare la sezione [Installazione](https://devcode-it.github.io/openstamanager/installazione.html) della documentazione.
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ currentMenu: installazione
|
|||
L'installazione del gestionale richiede la presenza di un server web con abilitato il [DBMS MySQL](https://www.mysql.com) e il linguaggio di programmazione [PHP](http://php.net).
|
||||
|
||||
- PHP >= 5.6
|
||||
- MySQL >= 5.0
|
||||
- MySQL >= 5.6.5
|
||||
|
||||
Per ulteriori informazioni sui pacchetti che forniscono questi elementi di default, visitare la sezione [Installazione](https://devcode-it.github.io/openstamanager/installazione.html) della documentazione.
|
||||
|
||||
|
|
|
@ -38,31 +38,25 @@ switch (post('op')) {
|
|||
break;
|
||||
|
||||
case 'disable':
|
||||
$dbo->query('UPDATE zz_modules SET enabled=0 WHERE id='.prepare($id));
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT id, name FROM zz_modules WHERE id='.prepare($id));
|
||||
$modulo = $rs[0]['name'];
|
||||
$dbo->query('UPDATE `zz_modules` SET `enabled` = 0 WHERE `id` = '.prepare($id).' OR `parent` = '.prepare($id));
|
||||
|
||||
$_SESSION['infos'][] = tr('Modulo _MODULE_ disabilitato!', [
|
||||
'_MODULE_' => '"'.$modulo.'"',
|
||||
'_MODULE_' => '"'.Modules::get($id)['name'].'"',
|
||||
]);
|
||||
|
||||
break;
|
||||
|
||||
case 'enable':
|
||||
$dbo->query('UPDATE zz_modules SET enabled=1 WHERE id='.prepare($id));
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT id, name FROM zz_modules WHERE id='.prepare($id));
|
||||
$modulo = $rs[0]['name'];
|
||||
$dbo->query('UPDATE `zz_modules` SET `enabled` = 1 WHERE `id` = '.prepare($id).' OR `parent` = '.prepare($id));
|
||||
|
||||
$_SESSION['infos'][] = tr('Modulo _MODULE_ abilitato!', [
|
||||
'_MODULE_' => '"'.$modulo.'"',
|
||||
'_MODULE_' => '"'.Modules::get($id)['name'].'"',
|
||||
]);
|
||||
|
||||
break;
|
||||
|
||||
case 'disable_widget':
|
||||
$dbo->query('UPDATE zz_widgets SET enabled=0 WHERE id='.prepare($id));
|
||||
$dbo->query('UPDATE zz_widgets SET enabled = 0 WHERE id = '.prepare($id));
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
|
||||
$widget = $rs[0]['name'];
|
||||
|
|
|
@ -48,7 +48,7 @@ if (get_var('Attiva aggiornamenti')) {
|
|||
<h3 class="box-title">'.tr('Carica un aggiornamento').'</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<form action="'.$rootdir.'/controller.php?id_module='.$id_module.'" method="post" enctype="multipart/form-data" class="form-inline" id="update">
|
||||
<form action="'.ROOTDIR.'/controller.php?id_module='.$id_module.'" method="post" enctype="multipart/form-data" class="form-inline" id="update">
|
||||
<input type="hidden" name="op" value="upload">
|
||||
<input type="hidden" name="type" value="update">
|
||||
|
||||
|
@ -70,7 +70,7 @@ if (get_var('Attiva aggiornamenti')) {
|
|||
<h3 class="box-title">'.tr('Carica un nuovo modulo').'</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<form action="'.$rootdir.'/controller.php?id_module='.$id_module.'" method="post" enctype="multipart/form-data" class="form-inline" id="module">
|
||||
<form action="'.ROOTDIR.'/controller.php?id_module='.$id_module.'" method="post" enctype="multipart/form-data" class="form-inline" id="module">
|
||||
<input type="hidden" name="op" value="upload">
|
||||
<input type="hidden" name="type" value="new">
|
||||
|
||||
|
@ -100,7 +100,7 @@ echo '
|
|||
<th width="20">'.tr('Opzioni').'</th>
|
||||
</tr>';
|
||||
|
||||
$modules = $dbo->fetchArray('SELECT * FROM zz_modules WHERE parent IS NULL ORDER BY `order` ASC');
|
||||
$modules = Modules::getHierarchy();
|
||||
|
||||
$osm_version = Update::getVersion();
|
||||
|
||||
|
@ -118,9 +118,9 @@ foreach ($modules as $module) {
|
|||
// Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
|
||||
if ($module['id'] != $id_module) {
|
||||
if ($module['enabled']) {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo modulo?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'disable', id: '".$module['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo modulo?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'disable', id: '".$module['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
} else {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo modulo?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'enable', id: '".$module['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo modulo?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'enable', id: '".$module['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -153,7 +153,7 @@ foreach ($modules as $module) {
|
|||
// Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti
|
||||
if (empty($module['default'])) {
|
||||
echo "
|
||||
<a href=\"javascript:;\" data-toggle='tooltip' title=\"".tr('Disinstalla')."...\" onclick=\"if( confirm('".tr('Vuoi disinstallare questo modulo?').' '.tr('Tutti i dati salvati andranno persi!')."') ){ if( confirm('".tr('Sei veramente sicuro?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'uninstall', id: '".$module['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); } }\"><i class='fa fa-trash'></i></a>";
|
||||
<a href=\"javascript:;\" data-toggle='tooltip' title=\"".tr('Disinstalla')."...\" onclick=\"if( confirm('".tr('Vuoi disinstallare questo modulo?').' '.tr('Tutti i dati salvati andranno persi!')."') ){ if( confirm('".tr('Sei veramente sicuro?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'uninstall', id: '".$module['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); } }\"><i class='fa fa-trash'></i></a>";
|
||||
} else {
|
||||
echo "
|
||||
<a class='disabled text-muted'>
|
||||
|
@ -166,71 +166,7 @@ foreach ($modules as $module) {
|
|||
</tr>';
|
||||
|
||||
// Prima di cambiare modulo verifico se ci sono sottomoduli
|
||||
$submodules = $dbo->fetchArray('SELECT * FROM zz_modules WHERE parent='.prepare($module['id']).' ORDER BY `order` ASC');
|
||||
foreach ($submodules as $sub) {
|
||||
// STATO
|
||||
if (!empty($sub['enabled'])) {
|
||||
$text = tr('Abilitato');
|
||||
$text .= ($sub['id'] != $id_module) ? '. '.tr('Clicca per disabilitarlo').'...' : '';
|
||||
$stato = '<i class="fa fa-cog fa-spin text-success" data-toggle="tooltip" title="'.$text.'"></i>';
|
||||
} else {
|
||||
$stato = '<i class="fa fa-cog text-warning" data-toggle="tooltip" title="'.tr('Non abilitato').'"></i>';
|
||||
$class = 'warning';
|
||||
}
|
||||
|
||||
// Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
|
||||
if ($sub['id'] != $id_module) {
|
||||
if ($sub['enabled']) {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo modulo?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'disable', id: '".$sub['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
} else {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo modulo?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'enable', id: '".$sub['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
}
|
||||
}
|
||||
|
||||
// COMPATIBILITA'
|
||||
$compatibilities = explode(',', $sub['compatibility']);
|
||||
// Controllo per ogni versione se la regexp combacia per dire che è compatibile o meno
|
||||
$comp = false;
|
||||
|
||||
foreach ($compatibilities as $compatibility) {
|
||||
$comp = (preg_match('/'.$compatibility.'/', $osm_version)) ? true : $comp;
|
||||
}
|
||||
|
||||
if ($comp) {
|
||||
$compatible = '<i class="fa fa-check-circle text-success" data-toggle="tooltip" title="'.tr('Compatibile').'"></i>';
|
||||
($sub['enabled']) ? $class = 'success' : $class = 'warning';
|
||||
} else {
|
||||
$compatible = '<i class="fa fa-warning text-danger" data-toggle="tooltip" title="'.tr('Non compatibile!').tr('Questo modulo è compatibile solo con le versioni').': '.$sub['compatibility'].'"></i>';
|
||||
$class = 'danger';
|
||||
}
|
||||
|
||||
echo '
|
||||
<tr class="'.$class.'">
|
||||
<td><small> - '.$sub['name'].'</small></td>
|
||||
<td align="right">'.$sub['version'].'</td>
|
||||
<td align="center">'.$stato.'</td>
|
||||
<td align="center">'.$compatible.'</td>';
|
||||
|
||||
echo '
|
||||
<td>';
|
||||
|
||||
// Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti
|
||||
if (empty($sub['default'])) {
|
||||
echo "
|
||||
<a href=\"javascript:;\" data-toggle='tooltip' title=\"".tr('Disinstalla')."...\" onclick=\"if( confirm('".tr('Vuoi disinstallare questo modulo?').' '.tr('Tutti i dati salvati andranno persi!')."') ){ if( confirm('".tr('Sei veramente sicuro?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'uninstall', id: '".$sub['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); } }\">
|
||||
<i class='fa fa-trash'></i>
|
||||
</a>";
|
||||
} else {
|
||||
echo "
|
||||
<a class='disabled text-muted'>
|
||||
<i class='fa fa-trash'></i>
|
||||
</a>";
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
echo submodules($module['children']);
|
||||
}
|
||||
|
||||
echo '
|
||||
|
@ -273,9 +209,9 @@ foreach ($widgets as $widget) {
|
|||
|
||||
// Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
|
||||
if ($widget['enabled']) {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo widget?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'disable_widget', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo widget?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'disable_widget', id: '".$widget['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
} else {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo widget?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'enable_widget', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo widget?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'enable_widget', id: '".$widget['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
}
|
||||
|
||||
// POSIZIONE
|
||||
|
@ -287,10 +223,10 @@ foreach ($widgets as $widget) {
|
|||
|
||||
if ($widget['location'] == 'controller_right') {
|
||||
$posizione = "<i class='fa fa-arrow-up text-warning' data-toggle='tooltip' title=\"".tr('Clicca per cambiare la posizione...')."\"></i> <i class='fa fa-arrow-right text-success' data-toggle='tooltip' title=\"\"></i>";
|
||||
$posizione = "<a href='javascript:;' onclick=\"if( confirm('".tr('Cambiare la posizione di questo widget?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'change_position_widget_top', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$posizione."</a>\n";
|
||||
$posizione = "<a href='javascript:;' onclick=\"if( confirm('".tr('Cambiare la posizione di questo widget?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'change_position_widget_top', id: '".$widget['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); }\"\">".$posizione."</a>\n";
|
||||
} elseif ($widget['location'] == 'controller_top') {
|
||||
$posizione = "<i class='fa fa-arrow-up text-success' data-toggle='tooltip' title=\"\"></i> <i class='fa fa-arrow-right text-warning' data-toggle='tooltip' title=\"".tr('Clicca per cambiare la posizione...').'"></i></i>';
|
||||
$posizione = "<a href='javascript:;' onclick=\"if( confirm('".tr('Cambiare la posizione di questo widget?')."') ){ $.post( '".$rootdir.'/actions.php?id_module='.$id_module."', { op: 'change_position_widget_right', id: '".$widget['id']."' }, function(response){ location.href='".$rootdir.'/controller.php?id_module='.$id_module."'; }); }\"\">".$posizione."</a>\n";
|
||||
$posizione = "<a href='javascript:;' onclick=\"if( confirm('".tr('Cambiare la posizione di questo widget?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'change_position_widget_right', id: '".$widget['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); }\"\">".$posizione."</a>\n";
|
||||
}
|
||||
|
||||
echo '
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
<?php
|
||||
|
||||
function submodules($list, $depth = 1)
|
||||
{
|
||||
$osm_version = Update::getVersion();
|
||||
|
||||
$id_module = App::getCurrentModule()['id'];
|
||||
|
||||
foreach ($list as $sub) {
|
||||
// STATO
|
||||
if (!empty($sub['enabled'])) {
|
||||
$text = tr('Abilitato');
|
||||
$text .= ($sub['id'] != $id_module) ? '. '.tr('Clicca per disabilitarlo').'...' : '';
|
||||
$stato = '<i class="fa fa-cog fa-spin text-success" data-toggle="tooltip" title="'.$text.'"></i>';
|
||||
} else {
|
||||
$stato = '<i class="fa fa-cog text-warning" data-toggle="tooltip" title="'.tr('Non abilitato').'"></i>';
|
||||
$class = 'warning';
|
||||
}
|
||||
|
||||
// Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
|
||||
if ($sub['id'] != $id_module) {
|
||||
if ($sub['enabled']) {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Disabilitare questo modulo?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'disable', id: '".$sub['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); }\">".$stato."</a>\n";
|
||||
} else {
|
||||
$stato = "<a href='javascript:;' onclick=\"if( confirm('".tr('Abilitare questo modulo?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'enable', id: '".$sub['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); }\"\">".$stato."</a>\n";
|
||||
}
|
||||
}
|
||||
|
||||
// COMPATIBILITA'
|
||||
// Controllo per ogni versione se la regexp combacia per dire che è compatibile o meno
|
||||
$compatibilities = explode(',', $sub['compatibility']);
|
||||
|
||||
$comp = false;
|
||||
foreach ($compatibilities as $compatibility) {
|
||||
$comp = (preg_match('/'.$compatibility.'/', $osm_version)) ? true : $comp;
|
||||
}
|
||||
|
||||
if ($comp) {
|
||||
$compatible = '<i class="fa fa-check-circle text-success" data-toggle="tooltip" title="'.tr('Compatibile').'"></i>';
|
||||
($sub['enabled']) ? $class = 'success' : $class = 'warning';
|
||||
} else {
|
||||
$compatible = '<i class="fa fa-warning text-danger" data-toggle="tooltip" title="'.tr('Non compatibile!').tr('Questo modulo è compatibile solo con le versioni').': '.$sub['compatibility'].'"></i>';
|
||||
$class = 'danger';
|
||||
}
|
||||
|
||||
$result .= '
|
||||
<tr class="'.$class.'">
|
||||
<td><small>'.str_repeat(' ', $depth * 4).'- '.$sub['name'].'</small></td>
|
||||
<td align="right">'.$sub['version'].'</td>
|
||||
<td align="center">'.$stato.'</td>
|
||||
<td align="center">'.$compatible.'</td>';
|
||||
|
||||
$result .= '
|
||||
<td>';
|
||||
|
||||
// Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti
|
||||
if (empty($sub['default'])) {
|
||||
$result .= "
|
||||
<a href=\"javascript:;\" data-toggle='tooltip' title=\"".tr('Disinstalla')."...\" onclick=\"if( confirm('".tr('Vuoi disinstallare questo modulo?').' '.tr('Tutti i dati salvati andranno persi!')."') ){ if( confirm('".tr('Sei veramente sicuro?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'uninstall', id: '".$sub['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); } }\">
|
||||
<i class='fa fa-trash'></i>
|
||||
</a>";
|
||||
} else {
|
||||
$result .= "
|
||||
<a class='disabled text-muted'>
|
||||
<i class='fa fa-trash'></i>
|
||||
</a>";
|
||||
}
|
||||
|
||||
$result .= '
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
$result .= submodules($sub['children'], $depth + 1);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
|
@ -285,14 +285,14 @@ class Modules
|
|||
$pos = array_search($module['t'.$actual.'.id'], array_column($data, 'id'));
|
||||
if ($pos === false && !empty($module['t'.$actual.'.id'])) {
|
||||
$array = self::get($module['t'.$actual.'.id']);
|
||||
$array['childrens'] = [];
|
||||
$array['children'] = [];
|
||||
|
||||
$data[] = $array;
|
||||
$pos = count($data) - 1;
|
||||
}
|
||||
|
||||
if (!empty($module['t'.($actual + 1).'.id'])) {
|
||||
$data[$pos]['childrens'] = self::buildArray($module, $data[$pos]['childrens'], $actual + 1);
|
||||
$data[$pos]['children'] = self::buildArray($module, $data[$pos]['children'], $actual + 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -341,7 +341,7 @@ class Modules
|
|||
$active = ($actual == $element['name']);
|
||||
$show = (self::getPermission($element['id']) != '-' && !empty($element['enabled'])) ? true : false;
|
||||
|
||||
$submenus = $element['childrens'];
|
||||
$submenus = $element['children'];
|
||||
if (!empty($submenus)) {
|
||||
$temp = '';
|
||||
foreach ($submenus as $submenu) {
|
||||
|
|
Loading…
Reference in New Issue