Accueil > > > CALENDRIER PHP
CALENDRIER PHP
Information sur la source
Description
une fonction qui affiche un calendrier sous la forme d'un tableau avec les liens parametres version 1.4.3 mise a jour le 01-02-2006 nouvelle presentation et demo interactive du script sur : http://hrz.free.fr/calendrier/ telechargement direct possible sur le meme site utilisation de la fonction: - usage : @AfficheCalendrier ([$Aff[,$NoMois[,$Annee[,$evenement,$Page[,$CompAf f ]]]]]) fournir obligatoirement les elements precedends , pas de $NoMois sans $Aff ect.. ect.. l'affichage du nom du mois est definit comme un lien interne de la page - les variables d'appel : $Aff valeur 0 :commence l'affichage par Dimanche default 1 $NoMois : le N° du mois à afficher default le mois actuel $Annee : l'annee du mois a afficher default l'annee actuel $evenement : un tableau de donnees pour les liens $Pages : l'adresse de la page a appeller default la page actuel $CompAff : si valeur >0 ,le tableau est complete les liens sont retournes sous la forme : <A HREF="adresse?NoJour=JJ&Mois=MM&Annee=AAAA">
Source
- <?
- /*
- auteur hrz@free.fr
- version 1.4.4 mise a jour 29-05-2006
-
- utilisation de la fonction:
- - usage : @AfficheCalendrier ([$Aff[,$NoMois[,$Annee[,$evenement,$Page[,$CompAff ]]]]])
- fournir obligatoirement les elements precedends , pas de $NoMois sans $Aff ect.. ect..
- l'affichage du nom du mois est definit comme un lien interne de la page
- - les variables d'appel :
- $Aff valeur 0 :commence l'affichage par Dimanche default 1
- $NoMois : le N° du mois à afficher default le mois actuel
- $Annee : l'annee du mois a afficher default l'annee actuel
- $evenement : un tableau de donnees pour les liens
- $Pages : l'adresse de la page a appeller default la page actuel
- $CompAff : si valeur >0 ,le tableau est complete
- les liens sont retournes sous la forme :
- <A HREF="adresse?NoJour=JJ&Mois=MM&Annee=AAAA">
-
- */
- // fonction principale
- function AfficheCalendrier ($Aff=1,$Mois="",$Annee=0,$evenement="",$Page="",$Aff1=0) {
- // definitions complementaires
- $NomDuMois=array("erreur","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
- $Week=array(
- array("d","l","m","M","j","v","s"), // debut d'affichage =dimanche
- array("l","m","M","j","v","s","d") // debut d'affichage =lundi
- );
- // controle pour les valeurs par default
- if ($Aff != "0") { $Aff =1; } // toute autre valeurs que 0 retourne 1
- if ( $Mois >0 or $Mois >13 ) {}else{$Mois=date("n" );}// mois courrant par default
- if ( $Annee == 0 ){$Annee=date("Y");} // annee courrante par default
- if (!isset($Page)) {$Page=$_SERVER['PHP_SELF'];} // script d'appel par default
- // ajustement des variables du script
- $NoJour = -date("w",mktime(0,0,0,$Mois,1,$Annee)); // determine le decalage du 1er dans la semaine
- if ($Aff == 0 ) {$NoJour +=1;}else{$NoJour +=2 ; } // pour l'ajuster suivant l'affichage
- if ($NoJour >1 && $Aff ==1) { $NoJour -=7;} // on s'assure du debut de l'affichage a la 1ere ligne du tableau
- $JourMax =date("t",mktime(0,0,0,$Mois,1,$Annee)); // nombre de jours dans le mois
- $Liens = 0; // compteur du tableau des liens
- $cejour = date("j n Y"); // la date actuelle
- if (!is_array($evenement)) { // fonctionnement erratique si ce n'est pas un tableau
- $evenement= (array) $evenement ;
- }
- @sort($evenement,SORT_NUMERIC ); // le tableau est classe dans l'ordre numeric
- $evenement=@array_unique($evenement) ; // eliminee les doublons
- $evenement= @array_slice($evenement,0); // suprimer les vides
-
- // affichage du debut de calendrier
- print "
- <A class=\"MoisAnnee\"NAME=\"$NomDuMois[$Mois]_$Annee\"> $NomDuMois[$Mois] $Annee </A>
- <TABLE class=\"Mois\">
- <TR class=\"S\">\n";
- for ( $w=0;$w<7;$w++){
- print " <TD class=\"e".$w."\">".strtoupper($Week[$Aff][$w])."</TD> \n";
- }
- print " </TR>\n";
- // creation du calendrier
-
- for ($semaine=1;$semaine <=6;$semaine++) { // 6 semaines par mois
- print " <TR class=\"S$semaine\">\n";
- for ($journee=1;$journee <=7;$journee++) { // 7 jours par semaine
- if ("$NoJour $Mois $Annee"==$cejour) { // est ce le jour actuel ?
- print " <TD class=\"J\">"; // oui on utilise la surbrillance
- }else{
- print " <TD class=\"J".date("w",mktime(0,0,0,$Mois,$NoJour,$Annee))."\">";
- }
- if ($NoJour >0 && $NoJour <= $JourMax ){ // si le jour est valide a afficher
- if (isset($evenement[$Liens]) && $NoJour >0 && $NoJour == $evenement[$Liens]){ // si evenement
- $elements=explode(",",$evenement[$Liens]); // separe les infos
- if ($elements[1]=="") { // si url vide
- $elements[1]= $Page; // url par default
- }
- $pos = strpos($elements[1],"?"); // verifier si l'url contiend des parametres
- if ($pos === false) {
- $elements[1].="?"; // si non on ajoute le ?
- }else{
- $elements[1].="&"; // si oui on complete par &
- }
- // le lien est pret pour l'affichage
- print "<A HREF=\"$elements[1]NoJour=$NoJour&Mois=$Mois&Annee=$Annee \"title=\"$elements[2]\">$elements[0]</A>";
- $Liens++; // incrementer le tableau des liens
- }else{ // sinon juste la date
- print "$NoJour";
- }
- }else{
- if ($Aff1>0) { // si remplir la table
- print "<EM class=\"JComp\"\">"; // afficher une date complementaire au mois en cour
- print date("j",mktime(0,0,0,$Mois,$NoJour,$Annee)); // afficher les joursdu mois prec / suivant
- print "</EM>";
- }else{
- print" "; // afficher un espace si jour non valide
- }
- }
- $NoJour ++; // incremente le jour
- print "</TD>\n"; // on passe au jour suivant
- }
- if ($NoJour > $JourMax){ $semaine ++; } // on echappe la derniere ligne si vide
- print " </TR>\n"; // semaine suivante
- }
- print "</TABLE>\n"; // le mois est affiche
- }
- /****************************************************************/
-
- ?>
<?
/*
auteur hrz@free.fr
version 1.4.4 mise a jour 29-05-2006
utilisation de la fonction:
- usage : @AfficheCalendrier ([$Aff[,$NoMois[,$Annee[,$evenement,$Page[,$CompAff ]]]]])
fournir obligatoirement les elements precedends , pas de $NoMois sans $Aff ect.. ect..
l'affichage du nom du mois est definit comme un lien interne de la page
- les variables d'appel :
$Aff valeur 0 :commence l'affichage par Dimanche default 1
$NoMois : le N° du mois à afficher default le mois actuel
$Annee : l'annee du mois a afficher default l'annee actuel
$evenement : un tableau de donnees pour les liens
$Pages : l'adresse de la page a appeller default la page actuel
$CompAff : si valeur >0 ,le tableau est complete
les liens sont retournes sous la forme :
<A HREF="adresse?NoJour=JJ&Mois=MM&Annee=AAAA">
*/
// fonction principale
function AfficheCalendrier ($Aff=1,$Mois="",$Annee=0,$evenement="",$Page="",$Aff1=0) {
// definitions complementaires
$NomDuMois=array("erreur","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
$Week=array(
array("d","l","m","M","j","v","s"), // debut d'affichage =dimanche
array("l","m","M","j","v","s","d") // debut d'affichage =lundi
);
// controle pour les valeurs par default
if ($Aff != "0") { $Aff =1; } // toute autre valeurs que 0 retourne 1
if ( $Mois >0 or $Mois >13 ) {}else{$Mois=date("n" );}// mois courrant par default
if ( $Annee == 0 ){$Annee=date("Y");} // annee courrante par default
if (!isset($Page)) {$Page=$_SERVER['PHP_SELF'];} // script d'appel par default
// ajustement des variables du script
$NoJour = -date("w",mktime(0,0,0,$Mois,1,$Annee)); // determine le decalage du 1er dans la semaine
if ($Aff == 0 ) {$NoJour +=1;}else{$NoJour +=2 ; } // pour l'ajuster suivant l'affichage
if ($NoJour >1 && $Aff ==1) { $NoJour -=7;} // on s'assure du debut de l'affichage a la 1ere ligne du tableau
$JourMax =date("t",mktime(0,0,0,$Mois,1,$Annee)); // nombre de jours dans le mois
$Liens = 0; // compteur du tableau des liens
$cejour = date("j n Y"); // la date actuelle
if (!is_array($evenement)) { // fonctionnement erratique si ce n'est pas un tableau
$evenement= (array) $evenement ;
}
@sort($evenement,SORT_NUMERIC ); // le tableau est classe dans l'ordre numeric
$evenement=@array_unique($evenement) ; // eliminee les doublons
$evenement= @array_slice($evenement,0); // suprimer les vides
// affichage du debut de calendrier
print "
<A class=\"MoisAnnee\"NAME=\"$NomDuMois[$Mois]_$Annee\"> $NomDuMois[$Mois] $Annee </A>
<TABLE class=\"Mois\">
<TR class=\"S\">\n";
for ( $w=0;$w<7;$w++){
print " <TD class=\"e".$w."\">".strtoupper($Week[$Aff][$w])."</TD> \n";
}
print " </TR>\n";
// creation du calendrier
for ($semaine=1;$semaine <=6;$semaine++) { // 6 semaines par mois
print " <TR class=\"S$semaine\">\n";
for ($journee=1;$journee <=7;$journee++) { // 7 jours par semaine
if ("$NoJour $Mois $Annee"==$cejour) { // est ce le jour actuel ?
print " <TD class=\"J\">"; // oui on utilise la surbrillance
}else{
print " <TD class=\"J".date("w",mktime(0,0,0,$Mois,$NoJour,$Annee))."\">";
}
if ($NoJour >0 && $NoJour <= $JourMax ){ // si le jour est valide a afficher
if (isset($evenement[$Liens]) && $NoJour >0 && $NoJour == $evenement[$Liens]){ // si evenement
$elements=explode(",",$evenement[$Liens]); // separe les infos
if ($elements[1]=="") { // si url vide
$elements[1]= $Page; // url par default
}
$pos = strpos($elements[1],"?"); // verifier si l'url contiend des parametres
if ($pos === false) {
$elements[1].="?"; // si non on ajoute le ?
}else{
$elements[1].="&"; // si oui on complete par &
}
// le lien est pret pour l'affichage
print "<A HREF=\"$elements[1]NoJour=$NoJour&Mois=$Mois&Annee=$Annee \"title=\"$elements[2]\">$elements[0]</A>";
$Liens++; // incrementer le tableau des liens
}else{ // sinon juste la date
print "$NoJour";
}
}else{
if ($Aff1>0) { // si remplir la table
print "<EM class=\"JComp\"\">"; // afficher une date complementaire au mois en cour
print date("j",mktime(0,0,0,$Mois,$NoJour,$Annee)); // afficher les joursdu mois prec / suivant
print "</EM>";
}else{
print" "; // afficher un espace si jour non valide
}
}
$NoJour ++; // incremente le jour
print "</TD>\n"; // on passe au jour suivant
}
if ($NoJour > $JourMax){ $semaine ++; } // on echappe la derniere ligne si vide
print " </TR>\n"; // semaine suivante
}
print "</TABLE>\n"; // le mois est affiche
}
/****************************************************************/
?>
Conclusion
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//FR"> <html> <head> <meta name="generator" content="HTML Tidy for Windows (vers 1st September 2004), see www.w3.org"> <meta http-equiv="content-language" content="fr"> <title>utilisation de la fonction AfficheCalendrier</title> <meta name="keywords" content="script fonction php affichage calendrier agenda"> <meta name="author" content="hrz"> <meta http-equiv="Reply-to" content="hrz@free.fr"> <link rel="stylesheet" href="base.css" type="text/css"> <link rel="stylesheet" href="AfficheCalendrier.css" type="text/css"> </head> <body > <div align="center"><p >Utilisez cette fonction php pour creer votre calendrier<br /> y definir des liens pour en faire un agenda ou autre<br /> la fonction les retournera sous la forme suivante:<br /> <font color="#FF0000"><A HREF="adresse?NoJour=JJ&Mois=MM&Annee=AAAA"><br /></font> et utilisez sa feuille de style pour en modifier l'affichage </p> </div> <p>Un exemple d'utilisation de la fonction AfficheCalendrier v1.3 du 1 janvier 2005<br /> suivre un liens pour les infos de Debug <br />
<p><A href="archives/AfficheCalendrier-1.3.zip" title="essaie">Telecharger le zip </A> de la derniere version</p> <p>Retrouvez <A href="archives/" title="essaie">les archives de la fonction</a></p>
</p> <?php include 'AfficheCalendrier.php'; // instalation de la fonction
// exemple 1: affichage de l'annee avec liens // cet exemple affichera l'annee en 4 trimestres avec des liens different pour chaques mois $Annee=date("Y"); // definis l'annee en cour $Page = 'UtiliserCalendrier.php'; // a redefinir suivant vos script $evenement = array ( // le tableau des liens tries dans l'ordre des dates 1 => array( 0=>"1,1erJanvier.html,bonne annee", // date, page, infos 1=>"2,".$_SERVER['PHP_SELF'].",", // date, page "3,,suivre le lien", // date, page default, halt 5,7,10, // date seules "15,test.php,juste pour voir", 20,25,30 ), 2 => array(1,2,3,27), 3 => array(5), 4 => array(8,12,15,16), 5 => array(5,7,9,13,16,18,22), 6 => array(2,5,9,12,25), 7 => array(8,12), 8 => array(15,21,25,29), 9 => array(1,5,9), 10 => array(6,10), 11 => array(25), 12 => array(13,15,19)
);print "<table width=\"100%\" border=0 >\n"; for ($trimestre=0;$trimestre<=3;$trimestre++){ print "<tr>\n"; for ($Mois=1;$Mois<=3;$Mois++){ $MoisEncour= $Mois+($trimestre*3); print"<td align=\"center\">\n"; // appel de la fonction avec tous les parametres @AfficheCalendrier(0,$MoisEncour,$Annee,$evenement [$MoisEncour],$Page); // @AfficheCalendrier(0,
} print "</tr>\n"; } print "</table>\n";
/* // exemple 2: appel minimum de la fonction , elle affichera le mois en cour sans liens @AfficheCalendrier() // c'est tout ! */ ?>
</body> </html>
Historique
- 13 juillet 2004 18:47:33 :
- - une modification de l'affichage
- quelques petites modifs sur la feuille de style
- une modification du code exemple pour coller a une remarque
- 17 octobre 2004 08:22:41 :
- 07 novembre 2004 12:25:44 :
- une petite correction dans l'affichage :
pas de semaine vide!
- 21 novembre 2004 09:28:03 :
- la demo a changer de place
- 21 novembre 2004 09:31:08 :
- -
- 01 janvier 2005 14:08:03 :
- les liens et le titre des liens peuvent etre definies individuellement
compatible avec versions precedente
les selecteur 'id'* deviennent 'class' pour une compatibilitee W3C
correction de l'ecriture des pages et des fichiers *.css
AfficheCalendrier.css est a corriger ; exemple:
tr#S0 {} se transforme en tr.S0 {} ; les '#' deviennent des '.'
*le nom du selecteur id ne peut etre utilise q'une seule fois
- 01 janvier 2005 14:11:22 :
- oups pas le bon zip
- 01 janvier 2005 14:11:31 :
- oups pas le bon zip
- 01 janvier 2005 14:11:46 :
- oups pas le bon zip
- 02 janvier 2005 08:16:20 :
- on devrait pas travailler un 1er janvier
il restait des lignes inutiles dans le code
- 15 février 2005 08:25:00 :
- version 1.4 et toute les infos dans le zip
supression du @
complement et personalisation des liens
passage d'une partie parametres possible
- 15 février 2005 08:28:03 :
- 04 février 2006 17:05:54 :
- les pre-requis de la variable $evenement ont ete fixes dans la fonction pour limiter les bugs
- 29 mai 2006 18:11:03 :
- une erreur pouvait aparaitre si la fonction etait appelee sans la variable $Annee
un bug de classement du tableau de liens
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
preview d'un formulaire [ par netwebzone ]
Bonjour,Je ne sais pas si je suis dans le bon forum, parce que j'utilise PHP et javascript et je ne sais pas ou est vraiment le problème... je m'expli
Calendrier php synchronisable avec outlook [ par lovic75 ]
Bonjour,Je souhaiterais créer un agenda en ligne pour trois personnes, (en faite 3 agenda), ceux-ci doivent être synchronisable avec outlook, j'ai fai
Calendrier cliquable php [ par ninho44 ]
Bonjour a tous...Voila je fais un site intranet en PHP, et pour remplir un champ de date j'aimerai faire un calendrier (comme pour réserver un billet
fonction fsockopen [ par chevallier37 ]
bonjour , je viens de configurer ( presque ) un serveur dédié sous debian etch , apache2, php5 , je souhaite utiliser la fonction fsockopen mais voilà
fonction et require [ par cha7ri ]
bonjourje suis un d"butant en php voila mon code6 <?require("fuction.php"); //line7 <font si
fonction php + supprimer des mots dans une chaine [ par hadjiphp ]
Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : je cherche une fonction
Faire exécuter fonction Javascript en PHP [ par cla85 ]
Bonjour, Je développe actuellement un site pour un salon sur lequel apparait un formulaire d'inscription des visiteurs. Mon formulaire est composé de
Retourner un require dans une fonction [ par agparchitecture ]
Bonjour à tous,Je m'amuse un peu avec php pour le moment et je me pose une question.Dans le cas ou je définit un fonction dans laquelle il existe un r
JQuery + PHP + enregistrer l'état [ par geek1983 ]
Bonjour, j'utilise PHP et JQuery. J'aimerais enregistrer l'état d'une fonction jquery dans un cookie ou une session.Je m'explique. Voici une fonction
Thunderbird ... [ par The_Goion ]
Bonjour tout le monde !!!Bon alors voila je débute en PHP et je suis à la recherche d'une fonction PHP (bien sur !!) qui "piloterait" Thunderbird.J'ai
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : SONDAGE..RE : SONDAGE.. par phpAnonyme
Cliquez pour lire la suite par phpAnonyme RE : SONDAGE..RE : SONDAGE.. par TychoBrahe
Cliquez pour lire la suite par TychoBrahe
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|