From 49056fe2c32629b7b63b7936e6d9a25562fe5b5a Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Mon, 16 May 2011 11:03:03 +0200 Subject: [PATCH] Stores if a user wants her unsubscription to be remembered. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- classes/group.php | 8 ++++---- modules/xnetgrp.php | 6 +++--- templates/xnetgrp/membres-del.tpl | 3 +++ upgrade/1.1.2/01_groups.sql | 3 +++ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/classes/group.php b/classes/group.php index c2ae53f..d17562c 100644 --- a/classes/group.php +++ b/classes/group.php @@ -151,11 +151,11 @@ class Group $group_id, $uid); } - static public function unsubscribe($group_id, $uid) + static public function unsubscribe($group_id, $uid, $remember) { - XDB::execute('INSERT INTO group_former_members (asso_id, uid, unsubsciption_date) - VALUES ({?}, {?}, NOW())', - $group_id, $uid); + XDB::execute('INSERT INTO group_former_members (asso_id, uid, remember, unsubsciption_date) + VALUES ({?}, {?}, {?}, NOW())', + $group_id, $uid, $remember); XDB::execute('DELETE FROM group_members WHERE uid = {?} AND asso_id = {?}', $uid, $group_id); diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index 814fdcc..d3ecad4 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -955,10 +955,10 @@ class XnetGrpModule extends PLModule $page->assign('users', $users); } - function unsubscribe(PlUser $user) + function unsubscribe(PlUser $user, $remember = false) { global $globals; - Group::unsubscribe($globals->asso('id'), $user->id()); + Group::unsubscribe($globals->asso('id'), $user->id(), $remember); if ($globals->asso('notif_unsub')) { $mailer = new PlMailer('xnetgrp/unsubscription-notif.mail.tpl'); @@ -1025,7 +1025,7 @@ class XnetGrpModule extends PLModule $hasSingleGroup = ($user->groupCount() == 1); - if ($this->unsubscribe($user)) { + if ($this->unsubscribe($user, Post::b('remember'))) { $page->trigSuccess('Tu as été désinscrit du groupe avec succès.'); } else { $page->trigWarning('Tu as été désinscrit du groupe, mais des erreurs se sont produites lors des désinscriptions des alias et des listes de diffusion.'); diff --git a/templates/xnetgrp/membres-del.tpl b/templates/xnetgrp/membres-del.tpl index 004a356..1ad940a 100644 --- a/templates/xnetgrp/membres-del.tpl +++ b/templates/xnetgrp/membres-del.tpl @@ -52,6 +52,9 @@ et le désabonner de toutes les listes de diffusion du groupe ? {/if}

+ {if $self} +

+ {/if} diff --git a/upgrade/1.1.2/01_groups.sql b/upgrade/1.1.2/01_groups.sql index 4f999db..334b768 100644 --- a/upgrade/1.1.2/01_groups.sql +++ b/upgrade/1.1.2/01_groups.sql @@ -1,6 +1,9 @@ +DROP TABLE IF EXISTS group_former_members; + CREATE TABLE group_former_members ( asso_id SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0, uid INT(11) UNSIGNED NOT NULL DEFAULT 0, + remember BOOLEAN NOT NULL DEFAULT FALSE, unsubsciption_date DATE NOT NULL, PRIMARY KEY (asso_id, uid), KEY uid (uid), -- 2.1.4