Calendrier
jordxn
Messages postés
356
Date d'inscription
Statut
Membre
Dernière intervention
-
jeremy.s Messages postés 1226 Date d'inscription Statut Membre Dernière intervention -
jeremy.s Messages postés 1226 Date d'inscription Statut Membre Dernière intervention -
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
- Logiciel calendrier personnalisé gratuit - Télécharger - Organisation
2 réponses
https://www.grafikart.fr/tutoriels/calendrier-php-157
Tout y est expliqué ;-)
Tout y est expliqué ;-)
jordxn
Messages postés
356
Date d'inscription
Statut
Membre
Dernière intervention
1
J'y suis allé mais la je pose une question précise pour ce code la , merci!
jeremy.s
Messages postés
1226
Date d'inscription
Statut
Membre
Dernière intervention
79
Tu le fais déjà ici non ?
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 !