Calendrier événementiel - flash/php/mysql

Description

Calendrier avec affichage d'événements.
La fonction de calcul du tableau de chaque mois a été trouvé sur ce site : http://www.flashkod.com/codes/CALENDRIER-DYNAMIQUE-MOINS-TIT-PEU_21703.aspx
J'ai ajouté la notions d'événements avec l'interaction Flash/PHP/MySQL.

Le calendrier s'affiche mois par mois.
La date du jour est "éclairé".
Des boutons apparaissent sur les dates pour lesquelles un évenement est enregistré dans la base de données. L'action sur les boutons fait apparaitre une fenêtre avec le contenu de l'événement.

le fichier "agenda/bd.sql" est à importer dans une nouvelle base de données "agenda". La table "calendrier" créée contient deux exemples (un au 25/12/2005 et un au 12/03/2006).

Le répertoire "agenda/" de la source est à mettre dans le www/ (pour les utilisateurs d'easyPHP).
On accède alors à l'exemple en local via : http://localhost/agenda/agenda.html

Le fichier "agenda/connexion.php" contient les paramètres de connexion à la BDD (rien à changer si vous testez en local via easyPHP)

Le fichier "agenda/req_agenda.php" contient la requête de consultation qui fait le lien entre l'animation et la BDD.

Il y a deux versions pour l'animation : une MX et une 8 (la différence à purement graphique : effets biseau et ombre)

Trois images dans l'animation:
- image 1 : Initialisation des variables mois/anée (à la date du jour par défaut)
- image 2 : Fonction de calcul de la disposition du tableau des jours et stop().
- image 3 : Appel de l'afficahge du tableau et définition des cangements de mois/année
L'image 2 contient un clip hors-champ, en haut à gauche, dont l'action contient l'interfaçage avec PHP/MySQL, il "débloque" l'accés à l'affichage (image3), une fois la synchro effectuée.

Source / Exemple :


-- la table calendrier :
DROP TABLE IF EXISTS `calendrier`;
CREATE TABLE IF NOT EXISTS `calendrier` (
  `id` int(11) NOT NULL auto_increment,
  `jour` int(11) NOT NULL default '0',
  `mois` int(11) NOT NULL default '0',
  `annee` int(11) NOT NULL default '0',
  `evenement` text NOT NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 ;

INSERT INTO `calendrier` (`id`, `jour`, `mois`, `annee`, `evenement`) VALUES (1, 25, 12, 2005, 'HO HO HO...\nJoyeux Noël !!!');
INSERT INTO `calendrier` (`id`, `jour`, `mois`, `annee`, `evenement`) VALUES (2, 12, 3, 2006, '- Ceci est un test !!!');

// Le fichie req_agenda.php
<?
include("connexion.php");

$mois=$_POST["mois"];
$annee=$_POST["annee"];

$txt="";
$req="SELECT * FROM calendrier WHERE mois='$mois' AND annee='$annee'";
$res=mysql_query($req);
while($obj=mysql_fetch_object($res)){
	$txt.="&textevent".$obj->jour."=".utf8_encode($obj->evenement);	
}

echo"?textevide=\"\"".$txt;

@mysql_free_result($res);
mysql_close();
?>

// Le code ActionScript pour la mise à jour :
onClipEvent(load) {
	var mlv:LoadVars = new LoadVars();
	mlv.mois=_root.mois;
	mlv.annee=_root.annee;
	mlv.sendAndLoad("req_agenda.php",mlv,"POST");
	
	mlv.onLoad = function () {
		for(var i=1; i<32; i++){
			_root["textevent"+i]=this["textevent"+i]
		}
		_root.gotoAndPlay(3);
	}
}

PS : la fonction AffichageCalendrier() de l'image 2 vérifie les variables texteevent1, texteevent2, ... et positionne les boutons au besoin.

Conclusion :


Ce calendier a été développé lors de la mise en place du site :
http://selduhavre.free.fr/agenda.php

Un exemple d'événement se situe au 1er janvier ou 4 février 2006.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.