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); } }