Can use event shortname as event id in URL
authorx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sun, 5 Nov 2006 10:18:32 +0000 (10:18 +0000)
committerx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sun, 5 Nov 2006 10:18:32 +0000 (10:18 +0000)
Other fixes

git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1049 839d8a87-29fc-0310-9880-83ba4fa771e5

ChangeLog
modules/lists.php
modules/xnetevents.php
modules/xnetevents/xnetevents.inc.php
templates/xnetevents/edit.tpl
templates/xnetevents/index.tpl

index 794318f..486523a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,6 +15,7 @@ New:
     * Xnet/Events:
         - Events can be archived                                           -FRU
         - Can get iCal version of the events                               -FRU
+        - Can use short name as an event identifier in the URL             -FRU
 
 Bug/Wish:
 
index b77ec70..1462fbb 100644 (file)
@@ -125,7 +125,7 @@ class ListsModule extends PLModule
 
     function handler_ajax(&$page, $list = null)
     {
-        $this->prepare_client($page);
+        $domain = $this->prepare_client($page);
         $page->changeTpl('listes/liste.inc.tpl', NO_SKIN);
         if (Get::has('unsubscribe')) {
             $this->client->unsubscribe($list);
@@ -137,7 +137,7 @@ class ListsModule extends PLModule
             $this->client->handle_request($list, Get::v('sadd'), 4, '');
         }
         if (Get::has('mid')) {
-            $this->moderate_mail($list, Get::i('mid'));
+            $this->moderate_mail($domain, $list, Get::i('mid'));
         }
 
         list($liste, $members, $owners) = $this->client->get_members($list);
@@ -371,7 +371,7 @@ class ListsModule extends PLModule
         }
     }
 
-    function moderate_mail($liste, $mid)
+    function moderate_mail($domain, $liste, $mid)
     {
         $mail   = $this->client->get_pending_mail($liste, $mid);
         $reason = '';
@@ -441,7 +441,7 @@ class ListsModule extends PLModule
         }
 
         if (Env::has('mid')) {
-            $mail = $this->moderate_mail($liste, Env::i('mid'));
+            $mail = $this->moderate_mail($domain, $liste, Env::i('mid'));
 
             if (Get::has('mid') && is_array($mail)) {
                 $msg = file_get_contents('/etc/mailman/fr/refuse.txt');
index 977ea1f..95d904d 100644 (file)
@@ -314,11 +314,22 @@ class XnetEventsModule extends PLModule
     {
         global $globals;
 
+        // get eid if the the given one is a short name
+        if (!is_null($eid) && !is_numeric($eid)) {
+            $res = XDB::query("SELECT eid
+                                 FROM groupex.evenements
+                                WHERE asso_id = {?} AND short_name = {?}",
+                              $globals->asso('id'), $eid);
+            if ($res->numRows()) {
+                $eid = (int)$res->fetchOneCell();
+            }
+        }
+
         // check the event is in our group
         if (!is_null($eid)) {
             $res = XDB::query("SELECT short_name, asso_id
-                                           FROM groupex.evenements
-                                          WHERE eid = {?}", $eid);
+                                 FROM groupex.evenements
+                                WHERE eid = {?}", $eid);
             $infos = $res->fetchOneAssoc();
             if ($infos['asso_id'] != $globals->asso('id')) {
                 return PL_NOT_ALLOWED;
@@ -420,15 +431,15 @@ class XnetEventsModule extends PLModule
                                         VALUES ({?}, {?}, '', '', 0)", $eid, 1);
             }
 
-            if (is_null($evt['eid'])) {
+#            if (is_null($evt['eid'])) {
                 pl_redirect('events');
-            }
+#            }
         }
 
         // get a list of all the payment for this asso
         $res = XDB::iterator("SELECT id, text
-                                        FROM {$globals->money->mpay_tprefix}paiements
-                                        WHERE asso_id = {?}", $globals->asso('id'));
+                                FROM {$globals->money->mpay_tprefix}paiements
+                               WHERE asso_id = {?}", $globals->asso('id'));
         $paiements = array();
         while ($a = $res->next()) $paiements[$a['id']] = $a['text']; {
             $page->assign('paiements', $paiements);
@@ -446,8 +457,8 @@ class XnetEventsModule extends PLModule
             // find out if there is already a request for a payment for this event
             require_once 'validations.inc.php';
             $res = XDB::query("SELECT stamp FROM requests
-                                         WHERE type = 'paiements' AND data LIKE {?}",
-                                        PayReq::same_event($eid, $globals->asso('id')));
+                                WHERE type = 'paiements' AND data LIKE {?}",
+                               PayReq::same_event($eid, $globals->asso('id')));
             $stamp = $res->fetchOneCell();
             if ($stamp) {
                 $evt['paiement_id'] = -2;
@@ -467,6 +478,7 @@ class XnetEventsModule extends PLModule
             }
             $page->assign('items', $items);
         }
+        $page->assign('url_ref', $eid);
     }
 
     function handler_admin(&$page, $eid = null, $item_id = null)
index 8f6f5aa..76f4598 100644 (file)
@@ -40,11 +40,11 @@ function get_event_detail($eid, $item_id = false)
       LEFT JOIN        groupex.evenements_participants AS ep ON(e.eid = ep.eid AND ei.item_id = ep.item_id)
       LEFT JOIN virtual AS al ON(al.type = 'evt' AND al.alias = CONCAT(short_name, {?}))
       LEFT JOIN virtual AS pl ON(pl.type = 'evt' AND pl.alias = CONCAT(short_name, {?}))
-          WHERE        e.eid = {?} AND ei.item_id = {?} AND e.asso_id = {?} 
+          WHERE        (e.eid = {?} OR e.short_name = {?}) AND ei.item_id = {?} AND e.asso_id = {?} 
        GROUP BY ei.item_id",
        '-absents@'.$globals->xnet->evts_domain,
        '-participants@'.$globals->xnet->evts_domain,
-       $eid, $item_id ? $item_id : 1, $globals->asso('id'));
+       $eid, $eid, $item_id ? $item_id : 1, $globals->asso('id'));
 
     $evt = $res->fetchOneAssoc();
 
index fc483ae..af3b3dc 100644 (file)
@@ -55,7 +55,7 @@ function deadlineChange(box)
 <hr />
 <h2>Description de l'événement</h2>
 
-<form method="post" action="{$platal->ns}events/edit/{$platal->argv[1]}">
+<form method="post" action="{$platal->ns}events/edit/{$url_ref}">
   <table class='bicol' cellspacing='0' cellpadding='0'>
     <colgroup>
       <col width='25%' />
index 8a2f064..595896c 100644 (file)
@@ -44,7 +44,7 @@
   </colgroup>
   <tr>
     <th colspan="2"{if !$e.inscr_open} class="grayed"{/if}>
-      <a href="{$platal->ns}events/ical/{$e.eid}/{$e.short_name}.ics" style="display: block; float: left;">
+      <a href="{$platal->ns}events/ical/{$e.short_name|default:$e.eid}/{$e.short_name}.ics" style="display: block; float: left;">
         {icon name=calendar_view_day title="Evénement iCal"}
       </a>
       {$e.intitule}
@@ -53,7 +53,7 @@
       {/if}
       {if $admin}
       <br />
-      [<a href="{$platal->ns}events/edit/{$e.eid}">
+      [<a href="{$platal->ns}events/edit/{$e.short_name|default:$e.eid}">
         modifier
         {icon name=date_edit title="Edition de l'événement"}</a>]
       &nbsp;
     <td class="titre">Informations :</td>
     <td class='actions'>
       {if $admin || $e.show_participants}
-      <a href="{$platal->ns}events/admin/{$e.eid}">
+      <a href="{$platal->ns}events/admin/{$e.short_name|default:$e.eid}">
         consulter la liste des participants
         {icon name=group title="Liste des participants"}
       </a><br />
   <tr>
     <td colspan='2' class='center'>
       <strong>
-      <a href='{$platal->ns}events/sub/{$e.eid}'>
+      <a href='{$platal->ns}events/sub/{$e.short_name|default:$e.eid}'>
         gérer mon inscription
       </a>
       </strong>