From ff50d22f1604f7a983943b4800d2c1d8708b415d Mon Sep 17 00:00:00 2001
From: Cristiano Magro <cristiano.magro@vola.it>
Date: Tue, 27 Aug 2019 11:23:13 +0200
Subject: [PATCH] typo e fix
---
src/Vola/UploadFile/FilesFilter.class.php | 97 +++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 87 insertions(+), 10 deletions(-)
diff --git a/src/Vola/UploadFile/FilesFilter.class.php b/src/Vola/UploadFile/FilesFilter.class.php
index abe7cf7..25a1aa3 100644
--- a/src/Vola/UploadFile/FilesFilter.class.php
+++ b/src/Vola/UploadFile/FilesFilter.class.php
@@ -4,27 +4,104 @@
* Date: 08/07/2019
*/
-class FilesFilter {
+class FilesFilter
+{
private $filtro = array();
public function toJson()
{
- return json_encode($this->filtro);
+
+ $temp = array();
+
+ /** @var FilterExt $filtro */
+ foreach ($this->filtro as $filtro) {
+ $temp[] = $filtro->getFilterObj();
+ }
+
+ return json_encode($temp);
}
public function addExt($extension = '')
{
- if ($extension != ''){
- switch(strtolower($extension)) {
- case 'gif':
- $this->filtro[] = json_decode('{"title":"Image files", "extensions":"gif"}', true);
- break;
- case 'doc':
- $this->filtro[] = json_decode('{"title":"Documenti", "extensions":"doc"}', true);
- break;
+ $titolo = $this->decodeTitolo($extension);
+ if ($titolo != null) {
+ if ($this->filtro[$titolo] instanceof FilterExt) {
+ $this->addExtensionToFilter($titolo, $extension);
+ } else {
+ $this->createFilter($titolo, $extension);
}
}
return $this;
}
+
+ /**
+ * Decodifico il titolo in base all'estensione.
+ * Il confronto viene eseguito in lowercase
+ * @param string $ext
+ * @return string
+ */
+ public function decodeTitolo($ext)
+ {
+ switch (strtolower($ext)) {
+ case 'gif':
+ case 'jpg':
+ case 'jpeg':
+ case 'png':
+ case 'wmf':
+ case 'tif':
+ case 'tiff':
+ $titolo = "Image files";
+ break;
+ case 'doc':
+ case 'txt':
+ case 'docx':
+ case 'docm':
+ case 'opsx':
+ case 'odt':
+ case 'rtf':
+ case 'pdf':
+ $titolo = "Documenti";
+ break;
+ case 'mp3':
+ case 'wav':
+ $titolo = "Audio files";
+ break;
+ case 'zip':
+ case 'rar':
+ case 'gz':
+ $titolo = "Zip files";
+ break;
+ case 'xls':
+ case 'xlsx':
+ case 'eml':
+ case 'msg':
+ case 'xps':
+ case 'cvs':
+ $titolo = "Excel files";
+ break;
+ }
+
+ return $titolo;
+ }
+
+ /**
+ * @param $titolo
+ * @param $extension
+ */
+ private function createFilter($titolo, $extension)
+ {
+ $filtro = new FilterExt($titolo, $extension);
+ $this->filtro[$titolo] = $filtro;
+ }
+
+ /**
+ * @param $titolo
+ * @param $extension
+ */
+ private function addExtensionToFilter($titolo, $extension)
+ {
+ $this->filtro[$titolo]->addExt($extension);
+ }
+
}
\ No newline at end of file
--
Gitblit v1.8.0