Fix ML templates inclusion path
[platal.git] / modules / profile.php
index 71204b7..efcd84d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2006 Polytechnique.org                              *
+ *  Copyright (C) 2003-2007 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -38,6 +38,7 @@ class ProfileModule extends PLModule
             'referent/search'  => $this->make_hook('ref_search', AUTH_COOKIE),
 
             'trombi'  => $this->make_hook('trombi', AUTH_COOKIE),
+            'groupes-x'        => $this->make_hook('xnet',      AUTH_COOKIE),
 
             'vcard'   => $this->make_hook('vcard',  AUTH_COOKIE),
             'admin/binets'     => $this->make_hook('admin_binets', AUTH_MDP, 'admin'),
@@ -115,7 +116,7 @@ class ProfileModule extends PLModule
 
     function handler_photo_change(&$page)
     {
-        $page->changeTpl('trombino.tpl');
+        $page->changeTpl('profile/trombino.tpl');
 
         require_once('validations.inc.php');
 
@@ -123,15 +124,19 @@ class ProfileModule extends PLModule
                     .'/'.S::v('forlife').'.jpg';
 
         if (Env::has('upload')) {
-            $file = isset($_FILES['userfile']['tmp_name'])
-                    ? $_FILES['userfile']['tmp_name']
-                    : Env::v('photo');
-            if ($data = file_get_contents($file)) {
-                if ($myphoto = new PhotoReq(S::v('uid'), $data)) {
+            if (isset($_FILES['userfile']['tmp_name']) 
+                    && !is_uploaded_file($_FILES['userfile']['tmp_name'])) {
+                $page->trig('Une erreur s\'est produite lors du transfert du fichier');
+            } else {
+                $file = is_uploaded_file($_FILES['userfile']['tmp_name'])
+                        ? $_FILES['userfile']['tmp_name']
+                        : Env::v('photo');
+                if ($data = file_get_contents($file)) {
+                    $myphoto = new PhotoReq(S::v('uid'), $data);
                     $myphoto->submit();
+                } else {
+                    $page->trig('Fichier inexistant ou vide');
                 }
-            } else {
-                $page->trig('Fichier inexistant ou vide');
             }
         } elseif (Env::has('trombi')) {
             $myphoto = new PhotoReq(S::v('uid'),
@@ -168,7 +173,7 @@ class ProfileModule extends PLModule
         global $globals;
         require_once 'user.func.inc.php';
 
-        $page->changeTpl('fiche.tpl', SIMPLE);
+        $page->changeTpl('profile/profile.tpl', SIMPLE);
 
         $view = 'private';
         if (!S::logged() || Env::v('view') == 'public') $view = 'public';
@@ -257,7 +262,7 @@ class ProfileModule extends PLModule
     {
         global $globals;
 
-        $page->changeTpl('profil.tpl');
+        $page->changeTpl('profile/edit.tpl');
 
         $page->addCssLink('profil.css');
         $page->assign('xorg_title', 'Polytechnique.org - Mon Profil');
@@ -339,7 +344,7 @@ class ProfileModule extends PLModule
             if($page->nb_errs()) {
                 require_once "profil/assign_{$opened_tab}.inc.php";
                 $page->assign('onglet', $opened_tab);
-                $page->assign('onglet_tpl', "profil/$opened_tab.tpl");
+                $page->assign('onglet_tpl', "profile/$opened_tab.tpl");
                 return;
             }
 
@@ -374,14 +379,14 @@ class ProfileModule extends PLModule
         require_once "profil/assign_{$opened_tab}.inc.php";
 
         $page->assign('onglet', $opened_tab);
-        $page->assign('onglet_tpl', "profil/$opened_tab.tpl");
+        $page->assign('onglet_tpl', "profile/$opened_tab.tpl");
 
         return;
     }
 
     function handler_p_orange(&$page)
     {
-        $page->changeTpl('orange.tpl');
+        $page->changeTpl('profile/orange.tpl');
 
         require_once 'validations.inc.php';
         require_once 'xorg.misc.inc.php';
@@ -437,7 +442,7 @@ class ProfileModule extends PLModule
             return PL_NOT_FOUND;
         }
 
-        $page->changeTpl('fiche_referent.tpl', SIMPLE);
+        $page->changeTpl('profile/fiche_referent.tpl', SIMPLE);
 
         $res = XDB::query(
                 "SELECT  prenom, nom, user_id, promo, cv, a.alias AS bestalias
@@ -495,7 +500,7 @@ class ProfileModule extends PLModule
 
     function handler_ref_search(&$page)
     {
-        $page->changeTpl('referent.tpl');
+        $page->changeTpl('profile/referent.tpl');
 
         $page->assign('xorg_title', 'Polytechnique.org - Conseil Pro');
 
@@ -607,7 +612,7 @@ class ProfileModule extends PLModule
 
     function handler_p_usage(&$page)
     {
-        $page->changeTpl('nomusage.tpl');
+        $page->changeTpl('profile/nomusage.tpl');
 
         require_once 'validations.inc.php';
         require_once 'xorg.misc.inc.php';
@@ -647,7 +652,7 @@ class ProfileModule extends PLModule
 
     function handler_trombi(&$page, $promo = null)
     {
-        $page->changeTpl('trombipromo.tpl');
+        $page->changeTpl('profile/trombipromo.tpl');
         $page->assign('xorg_title', 'Polytechnique.org - Trombi Promo');
 
         if (is_null($promo)) {
@@ -668,6 +673,21 @@ class ProfileModule extends PLModule
         }
     }
 
+    function handler_xnet(&$page)
+    {
+        $page->changeTpl('profile/groupesx.tpl');
+        $page->assign('xorg_title', 'Polytechnique.org - Promo, Groupes X, Binets');
+        
+        $req = XDB::query('
+            SELECT m.asso_id, a.nom, diminutif, a.logo IS NOT NULL AS has_logo, 
+                   COUNT(e.eid) AS events, mail_domain AS lists
+              FROM groupex.membres AS m 
+        INNER JOIN groupex.asso AS a ON(m.asso_id = a.id)
+         LEFT JOIN groupex.evenements AS e ON(e.asso_id = m.asso_id AND e.archive = 0)
+             WHERE uid = {?} GROUP BY m.asso_id ORDER BY a.nom', S::i('uid'));
+        $page->assign('assos', $req->fetchAllAssoc());
+    }
+    
     function handler_vcard(&$page, $x = null)
     {
         if (is_null($x)) {
@@ -686,7 +706,7 @@ class ProfileModule extends PLModule
     }
 
     function handler_admin_trombino(&$page, $uid = null, $action = null) {
-        $page->changeTpl('admin/admin_trombino.tpl');
+        $page->changeTpl('profile/admin_trombino.tpl');
         $page->assign('xorg_title','Polytechnique.org - Administration - Trombino');
         $page->assign('uid', $uid);
         
@@ -754,9 +774,10 @@ class ProfileModule extends PLModule
         $table_editor = new PLTableEditor('admin/medals','profile_medals','id');
         $table_editor->describe('text', 'intitulé',  true);
         $table_editor->describe('img',  'nom de l\'image', false);
+        $table_editor->describe('flags', 'valider', true);
         $table_editor->apply($page, $action, $id);
         if ($id && $action == 'edit') {
-            $page->changeTpl('admin/gerer_decos.tpl');
+            $page->changeTpl('profile/admin_decos.tpl');
         
             $mid = $id;