From d0e45ced64bd5bbe80bf127281fe0030800193f0 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Mon, 26 Feb 2007 22:24:58 +0000 Subject: [PATCH] Reorganize events menu git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1526 839d8a87-29fc-0310-9880-83ba4fa771e5 --- ChangeLog | 3 ++ htdocs/images/icons/bell.gif | Bin 0 -> 1328 bytes htdocs/images/icons/clock.gif | Bin 0 -> 1770 bytes modules/events.php | 82 +++++++++++++++++++++++++----------------- templates/events/index.tpl | 34 +++++++++++++++--- 5 files changed, 82 insertions(+), 37 deletions(-) create mode 100644 htdocs/images/icons/bell.gif create mode 100644 htdocs/images/icons/clock.gif diff --git a/ChangeLog b/ChangeLog index 91911aa..b6a6a3b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,9 @@ New: - UTF-8 -FRU - New Backtrace tool -FRU + * Events: + - #643: Sort menu -FRU + * Search: - Search Engine IE7 compatible -FRU diff --git a/htdocs/images/icons/bell.gif b/htdocs/images/icons/bell.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0a19657288b907070064c584f5e5c7a3b609291 GIT binary patch literal 1328 zcmcJPQEbyj7{|YuvUVM86%?=vhzr}wElsK04sfAGZo_CY#^#i24V@TCldP#!Qp+(A z-lDVx3wSW%#X>w7rcHjBCQq6sKjzU7eXulX^8-RgLdcJnkfuxnW#@QPrDRkO%8kY-!lm8CPeu60KxtOJh8{YN@!PGD@b)Qm`o_->DfjSfmf$&6TStz@I6C7KR07SB zxF&1Xdb|ebTfAqLJcIGws%vnbnRKnBCDXo@^laX3aB7ye73ABztszIHEd@1XqKkc} zqzSa6B1gxLhFu-I8nSillU?aVi*3lb?a=?&M1Svy0AwNBdXY*bW~Qg6hne9K0BR#A z2+I^vzEqY(5=WWy^QiMzpr9|@PA*>&CVBpoS8wjOUx2I)@bh4>)~oaWb!3}J1OXzw zWVClN9UemvRNdq(WSrokkIBo3ZEVwkeU_8r3R8mlnjFR4kz2!X#FfSHy~t%NN_judk7cRdOf*i520RxU^W3 z&?LEEMIv}fxGWXLI7*fChvR63VUDy_<3StzaG=wuW$UYJ_1I8){bn{cF>vtK?HfZA zGZ%Yq#iouO8yx7mbMier$z4bsSJqRVo4} F{shg^Qk4Jz literal 0 HcmV?d00001 diff --git a/htdocs/images/icons/clock.gif b/htdocs/images/icons/clock.gif new file mode 100644 index 0000000000000000000000000000000000000000..56298132d3923531fa2d9fa2aecb605e56a915a1 GIT binary patch literal 1770 zcmeHHUuYY39RFUr(X4J=ifiq4huS5&Q~3~t;8*a)R)eve=$bi6HM0sf9ZxYGY+9zCQL!Owwj|3m zt7*DyYDo!M2q8|CCRLLWb*#o{7D>nyk&RI@$tso_R8&=zq$I0mIK;}xwK&IhHLK>< zG*<^5V?`s$vyKKx(=(FpAdrz|p`>fFt|d-Nh*Nb|F&I%3HJl?3p6BQ>R>i7r*IcjW zx}4#0s;L=2l4U!@fXo^xuUQVMEgQCsZO8Rw>>ymTYc--M*j6y< zi?oDY67P8pUjN_z0}MnS?w|l9h}3@{Pp40f4UY}b0||h@dY9)fS%@9`9g&o%4SbKddLS~0m%*UWxtUnxCi*TuI<9fDnCQO>y@*EglHnv?qPtP-`DH+qX4a|09#7E{@cxZed_~KV-oc1@|KUUM7oey^Ls?W^=xe{#Z55ft zr$TQck?LKlQd7%EnF{mH)t0lD#a-3m@JeL=w=0>-4{NJ*o1)+d%`7GISCx*);`(Z| z{k2jkmOj4PH$S4y-fetchOneAssoc(); } + function get_events($where, $order, array &$array, $name) + { + // affichage des evenements + // annonces promos triées par présence d'une limite sur les promos + // puis par dates croissantes d'expiration + $promo = S::v('promo'); + $uid = S::i('uid'); + $sql = "SELECT e.id,e.titre, ev.user_id IS NULL AS nonlu + FROM evenements AS e + LEFT JOIN evenements_vus AS ev ON (e.id = ev.evt_id AND ev.user_id = {?}) + WHERE FIND_IN_SET(e.flags, 'valide') AND peremption >= NOW() + AND (e.promo_min = 0 || e.promo_min <= {?}) + AND (e.promo_max = 0 || e.promo_max >= {?}) + AND $where + ORDER BY $order"; + $sum = XDB::iterator($sql, $uid, $promo, $promo); + if (!$sum->total()) { + return false; + } + $sql = "SELECT e.id,e.titre,e.texte,a.user_id,a.nom,a.prenom,a.promo,l.alias AS forlife + FROM evenements AS e + INNER JOIN auth_user_md5 AS a ON e.user_id=a.user_id + INNER JOIN aliases AS l ON ( a.user_id=l.id AND l.type='a_vie' ) + LEFT JOIN evenements_vus AS ev ON (e.id = ev.evt_id AND ev.user_id = {?}) + WHERE FIND_IN_SET(e.flags, 'valide') AND peremption >= NOW() + AND (e.promo_min = 0 || e.promo_min <= {?}) + AND (e.promo_max = 0 || e.promo_max >= {?}) + AND ev.user_id IS NULL + AND $where + ORDER BY $order"; + $evt = XDB::iterator($sql, $uid, $promo, $promo); + $array[$name] = array('events' => $evt, 'summary' => $sum); + return true; + } + function handler_ev(&$page, $action = 'list', $eid = null, $pound = null) { $page->changeTpl('events/index.tpl'); @@ -66,7 +101,7 @@ class EventsModule extends PLModule $page->assign('tips', $this->get_tips()); $res = XDB::query('SELECT date, naissance FROM auth_user_md5 - WHERE user_id={?}', S::v('uid')); + WHERE user_id={?}', S::v('uid')); list($date, $naissance) = $res->fetchOneRow(); // incitation à mettre à jour la fiche @@ -87,7 +122,7 @@ class EventsModule extends PLModule // incitation à mettre une photo $res = XDB::query('SELECT COUNT(*) FROM photo - WHERE uid={?}', S::v('uid')); + WHERE uid={?}', S::v('uid')); $page->assign('photo_incitation', $res->fetchOneCell() == 0); // Incitation à se géolocaliser @@ -119,36 +154,16 @@ class EventsModule extends PLModule pl_redirect('events#newsid'.$eid); } - // affichage des evenements - // annonces promos triées par présence d'une limite sur les promos - // puis par dates croissantes d'expiration - $promo = S::v('promo'); - $sql = "SELECT e.id,e.titre,e.texte,a.user_id,a.nom,a.prenom,a.promo,l.alias AS forlife - FROM evenements AS e - INNER JOIN auth_user_md5 AS a ON e.user_id=a.user_id - INNER JOIN aliases AS l ON ( a.user_id=l.id AND l.type='a_vie' ) - LEFT JOIN evenements_vus AS ev ON (e.id = ev.evt_id AND ev.user_id = {?}) - WHERE FIND_IN_SET(e.flags, 'valide') AND peremption >= NOW() - AND (e.promo_min = 0 || e.promo_min <= {?}) - AND (e.promo_max = 0 || e.promo_max >= {?}) - AND ev.user_id IS NULL - ORDER BY (e.promo_min != 0 AND e.promo_max != 0) DESC, e.peremption"; - $page->assign('evenement', - XDB::iterator($sql, S::v('uid'), - $promo, $promo) - ); - - $sql = "SELECT e.id,e.titre, ev.user_id IS NULL AS nonlu - FROM evenements AS e - LEFT JOIN evenements_vus AS ev ON (e.id = ev.evt_id AND ev.user_id = {?}) - WHERE FIND_IN_SET(e.flags, 'valide') AND peremption >= NOW() - AND (e.promo_min = 0 || e.promo_min <= {?}) - AND (e.promo_max = 0 || e.promo_max >= {?}) - ORDER BY (e.promo_min != 0 AND e.promo_max != 0) DESC, e.peremption"; - $page->assign('evenement_summary', - XDB::iterator($sql, S::v('uid'), - $promo, $promo) - ); + $array = array(); + $this->get_events('e.creation_date > DATE_SUB(CURDATE(), INTERVAL 2 DAY)', + 'e.creation_date DESC', $array, 'news'); + $this->get_events('e.peremption < DATE_ADD(CURDATE(), INTERVAL 2 DAY) + AND e.creation_date <= DATE_SUB(CURDATE(), INTERVAL 2 DAY)', + 'e.peremption, e.creation_date DESC', $array, 'end'); + $this->get_events('e.peremption >= DATE_ADD(CURDATE(), INTERVAL 2 DAY) + AND e.creation_date <= DATE_SUB(CURDATE(), INTERVAL 2 DAY)', + 'e.peremption, e.creation_date DESC', $array, 'body'); + $page->assign_by_ref('events', $array); } function handler_rss(&$page, $user = null, $hash = null) @@ -300,7 +315,8 @@ class EventsModule extends PLModule $action = 'edit'; } else { XDB::execute('UPDATE evenements - SET titre={?}, texte={?}, peremption={?}, promo_min={?}, promo_max={?} + SET creation_date = creation_date, + titre={?}, texte={?}, peremption={?}, promo_min={?}, promo_max={?} WHERE id = {?}', Post::v('titre'), Post::v('texte'), Post::v('peremption'), Post::v('promo_min'), Post::v('promo_max'), $eid); diff --git a/templates/events/index.tpl b/templates/events/index.tpl index 6fc4e72..7e64ba8 100644 --- a/templates/events/index.tpl +++ b/templates/events/index.tpl @@ -104,8 +104,22 @@ Bienvenue {$smarty.session.prenom} Sommaire des informations événementielles - {iterate item=ev from=$evenement_summary} - + {foreach from=$events name=events key=category item=evenement} + {if $smarty.foreach.events.total neq 1} + + + {if $category eq 'news'} + {icon name=bell} Nouvelles annonces : + {elseif $category eq 'end'} + {icon name=clock} Dernières minutes : + {else} + {icon name=magnifier} Mais encore... + {/if} + + + {/if} + {iterate item=ev from=$evenement.summary} + • @@ -119,6 +133,7 @@ Bienvenue {$smarty.session.prenom} {assign var="has_evts" value=true} {/iterate} + {/foreach} {if !$has_evts} Aucun article actuellement @@ -141,14 +156,24 @@ Bienvenue {$smarty.session.prenom} } {/literal} - - {iterate item=ev from=$evenement} + + {foreach from=$events key=category item=evenement} + {iterate item=ev from=$evenement.events}

+
+ {if $category eq 'news'} + {icon name=bell title="Nouvelle annonce"} + {elseif $category eq 'end'} + {icon name=clock title="Bientôt fini"} + {else} + {icon name=magnifier title="Annonce"} + {/if} +
{if $smarty.session.perms eq 'admin'} {icon name=page_edit title="Editer cet article"} @@ -178,6 +203,7 @@ Bienvenue {$smarty.session.prenom}
{/iterate} + {/foreach}

Nota Bene : les informations présentées ici n'engagent que leurs auteurs -- 2.1.4