Calendrier
                    
        
     
             
                    jordxn
    
        
    
                    Messages postés
            
                
     
             
            375
        
            
                                    Statut
            Membre
                    
                -
                                     
jeremy.s Messages postés 1248 Statut Membre -
        jeremy.s Messages postés 1248 Statut Membre -
        Bonjour, 
Ma question est simple,
Comment faire pour relier un evenement (annee , jour et mois) a ce calendrier ?
Je n'y arrives pas...
Merci de bien vouloir m'aider.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Gestion de calendrier | Calendrier</title>
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
</head>
<body>
<h1>Calendrier</h1>
<br/>
<?php
function getEventsDate($mois, $annee) {
$result = array();
		
include('config.php');
		
$sql = 'SELECT DISTINCT jour_taches, titre_taches FROM calendrier c, taches t WHERE mois_taches='.$mois.' AND annee_taches='.$annee.' AND c.id_taches = t.id_taches ORDER BY jour_taches';
				
while ($row=$sql->fetch){
$result[] = $row[0];
$result[] = $row[1];
}
				
return $result;
}
	
function afficheEvent($i, $event) {
$texte = ""; $suivant = false;
		
foreach($event as $cle => $element) {
if($suivant) {
$texte .= $element."<br/>";
}
if($element == $i) {
$suivant = true;
} else {
$suivant = false;
}
}
		
return $texte;
}
if(isset($_GET['m']) && isset($_GET['y']) && is_numeric($_GET['m']) && is_numeric($_GET['y'])) {
$timestamp = mktime(0, 0, 0, $_GET['m'], 1, $_GET['y']);
		
$event = getEventsDate($_GET['m'], $_GET['y']); // Récupère les jour où il y a des évènements
}
else { // Si on ne récupère rien dans l'url, on prends la date du jour
$timestamp = mktime(0, 0, 0, date('m'), 1, date('Y'));
		
$event = getEventsDate(date('m'), date('Y')); // Récupère les jour où il y a des évènements
}
	
	
// === Si le mois correspond au mois actuel et l'année aussi, on retient le jour actuel pour le griser plus tard (sinon le jour actuel ne se situe pas dans le mois)
if(date('m', $timestamp) == date('m') && date('Y', $timestamp) == date('Y')) $coloreNum = date('d');
	
$m = array("01" => "Janvier", "02" => "Février", "03" => "Mars", "04" => "Avril", "05" => "Mai", "06" => "Juin", "07" => "Juillet", "08" => "Août", "09" => "Septembre", "10" => "Octobre", "11" => "Novembre", "12" => "Décembre");
$j = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
	
$numero_mois = date('m', $timestamp);
$annee = date('Y', $timestamp);
	
if($numero_mois == 12) {
$annee_avant = $annee;
$annee_apres = $annee + 1;
$mois_avant = $numero_mois - 1;
$mois_apres = 01;
}
elseif($numero_mois == 01) {
$annee_avant = $annee - 1;
$annee_apres = $annee;
$mois_avant = 12;
$mois_apres = $numero_mois + 1;
}
else {
$annee_avant = $annee;
$annee_apres = $annee;
$mois_avant = $numero_mois - 1;
$mois_apres = $numero_mois + 1;
}
	
// 0 => Dimanche, 1 => Lundi, 2 = > Mardi...
$numero_jour1er = date('w', $timestamp);
	
// Changement du numéro du jour car l'array commence à l'indice 0
if ($numero_jour1er == 0) $numero_jour1er = 6; // Si c'est Dimanche, on le place en 6ème position (après samedi)
else $numero_jour1er--; // Sinon on mets lundi à 0, Mardi à 1, Mercredi à 2...
?>
    
<table class="calendrier">
<caption><?php echo '<a href="?m='.$mois_avant.'&y='.$annee_avant.'"><<</a> '.$m[$numero_mois].' '.$annee.' <a href="?m='.$mois_apres.'&y='.$annee_apres.'">>></a>'; ?></caption>
		
<tr><th>Lu</th><th>Ma</th><th>Me</th><th>Je</th><th>Ve</th><th>Sa</th><th>Di</th></tr>
<?php
// Ecriture de la 1ère ligne
echo '<tr>';
// Ecriture de colones vides tant que le mois ne démarre pas
for($i = 0 ; $i < $numero_jour1er ; $i++) { echo '<td></td>'; }
for($i = 1 ; $i <= 7 - $numero_jour1er; $i++) {
// Ce jour possède un événement
if (in_array($i, $event)) {
echo '<td class="jourEvenement';
					
if(isset($coloreNum) && $coloreNum == $i) echo ' lienCalendrierJour';
					
echo '"><a href="evenement.php?d='.$i.'/'.$numero_mois.'/'.$annee.'" class="info">'.$i.'<span>'.afficheEvent($i, $event).'</span></a></div></td>';
} else {
echo '<td ';
					
if(isset($coloreNum) && $coloreNum == $i) echo 'class="lienCalendrierJour"';
					
echo '>'.$i.'</td>';
}
}
echo '</tr>';
		
$nbLignes = ceil((date('t', $timestamp) - ($i-1))/ 7); // Calcul du nombre de lignes à afficher en fonction de la 1ère (surtout pour les mois a 31 jours)
		
for($ligne = 0 ; $ligne < $nbLignes ; $ligne++) {
echo '<tr>';
for($colone = 0 ; $colone < 7 ; $colone++) {
if($i <= date('t', $timestamp)) {
// Ce jour possède un événement
if (in_array($i, $event)) {
echo '<td class="jourEvenement';
						
if(isset($coloreNum) && $coloreNum == $i) echo ' lienCalendrierJour';
						
echo '"><a href="evenement.php?d='.$i.'/'.$numero_mois.'/'.$annee.'" class="info">'.$i.'<span>'.afficheEvent($i, $event).'</span></a></td>';
} else {
echo '<td ';
						
if(isset($coloreNum) && $coloreNum == $i) echo 'class="lienCalendrierJour"';
						
echo '>'.$i.'</td>';
}
} else {
echo '<td></td>';
}
$i = $i +1;
}
echo '</tr>';
}
?>
</table>
	
<br/>
	
<p class="centre"><a href="index.php">Revenir à l'accueil</a></p>
</body>
</html>
                
            
                
    
    
    
        Ma question est simple,
Comment faire pour relier un evenement (annee , jour et mois) a ce calendrier ?
Je n'y arrives pas...
Merci de bien vouloir m'aider.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Gestion de calendrier | Calendrier</title>
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
</head>
<body>
<h1>Calendrier</h1>
<br/>
<?php
function getEventsDate($mois, $annee) {
$result = array();
include('config.php');
$sql = 'SELECT DISTINCT jour_taches, titre_taches FROM calendrier c, taches t WHERE mois_taches='.$mois.' AND annee_taches='.$annee.' AND c.id_taches = t.id_taches ORDER BY jour_taches';
while ($row=$sql->fetch){
$result[] = $row[0];
$result[] = $row[1];
}
return $result;
}
function afficheEvent($i, $event) {
$texte = ""; $suivant = false;
foreach($event as $cle => $element) {
if($suivant) {
$texte .= $element."<br/>";
}
if($element == $i) {
$suivant = true;
} else {
$suivant = false;
}
}
return $texte;
}
if(isset($_GET['m']) && isset($_GET['y']) && is_numeric($_GET['m']) && is_numeric($_GET['y'])) {
$timestamp = mktime(0, 0, 0, $_GET['m'], 1, $_GET['y']);
$event = getEventsDate($_GET['m'], $_GET['y']); // Récupère les jour où il y a des évènements
}
else { // Si on ne récupère rien dans l'url, on prends la date du jour
$timestamp = mktime(0, 0, 0, date('m'), 1, date('Y'));
$event = getEventsDate(date('m'), date('Y')); // Récupère les jour où il y a des évènements
}
// === Si le mois correspond au mois actuel et l'année aussi, on retient le jour actuel pour le griser plus tard (sinon le jour actuel ne se situe pas dans le mois)
if(date('m', $timestamp) == date('m') && date('Y', $timestamp) == date('Y')) $coloreNum = date('d');
$m = array("01" => "Janvier", "02" => "Février", "03" => "Mars", "04" => "Avril", "05" => "Mai", "06" => "Juin", "07" => "Juillet", "08" => "Août", "09" => "Septembre", "10" => "Octobre", "11" => "Novembre", "12" => "Décembre");
$j = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$numero_mois = date('m', $timestamp);
$annee = date('Y', $timestamp);
if($numero_mois == 12) {
$annee_avant = $annee;
$annee_apres = $annee + 1;
$mois_avant = $numero_mois - 1;
$mois_apres = 01;
}
elseif($numero_mois == 01) {
$annee_avant = $annee - 1;
$annee_apres = $annee;
$mois_avant = 12;
$mois_apres = $numero_mois + 1;
}
else {
$annee_avant = $annee;
$annee_apres = $annee;
$mois_avant = $numero_mois - 1;
$mois_apres = $numero_mois + 1;
}
// 0 => Dimanche, 1 => Lundi, 2 = > Mardi...
$numero_jour1er = date('w', $timestamp);
// Changement du numéro du jour car l'array commence à l'indice 0
if ($numero_jour1er == 0) $numero_jour1er = 6; // Si c'est Dimanche, on le place en 6ème position (après samedi)
else $numero_jour1er--; // Sinon on mets lundi à 0, Mardi à 1, Mercredi à 2...
?>
<table class="calendrier">
<caption><?php echo '<a href="?m='.$mois_avant.'&y='.$annee_avant.'"><<</a> '.$m[$numero_mois].' '.$annee.' <a href="?m='.$mois_apres.'&y='.$annee_apres.'">>></a>'; ?></caption>
<tr><th>Lu</th><th>Ma</th><th>Me</th><th>Je</th><th>Ve</th><th>Sa</th><th>Di</th></tr>
<?php
// Ecriture de la 1ère ligne
echo '<tr>';
// Ecriture de colones vides tant que le mois ne démarre pas
for($i = 0 ; $i < $numero_jour1er ; $i++) { echo '<td></td>'; }
for($i = 1 ; $i <= 7 - $numero_jour1er; $i++) {
// Ce jour possède un événement
if (in_array($i, $event)) {
echo '<td class="jourEvenement';
if(isset($coloreNum) && $coloreNum == $i) echo ' lienCalendrierJour';
echo '"><a href="evenement.php?d='.$i.'/'.$numero_mois.'/'.$annee.'" class="info">'.$i.'<span>'.afficheEvent($i, $event).'</span></a></div></td>';
} else {
echo '<td ';
if(isset($coloreNum) && $coloreNum == $i) echo 'class="lienCalendrierJour"';
echo '>'.$i.'</td>';
}
}
echo '</tr>';
$nbLignes = ceil((date('t', $timestamp) - ($i-1))/ 7); // Calcul du nombre de lignes à afficher en fonction de la 1ère (surtout pour les mois a 31 jours)
for($ligne = 0 ; $ligne < $nbLignes ; $ligne++) {
echo '<tr>';
for($colone = 0 ; $colone < 7 ; $colone++) {
if($i <= date('t', $timestamp)) {
// Ce jour possède un événement
if (in_array($i, $event)) {
echo '<td class="jourEvenement';
if(isset($coloreNum) && $coloreNum == $i) echo ' lienCalendrierJour';
echo '"><a href="evenement.php?d='.$i.'/'.$numero_mois.'/'.$annee.'" class="info">'.$i.'<span>'.afficheEvent($i, $event).'</span></a></td>';
} else {
echo '<td ';
if(isset($coloreNum) && $coloreNum == $i) echo 'class="lienCalendrierJour"';
echo '>'.$i.'</td>';
}
} else {
echo '<td></td>';
}
$i = $i +1;
}
echo '</tr>';
}
?>
</table>
<br/>
<p class="centre"><a href="index.php">Revenir à l'accueil</a></p>
</body>
</html>
        A voir également:         
- Calendrier
- Mon calendrier - Télécharger - Santé & Bien-être
- Logiciel gratuit conversion calendrier républicain - Télécharger - Études & Formations
- Calendrier partagé google - Guide
- Synchroniser calendrier outlook et gmail - Guide
- Calendrier xtra - Télécharger - Bureautique
2 réponses
                        
                    Tu l'as récupéré où ce code de calendrier ? Il n'y avait pas de documentation avec ?
                
                
    
                
    Bah le code de grafikart te permet de générer le calendrier avec des évênements récupérés en BDD, parfaitement ce que tu veux non ?
Si tu veux que les users crés des events, tu fais un simple formulaire avec une fonction qui insert dans ta BDD. La génération du calendrier ira cherché toute seule tes events !
    Si tu veux que les users crés des events, tu fais un simple formulaire avec une fonction qui insert dans ta BDD. La génération du calendrier ira cherché toute seule tes events !
    Mais en 45min il t'explique tout ! Et au final tu comprends le fonctionnement ;-) Donc si tu veux ajouté ou supprimé des parties tu sais où faire.
Perso je l'ai utilisé et transformé en objet et il marche niquel.
Quand tu demandes comment rajouter des évênements à ton code comme ca, ca veut dire que tu l'as copier coller et que tu ne sais pas ce qu'il fait. (Bon je te rassure, pour moi c'est pas le problème). Si tu cherches un code tout faite jte file ma classe Calendrier.php qui génère le code html du calendrier ... mais tu n'auras rien appris.
Alors que si tu regardes ces 45min de vidéo, tu sauras comment est fait un calendrier et comment sont mis les évênements. Bon je te l'accorde, perso j'ai du le regarder en deux fois pcq les évênements j'avais pas compris de suite.
Donc a toi de voir ce que tu veux !
    Perso je l'ai utilisé et transformé en objet et il marche niquel.
Quand tu demandes comment rajouter des évênements à ton code comme ca, ca veut dire que tu l'as copier coller et que tu ne sais pas ce qu'il fait. (Bon je te rassure, pour moi c'est pas le problème). Si tu cherches un code tout faite jte file ma classe Calendrier.php qui génère le code html du calendrier ... mais tu n'auras rien appris.
Alors que si tu regardes ces 45min de vidéo, tu sauras comment est fait un calendrier et comment sont mis les évênements. Bon je te l'accorde, perso j'ai du le regarder en deux fois pcq les évênements j'avais pas compris de suite.
Donc a toi de voir ce que tu veux !
 
    
    
    
    
// Ce jour possède un événement if (in_array($i, $event)) { echo '<td class="jourEvenement'; if(isset($coloreNum) && $coloreNum == $i) echo ' lienCalendrierJour'; echo '"><a href="evenement.php?d='.$i.'/'.$numero_mois.'/'.$annee.'" class="info">'.$i.'<span>'.afficheEvent($i, $event).'</span></a></div></td>'; } else { echo '<td ';