COMPTE A REBOUR AVEC CHANGEMENT D'IMAGES TOUTES LES SEMAINES

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 8 janv. 2009 à 20:50
cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023 - 11 janv. 2009 à 21:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48913-compte-a-rebour-avec-changement-d-images-toutes-les-semaines

cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023
11 janv. 2009 à 21:03
Salut a au fait mon post du dessus et destiné a kohntark
cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023
11 janv. 2009 à 21:01
Tu sais tous les critiques sont bonne a prendre mais tu vois j'etai fier de moi c'est mon premier code php qui fonctionne peut etre pas elegant la manière dont je m'y suis pris mais elle fonctionne.
Apparement tu est une pro et je ne fait pas abstraction des conseils mais j'utilise toujour un code qui fonctionne.
Tu m'a ouvert les yeux sur le chemin de l'image a savoir :
Ton image ne s'affiche pas :
Si tu as conservé ce chemin "images/promotion/image2.jpg", le présent script ira chercher l'image ici : "images/promotion/image02.jpg" => normal

Tu vois je dois l'optimiser car la boutique ouvre 6 jour sur 7 et le decompte ne doit pas s'afficher pour les dimanche
Merci a toi pour toutes ces remarques gentille
Valou
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
11 janv. 2009 à 14:40
Salut Val,

Je viens de voir ton dernier post (j'avais oublié de valider le mien), alors ne tiens pas compte des qq remarques :o)

La seule chose que je vois est que tu as oublié ça à la fin :

';

Pour le non affichage de l'image la réponse est dans mon précédent post.

Cordialement,

Kohntark-
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
11 janv. 2009 à 14:32
Dommage que tu ne tienne pas compte des remarques qui ont été faites.
Pardonne moi si cela te parait abrupte, mais en l'état ton script ne sert à rien. N'y vois pas là de la méchanceté, c'est juste que l'intérêt de déposer une source ici est de pouvoir la réutiliser dans un autre projet, de façon simple. Hors, avec ton code, il faut en ré écrire une bonne partie (cf mon exemple de poissonnier)
Tu devrais par exemple laisser le soin à l'utilisateur (le codeur) de définir lui même la phrase qu'il veut afficher, ainsi que les images. Je pourrai donc facilement afficher :
"Yo, big promo sur les harengs du XX/XX au XX/XX !!!" en ne renseignant qu'un fichier de config (par ex), sans me retaper le code.

- le code HTML n'est pas conforme aux standards
- des balises de fermeture sont absentes, inutile de s'étonner des pb d'affichage par la suite
- $year n'est pas définie (if($year <= 2009){)

Ton image ne s'affiche pas :
Si tu as conservé ce chemin "images/promotion/image2.jpg", le présent script ira chercher l'image ici : "images/promotion/image02.jpg" => normal

Pour la dernière question j'attends la suite.

Bonne journée,

Kohntark-
cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023
11 janv. 2009 à 13:54
salut kohntark
j'ai repiquer ton code mais l'image 2 ne s'affiche pas pourquoi??

<?PHP
$t = mktime(0,0,0,1,(date("d", mktime()) - date("N", mktime())+1), 2009);
$t1 = date("d/m/Y", mktime(0,0,0,1,date("d", $t) + 6, 2009));

echo '






Nous sommes le '.date("d/m/Y").'.

Il vous reste '.(7 - date("N")).' jours avant la fin de la promotion




du '.date("d/m/Y",$t).' au '.$t1.' pour ce bijoux





Merci pour ta reponse
Voici l'erreur que j'obtient :

Warning: Unexpected character in input: ''' (ASCII=39) state=1 in C:\wamp\www\cyrilor\promotion.php on line 324

Parse error: syntax error, unexpected '.' in C:\wamp\www\cyrilor\promotion.php on line 324
cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023
11 janv. 2009 à 13:35
Merci a tous de me donner un coup de main

On ma fournis ce code :
qui fonctionne mais dont l'image 2 ne s'affiche pas auriez vous une idée
Je voudrais aussi que dans ma semaine le dimanche ce soit l'image de la semaine qui suit qui s'affiche? je n'arrive pas a configurer Merci a vous

<?php
setlocale(LC_TIME, "fr");//Mettre les jours en langue francaise
$JourL = strftime("%A"); //Ecrire les jours en entier
$jours = date('N');

$iReste = (7 - $jours); // on utilise 7 car le résultat de date('N') est compris entre 0 et 7, 1=>(pour Lundi) et 0=>(pour Dimanche)
$iPromEnd = date('d') + ( 7 - date('N'));
?>







Nous sommes le <?php echo "$JourL" . date('d/m/Y'); ?>.

Il vous reste <?php echo "$iReste"; ?> jours avant la fin de la promotion



<?php
if($year <= 2009){
?>
du <?php echo date('N '). ' au ' . $iPromEnd . '/' . date('m') . '/' . date('Y');?> pour ce bijoux.



<?php echo "";?>
<?php
} else {
?>
l'année est fini il n'y a plus de promotion

<?php
}

?>
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 janv. 2009 à 23:12
Salut,

Sur une seule ligne :
$tmp = new DateTime();if($tmp -> format('W') > 1){$tmp -> modify('last monday');}$dateDeb=$tmp->format('d/m/Y');$tmp->modify('next sunday');$dateFin=$tmp->format('d/m/Y');

C'est juste manière de dire que bon... le nombre de lignes, vraiment... Faut pas se focaliser sur le nombres de lignes du code, ce n'est pas significatif. On peut s'amuser à comparer un nombre de lignes dans un algo, mais pas dans du code. Bon, c'était juste histoire de ramener ma fraise ce soir.

Concernant le title : c'est effectivement un attribut facultative. C'est l'attribut alt qui est obligatoire pour une image.

Bonne soirée ^^
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 janv. 2009 à 11:45
Salut Jeca,

Non, il ne manque pas de ligne. Celle que tu ajoutes est présente dans mon code un peu plus bas. :)

J'étais parti sur l'objet datetime initialement, mais vu que j'avais dit dans un post précédent : "Ton code de 234 doit pouvoir tenir sur à peine 10 lignes." j'ai préféré l'écrire sur 2 lignes avec mktime, histoire de ne pas trop m'en éloigner :o)
Et puis, dans ce cas, la différence du temps d'exécution est totalement invisible (même sur 1000 itérations)
Mais tu as entièrement raison, il vaut mieux procéder ainsi.

Cordialement,

Kohntark-
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
10 janv. 2009 à 10:45
Bonjour,

@KOHNTARK
Il manque une ligne dans ton code de recherche du lundi :
$tsDeb = mktime(0,0,0,1,(date("d", mktime()) - date("N", mktime())+1), 2009);
$t = date('d/m/Y', $tsDeb);
$t1 = date("d/m/Y", mktime(0,0,0,1,date("d", $tsDeb) + 6, 2009));
Mais depuis php 5.1, un autre méthode est à favoriser ; elee demande plus de lignes de code, mais elle est beaucoup plus rapide à l'exécution :
$tmp = new DateTime();
if($tmp -> format('W') > 1)
{
$tmp -> modify('last monday');
}
$dateDeb = $tmp -> format('d/m/Y');
$tmp -> modify('next sunday');
$dateFin = $tmp -> format('d/m/Y');

Sur 1000 itérations, temps moyen d'exécution :
avec mktime : 0.0046921105384827
avec l'objet DateTime : 0.0016949436664581
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
9 janv. 2009 à 23:47
@Teclis
J'aurai pu me faire disquaire aussi ... mais oui, j'aime le poisson :o)

... et pourtant le grand sésame :
This document was successfully checked as XHTML 1.0 Strict!

(en ajoutant bien sur les html, body and Co)

Autant pour le title j'étais d'accord avec toi et le résultat du W3C validator m'a étonné, autant pour le
=> NON :)

Lorsque tu auras un peu de temps, jette tout de même un oeil à la meilleure façon de trouver le lundi du n° de semaine X. Chui sur qu'il y a mieux.

Kohntark-
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
9 janv. 2009 à 23:16
@KOHNTARK
Je savais que tu aimais le poisson !!! ;)
Manque title aux tags img :p,
=>

Sinon ça a l'air ok mais j'ai pas testé j'te fait confiance
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
9 janv. 2009 à 23:06
A propos,

Je me suis un peu pris la tête sur la méthode a employer pour trouver la date du lundi de la semaine, le code n'est peut être pas exempt de bug.

Si qqun a une meilleure solution ...
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
9 janv. 2009 à 23:02
Salut,

Pour te donner une idée des choses à améliorer (sans ajout de fonctionnalités), j'ai réécrit en une quinzaine de lignes ton code :

$t = mktime(0,0,0,1,(date("d", mktime()) - date("N", mktime())+1), 2009);
$t1 = date("d/m/Y", mktime(0,0,0,1,date("d", $t) + 6, 2009));

echo '

Nous sommes le '.date("d/m/Y").'.

Il vous reste '.(7 - date("N")).' jours avant la fin de la promotion

du '.date("d/m/Y",$t).' au '.$t1.' pour ce bijoux

';

Ca ne va pas chercher midi à quatorze heures mais j'espère que tu pourras t'en inspirer, tant au niveau du HTML (qui ici devrait être valide XHTML strict) que de sa "philosophie" (une constante imparable : la page est forcement appelée la semaine en cours :o) inutile donc de la tester avec de multiples if)

En attendant la suite,

Cordialement,

Kohntark-
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
9 janv. 2009 à 17:39
Bien sur que ce n'est pas l'internaute qui choisi les dates de la promo.
Mais le but d'une source déposée ici est qu'elle soit réutilisable.

Alors imagine que je sois poissonnier et que je souhaite faire une promo sur le hareng d'un mercredi au samedi suivant, comment je peux faire ? Il faut que je retapes tout ton code en changeant les dates, les "bijoux" etc ...

Je pense qu'une petite fonction couplée à une DB serait la bienvenue.

Cordialement,

Kohntark-
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
9 janv. 2009 à 15:35
De plus, en 2010, le 1er janvier se trouve dans la semaine 53 de l'année 2009.
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
9 janv. 2009 à 15:01
Bonjour,

Si tu changes d'année, ton script ne fonctionne plus : les dates de début et de fin de semaine changent.
cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023
9 janv. 2009 à 12:28
les promos sont toutes les semaines et c'est pas l'internaute qui choisi la date de promo c'est le bijoutier il a decide de mettre 1 bijoux toute les semaine en promo alors vous voyez je n'ai pas besoins d'une bdd
Cordialement
valou
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
9 janv. 2009 à 09:28
Salut,

Je rejoins tout à fait l'avis de Teclis. Ton code de 234 doit pouvoir tenir sur à peine 10 lignes.
De plus, comme je te le disais sur le forum, il serait nettement mieux de faire un compte à rebours JS, bien plus attrayant. Parce qu'entre :
- il vous reste 1 jour avant la fin de la promo (ton script)
- il vous reste 3 minutes et 45 sec avant la fin de la promo (script JS dynamique)

... pour un mec qui se connecte à 23h56 ça fait une sacrée différence !!

Il devrait y avoir la possibilité de choisir le début et la fin de la promo (si j'ai envie de faire une promo du mercredi 7 janvier au samedi 10 je fais comment ??)

En attente de la suite,

Cordialement,

Kohntark-
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
8 janv. 2009 à 20:50
Oulala ... tes promos doivent être en BdD ou stocké ailleurs et doivent avoir 2 dates une de début et fin voir un roulement plus élaboré mais là on se croirait à la préhistoire ...
Rejoignez-nous