Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

root / controllers / brique_controller.php @ 47e3a1cf

Historique | Voir | Annoter | Télécharger (5,18 ko)

1
<?php
2
/************************************************************************************
3
 *
4
 *  Projet AbulEdu Mur de Classe  - Licence: GNU/Affero GPL v3 ou +
5
 *
6
 *  (c) 2020 Frédéric Adamczak <fred@fadamczak.fr>
7
 *
8
 *   This file is part of AbulEdu Mur de Classe.
9
 *
10
 *   AbulEdu Mur de Classe is free software: you can redistribute it and/or modify
11
 *   it under the terms of the GNU Affero General Public License as published by
12
 *   the Free Software Foundation, either version 3 of the License, or
13
 *   (at your option) any later version.
14
 *
15
 *   AbulEdu Mur de Classe is distributed in the hope that it will be useful,
16
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 *   GNU Affero General Public License for more details.
19
 *
20
 *   You should have received a copy of the GNU General Public License
21
 *   along with ClicAlbum. If not, see <https://www.gnu.org/licenses/>.
22
 *
23
 ************************************************************************************/
24

    
25
//getVar();
26

    
27
include_once("_classes/MyException.php");
28
include_once("_classes/Categorie.php");
29
include_once("_classes/Mur.php");
30
include_once("_classes/Theme.php");
31
include_once("_classes/Brique.php");
32
include_once("_classes/Mailer.php");
33

    
34

    
35
$mur = getMur($_GET['id']);
36
$theme = getTheme($mur->getTheme());
37

    
38

    
39
if (isset($_POST['titreBrique'])) {
40
  // On crée la brique à insérer...
41
  $brique = new Brique();
42
  $brique->setTitre(str_secure($_POST["titreBrique"]));
43
  $brique->setDescriptif(str_secure($_POST["descriptifBrique"]));
44
  if ($_SESSION['role']=="admin") {
45
    $brique->setIsValide("1");
46
  }
47
  //$brique->setUrl($_POST['urlBrique']);
48
  //$brique->setIframe($_POST['iframeBrique']);
49
  $brique->setIdCategorie($_POST["idCategorie"]);
50
  $brique->setIdMur($mur->getId());
51

    
52
  // Si le champ fichier n'est pas vide, alors on l'upload
53
  if (isset($_FILES['fichierBrique']) && ($_FILES['fichierBrique']['name']!="")) {
54
    $dossier = __DIR__ . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . "MURS";
55
    $dossier.= DIRECTORY_SEPARATOR . $mur->getId() . DIRECTORY_SEPARATOR;
56
    //  On essaie de donner un nom à peu près unique au fichier
57
    $nomFichier = time()."_".$_FILES['fichierBrique']['name'];
58
    $dest = $dossier.$nomFichier;
59
    try {
60
      if(!move_uploaded_file($_FILES['fichierBrique']['tmp_name'],$dest)) {
61
        throw new  MyException("Erreur dans l'upload du fichier");
62
      } else {
63
        $brique->setUrl("");
64
        $brique->setIframe("");
65
        $brique->setFichier($nomFichier);
66
      }
67
    } catch (MyException $e) {
68
      $e->errorMessage();
69
    }
70
  } else {
71
    //  Pas de fichier à uploader
72
    $brique->setFichier("");
73

    
74
    if ($_POST['urlBrique'] !="") {
75
      $brique->setUrl(str_secure($_POST['urlBrique']));
76
      $brique->setIframe("");
77
    } else {
78
      $brique->setUrl("");
79
    }
80

    
81
    if ($_POST['iframeBrique'] !="") {
82
      $brique->setUrl("");
83
      $brique->setIframe(normaliseIframe($_POST['iframeBrique']));
84
    } else {
85
      $param['iframe'] = "";
86
    }
87
  }
88

    
89
  // On peut insérer la brique dans la BDD
90
  insereBrique($brique);
91

    
92
  // Si le mel de l'admin est renseigné : on le prévient
93
  if ($mur->getMelAdmin() !="") {
94
    //$mel->informeBrique($mur);
95
    $mel = new Mailer($mur->getMelAdmin());
96
    try {
97
      if(!$mel->informeBrique($mur)) {
98
        throw new  MyException("Erreur dans l'envoi du mel d'information de création de broque");
99
      }
100
    } catch (MyException $e) {
101
      $e->errorMessage();
102
    }
103
  }
104

    
105
  // Retour à la page de visualisation du mur
106
  $url = "Location:index.php?page=mur&id=".$mur->getId()."&ok=1";
107
  header($url);
108

    
109
} else {
110

    
111
  // Vérifier si l'utilisateur est autorisé à accéder à ce mur
112
  // Quels paramètres font que l'accès au mur est interdit .
113
  //
114
  $acces = true;
115
  // 1- l'utilisateur a saisi directement l'adresse de la page brique et
116
  // a passé l'id du mur en paramètres
117
  if ($_GET['id'] != $_SESSION['mur']) {
118
    //debug ("accès interdit");
119
    $acces = false;
120
  }
121

    
122
  // 2- le mur est privé et l'utilisateur ne s'est pas identifié ou s'est
123
  // identifié sur un autre mur privé et a saisi l'adresse directe de la page
124
  // brique avec un autre idMur en paramètre.
125
  if ($mur->getMdpAcces() !="") {
126
    if ($_SESSION['ident']== "") {
127
      //debug("accès interdit 2");
128
      $acces = false;
129
    }
130
  }
131

    
132
  if ($acces==true) {
133
    // Récupérer toutes les catégories
134
    $categories = getAllCategories();
135
    // Afficher la page
136
    afficher_nouvelleBrique($mur, $categories, $theme);
137
  } else {
138
    //debug("Accès interdit");
139
    accesInterdit();
140
  }
141
}
142

    
143
/**
144
 * remplace la width=XXpx d'une iframe en width = 90%
145
 * @param  [String] $iframe []
146
 * @return [String]         []
147
 */
148
function normaliseIframe($iframe) {
149
  //debug($iframe);
150
  $iframe = str_replace("\"","'",$iframe);
151
  $posSrc =  stripos ( $iframe , "src");
152
  $source = substr($iframe,$posSrc+4);
153
  $t = explode(" ",$source);
154

    
155
  // "<iframe width='560' height='310' sandbox='allow-same-origin allow-scripts' src='https://videos.ac-nancy-metz.fr/videos/embed/770ccb56-d1dc-4cb7-80e3-30635638905e' frameborder='0' allowfullscreen></iframe>";
156
  $i = "<iframe width='90%' height='90%'  src=".$t[0];
157
  $i .=" frameborder='0' allowfullscreen></iframe>";
158

    
159
  return $i;
160
}
Redmine Appliance - Powered by TurnKey Linux