Création Internet, référencement: dahut.be

Prestations sur Internet

Site de développement en PHP - MySQL
Création sites Internet
Référencement

 
B-6810 IZEL
Tél. /fax: 00 (0) 61/32.00.15.

Création de site

Référencement Références Contact
 
Quelques aides en programmation PHP
Cette partie reprend quelques trucs spécifiques en langage PHP.

Aide PHP - MySQL

Téléchargements

 

Un calendrier en PHP

1. L'affichage du calendrier - 2. Le fichier jour

Pour avoir cherché une solution de calendrier à afficher sur un site "suivi" les moteurs de recherches (donc pas en java script) et permettant de faire un lien vers une page affichant les activités des dates, je l'ai finalement développé. Il est utilisé actuellement sur le site darut.be pour afficher les activités.

Ce petit calendrier s'affiche quasiment n'importe où sur une page. Il recherche dans une base de donnée si la date est présente (ou plutôt comprise entre une date de début et une date de fin). Si une activité est présente, il permet le lien vers une page que nous appellerons jour.php qui affiche simplement les annonces du jour. A chacun de le modifier à sa convenance pour gérer des réservations en ligne, des plannings, ... par exemple.

1. L'affichage du calendrier

L'affichage se fait dans un tableau. La première ligne permet d'afficher le jour sur 3 lettres. Le premier du mois est toujours affiché en premier. Si le 1 est un lundi, les jours de la semaine commencent par lun.

La première partie récupère le mois en cours, détermine le nombre de jours dans le mois et transpose le jour de la semaine de l'anglais vers le français.

La deuxième partie va chercher dans la table (activite) les activités en fonction de 2 champs: date_init et date_fin.

Si une valeur est reprise dans la table, elle affiche un lien qui renvoie vers le fichier jour.php en passant la date via une variable de type GET: echo "<a href=\"jour.php?date=".$date_act."\">$i</a>";

<?php
/* affichage du tableau reprenant les dates d'activités
*/
// début calendrier
$date=date('D/d/m/Y');
list($dcourt,$day, $month, $year) = explode("/", $date);

$joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
$mois=array('','Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
$numsem= array(0, 1, 2, 3, 4,5,6);
// calcul du timestamp
$timestamp = mktime (0, 0, 0, $month, 01, $year);

//echo $joursem[date("w",$timestamp)];

// permet d'afficher éventuellement le nom du premier jour du mois

$num= $numsem[date("w",$timestamp)];

// nombre de jours du mois
$nombreDeJours = intval(date("t",$month));
//echo $nombreDeJours;
require('includes/start.php');
$i=1;
$j=0;
$month_t=intval(date("n"));
// affichage du mois par son nom
echo "<p>Activités du mois de ".$mois[$month_t]."</p>";
// début d'entrée des dates.
<table border="1" width="100%">
<tr>
<?php
// affichage de la première ligne
switch($num){
case 0:
// premier jour est un Dimanche
?>

<td width="12,5%">Dim</td>
<td width="12,5%">Lun</td>
<td width="12,5%">Mar</td>
<td width="12,5%">Mer</td>
<td width="12,5%">Jeu</td>
<td width="12,5%">Ven</td>
<td width="12,5%">Sam</td>
</tr>
<?php
break;

case 1:

// premier jour est un lundi
?>
<td width="12,5%">Lun</td>
<td width="12,5%">Mar</td>
<td width="12,5%">Mer</td>
<td width="12,5%">Jeu</td>
<td width="12,5%">Ven</td>
<td width="12,5%">Sam</td>
<td width="12,5%">Dim</td>
</tr>

<?php
break;

case 2:
// premier jour est un mardi
?>

<td width="12,5%">Mar</td>
<td width="12,5%">Mer</td>
<td width="12,5%">Jeu</td>
<td width="12,5%">Ven</td>
<td width="12,5%">Sam</td>
<td width="12,5%">Dim</td>
<td width="12,5%">Lun</td>
</tr>
<?php
break;
case 3:
// premier jour est un mercredi
?>

<td width="12,5%">Mer</td>
<td width="12,5%">Jeu</td>
<td width="12,5%">Ven</td>
<td width="12,5%">Sam</td>
<td width="12,5%">Dim</td>
<td width="12,5%">Lun</td>
<td width="12,5%">Mar</td>
</tr>
<?php
break;
case 4:
// premier jour est un jeudi
?>
<td width="12,5%">Jeu</td>
<td width="12,5%">Ven</td>
<td width="12,5%">Sam</td>
<td width="12,5%">Dim</td>
<td width="12,5%">Lun</td>
<td width="12,5%">Mar</td>
<td width="12,5%">Mer</td>
</tr>
<?php
break;
case 5:
// premier jour est un Vendredi
?>
<td width="12,5%">Ven</td>
<td width="12,5%">Sam</td>
<td width="12,5%">Dim</td>
<td width="12,5%">Lun</td>
<td width="12,5%">Mar</td>
<td width="12,5%">Mer</td>
<td width="12,5%">Jeu</td>
</tr>
<?php
break;
case 6:
// premier jour est un Samedi
?>

<td width="12,5%">Sam</td>
<td width="12,5%">Dim</td>

<td width="12,5%">Lun</td>
<td width="12,5%">Mar</td>
<td width="12,5%">Mer</td>
<td width="12,5%">Jeu</td>
<td width="12,5%">Ven</td>
</tr>
<?php
break;
}
// fin d'affichage de la premier ligne

while ($i<=$nombreDeJours)
{
$l=$year."-".$month."-".$i;
$requete="select date from activite where date_init <= '$l' and date_fin >= '$l'";
//and date_fin>=date_fin
$valeur=mysql_query($requete);
$ligne=mysql_num_rows($valeur);
echo "<td width=\"12,5%\">";
if ($ligne<>0)
{
$date_act=$i."/".$month."/".$year;
echo "<a href=\"jour.php?date=".$date_act."\">$i</a>";
}else
{
echo $i;
}
echo "</td>";
$i=$i+1;
$j=$j+1;
if ($j==7)
{
echo "</tr><tr>";
$j=0;
}
}

?>
</tr>
</table>

2. Le fichier jour.php

Ce fichier permet d'afficher les activités reprises dans la table activité en fonction du jour sélectionné dans le fichier ci-dessus.. Il utilise la variable GET 'date' envoyée par calendrier.php.

<?php

// récupération de la date passée par GET
$date_act=$HTTP_GET_VARS['date'];
list($day, $month, $year) = explode("/", $date_act);
$date_act2=$year."/".$month."/".$day;
echo "<b>Activités du ". $date_act."</b></p>";

// on ouvre la base de donnée
require('includes/start.php');
$requete="SELECT * FROM activite where date_init<='$date_act2' AND date_fin>='$date_act2'";
$valeur=mysql_query($requete);
$ligne=mysql_num_rows($valeur);
if ($ligne==0)
{
echo "<h2 align=\center\">Pas d'activités enregistrées à cette date";
}else{
while ($tableau=mysql_fetch_array($valeur))
{
 $uid=$tableau['uid'];
 $titre=STRIPSLASHES($tableau['titre']);
 $date_init=STRIPSLASHES($tableau['date_init']);
 list ($year,$month,$day)=explode("-",$date_init);
 $date_init=$day."/".$month."/".$year;
 $date_fin=STRIPSLASHES($tableau['date_fin']);
 list ($year,$month,$day)=explode("-",$date_fin);
 $date_fin=$day."/".$month."/".$year;
 echo "Activité: ".$titre." ".$date_init.";
 if ($date_init<>$date_fin)
 {
  echo " au <b>".$date_fin."</b>";
  }
 echo "<br>";
}
}

// on ferme la base de donne
include('includes/stop.php');

?>

Numéro TVA (Arlon -Belgique): BE 0718.409.912.

Conception Internet et référencement 061/32.00.15.

1. Introduction - 5. Résumé des requêtes MySQL - 6. Inscription des utilisateurs - 7. Vérifier une adresse mail entrée dans un formulaire - 8. Quelques petites fonctions utiles - 11. Suppression des adresses Internet et mail dans les annonces - 12. Gestion d'activités


Hors développements:

Un petit calendrier en Php à utiliser sur un site Internet - Gérer un champ.