begin process at 2012 05 28 20:43:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

une classe Jour...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

une classe Jour...

mardi 22 novembre 2011 à 01:44:05 | une classe Jour...

555clR

Bonsoir à tous,
Je suis en pleine construction d'une classe Journée, qui affiche tous les évènements d'une journée... comme c'est une première , je me pose beaucoup de questions... est-ce logique ? Est-ce qu'on s'y prend comme ça ?
et j'aurais besoin de conseils pour l'améliorer (ou la reprendre peut-être).
Pourriez-vous prendre qq minutes pour y jeter un oeil ?
Merci de votre aide !

<?php
class Journee
{
private $_timstp_jr = array(),
$_planning = array(),
$_planningJournee = null;


public function __construct($timestamp_jour)
{
//array timstp_jr
$this->_timstp_jr['timstp']=$timestamp_jour;
$this->_timstp_jr['jr']= date('d',$timestamp_jour);
$this->_timstp_jr['mois']= date('m',$timestamp_jour);
$this->_timstp_jr['an']= date('Y',$timestamp_jour);
//array planning
$this_plannig = self::recupererPlanning();
$this->_planningJournee = self::afficherJournee();
return $this->_planningJournee;
}
private function afficherJournee()
{
$planningJournee = '<table cellpadding=5>';
if(!empty ($this->_planning))
{
//parcourt ts les evnmts (Tant q $i inf au nb total d'élmt du tableau)
for($i=0;$i<sizeof($this->_planning);$i++)
{
$eventTimstpDebut = transfo_date_en_unix_timestamp($this->_planning[$i]['event_date_debut']);
$eventDureeEnSec = transfo_duree_en_secondes($this->_planning[$i]['event_duree']);
$eventTimstpFin = $eventTimstpDebut+$eventDureeEnSec;
$eventDateDebut = $this->_planning[$i]['event_date_debut'];
$eventDateFin = date('Y-m-d',$eventTimstpFin);

//$ex= $i;
//$planningJournee.='<br/> :'.$ex;

//précédent Jour J
if ($eventTimstpDebut < $this->_timstp_jr['timstp'])
{
$eventHMinDebut = '00h00';
$noteSupp[$i] = '(...suite de la veille)';
}
//sinon Jour J
else
{
$eventHMinDebut = date('H\hi',$eventTimstpDebut);
}
//terminant après
if ($eventTimstpFin > $this->_timstp_jr['timstp']+3600*23)
{
$eventHMinFin = '00h00';
$noteSupp[$i] = '(...suite le lendemain)';
}
//sinon Jour J
else
{
$eventHMinFin =date('H\hi',$eventTimstpFin);
}

//notes supplémentaires
$noteSupp[$i] = (isset($noteSupp[$i])) ? '<span style="color:red;font-size:0.8em">'.$noteSupp[$i].'</span>' : '';
//affichage
$planningJournee.= '<tr>
<td valign="top">'.$eventHMinDebut.'

</td>
<td><strong>'.$this->_planning[$i]['event_intitule'].'</strong>
<br/>
<u>de '.$eventHMinDebut.' à '.$eventHMinFin.'</u> '.$noteSupp[$i].'
<br/><i>'.$this->_planning[$i]['event_type_aff'].'</i>
<br/>'.$this->_planning[$i]['event_commentaires'].'
</td>
</tr>';
}

}
else
{
//affichage
$planningJournee.= '<tr>
<td>Journée entièrement disponible !</td>
</tr>';
}
$planningJournee.= '</table></div>';
return $planningJournee;
}

private function recupererPlanning()
{
//connexion BDD
bdconnect();
/*
TABLES / CHAMPS
evnmt_type
evnmt_type_id
evnmt_type_aff
evenements
event_id
event_date_debut
event_duree
event_type
event_intitule
event_commentaires
*/

//Expr 0 : affichage du jour demandé => $timestamp_jour
$expr0 = 'date(\''.$this->_timstp_jr['an'].'-'.$this->_timstp_jr['mois'].'-'.$this->_timstp_jr['jr'].'\')';
//Expr 1 : affichage du debut de l'event (date de début à 00:00:00)
$expr1 = 'date(E.event_date_debut)';
//Expr 2 : calcul de la date de la fin de l'événement le matin à minuit
$expr2 = 'DATE_ADD(E.event_date_debut,INTERVAL E.event_duree HOUR_SECOND)';
//Expr3 : date de la fin de l'événement le soir à minuit (expr2 au format '1998-01-02' +1jr ).
$expr3 = 'date(DATE_ADD('.$expr2.', INTERVAL 1 DAY))';
//condition où : expr1 <= jour_analysé and jour_analysé < expr3
$where = '('.$expr1.' <= '.$expr0.') && ('.$expr0.' < '.$expr3.')';

$sql ='SELECT *
FROM
evenements E,
evnmt_type T
WHERE
'.$where.'
&& E.event_type = T.evnmt_type_id
ORDER BY day(E.event_date_debut)';

$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($event = mysql_fetch_array($req))
{
$this->_planning []= array(
'event_id' => $event['event_id'],
'event_date_debut' => $event['event_date_debut'],
//stocker durée en secondes !
'event_duree' => $event['event_duree'],
'event_type_id' => $event['evnmt_type_id'],
'event_type_aff' => $event['evnmt_type_aff'],
'event_intitule' => $event['event_intitule'],
'event_commentaires' => $event['event_commentaires']);

}
mysql_free_result ($req);
//return $this->_planning;
}
public function __toString()
{
$jourAffiche = '<div class="planning_jour">'.$this->_planningJournee.'</div>';
return $jourAffiche;
}
public function __destruct()
{
//echo 'Objet Calendrier détruit<br/>';
}
}

//affichage du jour (à 00:00:00)
if(!isset($_GET['d']) && !isset($_GET['m']) && !isset($_GET['y']))
{
// Si rien dans l'url, récupération de la date du jour
$timestamp_jour = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
}
else
{
//sinon récupèration de la date envoyée ds url
$timestamp_jour = mktime(0, 0, 0, $_GET['m'], $_GET['d'], $_GET['y']);
}
/*
//CONTRÔLES
//lien factice pr voir si ça marche
echo '<a href="class_calendrier4.php?d=16&m=11&y=2011">clic sur 17 Novembre 2011</a><br/>';

echo 'Jour : '.$timestamp_jour.'</br>';

echo '<br/>'.date('d m Y H:i',$timestamp_jour); // affich 16 11 2011 00:00
echo '<br/>'.date('H\Hi',$timestamp_jour); // affich 00H00
echo '<br/>'.date('d F Y',$timestamp_jour);// affich 16 November 2011
*/

$journee = new Journee($timestamp_jour);
//var_dump($journee);
echo $journee;
//destruction de l'objet pour ne pas surcharger la mémoire
unset ($journee);
?>


Cette discussion est classée dans : date, timestamp, jour, event, timstp


Répondre à ce message

Sujets en rapport avec ce message

Convertir une Date au format Timestamp [ par Touf ] Salut !J'ai un petit pb : j'accède à une Date stockée dans une bdd mysql sous la forme (timestamp) "YmdHis" : 20020608105031J'aimerais l'afficher sous fonction d'ajout de jour à une date [ par bapti ] bonjour, je recherche d'urgence une fonction qui additionnerait une date avec un nombre de jours et qui retournerait une date, merci d'avance, baptist Test de valeurs entre 2 dates [ par mfaraday ] BonjourJe souhaiterai tester si une date se trouve bien entre deux dates butoirs. Ne m'y connaissant que moyennement, je pensais m'orienter vers times Récupération de Date, ou Prob Serveur ?? [ par Feebles ] Salut Tous Le Monde, Je débute en PHP, (mais pas en programmation), et j'ai un petit soucis pour récupérer la date du jour encour :j'ai essayer plusie Je trouve pas l'erreur sur mon script [ par Akash ] Salut à tous j'espère que vous pourrez m'aider. Voila le problème :Pour mon script de calendrier evenementiel j'ai besoin d'afficher des évènements pa Gestion de dates [ par tryoruda ] SalutJe souhaite quelques tuyaux pour gérer les dates :- un formulaire avec choix du jour / du mois / de l'année envoie vers un seul champ Mysql date- tableau comme calendrier!! [ par titigrou ] kikou a tous!!!pffff j'ai un énorme problème et urgent a règler mais je n'arrive pas a voir l'erreur!!!!au secours!!!!j'ai une liste déroulante semain un lien avec un appel dynamique à un fichier [ par pyranhaz ] Bonjour,je suis pas très fort en php, voire même nul...je cherche à faire fonctionner un lien dans une page qui puisse réagir à la date du jour dans u Pb avec Date() & mktime() [ par LordDaedalus ] BonjourJe suis en train de créer un agenda en utilisant les fonctions date() et mktime().j'utilise $Jour = Date("d",mktime(Date("h")-24*10*7)Le jour e En fonction du temps ? [ par cedd ] Bonjour!Mon problème se situe au niveau de la fonction du temps.Je sais que pour récupérer la date systeme, il faut utiliser:$date_du_jour = date("d-m


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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,468 sec (3)

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