From a61f73d549a79bad482fbda2c2d7ae91ce53444f Mon Sep 17 00:00:00 2001 From: x2000habouzit Date: Wed, 17 Nov 2004 18:16:23 +0000 Subject: [PATCH] closes fiches's bugs + newskin (openweb) + backports --- ChangeLog | 6 + htdocs/css/default.css | 151 +++++------- htdocs/css/openweb.css | 536 +++++++++++++++++++++++++++++++++++++++++++ htdocs/fiche.php | 17 +- htdocs/newsletter/submit.php | 6 +- include/newsletter.inc.php | 4 +- templates/fiche.tpl | 4 +- templates/skin/openweb.tpl | 119 ++++++++++ 8 files changed, 732 insertions(+), 111 deletions(-) create mode 100644 htdocs/css/openweb.css create mode 100644 templates/skin/openweb.tpl diff --git a/ChangeLog b/ChangeLog index 3c08739..92b0cec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,12 +5,18 @@ New : * Mails: use HermesMailer. -MC + * Skins: + - new skin : openweb. -MC + Bug/Wish : * Bestalias: - #207 : enable for the user the choice of his prefered alias. -MC - #207 : use only the bestalias and the forlife in vcard and fiche. -MC + * Fiche: + - #208,222 : new fiche. -MC + Fixes (from 0.9.2 branch) : diff --git a/htdocs/css/default.css b/htdocs/css/default.css index 203679b..6cae407 100644 --- a/htdocs/css/default.css +++ b/htdocs/css/default.css @@ -288,8 +288,6 @@ table.cadre_a_onglet{ margin: 0; } -div.conteneur_onglets{ /*padding : 2px;*/ } - div.conteneur_tab { border-width : 1px 2px 2px 1px; border-style : solid; @@ -344,128 +342,85 @@ div.conteneur_tab { [ cas de la fiche ] *******************************************************************************/ -#fiche{ - min-width: 760px; - font-size: small; +#fiche { + width: 760px; + font-size: 100%; + vertical-align: top; + + border: 1px solid #369; } -em.intitule { - color: purple; - font-size: small; +#fiche em { color: purple; } + +#fiche h2 { + color: #369; + padding: 0px 4px; + margin: 0.5em 0em; + font-weight: bold; + border-bottom: 1px dotted #369; } -/* top left box */ -#fiche_identite{ - float: left; - border: 1px solid #5555BB; - padding: 5px; - margin: 5px; - width: 500px; +#fiche_identite { + padding: 5px; + width: 600px; } +#photo { padding-left: 1em; } + #fiche_identite div.civilite { - text-align: center; - font-weight: bold; - width: 100%; - font-size: medium; + text-align: center; + font-weight: bold; + width: 80%; + float: left; } -#fiche div.categorie{ - float: left; - clear: left; - color: purple; - font-style: italic; - font-size: medium; -} -#fiche hr{ - clear: left; - float: left; - width: 500px; - height: 1px; - border-left: 0px; - border-right: 0px; - border-bottom: 0px; - border-top: 1px solid #003399; +#fiche_identite div.maj { + float: left; + width: 20%; + font-size: 75%; + text-align: right; + clear: right; } -/* right box : photos, binets */ -#fiche_divers{ - float: right; - width: 210px; - text-align: left; +#fiche_identite div.contact { + clear: both; + margin: 1em; + padding: 1ex; + background: #fff; + border: 1px dotted #69c; } - -#fiche_adresses{ - float: left; - padding: 5px; - margin: 5px; - width: 500px; +#fiche_identite div.email { + clear: left; + float: left; } - -#fiche_adresses em{ color: purple;} -#fiche_adresses span{ font-weight: bold;} - -div.adresse{ - float: left; - padding: 10px; - width: 25ex; - margin: 5px; - margin-top: 0px; +#fiche_identite div.mob { + float: right; + clear: right; + text-align: right; } -div.adresse div.titre{ - text-align: center; - width: 100%; - color: purple; +#fiche_identite div.formation { + margin: 0em 1em; + clear: both; } -#fiche_infospro{ - float: left; - padding: 10px; - width: 500px; - margin: 5px; +div.adresse { + float: left; + width: 46%; + padding: 0px; + margin: 0px 1%; } -#fiche_infospro em{ color: purple;} -#fiche_infospro span{ font-weight: bold;} +div.adresse div.titre { color: purple; } -#fiche_infospro div.entreprise{ +div.entreprise{ width: 100%; border: 1px dotted #BBB; margin-bottom: 10px; padding: 5px; } -div.entreprise div.titre{ - text-align: center; - width: 100%; - font-weight: bold; -} - -div.entreprise div.details{ - float: left; - padding: 10px; - width: 25ex; - margin: 5px; - margin-left: 0px; -} - -div.entreprise div.adr_pro{ - float: right; - padding: 10px; - width: 25ex; - margin: 5px; -} - -#fiche_cv{ - float: left; - padding: 10px; - width: 500px; - margin: 5px; -} - div.spacer { clear: both; } - /* only for fiche_referent.php*/ #fiche_referent{ @@ -590,4 +545,4 @@ div.spacer { clear: both; } } /* vim: set et ts=4 sts=4 sw=4: */ -/* $Id: default.css,v 1.62 2004-11-17 15:01:56 x2000habouzit Exp $ */ +/* $Id: default.css,v 1.63 2004-11-17 18:16:24 x2000habouzit Exp $ */ diff --git a/htdocs/css/openweb.css b/htdocs/css/openweb.css new file mode 100644 index 0000000..eed997d --- /dev/null +++ b/htdocs/css/openweb.css @@ -0,0 +1,536 @@ +/*************************************************************************** + * Copyright (C) 2003-2004 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 * + ***************************************************************************/ + +/******************************************************************************* + 1 Styles par défauts + [ balises sans attributs ou classes sans contexte ] +*******************************************************************************/ + +body { + background-color:#369; + color: #096; + font-family:"Trebuchet MS",Verdana,Geneva,Arial,Helvetica,sans-serif; + font-size:small; + margin:2em 1%; + padding:0; +} + +a:link, a:visited { color: #f60; background: transparent; } +a:active, a:hover { color: #369; background: transparent; } + +img { vertical-align: middle; } +a img { border: 0px; } +td { vertical-align: top; } +li { padding: 0em 1em; text-align: justify; } +hr { width: 90%; margin: 1em 5%; border: 1px dotted #369; border-bottom: none; } + +fieldset { + border: 1px dotted #69c; + background: #fff; + color: inherit; + + margin: 1em 0em; + padding: 1em; +} + +legend { + border: 1px dotted #69c; + background: #d6e1ec; + color: inherit; + + padding: 0em 1em; +} + +.center { text-align: center; } +.right { text-align: right; } +.middle { vertical-align: middle; } +.smaller { font-size: smaller; font-style: italic; } + +/******************************************************************************* + 2 Styles

,

, ,
  • + [ styles classiques d'effets de texte ] +*******************************************************************************/ + +p { + padding: 0em 1em; + margin-bottom: 0.5em; + text-align: justify; +} + +p.error, span.error, p.erreur, span.erreur { + font-weight: bold; + color: #ff0000; + background: inherit; + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +.erreur a:link, .erreur a:visited, .erreur a:active, .erreur a:hover { + color: #ff3333; + background: inherit; +} + +h1 { + color: #369; + font-size: 130%; + background: #f5f8fc; + margin: 0em; + border-bottom: 2px solid #369; + padding: 4px; + margin: 1em 0em; +} + +h2 { + color: #369; + padding: 0px 4px; + margin: 0.5em 0em; + font-size: 100%; + font-weight: bold; + border-bottom: 1px dotted #369; +} + +p.explication, div.explication { + font-style: italic; + padding: 0.25em; + text-align: justify; +} +p.question, div.question { + font-weight: bold; + padding: 0.25em; +} + +li.spaced { + padding-top: 0.5em; + padding-bottom: 0.5em; + text-align: justify; +} + +/******************************************************************************* + 3 Tableaux bicolores + classes utiles + [ Tableaux à lignes alternées, en taille normale, ou tiny ] +*******************************************************************************/ + +table.bicol { + border-collapse: collapse; + color: inherit; + background: #fff; + border: 1px solid #a2c2e1; + width: 98%; + margin-left: 1%; +} +table.tinybicol { + border-collapse: collapse; + color: inherit; + background: #fff; + border: 1px solid #a2c2e1; + width: 70%; + margin-left: 15%; +} + +table.tinybicol tr.impair, table.bicol tr.impair {} +table.tinybicol tr.pair, table.bicol tr.pair { + color: inherit; + background: #eee; +} + +table.tinybicol th, table.bicol th { + color: #369; + background: #d6e1ec; + font-weight: bold; + text-align: center; + vertical-align: middle; + padding: 0px 4px; +} +table.tinybicol td, table.bicol td { + color: #000000; + background: inherit; + padding: 0px 4px; +} + +td.half { width: 50%; padding: 4px; } + +td.titre { + color: #000000; + background: inherit; + font-weight: bold; +} +td.action { + white-space: nowrap; + text-align: right; + font-weight: bold; + vertical-align: middle; +} +td.action a { padding: 0px 2px; } + +/******************************************************************************* + 4 Tableau de choix de skins + [ Styles pour les tableaux de types de ceux des skins ] +*******************************************************************************/ + +#skin { + border-bottom: 1px solid #a2c2e1; + border-top: 1px solid #a2c2e1; + width: 98%; + margin-left: 1%; +} +#skin td { + border-top: 1px solid #a2c2e1; + border-bottom: 1px solid #a2c2e1; + vertical-align: middle; +} +#skin td.skigauche { + background: #d6e1ec; + color: inherit; + vertical-align: middle; +} +#skin td.skimilieu { + padding-left: 1em; + width: 100%; +} +#skin td.skidroite { padding: 0; } + +/******************************************************************************* + 5 Contacts + [ Styles liés à l'affichage de contacts ] +*******************************************************************************/ + +div.contact-list { + width: 98%; + margin-left: 1%; + border: 1px dotted #a2c2e1; +} + +div.contact-list div.contact { + width: 100%; + text-align: left; + background: #ffecce; + border-top: 1px dotted black; + color: inherit; +} + +div.grayed { + color: #444444; + font-style: italic; +} + +div.grayed div.contact { + background: #eee; +} + +div.contact div.nom { + font-weight: bold; + width: 35%; + float: left; + padding-left: 2px; +} + +div.contact div.appli { + float: left; +} + +div.contact div.bits { + text-align: right; + float: right; +} + +div.contact div.long { + width: 100%; + clear: both; + background: #fff; + color: inherit; + padding: 1px 0px; +} + + +div.long table { width: 100%; } +div.long td.lt { width: 35%; padding-left: 4px; } +div.long td.rt { width: 65%; } + +/******************************************************************************* + 6 Profil + [ onglets des profils ] +*******************************************************************************/ + +table.flags td.texte { + font-size: smaller; + font-weight: bold; + padding-left: 0.5em; +} +table.flags td.vert { + background: green; + width: 1.5em; height: 1.5em; + text-align: center; +} +table.flags td.orange { + background: #ff9900; + width: 1.5em; + height: 1.5em; + text-align: center; +} +table.flags td.rouge { + background: red; + width: 1.5em; + height: 1.5em; + text-align: center; +} + +table.cadre_a_onglet{ + border-width: 0px; + padding : 0px; + margin: 0px; +} + +td.conteneur_tab { + border-width : 1px 2px 2px 1px; + border-style : solid; + border-color : #999; + padding : 4px 0px 0px 4px; + background : #fff; +} + +#onglet { display : block; margin : 0px; padding : 0px; } + +#onglet li { + display : block; + float : left; + padding : 0.5ex; + margin : 0px 4px -1px 0px; + background : #d2e0e6; + width: auto; + height: 6ex; + text-align: center; + border: 1px solid #999; +} + +#onglet li:hover { background : #ffecce; } + +#onglet li.actif { + background : #fff; + font-weight: bold; + border-bottom: 1px solid #fff; +} + +#onglet li a { + font-size: 90%; + font-weight : normal; + text-decoration : none; + color : #000; +} + +/******************************************************************************* + 7 fiche.php & fiche_referent.php + [ cas de la fiche ] +*******************************************************************************/ + +em.intitule { + color: purple; + font-size: small; +} + +div#body { + color: #000; + background: #fff; + border: 3px solid #000; + + width: 800px; + margin: 7px; +} + +#fiche { + width: 760px; + font-size: 100%; + vertical-align: top; + + background: #f5f8fc; + border: 1px solid #69c; + margin: 20px; +} + +#fiche em { color: purple; } + +#fiche_identite { + padding: 5px; + width: 600px; +} + +#photo { padding-left: 1em; } + +#fiche_identite div.civilite { + text-align: center; + font-weight: bold; + width: 80%; + float: left; +} + +#fiche_identite div.maj { + float: left; + width: 20%; + font-size: 80%; + text-align: right; + clear: right; +} + +#fiche_identite div.contact { + clear: both; + margin: 1em; + padding: 1ex; + background: #fff; + border: 1px dotted #69c; +} +#fiche_identite div.email { + clear: left; + float: left; +} +#fiche_identite div.mob { + float: right; + clear: right; + text-align: right; +} + +#fiche_identite div.formation { + margin: 0em 1em; +} + +div.adresse { + float: left; + width: 48%; + padding: 0px; + margin: 0px 1%; +} + +div.adresse div.titre { color: purple; } + +div.entreprise{ + width: 100%; + border: 1px dotted #BBB; + margin-bottom: 10px; + padding: 5px; +} + +div.spacer { clear: both; } + +/* only for fiche_referent.php*/ + +#fiche_referent{ + float: left; + padding: 10px; + width: 500px; +} + +#fiche_referent div.rubrique_referent{ + width: 100%; + padding: 5px; +} + +#fiche_referent em{color: purple;} +#fiche_referent li{font-weight: bold;} + +/******************************************************************************* + A SKIN + [ choix de classes faites par le skinneur +*******************************************************************************/ + +#dev { + width: 100%; + text-align: center; + padding: 1px; + + color: #003399; + background: #e0ffff; + + font-family: 'Bauhaus Md BT','Bitstream Vera',sans-serif; + font-size: 10pt; + font-weight: bold; +} + +#dev a { text-decoration: underline; } +#dev a:hover { color: #003399; background: #c0e0e0; } + +#db-trace div.hide { display: none; } +#db-trace:hover div.hide { display: block } + +#suid { + color: red; + background: #ffc0cb; + width: 100%; + font-weight: bold; +} +#suid td { padding: 2px; } +#suid a { color: red; } + +table#body { + color: #000; + background: #fff; + border: 3px solid #000; + + width: 900px; + margin-left: auto; + margin-right: auto; +} + +#body-logo { border: none; text-align: center; } +#body-top { border: none; text-align: center;} +#body-bottom { border: none; text-align: center;} + +#body-menu { + padding: 2em 0em 2em 2em; + border: 0px; + width: 140px; + font-size: 75%; + font-weight: bold; + white-space: nowrap; +} + +#body-menu .menu_item { + padding-left: 4px; + padding: 2px; + text-align: left; +} + +#body-menu .menu_title { + color: #f90; + background: #fff; + border-top: none; + border-bottom: 3px solid #f90; + padding: 1px; + text-transform: uppercase; + text-align: left; +} + +#content { + width: auto; + font-size: 100%; + vertical-align: top; + + background: #f5f8fc; + border: 1px solid #69c; + line-height:150%; + padding: 0em 1em 1em 1em; + margin: 2em; +} + +#content-margin { width: 2em; } + +#content input { + font-size: 95%; +} + +/* vim: set et ts=4 sts=4 sw=4: */ +/* $Id: openweb.css,v 1.1 2004-11-17 18:16:24 x2000habouzit Exp $ */ diff --git a/htdocs/fiche.php b/htdocs/fiche.php index eeaa6ed..a067c3c 100644 --- a/htdocs/fiche.php +++ b/htdocs/fiche.php @@ -18,7 +18,7 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *************************************************************************** - $Id: fiche.php,v 1.22 2004-11-17 11:06:46 x2000habouzit Exp $ + $Id: fiche.php,v 1.23 2004-11-17 18:16:23 x2000habouzit Exp $ ***************************************************************************/ @@ -43,7 +43,7 @@ if (isset($_REQUEST['user'])) else $where_clause = " WHERE u.matricule = '{$_REQUEST['mat']}'"; -$reqsql = "SELECT u.prenom, u.nom, u.epouse, IF(gp.nat='',gp.pays,gp.nat) AS text, +$reqsql = "SELECT u.prenom, u.nom, u.epouse, IF(gp.nat='',gp.pays,gp.nat) AS text, gp.a2, u.user_id, a.alias, a2.alias, u.matricule, u.deces != 0 as dcd, u.deces, u.date, u.cv, sections.text, u.mobile, u.web, u.libre, u.promo, c.uid IS NOT NULL, p.x, p.y @@ -60,7 +60,7 @@ $result = $globals->db->query($reqsql); if (mysql_num_rows($result)!=1) exit; -if (list($prenom, $nom, $epouse, $nationalite, +if (list($prenom, $nom, $epouse, $nationalite, $iso3166, $user_id, $forlife, $bestalias, $matricule, $dcd, $deces, $date, $cv, $section, @@ -76,6 +76,7 @@ $page->assign('forlife', $forlife); $page->assign('bestalias', $bestalias); $page->assign('epouse', $epouse); $page->assign('nationalite', $nationalite); +$page->assign('iso3166', $iso3166); $page->assign('user_id', $user_id); $page->assign('matricule', $matricule); $page->assign('dcd', $dcd); @@ -102,13 +103,17 @@ $photo="getphoto.php?x=".$forlife.(SID == '' ? '' : '&'.SID).($new ? '&m if(!isset($size_y) and !isset($size_x)) list($size_x, $size_y) = getimagesize("images/none.png"); if(!isset($size_y) or $size_y < 1) $size_y=1; if(!isset($size_x) or $size_x < 1) $size_x=1; +if($size_x > 240){ + $size_y = (integer)($size_y*240/$size_x); + $size_x = 240; +} if($size_y > 300){ $size_x = (integer)($size_x*300/$size_y); $size_y = 300; } -if($size_x < 180){ - $size_y = (integer)($size_y*180/$size_x); - $size_x = 180; +if($size_x < 160){ + $size_y = (integer)($size_y*160/$size_x); + $size_x = 160; } $page->assign('photo_url', $photo); $page->assign('size_x', $size_x); diff --git a/htdocs/newsletter/submit.php b/htdocs/newsletter/submit.php index 34208b4..c7e2b72 100644 --- a/htdocs/newsletter/submit.php +++ b/htdocs/newsletter/submit.php @@ -18,7 +18,7 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *************************************************************************** - $Id: submit.php,v 1.6 2004-11-16 21:02:46 x2000habouzit Exp $ + $Id: submit.php,v 1.7 2004-11-17 18:16:25 x2000habouzit Exp $ ***************************************************************************/ require("auto.prepend.inc.php"); @@ -37,9 +37,9 @@ if(isset($_POST['see'])) { $from = "\"{$_SESSION['prenom']} {$_SESSION['nom']} ({$_SESSION['promo']})\" <{$_SESSION['forlife']}@polytechnique.org>"; $mailer = new HermesMailer(); $mailer->setSubject("proposition d'article dans la NL"); - $mailer->setTo('Equipe Newsletter Polytechnique.org '); + $mailer->addTo('"Equipe Newsletter Polytechnique.org" '); $mailer->setFrom($from); - $mailer->setCc($from); + $mailer->addCc($from); $text = "l'article suivant a été proposé par:\n\n $from\n\n\n".$art->toText(); $mailer->setTxtBody($text); $mailer->send(); diff --git a/include/newsletter.inc.php b/include/newsletter.inc.php index 2be3a58..6190625 100644 --- a/include/newsletter.inc.php +++ b/include/newsletter.inc.php @@ -18,7 +18,7 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *************************************************************************** - $Id: newsletter.inc.php,v 1.34 2004-11-17 12:21:48 x2000habouzit Exp $ + $Id: newsletter.inc.php,v 1.35 2004-11-17 18:16:26 x2000habouzit Exp $ ***************************************************************************/ define('FEMME', 1); @@ -64,7 +64,7 @@ class NewsLetter { FROM newsletter_art AS a INNER JOIN newsletter AS n USING(id) LEFT JOIN newsletter_cat AS c ON(a.cid=c.cid) - WHERE a.id=$id + WHERE a.id={$this->_id} ORDER BY c.pos,a.pos"); while(list($title,$body,$append,$aid,$cid,$pos) = mysql_fetch_row($res)) { $this->_arts[$cid]["a$aid"] = new NLArticle($title,$body,$append,$aid,$cid,$pos); diff --git a/templates/fiche.tpl b/templates/fiche.tpl index 7036630..1a7dbdc 100644 --- a/templates/fiche.tpl +++ b/templates/fiche.tpl @@ -17,7 +17,7 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *************************************************************************** - $Id: fiche.tpl,v 1.27 2004-11-17 18:11:46 x2000habouzit Exp $ + $Id: fiche.tpl,v 1.28 2004-11-17 18:16:26 x2000habouzit Exp $ ***************************************************************************} {literal} @@ -66,7 +66,7 @@ function chgMainWinLoc( strPage ) {
    {if $mobile}Mobile : {$mobile}
    {/if}
    -
     
    +
  • {if $iso3166} diff --git a/templates/skin/openweb.tpl b/templates/skin/openweb.tpl new file mode 100644 index 0000000..4e3a5ab --- /dev/null +++ b/templates/skin/openweb.tpl @@ -0,0 +1,119 @@ +{*************************************************************************** + * Copyright (C) 2003-2004 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 * + *************************************************************************** + $Id: openweb.tpl,v 1.1 2004-11-17 18:16:28 x2000habouzit Exp $ + ***************************************************************************} + + + + + + {include file=skin/common.header.tpl} + + {if $xorg_head} + {include file=$xorg_head} + {/if} + {include file=skin/common.bandeau.head.tpl} + + + {include file=skin/common.devel.tpl} + + {if $smarty.session.suid} + + + + +
    + {dynamic} + {$smarty.session.suid} ({$smarty.session.forlife}) + {/dynamic} + [exit] +
    + {/if} + + {if $simple} + +
    + {include file=$xorg_tpl} +
    + + {else} + + {include file=skin/common.bandeau.tpl} + + + + + + + + + + + + + +
    + [ Polytechnique.org ] + + + + + +
    + + + {insert name="getNbIns"} polytechniciens sur le web
    + {insert name="getNbNotifs"} +
    +
    + {include_php file=menu.conf.php} + {foreach key=menu_title item=menu_list from=$menu} + {if $menu_title} + + {/if} + {foreach key=menu_item item=menu_url from=$menu_list} + + {/foreach} + {/foreach} + {perms level=admin} + + + + + +
    Valid
    {insert name="mkStats"}
    + {/perms} +
    +
    + {include file=$xorg_tpl} +
    +
    + {include file=skin/common.footer.tpl} +
    + {/if} + + +{* vim:set et sw=2 sts=2 sws=2: *} -- 2.1.4