Gestione immagini come allegati
Gestione delle immagini degli Articoli come allegati.
This commit is contained in:
parent
c7beacf5ea
commit
addf0c8a43
30
actions.php
30
actions.php
|
@ -40,16 +40,16 @@ if (filter('op') == 'link_file' || filter('op') == 'unlink_file') {
|
|||
else {
|
||||
// UPLOAD
|
||||
if (filter('op') == 'link_file' && !empty($_FILES) && !empty($_FILES['blob']['name'])) {
|
||||
$upload = Uploads::upload($_FILES['blob']['tmp_name'], $_FILES['blob']['name'], $upload_dir, [
|
||||
$upload = Uploads::upload($_FILES['blob'], [
|
||||
'name' => filter('nome_allegato'),
|
||||
'category' => filter('categoria'),
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
'id_plugin' => $id_plugin,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
|
||||
// Creazione file fisico
|
||||
if ($upload) {
|
||||
if (!empty($upload)) {
|
||||
$_SESSION['infos'][] = tr('File caricato correttamente!');
|
||||
} else {
|
||||
$_SESSION['errors'][] = tr('Errore durante il caricamento del file!');
|
||||
|
@ -58,22 +58,18 @@ if (filter('op') == 'link_file' || filter('op') == 'unlink_file') {
|
|||
|
||||
// DELETE
|
||||
elseif (filter('op') == 'unlink_file' && filter('filename') !== null) {
|
||||
$filename = filter('filename');
|
||||
$name = Uploads::delete(filter('filename'), [
|
||||
'id_module' => $id_module,
|
||||
'id_plugin' => $id_plugin,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT * FROM zz_files WHERE id_module='.prepare($id_module).' AND id='.prepare(filter('id')).' AND filename='.prepare($filename));
|
||||
|
||||
if (delete($upload_dir.'/'.$filename)) {
|
||||
$query = 'DELETE FROM zz_files WHERE id_module='.prepare($id_module).' AND id='.prepare(filter('id')).' AND filename='.prepare($filename);
|
||||
if ($dbo->query($query)) {
|
||||
$_SESSION['infos'][] = tr('File _FILE_ eliminato!', [
|
||||
'_FILE_' => '"'.$rs[0]['nome'].'"',
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
$_SESSION['errors'][] = tr("Errore durante l'eliminazione del file _FILE_ in _DIR_!", [
|
||||
'_FILE_' => '"'.$rs[0]['nome'].'"',
|
||||
'_DIR_' => '"files/'.$module_dir.'/"',
|
||||
if (!empty($name)) {
|
||||
$_SESSION['infos'][] = tr('File _FILE_ eliminato!', [
|
||||
'_FILE_' => '"'.$name.'"',
|
||||
]);
|
||||
} else {
|
||||
$_SESSION['errors'][] = tr("Errore durante l'eliminazione del file!");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,17 +30,13 @@ if (post('action') == 'init') {
|
|||
|
||||
// Logo stampe
|
||||
if (!empty($_FILES) && !empty($_FILES['blob']['name'])) {
|
||||
$file_id = Uploads::upload($_FILES['blob']['tmp_name'], $_FILES['blob']['name'], DOCROOT.'/files/anagrafiche', [
|
||||
$file = Uploads::upload($_FILES['blob'], [
|
||||
'name' => 'Logo stampe',
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
|
||||
$file = $dbo->selectOne('zz_files', ['filename'], [
|
||||
'id' => $file_id,
|
||||
]);
|
||||
|
||||
Settings::set('Logo stampe', $file['filename']);
|
||||
Settings::set('Logo stampe', $file);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,72 +3,65 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
switch (post('op')) {
|
||||
case 'update':
|
||||
// Aggiunta articolo
|
||||
case 'add':
|
||||
$codice = post('codice');
|
||||
$descrizione = post('descrizione');
|
||||
$um = post('um');
|
||||
$categoria = post('categoria');
|
||||
$subcategoria = post('subcategoria');
|
||||
|
||||
// Inserisco l'articolo solo se non esiste un altro articolo con stesso codice
|
||||
if ($dbo->fetchNum('SELECT * FROM mg_articoli WHERE codice='.prepare($codice)) == 0) {
|
||||
$dbo->insert('mg_articoli', [
|
||||
'codice' => $codice,
|
||||
'descrizione' => post('descrizione'),
|
||||
'id_categoria' => post('categoria'),
|
||||
'id_sottocategoria' => post('subcategoria'),
|
||||
'attivo' => 1,
|
||||
]);
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
$_SESSION['infos'][] = tr('Aggiunto un nuovo articolo!');
|
||||
} else {
|
||||
$_SESSION['errors'][] = tr('Esiste già un articolo con questo codice!');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// Modifica articolo
|
||||
case 'update':
|
||||
$componente = post('componente_filename');
|
||||
$qta = post('qta');
|
||||
$threshold_qta = post('threshold_qta');
|
||||
|
||||
$abilita_serial = post('abilita_serial');
|
||||
|
||||
$prezzo_vendita = post('prezzo_vendita');
|
||||
$prezzo_acquisto = post('prezzo_acquisto');
|
||||
|
||||
$idiva_vendita = post('idiva_vendita');
|
||||
$gg_garanzia = post('gg_garanzia');
|
||||
$servizio = post('servizio');
|
||||
$componente_filename = post('componente_filename');
|
||||
|
||||
$volume = post('volume');
|
||||
$peso_lordo = post('peso_lordo');
|
||||
|
||||
$attivo = post('attivo');
|
||||
|
||||
$note = post('note');
|
||||
|
||||
$query = 'UPDATE mg_articoli SET '.
|
||||
' codice='.prepare($codice).','.
|
||||
' descrizione='.prepare($descrizione).','.
|
||||
' um='.prepare($um).','.
|
||||
' id_categoria='.prepare($categoria).','.
|
||||
' id_sottocategoria='.prepare($subcategoria).','.
|
||||
' abilita_serial='.prepare($abilita_serial).','.
|
||||
' threshold_qta='.prepare($threshold_qta).','.
|
||||
' prezzo_vendita='.prepare($prezzo_vendita).','.
|
||||
' prezzo_acquisto='.prepare($prezzo_acquisto).','.
|
||||
' idiva_vendita='.prepare($idiva_vendita).','.
|
||||
' gg_garanzia='.prepare($gg_garanzia).','.
|
||||
' servizio='.prepare($servizio).','.
|
||||
' volume='.prepare($volume).','.
|
||||
' peso_lordo='.prepare($peso_lordo).','.
|
||||
' componente_filename='.prepare($componente_filename).','.
|
||||
' attivo='.prepare($attivo).', '.
|
||||
' note='.prepare($note).
|
||||
' WHERE id='.prepare($id_record);
|
||||
$dbo->query($query);
|
||||
$dbo->update('mg_articoli', [
|
||||
'codice' => post('codice'),
|
||||
'descrizione' => post('descrizione'),
|
||||
'um' => post('um'),
|
||||
'id_categoria' => post('categoria'),
|
||||
'id_sottocategoria' => post('subcategoria'),
|
||||
'abilita_serial' => post('abilita_serial'),
|
||||
'threshold_qta' => post('threshold_qta'),
|
||||
'prezzo_vendita' => post('prezzo_vendita'),
|
||||
'prezzo_acquisto' => post('prezzo_acquisto'),
|
||||
'idiva_vendita' => post('idiva_vendita'),
|
||||
'gg_garanzia' => post('gg_garanzia'),
|
||||
'servizio' => post('servizio'),
|
||||
'volume' => post('volume'),
|
||||
'peso_lordo' => post('peso_lordo'),
|
||||
'componente_filename' => $componente,
|
||||
'attivo' => post('attivo'),
|
||||
'note' => post('note'),
|
||||
], ['id' => $id_record]);
|
||||
|
||||
// Leggo la quantità attuale per capire se l'ho modificata
|
||||
$rs = $dbo->fetchArray('SELECT qta FROM mg_articoli WHERE id='.prepare($id_record));
|
||||
$old_qta = $rs[0]['qta'];
|
||||
$old_qta = $records[0]['qta'];
|
||||
$movimento = $qta - $old_qta;
|
||||
|
||||
if ($movimento != 0) {
|
||||
$descrizione_movimento = post('descrizione_movimento');
|
||||
$data_movimento = post('data_movimento');
|
||||
if ($descrizione_movimento != '' && $data_movimento != '') {
|
||||
add_movimento_magazzino($id_record, $movimento, [], $descrizione_movimento, $data_movimento);
|
||||
} else {
|
||||
add_movimento_magazzino($id_record, $movimento);
|
||||
}
|
||||
|
||||
add_movimento_magazzino($id_record, $movimento, [], $descrizione_movimento, $data_movimento);
|
||||
}
|
||||
|
||||
/*
|
||||
Salvataggio info componente (campo `contenuto`)
|
||||
*/
|
||||
$componente = post('componente_filename');
|
||||
// Salvataggio info componente (campo `contenuto`)
|
||||
if (!empty($componente)) {
|
||||
$contenuto = \Util\Ini::write(file_get_contents($docroot.'/files/my_impianti/'.$componente), $post);
|
||||
|
||||
|
@ -77,12 +70,15 @@ switch (post('op')) {
|
|||
|
||||
// Upload file
|
||||
if (!empty($_FILES) && !empty($_FILES['immagine01']['name'])) {
|
||||
$tmp = $_FILES['immagine01']['tmp_name'];
|
||||
$filename = Uploads::upload($_FILES['immagine01'], [
|
||||
'name' => 'Immagine',
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
], [
|
||||
'thumbnails' => true,
|
||||
]);
|
||||
|
||||
$filename = basename($_FILES['immagine01']['name']);
|
||||
$filename = unique_filename($filename, $upload_dir);
|
||||
|
||||
if (create_thumbnails($tmp, $filename, $upload_dir)) {
|
||||
if (!empty($filename)) {
|
||||
$dbo->query('UPDATE mg_articoli SET immagine01='.prepare($filename).' WHERE id='.prepare($id_record));
|
||||
} else {
|
||||
$_SESSION['warnings'][] = tr('Errore durante il caricamento del file in _DIR_!', [
|
||||
|
@ -93,38 +89,16 @@ switch (post('op')) {
|
|||
|
||||
// Eliminazione file
|
||||
if (post('delete_immagine01') !== null) {
|
||||
$filename = post('immagine01');
|
||||
$f = pathinfo($filename);
|
||||
|
||||
delete($upload_dir.'/'.$f['filename'].'.'.$f['extension']);
|
||||
delete($upload_dir.'/'.$f['filename'].'_thumb100.'.$f['extension']);
|
||||
delete($upload_dir.'/'.$f['filename'].'_thumb250.'.$f['extension']);
|
||||
Uploads::delete($records[0]['immagine01'], [
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
|
||||
$dbo->query("UPDATE mg_articoli SET immagine01 = '' WHERE id=".prepare($id_record));
|
||||
}
|
||||
|
||||
$_SESSION['infos'][] = tr('Informazioni salvate correttamente!');
|
||||
break;
|
||||
|
||||
// Aggiunta articolo
|
||||
case 'add':
|
||||
$codice = post('codice');
|
||||
$descrizione = post('descrizione');
|
||||
$categoria = post('categoria');
|
||||
$subcategoria = post('subcategoria');
|
||||
|
||||
// Inserisco l'articolo solo se non esiste un altro articolo con stesso codice
|
||||
if ($dbo->fetchNum('SELECT * FROM mg_articoli WHERE codice='.prepare($codice)) == 0) {
|
||||
$query = 'INSERT INTO mg_articoli(codice, descrizione, id_categoria, id_sottocategoria, attivo) VALUES ('.prepare($codice).', '.prepare($descrizione).', '.prepare($categoria).', '.prepare($subcategoria).', 1)';
|
||||
$dbo->query($query);
|
||||
$_SESSION['infos'][] = tr('Aggiunto un nuovo articolo!');
|
||||
|
||||
$query = 'SELECT * FROM mg_articoli WHERE codice='.prepare($codice);
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$id_record = $rs[0]['id'];
|
||||
} else {
|
||||
$_SESSION['errors'][] = tr('Esiste già un articolo con questo codice!');
|
||||
}
|
||||
break;
|
||||
|
||||
// Aggiunta prodotto
|
||||
|
@ -249,14 +223,14 @@ switch (post('op')) {
|
|||
|
||||
case 'delmovimento':
|
||||
$idmovimento = post('idmovimento');
|
||||
|
||||
|
||||
// Lettura qtà movimento
|
||||
$rs = $dbo->fetchArray( 'SELECT idarticolo, qta FROM mg_movimenti WHERE id='.prepare($idmovimento) );
|
||||
$rs = $dbo->fetchArray('SELECT idarticolo, qta FROM mg_movimenti WHERE id='.prepare($idmovimento));
|
||||
$qta = $rs[0]['qta'];
|
||||
$idarticolo = $rs[0]['idarticolo'];
|
||||
|
||||
|
||||
// Aggiorno la quantità dell'articolo
|
||||
$dbo->query( 'UPDATE mg_articoli SET qta=qta-'.$qta.' WHERE id='.prepare($idarticolo) );
|
||||
$dbo->query('UPDATE mg_articoli SET qta=qta-'.$qta.' WHERE id='.prepare($idarticolo));
|
||||
|
||||
$query = 'DELETE FROM mg_movimenti WHERE id='.prepare($idmovimento);
|
||||
if ($dbo->query($query)) {
|
||||
|
@ -276,3 +250,8 @@ switch (post('op')) {
|
|||
$_SESSION['infos'][] = tr('Articolo eliminato!');
|
||||
break;
|
||||
}
|
||||
|
||||
// Operazioni aggiuntive per l'immagine
|
||||
if (filter('op') == 'unlink_file' && $name == 'Immagine') {
|
||||
$dbo->query("UPDATE mg_articoli SET immagine01 = '' WHERE id=".prepare($id_record));
|
||||
}
|
||||
|
|
|
@ -7,6 +7,10 @@ include_once Modules::filepath('MyImpianti', 'modutil.php');
|
|||
|
||||
$_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
||||
|
||||
$fileinfo = Uploads::fileInfo($records[0]['immagine01']);
|
||||
$img = !empty($records[0]['immagine01']) ? ROOTDIR.'/'.Uploads::getUploadDirectory($id_module).'/'.$fileinfo['filename'].'_thumb600.'.$fileinfo['extension'] : '';
|
||||
|
||||
|
||||
?><form action="" method="post" id="edit-form" enctype="multipart/form-data">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="op" value="update">
|
||||
|
@ -20,7 +24,7 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "image", "label": "<?php echo tr('Immagine'); ?>", "name": "immagine01", "class": "img-thumbnail", "value": "<?php echo !empty($records[0]['immagine01']) ? $rootdir.'/files/articoli/'.$records[0]['immagine01'] : ''; ?>" ]}
|
||||
{[ "type": "image", "label": "<?php echo tr('Immagine'); ?>", "name": "immagine01", "class": "img-thumbnail", "value": "<?php echo $img; ?>" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
|
|
@ -477,14 +477,8 @@ class Database extends Util\Singleton
|
|||
$update[] = $this->quote($key).' = '.$this->prepareValue($key, $value);
|
||||
}
|
||||
|
||||
// Condizioni di aggiornamento
|
||||
$where = [];
|
||||
foreach ($conditions as $key => $value) {
|
||||
$where[] = $this->quote($key).' = '.$this->prepareValue($key, $value);
|
||||
}
|
||||
|
||||
// Costruzione della query
|
||||
$query = 'UPDATE '.$this->quote($table).' SET '.implode($update, ', ').' WHERE '.implode($where, ' AND ');
|
||||
$query = 'UPDATE '.$this->quote($table).' SET '.implode($update, ', ').' WHERE '.$this->whereStatement($conditions);
|
||||
|
||||
if (!empty($return)) {
|
||||
return $query;
|
||||
|
@ -581,13 +575,40 @@ class Database extends Util\Singleton
|
|||
|
||||
$result = $this->select($table, $array, $conditions, $order, $limit, $return);
|
||||
|
||||
if (isset($result[0])) {
|
||||
if (!is_string($result) && isset($result[0])) {
|
||||
return $result[0];
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Costruisce la query per l'DELETE definito dagli argomenti.
|
||||
*
|
||||
* @since 2.4.1
|
||||
*
|
||||
* @param string $table
|
||||
* @param array $conditions
|
||||
* @param bool $return
|
||||
*
|
||||
* @return string|array
|
||||
*/
|
||||
public function delete($table, $conditions, $return = false)
|
||||
{
|
||||
if (!is_string($table) || !is_array($conditions)) {
|
||||
throw new UnexpectedValueException();
|
||||
}
|
||||
|
||||
// Costruzione della query
|
||||
$query = 'DELETE FROM '.$this->quote($table).' WHERE '.$this->whereStatement($conditions);
|
||||
|
||||
if (!empty($return)) {
|
||||
return $query;
|
||||
} else {
|
||||
return $this->query($query);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sincronizza i valori indicati associati alle condizioni, rimuovendo le combinazioni aggiuntive e inserendo quelle non ancora presenti.
|
||||
*
|
||||
|
@ -677,7 +698,7 @@ class Database extends Util\Singleton
|
|||
if (!empty($field) && !empty($sync)) {
|
||||
$conditions[$field] = $sync;
|
||||
|
||||
$this->query('DELETE FROM '.$this->quote($table).' WHERE '.$this->whereStatement($conditions));
|
||||
$this->delete($table, $conditions);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -749,7 +770,13 @@ class Database extends Util\Singleton
|
|||
}
|
||||
// Condizione di uguaglianza
|
||||
else {
|
||||
$result[] = $this->quote($key).' = '.$this->prepareValue($key, $value);
|
||||
$prepared = $this->prepareValue($key, $value);
|
||||
|
||||
if ($prepared == 'NULL') {
|
||||
$result[] = $this->quote($key).' IS '.$prepared;
|
||||
} else {
|
||||
$result[] = $this->quote($key).' = '.$prepared;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
116
src/Uploads.php
116
src/Uploads.php
|
@ -120,29 +120,50 @@ class Uploads
|
|||
'wpd' => 'application/wordperfect',
|
||||
];
|
||||
|
||||
public static function getUploadDirectory($id_module, $id_plugin = null)
|
||||
{
|
||||
if (empty($id_plugin)) {
|
||||
$directory = Modules::get($id_module)['directory'];
|
||||
} else {
|
||||
$info = Plugins::get($id_plugin);
|
||||
|
||||
if (!empty($info['script'])) {
|
||||
$directory = self::fileInfo($info['script'])['name'];
|
||||
} else {
|
||||
$directory = $info['directory'];
|
||||
}
|
||||
}
|
||||
|
||||
return 'files/'.$directory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Effettua l'upload di un file nella cartella indicata.
|
||||
*
|
||||
* @param string $src
|
||||
* @param string $original
|
||||
* @param string $upload_dir
|
||||
* @param array $source
|
||||
* @param string $directory
|
||||
* @param array $data
|
||||
* @param array $options
|
||||
*
|
||||
* @return int|bool
|
||||
* @return string
|
||||
*/
|
||||
public static function upload($src, $original, $upload_dir, $data = [])
|
||||
public static function upload($source, $data, $options = [])
|
||||
{
|
||||
$extension = pathinfo($original)['extension'];
|
||||
$src = $source['tmp_name'];
|
||||
$original = $source['name'];
|
||||
|
||||
$extension = strtolower(pathinfo($original)['extension']);
|
||||
$ok = self::isSupportedType($extension);
|
||||
|
||||
$directory = DOCROOT.'/'.self::getUploadDirectory($data['id_module'], $data['id_plugin']);
|
||||
|
||||
do {
|
||||
$filename = random_string().'.'.$extension;
|
||||
} while (file_exists($upload_dir.'/'.$filename));
|
||||
} while (file_exists($directory.'/'.$filename));
|
||||
|
||||
// Creazione file fisico
|
||||
if (!directory($upload_dir) || !move_uploaded_file($src, $upload_dir.'/'.$filename)) {
|
||||
return false;
|
||||
if (!directory($directory) || !move_uploaded_file($src, $directory.'/'.$filename)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$database = Database::getConnection();
|
||||
|
@ -154,11 +175,15 @@ class Uploads
|
|||
'original' => $original,
|
||||
'category' => !empty($data['category']) ? $data['category'] : null,
|
||||
'id_module' => !empty($data['id_module']) ? $data['id_module'] : null,
|
||||
'id_record' => !empty($data['id_record']) ? $data['id_record'] : null,
|
||||
'id_plugin' => !empty($data['id_plugin']) ? $data['id_plugin'] : null,
|
||||
'id_record' => $data['id_record'],
|
||||
]);
|
||||
|
||||
return $database->lastInsertedID();
|
||||
if (!empty($options['thumbnails'])) {
|
||||
self::thumbnails($directory.'/'.$filename, $directory);
|
||||
}
|
||||
|
||||
return $filename;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -172,4 +197,73 @@ class Uploads
|
|||
{
|
||||
return in_array($extension, array_keys(self::$allowed_types));
|
||||
}
|
||||
|
||||
protected static function thumbnails($filepath, $directory = null)
|
||||
{
|
||||
$fileinfo = self::fileInfo($filepath);
|
||||
$directory = empty($directory) ? dirname($filepath) : $directory;
|
||||
|
||||
$driver = extension_loaded('gd') ? 'gd' : 'imagick';
|
||||
Intervention\Image\ImageManagerStatic::configure(['driver' => $driver]);
|
||||
|
||||
$img = Intervention\Image\ImageManagerStatic::make($filepath);
|
||||
|
||||
$img->resize(600, null, function ($constraint) {
|
||||
$constraint->aspectRatio();
|
||||
});
|
||||
$img->save(slashes($directory.'/'.$fileinfo['filename'].'_thumb600.'.$fileinfo['extension']));
|
||||
|
||||
$img->resize(250, null, function ($constraint) {
|
||||
$constraint->aspectRatio();
|
||||
});
|
||||
$img->save(slashes($directory.'/'.$fileinfo['filename'].'_thumb250.'.$fileinfo['extension']));
|
||||
|
||||
$img->resize(100, null, function ($constraint) {
|
||||
$constraint->aspectRatio();
|
||||
});
|
||||
$img->save(slashes($directory.'/'.$fileinfo['filename'].'_thumb100.'.$fileinfo['extension']));
|
||||
}
|
||||
|
||||
public static function delete($filename, $data)
|
||||
{
|
||||
$database = Database::getConnection();
|
||||
|
||||
$name = $database->selectOne('zz_files', ['nome'], [
|
||||
'filename' => $filename,
|
||||
'id_module' => !empty($data['id_module']) ? $data['id_module'] : null,
|
||||
'id_plugin' => !empty($data['id_plugin']) ? $data['id_plugin'] : null,
|
||||
'id_record' => $data['id_record'],
|
||||
])['nome'];
|
||||
|
||||
$fileinfo = self::fileInfo($filename);
|
||||
$directory = DOCROOT.'/'.self::getUploadDirectory($data['id_module'], $data['id_plugin']);
|
||||
|
||||
$files = [
|
||||
$directory.'/'.$fileinfo['basename'],
|
||||
$directory.'/'.$fileinfo['filename'].'_thumb600.'.$fileinfo['extension'],
|
||||
$directory.'/'.$fileinfo['filename'].'_thumb100.'.$fileinfo['extension'],
|
||||
$directory.'/'.$fileinfo['filename'].'_thumb250.'.$fileinfo['extension'],
|
||||
];
|
||||
|
||||
if (delete($files)) {
|
||||
$database->delete('zz_files', [
|
||||
'filename' => $fileinfo['basename'],
|
||||
'id_module' => !empty($data['id_module']) ? $data['id_module'] : null,
|
||||
'id_plugin' => !empty($data['id_plugin']) ? $data['id_plugin'] : null,
|
||||
'id_record' => $data['id_record'],
|
||||
]);
|
||||
|
||||
return $name;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static function fileInfo($filepath)
|
||||
{
|
||||
$infos = pathinfo($filepath);
|
||||
$infos['extension'] = strtolower($infos['extension']);
|
||||
|
||||
return $infos;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -374,3 +374,7 @@ INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`,
|
|||
-- Aggiunto supporto a Note di accredito e addebito
|
||||
ALTER TABLE `co_documenti` ADD `ref_documento` int(11) AFTER `idagente`, ADD FOREIGN KEY (`ref_documento`) REFERENCES `co_documenti`(`id`) ON DELETE CASCADE;
|
||||
ALTER TABLE `co_righe_documenti` ADD `qta_evasa` int(11) NOT NULL AFTER `qta`;
|
||||
|
||||
-- Fix id_sottocategoria in mg_articoli
|
||||
ALTER TABLE `mg_articoli` CHANGE `id_sottocategoria` `id_sottocategoria` int(11);
|
||||
INSERT INTO `zz_files` (`id_module`, `id_record`, `nome`, `filename`, `original`) SELECT (SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'), `id`, 'Immagine', `immagine01`, `immagine01` FROM `mg_articoli`;
|
||||
|
|
Loading…
Reference in New Issue