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