begin process at 2012 05 27 22:01:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > CALENDRIER SIMPLE, FACILEMENT MODIFIABLE, AFFICHAGE COMPLET

CALENDRIER SIMPLE, FACILEMENT MODIFIABLE, AFFICHAGE COMPLET


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Classé sous :calendrier, sobre, clair, modifiable, simple Niveau :Débutant Date de création :12/05/2007 Date de mise à jour :13/05/2007 11:57:13 Vu :28 728

Auteur : greenzest

Ecrire un message privé
Site perso
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

Bonjour,

Je vous propose pas quelque chose de révolutionnaire, mais bon... En fait j'avais besoin d'un petit script pour afficher un calendrier pour ensuite y ajouter la mise en forme et les liens evenements mais j'ai trouvé que des calendriers tout fait utilisant une bdd ou alors des tout simples mais au code  pas très simple ( et surtout pas très clair ) donc voilà j'en ai fais un maison.

La seule particularité c'est qu'il afficher aussi les dates des jours du mois d'avant et celui d'après ( c'est pas très clair? allez voir le lien vous comprendrez ). Je les ais affiché dans une couleur plus claire pour qu'ils apparaissent moins, mais bon le but c'est que vous modifiez le code à votre envie donc je suis pas allez cherché loin.

Le lien pour tester :
http://pproject.webzzanine.net/calendrier.php

L e code :

Source

  • <?php
  • // Récuperation des variables passées, on donne soit année; mois; année+mois
  • if(!isset($_GET['mois'])) $num_mois = date("n"); else $num_mois = $_GET['mois'];
  • if(!isset($_GET['annee'])) $num_an = date("Y"); else $num_an = $_GET['annee'];
  • // pour pas s'embeter a les calculer a l'affchage des fleches de navigation...
  • if($num_mois < 1) { $num_mois = 12; $num_an = $num_an - 1; }
  • elseif($num_mois > 12) { $num_mois = 1; $num_an = $num_an + 1; }
  • // nombre de jours dans le mois et numero du premier jour du mois
  • $int_nbj = date("t", mktime(0,0,0,$num_mois,1,$num_an));
  • $int_premj = date("w",mktime(0,0,0,$num_mois,1,$num_an));
  • // tableau des jours, tableau des mois...
  • $tab_jours = array("","Lu","Ma","Me","Je","Ve","Sa","Di");
  • $tab_mois = array("","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
  • $int_nbjAV = date("t", mktime(0,0,0,($num_mois-1<1)?12:$num_mois-1,1,$num_an)); // nb de jours du moi d'avant
  • $int_nbjAP = date("t", mktime(0,0,0,($num_mois+1>12)?1:$num_mois+1,1,$num_an)); // b de jours du mois d'apres
  • // on affiche les jours du mois et aussi les jours du mois avant/apres, on les indique par une * a l'affichage on modifie l'apparence des chiffres *
  • $tab_cal = array(array(),array(),array(),array(),array(),array()); // tab_cal[Semaine][Jour de la semaine]
  • $int_premj = ($int_premj == 0)?7:$int_premj;
  • $t = 1; $p = "";
  • for($i=0;$i<6;$i++) {
  • for($j=0;$j<7;$j++) {
  • if($j+1 == $int_premj && $t == 1) { $tab_cal[$i][$j] = $t; $t++; } // on stocke le premier jour du mois
  • elseif($t > 1 && $t <= $int_nbj) { $tab_cal[$i][$j] = $p.$t; $t++; } // on incremente a chaque fois...
  • elseif($t > $int_nbj) { $p="*"; $tab_cal[$i][$j] = $p."1"; $t = 2; } // on a mis tout les numeros de ce mois, on commence a mettre ceux du suivant
  • elseif($t == 1) { $tab_cal[$i][$j] = "*".($int_nbjAV-($int_premj-($j+1))+1); } // on a pas encore mis les num du mois, on met ceux de celui d'avant
  • }
  • }
  • ?>
  • <html>
  • <head><title>Calendrier</title>
  • </head>
  • <body>
  • <table>
  • <tr><td colspan="7" align="center"><a href="calendrier.php?mois=<?php echo $num_mois-1; ?>&amp;annee=<?php echo $num_an; ?>">&lt;&lt;</a>&nbsp;&nbsp;<?php echo $tab_mois[$num_mois]; ?>&nbsp;&nbsp;<a href="calendrier.php?mois=<?php echo $num_mois+1; ?>&amp;annee=<?php echo $num_an; ?>">>></a></td></tr>
  • <tr><td colspan="7" align="center"><a href="calendrier.php?mois=<?php echo $num_mois; ?>&amp;annee=<?php echo $num_an-1; ?>">&lt;&lt;</a>&nbsp;&nbsp;<?php echo $num_an; ?>&nbsp;&nbsp;<a href="calendrier.php?mois=<?php echo $num_mois; ?>&amp;annee=<?php echo $num_an+1; ?>">>></a></td></tr>
  • <?php
  • echo'<tr>';
  • for($i = 1; $i <= 7; $i++){
  • echo('<td>'.$tab_jours[$i].'</td>');
  • }
  • echo'</tr>';
  • for($i=0;$i<6;$i++) {
  • echo "<tr>";
  • for($j=0;$j<7;$j++) {
  • echo "<td".(($num_mois == date("n") && $num_an == date("Y") && $tab_cal[$i][$j] == date("j"))?' style="color: #FFFFFF; background-color: #000000;"':null).">".((strpos($tab_cal[$i][$j],"*")!==false)?'<font color="#aaaaaa">'.str_replace("*","",$tab_cal[$i][$j]).'</font>':$tab_cal[$i][$j])."</td>";
  • }
  • echo "</tr>";
  • }
  • ?>
  • </table>
  • </body>
  • </html>
<?php
// Récuperation des variables passées, on donne soit année; mois; année+mois
if(!isset($_GET['mois'])) $num_mois = date("n"); else $num_mois = $_GET['mois'];
if(!isset($_GET['annee'])) $num_an = date("Y"); else $num_an = $_GET['annee'];

// pour pas s'embeter a les calculer a l'affchage des fleches de navigation...
if($num_mois < 1) { $num_mois = 12; $num_an = $num_an - 1; }
elseif($num_mois > 12) {	$num_mois = 1; $num_an = $num_an + 1; }

// nombre de jours dans le mois et numero du premier jour du mois
$int_nbj = date("t", mktime(0,0,0,$num_mois,1,$num_an));
$int_premj = date("w",mktime(0,0,0,$num_mois,1,$num_an));

// tableau des jours, tableau des mois...
$tab_jours = array("","Lu","Ma","Me","Je","Ve","Sa","Di");
$tab_mois = array("","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");

$int_nbjAV = date("t", mktime(0,0,0,($num_mois-1<1)?12:$num_mois-1,1,$num_an)); // nb de jours du moi d'avant
$int_nbjAP = date("t", mktime(0,0,0,($num_mois+1>12)?1:$num_mois+1,1,$num_an)); // b de jours du mois d'apres

// on affiche les jours du mois et aussi les jours du mois avant/apres, on les indique par une * a l'affichage on modifie l'apparence des chiffres *
$tab_cal = array(array(),array(),array(),array(),array(),array()); // tab_cal[Semaine][Jour de la semaine]
$int_premj = ($int_premj == 0)?7:$int_premj;
$t = 1; $p = "";
for($i=0;$i<6;$i++) {
	for($j=0;$j<7;$j++) {
		if($j+1 == $int_premj && $t == 1) { $tab_cal[$i][$j] = $t; $t++; } // on stocke le premier jour du mois
		elseif($t > 1 && $t <= $int_nbj) { $tab_cal[$i][$j] = $p.$t; $t++; } // on incremente a chaque fois...
		elseif($t > $int_nbj) { $p="*"; $tab_cal[$i][$j] = $p."1"; $t = 2; } // on a mis tout les numeros de ce mois, on commence a mettre ceux du suivant
		elseif($t == 1) { $tab_cal[$i][$j] = "*".($int_nbjAV-($int_premj-($j+1))+1); } // on a pas encore mis les num du mois, on met ceux de celui d'avant
	}
}
?>

<html>
<head><title>Calendrier</title>
</head>
<body>
<table>
	<tr><td colspan="7" align="center"><a href="calendrier.php?mois=<?php echo $num_mois-1; ?>&amp;annee=<?php echo $num_an; ?>">&lt;&lt;</a>&nbsp;&nbsp;<?php echo $tab_mois[$num_mois];  ?>&nbsp;&nbsp;<a href="calendrier.php?mois=<?php echo $num_mois+1; ?>&amp;annee=<?php echo $num_an; ?>">>></a></td></tr>
	<tr><td colspan="7" align="center"><a href="calendrier.php?mois=<?php echo $num_mois; ?>&amp;annee=<?php echo $num_an-1; ?>">&lt;&lt;</a>&nbsp;&nbsp;<?php echo $num_an;  ?>&nbsp;&nbsp;<a href="calendrier.php?mois=<?php echo $num_mois; ?>&amp;annee=<?php echo $num_an+1; ?>">>></a></td></tr>
	<?php
	echo'<tr>';
	for($i = 1; $i <= 7; $i++){
		echo('<td>'.$tab_jours[$i].'</td>');
	}
	echo'</tr>';

	for($i=0;$i<6;$i++) {
		echo "<tr>";
		for($j=0;$j<7;$j++) {
			echo "<td".(($num_mois == date("n") && $num_an == date("Y") && $tab_cal[$i][$j] == date("j"))?' style="color: #FFFFFF; background-color: #000000;"':null).">".((strpos($tab_cal[$i][$j],"*")!==false)?'<font color="#aaaaaa">'.str_replace("*","",$tab_cal[$i][$j]).'</font>':$tab_cal[$i][$j])."</td>";
		}
		echo "</tr>";
	}
	?>
</table>
</body>
</html>

 Conclusion

Voilà, voilà n'hésitez pas à critiquer ^^


 Historique

12 mai 2007 19:09:51 :
( Màj : Oubli du lien test )
12 mai 2007 21:07:51 :
-----
13 mai 2007 11:57:13 :
( Màj : highlight du jour )

 Sources du même auteur

CAPTCHA, GENERATEUR UNE IMAGE AVEC LE CODE VOULUT ( SYSTEME ...

 Sources de la même categorie

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000

 Sources en rapport avec celle ci

COMPTEUR DE VISITE - FICHIER TXT - CODE MINIMAL par SuperChouquette
Source avec Zip Source avec une capture CALENDRIER RÉSERVATION POUR CHAMBRES D'HÔTES EN PHP MYSQL par oallais
Source avec Zip CALENDRIER par gabay
Source avec Zip LIVRE D'OR (PHP/MYSQL) par christo_59
Source avec Zip Source avec une capture SIMPLECALENDRIER par yannvag

Commentaires et avis

Commentaire de greenzest le 12/05/2007 19:08:09

Zut, on ne peut pas modifier la source après l'avoir posté?
Bon j'ai oublié le lien pour allez voir ce que ça donne :
http://pproject.webzzanine.net/calendrier.php

Commentaire de wizad le 12/05/2007 23:13:20

J'ai pas regardé le code mais juste la démo. Dommage qu'il ne met pas en valeur le jour courant.

Commentaire de greenzest le 13/05/2007 11:58:04

Il suffisait de demander ^^
J'ai mis le jour courant en noir sur blanc; à modifier celon vos envies

Commentaire de phenixjl le 15/05/2007 22:40:40

C'est très bien!
c'est un peu ce que je cherchais...

sobre et clair...

Commentaire de Cil20 le 17/05/2007 10:53:09

Je confirme, c'est simple, clair et fonctionnel. J'en demandais pas plus...
Et chouette y a pas de javascript dans le code.

Mercu pour cette source.

Commentaire de wizad le 17/05/2007 10:59:58

J'ai failli mêttre une bonne note mais finalement non : je note pas pour l'instant car ce n'est pas du xhtml (quel horreur des td dans tous les sens).

Commentaire de greenzest le 23/05/2007 18:35:23

Ils ne sont pas mis au hasard mes td ^^"
C'est du html point, je ne vois pas le problème que pose un td mais bon. Faut que tu m'expliques ce que je dois mettre pour que ça te convienne; la modification ne doit pas vraiment être énorme...

Commentaire de omman95 le 26/06/2007 13:09:51

Bonjour est-il possible de rendre le calendrier dynamique? Je m'explique: je peux recuperer des données de ma base en faisant :

$requete_article = mysql_query('SELECT * FROM article');
while ($donnees_article = mysql_fetch_assoc($requete_article)){
echo $donnees_article["date_parution"];
}

je ne vois pas où mettre (dans le for, le if ou le while) la condition :
si la date == "$donnees_article["date_parution"]" alors le jour à une class css qui le rend vert par exemple dans un premier temps. suivant cette méthode j'ajouterais aussi un <a href="newsdu15062007.php"> par exemple pour que la date soit cliquable vers l'article.

Si quelqu'un peut me conseiller merci beaucoup.

Commentaire de greenzest le 28/06/2007 22:33:30

for($i=0;$i<6;$i++) {
   echo "<tr>";
   for($j=0;$j<7;$j++) {
      echo "<td".(($num_mois == date("n") && $num_an == date("Y") && $tab_cal[$i][$j] == date("j"))?' style="color: #FFFFFF; background-color: #000000;"':null).">".((strpos($tab_cal[$i][$j],"*")!==false)?'<font color="#aaaaaa">'.str_replace("*","",$tab_cal[$i][$j]).'</font>':$tab_cal[$i][$j])."</td>";
// c'est à cette ligne que tu ajoutes le modificateur de la cellule
   }
   echo "</tr>";
}

Par exemple :

for($i=0;$i<6;$i++) {
   echo "<tr>";
   for($j=0;$j<7;$j++) {
      $sidatedujour = (($num_mois == date("n") && $num_an == date("Y") && $tab_cal[$i][$j] == date("j"))?' style="color: #FFFFFF; background-color: #000000;"':null);
        $datej = $num_an.$num_mois.$tab_cal[$i][$j];
        if($datej == $donnees_article["date_parution"]) {
             $sievenement = ' style="color: #FFFFFF; background-color: green;"';
             $link = '<a href="http://newsdu'.$datej.'">'.$tab_cal[$i][$j].'</a>';
        }
      echo "<td".$sidatedujour.">".((strpos($tab_cal[$i][$j],"*")!==false)?'<font color="#aaaaaa">'.str_replace("*","",$tab_cal[$i][$j]).'</font>':((isset($link))$link?$tab_cal[$i][$j]))."</td>";
   }
   echo "</tr>";
}

avec $donnees_article["date_parution"] = 070628; //aammjj

Voilà en gros ce que ça peut donner. Désolé je te donne vraiment un code "vite fait"; améliore le ça vaudra mieux...

Bybye

Commentaire de MisterMatik le 27/01/2009 15:20:02 8/10

Salut,

Déjà ton script est super!! Bravo
J'ai une question sur une éventuelle amélioration que je voudrai faire pour mon site.
Donc je voudrai si possible que tu m'explique comment mettre un lien sous les chiffres pour qu'on puisse lire l'évènement de ce jour.

J'attends ta réponse

Merci.

Commentaire de Ludococo le 11/08/2009 14:52:44

Salut,

je suis un grand débutant en php et c'est exactement ce que je rechercher pour mon site. Seul soucis lorsque j'intègre le code dans ma page, je n'ai pas de calendrier qui s'affiche mais le code lui-même !?!?
Peut-être y aurait-il quelque chose que j'ai oublié de faire donc si quelqu'un pouvait me dire où se situe mon erreur cela m'enlèverai une grande épine du pied.

Merci

Commentaire de Dark_YudeX le 14/12/2009 22:19:40

Ce Calendrier est extra, il est une excellente base de développement de calendriers bien plus bourrins avec accès base de données personnalisés !! Vous avez fait gagner un temps précieux sur un projet en retard. Merci beaucoup pour ce calendrier.

Commentaire de apz le 30/05/2010 21:35:28

le lien de test donne une erreur !

http://pproject.webzzanine.net/calendrier.php

Commentaire de nsoufiane le 07/05/2011 17:06:29

Bonjour

Je suis un débutant en PHP, je veux savoir comment on peut ajouter des événements dans la calendrier (est ce possibe ?)

Merci

Commentaire de sofabe le 25/06/2011 11:21:26

Bonjour,
je ne trouve pas tte la source du code..
Pourriez vous mettre les img?
Cdlt.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

calendrier multi utilisateurs très simple ? [ par pti_suisse ] bonjour, en fait voila j'aimerais mettre sur mon site un espace ou l'on pourrait cr&#233;&#233; son calendrier et changer les couleur de certaines cel Tableau Modifiable [ par Firemetal ] Bonjour,Voilà, j'ai besoin de votre aide :)Je m'y connais peu en php, et je ne sais pas si le html ne serait pas plus simple pour faire ce que je dois CALENDRIER de réservation. [ par ouadzi ] Bonjour &#224; tous, Dans le cadre d'un cr&#233;ation d'un site web pour un g&#238;te fran&#231;ais, je souhaitais int&#233;grer un simple calendrier Besoin d'un conseil (Simple) [ par hitman00 ] Coucou&nbsp;a tous ceux qui lirons cette question Donc j'ai une petite question ,sur un serveur j'ai une base sql serveur et j'aimerais m'y connecter EasyPhp question simple [ par hitman00 ] Coucou .Est il possible de se connecter a une base de donn&#233;e se trouvant sur un serveur distant avec easyPhP ? question simple dur l'action d'un formulaire [ par developvbdebut ] Bonjour tout le monde&nbsp;Je voudrais m&#234;ttre mon script php en&nbsp;dessou du formulaire, j'ignore quoi mettre dans l'action du formulaire.Voici Un p'tit code simple mais je sais pas comment le faire ! [ par N e x u m ] Salut,je voudrais avoir un simple code SANS MYSQL (Si possible) Qui garde le même design dans chaque pageAdmettons on a un design (Un look, un interfa Help me....travaille en php "simple" mais payé.....!! [ par Maniac ] Salut,voila je n'y connais rien du tout en php, mais je dois "simplement" faire un forum pour un client pour qui je developpe son site...Si qq1 savait code simple pour formulaire [ par bernard ] bonsoir à tous, je suis débutant de chez débutant et j'ai besoin d'aide.je voudrais réaliser un programme en php.il s'agit d'un formulaire où le visit PROBLEME SIMPLE [ par g0belin ] sa me repond sa---------------------------ERREUR--------------------Réponse serveur SQL : You have an error in your SQL syntax near '@msn.com, 1234567


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales