From 33fcb12c82f58ece280e1acee8241d93745819d1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Fri, 31 Dec 2010 18:39:48 +0100 Subject: [PATCH] Adds positions for group members. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- classes/user.php | 1 + modules/xnetgrp.php | 11 ++++++++--- templates/xnetgrp/membres-edit.tpl | 13 +++++++++++++ upgrade/1.1.0/04_xnetgrp.sql | 1 + 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/classes/user.php b/classes/user.php index fb9059c..b5669fa 100644 --- a/classes/user.php +++ b/classes/user.php @@ -172,6 +172,7 @@ class User extends PlUser $joins .= XDB::format("LEFT JOIN group_members AS gpm ON (gpm.uid = a.uid AND gpm.asso_id = {?})\n", $globals->asso('id')); $fields[] = 'gpm.perms AS group_perms'; $fields[] = 'gpm.comm AS group_comm'; + $fields[] = 'gpm.position AS group_position'; } if (count($fields) > 0) { $fields = ', ' . implode(', ', $fields); diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index 76be456..eb70ad1 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -919,11 +919,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) { @@ -992,9 +993,13 @@ 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) diff --git a/templates/xnetgrp/membres-edit.tpl b/templates/xnetgrp/membres-edit.tpl index ea1050d..b2f9adf 100644 --- a/templates/xnetgrp/membres-edit.tpl +++ b/templates/xnetgrp/membres-edit.tpl @@ -76,6 +76,19 @@ + + + Poste : + + + + + {if !$user->profile()} diff --git a/upgrade/1.1.0/04_xnetgrp.sql b/upgrade/1.1.0/04_xnetgrp.sql index 3b32205..568cd5d 100644 --- a/upgrade/1.1.0/04_xnetgrp.sql +++ b/upgrade/1.1.0/04_xnetgrp.sql @@ -1,3 +1,4 @@ ALTER TABLE groups ADD COLUMN axDate DATE DEFAULT NULL; +ALTER TABLE group_members ADD COLUMN position ENUM('Président', 'Vice-président', 'Trésorier', 'Vice-trésorier', 'Secrétaire', 'Directeur', 'Délégué général', 'Secrétaire général', 'Membre du bureau') DEFAULT NULL; -- vim:set syntax=mysql: -- 2.1.4