Exemplo n.º 1
0
 /**
  * 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);
 }