modif de code php, a l'aide!

mistertitan

Membre expert
Club iGen
4 Septembre 2003
1 175
132
43
Garches
www.400iso.org
j'essaie de mettre un sommaire clair et bien visible, disons plutôt que je l'optimise.

voici quelques lignes de code php

voici la fonction:
Bloc de code:
function dcSearchString($s='%s')
{
    if(!empty($_GET['q'])) {
        printf($s,htmlspecialchars(stripslashes($_GET['q'])));
    }
}
et le code html qui l'appelle:
Bloc de code:
<form action="<?php dcInfo('search'); ?>" method="get">

            <h2><label for="q">Rechercher</label></h2>
            <input name="q" id="q" type="text" size="15"
            value="<?php dcSearchString(); ?>" accesskey="4"/><input type="submit" class="submit" value="ok" />
        
</form>
Mon adresse web: http://desbalaisbrosses.free.fr/

le module recherche de dotclear: je ne veux pas voir "Rechercher" au dessus du cadre mais affich&#233; plut&#244;t par d&#233;faut "Recherche" dans le cadre lui m&#234;me.
Comme &#231;a, je fous tout en haut, et ca prend pas trop de place; les autres liens plus bas sont directement visibles sans descendre la page, m&#234;me sur une petite r&#233;solution d'&#233;cran
 
Pour effacer le titre «rechercher» sans l'effacer vraiment (les personnes souffrant d'un handicap t'en seront reconnaissantes), tu peux ajouter ceci dans la feuille de styles CSS :
Bloc de code:
#sidebar form h2 {text-indent: -5000px;}
Pour le texte rechercher déjà dans le champs, ça pose un problème d'accessibilité mais il y moyen de faire ça en javascript sans que ça gène trop mais je ne sais pas comment. Quelqu'un d'autre te renseignera. ;)

Sinon je vois que tu as supprimé les liens d'évitement, c'est pas très sympa. :(
 
Bonjour,
Pour le code HTML, j'essayerai qlq chose comme ça :

<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15"
value="<?php dcSearchString()=='' ? dcSearchString() : 'Rechercher'; ?>" accesskey="4"/><input type="submit" class="submit" value="ok" />

</form>

Cordialement,
Obiagon.
 
Comment ça ça change rien? :mouais: Je viens de modifier en live ta css et ça a fonctionné... Voici le début du code :

Bloc de code:
/* ***** BEGIN LICENSE BLOCK *****
 * This file is part of DotClear.
 * Copyright (c) 2005 Stéphane Sulikowski. All rights
 * reserved.
 *
 * DotClear 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.
 * 
 * DotClear 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 DotClear; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * ***** END LICENSE BLOCK ******/

body {
    font-family : Tahoma,Arial,Helvetica,sans-serif;
    font-size : 80%;
    background: #999 url(fondpage.gif) repeat-x;
    margin: 0;
    padding: 0;
}

[B]#sidebar form h2 {text-indent: -5000px;}
[/B]
hr {
    background: #fff url(hr.jpg) no-repeat center;
    height: 17px;
    border: 0;
    margin-top: 40px;
}

Pour le code php je ne suis pas sûr que ça soit juste.
 
Tiens j'ai une id&#233;e pour le champs de recherche (&#224; essayer)... Tu cr&#233;es une image de fond avec le mot rechercher dedans. Ensuite avec les css tu met cette image de fond dans le champs de recherche et tu la d&#233;sactive quand le champs de recherche a le focus :

Bloc de code:
input#q {background-image: fond_recherche.png}
input#q:focus {background-image: none;}
Pas besoin de programmer quoi que ce soit en php, javascript ou autre...
;)
 
Pour effacer le titre &#171;rechercher&#187; sans l'effacer vraiment (les personnes souffrant d'un handicap t'en seront reconnaissantes), tu peux ajouter ceci dans la feuille de styles CSS :
Bloc de code:
#sidebar form h2 {text-indent: -5000px;}

Normalement l'espace du titre reste, si cet espace te g&#232;ne tu peux essayer &#231;a :

Bloc de code:
#sidebar form h2 {text-indent: -5000px; width: 5000px; float: left;}

Je suis pas trop s&#251;r que &#231;a marche... ;)
 
Bonjour,
Pour le code HTML, j'essayerai qlq chose comme ça :

<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15"
value="<?php dcSearchString()=='' ? dcSearchString() : 'Rechercher'; ?>" accesskey="4"/><input type="submit" class="submit" value="ok" />

</form>

Cordialement,
Obiagon.

Oups, je me suis trompé dans mon code php, essaye plutôt ça :


<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15"
value="<?php dcSearchString() != '' ? dcSearchString() : 'Rechercher'; ?>" accesskey="4"/><input type="submit" class="submit" value="ok" />

</form>


(j'ai changé le == en !=)

Cordialement,
Obiagon.
 
desol&#233; gloup, mais pour rechercher, je sais le retirer. donc je ne parlais pas de toi quand je disais que ca ne marchait pas.

mais j'attend de reussir a mettre rechercher dans le cadre pour le faire.

en ce qui concerne ce cadre, ca ne marche toujours pas obiagon.
 
J'ai finalement test&#233; : &#231;a ne marche pas non plus avec l'image de fond. Enfin, pas directement. Il faut javascript. J'ai fait un petit test bidon avec le code suivant mais il ne marchera pas avec le code de dotclear, je regarderai ce soir.

Bloc de code:
<input name="q" type="text" id="q" onfocus="this.value='';" onblur="this.value='Rechercher';"  />
;)

edit : de toutes fa&#231;on c'est un peu pourri comme fa&#231;on de faire
 
okay. merci les gars de prendre un peu de temps pour voir mon petit souci.
Essaye comme &#231;a :
Bloc de code:
<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15"
value="<?php echo (dcSearchString()!='') ? dcSearchString() : 'Rechercher'; ?>" accesskey="4"/><input type="submit" class="submit" value="ok" />

</form>

Et modifie la fonction PHP en :
Bloc de code:
function dcSearchString()
{
    return (!empty($_GET['q'])) ? htmlspecialchars(stripslashes($_GET['q'])) : '';
}

Ou alors m&#234;me mieux laisse tomber la fonction PHP et change le formulaire directement en :
Bloc de code:
<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15"
value="<?php echo (!empty($_GET['q'])) ? htmlspecialchars(stripslashes($_GET['q'])) : 'Rechercher'; ?>" accesskey="4"/><input type="submit" class="submit" value="ok" />

</form>
Comme &#231;a pas la peine d'appeler une fonction etc... c'est plus rapide (enfin la diff&#233;rence ne se sentira pas vraiment :rateau: )

;)
 
Essaye comme ça :
Bloc de code:
<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15"
value="<?php echo (dcSearchString()!='') ? dcSearchString() : 'Rechercher'; ?>" accesskey="4"/><input type="submit" class="submit" value="ok" />

</form>
Arrggghh je n'avais pas pensé à l'echo :siffle:, mais bon j'ai balancé le code à l'arrache sans vérifier :D:siffle:
 
Essaye comme &#231;a :
Bloc de code:
<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15"
value="<?php echo (dcSearchString()!='') ? dcSearchString() : 'Rechercher'; ?>" accesskey="4"/><input type="submit" class="submit" value="ok" />

</form>

Arrggghh je n'avais pas pens&#233; &#224; l'echo :siffle:, mais bon j'ai balanc&#233; le code &#224; l'arrache sans v&#233;rifier :D:siffle:
En fait ton code ne peut pas marcher parce que dcSearchString() ne renvoie rien mais &#233;crit quelquechose (printf()) donc le test dcSearchString()!='' n'a pas de sens :)

Et puis le Rechercher n'avais aucun effet puisqu'il n'y avait rien pour "l'&#233;crire".


:)
 
En fait ton code ne peut pas marcher parce que dcSearchString() ne renvoie rien mais écrit quelquechose (printf()) donc le test dcSearchString()!='' n'a pas de sens :)

Et puis le Rechercher n'avais aucun effet puisqu'il n'y avait rien pour "l'écrire".


:)


Oui tu as raison je n'avais même pas regardé le code de la fonction (et je ne l'ai toujours pas regardé :p), dans mon esprit il me semblait logique qu'elle renvoi ce que l'on veut afficher. Ca m'apprendra à répondre à l'arrache lol. :)
 
okay, donc impossible d'utiliser al fonction php avec ce système. donc
j'ai opté pour le changement de p4bl0, qui marche très bien.



Bloc de code:
<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15" value="<?php echo (!empty($_GET['q'])) ? htmlspecialchars(stripslashes($_GET['q'])) : 'Rechercher'; ?>" accesskey="4"/><input type="submit" class="submit" value="ok" />

</form>

merci les gars
 
okay, donc impossible d'utiliser al fonction php avec ce système. donc
j'ai opté pour le changement de p4bl0, qui marche très bien.



Bloc de code:
<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15" value="<?php echo (!empty($_GET['q'])) ? htmlspecialchars(stripslashes($_GET['q'])) : 'Rechercher'; ?>" accesskey="4"/><input type="submit" class="submit" value="ok" />

</form>

merci les gars
Pour que ce soit un peut mieux tu peux m&#234;me faire &#231;a :

Bloc de code:
<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15" value="<?php echo (!empty($_GET['q'])) ? htmlspecialchars(stripslashes($_GET['q'])) : 'Rechercher'; ?>" accesskey="4" onfocus="if(this.value=='Rechercher'){this.value='');" onblur="if(this.value==''){this.value='Rechercher');" /><input type="submit" class="submit" value="ok" />

</form>

;)
 
j'ai m&#234;me apport&#233; une petite correction, si tu permets:


Bloc de code:
<form action="<?php dcInfo('search'); ?>" method="get">

<h2><label for="q">Rechercher</label></h2>
<input name="q" id="q" type="text" size="15" value="<?php echo (!empty($_GET['q'])) ? htmlspecialchars(stripslashes($_GET['q'])) : 'Rechercher'; ?>" accesskey="4" onfocus="if(this.value=='Rechercher'){this.value=''[SIZE=5][B]}[/B][/SIZE];" onblur="if(this.value==''){this.value='Rechercher'[SIZE=5][B]}[/B][/SIZE];" /><input type="submit" class="submit" value="ok" />

</form>

PS: c'est marrant ton pseudo, tout comme ton site. il existe un site photo qui as un nom du m&#234;me genre mais qui concerne la photo:

[SIZE=-1]http://h0lg4.org/ pour holga
[/SIZE]
 
  • J’aime
Réactions: p4bl0