Re: [LA-discussions] Site web : image contextuelle selon la date

[ Thread Index | Date Index | More linuxarverne.org/discussions Archives ]


Bon ben finalement je pense que j'ai trouvé tout ce dont j'avais besoin en 
javascript. Il est probable qu'on pourrait faire mieux au niveau de 
l'imbrication des procédures conditionnelles, mais vu le contexte ça suffira.

En fait il s'agit non de mon site perso mais de celui d'un pote traiteur qui 
voulait afficher des annonces ciblées par date avec affichage soit pour un mois 
entier (les fêtes de fin d'année par exemple),  par semaines (la St 
Valentin...) et aussi (plus compliqué) pour Pâques. J'ai écrit ce qui suit 
dans mon fichier script.js qui est appelé dans le head, puis dans les pages 
html j'insère 
<script type="text/javascript"><!--
InserePromotion()
--></script>
et le tour est joué.
Au niveau des images à ajouter c'est la css qui le fera.

Si tout ça peut servir à qqun vous privez pas :-)

// Fonction getWeek pour déterminer le numéro de la semaine dans la fonction 
InserePromotion
Date.prototype.getWeek = function() {
	var premierjanvier = new Date(this.getFullYear(),0,1);
	return Math.ceil(((((this - premierjanvier) / 86400000) + 
premierjanvier.getDay()+1)/7)-1);
}

// Fonction pour déterminer le texte de promotion et son style à insérer en 
fonction des mois et semaines
function InserePromotion(){
	var LaDate = new Date();
	var LAnnee = LaDate.getYear();
	//LAnnee += 2;	// ajustement manuel pour tester les dates futures à 
commenter une fois les tests terminés
	var LeMois = LaDate.getMonth();
	//LeMois += 9;	// ajustement manuel pour tester les dates futures à 
commenter une fois les tests terminés
	var LaSemaine = LaDate.getWeek();
	//LaSemaine += 12;	// ajustement manuel pour tester les dates 
futures à commenter une fois les tests terminés
	//alert('Semaine ' LaSemaine)	//message de vérification de la valeur de la 
semaine
	//alert('Mois' LeMois)	//message de vérification de la valeur du mois
	//alert('Année' LAnnee)	//message de vérification de la valeur de l'année

//Promotions basées sur une durée mensuelle (attention janvier = 0, février = 
1...)
	switch (LeMois) {
	case 6:
	case 7:
	document.write("<div id='ete'>Promotions de <a 
href='promos_ete.html'>l'été</a></div>");
	break;
	case 9:
	document.write("<div id='choucroute'>Promotions de <a 
href='promos_choucroute.html'>Choucroute</a></div>");
	break;
	case 11:
	document.write("<div id='fetes'>Découvrez nos <a 
href='promos_fetes.html'>Spécialités pour les Fêtes</a></div>");
	break;
//	Pour ajouter une ou plusieurs valeurs à tester décommenter les lignes 
suivantes
//	case 2:		// adapter la ou les valeurs de mois à tester
//	case 3:
//	document.write("Texte à insérer");	// ajouter le code html qui devra être 
inséré dans les pages
//	break;
	default: 
	document.write("")	// inutile mais ça permet de gérer un éventuel texte 
par défaut
	break;
	}

//Promotions basées sur une durée hebdomadaire (la première semaine, celle 
qui finit l'année précédente, = 0, la vraie première semaine = 1)
	switch (LaSemaine) {
	case 5:
	case 6:
	case 7:
	document.write("<div id='valentin'>Nos propositions pour la <a 
href='promos_valentin.html'>Saint-Valentin</a></div>");
	break;
//	Pour ajouter une ou plusieurs valeurs à tester décommenter les lignes 
suivantes
//	case 8:		// adapter la ou les valeurs de semaines à tester
//	case 9:
//	document.write("Texte à insérer");	// ajouter le code html qui devra être 
inséré dans les pages
//	break;
	default: 
	document.write("");	// inutile mais ça permet de gérer un éventuel texte 
par défaut
	break;
	}

//Promotions de Pâques - Calcul spécifique à cause de la mobilité de la date
//Détermination préalable de la semaine de Pâques pour les 10 ans à venir (ça 
suffira)
	switch (LAnnee) {
	case 2010:
	var SemainePaques = 13;
	break;
	case 2011:
	var SemainePaques = 16;
	break;
	case 2012:
	var SemainePaques = 14;
	break;
	case 2013:
	var SemainePaques = 13;
	break;
	case 2014:
	var SemainePaques = 16;
	break;
	case 2015:
	var SemainePaques = 14;
	break;
	case 2016:
	var SemainePaques = 12;
	break;
	case 2017:
	var SemainePaques = 15;
	break;
	case 2018:
	var SemainePaques = 13;
	break;
	case 2019:
	var SemainePaques = 16;
	break;
	default: 
	var SemainePaques = 14; //valeur moyenne au cas où...
	break;
	}

if ((LaSemaine >= (SemainePaques - 3)) && (LaSemaine <= (SemainePaques + 
1))) {
	document.write("<div id='paques'>Nos propositions pour <a 
href='promos_paques.html'>Pâques</a></div>");
}

}


-- 
Cordialement, Daniel Cartron
« Quand on plante un oignon sous un saule, on n'obtient pas forcément un 
saule pleureur. »
François Cavanna - Le saviez-vous ?




---
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/