/** * Aggiunge un post "semplice" al sistema. * * @param data: array associativo contenente i dati. * Le chiavi ricercate dal sistema per questo array sono: * title: titolo del post (string filtrata) * subtitle: sottotitolo del post (string filtrata) * headline: occhiello del post (string filtrata) * author: id dell'autore (long) * tags: array di oggetti Tag * categories: array di oggetti Category * content: il testo di un articolo (string filtrata), l'indirizzo del videoreportage o l'elenco di indirizzi delle foto di un fotoreportage * visibile: indica la visibilità dell'articolo se non visibile è da considerare come una bozza (boolean) * @param type: tipo di post, deve essere incluso in PostType * * @return: l'articolo creato. */ static function createPost($data) { if (isset($data["ID"])) { unset($data["ID"]); } $data = Filter::filterArray($data); if (!isset($data[Post::TYPE])) { throw new Exception("Il post da creare è di un tipo sconosciuto."); } $p = false; switch ($data[Post::TYPE]) { case Post::NEWS: $p = new News($data); case Post::VIDEOREP: if (!$p) { $p = new VideoReportage($data); } $postdao = new PostDao(); $post = $postdao->save($p); return $post; case Post::COLLECTION: case Post::ALBUM: case Post::MAGAZINE: case Post::PHOTOREP: return CollectionManager::createCollection($data); } throw new Exception("Il post da creare è di un tipo sconosciuto."); }