Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

root / controllers / nouveau_controller.php @ 232b0a2c

Historique | Voir | Annoter | Télécharger (3,27 ko)

1
<?php
2

    
3
include_once("_classes/MyException.php");
4
include_once("_classes/Mur.php");
5
include_once("_classes/MurNouveau.php");
6
include_once("_classes/Theme.php");
7
include_once("_classes/Mailer.php");
8

    
9
//getVar();
10

    
11
// Récupération des thèmes
12
$themes = getAllThemes();
13
// Création d'un MurNouveau vide
14
$mur = new MurNouveau();
15

    
16
if (isset($_POST['nomMur'])) {
17
  /*
18
    Vérifications et insertion du mur ou renvoi vers le formulaire (si erreurs)
19
  */
20

    
21
  // Hydratation du mur
22
  $mur->setNom($_POST['nomMur']);
23
  $mur->setDescriptif($_POST['descriptifMur']);
24
  $mur->setMdpAdmin(hashPassword($_POST['adminPassword']));
25
  $mur->setMelAdmin($_POST['adminEmail']);
26
  if($_POST['accesPassword']=="") {
27
    $mur->setMdpAcces("");
28
  } else {
29
    $mur->setMdpAcces(hashPassword($_POST['accesPassword']));
30
  }
31
  $mur->setTheme($_POST['themeMur']);
32

    
33
  // On vérifie que le mur n'existe pas déjà dans la base
34
  if (isMurExiste($_POST["nomMur"])) {
35
    $mur->setErrNom( "<p class='alert alert-danger'>Il existe déjà un mur avec ce nom</p>");
36
    afficheNouveauMur($mur, $themes);
37
  }
38

    
39
  // On vérifie que l'adresse mel fournie est valide
40
  if( ($mur->getMelAdmin()!="") && (!filter_var($mur->getMelAdmin(),FILTER_VALIDATE_EMAIL)) ) {
41
    $mur->setErrMel("<p class='alert alert-danger'>L'adresse de messagerie n'est pas valide</p>");
42
    afficheNouveauMur($mur, $themes);
43
  }
44

    
45
  // On ajoute le mur = insertion dans BDD + création dossier
46
  $idNouveauMur = ajouteNouveauMur($mur);
47

    
48
  // Définir le role "admin" en variable de session
49
  $_SESSION['role']="admin";
50
  $_SESSION['mur'] = $idNouveauMur;
51
  // Redirger vers le mur créé
52
  $url = "Location:index.php?page=mur&id=".$idNouveauMur;
53
  header($url);
54

    
55

    
56
} else {
57
  // On affiche le formulaire de création de mur
58
  afficheNouveauMur($mur, $themes);
59
}
60

    
61
/**
62
 * Termine la préparation du mur et procède à son insertion dans la BDD
63
 * @param  [Objet] $mur [Mur à insérer]
64
 * @return [String]     [Id dans la BDD du nouveau mur]
65
 */
66
function ajouteNouveauMur($mur) {
67
  // On ajoute le mur dans la BDD
68
  $mur->setNom(str_secure($mur->getNom()));
69
  $mur->setSlug(create_slug($mur->getNom()));
70
  $mur->setDescriptif(str_secure($mur->getDescriptif()));
71
  $idBddMur = insereMur($mur);
72

    
73
  // Création du dossier idMur dans le dossier MUR
74
  $dest = __DIR__ . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . "MURS/".$idBddMur;
75
  try {
76
    if (!mkdir($dest)) {
77
      throw new  MyException("Erreur dans la création du dossier MURS/".$idBddMur);
78
    }
79
  } catch (MyException $e) {
80
    $e->errorMessage();
81
  }
82

    
83

    
84
  // Éventuellement (si malAdmin existe) On informe l'admin de la création du mur
85
  if ($mur->getMelAdmin()!="") {
86
    $mel = new Mailer($mur->getMelAdmin());
87
    $adresseMur = PATH_REQUIRE."index.php?page=mur&id=".$idBddMur;
88
    try {
89
      if(!$mel->informeNouveauMur($mur->getMelAdmin())) {
90
        throw new  MyException("Erreur dans l'envoi du mel d'information de création du mur");
91
      }
92
    } catch (MyException $e) {
93
      $e->errorMessage();
94
    }
95
  }
96

    
97
  // Renvoi de l'id du mur dans la base pour constitution url du nouveau mur
98
  return $idBddMur;
99
}
100

    
101
/**
102
 * Vérifie si un mur existe déjà dans la BDD
103
 * @param  [String]  $nom [Nom du mur]
104
 * @return boolean      [Vrai si le mur existe]
105
 */
106
function isMurExiste($nom) {
107
  return !empty(nomMurExiste(str_secure($nom)));
108
}
109

    
110
?>
Redmine Appliance - Powered by TurnKey Linux