Aggiornamento classe Uploads per futura rimozione
Fix di alcuni bug ristretti a PHP 8.
This commit is contained in:
parent
c60b5d0bd9
commit
dc43af57b0
|
@ -70,13 +70,13 @@ if (post('action') == 'init') {
|
|||
|
||||
// Logo stampe
|
||||
if (!empty($_FILES) && !empty($_FILES['blob']['name'])) {
|
||||
$file = Uploads::upload($_FILES['blob'], [
|
||||
$upload = Uploads::upload($_FILES['blob'], [
|
||||
'name' => 'Logo stampe',
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
|
||||
Settings::setValue('Logo stampe', $file);
|
||||
Settings::setValue('Logo stampe', $upload->filename);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -166,13 +166,14 @@ switch (post('op')) {
|
|||
|
||||
// Upload file
|
||||
if (!empty($_FILES) && !empty($_FILES['immagine']['name'])) {
|
||||
$filename = Uploads::upload($_FILES['immagine'], [
|
||||
$upload = Uploads::upload($_FILES['immagine'], [
|
||||
'name' => 'Immagine',
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
], [
|
||||
'thumbnails' => true,
|
||||
]);
|
||||
$filename = $upload->filename;
|
||||
|
||||
if (!empty($filename)) {
|
||||
$dbo->update('mg_articoli', [
|
||||
|
|
|
@ -391,15 +391,14 @@ $riga = $contratto->getRiga($type, $id_riga);
|
|||
}
|
||||
|
||||
// Copia degli allegati
|
||||
Uploads::copy([
|
||||
'id_module' => $id_module,
|
||||
'id_plugin' => Plugins::get('Pianificazione interventi')['id'],
|
||||
'id_record' => $p['id'],
|
||||
], [
|
||||
'id_module' => $id_module,
|
||||
'id_plugin' => Plugins::get('Pianificazione interventi')['id'],
|
||||
'id_record' => $id_promemoria,
|
||||
]);
|
||||
$allegati = $promemoria->uploads();
|
||||
foreach ($allegati as $allegato) {
|
||||
$allegato->copia([
|
||||
'id_module' => $id_module,
|
||||
'id_plugin' => Plugins::get('Pianificazione interventi')['id'],
|
||||
'id_record' => $id_promemoria,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
// Cambio stato precedente contratto in concluso (non più pianificabile)
|
||||
|
|
|
@ -501,7 +501,7 @@ class Fattura extends Document
|
|||
|
||||
$file = $this->uploads()->where('name', 'Fattura Elettronica')->first();
|
||||
|
||||
return file_get_contents($file->filepath);
|
||||
return $file->getContent();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -51,13 +51,14 @@ switch ($op) {
|
|||
|
||||
// Upload file
|
||||
if (!empty($_FILES) && !empty($_FILES['immagine']['name'])) {
|
||||
$filename = Uploads::upload($_FILES['immagine'], [
|
||||
$upload = Uploads::upload($_FILES['immagine'], [
|
||||
'name' => 'Immagine',
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
], [
|
||||
'thumbnails' => true,
|
||||
]);
|
||||
$filename = $upload->filename;
|
||||
|
||||
if (!empty($filename)) {
|
||||
$dbo->update('my_impianti', [
|
||||
|
|
|
@ -28,7 +28,7 @@ switch (filter('op')) {
|
|||
|
||||
$id_record = $import->id;
|
||||
|
||||
$upload = Uploads::upload($_FILES['file'], [
|
||||
Uploads::upload($_FILES['file'], [
|
||||
'id_module' => $import->getModule()->id,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
|
|
|
@ -302,20 +302,16 @@ class FatturaElettronica
|
|||
$this->delete();
|
||||
|
||||
$name = 'Fattura Elettronica';
|
||||
$data = $this->getUploadData();
|
||||
$info = $this->getUploadData();
|
||||
|
||||
// Generazione nome XML
|
||||
$filename = $this->getFilename(true);
|
||||
|
||||
// Salvataggio del file
|
||||
$file = rtrim($directory, '/').'/'.$filename;
|
||||
$result = directory($directory) && file_put_contents($file, $this->toXML());
|
||||
|
||||
// Registrazione come allegato
|
||||
Uploads::register(array_merge([
|
||||
Uploads::upload($this->toXML(), array_merge($info, [
|
||||
'name' => $name,
|
||||
'original' => $filename,
|
||||
], $data));
|
||||
'original_name' => $filename,
|
||||
]));
|
||||
|
||||
// Aggiornamento effettivo
|
||||
database()->update('co_documenti', [
|
||||
|
@ -1617,24 +1613,26 @@ class FatturaElettronica
|
|||
}
|
||||
|
||||
$data = $fattura->getUploadData();
|
||||
$dir = static::getDirectory();
|
||||
|
||||
// Generazione stampa
|
||||
$print = Prints::getModulePredefinedPrint($id_module);
|
||||
$info = Prints::render($print['id'], $documento['id'], base_dir().'/'.$dir);
|
||||
$info = Prints::render($print['id'], $documento['id'], null, true);
|
||||
|
||||
// Salvataggio stampa come allegato
|
||||
$name = 'Stampa allegata';
|
||||
$is_presente = database()->fetchNum('SELECT id FROM zz_files WHERE id_module = '.prepare($id_module).' AND id_record = '.prepare($documento['id']).' AND name = '.prepare($name));
|
||||
if (empty($is_presente)) {
|
||||
Uploads::register(array_merge([
|
||||
Uploads::upload($info['pdf'], array_merge($data, [
|
||||
'name' => $name,
|
||||
'original' => basename($info['path']),
|
||||
], $data));
|
||||
'original_name' => $info['path'],
|
||||
]));
|
||||
}
|
||||
|
||||
// Introduzione allegato in Fattura Elettronica
|
||||
$attachments[] = [
|
||||
'NomeAttachment' => 'Fattura',
|
||||
'FormatoAttachment' => 'PDF',
|
||||
'Attachment' => base64_encode(file_get_contents($info['path'])),
|
||||
'Attachment' => base64_encode($info['pdf']),
|
||||
];
|
||||
|
||||
return $attachments;
|
||||
|
|
|
@ -185,22 +185,16 @@ class FatturaElettronica
|
|||
}
|
||||
|
||||
$original = $allegato['NomeAttachment'].$extension;
|
||||
$filename = Uploads::getName($original, [
|
||||
'id_module' => $module['id'],
|
||||
]);
|
||||
|
||||
file_put_contents($module->upload_directory.'/'.$filename, $content);
|
||||
|
||||
Uploads::register(array_merge($info, [
|
||||
'filename' => $filename,
|
||||
'original' => $original,
|
||||
Uploads::upload($content, array_merge($info, [
|
||||
'name' => $allegato['NomeAttachment'],
|
||||
'original_name' => $original,
|
||||
]));
|
||||
}
|
||||
|
||||
// Registrazione XML come allegato
|
||||
Uploads::upload($this->file, array_merge($info, [
|
||||
'name' => tr('Fattura Elettronica'),
|
||||
'original' => basename($this->file),
|
||||
'original_name' => basename($this->file),
|
||||
]));
|
||||
}
|
||||
|
||||
|
|
|
@ -48,8 +48,8 @@ switch ($operazione) {
|
|||
'data_richiesta' => post('data_richiesta'),
|
||||
'idtipointervento' => post('idtipointervento'),
|
||||
'richiesta' => post('richiesta'),
|
||||
'idimpianti' => implode(',', post('idimpianti')),
|
||||
'idsede' => implode(',', post('idsede_c')),
|
||||
'idimpianti' => implode(',', post('idimpianti') ?: []),
|
||||
'idsede' => implode(',', post('idsede_c') ?: []),
|
||||
], ['id' => $id_record]);
|
||||
|
||||
flash()->info(tr('Promemoria inserito!'));
|
||||
|
|
|
@ -29,16 +29,4 @@ class Articolo extends Article
|
|||
use RelationTrait;
|
||||
|
||||
protected $table = 'co_righe_promemoria';
|
||||
|
||||
/**
|
||||
* Crea un nuovo articolo collegato ad un contratto.
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(Promemoria $promemoria, Original $articolo)
|
||||
{
|
||||
$model = parent::build($promemoria, $articolo);
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,16 +28,4 @@ class Descrizione extends Description
|
|||
use RelationTrait;
|
||||
|
||||
protected $table = 'co_righe_promemoria';
|
||||
|
||||
/**
|
||||
* Crea una nuova riga collegata ad un contratto.
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(Promemoria $promemoria)
|
||||
{
|
||||
$model = parent::build($promemoria);
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,16 +28,4 @@ class Riga extends Row
|
|||
use RelationTrait;
|
||||
|
||||
protected $table = 'co_righe_promemoria';
|
||||
|
||||
/**
|
||||
* Crea una nuova riga collegata ad un contratto.
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(Promemoria $promemoria)
|
||||
{
|
||||
$model = parent::build($promemoria);
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,16 +27,4 @@ class Sconto extends Discount
|
|||
use RelationTrait;
|
||||
|
||||
protected $table = 'co_righe_promemoria';
|
||||
|
||||
/**
|
||||
* Crea un nuovo sconto collegato ad un contratto.
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function build(Promemoria $promemoria)
|
||||
{
|
||||
$model = parent::build($promemoria);
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,22 +1,4 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
~ OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
|
||||
~ Copyright (C) DevCode s.r.l.
|
||||
~
|
||||
~ This program is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ This program is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<xsl:stylesheet
|
||||
version="1.1"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
|
@ -161,9 +143,9 @@
|
|||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="DatiDDT">
|
||||
<xsl:template match="DatiDDT">
|
||||
<xsl:variable name="descri_DAO" >
|
||||
|
||||
|
||||
<xsl:text>DDT </xsl:text>
|
||||
<xsl:value-of select="NumeroDDT" />
|
||||
<xsl:if test="DataDDT">
|
||||
|
@ -172,7 +154,7 @@
|
|||
<xsl:with-param name="DateTime" select="DataDDT" />
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
|
||||
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:if test="$descri_DAO">
|
||||
|
@ -181,7 +163,7 @@
|
|||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template match="DettaglioLinee">
|
||||
<xsl:param name="r" />
|
||||
<xsl:param name="posASWRELSTD" />
|
||||
|
@ -192,9 +174,9 @@
|
|||
<xsl:variable name="valNumeroLinea" >
|
||||
<xsl:value-of select="number(NumeroLinea)" />
|
||||
</xsl:variable>
|
||||
|
||||
|
||||
<!--Pre LINEA OpzPreLineaDatiDDT -->
|
||||
|
||||
|
||||
<xsl:choose>
|
||||
|
||||
<xsl:when test="OpzPreLineaDatiDDT">
|
||||
|
@ -204,15 +186,15 @@
|
|||
<xsl:with-param name="textDescrizione" select = "." />
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
|
||||
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaBody[$IndiceBody]/DatiGenerali/DatiDDT[ number(./RiferimentoNumeroLinea) = $valNumeroLinea] ">
|
||||
<xsl:otherwise>
|
||||
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaBody[$IndiceBody]/DatiGenerali/DatiDDT[ number(./RiferimentoNumeroLinea) = $valNumeroLinea] ">
|
||||
<xsl:apply-templates select="."/> <!-- apply DatiDDT template -->
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:otherwise>
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
|
||||
|
@ -226,10 +208,10 @@
|
|||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</xsl:when>
|
||||
|
||||
|
||||
<xsl:otherwise>
|
||||
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaBody[$IndiceBody]/DatiGenerali/DatiOrdineAcquisto[ number(./RiferimentoNumeroLinea) = $valNumeroLinea] ">
|
||||
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaBody[$IndiceBody]/DatiGenerali/DatiOrdineAcquisto[ number(./RiferimentoNumeroLinea) = $valNumeroLinea] ">
|
||||
<xsl:call-template name="DatiCorrelati" >
|
||||
<xsl:with-param name="Prefix" select='"Vs.Ord. "'/>
|
||||
<xsl:with-param name="IdDocumento" select="IdDocumento"/>
|
||||
|
@ -237,9 +219,9 @@
|
|||
<xsl:with-param name="CodiceCUP" select="CodiceCUP"/>
|
||||
<xsl:with-param name="CodiceCIG" select="CodiceCIG"/>
|
||||
</xsl:call-template >
|
||||
</xsl:for-each>
|
||||
|
||||
|
||||
</xsl:for-each>
|
||||
|
||||
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
|
@ -253,9 +235,9 @@
|
|||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</xsl:when>
|
||||
|
||||
|
||||
<xsl:otherwise>
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaBody[$IndiceBody]/DatiGenerali/DatiContratto[ number(./RiferimentoNumeroLinea) = $valNumeroLinea] ">
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaBody[$IndiceBody]/DatiGenerali/DatiContratto[ number(./RiferimentoNumeroLinea) = $valNumeroLinea] ">
|
||||
<xsl:call-template name="DatiCorrelati" >
|
||||
<xsl:with-param name="Prefix" select='"Contratto "'/>
|
||||
<xsl:with-param name="IdDocumento" select="IdDocumento"/>
|
||||
|
@ -263,8 +245,8 @@
|
|||
<xsl:with-param name="CodiceCUP" select="CodiceCUP"/>
|
||||
<xsl:with-param name="CodiceCIG" select="CodiceCIG"/>
|
||||
</xsl:call-template >
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
|
@ -278,10 +260,10 @@
|
|||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</xsl:when>
|
||||
|
||||
|
||||
<xsl:otherwise>
|
||||
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaBody[$IndiceBody]/DatiGenerali/DatiConvenzione[ number(./RiferimentoNumeroLinea) = $valNumeroLinea] ">
|
||||
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaBody[$IndiceBody]/DatiGenerali/DatiConvenzione[ number(./RiferimentoNumeroLinea) = $valNumeroLinea] ">
|
||||
<xsl:call-template name="DatiCorrelati" >
|
||||
<xsl:with-param name="Prefix" select='"Convenzione "'/>
|
||||
<xsl:with-param name="IdDocumento" select="IdDocumento"/>
|
||||
|
@ -290,7 +272,7 @@
|
|||
<xsl:with-param name="CodiceCIG" select="CodiceCIG"/>
|
||||
</xsl:call-template >
|
||||
</xsl:for-each>
|
||||
|
||||
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
|
@ -304,9 +286,9 @@
|
|||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</xsl:when>
|
||||
|
||||
|
||||
<xsl:otherwise>
|
||||
|
||||
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaBody[$IndiceBody]/DatiGenerali/DatiRicezione[ number(./RiferimentoNumeroLinea) = $valNumeroLinea] ">
|
||||
<xsl:call-template name="DatiCorrelati" >
|
||||
<xsl:with-param name="Prefix" select='"Ricezione "'/>
|
||||
|
@ -316,7 +298,7 @@
|
|||
<xsl:with-param name="CodiceCIG" select="CodiceCIG"/>
|
||||
</xsl:call-template >
|
||||
</xsl:for-each>
|
||||
|
||||
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
|
@ -329,9 +311,9 @@
|
|||
<xsl:with-param name="textDescrizione" select = "." />
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</xsl:when>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
|
||||
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaBody[$IndiceBody]/DatiGenerali/DatiFattureCollegate[ number(./RiferimentoNumeroLinea) = $valNumeroLinea] ">
|
||||
<xsl:call-template name="DatiCorrelati" >
|
||||
<xsl:with-param name="Prefix" select='"Fatt.coll. "'/>
|
||||
|
@ -341,7 +323,7 @@
|
|||
<xsl:with-param name="CodiceCIG" select="CodiceCIG"/>
|
||||
</xsl:call-template >
|
||||
</xsl:for-each>
|
||||
|
||||
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
|
@ -403,8 +385,8 @@
|
|||
<xsl:if test=" translate( TipoDato,
|
||||
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
|
||||
'abcdefghijklmnopqrstuvwxyz'
|
||||
) != 'aswrelstd'
|
||||
and
|
||||
) != 'aswrelstd'
|
||||
and
|
||||
translate( TipoDato,
|
||||
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
|
||||
'abcdefghijklmnopqrstuvwxyz'
|
||||
|
@ -600,8 +582,8 @@
|
|||
<xsl:if test=" translate( TipoDato,
|
||||
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
|
||||
'abcdefghijklmnopqrstuvwxyz'
|
||||
) != 'aswrelstd'
|
||||
and
|
||||
) != 'aswrelstd'
|
||||
and
|
||||
translate( TipoDato,
|
||||
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
|
||||
'abcdefghijklmnopqrstuvwxyz'
|
||||
|
@ -671,7 +653,7 @@
|
|||
|
||||
<xsl:template match="DatiRitenuta">
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
<td >
|
||||
|
||||
|
@ -744,7 +726,7 @@
|
|||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="DettaglioPagamento">
|
||||
|
@ -854,10 +836,10 @@
|
|||
</xsl:variable>
|
||||
|
||||
<div id="fattura-elettronica" class="page">
|
||||
|
||||
|
||||
<!-- FatturaElettronicaHeader -->
|
||||
<xsl:if test="$TipoFattura/FatturaElettronicaHeader">
|
||||
|
||||
|
||||
<xsl:if test="$TipoFattura/FatturaElettronicaHeader/NomeDocumento">
|
||||
<table class="tbNoBorder">
|
||||
<tr >
|
||||
|
@ -867,7 +849,7 @@
|
|||
</tr>
|
||||
</table>
|
||||
</xsl:if>
|
||||
|
||||
|
||||
<table id="tbHeader" class="tbHeader">
|
||||
|
||||
<tr >
|
||||
|
@ -1174,7 +1156,7 @@
|
|||
|
||||
</div>
|
||||
|
||||
<xsl:if test="Denominazione">
|
||||
<xsl:if test="Denominazione">
|
||||
<div class="headContent">
|
||||
|
||||
Denominazione:
|
||||
|
@ -1353,7 +1335,7 @@
|
|||
</xsl:choose>
|
||||
|
||||
</xsl:for-each>
|
||||
|
||||
|
||||
<!--INIZIO TerzoIntermediarioOSoggettoEmittente-->
|
||||
<xsl:if test="$TipoFattura/FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente">
|
||||
<br/>
|
||||
|
@ -1436,12 +1418,12 @@
|
|||
|
||||
|
||||
</xsl:for-each>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</xsl:if>
|
||||
<!--FINE TerzoIntermediarioOSoggettoEmittente-->
|
||||
|
||||
|
||||
</div>
|
||||
<!--FINE CEDENTE PRESTATORE-->
|
||||
|
||||
|
@ -1459,7 +1441,7 @@
|
|||
<table class="tableHead">
|
||||
<tr>
|
||||
<td >
|
||||
|
||||
|
||||
<div class="headBorder" >
|
||||
<label class= "headerLabel" >Cessionario/committente (cliente) </label>
|
||||
<xsl:for-each select="$TipoFattura/FatturaElettronicaHeader/CessionarioCommittente">
|
||||
|
@ -1771,7 +1753,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
|
@ -1786,12 +1768,12 @@
|
|||
|
||||
|
||||
<xsl:variable name="BodyIndex" select="position()"/>
|
||||
|
||||
|
||||
<!-- Conforme Standard AssoSoftware se altridatigestionali presenta ASWRELSTD -->
|
||||
<xsl:variable name="posASWRELSTD" >
|
||||
<xsl:for-each select="DatiBeniServizi/DettaglioLinee">
|
||||
<xsl:variable name="DettaglioLinee" select="."/>
|
||||
|
||||
|
||||
<xsl:variable name="posDettaglioLinee" select="position()"/>
|
||||
<xsl:for-each select="AltriDatiGestionali">
|
||||
|
||||
|
@ -1820,11 +1802,11 @@
|
|||
<xsl:if test="$IsFPRS='0'">
|
||||
<th class="perc">Art. 73</th>
|
||||
</xsl:if>
|
||||
|
||||
|
||||
<xsl:if test="$IsFPRS='1'">
|
||||
<th class="perc">Imposta bollo</th>
|
||||
</xsl:if>
|
||||
|
||||
|
||||
<th >Numero documento</th>
|
||||
<th class="data">Data documento</th>
|
||||
<th >Codice destinatario</th>
|
||||
|
@ -1897,7 +1879,7 @@
|
|||
<xsl:when test="$TD='TD27'">
|
||||
fattura per autoconsumo o per cessioni gratuite senza rivalsa
|
||||
</xsl:when>
|
||||
|
||||
|
||||
<!--FPRS-->
|
||||
<xsl:when test="$TD='TD07'">
|
||||
fattura semplificata
|
||||
|
@ -1925,7 +1907,7 @@
|
|||
</xsl:if>
|
||||
</td>
|
||||
</xsl:if>
|
||||
|
||||
|
||||
<xsl:if test="$IsFPRS='1'">
|
||||
<td class="textCenter">
|
||||
<xsl:if test="DatiGenerali/DatiGeneraliDocumento/BolloVirtuale">
|
||||
|
@ -2086,7 +2068,7 @@
|
|||
<tbody>
|
||||
|
||||
|
||||
<xsl:if test="count(DatiGenerali/DatiOrdineAcquisto[not(./RiferimentoNumeroLinea) or normalize-space(./RiferimentoNumeroLinea)='']) +
|
||||
<xsl:if test="count(DatiGenerali/DatiOrdineAcquisto[not(./RiferimentoNumeroLinea) or normalize-space(./RiferimentoNumeroLinea)='']) +
|
||||
count(DatiGenerali/DatiContratto[not(./RiferimentoNumeroLinea) or normalize-space(./RiferimentoNumeroLinea)='']) +
|
||||
count(DatiGenerali/DatiDDT[not(./RiferimentoNumeroLinea) or normalize-space(./RiferimentoNumeroLinea)='']) +
|
||||
count(DatiGenerali/DatiFattureCollegate[not(./RiferimentoNumeroLinea) or normalize-space(./RiferimentoNumeroLinea)='']) +
|
||||
|
@ -2509,7 +2491,7 @@
|
|||
Sconto/Maggiorazione
|
||||
</th>
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="perc">Arr.</th>
|
||||
<th colspan="4" >
|
||||
|
@ -2521,7 +2503,7 @@
|
|||
|
||||
<tr >
|
||||
<td colspan="2" class="import" >
|
||||
|
||||
|
||||
<xsl:if test="DatiGenerali/DatiGeneraliDocumento/DatiBollo">
|
||||
<xsl:choose>
|
||||
<xsl:when test="DatiGenerali/DatiGeneraliDocumento/DatiBollo/ImportoBollo">
|
||||
|
@ -2531,9 +2513,9 @@
|
|||
<xsl:value-of select="DatiGenerali/DatiGeneraliDocumento/DatiBollo/BolloVirtuale" />
|
||||
</xsl:when>
|
||||
<xsl:otherwise></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
|
||||
</td>
|
||||
<td colspan="3" class="import">
|
||||
<xsl:for-each select="DatiGenerali/DatiGeneraliDocumento/ScontoMaggiorazione" >
|
||||
|
@ -2549,8 +2531,8 @@
|
|||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="import">
|
||||
|
||||
<xsl:if test="DatiGenerali/DatiGeneraliDocumento/Arrotondamento">
|
||||
|
@ -2580,7 +2562,7 @@
|
|||
<!-- Dati Ritenuta Acconto -->
|
||||
<xsl:if test="DatiGenerali/DatiGeneraliDocumento/DatiRitenuta">
|
||||
<div class="separa"> </div>
|
||||
|
||||
|
||||
<table class="tbFoglio">
|
||||
|
||||
<thead>
|
||||
|
@ -2592,13 +2574,13 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
<xsl:for-each select="DatiGenerali/DatiGeneraliDocumento/DatiRitenuta" >
|
||||
<xsl:apply-templates select="." />
|
||||
</xsl:for-each>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
||||
</xsl:if>
|
||||
<!-- Fine Dati Ritenuta -->
|
||||
|
||||
|
@ -2719,7 +2701,7 @@
|
|||
</xsl:if>
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
<td>
|
||||
<xsl:apply-templates select="."/>
|
||||
|
@ -2732,7 +2714,7 @@
|
|||
</xsl:if>
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
<td>
|
||||
|
||||
<xsl:if test="DataRiferimentoTerminiPagamento or GiorniTerminiPagamento">
|
||||
|
@ -2886,7 +2868,7 @@
|
|||
.headBorder
|
||||
{
|
||||
<!--border: 2px solid black;
|
||||
width:100%;
|
||||
width:100%;
|
||||
height: 210px;
|
||||
border-bottom-left-radius:30px;
|
||||
border-bottom-right-radius:30px; -->
|
||||
|
@ -2950,7 +2932,7 @@
|
|||
border-collapse: collapse;
|
||||
word-wrap:break-word;
|
||||
}
|
||||
|
||||
|
||||
table.tbFoglio th {
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
|
@ -3083,13 +3065,13 @@
|
|||
|
||||
table.tbNoBorder
|
||||
{
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 5px;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 5px;
|
||||
font-size:small;
|
||||
text-align:center;
|
||||
width:800px;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
@ -3132,4 +3114,4 @@
|
|||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
</xsl:stylesheet>
|
|
@ -40,7 +40,6 @@ class FileManager implements ManagerInterface
|
|||
{
|
||||
$options['readonly'] = !empty($options['readonly']) ? true : false;
|
||||
$options['showpanel'] = isset($options['showpanel']) ? $options['showpanel'] : true;
|
||||
$options['label'] = isset($options['label']) ? $options['label'] : tr('Allegato').':';
|
||||
|
||||
$options['id_plugin'] = !empty($options['id_plugin']) ? $options['id_plugin'] : null;
|
||||
|
||||
|
@ -158,7 +157,7 @@ class FileManager implements ManagerInterface
|
|||
|
||||
if (!$options['readonly']) {
|
||||
$result .= '
|
||||
<button type="button" class="btn btn-xs btn-info" data-href="'.base_url().'/actions.php?op=visualizza-modifica-allegato&id_module='.$options['id_module'].'&id_allegato='.$r['id'].'" data-title="'.tr('Modifica allegato').'">
|
||||
<button type="button" class="btn btn-xs btn-warning" data-href="'.base_url().'/actions.php?op=visualizza-modifica-allegato&id_module='.$options['id_module'].'&id_allegato='.$r['id'].'" data-title="'.tr('Modifica allegato').'">
|
||||
<i class="fa fa-edit"></i>
|
||||
</button>
|
||||
|
||||
|
@ -188,15 +187,7 @@ class FileManager implements ManagerInterface
|
|||
// Form per l'upload di un nuovo file
|
||||
if (!$options['readonly']) {
|
||||
$result .= '
|
||||
<b>'.$options['label'].'</b>
|
||||
<div id="upload-form" class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "placeholder": "'.tr('Nome').'", "name": "nome_allegato", "class": "unblockable" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "placeholder": "'.tr('Categoria').'", "name": "categoria_allegato", "id": "categoria_allegato", "class": "unblockable" ]}
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="dropzone dz-clickable" id="dragdrop">
|
||||
|
||||
|
@ -252,11 +243,6 @@ $(document).ready(function() {
|
|||
autoQueue: true,
|
||||
url: "'.base_path().'/actions.php?op=aggiungi-allegato&id_module='.$options['id_module'].'&id_record='.$options['id_record'].'&id_plugin='.$options['id_plugin'].'",
|
||||
init: function (file, xhr, formData) {
|
||||
this.on("sending", function(file, xhr, formData) {
|
||||
formData.append("categoria", $("#categoria_allegato").val());
|
||||
formData.append("nome_allegato", $("#nome_allegato").val());
|
||||
});
|
||||
|
||||
this.on("success", function (file) {
|
||||
dragdrop.removeFile(file);
|
||||
});
|
||||
|
@ -318,19 +304,6 @@ $(document).ready(function() {
|
|||
return [filename, ext];
|
||||
}
|
||||
|
||||
// Auto-completamento nome
|
||||
$("#'.$attachment_id.' #blob").change(function(){
|
||||
var nome = $("#'.$attachment_id.' #nome_allegato");
|
||||
|
||||
if (!nome.val()) {
|
||||
var fullPath = $(this).val();
|
||||
|
||||
var filename = getFilenameAndExtension(fullPath);
|
||||
|
||||
nome.val(filename[0]);
|
||||
}
|
||||
});
|
||||
|
||||
// Auto-completamento categoria
|
||||
$("#'.$attachment_id.' #categoria_allegato").autocomplete({
|
||||
source: '.json_encode($source).',
|
||||
|
@ -350,16 +323,6 @@ $(document).ready(function() {
|
|||
$("#'.$attachment_id.' #upload").click(function(){
|
||||
$form = $("#'.$attachment_id.' #upload-form");
|
||||
|
||||
if($form.find("input[name=nome_allegato]").val() == "" || $form.find("input[name=blob]").val() == "") {
|
||||
swal({
|
||||
type: "error",
|
||||
title: "'.tr('Errore').'",
|
||||
text: "'.tr('Alcuni campi obbligatori non sono stati compilati correttamente.').'",
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$form.ajaxSubmit({
|
||||
url: globals.rootdir + "/actions.php",
|
||||
data: data,
|
||||
|
|
|
@ -70,7 +70,10 @@ class Module extends Model
|
|||
$dbo = $database = database();
|
||||
|
||||
// Lettura delle variabili nei singoli moduli
|
||||
$variables = include $this->filepath('variables.php');
|
||||
$path = $this->filepath('variables.php');
|
||||
if (!empty($path)) {
|
||||
$variables = include $path;
|
||||
}
|
||||
|
||||
// Sostituzione delle variabili di base
|
||||
$replaces = [];
|
||||
|
|
|
@ -22,12 +22,22 @@ namespace Models;
|
|||
use Common\SimpleModelTrait;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Intervention\Image\ImageManagerStatic;
|
||||
use UnexpectedValueException;
|
||||
use Util\FileSystem;
|
||||
|
||||
class Upload extends Model
|
||||
{
|
||||
use SimpleModelTrait;
|
||||
|
||||
/** @var array Elenco delle tipologie di file pericolose */
|
||||
protected static $not_allowed_types = [
|
||||
'php' => 'application/php',
|
||||
'php5' => 'application/php',
|
||||
'phtml' => 'application/php',
|
||||
'html' => 'text/html',
|
||||
'htm' => 'text/html',
|
||||
];
|
||||
|
||||
protected $table = 'zz_files';
|
||||
|
||||
protected $file_info;
|
||||
|
@ -55,8 +65,10 @@ class Upload extends Model
|
|||
/**
|
||||
* Crea un nuovo upload.
|
||||
*
|
||||
* @param array $source
|
||||
* @param string|array $source
|
||||
* @param array $data
|
||||
* @param null $name
|
||||
* @param null $category
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
|
@ -66,6 +78,8 @@ class Upload extends Model
|
|||
|
||||
// Informazioni di base
|
||||
$original_name = isset($source['name']) ? $source['name'] : basename($source);
|
||||
$name = isset($data['name']) ? $data['name'] : $name;
|
||||
$category = isset($data['category']) ? $data['category'] : $category;
|
||||
|
||||
// Nome e categoria dell'allegato
|
||||
$model->name = !empty($name) ? $name : $original_name;
|
||||
|
@ -76,27 +90,39 @@ class Upload extends Model
|
|||
$model->original_name = $original_name; // Fix per "original" di Eloquent
|
||||
|
||||
// Informazioni sulle relazioni
|
||||
$model->id_module = !empty($data['id_module']) ? $data['id_module'] : null;
|
||||
$model->id_module = !empty($data['id_module']) && empty($data['id_plugin']) ? $data['id_module'] : null;
|
||||
$model->id_plugin = !empty($data['id_plugin']) ? $data['id_plugin'] : null;
|
||||
$model->id_record = !empty($data['id_record']) ? $data['id_record'] : null;
|
||||
|
||||
// Nome fisico del file
|
||||
// Definizione del nome fisico del file
|
||||
$directory = base_dir().'/'.$model->directory;
|
||||
$filename = self::getNextName($original_name, $directory);
|
||||
if (empty($filename)){
|
||||
throw new UnexpectedValueException("Estensione dell'allegato non supportata");
|
||||
}
|
||||
$model->filename = $filename;
|
||||
|
||||
// Creazione file fisico
|
||||
// Creazione del file fisico
|
||||
directory($directory);
|
||||
if (
|
||||
(is_array($source) && is_uploaded_file($source['tmp_name']) && !move_uploaded_file($source['tmp_name'], $directory.'/'.$filename)) ||
|
||||
(is_string($source) && !copy($source, $directory.'/'.$filename))
|
||||
(is_string($source) && is_file($source) && !copy($source, $directory.'/'.$filename)) ||
|
||||
(is_string($source) && !is_file($source) && file_put_contents($directory.'/'.$filename, $source) === false)
|
||||
) {
|
||||
return null;
|
||||
throw new UnexpectedValueException("Errore durante il salvataggio dell'allegato");
|
||||
}
|
||||
|
||||
// Aggiornamento dimensione fisica e responsabile del caricamento
|
||||
$model->size = FileSystem::fileSize($directory.'/'.$filename);
|
||||
$model->user()->associate(auth()->getUser());
|
||||
|
||||
// Rimozione estensione dal nome visibile
|
||||
$extension = $model->extension;
|
||||
if (string_ends_with($model->name, $extension)) {
|
||||
$length = strlen($extension) + 1;
|
||||
$model->name = substr($model->name, 0, -$length);
|
||||
}
|
||||
|
||||
$model->save();
|
||||
|
||||
return $model;
|
||||
|
@ -200,6 +226,18 @@ class Upload extends Model
|
|||
return $this->extension == 'pdf';
|
||||
}
|
||||
|
||||
/**
|
||||
* Controlla se l'estensione è supportata dal sistema di upload.
|
||||
*
|
||||
* @param string $extension
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected static function isSupportedType($extension)
|
||||
{
|
||||
return !in_array(strtolower($extension), array_keys(self::$not_allowed_types));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
|
@ -273,6 +311,12 @@ class Upload extends Model
|
|||
$extension = self::getInfo($file)['extension'];
|
||||
$extension = strtolower($extension);
|
||||
|
||||
// Controllo sulle estensioni permesse
|
||||
$allowed = self::isSupportedType($extension);
|
||||
if (!$allowed) {
|
||||
return false;
|
||||
}
|
||||
|
||||
do {
|
||||
$filename = random_string().'.'.$extension;
|
||||
} while (file_exists($directory.'/'.$filename));
|
||||
|
|
206
src/Uploads.php
206
src/Uploads.php
|
@ -17,6 +17,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
use Models\Upload;
|
||||
use Util\FileSystem;
|
||||
|
||||
/**
|
||||
|
@ -26,15 +27,6 @@ use Util\FileSystem;
|
|||
*/
|
||||
class Uploads
|
||||
{
|
||||
/** @var array Elenco delle tipologie di file pericolose */
|
||||
protected static $not_allowed_types = [
|
||||
'php' => 'application/php',
|
||||
'php5' => 'application/php',
|
||||
'phtml' => 'application/php',
|
||||
'html' => 'text/html',
|
||||
'htm' => 'text/html',
|
||||
];
|
||||
|
||||
/**
|
||||
* Restituisce l'elenco degli allegati registrati per un determinato modulo/plugin e record.
|
||||
*
|
||||
|
@ -74,89 +66,18 @@ class Uploads
|
|||
return $structure->upload_directory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Individua il nome fisico per il file indicato.
|
||||
*
|
||||
* @param string $source
|
||||
* @param array $data
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName($source, $data)
|
||||
{
|
||||
$extension = strtolower(self::fileInfo($source)['extension']);
|
||||
$allowed = self::isSupportedType($extension);
|
||||
|
||||
if (!$allowed) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$directory = base_dir().'/'.self::getDirectory($data['id_module'], $data['id_plugin']);
|
||||
|
||||
do {
|
||||
$filename = random_string().'.'.$extension;
|
||||
} while (file_exists($directory.'/'.$filename));
|
||||
|
||||
return $filename;
|
||||
}
|
||||
|
||||
/**
|
||||
* Effettua l'upload di un file nella cartella indicata.
|
||||
*
|
||||
* @param array $source
|
||||
* @param string|array $source
|
||||
* @param array $data
|
||||
* @param array $options
|
||||
*
|
||||
* @return string
|
||||
* @return Upload
|
||||
*/
|
||||
public static function upload($source, $data, $options = [])
|
||||
{
|
||||
$original = isset($source['name']) ? $source['name'] : basename($source);
|
||||
|
||||
$filename = self::getName($original, $data);
|
||||
$directory = base_dir().'/'.self::getDirectory($data['id_module'], $data['id_plugin']);
|
||||
|
||||
// Creazione file fisico
|
||||
if (
|
||||
!directory($directory) ||
|
||||
(is_array($source) && is_uploaded_file($source['tmp_name']) && !move_uploaded_file($source['tmp_name'], $directory.'/'.$filename)) ||
|
||||
(is_string($source) && !copy($source, $directory.'/'.$filename))
|
||||
) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Registrazione del file
|
||||
$data['filename'] = $filename;
|
||||
$data['original'] = $original;
|
||||
$data['size'] = FileSystem::fileSize($directory.'/'.$filename);
|
||||
self::register($data);
|
||||
|
||||
// Operazioni finali
|
||||
self::processOptions($data, $options);
|
||||
|
||||
return $filename;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registra nel database il file caricato con i dati richiesti.
|
||||
*
|
||||
* @param array $data
|
||||
*/
|
||||
public static function register($data)
|
||||
{
|
||||
$database = database();
|
||||
|
||||
$database->insert('zz_files', [
|
||||
'name' => !empty($data['name']) ? $data['name'] : $data['original'],
|
||||
'filename' => !empty($data['filename']) ? $data['filename'] : $data['original'],
|
||||
'original' => $data['original'],
|
||||
'category' => !empty($data['category']) ? $data['category'] : null,
|
||||
'id_module' => !empty($data['id_module']) && empty($data['id_plugin']) ? $data['id_module'] : null,
|
||||
'id_plugin' => !empty($data['id_plugin']) ? $data['id_plugin'] : null,
|
||||
'id_record' => $data['id_record'],
|
||||
'size' => $data['size'],
|
||||
'created_by' => auth()->getUser()->id,
|
||||
]);
|
||||
return Upload::build($source, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -232,123 +153,4 @@ class Uploads
|
|||
|
||||
return $infos;
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera un ID fittizio per l'aggiunta di allegati a livello temporaneo.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public static function getFakeID()
|
||||
{
|
||||
return -rand(1, 9999);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sposta gli allegati fittizi a un record reale.
|
||||
*
|
||||
* @param int $fake_id
|
||||
* @param int $id_record
|
||||
*/
|
||||
public static function updateFake($fake_id, $id_record)
|
||||
{
|
||||
database()->update('zz_files', [
|
||||
'id_record' => $id_record,
|
||||
], [
|
||||
'id_record' => $fake_id,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Copia gli allegati di un record in un altro record.
|
||||
*
|
||||
* @param array $from
|
||||
* @param array $to
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function copy($from, $to)
|
||||
{
|
||||
$attachments = self::get($from);
|
||||
|
||||
$directory = base_dir().'/'.self::getDirectory($to['id_module'], $to['id_plugin']);
|
||||
$directory_from = base_dir().'/'.self::getDirectory($from['id_module'], $from['id_plugin']);
|
||||
|
||||
foreach ($attachments as $attachment) {
|
||||
$data = array_merge($attachment, $to);
|
||||
|
||||
// Individuazione del nuovo nome fisico
|
||||
$data['filename'] = self::getName($directory_from.'/'.$attachment['filename'], $data);
|
||||
|
||||
// Copia fisica
|
||||
if (!copy($directory_from.'/'.$attachment['filename'], $directory.'/'.$data['filename'])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Registrazione del file
|
||||
self::register($data);
|
||||
|
||||
// Operazioni finali
|
||||
$options = [];
|
||||
self::processOptions($data, $options);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected static function processOptions($data, $options)
|
||||
{
|
||||
$directory = base_dir().'/'.self::getDirectory($data['id_module'], $data['id_plugin']);
|
||||
|
||||
if (!empty($options['thumbnails'])) {
|
||||
self::thumbnails($directory.'/'.$data['filename'], $directory);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Controlla se l'estensione è supportata dal sistema di upload.
|
||||
*
|
||||
* @param string $extension
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected static function isSupportedType($extension)
|
||||
{
|
||||
return !in_array(strtolower($extension), array_keys(self::$not_allowed_types));
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera le thumbnails per le immagini.
|
||||
*
|
||||
* @param string $filepath
|
||||
* @param string $directory
|
||||
*/
|
||||
protected static function thumbnails($filepath, $directory = null)
|
||||
{
|
||||
$fileinfo = self::fileInfo($filepath);
|
||||
$directory = empty($directory) ? dirname($filepath) : $directory;
|
||||
|
||||
if (!in_array(mime_content_type($filepath), ['image/x-png', 'image/gif', 'image/jpeg'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$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']));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue