begin process at 2012 02 12 20:06:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > CALENDRIER PHP

CALENDRIER PHP


 Information sur la source

Note :
6 / 10 - par 12 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Classé sous :fonction, php, calendrier, agenda, news Niveau :Initié Date de création :29/04/2004 Date de mise à jour :29/05/2006 18:11:03 Vu / téléchargé :74 354 / 7 406

Auteur : hrz

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

 Description

Cliquez pour voir la capture en taille normale
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\">&nbsp;$NomDuMois[$Mois] $Annee&nbsp;</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&amp;Mois=$Mois&amp;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"&nbsp;"; // 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\">&nbsp;$NomDuMois[$Mois] $Annee&nbsp;</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&amp;Mois=$Mois&amp;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"&nbsp;";                                          // 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>

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 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

Source avec Zip AVANCER OU REMONTER LE TEMP
ECRIVEZ SIMPLEMENT VOS BOITES LISTE DEROULANTE
EXPLORATEUR DE REPERTOIRES EN PHP

 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

 Sources en rapport avec celle ci

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALENDRIER SIMPLE par manuche
Source avec Zip Source avec une capture CALENDRIER + AGENDA TRÈS SIMPLE (GERER LES JOURS FÉRIÉS ET L... par mondherclubiste
Source avec une capture CALENDRIER DES RÉSERVATIONS EN PHP par mathieubond
Source avec Zip CLASSE CALENDRIER OPTIMISÉE POO par ganjamannicoweb

Commentaires et avis

Commentaire de DreamPush le 29/04/2004 22:48:59

J'attends ce que tu nous promet concernant les liens externes, ça pourrait alors TB...

Bon coding

[}:)] DreamPush [}:)]

Commentaire de jeff le 30/04/2004 11:22:34

pour les liens externes, il te suffit de les mettre dans un tableau $evenement($liens)

Commentaire de hrz le 30/04/2004 17:15:43

a jeff
effectivement c'etait une solution  javais pas eus ton msg avant ma 1ere maj  mais ce n'est pas celle que j'ais retenue

a DreamPush
voila c'est fait

a tous
je prevoit de faire varier l'aspect et l'affichage

Commentaire de hrz le 02/05/2004 13:38:16

version 1.1 dispo a l'adresse
http://hrz.free.fr/Scripts/AfficheCalendrier/AfficheCalendrier-1.1.zip

Commentaire de mo.kain le 28/06/2004 08:46:56

Bonjour,
j'ai apporté une petite amélioration sur les liens externes de ton script.

La modif du code permet de préciser des dates différentes pour chaque mois....

C'est pas grand chose mais c'est super pratique !

Donc :

$evenement = array (
1 =&gt; array(1,2,4,12),
2 =&gt; array(1,2,3,27),
3 =&gt; array(5),
4 =&gt; array(8,12,15,16),
5 =&gt; array(5,7,9,13,16,18,22),
6 =&gt; array(2,5,9,12,25),
7 =&gt; array(8,12),
8 =&gt; array(15,21,25,29),
9 =&gt; array(1,5,9),
10 =&gt; array(6,10),
11 =&gt; array(25),
12 =&gt; array(13,15,19)
);

et  :

    if (isset($evenement[$Mois][$Liens]) && $NoJour &gt;0 && $NoJour == $evenement[$Mois][$Liens]){
        echo "&lt;A class='lien_cal' HREF=".$PHP_SELF."?page=".PATH_MODULES_CALENDRIER."evenements&NoJour=$NoJour&Mois=$Mois&Annee=$Annee&gt;".$NoJour."&lt;/A&gt;"; // s'il existe afficher le liens
        $Liens++;  // incrementer le tableau des liens
        }else{
        print "$NoJour";
      }

Voila !
J'espere que  c'est claire... c'est la première fois que je poste un truc sur ce site !!!

Bonne journée à tous

Commentaire de hrz le 30/06/2004 17:45:04

bien vue pour l'idee de passe un tableau de tableaux :) ,j'avais pas chercher dans ce sens la ,mon idee etait de traite les mois un par un et dans le script exemple j'ai utilise toujours le meme tableau de liens .
bien vue tu passe tout dans la meme boucle et simplifie le code par la meme pour les affichages de plusieurs mois.
pour la 2eme partie de la modif c'est moin clair ,a quel niveaux tu la fait (j'ai pas encore fait les tests ) je pense dans la partie fonction ?
explique un peut plus stp
avant que je l'inclu dans le zip

Commentaire de hrz le 03/07/2004 16:18:33

desole pour la modif elle est bonne en elle meme mais je ne la passe pas sur le zip :
1 elle concerne plus specialement le script test (exemple pour afficher une annee voir ci dessus)
2 la modif dans la fonction rend celle ci - passe partout voir plus du tout (j'ai d'autre utilisation perso avec celle ci et ca ne marche pas avec )
3 =".PATH_MODULES_CALENDRIER." est en fait gerer dirrectement dans la version 1.1 en telechargement avec la variable $Page

mon idee est de traiter les mois un par un avec un passage des evenement pour chaque

bien que moin universelle ton idee reste bonne pour le script exemple :)

Commentaire de pgpp le 06/07/2004 11:13:07

Juste un ptit détail... qui m'a quand même surpris (j'ai jamais vu ça) :
Au lieu d'écrire :
if (isset($Mois)) {}else{$Mois=date("n" );}
Pourquoi n'écris-tu pas :
if (!isset($Mois)) $Mois=date("n" );

Je trouve ça plus... logique, non ?

Commentaire de hrz le 06/07/2004 21:06:25

si le mois est demande alors utiliser celui ci
sinon prendre le mois en cour

bon d'accord ca manque de panache mais ca ma permis de faire qq controles en passant
et je ne me suis pas poser la question de savoir le contraire de isset ()  
:(

Commentaire de mo.kain le 07/07/2004 10:17:08

Salut à tous !

Je n'ai pas fait un super post pour proposer ma modif la derniere fois !

L'idée était d'avoir des liens différents chaque mois, avec un minimum de modif sur le script d'origine...

Pour le tableau de tableaux c'est à peut près claire...
Pour le traitement, je pensais utiliser un table MySQL en utilisant les parametres : NoJour=$NoJour&Mois=$Mois&Annee=$Annee
ce qui laisse pas mal de marge pour le coté "universel" du script !

Voilà !

Maintenant, je n'utilise ce script que pour afficher l'année entière...

Vraiment pratique ce script !!! merci !

Commentaire de hrz le 13/07/2004 18:50:12

une mise a jour qui repond aussi a mo.kain

Commentaire de aquewel le 05/11/2004 12:51:01

comment faire pour faire debuter la semaine un LUNDI car la elle commence un dimanche merci :-)

Commentaire de aquewel le 05/11/2004 12:53:29

ok merci g trouvé merci lol dsl

Commentaire de aquewel le 05/11/2004 19:25:02

pkoi pour les mois qui comment un LUNDI, il y a une ligne qui ne sert a rien au dessus (entre les jour et le debut du mois ????????)

merci la c une vrai question

Commentaire de aquewel le 05/11/2004 19:41:10

Derniere question comment faire pour avoir les jour avec les ZERO devant (01,02,03....) pareil pour les mois !!!!???

ca fait bcp de question mais la je galere serieusement !

Commentaire de hrz le 07/11/2004 11:26:54

pour le formatage de l'affichage voir le manuel php rubrique :
sprintf

(PHP 3, PHP 4 )
sprintf -- Retourne une chaîne formattée
Description
string sprintf ( string format [, mixed args])

pour la ligne vide quand le mois commence un lundi
un petit bug  j'avais pas vue  lol
est ce un reel probleme ?

Commentaire de hrz le 07/11/2004 11:36:14

changer au debut du script la ligne
if ($NoJour >0 && $Aff ==1) { $NoJour -=7;}                 // on s'assure du debut de l'affichage a la 1ere ligne du tableau
en
if ($NoJour >1 && $Aff ==1) { $NoJour -=7;}                 // on s'assure du debut de l'affichage a la 1ere ligne du tableau

restera une ligne vide en bas du tableau pour certains mois

Commentaire de hrz le 07/11/2004 12:05:06

modifier les dernieres ligne en :

  print "</TD>\n";   // journee suivante
  }
  if ($NoJour >= $JourMax){ $semaine ++; }   // on echappe la derniere ligne si vide
  print "  </TR>\n"; // semaine suivante
}
print "</TABLE>\n"; // le mois est affiche
}

ici j'utilise un $Semaine ++   un simple break ne convient pas

Commentaire de hrz le 03/02/2005 18:54:32

la version 1.4 est dispo sur site  pour des test

elle reste compatible avec la precedente et elle doit permettre de s'afranchir du @ devant (pour les message d'erreurs )
mais surtout elle doit permetre des passer des parametre avec le lien transmis a la fonction et aussi de ne passer qu'une parties des parametres  sans passer les precedents

je cherche a la prendre en default  avant de la poster ici

Commentaire de WinterMute le 16/03/2005 13:13:46

J'ai aussi eu le bug d'affichage des lignes vides (pas grave) et un autre plus gênant : certains mois de 31 jours qui n'en comptaient plus que 30.
J'ai résolu le pb en remplaçant à la fin du script :
if ($NoJour >= $JourMax){ $semaine ++; }
par :
if ($NoJour > $JourMax){ $semaine ++; }
le "=" qui change tout ;-)

En tout cas merci pour ce sript qui m'a bien rendu service !

Commentaire de orangepix le 19/03/2005 11:48:46

Bonjour

j'ai apporté une modification toute simple

if (!$_GET ['dt']){

$year = date("Y");
$now   = date("Y/m/d");
$month  = date("m");
$day = date("d");
}

else{
$data=explode(" ",$_GET ['dt']);
$year=$data[0];
$month=$data[1];
$day=$data[2];
$now=date("Y/m/d", mktime(0,0,0,$month,$day,$year));
}

ça permet de passer la variable $dt si register_global est off

a+

Commentaire de orangepix le 19/03/2005 11:55:35

Désolé c'est pas la bonne source

Commentaire de aquewel le 26/04/2005 02:22:24

c fou
depuis la nouvelle version impossible de faire commencer la semaine un lundi kelkun c faire ?

Commentaire de hrz le 26/04/2005 20:53:40

salut
precise un peu ,je vient de verifier en local et je n'est pas eu le prob.

dans le fichier  index.php du zip ,c'est sur la ligne d'appel de la fonction qu'il faut changer
0 pour dimanche
1 pour lundi

en fait tout autre valeur que 1 demare l'affichage le dimanche

dans l'exemple ,la ligne devient :
  AfficheCalendrier(1,$MoisEncour,$Annee,$evenement[$MoisEncour],$Page);

est ce bien la version 1.4 que tu a telecharger sur:
http://hrz.free.fr/calendrier/archives/AfficheCalendrier-1.4.zip

ou alors j'ai fait une erreur dans le zip mais tu est le 1er a signaler

Commentaire de aquewel le 29/04/2005 16:50:14

il te manque un truc
qui serait bien dans ton calendrier c'est une option qui rajouterait les jour du mois precendant que le mois en cours commence en fin de semaine par exemple !

et pareil pour le mois suivant
tu vois ce que je veux dire ???

Commentaire de hrz le 29/04/2005 19:39:12

c'est une idee / option  
a voir donc !
utilise comme sur la demo ce n'est pas tres pertinant mais si c'est pour afficher un mois unique c'est loin d'etre anacronique.

pour ce qui est de ton prob de faire debuter le lundi
tu as du neuf la dessus ?

Commentaire de aquewel le 29/04/2005 20:02:05

oui le probleme j'avé pas vu la variable sur la fonction donc j'ai reglé ca merci quand meme ;-)

ta msn ???
je tente de developper un truc en parallele de ton calendrier....

et ouais ca serait classe une option qui fasse ca
ton mois d'aout commence le dimanche et les jours avant au lieu de rien afficher on affiche le mois precedent... et pareil pour la fin de mois....

voila c une idee.

Commentaire de hrz le 30/04/2005 08:28:27

je te propose de prendre contact par la :
http://hrz.free.fr/forum/index.php

Commentaire de hrz le 04/02/2006 17:11:08

bonjour a tous .
si quelqu'un se proposait de traduire le fichier doc,
cela serait tres utiles a tous ; le script est populaire meme a l'etranger.
merci d'avance

Commentaire de nonopat le 22/05/2006 16:17:23

Salut j'ai un petit probléme tout les lien ne s'affiche pas pourais ton m'aidé svp voici le code merci d'avance

Sujet : Re : Aide

Message :
Merci mille fois, voici le script :

<?php/* Date de création: 04/04/2006 */?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Calendrier du mois en cour , affichage simple </title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="HAPedit 3.1">
<link rel="StyleSheet" href="ete.css" type="text/css">
</head>
<body>
<div class="affichagesimple" align="center">
<?php
/* pour limiter les donnes transmises, seul une valeur timestamp est utilisee  */
if (!isset ($ref)) { $ref=time(); }              // pour 1er affichage
if (isset($_GET["ref"])) { $ref=$_GET["ref"]; }  // pour les suivants
$Mois=date("n",$ref);                            // important n => Mois sans les zéros initiaux
$Annee=date("Y",$ref);                           // Y pour l'annee en format long
// le calcul est reference sur un jour du mois(le 1er ici) si absent, erreurs possible
$prec= mktime (0,0,0,$Mois-1,1,$Annee);          // calcul le mois precedent
$suivant= mktime (0,0,0,$Mois+1,1,$Annee);       // calcul le mois suivant
$url= $_SERVER['PHP_SELF'];                      // faut bien faire tourner le compteur

$evenement = array (          //  le tableau des liens tries dans l'ordre des dates
1 =>  array(
0=>"1,../evenement/janvier/1/1janvier.php,BONNE ANNEE",  // date, page, infos
   1=>"2,../evenement/janvier/2/2janvier.php,BONNE ANNEE",
2=>"3,../evenement/janvier/3/3janvier.php,BONNE ANNEE",
3=>"4,../evenement/janvier/4/4janvier.php,BONNE ANNEE",      // date, page
    4=>"5,../evenement/janvier/5/5janvier.php,BONNE ANNEE", // date, page default, halt
5=>"6,../evenement/janvier/6/6janvier.php,BONNE ANNEE",
6=>"7,../evenement/janvier/7/7janvier.php,BONNE ANNEE",
7=>"8,../evenement/janvier/8/8janvier.php,BONNE ANNEE",
8=>"9,../evenement/janvier/9/9janvier.php,BONNE ANNEE",
9=>"10,../evenement/janvier/10/10janvier.php,BONNE ANNEE",
10=>"11,../evenement/janvier/11/11janvier.php,BONNE ANNEE",
11=>"12,../evenement/janvier/12/12janvier.php,BONNE ANNEE",
12=>"13,../evenement/janvier/13/13janvier.php,BONNE ANNEE",
13=>"14,../evenement/janvier/14/14janvier.php,BONNE ANNEE",
14=>"15,../evenement/janvier/15/15janvier.php,BONNE ANNEE",
15=>"16,../evenement/janvier/16/16janvier.php,BONNE ANNEE",
16=>"17,../evenement/janvier/17/17janvier.php,BONNE ANNEE",
17=>"18,../evenement/janvier/18/18janvier.php,BONNE ANNEE",
18=>"19,../evenement/janvier/19/19janvier.php,BONNE ANNEE",
19=>"20,../evenement/janvier/20/20janvier.php,BONNE ANNEE",
20=>"21,../evenement/janvier/21/21janvier.php,BONNE ANNEE",
21=>"22,../evenement/janvier/22/22janvier.php,BONNE ANNEE",
22=>"23,../evenement/janvier/23/23janvier.php,BONNE ANNEE",
23=>"24,../evenement/janvier/24/25janvier.php,BONNE ANNEE",
24=>"25,../evenement/janvier/25/25janvier.php,BONNE ANNEE",
25=>"26,../evenement/janvier/26/26janvier.php,BONNE ANNEE",
26=>"27,../evenement/janvier/27/27janvier.php,BONNE ANNEE",
27=>"28,../evenement/janvier/28/28janvier.php,BONNE ANNEE",
28=>"29,../evenement/janvier/29/29janvier.php,BONNE ANNEE",
29=>"30,../evenement/janvier/30/30janvier.php,BONNE ANNEE",
30=>"31,../evenement/janvier/31/31janvier.php,BONNE ANNEE"),

2 =>  array(
0=>"1,../evenement/fevrier/1/1fevrier.php,Les événements de ce jour",
1=>"2,../evenement/fevrier/2/2fevrier.php,Les événements de ce jour",
3=>"14,../evenement/evrier/14/14fevrier.php,Bonne saint Valentin",
4=>"18,../evenement/fevrier/18/18fevrier.php,Joyeux nouvel an Chinois"),
3 =>  array(),
4 =>  array(),
5 =>  array(
0=>"1,../evenement/mai/1/1mai.php,Les événements de ce jour",
1=>"2,../evenement/mai/2/2mai.php,Les événements de ce jour",
2=>"3,../evenement/mai/3/3mai.php,Les événements de ce jour",
3=>"4,../evenement/mai/2/2mai.php,Les événements de ce jour",
4=>"5,../evenement/mai/2/2mai.php,Les événements de ce jour",
5=>"6,../evenement/mai/2/2mai.php,Les événements de ce jour",
6=>"7,../evenement/mai/2/2mai.php,Les événements de ce jour",
7=>"8,../evenement/mai/8/8mai.php,Les événements de ce jour",
8=>"12,../evenement/mai/12/12mai.php,Les événements de ce jour",
9=>"13,../evenement/mai/13/13mai.php,Les événements de ce jour",
10=>"14,../evenement/mai/14/14mai.php,Les événements de ce jour",
11=>"15,../evenement/mai/15/15mai.php,Les événements de ce jour"),
6 =>  array(),
7 =>  array(),
8 =>  array(),
9 =>  array(),
10 => array(0=>"28,../evenement/octobre/28/28octobre.php,Les événements de ce jour"),
11 => array(),
12 => array()
);
?>
<NOBR>
    <A HREF="<?php print $url."?ref=$prec";?>"><img src="flprev.gif" border="0" width="20" height="20" alt="" align="middle"></A>

    <A HREF="<?php print $url;?>"><img src="rond.gif" border="0" width="20" height="19" alt="" align="middle"></A>

    <A HREF="<?php print $url."?ref=$suivant";?>"><img src="flnext.gif" border="0" width="20" height="20" alt="" align="middle"></A>
  </NOBR>
<br />
<?php
  include ("AfficheCalendrier.php"); // charger la fonction
  AfficheCalendrier(0,$Mois,$Annee,$evenement[$Mois],$_SERVER['PHP_SELF'],0);  // affiche le calendrier
?>
</div>
</body>
</html>

Commentaire de hrz le 22/05/2006 19:43:56

bonsoir et merci de signaler ce bug (car c'en est un )
la ligne 44 de la fonction :
   @sort($evenement);
effectue un trie alphanumerique du tableau et la le 2 se retrouve appres le 15
dans le cas du mois de mai
la ligne corrigee devrait etre :
   @sort($evenement,SORT_NUMERIC ); // pour garder l'ordre des chiffres

je vient de faire le test en local et cela semble ok

Commentaire de nonopat le 29/05/2006 11:53:02

Effectivement c'est ok pour nous également, merci beaucoup.

 Ajouter un commentaire


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  &lt;?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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 2,668 sec (4)

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