* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
-// {{{ function get_event_order()
-/* get the order to paste the events
- * @param $asso_id: group's id
- */
-function get_event_order($asso_id)
-{
- $order = XDB::fetchOneCell('SELECT g.event_order
- FROM groups as g
- WHERE id = {?}',
- $asso_id);
- return $order;
-}
-// }}}
-
-// {{{ function get_events()
-/* get the events of the given group ordered by the standard order for the group
- * @param $asso_id: group's id
- * @param $order: order to paste the events (asc or desc)
- */
-function get_events($asso_id, $order)
-{
- if ($order != 'asc' && $order != 'desc') {
- $order = 'desc';
- }
- $evts = XDB::fetchAllAssoc('eid', "SELECT ge.eid, ge.uid, ge.intitule, ge.debut, ge.fin, ge.show_participants, ge.deadline_inscription, ge.accept_nonmembre
- FROM group_events as ge
- WHERE asso_id = {?}
- ORDER BY ge.debut $order",
- $asso_id);
- return $evts;
-}
-// }}}
-
-// {{{ function get_event() (detail, for subs page only for now)
-/* get event details
- * @param $eid: event's id
- */
-function get_event($eid)
-{
- $evt = XDB::fetchOneAssoc('SELECT ge.uid, ge.intitule, ge.descriptif, ge.debut, ge.fin, ge.deadline_inscription, ge.accept_nonmembre
- FROM group_events as ge
- WHERE eid = {?}',
- $eid);
- if (!is_null($evt['deadline_inscription']) && strtotime($evt['deadline_inscription']) < time()) {
- $evt['inscr_open'] = false;
- } else {
- $evt['inscr_open'] = true;
- }
- $evt['organizer'] = User::getSilent($evt['uid'])->profile();
- $evt['date'] = make_event_date($evt['debut'], $evt['fin']);
-
- return $evt;
-}
-// }}}
-
-// {{{ function get_event_items()
-/** get items of the given event
- *
- * @param $eid : event's id
- *
- */
-function get_event_items($eid)
-{
- $evt = XDB::fetchAllAssoc('item_id', 'SELECT gei.item_id, gei.titre, gei.details, gei.montant
- FROM group_event_items as gei
- WHERE eid = {?}',
- $eid);
- return $evt;
-}
-// }}}
-
-// {{{ function get_event_subscription()
-/* get all participations if uid is not specified, only the user's participation if uid specified
- * @param $eid: event's id
- * @param $uid: user's id
- */
-function get_event_subscription($eid, $uid = null)
-{
- if (!is_null($uid)) {
- $where = ' and gep.uid = '.$uid;
- }
- else {
- $where = '';
- }
- $sub = XDB::fetchAllAssoc('item_id','SELECT gep.item_id, gep.nb, gep.paid FROM group_event_participants as gep
- WHERE gep.eid = {?}'.$where,
- $eid);
- return $sub;
-}
-// }}}
-
-// {{{ function get_event_telepaid()
-/* get the total payments made by a user for an event
- * @param $eid: event's id
- * @param $uid: user's id
- */
-function get_event_telepaid($eid, $uid)
-{
- $telepaid = XDB::fetchOneCell('SELECT SUM(pt.amount)
- FROM payment_transactions AS pt
- LEFT JOIN group_events as ge ON (ge.paiement_id = pt.ref)
- WHERE ge.eid = {?} AND pt.uid = {?}',
- $eid, $uid);
- return $telepaid;
-}
-// }}}
-
// {{{ function get_event_detail()
function get_event_detail($eid, $item_id = false, $asso_id = null)
$evt['paid'] += $montant;
$evt['organizer'] = User::getSilent($evt['uid']);
- $evt['date'] = make_event_date($evt);
+ make_event_date($evt);
$evt['show_participants'] = ($evt['show_participants'] && $GLOBALS['IS_XNET_SITE'] && (is_member() || may_update()));
}
// }}}
-// {{{ function subscribe()
-/** set or update the user's subscription
- *
- * @param $uid: user's id
- * @param $eid: event's id
- * @param $subs: user's new subscription
- *
- */
-function subscribe($uid, $eid, $subs = array())
-{
- global $globals;
- // get items
- $items = get_event_items($eid);
- // get previous subscription
- $old_subs = get_event_subscription($eid, $uid);
- $participate = false;
- $updated = false;
- // for each item of the event
- foreach ($items as $item_id => $details) {
- // check if there is an old subscription
- if (array_key_exists($item_id, $old_subs)) {
- echo 'prev exists ';
- // compares new and old subscription
- if ($old_subs[$item_id]['nb'] != $subs[$item_id]) {
- echo 'different ';
- if ($subs[$item_id] != 0) {
- echo "je m'inscris ";
- XDB::execute('INSERT INTO group_event_participants (eid, uid, item_id, nb, flags, paid)
- VALUES ({?}, {?}, {?}, {?}, {?}, {?})
- ON DUPLICATE KEY UPDATE nb = VALUES(nb), flags = VALUES(flags), paid = VALUES(paid)',
- $eid, $uid, $item_id, $subs[$item_id],(Env::has('notify_payment') ? 'notify_payment' : ''), 0);
- $participate = true;
- } else { // we do not store non-subscription to event items
- echo "je me desinscris ";
- XDB::execute('DELETE FROM group_event_participants
- WHERE eid = {?} AND uid = {?} AND item_id = {?}',
- $eid, $uid, $item_id);
- }
- $updated = true;
- }
- } else { // if no old subscription
- echo 'no prev ';
- if ($subs[$item_id] != 0) {
- echo 'subscribe ';
- XDB::execute('INSERT INTO group_event_participants (eid, uid, item_id, nb, flags, paid)
- VALUES ({?}, {?}, {?}, {?}, {?}, {?})',
- $eid, $uid, $item_id, $subs[$item_id], '', 0);
- $participate = true;
- $updated = true;
- }
- }
- }
- // item 0 stores whether the user participates globally or not, if he has to be notified when payment is created and his manual payment
- if (array_key_exists(0, $old_subs)) {
- XDB::execute('UPDATE group_event_participants
- SET nb = {?}
- WHERE eid = {?}, uid = {?}, item_id = 0',
- ($participate ? 1 : 0), $eid, $uid);
- } else {
- XDB::execute('INSERT INTO group_event_participants (eid, uid, item_id, nb, flags, paid)
- VALUES ({?}, {?}, {?}, {?}, {?}, {?})',
- $eid, $uid, 0, ($participate ? 1 : 0), (Env::has('notify_payment') ? 'notify_payment' : ''), 0);
- }
- // if subscription is updated, we have to update the event aliases
- if ($updated) {
- echo "inscription mise a jour ";
- $short_name = get_event_detail($eid)['short_name'];
- subscribe_lists_event($uid, $short_name, ($participate ? 1 : -1), 0);
- }
- return $updated;
-}
-// }}}
-
-// {{{ function add_manual_payment()
-// deal with manual payments : add them on item_id = 0 (so that it's not dependant on what items the user registers)
-/*
- *
- */
-function add_manual_payment($newly_paid)
-{
- $old_subs = get_event_subscription($eid, $uid);
- if ($newly_paid != 0) {
- if (array_key_exists(0, $old_subs)) {
- echo "update paiement liquide ";
- XDB::execute('UPDATE group_event_participants
- SET paid = {?}
- WHERE eid = {?}, uid = {?}, item_id = 0',
- $old_subs[0]['paid'] + $newly_paid, $eid, $uid);
- } else {
- echo "on ne devrait pas passer ici car on a deja un moment 0 des qu'on est ajoute comme participant ";
- XDB::execute('INSERT INTO group_event_participants (eid, uid, item_id, nb, flags, paid)
- VALUES ({?}, {?}, 0, 0, "", {?})',
- $eid, $uid, $newly_paid);
- }
- }
-}
-// }}}
-// TODO : correct this function to be compatible with subscribe() (use $eid, remove useless argument)
-// TODO : correct other calls
-
// {{{ function subscribe_lists_event()
/** Subscribes user to various event related mailing lists.
*
// }}}
// {{{ function make_event_date()
-function make_event_date($debut, $fin)
+function make_event_date(&$e)
{
- $start = strtotime($debut);
- $end = strtotime($fin);
-// $first_day = $e['first_day'];
-// $last_day = $e['last_day'];
- $first_day = strftime("%d %B %Y", $start);
- $last_day = strftime("%d %B %Y", $end);
+ $start = strtotime($e['debut']);
+ $end = strtotime($e['fin']);
+ $first_day = $e['first_day'];
+ $last_day = $e['last_day'];
+
$date = "";
if ($start && $end != $start) {
if ($first_day == $last_day) {
} else {
$date .= "le " . strftime("%d %B %Y à %H:%M", $start);
}
- return $date;
+ $e['date'] = $date;
}
// }}}