| | |
| | | * Date: 08/07/2019 |
| | | */ |
| | | |
| | | class FilesFilter { |
| | | class FilesFilter |
| | | { |
| | | |
| | | private $filtro = array(); |
| | | |
| | | public function toJson() |
| | | { |
| | | return '{}'; |
| | | |
| | | $temp = array(); |
| | | |
| | | /** @var FilterExt $filtro */ |
| | | foreach ($this->filtro as $filtro) { |
| | | $temp[] = $filtro->getFilterObj(); |
| | | } |
| | | |
| | | return json_encode($temp); |
| | | } |
| | | |
| | | public function addExt($extension = '') |
| | | { |
| | | $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); |
| | | } |
| | | |
| | | } |