From 06a388283eb84b5833ed866d43b55cbac3cce52b Mon Sep 17 00:00:00 2001 From: pyg77 <pyg@framasoft.net> Date: Thu, 23 Jun 2011 16:52:10 +0200 Subject: [PATCH] nombreuses modifs : cf changelog 22 et 23 juin --- .gitignore | 2 ++ CHANGELOG | 15 +++++++++++++++ admin/index.php | 8 ++++++-- adminstuds.php | 35 +++++++++++++++++++++++++++------- bandeaux.php | 19 ++++++++++++++---- choix_autre.php | 2 ++ choix_date.php | 1 + contacts.php | 2 ++ creation_sondage.php | 6 +++--- favicon.ico | Bin 1150 -> 1150 bytes images/logo-framadate.png | Bin 0 -> 7339 bytes images/logo-framadate.xcf | Bin 0 -> 26869 bytes index.php | 2 ++ infos_sondage.php | 2 ++ scripts/nettoyage_sondage.php | 7 +++++-- studs.php | 5 +++-- style.css | 13 ++++++++----- 17 files changed, 94 insertions(+), 25 deletions(-) create mode 100644 images/logo-framadate.png create mode 100644 images/logo-framadate.xcf diff --git a/.gitignore b/.gitignore index ac4896fe..ec542feb 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ variables.php admin/.htaccess admin/.htpasswd admin/logs_studs.txt +framanav + diff --git a/CHANGELOG b/CHANGELOG index e5d99160..a999e2e5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,20 @@ Les dernières améliorations d'OpenSondage + Changelog des 22 et 23 juin (pyg@framasoft.net) + - très nombreuses modifications CSS + - ajout de buttons.css pour des boutons plus propres + - ajout de print.css pour une impression sans la classe "corps" + - refonte de la page d'accueil + - ajout de la framanav + - qq retouches dans les fichiers .po + - date de destruction passée de 2j à 30j + - ajout de l'adresse à transmettre + - ajout d'un bouton imprimer + - généralisation des stripslashes + - fix d'un bug sur une requete (suppression). Reste la seconde partie : https://github.com/leblanc-simon/OpenSondage/issues/8 + - modification du titre en image + - ajout de htmlspecialchars_decode avec param ENT_QUOTES pour l'envoi des emails + Changelog du 21 juin 2011 (pyg@framasoft.net) - très nombreuses modifications CSS - modification adminstuds.php : ajout de classes aux formulaires et ajout de stripslashes à l'affichage (TODO: à généraliser) diff --git a/admin/index.php b/admin/index.php index dc4a77e5..2fc0d126 100644 --- a/admin/index.php +++ b/admin/index.php @@ -38,6 +38,7 @@ //========================================================================== + session_start(); include_once('../variables.php'); @@ -59,10 +60,12 @@ echo '</head>'."\n"; echo '<body>'."\n"; //Affichage des bandeaux et début du formulaire +framanav(); logo(); bandeau_tete(); bandeau_titre(_("Polls administrator")); sous_bandeau_admin(); +//print_r($_SESSION); $sondage=$connect->Execute("select * from sondage"); @@ -114,7 +117,7 @@ while($dsondage = $sondage->FetchNextObject(false)) { $user_studs=$connect->Execute( "select * from user_studs where id_sondage='$dsondage->id_sondage'"); $nbuser=$user_studs->RecordCount(); - echo '<tr align=center><td>'.$dsondage->id_sondage.'</td><td>'.$dsondage->format.'</td><td>'.$dsondage->titre.'</td><td>'.$dsondage->nom_admin.'</td>'; + echo '<tr align=center><td>'.$dsondage->id_sondage.'</td><td>'.$dsondage->format.'</td><td>'. stripslashes($dsondage->titre).'</td><td>'.stripslashes($dsondage->nom_admin).'</td>'; if (strtotime($dsondage->date_fin) > time()) { echo '<td>'.date("d/m/y",strtotime($dsondage->date_fin)).'</td>'; @@ -124,7 +127,7 @@ while($dsondage = $sondage->FetchNextObject(false)) { echo'<td>'.$nbuser.'</td>'."\n"; echo '<td><a href="../studs.php?sondage='.$dsondage->id_sondage.'">'. _("See the poll") .'</a></td>'."\n"; - echo '<td><a href="'.getUrlSondage($dsondage->id_sondage_admin, true).'">'. _("Change the poll") .'</a></td>'."\n"; + echo '<td><a href="/'.$dsondage->id_sondage_admin.'/admin">'. _("Change the poll") .'</a></td>'."\n"; echo '<td><input type="submit" name="supprimersondage'.$i.'" value="'. _("Remove the poll") .'"></td>'."\n"; echo '</tr>'."\n"; @@ -135,6 +138,7 @@ echo '</table>'."\n"; echo'</div>'."\n"; // fin du formulaire et de la page web echo '</form>'."\n"; +echo '<div class="separateur"> </div>'; echo '</body>'."\n"; echo '</html>'."\n"; diff --git a/adminstuds.php b/adminstuds.php index 683ccb6d..99833cfa 100644 --- a/adminstuds.php +++ b/adminstuds.php @@ -78,10 +78,12 @@ if (preg_match(";[\w\d]{24};i", $numsondageadmin)) { if (!$sondage || $sondage->RecordCount() != 1){ print_header(false); echo '<body>'."\n"; - + framanav(); logo(); bandeau_tete(); bandeau_titre(_("Error!")); + + echo '<div class=corpscentre>'."\n"; print "<H2>" . _("This poll doesn't exist !") . "</H2><br><br>"."\n"; print "" . _("Back to the homepage of ") . " <a href=\"index.php\"> ".NOMAPPLICATION."</A>. "."\n"; @@ -183,12 +185,17 @@ $dsondage=$sondage->FetchObject(false); if (isset($_POST["ajoutsujet"]) || isset($_POST["ajoutsujet_x"])) { print_header(true); echo '<body>'."\n"; + framanav(); logo(); bandeau_tete(); bandeau_titre(_("Make your polls")); sous_bandeau(); //on recupere les données et les sujets du sondage + + echo '<div class="corps">'."\n"; + + echo '<form name="formulaire" action="'.getUrlSondage($numsondageadmin, true).'" method="POST" onkeypress="javascript:process_keypress(event)">'."\n"; echo '<div class="corpscentre">'."\n"; @@ -258,6 +265,10 @@ if (isset($_POST["ajoutsujet"]) || isset($_POST["ajoutsujet_x"])) { echo '<br><br><br><br>'."\n"; echo '</div>'."\n"; + echo '</div>'."\n"; + echo '<div class="separateur"> </div>'; + + bandeau_pied(); echo'</body>'."\n"; @@ -291,10 +302,11 @@ if (isset($_POST["confirmesuppression"]) || isset($_POST["confirmesuppression_x" //affichage de l'ecran de confirmation de suppression de sondage print_header(); echo '<body>'."\n"; + framanav(); logo(); bandeau_tete(); bandeau_titre(_("Make your polls")); - + echo '<div class="corpscentre">'."\n"; print "<H2>" . _("Your poll has been removed!") . "</H2><br><br>"; print _("Back to the homepage of ") . " <a href=\"index.php\"> ".NOMAPPLICATION."</A>."."\n"; @@ -342,10 +354,14 @@ if(isset($_POST['ajoutcomment']) || isset($_POST['ajoutcomment_x'])) { // DEBUT DE L'AFFICHAGE DE LA PAGE HTML print_header(true); echo '<body>'."\n"; +framanav(); logo(); bandeau_tete(); bandeau_titre(_("Make your polls")); sous_bandeau(); + +echo '<div class="corps">'."\n"; + echo '<div class="presentationdate"> '."\n"; @@ -354,14 +370,14 @@ $titre=str_replace("\\","",$dsondage->titre); echo '<H2>'.$titre.'</H2>'."\n"; //affichage du nom de l'auteur du sondage -echo _("Initiator of the poll") .' : '.$dsondage->nom_admin.'<br>'."\n"; +echo _("Initiator of the poll") .' : '.stripslashes($dsondage->nom_admin).'<br>'."\n"; //affichage des commentaires du sondage if ($dsondage->commentaires){ echo '<br>'. _("Comments") .' :<br>'."\n"; $commentaires=$dsondage->commentaires; $commentaires=str_replace("\\","",$commentaires); - echo nl2br($commentaires); + echo stripslashes(nl2br($commentaires)); echo '<br>'."\n"; } echo '<br>'."\n"; @@ -698,6 +714,7 @@ if ($sondage !== false) { } else { print_header(false); echo '<body>'."\n"; + framanav(); logo(); bandeau_tete(); bandeau_titre(_("Error!")); @@ -706,6 +723,8 @@ if ($sondage !== false) { print "" . _("Back to the homepage of ") . " <a href=\"index.php\"> ".NOMAPPLICATION."</A>. "."\n"; echo '<br><br><br><br>'."\n"; echo '</div>'."\n"; + + bandeau_pied(); echo'</body>'."\n"; echo '</html>'."\n"; @@ -871,7 +890,7 @@ if ($dsondage->format=="D"||$dsondage->format=="D+") { echo '<td></td>'."\n"; for ($i = 0; isset($toutsujet[$i]); $i++) { - echo '<td class="sujet">'.$toutsujet[$i].'</td>'."\n"; + echo '<td class="sujet">'.stripslashes($toutsujet[$i]).'</td>'."\n"; } echo '<td class="sujet"><input type="image" name="ajoutsujet" src="images/add-16.png" alt="' . _('Add') . '"></td>'."\n"; @@ -891,7 +910,7 @@ while ($data = $user_studs->FetchNextObject(false)) { //affichage du nom $nombase=str_replace("°","'",$data->nom); - echo '<td class="nom">'.$nombase.'</td>'."\n"; + echo '<td class="nom">'.stripslashes($nombase).'</td>'."\n"; //si la ligne n'est pas a changer, on affiche les données if (!$testligneamodifier) { @@ -1152,7 +1171,7 @@ if ($comment_user->RecordCount() != 0) { $i = 0; while ( $dcomment=$comment_user->FetchNextObject(false)) { - print "<input type=\"image\" name=\"suppressioncomment$i\" src=\"images/cancel.png\" alt=\"supprimer commentaires\"> $dcomment->usercomment : $dcomment->comment <br>"; + print "<input type=\"image\" name=\"suppressioncomment$i\" src=\"images/cancel.png\" alt=\"supprimer commentaires\"> ". stripslashes($dcomment->usercomment) ." : ".stripslashes($dcomment->comment) ." <br>"; $i++; } @@ -1201,6 +1220,8 @@ echo '<br><br>'."\n"; //fin de la partie GESTION et beandeau de pied echo '</p>'."\n"; +echo '</div>'; +echo '<div class="separateur"> </div>'; bandeau_pied_mobile(); echo '</form>'."\n"; echo '</body>'."\n"; diff --git a/bandeaux.php b/bandeaux.php index f759a842..ca4e19fe 100644 --- a/bandeaux.php +++ b/bandeaux.php @@ -40,6 +40,17 @@ // pour get_server_name() include_once('fonctions.php'); +function framanav() +{ + if (file_exists($_SERVER['DOCUMENT_ROOT']."/framanav/nav.inc.html")) { + echo "\n".'<!-- Framanav --> '."\n";; + echo '<script src="/framanav/scripts/jquery.min.js" type="text/javascript"></script>'."\n"; + include_once($_SERVER['DOCUMENT_ROOT']."/framanav/nav.inc.html"); + echo '<!-- /Framanav --> '."\n"; + } +} + + //le logo function logo () { @@ -52,7 +63,7 @@ function logo () #le bandeau principal function bandeau_tete() { - echo '<div class="bandeau"><a href="/" title="Accueil Framadate"><span class="framamauve">Frama</span><span class="framorange">date</span></a></div>'."\n"; + echo '<div class="bandeau"><a href="/" title="Accueil Framadate"><img src="/images/logo-framadate.png" title="Accueil '.NOMAPPLICATION.'" alt="'.NOMAPPLICATION.'"></a></div>'."\n"; } @@ -95,13 +106,13 @@ function sous_bandeau() function sous_bandeau_admin() { echo '<div class="sousbandeau">' . - '<a href="' . get_server_name() . 'index.php">'. _("Home") .'</a>'; + '<a class="button small gray" href="' . get_server_name() . 'index.php">'. _("Home") .'</a>'; if(is_readable('logs_studs.txt')) { - echo '<a href="' . get_server_name() . 'logs_studs.txt">'. _("Logs") .'</a>'; + echo '<a class="button small gray" href="' . get_server_name() . 'logs_studs.txt">'. _("Logs") .'</a>'; } - echo '<a href="' . get_server_name() . '../scripts/nettoyage_sondage.php">'. _("Cleaning") .'</a>' . + echo '<a class="button small gray" href="' . get_server_name() . '../scripts/nettoyage_sondage.php">'. _("Cleaning") .'</a>' . '<span class="sousbandeau sousbandeaulangue">' . liste_lang() . '</span>'. '</div>'."\n"; diff --git a/choix_autre.php b/choix_autre.php index 9a787d00..93a8e857 100644 --- a/choix_autre.php +++ b/choix_autre.php @@ -56,6 +56,7 @@ if (issetAndNoEmpty('titre', $_SESSION) === false || issetAndNoEmpty('nom', $_SE echo '<link rel="stylesheet" type="text/css" href="style.css">'."\n"; echo '</head>'."\n"; echo '<body>'."\n"; + framanav(); logo(); bandeau_tete(); bandeau_titre(_("Error!")); @@ -137,6 +138,7 @@ if (issetAndNoEmpty('titre', $_SESSION) === false || issetAndNoEmpty('nom', $_SE print_header(); echo '<body>'."\n"; + framanav(); echo '<form name="formulaire" action="#bas" method="POST" onkeypress="javascript:process_keypress(event)">'."\n"; logo(); diff --git a/choix_date.php b/choix_date.php index 307fa2dd..b58e4ca1 100644 --- a/choix_date.php +++ b/choix_date.php @@ -57,6 +57,7 @@ if (!issetAndNoEmpty('nom', $_SESSION) && !issetAndNoEmpty('adresse', $_SESSION) echo '<link rel="stylesheet" type="text/css" href="style.css">'."\n"; echo '</head>'."\n"; echo '<body>'."\n"; + framanav(); logo(); bandeau_tete(); bandeau_titre(_("Error!")); diff --git a/contacts.php b/contacts.php index e163b34b..a7b1842a 100644 --- a/contacts.php +++ b/contacts.php @@ -97,6 +97,8 @@ if ((isset($_POST['envoiquestion']) || isset($_POST['envoiquestion_x'])) && isse echo '<link rel="stylesheet" type="text/css" href="style.css">'."\n"; echo '</head>'."\n"; echo '<body>'."\n"; + +framanav(); //debut du formulaire echo '<form name=formulaire action="contacts.php" method="POST">'."\n"; diff --git a/creation_sondage.php b/creation_sondage.php index 8e0c8639..2ab07e8d 100644 --- a/creation_sondage.php +++ b/creation_sondage.php @@ -108,7 +108,7 @@ function ajouter_sondage() $message = _("This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll."); $message .= "\n\n"; - $message .= stripslashes($_SESSION["nom"])." " . _("hast just created a poll called") . " : \"".stripslashes($_SESSION["titre"])."\".\n"; + $message .= stripslashes(htmlspecialchars_decode($_SESSION["nom"],ENT_QUOTES))." " . _("hast just created a poll called") . " : \"".stripslashes(htmlspecialchars_decode($_SESSION["titre"],ENT_QUOTES))."\".\n"; $message .= _("Thanks for filling the poll at the link above") . " :\n\n%s\n\n" . _("Thanks for your confidence") . ",\n".NOMAPPLICATION; $message_admin = _("This message should NOT be sended to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above"); @@ -118,8 +118,8 @@ function ajouter_sondage() $message_admin = sprintf($message_admin, getUrlSondage($sondage_admin, true)); if (validateEmail($_SESSION['adresse'])) { - mail ("$_SESSION[adresse]", "[".NOMAPPLICATION."][" . _("For sending to the polled users") . "] " . _("Poll") . " : ".stripslashes($_SESSION["titre"]), $message_admin, $headers); - mail ("$_SESSION[adresse]", "[".NOMAPPLICATION."][" . _("Author's message") . "] " . _("Poll") . " : ".stripslashes($_SESSION["titre"]), $message, $headers); + mail ("$_SESSION[adresse]", "[".NOMAPPLICATION."][" . _("For sending to the polled users") . "] " . _("Poll") . " : ".stripslashes(htmlspecialchars_decode($_SESSION["titre"],ENT_QUOTES)), $message_admin, $headers); + mail ("$_SESSION[adresse]", "[".NOMAPPLICATION."][" . _("Author's message") . "] " . _("Poll") . " : ".stripslashes(htmlspecialchars_decode($_SESSION["titre"],ENT_QUOTES)), $message, $headers); } $date=date('H:i:s d/m/Y:'); diff --git a/favicon.ico b/favicon.ico index 551344a2f254a5e1513c3f2f2ff91aff75e4c222..ded95854f1dd9b33b34aa3e474e985a07cbf1464 100644 GIT binary patch literal 1150 zcmbtTJ4gdT6x_ogh!(NX)|6UVMC=3`L2NASY;A;87M3X@CL*y4ilm4H4n;j7TG&_^ zF&qdgl0wD8K(x3*@Po)1B#b-9Ei9sf?j4i7%$s@l^7fq&mb{};A+MO2jtJ2$qh1M8 zF$pX96k=HBzPYSGLYc&4t=3<)?Ulo1@_Ij!Xb_CaF{f+w_`~<xE{erfsc%Z)D3z+7 z<?~wvV{*(<L+w|uo6VM~ImzYrp6m5KJ<pgNbJS3)*9f1BOUFqo-@z@0<|>$7a53ZF zBd&OASc4vN{7>wQwfWn7Mc3dO%3>bSF}4Zk<sI$RgncyCtXNO=JWxP|zK%saO_orY z*n!=e!5g{pZLHHzEj?<^oDcck8;rE1(db-)clCfCa>Vf+;*kt|);RYN%!VFyMx3$I z{`5V%ffD`8r<kIK9@#^1z9xS5VA4NlU@||`^W!W`_J@A%qRIZM8et!Qet+m!P&=u1 OgJ=Bv`z!Zc{2!mp>h8+` literal 1150 zcmd6lF%E)25Jktt&W6N96KyChIf6&v0w$D}9AR(Z5oql^0!QHp9s%FSnZ$yEH5M*; z%rHCu??5nHaTSGeFYUTE+nL!3C{cOW3Deqc%)~F({bCjLkd)_oyKW=~19`pFM`yZ+ zW(W_(ZmCD~p()|<;nT)mPSn}%G34l?7p>;d_e@cni^u&TLFcr@25Pv0_G&zC(0bHd zqSrI~(J!r#rt(}qXZqwZ&EmP9<=4#36gBOG&e8YO@0hjFl<<TR257PjXhx%1!$UsG bHP2!%dNoG}(g)xCTLpT}lN58`<sbWBHPC#Y diff --git a/images/logo-framadate.png b/images/logo-framadate.png new file mode 100644 index 0000000000000000000000000000000000000000..bc5af6fc29d2c3ce4fc86f531ec39726bf95fbb0 GIT binary patch literal 7339 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 R1Bw6u002ovPDHLkV1lmOP!IqB literal 0 HcmV?d00001 diff --git a/images/logo-framadate.xcf b/images/logo-framadate.xcf new file mode 100644 index 0000000000000000000000000000000000000000..871886eac814aedc20f68bb099386f1facce4775 GIT binary patch literal 26869 zcmeHw2Ygk<*6-}oYZ?ip5J(6eDWM92w9r&KiVAX#5Fm!4fFfAp)#$zVQvvbHXS*sY zqS$B$L7Iq_c0nnEAR-+Csi&X4_xrEed!Ld7@cHh&-+S-p;WwF?HFeLdS!>OjS;LgV z>Gx$lG;wm)<icqMj4@#<{&a++Um~0!;7>g`OTR^ok;5+;&H&d5uD%+kd@0C32)=U) zs%<-Q=Je?WGv*-9C^4!3tb+VG1(UMo7S5TPHE77t5tNd^vldRzpHk3v%B;dk1Ve6t zwVXX?-n4?O*)yjVPHJUqIeE&&nbT&@%4*5IwzH<(lb_Y0T?hWFBao{mwL;N*>L{wE zXI(i!MIV}dU;f0x8B?-ywYC79R~Jx)wS8bl;he0(855@#%%<`)Cr_STFeltWDqS0- zKw^v1IH*5i3u7(%GB&D+vGL;>n=)TZ!8ny5d<z_nuw~$^{OS2Qxs+^zqbZW%ENYnY zSk*8*W{V2jqr#4;urn$gkFZ6S<q(`3VRKZPh7y!t{ps#e0^vTQKe{LIEtznw;JU=7 z>%K<y-585+53K6XSff<Na;7lWd>Nbz?kl(haHrwWehVX93e{1pH?hp3?5jFkQD>&O z7R*#+L^zdMi*(Eq4hx8DaETRZkrWje?KdnkF^Wg~aYYUucNE2O-(D0S<J*c7c$|D{ z{7SyHC{gX)f7&nBIsO<*1uy<jhdw-%E@0(VoXrKS<PKQr0`|Fpl`ddqI1H=|hb89H zA}J~`+HdFrRstUF$GL!&fID2kO89mcurkWGxqy|3lTVFb$+x;NB)oI~X+J!aGKTUh z&L(3hxog3E=8>=LxabRl1lnYbsH|fl{e9<TgNz~O0D+0A-^iwLJj618k<H<#=sYM} z!ZGO`*{ViT;5U>p&Z_T}y+`JEu5WNOACAT-#V&`W`9@|}BhuZ>$%8godW&Haki{yC z!L)E#`h;OlI9R$DL8XII*GMom610Ycm<RqP|7oAkhw*VH6xmo}QDde9Eo=aqN5s^C za2n{KwMbw_gwu=c2!ohXB!d@-_zjD!sK5lGsQ3nCb`)7yJe&aHX@~DD$^<dA0N#lE z_M$9QXhAp;4Ur#@ddYW!`jhWqjks@TjiY=k>P`T`rm_^aqfM%p!Z!5l+F>j2kCLDI zqt#<VAC+)cjPKy>ThSlthZX&+M+0HukvM!fu^UQ=XK_V(HJpe>iiLBm_>b}Z_m8g& z`0E1xg8DT8btJNDKsXH))9M2LBAo65{<=VRDU!hpMEr&>;4R>qZ$M^;3-}8sfXv$A zJ6*tE_zoBF7rxyE{Dp4=IZfj}@R$3*U+x2cxexq}@~x;l0i>PEQrM2RsXhwZ(64KU zfxqGW)E})L;IA6ait&NBJg)h`Um6Gt2LgXFLP}?Vzb@b}hXa3I8vcrBwnEyxlrmuU zi>vpZy5tqTmyc|Fbw+0$Ys5myvX2>AFni*=r{s7!bar7AP)Q=w0n-!JvL9*n<xuE( z2gs;Z2CdHAD+{s|06bL|_hT#p4zaA0vQCzQfTqdfPf2JFlr`><te2$_fa$XIA%{uJ zK=~yRpbS~+19><>mL$aVaz*Hig?D#uQqO2kYIobq<)HbJ3+eH)__u?|AjqLF3X;*9 z82=8qgDBRA(Cd&xdnRNeAb#E(L|ha$AxRnsfL#_}0efK50D`;#h)otZ>scm~5(%;u z5cE)L#~MSBmX7kMw4Eg|kI-T2lJ)z~x`T3@ELA8851{r?%f;v9`t<2kRLWxx7D{+s zlG9{Npe$u#fW(X+<P0SmM_qONEH_l5Iz*+#awd-<W2T4?4D7nUTZ$RX%Bq5;8T4tP z0(`e*LI$eX&ZPC!<G*42B-Ew>e<Wa20*;OV%LoXr#-#TnKpz3qQK#6ET2(7OMbPQ^ z7BS^#@KhE04WMFKE(Tm|cTBcv;3rYe<6F=@&d}hdr6Jj_!E@zCJm_H3CvuW3y`k3c zU}8?0oFI$4Q3cQ8WMUsbMl`fPg{dG+*bOITha6mo?TiYG2SUE!MnpU|f$7wNNn};Y zla?L45cHh+V&Om?D;Cajx@_UBBZbum>vD4TqX%mtnO|T@AoH5v5u~47C$JcD2BgIo z89?FfU~h>i3#kkI(@_L8flusC@qxyi{pkUtuoHQ;upM=1VH?_ofWz|;3&oUzm01yw zgn{d5M}dR<plvNotn&AUqw7fuw`;-o*VTvU{wRG`+NE#N@;kr<JEDKZ!nQv~na^VE zY(+-)UpmU1jR2Ry#++bT8KC3|e5U|hb^(_`<;m{|o=C0}*bO-YVDT>CGQt8_nG@x0 z;H3^1a2Y<a8pQ|xa#jeOMO#*sbD|9;jQJ0TffuOH#`6$c1zv!ySrLzffy-z|ffFkw z-b{I@E#ld~FC1M@Qn+1=ayT5_hv=}<XQf^G7Ol^~WfyQ6oKV4K&otL5pZmnBq9l;R zYN5}IyDtYX?Ei3LDimo|(fkqnkx=zxCZdD={|TBH^8O_bJV0TS$+GxODyUOPzfb~= z6c1;DWv0vi{YlXFtdyOycp@F#Awv#+%-B+JRcRHX4P|k7p`0j7Bl(U*JW@@O&4}cJ z5oLox=;g9#CTL2Xa0=wnw|7EAQ+mO95JhPca;cn<NUWP$f5XJ|Ol<8Tdj8+Ub-)V~ z7)UYr+gApBf%F0;eG6tU<pU^ngGx&3Pq1SI>qZst0V9wa5UiA7Sp+L4HY8#sz}MrV z`Jy1}nG{D^hEkSF6mu%<(Ml;G_{5pi6uZJD?UW)=N+P9%PzGHEzjVr&ELqY6YL%^= zXU1_5a0qcQ&G>K>EG(LFLI^`8#Jj?blcFj}<(ee6s1TK9MnP1583j?9WfVkZlu;0k zNk%nB4AQGHNX$pL&0KIn`asHyulXeEYw)pPl97+acz{JJ<3ZUWCUE|!6^FbL;f=Yq zc;e^K7_~vMF2BLquqSMad^TprQm|<~1n-Q4<VSGgNePhmC~OB6%;dh6HG)rDF2y&q z#^|O4+qo<m5+Z!+z7yzRL)d|xw1bBY@IfbJ+M9w_QT=ev-yOzC%0-TFaY*?<uSnHq zro(60!s)*!F5q*tZc};e80q_zZz6y*{IyyvOIAWAjEWL6W1J!(>ZVTHdS(J00&)>F z$=Hcn)v>1Wv8i*=3}aL*98qSq1haZgr_O4LI;$l>9E7bjt0kCKg!!zNU{(?4v&wzU zDttbx+{dhzsIyw4&MNA1mZ-B@f?4HZ3{MGWwM3m&l(oU}S^ZsM%xZ};tGqadt3;hu z9>+l9Gx)6j?zlRuyxUZtHmm%b2*78Rf2|hFDp5k1RW*cJjS5jWBePn9SuKgoDj#cg zR{0!YR!jJ-La$(Sb!TQ*H}K0Y;G3Pnr#f-x0MBwDOwJxwO9BI2x!~D#IZD&imzqyy zsh+y>=VGtTw~)CI8fg1S6%^|_{%?^Gzq*Oc;Y7lq>>U$XwQc;e1C^nwpH|OmtWrWS zQ`$j-NthnI49Xu8KWc_^5~3}T^s$Kqsmt1hZAH+F^#D>z<WJc~imlFoM2gQ7>maIu zeI&R*>Isll=@|~Q(?$~9Yc=*-AfejU5j^e=?6**Jc*AI5qWK&+pl`<=8RmxLcA`OW zQEk&`VA6QvnM(}BPYwSK-s%kRACdSKS`#<xNF>m2K}IC1TS;&>Y=gkWb7?!(Q9?LQ z*;OLtcErGZf!p69gk?sXO28Kp{1JjbqQL_M-$wA82!0EP6G4?o1u9{jnbb4_JWId? z0wzU(J_3R<DjP_6{UAc1hFCa;u%(ypuaFd5kC}ypFJ;UQ-+|U@8_7Loo=kgDB**p_ z$qSWa+La<X_A`;ZQ%QbbNsb*IGxME7GUNMH6s|d{X6E-Joo`qn*L;mSqG!a+0%fwy z_pM01tHxxSS?~~@nAxE(7A+Sz9^9T`%D9v80Qj>Mcm|{y2c$u445=<?JBzRjn1zWo z9)adV+0i1Fev(k|IpnY~|1FZN?Q6w0=Llh!5W<2M%u_eFVD?S^Nf_>*#W5T-0mu+C z&m$2eB&}`3*F!U`o(anjRf*NdTyt}<(LIb6c@|l*KCkGKz&sL>9tTa04O$rkoQ3;o z=r+aE@nO+^28Mv*ns4BEiA@3O5M<JOQ#h-JpA8tnlTem?Y*M&SnslY?m3&2}QS#7u zDfP!OGs@Kr)2cIbVS&<O!*mYdM431^YO5Z;A>!Lu5|1lBWNV@%c9saBBFT_MV^p~- zNjjtyDi$i0A-*bi#SoWZh{5UVgY~3>Kcs?%ke>!lKz=$nNVK0(f*}T6^9?BH0CS)^ zgc1xf4`Ya9d<-#<V~DwrA?7}Y_!_<wZ7F3zdeAqeUJNnH)ePIfz0I5jQd(@-f_^(u zCJv6;tcQ9dK8BXZ6+aQ|v%~^XArZg?&gwA4s6Y`nNbJB6gWX|>6X<OC+L(MfbJ(N* z*mU@8WhhW}a@UH-2SV8jRKw1z$&?Q-Vqt~c%fT=?_SToh4^u&L36mSh;_3F-*H9RG z$#acBrYW2zOIy?+bdYo~L{Pn4S+%NoSnCYCJ}&3x=Qsh}s-|Ik<+=^?#6;^7EKN~r z$af}CR&DNzZIHAUKq;TYvY6DDVoS7G0>!rRShm6dXj7BKJdPocy!+L$%RUj}J;*;n z<5^G`wl*NAkVcUJXyLk@&?YL&L@Jll)nLt4WtRPcw?;K{2%Nhr*-f%|zCCe4?1t20 z*tgw@ilye!ka&XJ%OR4VdJBn`Atyve@Vp~RLMbI=D+vRs(#0T_U?s;0{s4!IKO|zj zMB@wKl1N#Hlz{Kiwsryan`Q5>MNQ4NmNR|^!9(hk*yt(?RqDxuSetL7DX2vE^X(B7 zg$JD+AP$oF4hfp*UmGdwSDY(h-qF~s0MXCg8JvECaSuL#(F85;x)nu3We-D1%!kq6 ztK`#Tr2%xw%&I#*{`raOVA;O6$Kym@sDMUm2S`YJkc!qgIcy2UX$~Z53R2dDpJ_Id zp*sP&w8N)Qv&oQ7&{La?;{#BWXg?dUx?JS^6Ed9)ISk}k06C@oj~>1Q^_jxwr%gb@ za?pNLkm+XVOAGX?4fNi{!WpHvCFpGldRv0tmY}yK=xqslTapbq6ukxIvBRfTZYx1= zxp0i$Vqw}!B7Qc)bvauJBu3TQOVC?TI-vx;1*Ou%cc4BK+M@O{(Qd;M^cH<cFF|ih z(AyI97K<FcrA3bMt<d+H|KXnVZqajY=iAeASUVQVSx}0}3+)`QXRTN$?(ad&viL&} z)`E#$eu3s#49#WDn0S+$*25x}!^ECmxq&P_%(9`NJ|kmIi@g~Z+%n9y=gi|bBpH%= zFD9Lb_@j|D7M%bW-*Aw0*76A9X#qi(QD`Y}Qp~O(MaF&{0EiARg5m|7axm%7l%WkB z6pW(K)1;<vPodcadyYcA2?hy4mR1mK6I9;PUJ4zhP$`8fDdeM2P;LyQ(7Z||#@9_U z?r2F{sG6P>T1278C^Qx!@qmE4USa|vtu!7aPt5%cClk`glvdsbl5?=fDoG~Ljr5_V zBhdL!`i#9eb;%~t*D6=-n%=RVAt9&RJ+B^+aL9sjYjhbjqzMy;1VL6Xq+<gZ$EHl| zeFj6@jD?b331a9&=N7bQ%~`1Ff(uwr!TpN{8(3>rrt3a;`OY)$knh6L@7|t2G7YQe zG#q9)+Ubd`|NC5fru@UrqA%c@(-kB9^5N(v9Q``L(N!w^guC&F?p&dV%#k;1=6zYC zr{+(ZITz9JHLS-F{+C|ELVY?oYO}6uSZx7Ue=W`{fp9-@4XY*kJ_<MWMvaF1Q*3%m zlx;VXv97qEcVi>Q27bWUumzN-*wH8KLQH3}rdvfboo)s7^*Z$*m^v`nzf(Ou5He`) z^wg^Lsq2HQp6X<#xHWH8sXNsjEM1ic29Nl_^=@EA(6eEX?RUqqoJ7AT&J(<}I;vKq z91NB2+O)yBA-MW!wRLI@aNn-^!v;AA1@k&3>v6fUT+kcM7OT}_#QuKJ1`lQNY#dh4 z7H6Z+(qYGCwwkOL5N3igF7vwU`{ecS)h0m~&P=_pr+&R*;Q9Wj*AU-)VBue0|8ULf zWe;3us+p6Ii(&owRZn$xruBVr`8PkEEvu?LwY;~rW==k026uJo>YH1ResRZnPf(Nu z$y?<bV5^yx#|^UAvt{DlZyl)?u?)S{>jqvapU<~z@$zF{37_kAe;So-<Ip6llh3G* z1=ULZ!P7gBc_fgon7kOtp#vT2d<)^+9?4gMilw06D|p>Le??R;#L`_G*E>{{(25vk zoped`Uik65&o^z^zI)%YzREyg>n{2{Zik97T6VKs8Y=&O#S;Z%hK?9Fy?91jWq=!~ zh@@pR$rr`T+e?OCm!9a1Pifq$g*s(5^I-s_%5NUIKH01n1i`J-8#PR*ozovUx~NwI z6hrFA*34m${Zi$|@o6~2P;<~X_`M#7il18NkTG=frS3K%oDpazmhRrP!J%SoBxfM7 ze_k`XN~A0p4TT*l3L_(5NCrqj-%L!yu}UN(M`Wjp$l+|>&&MR{VzQ|ytkvV$c#9L- zs;GKuX4o(o;?|WjC`;OL#R~qfNx#A>3it1SI-So5QKZ-j_|5&Z=B>WuF{;Q1BE{nd zHIDf)cY1pD2BV5{Nat~b8b`W5xl`UCql#%n<S1@X<2YB>n{8%}UMW0m;^CoT{=j*K z?r+Q|=nW>b#bVW4{T8#ypc5b=1#||J#fpu@Sp;ke=}p^q?$Ntn-hjM*y}Gr_Y2d&z zgrv=>Z#7Y0ojIvVryKi&+np4QiP^b*M-@Eu*ClU#uyXCXwJVpu`pkn9^4iq5K-nCo z#Z{aZC$<?r=Y{uHq1*|5+MxRvzQ6IiAC8{9aJizYx~jbN%(3skc<;&EJJd4@;Gqi7 zGOVuxZH~(r@aV^TPF$))$trW#MLUjPs`dqfAyG0)RbnXMzIe#>#NdWz0sLLzZ3cH0 zD0S=GUfy%j7sA~Vf%&Zi)|3ZnU*Qq`m-oGTYo-Zzio&E4)Ou3>J4f9jWGRi@){}jb z=cm_))z?R5^!au#e(z_W1kI3^Pmn9cV8G|~dOTiVAVhK(3Lbc-8&;+v+yW=vpvDH2 zJ8v7b-W~E+ojbbk+b_0k+_d$py~oP}RHt96*g7fG5LK><h`1=CeqTVuhn%wwbX_>T z@3S}mI{TinBW}56)Pz}!*8Nn?3kQ!c?qa1Kp~5eWa<wFi-m^b^xn=wQizs{6+WQ}$ z{o}zgJ=<odCdD}%3H7r(-|^ypFcclNyl!NYE?n3oyQQiF@6H=PYW!nsY2Zz*{&aWm zruA$lgI*`-1h39uO&|K^sStV{@a>x3m^7x5cHQ4E8rC8uKBZj|%KCJ1jWe7;BP;U@ zrkwlt_^D9vr>C!@W6N-%;EC6UG%)LRdS?%?`zoD5FE9ZpN%(582J9K*w|l8z==957 z&EbMH+SOl7ZVa@+%_L(}Ojfnd=&0YMZI_;X`VSbW8yFZg;!&kZsdV{`mZ*|`@yr{& zv4<w%A`S3Ly|ux0{m0Mw>r3x^v}WCUVZE>+xM_E(NUcg0tNPO-(RgtnaOm+?{Mc2O zgqF(%V{*qkpL%cG-lL~3mQ_}}1-IY{dHo{EG1ZV0qKo==Ov%s#a9N0hFk@<X)6?sJ zyy*55N((qt4Z7D4<oPu|;N3R19<IZ&YS;xB8;*JP`!dv<qEaJtNz3QiG%Svg&SPV` zdP8120(_>P6ZUuv9?=)#LKTs)=t7?j;h5@$BEJ0--@6Hwe4_j8!EZm`xIu>j*i{+= z+A5?jQcj5*na`@LH)_o#YRMD2yyu<bNuzHbJV+Q69QN=o-&M-_t%jTj_WG!pRPptn z2e(Q~bl7yZVExfsJXbAd>bUqskctI=TF|SW3Bm$~KcGv#;|uRq%UOCZyU51_+&P`j z!~=%x`~T^`N*Tc#?E7&!jYq({b#wxatY2{4umsItc|1_4->M3w&{q>0&@}r5b57y5 zN?QC^8by@qz2Y)o#eqXlbaavk<TKcF?tK4r%%rJ;pf>n^o4M;N$f1|Z#Y>;f?A9>B znbf%Z)c212AtQ#{s#VC?viM*Cy(tf#+xpzp(Zj~hcwy@)pGZRJl?wT6`Uc}S;=52P zRDNv7)=k^?{8AC{RDc#neO8U8d^W+>ZNU*gDz1=%z(TJ-B)Wh4?o`YO)+hw*)u-OJ z;xs6tjY#R?w-)Za+SIzOOfWZ_vic;tf)n^q)xm#^zb6)nYP4_?wl+F@>q*P@U-Dti z$+(Rebf5Wp;jm^muepSkqU>P^*NJUwahxZhC2&bwlVMM;+<p8)MOD@1Gl#!idSA~5 z&d%W98ox%t82*idI6h?O1XD`8;rBiF*2intta$awN&Rx-3^9Bh<znI}rw7hm)LD|U zJKWGWFRypE)}W)<WrE!+EFP+ka2VP|&dGJwpashU8~ErgVzKUV7O+~t^Re{}3Ob|N z3Z&!l<Y>8|n&g6hy*f5YG!w}w7YvT{HrMy*-={~1>?DBV*spbo39H_He)h07i3VDX zmvr_<z3zGH^^aD6{MLf|hqp~amu+lE-NHg;>4`lbKa!UYeymUGJo%MvhtHN(mY+Yq z`;*6q5Kp(VgLO*_k{I${+_hw6Lz5w;?-QGUt>$|&w;1x3?tSgH#;DIyOI!#+TmZAf z*~*Wv4NYs1_uQ__L8w=JqUY$+kyxuZ#!&@@df<Pa0}BQX`rDpLk<N)E@1cb~z$+k| zaBQm2w<`-5e^((wtA*{x7lq(~T52t!z>LeSrTY(+g*Y_^FUOMb2T%MrZ9Poj>UBy4 z0a`afj}Kh@+z(%F{qkTbtsAtp;nrjwik+=n7&sF|IRUa!)xqWS#*Mn`@lVfExqxra z{n-W-J5#qDum!7|)~RRz;^E-k^*c=4tPsE8(Z97dp<GQFz@x|jFP<P0RS`P*#x1F4 zouGGiTX>8JbU-}w+Vy6Xi{k%2;{OkRPXxj5{;DtwvjpO8XjHU|%LLM;_rRddwV1yj z%zxrH#7_L;xwrdaQ-r(8y2M*Q=K_ILv9cfZo;CTtAAJ9|ZA3W&!NVnOh*t*$$B+$f zKopj2sf*(WHtin1nOIQ3zpE&d7GTgez*S9!IA1o^&FceR|4pA!)dBDJJ25*3thT(h zRYcM?YF$~A)nijSn0F`O**qei_)EY#U>z6cv@+f>zjw+ZAPF_#`Rpb|wp97PlGlK7 zuFdp=K2o=66dDq5jWYhacz$5huB(;OGk@JYKQQd!tCtJZ$@2sCM_;2@ojl(Uo_~#U zwRpZCJpUSHtTlPQk9hvI3f1KKUe5DLj}<lcF>DCfXsyNbJqpjiMmde?U#h|MuTe~6 z`<G+c{?$wQ!+gIihVNgaRG9CVNAvxwjUw<j!uGwK?O&}81H%x9xxPo?`myY~Ci^~p z1)fiPZ;f|jg~ae~P|Ldcee?z#g<=@D`3k%~%&KwF77p83X&nrnwXMO;^)cKW=Oobh znz(*2H@weQG`=0eyJtn?i@2)4R5ZR6kDiEsbsX1ipjXJQ(F&AQT$PXr;X@C7gC=}L z^lJ(kvopV{KX9^(f+@an`y2Y@_3PQOX|hEx#4I4rCQSCQ*1*cn3x<T2L#99b)+cLM zE?fNIt({Y?j#wNj7feuI^pB_vXsXN^{pYRN@iXMPii;=qeY)U|HmNtoEZj1E+TdA> zKaitU2X4XAWb8}3E_k`vQ7wl2<v*={u-_e<qF211)D^#6!kv+@E`jjYlr{ccQa0d} zR0>@D^4TZ9jmWn~MFfE!K}UrYJp%R+`UWH4J`M@j290IezR#ofAetHjELBw>=pfKJ zdoKEstCg!%<w3}O89V(5HS+Pnl=+@R)f_-iVr+Wf*I-%(xl;0+`F{JB?cbmAh*3KO zBlB`u#mBV<6{^;N>EZ`1J4@TdN~vo9vWLcv9QV+&{isLVg-|glE`Ht36$Vv`!hji? z+_#g4t6Xw_zhG$d<oJ{pLl@ExRNIH3n6>w-pT2Y--@jKWDg(jR;}ujx+ZWOpn4pd@ zH5l@bUrFi-vrSX033v6(<_d!<MPZ<;H)aF&VA$MB)!S8lfln|tp0XVbH!>_<U0kCy zhmki}%@qcMq4A8}itKTAX&-*%j%{GyrDsXEuQW(94yh}+s-T*y3Ix-2Paol8SK!Ad zTGK7^fT_)sKSnk_B!wF+BnP@lKOmU9zKoq5i5)xdh1h}o`b-jwB5ec&gR@a*jH#Oo zA_{X03mhn*OTH6dtQ7zz36_jrQx{VSuDG=H`KXM(RTVc-LWmo|WgSg~@Cvr(cP{zz zI7xI$8EgO5eCHbQY`huY4i%f@=8X{?*E1}H<^>-es|s>8!EY_3Pru`%Q+`S2I)dNU zI~{K8+k3ol45ehgy;F<vef^b(LC5_1w7a+BBXDzz>j;!`<}NRBEQ%fPh{^&Irm^)C zhx}NFB3BbA#f)v9IzoHrKzLe_>qmkpV~AqrZm*pQQ8B(qm16ov)A^_R#V8!=vy`uy za6t>?0a8JVe8j8yoC!&z6}0se+BSlj9P=9*O^!xdG->7X2W}|S#Hj_Nm&xGzMp`EI zhrEV9Y0HGlabd@%7Qup?wTlo43v%Crq0N%xlba7+urF#sqKM^&x6V^1C0eFcypK$m zF!<ebeEEx&KfE*d&XIS{edh=4o3!PRVy1S_U{`=|i&7YX-k6%*e^q*el7>e2e(k1` zQCb6(6ykb4f7pj6s_0+`iiKDLhiMn$`oD=XnD!|B0cfK>b<{g5DHY2>N+Xj8Y&K?3 z-3UxpFie{nknHTcmLJndcInp(O1_IMG+G1pj`P2`7?fkw2Ur<7x4*Lcq8G$mfHF4Z zuRP|Omp9fG(J4Szr;G14cir)-C>g{+JgMP;hd<bP{9;9QW$CX!Y*;kDZT+rMSwI-| z@$K$@adXr$fD!!9nArNJ8PC1F(zR;&-{+0(nr<~l%PA%Z?zYSxcWK%K3q%idLRN<x z`VHvct5dTSD@a&aE+P7)w>7{sGKyM3um&t<U=d4$5r-~DwZMM;9~4L8Nqb@BT4EhP z)iB~Ka9J!yR)}X8lNvT}-<4Ft1N!&wp4%cl9_NhMYI<?7VNDvUk~BJXHFBxS#LnMZ z_{ejwEc<A+%eDH0H=lpB;O5+P8_HnL_zC;a`HF&*AHN#Z<5wd)w`J#npU;pExVrN4 zxnB-`v+}w8ZVgDi!94uLdE+jy36KkZ25V5yU_p!BI6ctLG`yFOZhm%TwuLsjUM{^s z3jkc_2eAhAAQrb{b+{JgkpdNm-npv@lqH%lRZk^GxWufp<9d}(^8NDetvC*?nE|y6 zw$^w6!SD0xyg{EIXCzqFz9Wl!Vw0^L#A}s-y$Pl!lgdy1xcjTmH*MU!efQBzpvACQ zlB%|o@`G`88R@*$(^gG$Ca{b8`Xk?6^YWjk-8E+D&BO1U{>&;|aHXQb6HBhgnFW`* zxvHHH49;H-8&2{Y15B`W`LBb+y0ywoNpL#ik{joad7dbe4$W4s9|OHO7rlo?CSw>5 z#>)7u0;W&@)28x7t5G|$u%tpx;ObJ}p8K-UV_>_j-Y{+QaofPiPtHJIEV<7f4Un$P zFBr3D?pBX1{t87%<WNT;4^~zsB;2y9OyV~fl(UNTamrbRc>0xYWZfH!jaFQb$}9v0 ziBE5yd;N|5^7tvmaP5?WD?w_PDL1w*IUJO4nf&O&*WX*Y_S5yc^}&rXrxUfyRG7OG zms|7gf#YW{RaCk4?vO`02H<BBC=jz1z^7PxEeCp*d4Y>`8iCtDT-d0c(`W6s5*i~( zPF9hvb{1$eT#7aWw6Eq7#1*p(kcxv9zx;Fi=Fc|J0ZjDyLtTY9>qDWy*=>Knf86jP zboem*5iYSQ6I8p<Ipr&5@#4A}H)N;8*=;s^gIl*o#G2Yg$|0X&B;~;VN83B;;FJy> z8cg^q!UjltGw@S>eiHC(7!1W86p)IzAbYouOCeQKz|`u|0}+116+SMmBno&o4aJf} z5r};|yt3@wb~_<Aq?hDj@1G~;s(lT(_9t93=l6YecN$c#W>Efw;cFn<`S;FgVZ~J> zohhZyGY7n3R*!}(z24>GsV{K&zj|lH+pRk5X?~f;(s|L(L0E2l@Ta!*<Ki2%9{%i3 z$RC=JfRg6UOHR_F`AI7O`nicCh71}wkY6oghK7^2R?4#PmsQ0RMvVB=V=E3+gs}F* z{WP|GjGr_3L*+kxyJZ6o)T;R%BqrFqFQS|D75<9{zuL0p>x1V#?&y;Q9JD}Y+r|a+ z09PR3JWbiXf`aMOZu=1HzY-f8e&p&ow)1pEuI7g{H@<o@NM_}V2n9}NZcaB|K?jd5 zUmSHVh4U*z<H?_01lhBxxna{O*xS+G3?~)u<WGt^NiY(l&z<|($!a?1HLC^m;G&Lz za*P0#^zN5#Z54ftV1iyUK6lD%+YX*At*8!P0x&>Le&E!l%Ib;>KkxiteqKgg^brDX zt?KMqH{M;m<lRqP>!Y+2mmhoS{ncwfUi$3xn_4Br9v@g>pJ{NUwd~xh-+=I40V6AG z(dEYed3}4dZ=3-2eT2Vbqpe)IQg05JScooQY5Vfdtk{$lal&M57I1mM0<?h~K*tDi z_->Okt$D{DeewqM@6)|~lVlr^(aO&0EcLG&nE&weOFvxWTJzx>&&?ToLv|dJjO?^v zO3uB#WW|^Je>q=<bN{k)Kkwc2>dbzPZ2WxFnsrObx<jQNVuX6B8f>ZR)VHrq>JZP5 z(OTW}_I^6~wBwM+{p*JLJ(B2NSm55(zj{TS?E8Y3zJ8)df(|P)wB`&gvXFB3Ddfj& z>E&v%?CXbfu`Joi0HRfrzx2qC&o^(|^>aBtPYhl9Y;qP}F(aLFxmb00<<pbL47>H- z1)Jz#Nhf=QC*R16*TL$LSWneIpC8jMBQY*9v+Lv)zfygE_m0^)MuyO3|KY_0QZ2-E z4EAOd*W+9d2kfEKuit2g@gGhbF0H;T6~lqGE!aB#6}v<z%d5AHtB=bEI21UxuzR8n zQb@p&bMFp1APxAxpW74{2cXA3_VS;G3^d_Ld-Rk0I7<rsvMAR?Nn*vpZ5!5`)(19h z+QUy{1LFCmJuE0r7oXe~h45qFB9(vC*NRJ_!K$@++$Z{uY;=9Eo^tes`hw!6y_+{A zDK}84e*X`DxpnZMMCHl}2ke^O)M-nyg+N3o9z6UcbnFnkfF?8t7!mRO^1+x7I}lTE zOU;Y}`XMK@8oTGU#e~EB8YlG)yN?^+5)b5|3tsV}Yf77V+Nua;bjp<6ywBtpT(8`S z3z9U0rvj(f%*kt!n&5~_N^8=-_wDoF{POs@wKyziv`;=2xbWRukKQwC=<u-<A9!}z z<{!>hgL&b!o8d$R$szaI1K(`jw0YaN`+mMq4MdWa-OKv(v?r?O$K)U={vb&v$|j1< zTz3k{l_Xb)m1}W`&#s&N?g6^1;grvdK~L%a7rWsisXb@JUq1a&L0f#_J{(O2{nZza ze6!-o5gCv&aPZghj*|DcD@b2maS3AK&W&$BJ$X>u29Vlx>=a!*7;yLeg>Qba#<lj7 z_g-K4XyNGI*ENhI8I`sJdXqD?S#EbMw7h;dLV9hOWTPWK8!J<<P1<a@I%y)&moB!l zm2h~lkN<ARUwTB4e%HZatod&({@w&fw^ogl@E9aPDG@!6d8v@#biJ0~^usWO!?=+U z4qx@9Lgd?lmkO)l*L6h}>yAHIiEFOvE0l8z9-7m3TK>EO7)$X^3Y}XLEUO9iwFw?? zoIG;|V*Lu|%$|eCET?DPRxm3+YjpmM*;)N&PMf6VXgj-benD23>$Nv1m2w=aJo0#7 z;X?(}=zYkkg)`>R^OE!UYmxbg<WDQipRLBH<<FS%03OE7YBG6N+sU)2`g`(c7qp#J zIICddoWhwivZl?M1z^pWF(Z#!c4*fnw_DfF-69WABKy4$%$`#?d0y7Eg2{8J%9#(f zoj!9?0iFPTsDPf@B*5IlNqD3)_xh-3F9|%gpm566Ia%F0M?Q_f{LxG8qiF2Z-<U~i zK%02X=a|Rwie(-gjXV9+v@!26c6&R<#sQngC&M*`>r5GN!C!_e;TQdNufp2mYIbSS zX=K<|!z?t8RYe>705fV^hbmS-HW+f$v=5DkjYh0(Xgt}1q(&Kr5<s;Ir6&ZqIj9YW z71$WnGy}!01Gy^NBna!WmNh7UdVy?%VEI|o7!-!5Fb|5aZL$bsfLI$x0Ag(-0f@Ds z#9Ipydm%85n&zL-rgO_7dZej_@g}+f8zKiK#2S3UoT*<q2v@BHZV8HwWUZ<&<gf#c zr-WGRQ`iIbgg6zkL8{Sxq%VYgMD|FqHH!UKr0ql+43l7c5j!qO;x8@4Q&MfiPsLgZ zb~tsJeM<Zthk=w>+v-y~M7`nmO0agqb+0;YKXG|PGg<;~j#z<`#bA^HC`Ynr(@znm zpJX>0YxXJ40}vw^WAcf~;U-MdZo>5%mY+B{iP$k&W6eM_YM3$U`o^wA{n%@)MBMX? z*wUp!zUKBh;8tO4I=n4GCOUXdL^Y{{Z7Nym;4Kr?t_~OkOC4BhskU`M99Zk%%_qga z4j&7Pon+0%4g&(K9hhrJ+1A0hmaKOIu-=I=t;4F(tapHHQTBC6Pz`vndZR4uU?~^2 z;Xz82)gA2fR68D1#QqLI)sP4GvNiKN05`!ZCTx2LYaY$s4(2@JV6e_$C0|L3H7qJp z?R$VI5$iiiHT3~7Vt}Vv{Qy|g1}|&|1nN}F4lisN1k8-J#RDnQY=mI3UE3NDYl#eo zf-o3jkev}FV?4|RnGA`$rYkVA%EOGoUI^CdQI>g_RM-vyDPpYiF!Qh^g2`R1g&q(D zhD9)Djy2E&B9WaD><elb=K<x&<VY`fhh~x+8?j<tZ&vICk8y&>;QiuaLmu;n&B$8A zvXEPlwLnc|Jk}i6c#7c|y1j@sg<&5I#&Y11u~-x4k1-N!9<dB-5wQnr8MXmy5w`q7 zNVWIMg2gb5y|`DZcs_WEu&z=Z8AFk+Ry)-|tBq!rmBZXI=2$skJh2Xs*OBE_6MT$f zbk&r(W6Z5YjK||LTnQY7>xf&BZb7;QX<Ycb6KuK}@oN0Y^axK9@!xU$y#)^aWhVYQ zHG%(a5+9_!09+;7s7vC5^uZ-Q7&l!};_ISHe7v)oK=)fkzOGT?5{ZicL6NURyUw}Y zyLPx9l3qB_twZ<gJ9MUZ%zwMc*Rf-#SlLb!`MSn}uO#wK7>mKBpEmUv^a-;Wn{p4_ z3?)fRoA3r>ci+I+#Kw$G#=@J@1g;}oKe$np7b0Jg>RkMh@38%9-ERR$Y+(O*1DKvY z{&&3%%-;Zxo*U!i?2q?8L3F?x{&?^6|D*RlYvA}FFZuoPk{^_d^oS0GZl>%2@eo1; z^8fTpe&)}MiWP@vxmGaksjUV~eP$~K4@mGgwd!G?LoaCI$z}dx7V#Opk%i}<=~*m1 zB%r;Al^FF97Q))AS4rU~t`Jh+v!XijByzm+Ru%UGh&kniD3^=|>nV>!!K25Z;L)Q` z@aS=;B&Iw!jJ8tffnjuozs!WEDd`O+r7GMcp*NNi@H~d{uu=jGsxK)aq&}TQEfot^ zdT5|Xbr3-yl3Xh;%)ukJ+~EPxIV8o*glkR#{P6#qXpabl|F0dAj^l^TeBi-?{0Fio z=1;r-0j?N@?wbGpZQ`<8KY4YD%TUH?zo{hD;}`BSq`Ij?;r78DgVWv^n2Jo0;HKUW v_h-20;g-U!g4;$l6g#lF_*XjfUb#5Rp$Sqbrcqn?(Z)p6MAJ9WShD{Gir9U4 literal 0 HcmV?d00001 diff --git a/index.php b/index.php index cb986cb1..adb6a6ee 100644 --- a/index.php +++ b/index.php @@ -56,6 +56,8 @@ echo '<link rel="stylesheet" type="text/css" href="style.css">'."\n"; echo '</head>'."\n"; echo '<body>'."\n"; +framanav(); + //debut du formulaire echo '<form name=formulaire action="infos_sondage.php" method="POST">'."\n"; diff --git a/infos_sondage.php b/infos_sondage.php index ba506d55..9c56deaa 100644 --- a/infos_sondage.php +++ b/infos_sondage.php @@ -147,6 +147,8 @@ if (issetAndNoEmpty("poursuivre")){ //affichage de la page print_header(true); echo '<body>'."\n"; +framanav(); + //affichage des bandeaux de tete logo(); bandeau_tete(); diff --git a/scripts/nettoyage_sondage.php b/scripts/nettoyage_sondage.php index 280ac7f8..b905c5f1 100644 --- a/scripts/nettoyage_sondage.php +++ b/scripts/nettoyage_sondage.php @@ -49,10 +49,13 @@ $sondage=$connect->Execute("select * from sondage"); while ($dsondage=$sondage->FetchNextObject(false)) { if ($date_courante > strtotime($dsondage->date_fin)) { //destruction des données dans la base - $connect->Execute('DELETE FROM sondage LEFT INNER JOIN sujet_studs ON sujet_studs.id_sondage = sondage.id_sondage '. + + $req = 'DELETE FROM sondage LEFT INNER JOIN sujet_studs ON sujet_studs.id_sondage = sondage.id_sondage '. 'LEFT INNER JOIN user_studs ON user_studs.id_sondage = sondage.id_sondage ' . 'LEFT INNER JOIN comments ON comments.id_sondage = sondage.id_sondage ' . - "WHERE id_sondage = '$dsondage->id_sondage' "); + "WHERE id_sondage = '$dsondage->id_sondage'; "; + echo $req; + $connect->Execute($req); // ecriture des traces dans le fichier de logs error_log($date . " SUPPRESSION: $dsondage->id_sondage\t$dsondage->format\t$dsondage->nom_admin\t$dsondage->mail_admin\n", '../admin/logs_studs.txt'); } diff --git a/studs.php b/studs.php index 27a80fbc..a62e3d50 100644 --- a/studs.php +++ b/studs.php @@ -173,8 +173,8 @@ if (!is_error(NO_POLL) && (isset($_POST["boutonp"]) || isset($_POST["boutonp_x"] if ($dsondage->mailsonde || /* compatibility for non boolean DB */ $dsondage->mailsonde=="yes" || $dsondage->mailsonde=="true") { $headers="From: ".NOMAPPLICATION." <".ADRESSEMAILADMIN.">\r\nContent-Type: text/plain; charset=\"UTF-8\"\nContent-Transfer-Encoding: 8bit"; mail ("$dsondage->mail_admin", - "[".NOMAPPLICATION."] "._("Poll's participation")." : $dsondage->titre", - "\"$nom\" ". + "[".NOMAPPLICATION."] "._("Poll's participation")." : ".htmlspecialchars_decode($dsondage->titre, ENT_QUOTES).",". + htmlspecialchars_decode("\"$nom\" ",ENT_QUOTES). _("has filled a line.\nYou can find your poll at the link") . " :\n\n". getUrlSondage($numsondage)." \n\n" . _("Thanks for your confidence.") . "\n". NOMAPPLICATION, @@ -188,6 +188,7 @@ if (!is_error(NO_POLL) && (isset($_POST["boutonp"]) || isset($_POST["boutonp_x"] print_header(true, $dsondage->titre); echo '<body>'."\n"; +framanav(); logo(); bandeau_tete(); bandeau_titre(_("Make your polls")); diff --git a/style.css b/style.css index b5e1b3fe..77f07b45 100644 --- a/style.css +++ b/style.css @@ -82,11 +82,12 @@ div.bandeau{ font-size:42px; font-family:arial; padding:8px; - height:50px; + height:40px; position:static; top:6px; left:6px; right:6px; + padding-top:35px; } @@ -102,6 +103,7 @@ div.logo{ margin-left: 0; margin-right:0; margin-bottom:auto; + padding-top: 30px; } /*Sous bandeau avec bouton de navigation*/ div.bandeautitre{ @@ -201,7 +203,7 @@ div.bandeaupiedmobile{ */ span.sousbandeaulangue { margin-left:6px; - margin-right:20px; + margin-right:90px; float:right; } @@ -231,8 +233,7 @@ span.sousbandeaulangue { div.corps table{ - font-size:12px; - font-weight:bold; + font-size:12px; } div.corpscentre{ font-size:12px; @@ -556,7 +557,9 @@ li.error { .index_date .opacity, .index_sondage .opacity { opacity: 0.6; } - +.button img { + vertical-align: middle; +} .index_date img:hover, .index_sondage img:hover { opacity: 1; cursor: pointer; -- GitLab