/** * Lecture de la liste des documents * * @return array */ public static function lireListeDocuments($idArticle = null) { $connexion = ConnexionBd::getInstance()->getConnexion(); if (static::TABLE_NAME == 'articles') { $requete = 'SELECT * FROM ' . static::TABLE_NAME; $stmt = $connexion->query($requete); } if (static::TABLE_NAME == 'images') { $requete = 'SELECT * FROM ' . static::TABLE_NAME . ' WHERE idArticle = ?'; $stmt = $connexion->prepare($requete); $stmt->bindValue(1, $idArticle); $stmt->execute(); } $liste = array(); while (($ligne = $stmt->fetch(\PDO::FETCH_ASSOC)) !== false) { if (static::TABLE_NAME == 'articles') { $liste[] = Article::initialize($ligne); } if (static::TABLE_NAME == 'images') { $liste[] = Image::initialize($ligne); } } return $liste; }
/** * Gestionnaire d'upload * * @param array $data $_POST. * @param array $file $_FILES. * @return object */ public static function upload($data, $file) { try { // Récupération du type MIME du fichier $finfo = new \finfo(FILEINFO_MIME_TYPE); if (isset($file['tmp_name']) && !empty($file['tmp_name'])) { $mime = $finfo->file($file['tmp_name']); } else { $mime = ""; } // Gestion des différents types de fichiers switch ($mime) { case 'image/jpeg': case 'image/png': case 'image/gif': $donnees = array('idArticle' => $data['idArticle'], 'cheminImage' => $file['tmp_name'], 'titre' => $data['titre'], 'auteur' => $data['auteur'], 'droits' => $data['droits']); $image = Image::initialize($donnees); return $image; /* case 'video/mpeg': case 'video/mp4': case 'video/webm': $video = new Video( "", $data['idArticle'], $_FILES['cheminVideo']['tmp_name'], $data['titre'], $data['auteur'], $data['droits'], "" ); return $video; case 'application/pdf': case 'application/vnd.oasis.opendocument.text': $document = new Document( "", $data['idArticle'], $_FILES['cheminDocument']['tmp_name'], $data['titre'], $data['auteur'], $data['droits'], "" ); return $document;*/ /* case 'video/mpeg': case 'video/mp4': case 'video/webm': $video = new Video( "", $data['idArticle'], $_FILES['cheminVideo']['tmp_name'], $data['titre'], $data['auteur'], $data['droits'], "" ); return $video; case 'application/pdf': case 'application/vnd.oasis.opendocument.text': $document = new Document( "", $data['idArticle'], $_FILES['cheminDocument']['tmp_name'], $data['titre'], $data['auteur'], $data['droits'], "" ); return $document;*/ default: throw new UploadException("Type de fichier non accepté", 42); } } catch (UploadException $e) { $e->getMessage(); } }
/** * Enregistrer la modification d'une image * * @return void */ public function enregistrerModif() { // Nettoyage de la saisie $nettoyeur = new NettoyeurManager(); $nettoyeur->ajouter('Bv21411850\\Emdn2\\Utils\\Nettoyage\\NettoyeurBalisesHtml'); $nettoyeur->ajouter('Bv21411850\\Emdn2\\Utils\\Nettoyage\\NettoyeurEspacesVides'); $data = $nettoyeur->nettoyer($_POST); // L'utilisateur choisit de modifier une image locale if (isset($data['urlFichier']) && preg_match('#upload#', $data['urlFichier'])) { $image = UploadManager::upload($data, $_FILES['cheminImage']); } // L'utilisateur choisit de modifier une image Flickr if (isset($data['urlFichier']) && preg_match('#https#', $data['urlFichier'])) { $data['cheminImage'] = $data['urlFichier']; $image = Image::initialize($data); } // Validation des données $validateur = new ValidateurManager(); $validateur->ajouter('Bv21411850\\Emdn2\\Utils\\Validation\\ValidateurString'); $validateur->ajouter('Bv21411850\\Emdn2\\Utils\\Validation\\ValidateurEmpty'); if ($validateur->valider($data)) { ImageBd::modifierDocument($image); // HTML $titre = "Modification enregistrée"; $contenu = "<p>Votre modification a bien été enregistrée.</p>"; } else { // HTML $titre = "Modification pas enregistrée"; $contenu = "<p>Votre modification a été ignorée car :</p>"; $contenu .= "<ul>"; foreach ($validateur->getErreurs() as $valeur) { $contenu .= "<li>" . $valeur . "</li>"; } $contenu .= "</ul>"; } $this->response->setPart('title', $titre); $this->response->setPart('content', $contenu); }