PHP - Calendrier de réservation

yaya2669 Messages postés 31 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 17 mai 2011 - 26 oct. 2007 à 07:51
yaya2669 Messages postés 31 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 17 mai 2011 - 26 oct. 2007 à 13:08
Bonjour,

Je cherche un script qui me permettrait de faire un calendrier en php.
J'ai regardé ceux qui sont déjà à disposition sur le site mais je n'arrive pas à les faire fonctionner.
Malheureusement je n'y connais rien  Php.

Je ne sais pas ou je pourrais trouver des script qui fonctionne...

Quelqu'un pourrait m'aider svp ...

Merci par avance

5 réponses

waterw72 Messages postés 63 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 18 juillet 2008
26 oct. 2007 à 08:11
<?
 class Mois
 {
  //le mois de 1 à12
  private $mois;
  //le nom du mois
  private $nomMois;
  //la liste des noms des jours de la semaine
  private $nomJours;
  
  // le constructeur
  function __construct($mois)
  {
   
   if ( $mois < 1 || $mois > 12 )
   {
    $this->mois = date("m"); // le mois courant
   }
   $this->mois = $mois;
   
   //récupération du nom du mois
   setlocale (LC_TIME, "fr_FR", "FRA");
   $this->nomMois = strftime("%B", mktime(0, 0, 0, $this->mois));
  
   //récupération du nom du jour
   for ($i=0;$i<7;$i++)
   {
    $this->nomJours[] = strftime("%A", mktime(0, 0, 0, 1, 19+$i, 2004)); //le 19/01/2005 = lundi
    
   }
  }
  
  //test si la date est aujourd'hui
  private function estAujourdhui($jour, $mois, $annee)
  {
   if ( mktime(0, 0, 0, $mois, $jour, $annee) == mktime(0, 0, 0) )
    return true;
   return false;
  }
  
  //test si une news est publiée
  private function newsPubliee($jour, $mois, $annee)
  {
   $bdd = new MySql();
   $bdd->connecter();
    
   $requete = "SELECT COUNT(id_news) as total ";
   $requete .= " FROM table_news WHERE ";   $requete ."(DAY(date_envoi) '".$jour."') AND ";   $requete ."(MONTH(date_envoi) '".$mois."') AND ";   $requete ."(YEAR(date_envoi) '".$annee."')";
        
   $resultat = $bdd->executerRequete($requete);
   $bdd->deconnecter();
   $donnees = $bdd->prochainResultat($resultat);
   
   if ($donnees['total'] > 0)
    return true;
   return false;
  }
  
  //Affichage
  function afficher ( $annee)
  {
   
   //debut du tableau
   $tableau = "
\n";
   $tableau .= "\n\";
   
   
   $tableau .= \"----
\";
   //mois précédent
   if ($this->mois == 1)
   {
    $tableau .= \"&lt;, \";
   }
   else
   {
    $tableau .= \"mois-1)."\">&lt;, \";
   }
   //nom du mois
   $tableau .= \"".ucfirst($this->nomMois)." ".$annee.", \";
   //mois suivant
   if ($this->mois == 12)
   {
    $tableau .= \"&gt;, \";
   }
   else
   {
    $tableau .= \"mois+1)."\">&gt;, \";
   }
   $tableau .= \"\n\";
   
   // affichage des lettres des jours de la semaine
   $tableau .= \"----
\";
   for($i=0;$i<7;$i++)
   {
    $tableau .= \"".strtoupper(substr($this->nomJours[$i], 0,1)).", \";
   }
   $tableau .= \"\n\";
   
   //numéro dans la semaine du premier jour du mois
   $jour = mktime(0,0,0,$this->mois,1,$annee);
   $numeroJour = date(\"w\", $jour);
   
   //le dimanche (0) devient le septième jour   if ($numeroJour 0) $numeroJour 7;
   
   if ($numeroJour > 1)
    $tableau .= \"----
\";
   
   //affichage des casses vide de début de mois
   for ($i=0; $i<$numeroJour -1; $i++)
   {
    $tableau .=\"&nbsp;, \";
   }
   $nbJours = cal_days_in_month ( CAL_GREGORIAN, $this->mois, $annee);
   
   for ($i=0;$i<$nbJours;$i++)
   {
    
    $jour = mktime(0,0,0,$this->mois,(1+$i), $annee);
    
    $numeroJour = date(\"w\", $jour);
        if ($numeroJour 0) $numeroJour7;
    
    if ($numeroJour == 1) $tableau .= \"----
\";
    
    //test sis ce jour est aujourd'hui
    if ( $this->estAujourdhui((1+$i), $this->mois, $annee) )
     $tableau .= \"";
    else
     $tableau .= ", \";
    
    //test si il y a des news publiée à ce jour
    if ( $this->newsPubliee((1+$i), $this->mois, $annee) )
     $tableau .= \"mois.\"&amp;jour=\".($i+1).\"\\">\".($i+1).\"</td>\";
    else
     $tableau .= ($i+1).\"</td>\";
    
    if ($numeroJour == 7) $tableau .= \"\n\";
    
    
   }
   if ($jour != 7)
    {
     for( $i=$numeroJour+1;$i<=7;$i++)
     {
      $tableau .=\"&nbsp;, \";
     }
     $tableau .=\"\n\";
    }
    $tableau .= "
\n
";
   echo $tableau;
   return $tableau;
  }
 }
?>
<?
    $m = new Mois(date("m"));
    $m->Afficher(2007);
?>
0
logos123 Messages postés 1 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 26 octobre 2007
26 oct. 2007 à 09:45
Bonjour waterw72,

Je suis arrivé comme yaya2669, je souhaiterais disposer d'un calendrier de réservation mais je ne connais absolument rien en php.


Je suis tombé sur ton scipt qui m'intéresse très fort, mais je ne sais pas comment il faut faire pour l'employer.....


Pourrais-tu m'aider ?


D'avance un tout grand merci.


 
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
26 oct. 2007 à 10:23
C'est une classe ...ça servira a rien pour ceux qui ne savent pas et qui ne veulent pas coder.
Voici une appli toute faite si elle vous convient tant mieux dans le cas contraire mettez vous au code
http://www.phenix.gapi.fr/
--------------------------------------------------------------------------------------------------
         Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
0
waterw72 Messages postés 63 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 18 juillet 2008
26 oct. 2007 à 10:53
Bonjour logos123,
il faut mettre la classe dans un fichier séparé.
l'utilisation de la classe se fait en deux lignes :
$m = new Mois(date("m"));
$m->Afficher(2007);

Bonjour Teclis01,
Effectivement c'est une classe.
L'utilisation des classes n'est pas très compliqué, c'est la conception qui est plus difficile.
0

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

Posez votre question
yaya2669 Messages postés 31 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 17 mai 2011
26 oct. 2007 à 13:08
Merci de vos répose,

Je teste tout ça et je vous dis ;)
0
Rejoignez-nous