From 506a46edb65426c99626c75b5625e3a008a6c2e2 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Sat, 29 Jul 2006 17:05:36 +0000 Subject: [PATCH] Rework events admin page Need tests, please :) git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@696 839d8a87-29fc-0310-9880-83ba4fa771e5 --- htdocs/images/icons/package_add.gif | Bin 0 -> 1374 bytes htdocs/images/icons/package_delete.gif | Bin 0 -> 1372 bytes htdocs/images/icons/thumb_down.gif | Bin 0 -> 1085 bytes htdocs/images/icons/thumb_up.gif | Bin 0 -> 1082 bytes modules/events.php | 134 ++++++++++++++++++--------------- templates/admin/evenements.tpl | 87 +++++++++++---------- 6 files changed, 118 insertions(+), 103 deletions(-) create mode 100644 htdocs/images/icons/package_add.gif create mode 100644 htdocs/images/icons/package_delete.gif create mode 100644 htdocs/images/icons/thumb_down.gif create mode 100644 htdocs/images/icons/thumb_up.gif diff --git a/htdocs/images/icons/package_add.gif b/htdocs/images/icons/package_add.gif new file mode 100644 index 0000000000000000000000000000000000000000..51753bc8019d2210db94fe42580680ba9d2017bc GIT binary patch literal 1374 zcmb`HUufG#9LIll(>XEemZh%al!Vz~Nxb0{C0RRV>53esiA#&$btn+-|j>Wz$JNVYCo8ty!@WMoRL6c^R3(I5?l z(WJOy$YL{V>yoKSwOTwYF_tdrG6u>qWW}gA8`vY;2JUrJ$(jmlDU@NUS&=fDRI|w# zDzD3=(V&p6+bU&i6mkq*CLG&9j%li#rDBhcYz>*Bql?IDB3nUL16g%s%C^c_3gfsr zmaQ?!QV_Bba*$C&2Jc|gtm}1BuM}(5sxwSNSB%o_YLx{B{TM-T*(0 zxqCf6?>{5m6X@o>mHwU`8|Oba1QHop34<5;{l1vQkuprV}82ial_?x zj}@0MvUiF;4ztEw=@5BR~LLV*ply01F=i zT)hu4dK2LAHvsG*fTbz$lRy14Jh9sAj?%f!jrB@SC>Embg`u}Lw<=XWmoK)%Pi_*5 zHGC)l^cH`)vQgrMXcFJAA})A=zbF(diD;^vKbDA25XA9z)r32{KO6|$6HD7WrSR|- zY3HNkW7E^SpG;zp#!&f2ae80(X-b+y*0{GotNMJ@k)O% z6z=@hpG@_RN99f_cm3yG-_Ex^zsR#)A0G_O)%%makyu|a9m>SEzv~JPy+1T@-`W$u LKKFfxAEy5TTH%Y0 literal 0 HcmV?d00001 diff --git a/htdocs/images/icons/package_delete.gif b/htdocs/images/icons/package_delete.gif new file mode 100644 index 0000000000000000000000000000000000000000..9e96b17a5e4216bf18e8c1f382502245e86d2ec1 GIT binary patch literal 1372 zcmb`HUu@e%9LIl2Gj$tlXIO!BWScwME}(RC*8(X;;5Mjrwn~__khFl7zr-C`dQGws z-a@*8Tk&9NJOs3dY`_$u37HqCOna3fPuT<4uU`vfLIl$i427!Sho^jqOhZdiHRJeV#>UsgpGRG zY>1{Rn2oT;gRLV?+^JVtOXkc5Z`3)n$(tH=GL|YhR?}*VSPeU>Y^#!vf|e!`yY85Z zV^nRuVrht2img|1g|?Q7Rn_GnHma5`V?!p0G3204!Dt#v&@vQ^XjSmueTVV!q09&5a<@(wm_35a9q5@RG-Y$|%3u@P%XLE;#Wtr5FH zY=t-`acn|ttP8d#Vfy~{gst&}nv`{sV1t+y$E*;$Nh*HFlnGV|ZW7`+hD5MNDA}r| zio{miqW;%q;8&jqU=;>hzegjHQ?t{vqul6m0PkiJp}d!tIa??fsh^E6F0tLWp&Jf# zYA4erG$o325AO8KZJ@OQejIUYJvi?lBYTRpA%LfkM*DId4!WG`@Cz=#TSjG?Bf6ZH zk{QZ$La4ZKDnePI+?(rg!{t4ux$Rpj0bIWZ@c8hyFX#t&GzOrJZTs%M+7`w0*k;YJq0B`u`zh+0Q_P+g*WPUkS zOqR15*1a&1mHbMvgp%oOJN*AG3P5B9y;oe$No975-mffecov;2XNw^=T1X!a zvBx>?nReHZyShId=-#TX*49=7%msPvgO|qp``0&~UyL6p?0a}UaOA|9GpU2Q?9g;? zEfC;OOg+c#e{$%diR`hxI|7TTSB|~0(vzCYKehX{k!P937#hxG5=a_M&mI~YW8!nM zeD0k$L!r}$CMR=8`{S|s)Xn7ST{A*7I(iq+=cR1d(o95rq|d)#C>Pf~2mQ z`LOTv@f+3J#?7Y(uluh+?Zb}_zUEwH f*S_I_C&p42m^*_%Y;+wSxY1;V+Wge}0F!?JS`VWd literal 0 HcmV?d00001 diff --git a/htdocs/images/icons/thumb_down.gif b/htdocs/images/icons/thumb_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2e54b015c8a7ee75f02cb138dee3797a6a15bf0 GIT binary patch literal 1085 zcmb`GPe>F|9LImVtGi{Rx%ppHW`oSb8mnTg{dYFtc6aw!Zi z!A22Vc$ku61j)S=OQ*R6bMUZH$sD9M=&;8HA%0OZy|+^ck#zCF@6G4;=e_UD@4e~j zIqU5RltL+d1Uhg&fw4GdGMLhFM!{?rXJj0e@k##dI1~4U-yXbEqho%V7>NmC7scz~uT~U;$_X zm+`a5=Nstax>`IftpL{5fFO)piNZug5=orBaB-M*tbqgSP1yh+6*~R?bKAefw>2Pp z1H5mhdu?C$&kQ3HK>$lR$(DyrZlXM5@^Q-7BtarIe#-o4AV`=PxW&N%AK^IRlCa4# zm8;RKZKTm;SQrkV@RMO|Gy*st0Bpt$i}wmpAx6@wWQkG0q{TH{5W%W^AM=cZ=>PAcs-JD0L_30;AuC&P!T}i9Ke$= z0Eb=zl)VP<7Xu7-fYtl;kD1NNudDS1#>Ym)fD{U{^uqWi$0x<85a2`k^v+FEXoegL zfNxT`E{=sqCAO2?uMiQO5T>M%=w^E&{9!lS>hZMaRo!%^KP=d9o_;8FyK7G^SQc&8 znmOjq(wX+y(bB#5qc^IR5AU>CO>e__}%#1+s;TG^Vl`t+yB`p$v)Z_WhS;?M!8bgKH?hd~cSm>MuFqEVA3mAN6wu#kM_#iqBA`uoHo?uy-PKkItv}Kp zg0A{vQltevMeHF$dTEb?BnFYJkXX>e=xJcYFG_Cb>=r^Ky?D6i+|T*_e&>Ae{hoW> zy=U7yyk#iEJMc!aI0b{0%~CQ$(Kuyu6phhPj7DN4Ni-6qWRfx&N~};iL&-FyGL&M) zDNeUR`8=iA!c;+UCx^Q4y9_`B>a?G| zg3#~ocDJ}%S^?v#SCYn!Oez#sWEOV}T^M$l*I-7iuJ08iQkTbbe*35Swg$F0@V1%n zwSC<`GZvW%0tP$F+5v5mfhDTeaZ$fY)BG;0P+H&FCZ(>59b^E|MrYTA!Snzs3vX{-au zusA7C6>3?vu><(uTz@%zcl{8!&hO5{fAM;_U;xj+1uXXfgC)SZ8DQ}faP%2qdjWW? zz(5C#?Vta2-K@g8YQZ}`HY$4+zt6!x7-3?3LXJpY(O*dK+@ScQ>`(w3-8Xw%c=^G+^!m)udsnq->QJ%CWUUnHWozBdTQerR zV6$8csivB8p~7-wp~hO}wv}40tILj}o`cqq)mCNLv%9yt(rzv>?j3&B(1jDf01tin ADF6Tf literal 0 HcmV?d00001 diff --git a/modules/events.php b/modules/events.php index 5fa4150..8c13572 100644 --- a/modules/events.php +++ b/modules/events.php @@ -247,67 +247,82 @@ class EventsModule extends PLModule } } - function handler_admin_events(&$page, $arch) { + function handler_admin_events(&$page, $action = 'list', $eid = null) + { $page->changeTpl('admin/evenements.tpl'); $page->assign('xorg_title','Polytechnique.org - Administration - Evenements'); - - $arch = $arch == 'archives'; - $evid = Post::i('evt_id'); - $page->assign('arch', $arch); - - switch(Post::v('action')) { - case "Proposer": - XDB::execute('UPDATE evenements SET 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'), $evid); - break; - - case "Valider": - XDB::execute('UPDATE evenements SET creation_date = creation_date, flags = CONCAT(flags,",valide") WHERE id = {?}', $evid); - break; - - case "Invalider": - XDB::execute('UPDATE evenements SET creation_date = creation_date, flags = REPLACE(flags,"valide", "") WHERE id = {?}', $evid); - break; - - case "Supprimer": - XDB::execute('DELETE from evenements WHERE id = {?}', $evid); - break; - - case "Archiver": - XDB::execute('UPDATE evenements SET creation_date = creation_date, flags = CONCAT(flags,",archive") WHERE id = {?}', $evid); - break; - - case "Desarchiver": - XDB::execute('UPDATE evenements SET creation_date = creation_date, flags = REPLACE(flags,"archive","") WHERE id = {?}', $evid); - break; - - case "Editer": - $res = XDB::query('SELECT titre, texte, peremption, promo_min, promo_max FROM evenements WHERE id={?}', $evid); - list($titre, $texte, $peremption, $promo_min, $promo_max) = $res->fetchOneRow(); - $page->assign('mode', 'edit'); - $page->assign('titre',$titre); - $page->assign('texte',$texte); - $page->assign('promo_min',$promo_min); - $page->assign('promo_max',$promo_max); - $page->assign('peremption',$peremption); - - $select = ""; - for ($i = 1 ; $i < 30 ; $i++) { - $p_stamp=date("Ymd",time()+3600*24*$i); - $year=substr($p_stamp,0,4); - $month=substr($p_stamp,4,2); - $day=substr($p_stamp,6,2); - - $select .= "\n"; - } - $page->assign('select',$select); - - break; + $page->register_modifier('hde', 'html_entity_decode'); + + $arch = $action == 'archives'; + $page->assign('action', $action); + + if (Post::v('action') == "Proposer") { + XDB::execute('UPDATE evenements + SET 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'), Post::i('evt_id')); } - - if ($action != "Editer") { - - $sql = "SELECT e.id, e.titre, e.texte, + + if ($action == 'edit') { + $res = XDB::query('SELECT titre, texte, peremption, promo_min, promo_max + FROM evenements + WHERE id={?}', $eid); + list($titre, $texte, $peremption, $promo_min, $promo_max) = $res->fetchOneRow(); + $page->assign('titre',$titre); + $page->assign('texte',$texte); + $page->assign('promo_min',$promo_min); + $page->assign('promo_max',$promo_max); + $page->assign('peremption',$peremption); + + $select = ""; + for ($i = 1 ; $i < 30 ; $i++) { + $p_stamp=date("Ymd",time()+3600*24*$i); + $year=substr($p_stamp,0,4); + $month=substr($p_stamp,4,2); + $day=substr($p_stamp,6,2); + + $select .= "\n"; + } + $page->assign('select',$select); + } else { + switch ($action) { + case 'delete': + XDB::execute('DELETE from evenements + WHERE id = {?}', $eid); + break; + + case "archive": + XDB::execute('UPDATE evenements + SET creation_date = creation_date, flags = CONCAT(flags,",archive") + WHERE id = {?}', $eid); + break; + + case "unarchive": + XDB::execute('UPDATE evenements + SET creation_date = creation_date, flags = REPLACE(flags,"archive","") + WHERE id = {?}', $eid); + $action = 'archives'; + $arch = true; + break; + + case "valid": + XDB::execute('UPDATE evenements + SET creation_date = creation_date, flags = CONCAT(flags,",valide") + WHERE id = {?}', $eid); + break; + + case "unvalid": + XDB::execute('UPDATE evenements + SET creation_date = creation_date, flags = REPLACE(flags,"valide", "") + WHERE id = {?}', $eid); + break; + } + + $pid = ($eid && $action == 'preview') ? $eid : -1; + $sql = "SELECT e.id, e.titre, e.texte,e.id = $pid AS preview, DATE_FORMAT(e.creation_date,'%d/%m/%Y %T') AS creation_date, DATE_FORMAT(e.peremption,'%d/%m/%Y') AS peremption, e.promo_min, e.promo_max, @@ -318,9 +333,10 @@ class EventsModule extends PLModule INNER JOIN auth_user_md5 AS u ON(e.user_id = u.user_id) INNER JOIN aliases AS a ON (u.user_id = a.id AND a.type='a_vie') WHERE ".($arch ? "" : "!")."FIND_IN_SET('archive',e.flags) - ORDER BY FIND_IN_SET('valide',e.flags), peremption"; + ORDER BY FIND_IN_SET('valide',e.flags), e.peremption DESC"; $page->assign('evs', XDB::iterator($sql)); } + $page->assign('arch', $arch); } function handler_admin_nl(&$page, $new = false) { diff --git a/templates/admin/evenements.tpl b/templates/admin/evenements.tpl index ed9f8f5..f3269df 100644 --- a/templates/admin/evenements.tpl +++ b/templates/admin/evenements.tpl @@ -24,69 +24,68 @@

Gestion des événements : - {if $arch eq 'archives'} - [ Actualités | Archives ] + [  + {if $arch || $action eq 'edit'} + Actualités {else} - [ Actualités | Archives ] + Actualités {/if} +  |  + {if !$arch || $action eq 'edit'} + Archives + {else} + Archives + {/if} +  ]

-{if $mode} +{if $action eq 'edit'} {include file="include/form.evenement.tpl"} {else} -{iterate from=$evs item=ev} - + + + - - + - - - + - - + - - - + {/if} + {/iterate}
- Posté par {$ev.prenom} {$ev.nom} (X{$ev.promo}) - TitrePéremption
- {$ev.titre} + {iterate from=$evs item=ev} +
{if !$ev.fvalide}{/if} + {$ev.titre}
+ {if !$ev.fvalide}
{/if} + + Proposée par {$ev.prenom} {$ev.nom} (X{$ev.promo}) +
- {tidy}{$ev.texte|nl2br}{/tidy} + {if !$ev.fvalide}{/if}{$ev.peremption}{if !$ev.fvalide}{/if} + {if $arch} + {icon name=package_delete title="Désarchiver"}
+ {else} + {if $ev.fvalide} + {icon name=thumb_down title="Invalider"} + {icon name=package_add title="Archiver"}
+ {else} + {icon name=thumb_up title="Valider"}
+ {/if} + {/if} + {icon name=page_edit title="Editer"} + {icon name=delete title="Supprimer"}
- Création : {$ev.creation_date}
- Péremption : {$ev.peremption}
- Promos : {$ev.promo_min} - {$ev.promo_max}
+ {if $ev.preview} +
+ {$ev.texte|hde|nl2br}
-
-
- - {if $ev.farch} - - {else} - - {if $ev.fvalide} - - - {else} - - {/if} - - {/if} -
-
-
-
-{/iterate} - {/if} -- 2.1.4