// }}}
// {{{ function same_event()
- function same_event($evt, $asso_id)
+ static function same_event($evt, $asso_id)
{
$wevt = 's:3:"evt";s:'.strlen($evt+"").':"'.$evt.'"';
$wassoid = 's:7:"asso_id";s:'.strlen($asso_id + "").':"'.$asso_id.'"';
$sub = array();
$sub['liste des groupes'] = 'plan';
$sub['documentation'] = 'Xnet';
+ $sub['Signaler un bug'] = array('link' => 'send_bug', 'onclick' => 'send_bug();return false');
$menu["Menu Principal"] = $sub;
if (S::logged() && $globals->asso()) {
IF(e.deadline_inscription, e.deadline_inscription >= LEFT(NOW(), 10),
1) AS inscr_open, e.deadline_inscription,
u.nom, u.prenom, u.promo, a.alias,
- MAX(ep.nb) AS inscrit, MAX(ep.paid) AS paid
+ MAX(ep.nb) IS NOT NULL AS inscrit, MAX(ep.paid) AS paid
FROM groupex.evenements AS e
INNER JOIN x4dat.auth_user_md5 AS u ON u.user_id = e.organisateur_uid
INNER JOIN x4dat.aliases AS a ON (a.type = 'a_vie' AND a.id = u.user_id)
// update actual inscriptions
$updated = false;
+ $total = 0;
foreach ($subs as $j => $nb) {
- if ($nb > 0) {
+ if ($nb >= 0) {
XDB::execute(
"REPLACE INTO groupex.evenements_participants
VALUES ({?}, {?}, {?}, {?}, {?})",
$eid, S::v("uid"), $j);
$updated = $eid;
}
+ $total += $nb;
}
- if ($updated !== false) {
- pl_redirect('events?updated='.$updated);
+ if ($updated !== false) {
+ subscribe_lists_event($total, S::i('uid'), $evt);
}
$page->assign('event', get_event_detail($eid));
}
VALUES ({?}, {?}, '', '', 0)", $eid, 1);
}
- pl_redirect('events');
+ //pl_redirect('events');
}
// get a list of all the payment for this asso
if ($nb) {
XDB::execute("REPLACE INTO groupex.evenements_participants
VALUES ({?}, {?}, {?}, {?}, {?})",
- $evt['eid'], $member['uid'], $id, $nb, $paid);
- } else {
- XDB::execute("DELETE FROM groupex.evenements_participants
- WHERE uid = {?} AND eid = {?} AND item_id = {?}",
- $member['uid'], $evt['eid'], $id);
+ $evt['eid'], $member['uid'], $id, $nb, $paid);
}
}
- $res = XDB::query("SELECT uid
+ $res = XDB::query("SELECT COUNT(uid) AS cnt, SUM(nb) AS nb
FROM groupex.evenements_participants
- WHERE uid = {?} AND eid = {?}",
+ WHERE uid = {?} AND eid = {?}
+ GROUP BY uid",
$member['uid'], $evt['eid']);
- $u = $res->fetchOneCell();
+ $u = $res->fetchOneAssoc();
+ $u = $u['cnt'] ? null : $u['nb'];
subscribe_lists_event($u, $member['uid'], $evt);
}
// }}}
// {{{ function subscribe_lists_event()
-function subscribe_lists_event($participate, $uid, $evt) {
+function subscribe_lists_event($participate, $uid, $evt)
+{
+ require_once('user.func.inc.php');
global $globals,$page;
$participant_list = $evt['participant_list'];
$absent_list = $evt['absent_list'];
- $email = S::v('forlife');
+ $email = get_user_forlife($uid);
if ($email) {
$email .= '@'.$globals->mail->domain;
} else {
- $res = XDB::query("SELECT email FROM groupex.membres WHERE uid = {?} AND asso_id = {?}", S::v('uid'), $globals->asso('id'));
+ $res = XDB::query("SELECT email
+ FROM groupex.membres
+ WHERE uid = {?} AND asso_id = {?}",
+ S::v('uid'), $globals->asso('id'));
$email = $res->fetchOneCell();
}
- $subscribe = $participate ? $participant_list : (is_member()?$absent_list:0);
- $unsubscri = $participate ? $absent_list : $participant_list;
-
- if ($subscribe) {
- XDB::execute(
- "REPLACE INTO virtual_redirect VALUES({?},{?})",
- $subscribe, $email);
+ function subscribe($list, $email)
+ {
+ if ($list && $email) {
+ XDB::execute("REPLACE INTO virtual_redirect
+ VALUES ({?},{?})",
+ $list, $email);
+ }
}
- if ($unsubscri) {
- XDB::execute(
- "DELETE FROM virtual_redirect WHERE vid = {?} AND redirect = {?}",
- $unsubscri, $email);
+ function unsubscribe($list, $email)
+ {
+ if ($list && $email) {
+ XDB::execute("DELETE FROM virtual_redirect
+ WHERE vid = {?} AND redirect = {?}",
+ $list, $email);
+ }
}
+ if (is_null($participate)) {
+ unsubscribe($participant_list, $email);
+ subscribe($absent_list, $email);
+ } elseif ($participate) {
+ subscribe($participant_list, $email);
+ unsubscribe($absent_list, $email);
+ } else {
+ unsubscribe($participant_list, $email);
+ unsubscribe($absent_list, $email);
+ }
}
// }}}
//vérifier que l'alias n'est pas déja pris
if ($new && $old != $new) {
- $res = XDB::query('SELECT COUNT(*) FROM virtual
- WHERE alias LIKE {?}',
- $new.'-absents@%');
+ $res = XDB::query('SELECT COUNT(*)
+ FROM groupex.evenements
+ WHERE short_name = {?}',
+ $new);
if ($res->fetchOneCell() > 0) {
$page->trig("Le raccourci demandé est déjà utilisé. Choisis en un autre.");
return $old;
foreach (array('-absents@', '-participants@') as $v) {
$v .= $globals->xnet->evts_domain;
XDB::execute("UPDATE virtual SET alias = {?}
- WHERE type = 'evt' AND alias = {?}",
- $new.$v, $old.$v);
+ WHERE type = 'evt' AND alias = {?}",
+ $new.$v, $old.$v);
}
-
return $new;
}