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 .= \"<, \";
}
else
{
$tableau .= \"mois-1)."\"><, \";
}
//nom du mois
$tableau .= \"".ucfirst($this->nomMois)." ".$annee.", \";
//mois suivant
if ($this->mois == 12)
{
$tableau .= \">, \";
}
else
{
$tableau .= \"mois+1)."\">>, \";
}
$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 .=\" , \";
}
$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.\"&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 .=\" , \";
}
$tableau .=\"\n\";
}
$tableau .= "
\n
";
echo $tableau;
return $tableau;
}
}
?>
<?
$m = new Mois(date("m"));
$m->Afficher(2007);
?>