Some fixes
[platal.git] / modules / admin.php
index 6251800..89a3165 100644 (file)
@@ -45,6 +45,7 @@ class AdminModule extends PLModule
             'admin/validate/answers'       => $this->make_hook('validate_answers', AUTH_MDP, 'admin'),
             'admin/wiki'                   => $this->make_hook('wiki', AUTH_MDP, 'admin'),
             'admin/ipwatch'                => $this->make_hook('ipwatch', AUTH_MDP, 'admin'),
+            'admin/icons'                                                                       => $this->make_hook('icons', AUTH_MDP, 'admin'),
         );
     }
 
@@ -356,7 +357,7 @@ class AdminModule extends PLModule
         require_once("user.func.inc.php");
 
         if (S::has('suid')) {
-            $page->kill("déjà en SUID !!!");
+            $page->kill("déjà en SUID !!!");
         }
 
         if (Env::has('user_id')) {
@@ -693,7 +694,7 @@ class AdminModule extends PLModule
                ORDER BY  u.promo,u.nom,u.prenom');
         $page->assign('diffs', $res->fetchAllAssoc());
 
-        // gens Ã  l'ax mais pas chez nous
+        // gens Ã  l'ax mais pas chez nous
         $res = XDB::query(
                 'SELECT  ia.promo,ia.nom,ia.nom_patro,ia.prenom
                    FROM  identification_ax as ia
@@ -701,7 +702,7 @@ class AdminModule extends PLModule
                   WHERE  u.nom IS NULL');
         $page->assign('mank', $res->fetchAllAssoc());
 
-        // gens chez nous et pas Ã  l'ax
+        // gens chez nous et pas Ã  l'ax
         $res = XDB::query('SELECT promo,nom,prenom FROM auth_user_md5 WHERE matricule_ax IS NULL');
         $page->assign('plus', $res->fetchAllAssoc());
     }
@@ -788,11 +789,14 @@ class AdminModule extends PLModule
         }
     }
 
-    function handler_validate(&$page, $action = 'list', $id = null) {
+    function handler_validate(&$page, $action = 'list', $id = null)
+    {
         $page->changeTpl('admin/valider.tpl');
         $page->assign('xorg_title','Polytechnique.org - Administration - Valider une demande');
                $page->addCssLink('nl.css');
-               require_once("validations.inc.php");
+        $page->addJsLink('ajax.js');
+        require_once("validations.inc.php");
+
 
         if ($action == 'edit' and !is_null($id)) {
             $page->assign('preview_id', $id);
@@ -824,6 +828,7 @@ class AdminModule extends PLModule
 
         $page->assign('vit', new ValidateIterator());
     }
+
     function handler_validate_answers(&$page, $action = 'list', $id = null) {
         $page->assign('xorg_title','Polytechnique.org - Administration - Réponses automatiques de validation');
         $page->assign('title', 'Gestion des réponses automatiques');
@@ -889,7 +894,7 @@ class AdminModule extends PLModule
         $table_editor->apply($page, $action, $id);
     }
 
-    function handler_wiki(&$page, $action='list')
+    function handler_wiki(&$page, $action='list', $wikipage='', $wikipage2='')
     {
         require_once 'wiki.inc.php';
 
@@ -910,6 +915,26 @@ class AdminModule extends PLModule
                 }
             }
         }
+        
+        if ($action == 'delete' && $wikipage != '') {
+            if (wiki_delete_page($wikipage)) {
+                $page->trig("La page ".$wikipage." a été supprimée.");
+            } else {
+                $page->trig("Impossible de supprimer la page ".$wikipage.".");
+            }
+        }
+        
+        if ($action == 'rename' && $wikipage != '' && $wikipage2 != '' && $wikipage != $wikipage2) {
+            if ($changedLinks = wiki_rename_page($wikipage, $wikipage2)) {
+                $s = 'La page <em>'.$wikipage.'</em> a été déplacée en <em>'.$wikipage2.'</em>.';
+                if (is_numeric($changedLinks)) {
+                    $s .= $changedLinks.' lien'.(($changedLinks>1)?'s ont été modifiés.':' a été modifié.');
+                }
+                $page->trig($s);
+            } else {
+                $page->trig("Impossible de déplacer la page ".$wikipage);
+            }
+        }
 
         $perms = wiki_perms_options();
 
@@ -938,9 +963,8 @@ class AdminModule extends PLModule
             $wiki_tree[$cat][$name] = $desc;
         }
 
-
-
         $page->changeTpl('admin/wiki.tpl');
+        $page->addJsLink('jquery.js');
         $page->assign('wiki_pages', $wiki_tree);
         $page->assign('perms_opts', $perms);
     }
@@ -1039,6 +1063,23 @@ class AdminModule extends PLModule
             $page->assign('ip', $props);
         }
     }
+    
+    function handler_icons(&$page)
+               {
+                               $page->changeTpl('admin/icons.tpl');
+                               $dh = opendir('../htdocs/images/icons');
+                               if (!$dh) {
+                                               $page->trig('Dossier des icones introuvables.');
+                               }
+                               $icons = array();
+                               while (($file = readdir($dh)) !== false) {
+                                               if (strlen($file) > 4 && substr($file,-4) == '.gif') {
+                                                               array_push($icons, substr($file, 0, -4));
+                                               }
+                               }
+                               sort($icons);
+                               $page->assign('icons', $icons);
+    }
 }
 
 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: