$data['id']);
return new Group(array_merge($data, array('positions' => $positions)));
}
+
+ static public function subscribe($group_id, $uid)
+ {
+ XDB::execute('DELETE FROM group_former_members
+ WHERE uid = {?} AND asso_id = {?}',
+ $uid, $group_id);
+ XDB::execute('INSERT IGNORE INTO group_members (asso_id, uid)
+ VALUES ({?}, {?})',
+ $group_id, $uid);
+ }
+
+ static public function unsubscribe($group_id, $uid)
+ {
+ XDB::execute('INSERT INTO group_former_members (asso_id, uid, unsubsciption_date)
+ VALUES ({?}, {?}, NOW())',
+ $group_id, $uid);
+ XDB::execute('DELETE FROM group_members
+ WHERE uid = {?} AND asso_id = {?}',
+ $uid, $group_id);
+ }
}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
{
global $globals;
$this->removeSubscriptionRequest($user->id());
- XDB::execute("INSERT IGNORE INTO group_members (asso_id, uid)
- VALUES ({?}, {?})",
- $globals->asso('id'), $user->id());
+ Group::subscribe($globals->asso('id'), $user->id());
+
if (XDB::affectedRows() == 1) {
$mailer = new PlMailer();
$mailer->addTo($user->forlifeEmail());
function unsubscribe(PlUser $user)
{
global $globals;
- XDB::execute("DELETE FROM group_members
- WHERE uid = {?} AND asso_id = {?}",
- $user->id(), $globals->asso('id'));
+ Group::unsubscribe($globals->asso('id'), $user->id());
if ($globals->asso('notif_unsub')) {
$mailer = new PlMailer('xnetgrp/unsubscription-notif.mail.tpl');