Calendrier
Fermé
jordxn
Messages postés
356
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
26 avril 2015
-
17 avril 2013 à 01:47
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 17 avril 2013 à 22:15
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 17 avril 2013 à 22:15
A voir également:
- Calendrier
- Calendrier partagé google - Guide
- Synchroniser calendrier outlook et gmail - Guide
- Déploiement tnt 4k calendrier - Accueil - TV & Vidéo
- Calendrier 1582 - Télécharger - Bureautique
- Télécharger mon calendrier gratuit - Télécharger - Santé & Bien-être
2 réponses
jordxn
Messages postés
356
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
26 avril 2015
1
17 avril 2013 à 01:53
17 avril 2013 à 01:53
J'ai trouver ce code sur internet :
<h1>Calendrier</h1>
<br/>
<?php
function getEventsDate($mois, $annee) {
$result = array();
include("includes/sql_connect.php");
$sql = 'SELECT DISTINCT jour_evenement, titre_evenement FROM calendrier c, evenements e WHERE mois_evenement='.$mois.' AND annee_evenement='.$annee.' AND c.id_evenement = e.id_evenement ORDER BY jour_evenement';
$query = mysql_query($sql) or die("Une requête a échouée.");
while ($row = mysql_fetch_array($query, MYSQL_NUM)) {
$result[] = $row[0];
$result[] = $row[1];
}
mysql_close();
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>
Cela fonctionne parfaitement mais j'aimerais des explications car je ne comprend pas grand chose au programme, merci.
<h1>Calendrier</h1>
<br/>
<?php
function getEventsDate($mois, $annee) {
$result = array();
include("includes/sql_connect.php");
$sql = 'SELECT DISTINCT jour_evenement, titre_evenement FROM calendrier c, evenements e WHERE mois_evenement='.$mois.' AND annee_evenement='.$annee.' AND c.id_evenement = e.id_evenement ORDER BY jour_evenement';
$query = mysql_query($sql) or die("Une requête a échouée.");
while ($row = mysql_fetch_array($query, MYSQL_NUM)) {
$result[] = $row[0];
$result[] = $row[1];
}
mysql_close();
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>
Cela fonctionne parfaitement mais j'aimerais des explications car je ne comprend pas grand chose au programme, merci.
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
17 avril 2013 à 22:15
17 avril 2013 à 22:15
Salut,
https://www.grafikart.fr/tutoriels/calendrier-php-157
Très bien expliqué !
https://www.grafikart.fr/tutoriels/calendrier-php-157
Très bien expliqué !