/** * Va chercher tous les liens de vidéos dans la BDD ainsi que les options * Pour les intégrer au Layout de la page "vidéos" - options dans le footer **/ public function getAllVideos() { $videoManager = new \Manager\VideosManager(); $videos = $videoManager->findAll(); $data = array(); $data['options'] = $this->getOptions(); $layout = array('name' => 'videos', 'opengraph' => array('title' => 'CrescendO Joeuf: Vidéos', 'type' => 'article', 'image' => $data['options'][0]["url_logo"], 'url' => 'http://www.crescendo.site', 'description' => 'Vidéos de concert de la chorale Pop-Rock CrescendO, de Joeuf(54).', 'locale' => 'fr_FR', 'site_name' => 'CrescendO'), 'tags' => array('link' => array('css/medias.css'), 'script' => array('js/ajax.js'))); $this->show('default/videos', ['videos' => $videos, 'data' => $data, 'layout' => $layout]); }
/** * Upload et ajout en BDD en fonction du type de contenu. * Retour sur page d'ajout de contenu quand terminé. **/ public function gestionContenu() { $this->allowTo(['admin', 'chef', 'gestion']); $options = $this->getOptions(); $user = $this->getuser(); $data = array(); if (isset($_POST['documentsent'])) { //Si on soumet le formulaire #document $finfo = new \finfo(FILEINFO_MIME_TYPE); // Récupération du Mime pour vérifier s'il est répertorié dans la liste des fichiers autorisés $mimeType = $finfo->file($_FILES['document']['tmp_name']); $extFoundInArray = array_search($mimeType, array('doc' => 'application/msword', 'xls' => 'application/excel', 'xls' => 'application/vnd.ms-excel', 'xls' => 'application/x-excel', 'xls' => 'application/x-msexcel', 'txt' => 'text/plain', 'odt' => 'application/vnd.oasis.opendocument.text', 'pdf' => 'application/pdf')); if ($extFoundInArray === false) { //Si le fichier envoyé n'est pas dans les types répertoriés echo 'Le fichier n\'est pas au bon format. Formats acceptés: .doc, .xls, .odt, .txt, .pdf'; //die(); } //On renomme le document et on l'envoie dans le bon dossier $path = '../public/assets/docs/' . mb_strtolower(preg_replace('/[\\s-]/', '_', $_POST['titre'])) . '.' . $extFoundInArray; $moved = move_uploaded_file($_FILES['document']['tmp_name'], $path); if (!$moved) { echo 'Erreur lors de l\'enregistrement'; } //Insertion en base de données avec le fichier renommé et le bon chemin pour l'appel en BackOffice $url = '/docs/' . mb_strtolower(preg_replace('/[\\s-]/', '_', $_POST['titre'])) . '.' . $extFoundInArray; $documentManager = new \Manager\DocumentsManager(); $insertion = array('titre' => $_POST['titre'], 'description' => $_POST['description'], 'url' => $url); $documentManager->insert($insertion); $layout = array('name' => 'actus', 'user' => $user, 'options' => $options, 'tags' => array('script' => array('js/contenu.js'))); $this->show('choristes/ajout_contenu', ['layout' => $layout, 'upload' => true]); } if (isset($_POST['youtubesent'])) { //Si on soumet le formulaire #youtube $url = $_POST['url']; $description = $_POST['description']; $video = new \Manager\VideosManager(); $video->InsertVideosUrl($url, $description); $layout = array('name' => 'actus', 'user' => $user, 'options' => $options, 'tags' => array('script' => array('js/contenu.js'))); $this->show('choristes/ajout_contenu', ['layout' => $layout, 'upload' => true]); } if (isset($_POST['imagesent'])) { //Si on soumet le formulaire #image /* Upload images */ $alt_img = $_POST['alt']; $desc_img = $_POST['desc_img']; $finfo = new \finfo(FILEINFO_MIME_TYPE); // Récupération du Mime $mimeType = $finfo->file($_FILES['image']['tmp_name']); $extFoundInArray = array_search($mimeType, array('jpg' => 'image/jpeg', 'png' => 'image/png')); if ($extFoundInArray === false) { //Si le fichier envoyé n'est pas une image echo 'Le fichier n\'est pas une image'; //die(); } $timestamp = date('d-m-Y-h-i-s'); //On renomme l'image et on l'envoie dans le bon dossier $path = '../public/assets/img/' . $timestamp . '.' . $extFoundInArray; $moved = move_uploaded_file($_FILES['image']['tmp_name'], $path); if (!$moved) { echo 'Erreur lors de l\'enregistrement'; } // création de la thumbnail $filename = '../public/assets/img/' . $timestamp . '-thumb.' . $extFoundInArray; $newwidth = 150; // Calcul des nouvelles dimensions list($width, $height) = getimagesize($path); $newheight = $height * $newwidth / $width; // Chargement $thumb = imagecreatetruecolor($newwidth, $newheight); if ($mimeType == 'image/jpeg') { $source = imagecreatefromjpeg($path); imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagejpeg($thumb, $filename); } if ($mimeType == 'image/png') { $source = imagecreatefrompng($filename); imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagepng($thumb, $filename); } //Insertion en base de données avec le fichier renommé et le bon chemin pour l'appel en FrontOffice $path = 'img/' . $timestamp . '.' . $extFoundInArray; $imagesManager = new \Manager\ImagesManager(); $id_img = $imagesManager->insertImage($path, $alt_img, $desc_img); $layout = array('name' => 'actus', 'user' => $user, 'options' => $options, 'tags' => array('script' => array('js/contenu.js'))); $this->show('choristes/ajout_contenu', ['layout' => $layout, 'upload' => true]); } if (isset($_POST['newssent'])) { /* Upload images */ $alt_img = $_POST['alt']; $desc_img = $_POST['desc_img']; $finfo = new \finfo(FILEINFO_MIME_TYPE); // Récupération du Mime $mimeType = $finfo->file($_FILES['my-file']['tmp_name']); $extFoundInArray = array_search($mimeType, array('jpg' => 'image/jpeg', 'png' => 'image/png')); if ($extFoundInArray === false) { //Si le fichier envoyé n'est pas une image echo 'Le fichier n\'est pas une image'; //die(); } $timestamp = date('d-m-Y-h-i-s'); //On renomme l'image et on l'envoie dans le bon dossier $path = '../public/assets/img/' . $timestamp . '.' . $extFoundInArray; $moved = move_uploaded_file($_FILES['my-file']['tmp_name'], $path); if (!$moved) { echo 'Erreur lors de l\'enregistrement'; } // création de la thumbnail $filename = '../public/assets/img/' . $timestamp . '-thumb.' . $extFoundInArray; $newwidth = 150; // Calcul des nouvelles dimensions list($width, $height) = getimagesize($path); $newheight = $height * $newwidth / $width; // Chargement $thumb = imagecreatetruecolor($newwidth, $newheight); if ($mimeType == 'image/jpeg') { $source = imagecreatefromjpeg($path); imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagejpeg($thumb, $filename); } if ($mimeType == 'image/png') { $source = imagecreatefrompng($filename); imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagepng($thumb, $filename); } //Insertion en base de données avec le fichier renommé et le bon chemin pour l'appel en FrontOffice $path = 'img/' . $timestamp . '.' . $extFoundInArray; $imagesManager = new \Manager\ImagesManager(); $id_img = $imagesManager->insertImage($path, $alt_img, $desc_img); if ($_POST['table'] == 'Presse') { //Pour rentrer un article de presse dans la table Presses $titre = $_POST['titre']; $description = $_POST['description']; $PressesManager = new \Manager\PressesManager(); $PressesManager->insertArticle($titre, $description, $id_img); $layout = array('name' => 'actus', 'user' => $user, 'options' => $options, 'tags' => array('script' => array('js/contenu.js'))); $this->show('choristes/ajout_contenu', ['layout' => $layout, 'upload' => true]); } else { if ($_POST['table'] == 'News') { //Pour rentrer une news dans la table news $titre = $_POST['titre']; $description = $_POST['description']; if ($_POST['private'] == '1') { //Si la news n'est visible que pour les choristes en partie privée $private = 1; } else { if ($_POST['private'] == 0) { //Si la news est visible en display FrontOffice $private = 0; } } $NewsManager = new \Manager\NewsManager(); $NewsManager->insertArticle($titre, $description, $id_img, $private); $layout = array('name' => 'actus', 'user' => $user, 'options' => $options, 'tags' => array('script' => array('js/contenu.js'))); $this->show('choristes/ajout_contenu', ['layout' => $layout, 'upload' => true]); } } } $options = $this->getOptions(); $user = $this->getuser(); $layout = array('name' => 'gestion_contenu', 'user' => $user, 'options' => $options, 'tags' => array('script' => array('js/contenu.js'))); //Sinon on affiche la page de formulaire vierge avec le select $this->show('choristes/ajout_contenu', ['data' => $data, 'layout' => $layout]); }