Problème de calendrier

Fermé
ludoc24 Messages postés 6 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 9 mai 2008 - 5 janv. 2008 à 11:02
ludoc24 Messages postés 6 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 9 mai 2008 - 6 janv. 2008 à 13:15
Bonjour,
J'ai un petit problème qui me pourri la vie depuis le passage en 2008! En résumé, j'ai une plateforme de blogs avec un système de calendrier qui permet de naviguer par date dans le blog. J'ai acheté le script de blogs en 2007 et la navigation se faisait parfaitement de mois en mois. Seulement, le calendrier n'a pas du tout apprécié le passage en 2008 --> impossible de repasser en 2007!

Je précise que je suis vraiment novice en programmation!

Code original (qui fonctionnait en 2007) :

<?php
include("../blog_config.php")
;
function get_param($param_name)
{
global $HTTP_POST_VARS;
global $HTTP_GET_VARS;


$param_value = "";
if(isset($HTTP_POST_VARS[$param_name]))
$param_value = $HTTP_POST_VARS[$param_name];
else if(isset($HTTP_GET_VARS[$param_name]))
$param_value = $HTTP_GET_VARS[$param_name];


return $param_value;
}
?>




<?php
if(get_param("lang") == "fr")
{
?>
var day_of_week = new Array('Lun','Mar','Mer','Jeu','Ven','Sam','Dim');
var month_of_year = new Array('Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Decembre');
<?php
}
else
{
?>
var day_of_week = new Array('Mon','Tue','Wen','Thu','Fri','Sat','Sun');
var month_of_year = new Array('January','February','March','April','May','Junu','July','August','September','October','November','December');
<?php
}
?>




function IsNoteDay(x)
{
for(var i=0;i<note_days.length;i++)
{
if(note_days[i] == x)
{
return true;
}
}

return false;
}


var Calendar = new Date();


var year = Calendar.getYear();
<?php
if(get_param("month") != "")
{
?>
var month = <?php echo get_param("month");?>;
<?php
}
else
if(get_param("month2") != "")
{
?>
var month = <?php echo get_param("month2");?>;
<?php
}
else
{
?>
var month = Calendar.getMonth();
<?php
}
?>


var today = Calendar.getDate();
var weekday = Calendar.getDay()-1;


var DAYS_OF_WEEK = 7;
var DAYS_OF_MONTH = 31;
var cal;



Calendar.setDate(1);
Calendar.setMonth(month);




var TR_start = '<TR>';


var TR_end = '</TR>';


var highlight_start = '<TD WIDTH="30"><TABLE <?php if(get_param("month2") == (date("n")-1)) echo 'style="border-style:solid;border-color:red;border-width:1px 1px 1px 1px"';?> ><TR><TD WIDTH=20 style="font-size:9px"><B><CENTER>';


var highlight_end = '</CENTER></TD></TR></TABLE></B>';




var TD_start = '<TD WIDTH="30" style="font-size:9px"><CENTER>';


var TD_end = '</CENTER></TD>';






cal = '<TABLE ><TR><TD style="font-size:9px">';
cal += '<TABLE width=140 style="border-style:solid;border-color:black;border-width:1px 1px 1px 1px" CELLSPACING=0 CELLPADDING=2>' + TR_start;


cal += '<TD COLSPAN="' + DAYS_OF_WEEK + '" style="font-size:9px"><CENTER>';


if((month-1) > 0)
{
cal += '<a href=<?php echo "http://www.".$BLOG_DOMAIN."/";?>blog.php?user='+user+'&month2='+(month-1)+'><<</a>';
}
cal += ' <B>' + month_of_year[month];


if((month+1) < 12)
{
cal += ' </B>  <a href=<?php echo "http://www.".$BLOG_DOMAIN."/";?>blog.php?user='+user+'&month2='+(month+1)+'>>></a>' + TD_end + TR_end;
}








cal += TR_start ;


for(index=0; index < DAYS_OF_WEEK; index++)
{
if(weekday == index)
cal += TD_start + '<B>' + day_of_week[index] + '</B>' + TD_end;
else
cal += TD_start + day_of_week[index] + TD_end;
}


cal += TR_end;
cal += TR_start;






//alert((Calendar.getDate()-1));
<?php
$iWeek = date("w", mktime(0, 0, 0, (get_param("month2")!=""?(get_param("month2")+1):date("n") ) , 1, date("Y")));
if($iWeek == 0) $iWeek = 7;
$iWeek--;
?>
for(index=0; index < <?php echo $iWeek;?>; index++)
{
cal += TD_start + ' ' + TD_end;
}




for(index=0; index < DAYS_OF_MONTH; index++)
{
if( Calendar.getDate() > index )
{


week_day =Calendar.getDay()
-1;



if(week_day == 0)
cal += TR_start;


if(week_day != DAYS_OF_WEEK)
{




var day = Calendar.getDate();




if( today==Calendar.getDate() )
{




if(IsNoteDay(day))
{

cal += highlight_start + "<a href=<?php echo "http://www.".$BLOG_DOMAIN."/";?>blog.php?user="+user+"&month="+month+"¬e_day="+day+"><b>" + day + "</b></a>" + highlight_end + TD_end;
}
else
{
cal += highlight_start + day + highlight_end + TD_end;
}


}

else
{
if(IsNoteDay(day))
{
cal += TD_start + "<a href=<?php echo "http://www.".$BLOG_DOMAIN."/";?>blog.php?user="+user+"&month="+month+"¬e_day="+day+"><b>" + day + "</b></a>" + TD_end;
}
else
{
cal += TD_start + day + TD_end;
}
}
}




if(week_day == DAYS_OF_WEEK)
cal += TR_end;
}




Calendar.setDate(Calendar.getDate()+1);


}


cal += '</TD></TR></TABLE></TABLE>';




document.write(cal);


-------------------

J'ai un peu modifié le code comme ceci :

<?php
include("../blog_config.php")
;
function get_param($param_name)
{
global $HTTP_POST_VARS;
global $HTTP_GET_VARS;


$param_value = "";
if(isset($HTTP_POST_VARS[$param_name]))
$param_value = $HTTP_POST_VARS[$param_name];
else if(isset($HTTP_GET_VARS[$param_name]))
$param_value = $HTTP_GET_VARS[$param_name];


return $param_value;
}
?>




<?php
if(get_param("lang") == "fr")
{
?>
var day_of_week = new Array('Lun','Mar','Mer','Jeu','Ven','Sam','Dim');
var month_of_year = new Array('Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Decembre');
<?php
}
else
{
?>
var day_of_week = new Array('Mon','Tue','Wen','Thu','Fri','Sat','Sun');
var month_of_year = new Array('January','February','March','April','May','Junu','July','August','September','October','November','December');
<?php
}
?>




function IsNoteDay(x)
{
for(var i=0;i<note_days.length;i++)
{
if(note_days[i] == x)
{
return true;
}
}

return false;
}


var Calendar = new Date();


<?php
if(get_param("year2") != "")
{
?>
var year = <?php echo get_param("year2");?>;
<?php
}
else
{
?>
var year = Calendar.getYear();
<?php
}
?>
<?php
if(get_param("month") != "")
{
?>
var month = <?php echo get_param("month");?>;
<?php
}
else
if(get_param("month2") != "")
{
?>
var month = <?php echo get_param("month2");?>;
<?php
}
else
{
?>
var month = Calendar.getMonth();
<?php
}
?>


var today = Calendar.getDate();
var weekday = Calendar.getDay()-1;


var DAYS_OF_WEEK = 7;
var DAYS_OF_MONTH = 31;
var cal;



Calendar.setDate(1);
Calendar.setMonth(month);




var TR_start = '<TR>';


var TR_end = '</TR>';


var highlight_start = '<TD WIDTH="30"><TABLE <?php if(get_param("month2") == (date("n")-1)) echo 'style="border-style:solid;border-color:red;border-width:1px 1px 1px 1px"';?> ><TR><TD WIDTH=20 style="font-size:9px"><B><CENTER>';


var highlight_end = '</CENTER></TD></TR></TABLE></B>';




var TD_start = '<TD WIDTH="30" style="font-size:9px"><CENTER>';


var TD_end = '</CENTER></TD>';






cal = '<TABLE ><TR><TD style="font-size:9px">';
cal += '<TABLE width=140 style="border-style:solid;border-color:black;border-width:1px 1px 1px 1px" CELLSPACING=0 CELLPADDING=2>' + TR_start;


cal += '<TD COLSPAN="' + DAYS_OF_WEEK + '" style="font-size:9px"><CENTER>';


if(month == 0)
{
cal += '<a href=<?php echo "http://www.".$BLOG_DOMAIN."/";?>blog.php?user='+user+'&month2=11&year2='+(year-1)+'><<</a>';
}
else
{
cal += '<a href=<?php echo "http://www.".$BLOG_DOMAIN."/";?>blog.php?user='+user+'&month2='+(month-1)+'&year2='+(year)+'><<</a>';
}


cal += ' <B>' + month_of_year[month] +' '+ year;


if(month == 11)
{
cal += ' </B>  <a href=<?php echo "http://www.".$BLOG_DOMAIN."/";?>blog.php?user='+user+'&month2=0&year2='+(year+1)+'>>></a>' + TD_end + TR_end;
}
else
{
cal += ' </B>  <a href=<?php echo "http://www.".$BLOG_DOMAIN."/";?>blog.php?user='+user+'&month2='+(month+1)+'&year2='+(year)+'>>></a>' + TD_end + TR_end;
}







cal += TR_start ;


for(index=0; index < DAYS_OF_WEEK; index++)
{
if(weekday == index)
cal += TD_start + '<B>' + day_of_week[index] + '</B>' + TD_end;
else
cal += TD_start + day_of_week[index] + TD_end;
}


cal += TR_end;
cal += TR_start;






//alert((Calendar.getDate()-1));
<?php
$iWeek = date("w", mktime(0, 0, 0, (get_param("month2")!=""?(get_param("month2")+1):date("n") ) , 1, (get_param("year2")!=""?get_param("year2"):date("Y"))));
if($iWeek == 0) $iWeek = 7;
$iWeek--;
?>
for(index=0; index < <?php echo $iWeek;?>; index++)
{
cal += TD_start + ' ' + TD_end;
}




for(index=0; index < DAYS_OF_MONTH; index++)
{
if( Calendar.getDate() > index )
{


week_day =Calendar.getDay()
-1;



if(week_day == 0)
cal += TR_start;


if(week_day != DAYS_OF_WEEK)
{




var day = Calendar.getDate();




if( today==Calendar.getDate() )
{




if(IsNoteDay(day))
{

cal += highlight_start + "<a href=<?php echo "http://www.".$BLOG_DOMAIN."/";?>blog.php?user="+user+"&month2="+month+"¬e_day="+day+"&year2="+year+"><b>" + day + "</b></a>" + highlight_end + TD_end;
}
else
{
cal += highlight_start + day + highlight_end + TD_end;
}


}

else
{
if(IsNoteDay(day))
{
cal += TD_start + "<a href=<?php echo "http://www.".$BLOG_DOMAIN."/";?>blog.php?user="+user+"&month2="+month+"¬e_day="+day+"&year2="+year+"><b>" + day + "</b></a>" + TD_end;
}
else
{
cal += TD_start + day + TD_end;
}
}
}




if(week_day == DAYS_OF_WEEK)
cal += TR_end;
}




Calendar.setDate(Calendar.getDate()+1);


}


cal += '</TD></TR></TABLE></TABLE>';




document.write(cal);


--------------------------------

Résultat : le calendrier marche pour 2008 (il marchait déjà avec l'ancien fichier), il m'affiche l'année et les mois correctement, mais si je repasse en décembre 2007, il me donne le calendrier de décembre 2008, et pire, si je repasse en novembre 2007, il me donne jeudi 1, vendredi 2 et... lundi 3!

Qulequ'un aurait-il une piste pour m'aider, car je tourne en rond et ceux qui m'ont vendu le script de base ne semblent pas vouloir m'aider...

Merci beaucoup d'avance à celles et ceux qui pourront m'aider!
A voir également:

6 réponses

Matthia$ Messages postés 364 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 17 mars 2010 78
5 janv. 2008 à 11:16
Excuses moi, mais quelle est l'extension du fichier stp ?
0
ludoc24 Messages postés 6 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 9 mai 2008
5 janv. 2008 à 11:37
sorry! l'extention du fichier est .php
0
Matthia$ Messages postés 364 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 17 mars 2010 78
5 janv. 2008 à 11:47
Dsl, plusieurs parties que je ne comprends pas...
Pour les autres : C'est vraiment QUE du php ?!
0
ludoc24 Messages postés 6 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 9 mai 2008
5 janv. 2008 à 12:30
en fait l'extention du fichier est bien .php. Mais, j'ai regardé un peu plus loin... en fait, le fichier appelé sur les blogs est calendar.js et via un autre fichier, appelle ce fameux fichier .php. Désolé, je suis très novice en la matière!

J'ai trouvé tout de même une solution temporaire sur le fichier que j'ai modifié (le 2ème) :

j'avais donc en début de fichier :

<?php
if(get_param("year2") != "")
{
?>
var year = <?php echo get_param("year2");?>;
<?php
}
else
{
?>
var year = Calendar.getYear(); <?php
}
?>

que j'ai remplacé par

<?php
if(get_param("year2") != "")
{
?>
var year = <?php echo get_param("year2");?>;
<?php
}
else
{
?>
var year = <?php echo date("Y");?>;
<?php
}
?>

Résultat :

le calendrier repasse +/- correctement en 2007, et on peut naviguer dans les blogs. Les dates correspondent bien aux articles postés le jour concerné.

Mais ! (parce qu'il y a un mais)
le nom des jours (lundi, mardi, etc...) ne correspond pas aux jours des mois de 2007...

Je cherche toujours !... Toute idée est la bienvenue lol
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Matthia$ Messages postés 364 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 17 mars 2010 78
5 janv. 2008 à 13:09
<?
	$jour_ang = date ( 'D', mktime(Heure, Minute, Second, Mois, Jour, Année) );
	
	switch($jour_ang) 
	{
		case "Mon":
			$jour_fr = "Lundi";
		break;
		
		case "Tue":
			$jour_fr = "Mardi";
		break;
		
		case "Wed":
			$jour_fr = "Mercredi";
		break;
		
		case "Thu":
			$jour_fr = "Jeudi";
		break;
		
		case "Fri":
			$jour_fr = "Vendredi";
		break;
		
		case "Sat":
			$jour_fr = "Samedi";
		break;
		
		case "Sun":
			$jour_fr = "Dimanche";
		break;
		
		default:
			$jour_fr = "NC";
			
	}
	
	print $jour_fr;
		
?>


Ca te donne le jour en fonction de ta date.
Mais j'aurais du mal a l'incrémenter dans ton truc : je ne connais pas vraiment le javascript.

PS : le mois, et le jour, demandent 2 chiffres
0
ludoc24 Messages postés 6 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 9 mai 2008
6 janv. 2008 à 13:15
Merci Matthia$. Je vais creuser dans ce sens. Je reviens dès que j'ai du neuf!
0