X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fxnetgrp.php;h=0516201f2544e160d01f2795cf500f920e66947d;hb=76362eeb011de4f2cd7825f557643a72494475f9;hp=b894d6491d24643b37a8df9e1b373338da268f4e;hpb=3c2a69dc96bae79936c677be7fb7554a43c555bc;p=platal.git diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index b894d64..0516201 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -1,6 +1,6 @@ $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'); @@ -184,22 +184,29 @@ class XnetGrpModule extends PLModule $page->trigError('Ni le nom ni le diminutif du groupe ne peuvent être vide.'); return; } + $axDate = make_datetime(Post::v('axDate')); + if (Post::t('axDate') != '') { + $axDate = make_datetime(Post::v('axDate'))->format('Y-m-d'); + } else { + $axDate = null; + } XDB::execute( "UPDATE groups SET nom={?}, diminutif={?}, cat={?}, dom={?}, descr={?}, site={?}, mail={?}, resp={?}, - forum={?}, mail_domain={?}, ax={?}, pub={?}, + 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'), Post::v('descr'), $site, Post::v('mail'), Post::v('resp'), Post::v('forum'), Post::v('mail_domain'), - Post::has('ax'), Post::v('pub'), + 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')); @@ -209,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')); } @@ -244,7 +252,7 @@ class XnetGrpModule extends PLModule } } - function handler_mail(&$page) + function handler_mail($page) { global $globals; @@ -281,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'); @@ -294,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; @@ -347,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')); @@ -365,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); } @@ -385,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()); @@ -401,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" @@ -410,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'); @@ -491,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" @@ -525,7 +534,7 @@ class XnetGrpModule extends PLModule } } - function handler_subscribe_valid(&$page) + function handler_subscribe_valid($page) { global $globals; @@ -554,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')) { @@ -581,7 +590,7 @@ class XnetGrpModule extends PLModule http_redirect($_SERVER['HTTP_REFERER']); } - function handler_admin_annuaire(&$page) + function handler_admin_annuaire($page) { global $globals; @@ -621,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; @@ -705,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); @@ -738,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 @@ -792,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(); @@ -817,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); @@ -839,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); @@ -865,7 +874,7 @@ class XnetGrpModule extends PLModule return $user->login(); } - function handler_admin_member(&$page, $user) + function handler_admin_member($page, $user) { global $globals; @@ -892,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 = {?} @@ -913,11 +922,12 @@ class XnetGrpModule extends PLModule // Update group params for user $perms = Post::v('group_perms'); $comm = Post::t('comm'); - if ($user->group_perms != $perms || $user->group_comm != $comm) { + $position = (Post::t('group_position') == '') ? null : Post::v('group_position'); + if ($user->group_perms != $perms || $user->group_comm != $comm || $user->group_position != $position) { XDB::query('UPDATE group_members - SET perms = {?}, comm = {?} + SET perms = {?}, comm = {?}, position = {?} WHERE uid = {?} AND asso_id = {?}', - ($perms == 'admin') ? 'admin' : 'membre', $comm, + ($perms == 'admin') ? 'admin' : 'membre', $comm, $position, $user->id(), $globals->asso('id')); if (XDB::affectedRows()) { if ($perms != $user->group_perms) { @@ -926,6 +936,9 @@ class XnetGrpModule extends PLModule if ($comm != $user->group_comm) { $page->trigSuccess('Commentaire mis à jour.'); } + if ($position != $user->group_position) { + $page->trigSuccess('Poste mis à jour.'); + } } } @@ -986,22 +999,26 @@ class XnetGrpModule extends PLModule } } + $res = XDB::rawFetchAllAssoc('SHOW COLUMNS FROM group_members LIKE \'position\''); + $positions = str_replace(array('enum(', ')', '\''), '', $res[0]['Type']); + $page->assign('user', $user); $page->assign('listes', $mmlist->get_lists($user->forlifeEmail())); $page->assign('alias', $user->emailAliases($globals->asso('mail_domain'), 'user', true)); + $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; @@ -1020,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 @@ -1045,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'); @@ -1210,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');