Projet

Général

Profil

Révision 481b2efd

Voir les différences:

conf.php
24 24
 * ***********************************************************************************/
25 25

  
26 26
session_start();
27
require_once("tools.php");
27
require_once "tools.php";
28 28

  
29
include("Parsedown.php");
29
include "Parsedown.php";
30 30

  
31 31
print html_head();
32 32

  
33 33
if ($_POST["op"] == "setOptions") {
34 34
    if ($_SESSION["currentAlbumAdmin"] == true) {
35
        $fic = xor_this(base64_decode($_POST["id"]));
36
        $commentaire = htmlentities($_POST['commentaire']);
37
        $ficTXT = str_replace(".jpeg",".txt",$fic);
38 35
        $album = $_SESSION['currentAlbum'];
39
        myDebug("on demande a modifier le commentaire de " . $fic . " de l'album " . $album);
40
        $dir = $config_data . "/" . $album;
41
        if (file_exists($dir . "/" . $fic)) {
42
            update_comment($dir . "/" . $ficTXT, $commentaire);
43
        }
44
        $items = scandir($dir);
45
        print display_pictures($items, $album, true);
36
        $moderation    = $_POST['moderation'];
37
        $notification     = $_POST['notification'];
38
        $notificationTo = $_POST['notificationTo'];
39
        myDebug("on demande a modifier la config de l'album $album pour avoir $moderation et $notification -> $notificationTo");
40
        set_albumConf($album, $moderation, $notification, $notificationTo);
46 41
    }
47
} else if ($_POST['albumPassAdmin'] != "" && $_POST['album'] != "") {
48
    myDebug("  On essaye d'accéder à l'album : " . $_POST['album']);
42
} else if (($_SESSION["currentAlbum"] == $_GET['album']) && ($_SESSION["currentAlbumAdmin"] == true)) {
43
    myDebug("  On essaye d'accéder à l'album : " . $_SESSION['currentAlbum']);
49 44

  
50
    $album = slugify($_POST['album']);
51
    $albumTest = get_albumInfo($album);
52
    if (pass_verif($_POST['albumPassAdmin'], $albumTest['albumPassAdmin'])) {
53
        $_SESSION["currentAlbum"] = $album;
54
        $_SESSION["currentAlbumAdmin"] = true;
55
        myDebug("  Mot de passe OK");
56
        $dir = $config_data . "/" . $album;
57
        $items = scandir($dir);
58
        print display_pictures($items, $album, true);
59
    } else {
60
        myDebug("  Mot de passe incorrect");
61
        echo display_adminForm();
62
    }
45
    //On affiche le formulaire de configuration de l'album ...
46

  
47
    print album_options($_SESSION["currentAlbum"]);
63 48

  
64 49
    print html_tail();
65 50
} else {
66
    myDebug("On affiche le formulaire d'administration");
51
    myDebug("On affiche le formulaire d'administration pour " . $_SESSION["currentAlbum"] . " | " . $_GET['album'] . " et " . $_SESSION["currentAlbumAdmin"]);
67 52
    echo display_adminForm();
68 53
    print html_tail();
69 54
}
tools.php
23 23
 *
24 24
 * ***********************************************************************************/
25 25

  
26
require_once("config.php");
26
require_once "config.php";
27 27

  
28 28
function myDebug($message)
29 29
{
......
121 121
  return $text;
122 122
}
123 123

  
124
function set_albumInfo($name, $adminMail, $albumPassAdmin, $albumPass = "", $albumPreModerate = false)
124
function set_albumInfo($name, $adminMail, $albumPassAdmin, $albumPass = "")
125 125
{
126 126
  global $config_data;
127 127
  myDebug("set albumInfo $name");
......
137 137
  } else {
138 138
    $tab['albumPassAdmin'] = "";
139 139
  }
140
  $tab['albumPreModerate'] = $albumPreModerate;
141

  
142 140

  
143 141
  $dir = $config_data . "/" . $name;
144 142
  //Si le rep n'existe pas on le créé
......
154 152
  return false;
155 153
}
156 154

  
155
function set_albumConf($name, $moderation, $notification, $notificationTo)
156
{
157
  global $config_data;
158
  myDebug("set albumConf $name");
159

  
160
  $tab['moderation']     = $moderation;
161
  $tab['notification']   = $notification;
162
  $tab['notificationTo'] = $notificationTo;
163

  
164
  $dir = $config_data . "/" . $name;
165
  //Si le rep n'existe pas on le créé
166
  if (!is_dir($dir)) {
167
    myDebug("  creation de $dir");
168
    mkdir($dir, 0700);
169
  }
170
  if (is_dir($dir) && $dir != $config_data) {
171
    myDebug("  creation du fichier $dir/albumconf");
172
    file_put_contents($dir . "/albumconf", serialize($tab));
173
    return true;
174
  }
175
  return false;
176
}
177

  
157 178
function get_albumInfo($name)
158 179
{
159 180
  global $config_data;
......
166 187
  }
167 188
}
168 189

  
190
function get_albumConf($name)
191
{
192
  global $config_data;
193

  
194
  $dir = $config_data . "/" . $name;
195
  myDebug("  get_albumConf $dir...");
196
  if (is_dir($dir) && $dir != $config_data && is_file($dir . "/albumconf")) {
197
    return unserialize(file_get_contents($dir . "/albumconf"));
198
  } else {
199
    return false;
200
  }
201
}
169 202

  
170 203
function set_userInfo($name, $userArray)
171 204
{
......
254 287
";
255 288
}
256 289

  
257

  
258 290
function extractAuteur($str)
259 291
{
260 292
  $t = explode("-", $str);
......
298 330
  global $config_data;
299 331
  global $config_fileTypeOK;
300 332

  
301
  if (!is_array($fichiers))
333
  if (!is_array($fichiers)) {
302 334
    return;
335
  }
303 336

  
304 337
  $r = "<!doctype html>
305 338
  <html lang=\"fr\">
......
496 529
    $r .= "    </tr>\n";
497 530
  }
498 531
  /*  </div>
499
      </div>*/
532
    </div>*/
500 533
  $r .= "  </table>
501 534
  </main>
502 535
  </body>
......
564 597
  return $r;
565 598
}
566 599

  
600
//Affiche un formulaire pour choisir les options de l'album ...
601
function album_options($album)
602
{
603

  
604
  $caposteriori = "checked=\"checked\"";
605
  $nonotification = "checked=\"checked\"";
606
  $notificationTo = "adresse.mail@abuledu.org";
607

  
608
  $conf = get_albumConf($album);
609

  
610
  if ($conf) {
611
    myDebug("  la configuration de cet album existe déjà");
612
    $moderation     = $conf['moderation'];
613
    $notification   = $conf['notification'];
614
    $notificationTo = $conf['notificationTo'];
615

  
616
    $capiori = "";
617
    $caposteriori = "";
618
    if ($moderation == "apriori") {
619
      $capiori = "checked=\"checked\"";
620
    } else {
621
      $caposteriori = "checked=\"checked\"";
622
    }
623
    if ($notification == "mail") {
624
      $mnotification = "checked=\"checked\"";
625
    }
626
  }
627

  
628

  
629
  $r = "<form class=\"form-albumOptions\" method=\"POST\" name=\"albumOptionsForm\">
630

  
631
  <input type=\"hidden\" name=\"op\" value=\"setOptions\">
632
  <input type=\"hidden\" name=\"album\" value=\"" . base64_encode(xor_this($album)) . "\">
633

  
634
  <h2 class=\"form-signin-heading\">Options de configuration de l'album</h2>
635
  <p>ATTENTION: tout ceci est en cours de développement, merci de participer ici : <a href=\"http://redmine.abuledu.org/projects/abuledu-clicalbum/issues\">http://redmine.abuledu.org/projects/abuledu-clicalbum/issues</a></p>
636

  
637
  <p>Modération des photos:</p>
638
  <label for=\"moderation\" class=\"sr-only\">Modération:</label>
639
  <div class=\"radio\">
640
    <label>
641
    <input type=\"radio\" name=\"moderation\" value=\"aposteriori\" $caposteriori> À postériori
642
    </label>
643
    <label>
644
    <input type=\"radio\" name=\"moderation\" value=\"apriori\" $capiori> À priori (les photos ne sont pas visibles tant que le responsable ne les a pas validés)
645
    </label>
646
  </div>
647

  
648
  <p>Notifications:</p>
649
  <label for=\"notification\" class=\"sr-only\">Recevoir des notifications:</label>
650
  <div class=\"radio\">
651
    <label>
652
    <input type=\"radio\" name=\"notification\" value=\"none\" $nonotification> Aucune notification
653
    </label>
654
    <label>
655
    <input type=\"radio\" name=\"notification\" value=\"mail\" $mnotification> Par mail à l'adresse suivante:
656
    </label>
657
    <label>
658
    <input type=\"text\" name=\"notificationTo\" value=\"$notificationTo\">
659
    </label>
660
  </div>
661
  <!-- Sur <a href=\"https://edutwit.abuledu.org\">edutwit</a> -->
662

  
663
  <p>&nbsp;</p>
664
  <button class=\"btn btn-lg btn-primary btn-block\" type=\"submit\">Valider</button>
665
</form>\n";
666
  return $r;
667
}
567 668

  
568 669
//Affiche l'album photo
569 670
function display_pictures($fichiers, $dir, $is_admin = false)
......
571 672
  global $config_data;
572 673
  global $config_fileTypeOK;
573 674

  
574
  if (!is_array($fichiers))
675
  if (!is_array($fichiers)) {
575 676
    return;
677
  }
576 678

  
577 679
  myDebug("display_pictures pour $dir");
578 680

  
......
580 682
  if ($is_admin == false) {
581 683
    $r = "<p id=\"adminLink\"><a href=\"admin.php?album=$dir\">Administrer cet album</a></p>";
582 684
  } else {
583
    $r = "<p id=\"adminLink\"><a href=\"conf.php?album=$dir\">Configurer l'album</a> -- <p id=\"adminLink\"><a href=\"pdf.php?album=$dir\">Exporter l'album au format PDF</a> -- <a href=\"/$dir\">Retourner à l'album public</a></p>";
685
    $r = "<p id=\"adminLink\"><a href=\"conf.php?album=$dir\">Configurer l'album</a> -- <a href=\"pdf.php?album=$dir\">Exporter l'album au format PDF</a> -- <a href=\"/$dir\">Retourner à l'album public</a></p>";
584 686
  }
585 687

  
586 688
  $r .= "  <div class=\"card-columns\">\n";
......
640 742

  
641 743
function apiCreateUser($object)
642 744
{
643
  $email  = $object['email'];
745
  $email = $object['email'];
644 746
  $login = str_replace("_", "", slugify($object['pseudo']));
645 747

  
646 748
  //On regarde si ce pseudo est déjà pris par qqn d'autre ...
......
656 758
    //Si ce compte n'existe pas on le créé
657 759
    $user = array(
658 760
      'login' => $login,
659
      'email' => $email
761
      'email' => $email,
660 762
    );
661 763
    set_userInfo($login, $user);
662 764
    $arr['loginOK'] = true;
......
678 780

  
679 781
function apiCreateAlbum($object)
680 782
{
681
  $email  = $object['email'];
682
  $album  = $object['album'];
683
  $albumPass  = $object['albumPass'];
684
  $albumPassAdmin  = $object['albumPassAdmin'];
783
  $email = $object['email'];
784
  $album = $object['album'];
785
  $albumPass = $object['albumPass'];
786
  $albumPassAdmin = $object['albumPassAdmin'];
685 787
  $arr = array();
686 788

  
687 789
  myDebug("apiCreateAlbum : $album par $email");
......
755 857
  return $r;
756 858
}
757 859

  
758

  
759 860
function xor_this($text)
760 861
{
761 862
  global $config_crypt_key;

Formats disponibles : Unified diff

Redmine Appliance - Powered by TurnKey Linux