From: Florent Bruneau Date: Fri, 27 Jun 2008 21:41:24 +0000 (+0200) Subject: Can export X.net directory as a .csv file (Close #847) X-Git-Tag: xorg/0.9.17~90 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=102f4e64c74b88ed6215a4986fca98658871711e;hp=54b24ba2210b3722cc7287031ee1c0c9d1eaa771;p=platal.git Can export X.net directory as a .csv file (Close #847) Signed-off-by: Florent Bruneau --- diff --git a/htdocs/images/icons/page_excel.gif b/htdocs/images/icons/page_excel.gif new file mode 100644 index 0000000..c424a63 Binary files /dev/null and b/htdocs/images/icons/page_excel.gif differ diff --git a/htdocs/images/icons/page_white_excel.gif b/htdocs/images/icons/page_white_excel.gif new file mode 100644 index 0000000..422293b Binary files /dev/null and b/htdocs/images/icons/page_white_excel.gif differ diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index b27831c..550e0a1 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -82,6 +82,7 @@ class XnetGrpModule extends PLModule '%grp/forum' => $this->make_hook('forum', AUTH_MDP, 'groupmember'), '%grp/annuaire' => $this->make_hook('annuaire', AUTH_MDP, 'groupannu'), '%grp/annuaire/vcard' => $this->make_hook('vcard', AUTH_MDP, 'groupmember:groupannu'), + '%grp/annuaire/csv' => $this->make_hook('csv', AUTH_MDP, 'groupmember:groupannu'), '%grp/trombi' => $this->make_hook('trombi', AUTH_MDP, 'groupannu'), '%grp/geoloc' => $this->make_hook('geoloc', AUTH_MDP, 'groupannu'), '%grp/subscribe' => $this->make_hook('subscribe', AUTH_MDP), @@ -473,6 +474,34 @@ class XnetGrpModule extends PLModule $vcard->do_page($page); } + function handler_csv(&$page, $filename = null) + { + global $globals; + if (is_null($filename)) { + $filename = $globals->asso('diminutif') . '.csv'; + } + $ann = XDB::iterator( + "SELECT IF(m.origine='X',IF(u.nom_usage<>'', u.nom_usage, u.nom) ,m.nom) AS nom, + IF(m.origine='X',u.prenom,m.prenom) AS prenom, + IF(m.origine='X', u.promo, IF(m.origine='ext', 'extérieur', 'personne morale')) AS promo, + IF(m.origine='X' AND u.perms != 'pending',CONCAT(a.alias, '@', {?}), m.email) AS email, + IF(m.origine='X',FIND_IN_SET('femme', u.flags), m.sexe) AS femme, + m.comm as comm + FROM groupex.membres AS m + LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid ) + LEFT JOIN aliases AS a ON ( a.id = m.uid AND a.type = 'a_vie' ) + WHERE m.asso_id = {?} + AND (m.origine != 'X' OR u.perms != 'pending' OR m.email IS NOT NULL) + GROUP BY m.uid + ORDER BY nom, prenom", + $globals->mail->domain, $globals->asso('id')); + header('Content-Type: text/x-csv; charset=utf-8;'); + header('Pragma: '); + header('Cache-Control: '); + $page->changeTpl('xnetgrp/annuaire-csv.tpl', NO_SKIN); + $page->assign('ann', $ann); + } + function handler_subscribe(&$page, $u = null) { global $globals; diff --git a/templates/xnetgrp/annuaire-csv.tpl b/templates/xnetgrp/annuaire-csv.tpl new file mode 100644 index 0000000..30e6a7c --- /dev/null +++ b/templates/xnetgrp/annuaire-csv.tpl @@ -0,0 +1,30 @@ +{**************************************************************************} +{* *} +{* Copyright (C) 2003-2008 Polytechnique.org *} +{* http://opensource.polytechnique.org/ *} +{* *} +{* This program is free software, you can redistribute it and/or modify *} +{* it under the terms of the GNU General Public License as published by *} +{* the Free Software Foundation, either version 2 of the License; or *} +{* (at your option) any later version. *} +{* *} +{* This program is distributed in the hope that it will be useful, *} +{* but WITHOUT ANY WARRANTY, without even the implied warranty of *} +{* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *} +{* GNU General Public License for more details. *} +{* *} +{* You should have received a copy of the GNU General Public License *} +{* along with this program, if not; write to the Free Software *} +{* Foundation, Inc.; *} +{* 59 Temple Place, Suite 330; Boston, MA 02111-1307 USA *} +{* *} +{**************************************************************************} +Nom,Prénom,Sexe,Promotion,Email,Commentaire +{if $ann} +{iterate from=$ann item=m} + +{$m.nom},{$m.prenom},{if $m.sexe}F{else}M{/if},{$m.promo},{$m.email},{$m.comm|replace:',':'\,'} + +{/iterate} +{/if} +{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *} diff --git a/templates/xnetgrp/annuaire.tpl b/templates/xnetgrp/annuaire.tpl index acb7244..552fb53 100644 --- a/templates/xnetgrp/annuaire.tpl +++ b/templates/xnetgrp/annuaire.tpl @@ -42,6 +42,12 @@ Le groupe {$asso.nom} compte {$nb_tot} membres : {/if}
  • + + {icon name=page_excel title="Fichier Excel"} + Obtenir au format Excel + +
  • +
  • {icon name=vcard title="Carte de visite"} Ajouter les membres à ton carnet d'adresse