Merge remote branch 'origin/xorg/maint' into xorg/master
[platal.git] / modules / xnetgrp.php
index 71b5b75..0516201 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2010 Polytechnique.org                              *
+ *  Copyright (C) 2003-2011 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -48,7 +48,7 @@ class XnetGrpModule extends PLModule
             '%grp/member/new/ajax' => $this->make_hook('admin_member_new_ajax', AUTH_MDP,    'user', NO_AUTH),
             '%grp/member/del'      => $this->make_hook('admin_member_del',      AUTH_MDP,    'groupadmin'),
 
-            '%grp/rss'             => $this->make_hook('rss',                   AUTH_PUBLIC, 'user', NO_HTTPS),
+            '%grp/rss'             => $this->make_token_hook('rss',             AUTH_PUBLIC),
             '%grp/announce/new'    => $this->make_hook('edit_announce',         AUTH_MDP,    'groupadmin'),
             '%grp/announce/edit'   => $this->make_hook('edit_announce',         AUTH_MDP,    'groupadmin'),
             '%grp/announce/photo'  => $this->make_hook('photo_announce',        AUTH_PUBLIC),
@@ -56,7 +56,7 @@ class XnetGrpModule extends PLModule
         );
     }
 
-    function handler_index(&$page, $arg = null)
+    function handler_index($page, $arg = null)
     {
         global $globals, $platal;
         if (!is_null($arg)) {
@@ -136,13 +136,13 @@ class XnetGrpModule extends PLModule
         $page->assign('articles', $arts);
     }
 
-    function handler_logo(&$page)
+    function handler_logo($page)
     {
         global $globals;
         $globals->asso()->getLogo()->send();
     }
 
-    function handler_site(&$page)
+    function handler_site($page)
     {
         global $globals;
         $site = $globals->asso('site');
@@ -154,7 +154,7 @@ class XnetGrpModule extends PLModule
         exit;
     }
 
-    function handler_edit(&$page)
+    function handler_edit($page)
     {
         global $globals;
         $page->changeTpl('xnetgrp/edit.tpl');
@@ -196,7 +196,7 @@ class XnetGrpModule extends PLModule
                              descr={?}, site={?}, mail={?}, resp={?},
                              forum={?}, mail_domain={?}, ax={?}, axDate = {?}, pub={?},
                              sub_url={?}, inscriptible={?}, unsub_url={?},
-                             flags={?}
+                             flags = {?}, welcome_msg = {?}
                       WHERE  id={?}",
                       Post::v('nom'), Post::v('diminutif'),
                       Post::v('cat'), (Post::i('dom') == 0) ? null : Post::i('dom'),
@@ -205,7 +205,8 @@ class XnetGrpModule extends PLModule
                       Post::v('forum'), Post::v('mail_domain'),
                       Post::has('ax'), $axDate, Post::v('pub'),
                       Post::v('sub_url'), Post::v('inscriptible'),
-                      Post::v('unsub_url'), $flags, $globals->asso('id'));
+                      Post::v('unsub_url'), $flags, Post::t('welcome_msg'),
+                      $globals->asso('id'));
                 if (Post::v('mail_domain')) {
                     XDB::execute('INSERT IGNORE INTO virtual_domains (domain) VALUES({?})',
                                            Post::v('mail_domain'));
@@ -215,13 +216,14 @@ class XnetGrpModule extends PLModule
                     "UPDATE  groups
                         SET  descr={?}, site={?}, mail={?}, resp={?},
                              forum={?}, pub= {?}, sub_url={?},
-                             unsub_url={?},flags={?}
+                             unsub_url = {?}, flags = {?}, welcome_msg = {?}
                       WHERE  id={?}",
                       Post::v('descr'), $site,
                       Post::v('mail'), Post::v('resp'),
                       Post::v('forum'), Post::v('pub'),
                       Post::v('sub_url'), Post::v('unsub_url'),
-                      $flags, $globals->asso('id'));
+                      $flags, Post::t('welcome_msg'),
+                      $globals->asso('id'));
             }
 
 
@@ -250,7 +252,7 @@ class XnetGrpModule extends PLModule
         }
     }
 
-    function handler_mail(&$page)
+    function handler_mail($page)
     {
         global $globals;
 
@@ -287,7 +289,7 @@ class XnetGrpModule extends PLModule
         }
     }
 
-    function handler_forum(&$page, $group = null, $artid = null)
+    function handler_forum($page, $group = null, $artid = null)
     {
         global $globals;
         $page->changeTpl('xnetgrp/forum.tpl');
@@ -300,7 +302,7 @@ class XnetGrpModule extends PLModule
         run_banana($page, 'ForumsBanana', $get);
     }
 
-    function handler_annuaire(&$page, $action = null, $subaction = null)
+    function handler_annuaire($page, $action = null, $subaction = null)
     {
         global $globals;
 
@@ -353,17 +355,17 @@ class XnetGrpModule extends PLModule
         $page->assign('only_admin', Env::b('admin'));
     }
 
-    function handler_trombi(&$page)
+    function handler_trombi($page)
     {
         pl_redirect('annuaire/trombi');
     }
 
-    function handler_geoloc(&$page)
+    function handler_geoloc($page)
     {
         pl_redirect('annuaire/geoloc');
     }
 
-    function handler_vcard(&$page, $photos = null)
+    function handler_vcard($page, $photos = null)
     {
         global $globals;
         $vcard = new VCard($photos == 'photos', 'Membre du groupe ' . $globals->asso('nom'));
@@ -371,14 +373,14 @@ class XnetGrpModule extends PLModule
         $vcard->show();
     }
 
-    function handler_csv(&$page, $filename = null)
+    function handler_csv($page, $filename = null)
     {
         global $globals;
         if (is_null($filename)) {
             $filename = $globals->asso('diminutif') . '.csv';
         }
         $users = $globals->asso()->getMembersFilter(null, new UFO_Name('directory_name'))->getUsers();
-        pl_content_headers("text/x-csv");
+        pl_cached_content_headers('text/x-csv', 1);
         $page->changeTpl('xnetgrp/annuaire-csv.tpl', NO_SKIN);
         $page->assign('users', $users);
     }
@@ -391,7 +393,7 @@ class XnetGrpModule extends PLModule
                      $globals->asso('id'), $uid);
     }
 
-    private function validSubscription(User &$user)
+    private function validSubscription(User $user)
     {
         global $globals;
         $this->removeSubscriptionRequest($user->id());
@@ -407,6 +409,7 @@ class XnetGrpModule extends PLModule
                      . "\n"
                      . "  Suite à ta demande d'adhésion à " . $globals->asso('nom')
                      . ", j'ai le plaisir de t'annoncer que ton inscription a été validée !\n"
+                     . (is_null($globals->asso('welcome_msg')) ? '' : "\n" . $globals->asso('welcome_msg') . "\n")
                      . "\n"
                      . "Bien cordialement,\n"
                      . "-- \n"
@@ -416,7 +419,7 @@ class XnetGrpModule extends PLModule
         }
     }
 
-    function handler_subscribe(&$page, $u = null)
+    function handler_subscribe($page, $u = null)
     {
         global $globals;
         $page->changeTpl('xnetgrp/inscrire.tpl');
@@ -497,9 +500,9 @@ class XnetGrpModule extends PLModule
             $uf = New UserFilter(New UFC_Group($globals->asso('id'), true));
             $admins = $uf->iterUsers();
             $admin = $admins->next();
-            $to = $admin->bestalias;
+            $to = $admin->bestEmail();
             while ($admin = $admins->next()) {
-                $to .= ', ' . $admin->bestalias;
+                $to .= ', ' . $admin->bestEmail();
             }
 
             $append = "\n"
@@ -531,7 +534,7 @@ class XnetGrpModule extends PLModule
         }
     }
 
-    function handler_subscribe_valid(&$page)
+    function handler_subscribe_valid($page)
     {
         global $globals;
 
@@ -560,7 +563,7 @@ class XnetGrpModule extends PLModule
         $page->assign('valid', $it);
     }
 
-    function handler_change_rights(&$page)
+    function handler_change_rights($page)
     {
         if (Env::has('right') && (may_update() || S::suid())) {
             switch (Env::v('right')) {
@@ -587,7 +590,7 @@ class XnetGrpModule extends PLModule
         http_redirect($_SERVER['HTTP_REFERER']);
     }
 
-    function handler_admin_annuaire(&$page)
+    function handler_admin_annuaire($page)
     {
         global $globals;
 
@@ -627,7 +630,7 @@ class XnetGrpModule extends PLModule
         $page->assign('lists', $lists);
     }
 
-    function handler_admin_member_new(&$page, $email = null)
+    function handler_admin_member_new($page, $email = null)
     {
         global $globals;
 
@@ -711,7 +714,7 @@ class XnetGrpModule extends PLModule
         }
     }
 
-    function handler_admin_member_new_ajax(&$page)
+    function handler_admin_member_new_ajax($page)
     {
         pl_content_headers("text/html");
         $page->changeTpl('xnetgrp/membres-new-search.tpl', NO_SKIN);
@@ -744,7 +747,7 @@ class XnetGrpModule extends PLModule
         $page->assign('users', $users);
     }
 
-    function unsubscribe(PlUser &$user)
+    function unsubscribe(PlUser $user)
     {
         global $globals;
         XDB::execute("DELETE FROM  group_members
@@ -798,7 +801,7 @@ class XnetGrpModule extends PLModule
         return !$warning;
     }
 
-    function handler_unsubscribe(&$page)
+    function handler_unsubscribe($page)
     {
         $page->changeTpl('xnetgrp/membres-del.tpl');
         $user = S::user();
@@ -823,7 +826,7 @@ class XnetGrpModule extends PLModule
         $page->assign('is_member', is_member(true));
     }
 
-    function handler_admin_member_del(&$page, $user = null)
+    function handler_admin_member_del($page, $user = null)
     {
         $page->changeTpl('xnetgrp/membres-del.tpl');
         $user = User::getSilent($user);
@@ -845,7 +848,7 @@ class XnetGrpModule extends PLModule
         }
     }
 
-    private function changeLogin(PlPage &$page, PlUser &$user, MMList &$mmlist, $login)
+    private function changeLogin(PlPage $page, PlUser $user, MMList $mmlist, $login)
     {
         // Search the user's uid.
         $xuser = User::getSilent($login);
@@ -871,7 +874,7 @@ class XnetGrpModule extends PLModule
         return $user->login();
     }
 
-    function handler_admin_member(&$page, $user)
+    function handler_admin_member($page, $user)
     {
         global $globals;
 
@@ -898,7 +901,7 @@ class XnetGrpModule extends PLModule
             // Update user info
             $email_changed = (!$user->profile() && strtolower($user->forlifeEmail()) != strtolower(Post::v('email')));
             $from_email = $user->forlifeEmail();
-            if (!$user->profile()) {
+            if ($user->type == 'virtual' || $user->type == 'xnet') {
                 XDB::query('UPDATE  accounts
                                SET  full_name = {?}, directory_name = {?}, display_name = {?},
                                     sex = {?}, email = {?}, type = {?}
@@ -1005,17 +1008,17 @@ class XnetGrpModule extends PLModule
         $page->assign('positions', explode(',', $positions));
     }
 
-    function handler_rss(&$page, $user = null, $hash = null)
+    function handler_rss(PlPage $page, PlUser $user)
     {
         global $globals;
         $page->assign('asso', $globals->asso());
 
         $this->load('feed.inc.php');
         $feed = new XnetGrpEventFeed();
-        return $feed->run($page, $user, $hash, false);
+        return $feed->run($page, $user, false);
     }
 
-    private function upload_image(PlPage &$page, PlUpload &$upload)
+    private function upload_image(PlPage $page, PlUpload $upload)
     {
         if (@!$_FILES['image']['tmp_name'] && !Env::v('image_url')) {
             return true;
@@ -1034,7 +1037,7 @@ class XnetGrpModule extends PLModule
         return true;
     }
 
-    function handler_photo_announce(&$page, $eid = null) {
+    function handler_photo_announce($page, $eid = null) {
         if ($eid) {
             $res = XDB::query('SELECT  *
                                  FROM  group_announces_photo
@@ -1059,7 +1062,7 @@ class XnetGrpModule extends PLModule
         exit;
     }
 
-    function handler_edit_announce(&$page, $aid = null)
+    function handler_edit_announce($page, $aid = null)
     {
         global $globals, $platal;
         $page->changeTpl('xnetgrp/announce-edit.tpl');
@@ -1224,7 +1227,7 @@ class XnetGrpModule extends PLModule
         $page->assign_by_ref('upload', $upload);
     }
 
-    function handler_admin_announce(&$page)
+    function handler_admin_announce($page)
     {
         global $globals;
         $page->changeTpl('xnetgrp/announce-admin.tpl');