openstamanager/modules/aggiornamenti/actions.php

187 lines
5.7 KiB
PHP
Raw Normal View History

<?php
include_once __DIR__.'/../../core.php';
$id = post('id');
2019-05-03 15:41:48 +02:00
switch (filter('op')) {
2018-09-19 09:51:36 +02:00
case 'check':
$api = json_decode(get_remote_data('https://api.github.com/repos/devcode-it/openstamanager/releases'), true);
$version = ltrim($api[0]['tag_name'], 'v');
$current = Update::getVersion();
if (version_compare($current, $version) < 0) {
echo $version;
} else {
echo 'none';
}
break;
case 'upload':
include $docroot.'/modules/aggiornamenti/upload_modules.php';
break;
case 'uninstall':
if (!empty($id)) {
// Leggo l'id del modulo
$rs = $dbo->fetchArray('SELECT id, name, directory FROM zz_modules WHERE id='.prepare($id).' AND `default`=0');
$modulo = $rs[0]['title'];
$module_dir = $rs[0]['directory'];
if (count($rs) == 1) {
// Elimino il modulo dal menu
$dbo->query('DELETE FROM zz_modules WHERE id='.prepare($id).' OR parent='.prepare($id));
$uninstall_script = $docroot.'/modules/'.$module_dir.'/update/uninstall.php';
if (file_exists($uninstall_script)) {
include_once $uninstall_script;
}
delete($docroot.'/modules/'.$module_dir.'/');
2018-07-19 17:29:21 +02:00
flash()->info(tr('Modulo _MODULE_ disinstallato!', [
'_MODULE_' => '"'.$modulo.'"',
]));
}
}
break;
case 'disable':
2018-06-29 18:32:39 +02:00
$dbo->query('UPDATE `zz_modules` SET `enabled` = 0 WHERE (`id` = '.prepare($id).' OR `parent` = '.prepare($id).') AND `id` != '.prepare(Modules::get('Aggiornamenti')['id']));
2018-07-19 17:29:21 +02:00
flash()->info(tr('Modulo _MODULE_ disabilitato!', [
'_MODULE_' => '"'.Modules::get($id)['title'].'"',
]));
break;
case 'enable':
$dbo->query('UPDATE `zz_modules` SET `enabled` = 1 WHERE `id` = '.prepare($id).' OR `parent` = '.prepare($id));
2018-07-19 17:29:21 +02:00
flash()->info(tr('Modulo _MODULE_ abilitato!', [
'_MODULE_' => '"'.Modules::get($id)['title'].'"',
]));
break;
case 'disable_widget':
$dbo->query('UPDATE zz_widgets SET enabled = 0 WHERE id = '.prepare($id));
2018-02-22 09:38:31 +01:00
$rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
$widget = $rs[0]['name'];
2018-07-19 17:29:21 +02:00
flash()->info(tr('Widget _WIDGET_ disabilitato!', [
2018-02-22 09:38:31 +01:00
'_WIDGET_' => '"'.$widget.'"',
]));
break;
case 'enable_widget':
2018-02-22 09:38:31 +01:00
$dbo->query('UPDATE zz_widgets SET enabled=1 WHERE id='.prepare($id));
2018-02-22 09:38:31 +01:00
$rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
$widget = $rs[0]['name'];
2018-07-19 17:29:21 +02:00
flash()->info(tr('Widget _WIDGET_ abilitato!', [
2018-02-22 09:38:31 +01:00
'_WIDGET_' => '"'.$widget.'"',
]));
break;
case 'change_position_widget_top':
2018-02-22 09:38:31 +01:00
$dbo->query("UPDATE zz_widgets SET location='controller_top' WHERE id=".prepare($id));
2018-02-22 09:38:31 +01:00
$rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
$widget = $rs[0]['name'];
2018-07-19 17:29:21 +02:00
flash()->info(tr('Posizione del widget _WIDGET_ aggiornata!', [
2018-02-22 09:38:31 +01:00
'_WIDGET_' => '"'.$widget.'"',
]));
break;
case 'change_position_widget_right':
2018-02-22 09:38:31 +01:00
$dbo->query("UPDATE zz_widgets SET location='controller_right' WHERE id=".prepare($id));
2018-02-22 09:38:31 +01:00
$rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
$widget = $rs[0]['name'];
2018-07-19 17:29:21 +02:00
flash()->info(tr('Posizione del widget _WIDGET_ aggiornata!', [
2018-02-22 09:38:31 +01:00
'_WIDGET_' => '"'.$widget.'"',
]));
break;
// Ordinamento moduli di primo livello
case 'sortmodules':
$rs = $dbo->fetchArray('SELECT id FROM zz_modules WHERE enabled = 1 AND parent IS NULL ORDER BY `order` ASC');
2018-02-18 19:53:23 +01:00
if ($_POST['ids'] != implode(',', array_column($rs, 'id'))) {
$ids = explode(',', $_POST['ids']);
2018-02-18 19:53:23 +01:00
for ($i = 0; $i < count($ids); ++$i) {
$dbo->query('UPDATE zz_modules SET `order`='.prepare($i).' WHERE id='.prepare($ids[$i]));
}
2018-07-19 17:29:21 +02:00
flash()->info(tr('Posizione voci di menù aggiornate!'));
}
2018-02-18 19:53:23 +01:00
break;
case 'sortwidget':
$location = post('location');
$location = empty($id_record) ? 'controller_'.$location : 'editor_'.$location;
$rs = $dbo->fetchArray("SELECT CONCAT('widget_', id) AS id FROM zz_widgets WHERE enabled = 1 AND location = ".prepare($location).' AND id_module = '.prepare($id_module).' ORDER BY `order` ASC');
if ($_POST['ids'] != implode(',', array_column($rs, 'id'))) {
2018-03-24 00:19:15 +01:00
$ids = explode(',', $_POST['ids']);
for ($i = 0; $i < count($ids); ++$i) {
$id = explode('_', $ids[$i]);
$dbo->query('UPDATE zz_widgets SET `order`='.prepare($i).' WHERE id='.prepare($id[1]));
}
2018-07-19 17:29:21 +02:00
flash()->info(tr('Posizioni widgets aggiornate!'));
2018-03-24 00:19:15 +01:00
}
break;
case 'updatewidget':
$location = post('location');
2018-03-24 00:19:15 +01:00
$class = post('class');
$id = explode('_', post('id'));
$location = empty($id_record) ? 'controller_'.$location : 'editor_'.$location;
if (!empty($class)) {
$dbo->query('UPDATE zz_widgets SET class='.prepare($class).' WHERE id='.prepare($id[1]));
}
break;
2019-05-03 15:41:48 +02:00
case 'size':
$folder = filter('folder');
if (!empty($folder)){
if ($folder=='backup')
$folder = App::getConfig()['backup_dir'];
else if ($folder=='files')
$folder = DOCROOT.'/files/';
else if ($folder=='logs')
$folder = DOCROOT.'/logs/';
}else{
$folder = DOCROOT.'/';
}
echo Util\FileSystem::size($folder);
break;
}