blog actif depuis 1328 jours.

retours d'expériences, codes sources, réflexions, humeurs... d'un webmaster

 

Lun.

20

Oct.

 
Digne héritière de la classe dates proposée il y a quelques jours, la classe calendrier vous permet l'affichage d'un calendrier en PHP, comme celui que vous pouvez découvrir sur ce site.



Le calendrier généré est entièrement paramétrable :
- activation ou non des liens sur les mois, les semaines…
- affichage ou non du mois, de la navigation entre mois, des semaines…
- format des liens
- dates limites
- ajout d'évènements sur les dates
Le rendu est géré via une feuille de styles. 

Paramétrage du calendrier

$obj_cal = new classe_calendrier();
$obj_cal->afficheMois();            // affichage du mois
$obj_cal->afficheSemaines();        // affichage des nos de semaine
$obj_cal->afficheJours();            // affichage des jours littéraux




$obj_cal->afficheNavigMois(true);        // navigation par mois




$obj_cal->activeLiensSemaines();        // active les liens sur la semaine
$obj_cal->activeLienMois();            // active les liens sur le mois




$obj_cal->activeJoursPasses();        // active les liens sur les jours antérieurs à la date du jour
$obj_cal->activeJourPresent();        // active le jour d'aujourd'hui

A l'inverse, $obj_cal->activeJoursFuturs() activera les liens sur les jours postérieurs à la date du jour




Dates Limites

$obj_cal->setDateMin("05/10/2008");        // date limite inférieure
$obj_cal->setDateMax("16 octobre 2008");        // date limite supérieure

NB : L'utilisation des dates limites annulera par défaut les fonctions activeJoursPasses et activeJoursFuturs

Ajout d'événements

Vous pouvez afficher des événements au survol d'une date. (cette fonctionnalité utilise du javascript)

$obj_cal->activeJoursEvenements();
// ajout de deux événements au 02 octobre 2008
// les formats de dates sont ceux reconnus par la classe dates
$obj_cal->ajouteEvenement("02 octobre 2008","evenement 1<br>");
$obj_cal->ajouteEvenement("2008-10-02","evenement 2");




Format d'écriture des liens
Par défaut, les liens pointent sur la page contenant le calendrier avec comme arguments supplémentaires &annee=YYYY&mois=MM&jour=JJ&semaine=SS.

Vous pouvez modifier les liens de destination avec les fonctions suivantes :
$obj_cal->setLienMois("http://www.toto.fr/mois/") ;
$obj_cal->setLienSemaine("http://www.toto.fr/mois/") ;
$obj_cal->setLienJours("http://www.toto.fr/mois/") ;

Ou encore donner un format d'écriture (format accepté par la fonction sprintf()):

$obj_cal->setFormatLienJours("http://www.toto.fr/%04s/%02s/%02s/");    
ex : http://www.toto.fr/2008/10/20/
$obj_cal->setFormatLienSemaines("http:// www.toto.fr /%04s/S%02s/");
ex : http://www.toto.fr/2008/S20/
$obj_cal->setFormatLienMois("http:// www.toto.fr /%04s/%02s/");
ex : http://www.toto.fr/2008/10/


Téléchargez le calendrier
Zip contenant les classes dates et calendrier, la feuille de style CSS et le code source de l'exemple.

 

Commentaires

Bonjour,
comment changer le premier jour de la semaine?

21/10/2008

pas possible pour le moment, mais pour la prochaine version, pourquoi pas ... profitez-en d'ailleurs pour me soumettre des idées de fonctionnalités que je pourrais ajouter

21/10/2008

J'ai corrigé un petit bug, notamment sur la classe dates. Pensez à mettre à jour le fichier source !

22/10/2008

bonsoir,
j'ai télécharger le calendrier et j'ai comme message d'erreur pourrais tu me dire a qoui cela correspond?
************************************************
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/144/sda/6/1/kaddour.fellah/test/authentification_redirections/calendrier/cl2/classe_dates.php on line 30)

29/10/2008

salut fellah
vérifie que tu as bien la dernière version de la classe_dates (tu la trouveras dans l'espace téléchargement) et que ton serveur accepte le php 5

29/10/2008

salut romuald
j'ai un petit soucie. j'ai téléchargé la dernière version de la class_dates, mon serveur(local easy php 2.0.0.0)accepte le php 5.
et j'ai ces erreurs:

Notice: Undefined offset: 4 in C:\Program Files (x86)\EasyPHP 2.0b1\www\calendrier\classe_dates.php on line 195

Notice: Undefined offset: 5 in C:\Program Files (x86)\EasyPHP 2.0b1\www\calendrier\classe_dates.php on line 222

Notice: Undefined offset: 5 in C:\Program Files (x86)\EasyPHP 2.0b1\www\calendrier\classe_dates.php on line 222

Notice: Undefined index: 2008-10-07 in C:\Program Files (x86)\EasyPHP 2.0b1\www\calendrier\classe_calendrier.php on line 262

Notice: Undefined offset: 4 in C:\Program Files (x86)\EasyPHP 2.0b1\www\calendrier\classe_dates.php on line 186

Notice: Undefined index: annee in C:\Program Files (x86)\EasyPHP 2.0b1\www\calendrier\index.php on line 42

pourrais tu m'aider?

Ps: j'ai fait l'installe du script sur un mac en local avec MAMP et tout c'est bien passé!

05/11/2008

Bonjour,
ce ne sont pas des erreurs mail des alertes que tu peux faire disparaitre en mettant error_reporting = E_ALL & ~E_NOTICE dans ton fichier php.ini

05/11/2008

RE
Problème résolu. Cette erreur proviendrait de la configuration du php de easyphp.
le fichier php.ini, qui configure le php, édite toute les erreurs.
j'ai rajouter une commande et les erreurs notice disparaissent:
error_reporting = E_ALL & ~E_NOTICE
merci

05/11/2008

Bonjour,
je suis une grande novice dans les blog et je tombe sur la page qui m'interesse, votre calendrier, je telecharge, mais ensuite je ne sais plus quoi faire. comment mettre ça sur mon blog ? désolée de vous ennuyer mais ce celendrier est super.
Merci

19/11/2008

Bonjour Krichoune,
Le Zip contient les classes dates et calendrier, la feuille de style CSS et le code source de l'exemple.
Il faut copier ces fichiers dans ton site, par exemple dans un repertoire "calendrier" et ensuite les inclure dans tes pages, comme c'est fait dans le fichier index.php, a savoir

- mettre dans la partie header HTML pour inclure la feuille de style
<link href="calendrier/calendrier.css" rel="stylesheet" type="text/css">
- mettre dans le code PHP
include "calendrier/classe_dates.php";
include "calendrier/classe_calendrier.php";

- utiliser la classe comme c'est indiqué dans les exemples, en ajoutant dans le code PHP :
$obj_cal = new classe_calendrier();
puis les différentes méthodes
$obj_cal->afficheMois() ....
qui vont paramétrer l'affichage du calendrier

et enfin
print $obj_cal->makeCalendrier();
qui va afficher le calendrier

Bien sûr, tout cela sous-entend que tu as accès au code source de tes pages...

19/11/2008

Bonsoir,

j'ai fait l'install du script mais voici le message d'erreur :

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/46/d170513085/htdocs/calendrier/classe_dates.php on line 30

merci par avance pour votre aide

Robert

07/03/2009

bonjour Robert,
la réponse à ton problème se trouve quelques commentaires au dessus : tu ne dois pas avoir php5 activé

08/03/2009

Bonjour Romualb,
Je n'arrive pas a activer les jours futurs (àprès la date du jour).
J'ai bien rajouter $obj_cal->activeJoursFuturs(), mais les jours restent inactifs !
Auriez une idée ?
Sinon il est vraiement très bien, facile à utiliser, bravo.

12/03/2009

Bonjour Foug, mets à jour la classe calendrier dans l'espace téléchargement, j'ai fait de nombreuses modifications et quelques corrections.

18/03/2009

Je l'ai pas précisé, mais la classe a été corrigée pour ne plus afficher de notices !

20/03/2009

petite erreur dans ta classe classe_calendrier:

/**
* initialisation de l'url du lien sur les semaines
*/
public function setLienSemaines ($a_lien)
{
$this->m_lienSemaines = $a_lien;
}


/**
* initialisation de l'url du lien sur les jours
*/
public function setLienJours ($a_lien)
{
$this->m_lienJours = $a_lien;
}

il faut enlever le s après $a_lien dans ces deux fonctions.

Sinon, génial cette classe. Beau boulot!!!

27/03/2009

Bonjour,

Super calendrier!! Je cherchais ça depuis longtemps.
Par contre, comment faire passer des variables dans l'url quand on change de mois (pour les jour pas de pb)?

Merci

28/03/2009

Bonjour tophus. Il n'est pas prévu de passer des variables sur la navigation des mois.

Bien vu Abobier, je corrige ça tout de suite !

28/03/2009

Bonjour,

merci beaucoup il est vraiment super ton calendrier. Mais dis-moi, est-il possible de mettre dans les évènements le contenu d'une base de données? et où trouver la fonction pour changer ou mettre à jour les évènements.
Merci d'avance

09/07/2009

Bonjour Taojah, il est possible de mettre du contenu provenant d'une base de données dans les évènements. C'est d'ailleurs le cas pour ce blog. La récupération des données de la base se fait en amont, puis les données sont envoyées au calendrier par la méthode ajouteEvenement.

09/07/2009

Bonjour romualb.

Félicitation pour ton script, il fonctionne très bien.

Cependant juste un petit soucis avec le module d'ajout d'événements.

Avec les événements affichés "en dur" dans le fichier calendrier.php, aucun problème :

Code :
$obj_cal->activeJoursEvenements();
$obj_cal->ajouteEvenement("date","evenement");

Cependant, quand j'essaye d'afficher les éléments de manière dynamique via ma bdd, le calendrier ne s'affiche plus.

Code :
$obj_cal->activeJoursEvenements();
$connect_db = mysql_connect(...);
mysql_select_db(...",$connect_db);
return $connect_db;
$requete="SELECT date,evenement FROM calendrier ";
$result=mysql_query ($requete);if ($result==0) die ("erreur requete0");
while ($ligne=mysql_fetch_row($result))
{
$date=$ligne[0];
$evenement=$ligne[1];
$obj_cal->ajouteEvenement("$date","$evenement");
}

Comment faire pour résoudre ce problème ?

25/08/2009

bonjour Kemish
il y a peut-être une erreur dans ton script, ou des caractères qui posent problème dans ta variable $ligne[1]
il me faut plus de détails...

25/08/2009

C'est OK, j'avaus fait une grosse boulette dans le script.
Après une petite promenade, on a les idées plus claires :-).
Merci encore pour ce petit calendrier, très pratique.

25/08/2009

Bravo pour ces classes c'est du beau travail, ça donne envie de se mettre à la POO.

J'ai repris votre script pour afficher une liste de forums venant d'une base de données MySQL .Ils sont classés sur des pages par jour ou par forums restant à venir (liste_jour.php, a_venir.php).
Mais le souci c'est que le fichier « calendrier.php » doit être placé dans une iframe sur un site en html car il ne supporte pas le php, (toute la partie php est alimentée par un autre serveur et aussi en iframe).

Comment faire pour que les liens sur les jours actifs pointent sur des popups ou au moins en _blank ?
Autre point que je n'ai pas compris comment désactiver les liens inactifs ?

Merci par avance et bonne continuation

23/10/2009

Bonjour Jack83
j'ai modifié la classe pour gérer les liens externes. voir ici.
Sinon, qu'entends-tu par désactiver les liens inactifs ?

24/10/2009

salut romualb,

ta classe est super. Je viens de la télécharger et je suis en train de la tester.
Simplement un petit bug, lorsque je navigue sur les mois et que je clique sur le lien de la semaine il me ramène automatiquement sur le mois en cours.
Voilà c'était juste pour remonter l'information
cdt,

HG

28/10/2009

c'est normal, dans l'exemple proposé la navigation (mois précédent et suivant) se fait en Ajax, les autres rechargent la page.
tu peux enregistrer le mois en cours en session pour revenir dessus au rechargement de la page

28/10/2009

super merci ça fonctionne bien

29/10/2009

Bonjour,
félicitation pour ton script.
j'ai une petite question,
je souhaite ajouter des images comme sur le calendrier du site pour chacun des évènements.

mais je n'arrive pas a positionner les images devant les différents évènements et je n'arrive pas non plus a sauté une ligne entre les événements d'un meme jour.

est il possible d'avoir de l'aide?
merci d'avance.
cordialement

10/11/2009

bonjour slo
c'est dans le cadre qui affiche les événements au survol de la souris que tu veux mettre une image et un saut de ligne ?
Le mieux est que tu m'envoie ton code (sur contact@romualb.com)

10/11/2009

Bonjour, et merci pour ce script très simple d'utilisation.

J'ai cependant un souci avec : lorsque je clique sur les flèches pour aller au mois précédent ou suivant, j'obtiens une erreur 404...

Savez-vous comment y remédier ?

Merci!

11/11/2009

Bonjour mariolus
difficile de t'aider sans voir ton code ou avoir un peu plus d'info ...

11/11/2009

Ma page où est inséré le calendrier :
include "calendrier/calendrier.php";

J'ai modifié le chemin pour les fichiers .js et .css.

Je n'ai pas touché aux deux fichiers classes.

Et mon fichier calendrier.php :
include "classe_dates.php";
include "classe_calendrier.php";
$obj_cal = new classe_calendrier();
$obj_cal->afficheMois();
//$obj_cal->afficheSemaines(true);
$obj_cal->afficheJours(true);
$obj_cal->afficheNavigMois(true);
//$obj_cal->activeLienMois();
$obj_cal->activeLiensSemaines();
//$obj_cal->activeLiensJours();
$obj_cal->activeJoursPasses();
$obj_cal->activeJourPresent();
$obj_cal->activeJoursFuturs();
//$obj_cal->setDateMin("04/02/2009");
//$obj_cal->setDateMax("2009-03-17");
$obj_cal->activeJoursEvenements();
$obj_cal->ajouteEvenement("28/11/2009","Test évènement
");
$obj_cal->activeAjax("ajax_calendrier","calendrier.php");
print ($obj_cal->makeCalendrier((isset($_POST['annee']) ? $_POST['annee'] : date("Y")),(isset($_POST['mois']) ? $_POST['mois'] : date("m"))));

12/11/2009

Bonjour mariolus
essaie avec $obj_cal->activeAjax("ajax_calendrier", "calendrier/calendrier.php");

12/11/2009

Ca marche, merci beaucoup !

12/11/2009

Superbe calendrier ! Très simple à paramêtrer, vraiment ce que je cherchais pour mon site. Bravo !

25/11/2009

Bonjour romuald, le script marchait très bien jusqu'à ce que je déplace mon site de dossier. Les dossiers relatifs n'ont pas changé, aussi je ne comprends pas pourquoi j'obtiens ce message d'erreur à la place du calendrier :

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/12/d140008829/htdocs/calendrier/classe_dates.php on line 30

Je ne vois pas trop d'où peut venir le problème...

03/12/2009

Bonjour mariolus, cette erreur apparait quand le le serveur n'est pas compatible PHP5.
Cependant, difficile d'être sûr sans voir le code...

03/12/2009

bonjour,
je trouve ce script idéal pour un site de spectacle que je fais, mais je n'arrive pas à le mettre en rapport avec ma base de donnée :( (je suis un peu débutant).

en fait je n'arrive a joindre que les date du moi en cours et juste impossible si je clique sur < ou >. de voir les dates sur un autre mois

je peux avoir un coup de pouce svp???

merci d'avance.

20/12/2009

bonjour, mushu06
le mieux est de m'envoyer ton code à l'adresse contact, que je voies ça.

20/12/2009

Bonjour,

Tout d'abord Bravo pour ce script !

Je cherche à mettre de liens sur chaque jour qui aura un évennement mais lrosque j'active la fonction "$obj_cal->activeLiensJours();" tous les jours sont soulignés comme de liens...

Comment faire pour ne laisser que les jours qui ont une action acifs et avec de liens ?

Merci d'avance,

R

10/01/2010

Bonjour Legall
il faut juste utiliser la méthode $obj_cal->activeJoursEvenements() pour activer les évènements, la méthode $obj_cal->activeLiensJours() est inutile dans ce cas.

10/01/2010

Bonjour.

Pourrais tu m expliquer comment gérer l'ajout d'évènement via une base de donnée ?

De même, est-il possible de n'afficher que les jours ou des événements on été ajouter dans une petite zone à par avec un lien vers une nouvelle fenêtre ?

Merci ;)

11/01/2010

bonjour TipX, je ferais prochainement une page dédiée au calendrier avec différents exemples, dont l'utilisation d'une base de données.

13/01/2010

Bonsoir
J'utilise votre calendrier qui est très bien sauf que je ne peut pas changer de mois. J'ai bien dans l'adresse du lien année, mois, jour, mais ça reste sur le mois en cours. Quand je clique sur les liens des semaines ou sur le mois en cours, ça recharge la page et c'est tout. Je n'ai rien changé à votre code, les liens pour les fichiers sont corrects. Le plus bizarre, c'est que quand je teste votre exemple, il marche fort bien, sur la même machine; Si vous avez une idée, je suis preneur. Merci d'avance;.
John

27/02/2010

Bonjour john
le mieux est que vous me m'envoyiez votre code source.

28/02/2010

howdy
Alors voila, mon souci c'est que mon site est en anglais...mon cas est-il desespere? Pourriez-vous me dire comment faire pour afficher les noms des jours du calendrier en anglais(excuses les accents...pour l'heure la seule langue configuree dans mon ordi est L'anglais) merci. Sinon bravo, tres genereux!

06/04/2010

Salut Paul
je vais faire une version du calendrier en français/anglais, il y a de la demande pour l'anglais.
Sinon en attendant, tu peux modifier les libelles avec jQuery...

06/04/2010

howdy
Je crois devoir attendre patiemmement la version francais/anglais, j'en ai bien peur. Je me connais pas du tout en jQuery. Merci d'avoir pris en compte les besoins des webmasters limites de sites anglais. Pour ma part, je vais continuer a "stick around" en esperant. Votre blog d'ailleurs est intuitif et "appealing". Thank you!

06/04/2010

salut Paul
j'essaie de faire vite !

06/04/2010

Bonjour,
tout d'abord superbe classe, bravo.
Ensuite j'aurais besoin d'avoir deux fois votre calendrier sur la même page.
j'ai donc séparer et déclarer deux calendrier différents.
Mon problèmes vient du fait que lorsque je change de mois que sur un calendrier et ba sa change sur l'autre^^ alors que toutes les classes, les liens et les fichiers/dossiers on était renommer pour le 2dn calendrier.

Je pense que le problème viens de l'AJAX mais je suis incapable de trouver ou^^.

Pourriez-vous m'aider?

19/04/2010

Bonjour Romualb,
Je n'ai pas d'erreur à l'installation du script mais pourtant le calendrier ne s'affiche pas.

Tu sais de quoi ça peut venir?

21/04/2010

@matalange : j'ai modifié la classe pour afficher plusieurs calendriers. je finis de tester et je mets ça en ligne
@Maxime : les erreurs sont elles activées dans le php.ini ? sinon le mieux est de m'envoyer ton code par mail sur contact

21/04/2010

bonjour,

merci pour ce calendrier, je suis en train de le tester via base de donnée pas de problème mais j'ai le même problème que hocino(28/10/2009) je ne saisi pas très bien comment mettre en cession le mois en cour...

22/04/2010

@mano : en navigation normale, tu mets en session la variable $_GET['mois'] ($_SESSION['mois']=$_GET['mois']), si tu utilises ajax, tu mets en session la variable $_POST['mois']

22/04/2010

Bonjour Romualb,
Tout d'abord, merci pour ce tuto, simple et très utile.
je l'ai inséré dans mes page, mais le problème, c'est que j'arrive pas à parcourir les mois malgré $obj_cal->afficheNavigMois(true);
tandis que dans un fichier à part, il fonctionne le plus normalement du monde.

en plus, si c'est possible bien sur, j'aimerai récupérer la date que l'utilisateur choisi et la mettre dans une variable pour ensuite la stocker dans une base de données

merci d'avance

12/05/2010

@sayo : salut, avec ton code, ce sera plus simple... tu peux me l'envoyer sur l'adresse contact

13/05/2010

Bonjour romualb
merci bien pour ce script j'en avais besoin
j'ais un petit probleme j'ai utilisé l'exemple de code si dessus mais j'ai toujours les jours inactif
une autre chose si c possible comment recuper la date selectionné je veut l'afficher sur ma page
merci bien

21/07/2010

@boucmacmilian :
- pour activer les jours, il faut utiliser la méthode setLienJours(). Si tu as défini des dates mini et maxi, seuls les jours compris entre ces dates seront activés.
- pour récupérer la date sélectionnée, tu peux passer la date en argument dans ton url en réécrivant l'url de destination avec la méthode setFormatLienJours() :
$obj_cal->setFormatLienJours("http://www.toto.fr?date=%04s-%02s-%02s");

21/07/2010

Salut, tout d'abord merci pour ce script c'est exactement ce que je recherchais depuis cette après-midi.

Sinon j'ai deux petits problèmes :

-Quand un événement est sur le jour actuel j'arrive pas à faire changer la couleur de fond de la cellule dans le css

-Malgré mon false pour le lien sur le mois, le mois reste en lien

Merci de votre aide =)

31/07/2010

Bonjour

Cette classe permet-elle d'ajouter/lire des évenements depuis une base mysql ou est-ce un "simple" calendrier ?

01/08/2010

@Ludovic: la cellule du jour a l'attribut class="today". Tu peux tester s'il y a un lien dans cette cellule (avec jQuery par exemple) et changer le style.
Pour le lien sur le mois, la méthode activeLienMois() n'a pas d'argument. Elle active le lien sur le mois. Pour ne pas l'activer, il ne faut pas l'appeller.

01/08/2010

@mika : cette classe n'affiche qu'un calendrier. Les évènements sont associés à des dates. Il vous faut donc gérer la partie mysql (récupération des évènements d'une base de données), puis envoyer les résultats à la classe calendrier via la méthode ajouteEvenement($date,$texte)

01/08/2010

Bonjour et merci pour cette superbe class!!
Je me trouve face à un petit problème.
J'ai deux pages "Events", j'interroge ma bdd pour générer le calendrier. Jusque là tout va bien.
Cependant, je souhaiterai générer deux liens différents en fonction de la catégorie des "events".
Je fais mes tests dans ma boucle sql... avec setLienJours() et là problème, le calendrier utilise la même url pour tous les "events".
N'y a t'il pas moyen d'avoir un lien different suivant les evenements ?
Cdlt
Fred<

30/09/2010

@Loremipsum31 : j'ai ajouté une méthode permettant de modifier le lien pour une date :
$obj_cal->setLienJour($a_date,$a_url);
ainsi, pour mettre le lien "test.php" sur la date du 01/10/2010, on ecrira :
$obj_cal->setLienJour("2010-10-01","test.php");

01/10/2010

Salut romualb,
je te remercie pour ce calendrier que tu l'a mis à notre disposition, mais j'ai quelque remarques:

- tu as appelé les attributs de la classe classe_date membre, en orienté objet ce sont des 'attributs' et non pas des 'membres'

- tu as fait une rélation d'héritage entre les classes date et calendrier. Logiquement ca ne peut pas être, au lieu de ca, la classe Calendrier peut utiliser et instansier la classe Date.
Exemple d'héritage: Triangle hérite d'ObjetGraphique, Homme et Femme héritent de Personne, Plante et Fleure héritent de Plante, ...

24/10/2010

@ka3sem: bonjour et merci pour ces précisions. -Les attributs sont également appelés membres (voir la doc php : Les variables au sein d'une classe sont appelées "propriétés". On peut également les retrouver sous la dénomination "attributs", "membres" ou "champs"...)
-la classe calendrier hérite effectivement de la classe dates car elle reprend et utilise les méthodes de la classe date pour afficher un calendrier.

25/10/2010

bonjour

je n'arrive pas à mettre de lien sur un jour
il me met:
http://www.toto.fr/mois/calname=moncalendrier&annee=2011&mois=01

17/01/2011

@adoob : il faut utiliser la méthode $obj_cal->setLienJour($a_date,$a_url); comme indiqué dans un commentaire précédent. Vérifie aussi que tu as bien la dernière classe.

18/01/2011

bonjour Romualb,
avant tout merci pour ton code et tes explications, je viens de lire tout ton code en large et en travers, et c'est super.
Je vais m'en resservi pour faire un calendrier générer par une base de donnée, cependant pour mon cas ne serait il pas plus simple que la fonction ajoute se fasse en fonction de la bdd (insert) et que affichage se fasse par le contenu de la base (select)
donne moi ton avis ^^

04/04/2011

@mimi : il faut garder la distinction entre la base de données et le calendrier. Tu récupères ce que tu dois afficher (select), puis tu ajoutes ces données au calendrier (ajouteEvenement). Ceci permet d'avoir quelque chose de plus souple si tu veux un jour ne plus utiliser le calendrier pour afficher tes données ou si tu dois modifier tes requetes SQL.

04/04/2011

Bonjour, j'ai télécharger votre calendrier qui est très bien, par contre j'ai rencontré un petit problème.

En fait quand je clique sur un jour, et que c'est le mois en cours, l'URL change bien en mettant des variable à récupérer en GET, tout cela reste sur la page index, par contre si je suis sur un autre mois, en cliquant sur un jour je suis redirigé vers la page calendrier.php.

27/04/2011

@Pazair : difficile à dire sans le code...

01/05/2011

Bonjour,

Très sympa cette classe, par contre gère t-elle les périodes (ex évènement du 18/05/11 au 18/06/11) ?

02/05/2011

@onime_no_squat : il suffit d'ajouter l'évènement sur chaque jour

02/05/2011

Bonjour, j'ai intégré votre calendrier sur mon futur site en cours de codage. Mon site est en 4 langues et en parcourant votre code j'ai pu remarqué que le calendrier gérait déjà 2 langues.

Ma question est relativement simple, j'aimerais savoir si il est possible de changer la langue du calendrier de façon dynamique. A chaques pages, un $_GET['lang'] (avec en valeur fr, eng, spa ou nl) est renvoyée pour pouvoir afficher la langue correcte choisie au début. J'aimerais savoir si il y a moyen de faire passer cette variable $_GET dans la classe pour faire le choix de la langue.

Merci d'avance !

03/05/2011

Je me doutais de la réponse mais j'espérais secrètement avoir fait une impasse visuelle sur la méthode miraculeuse :D
Merci quand même ^^

04/05/2011

@izrafel: vous pouvez utiliser la méthode setLangue(), ex :
$obj_cal->setLangue("EN");
Mais la classe date ne gère que le francais (FR) et l'anglais (EN), il faudra ajouter les mois et jours dans les autres langues dans la classer dates.

04/05/2011

Le code est celui du dossier zip, je n'ai rien rajouté, ni enlevé.

05/05/2011

@Pazair : téléchargez les dernières classes calendrier et date. J'ai retesté sans pb.

05/05/2011

Bonjour, tout d'abords merci et bravo pour cette classe, c'est parfaitement ce que je cherchais.
Cependant je voudrais savoir si il est possible d'afficher les 3/4 jours du moins precedent ainsi que les 2/3 jours du moins suivant à la place d'un espace vide.

Merci en tout cas !

30/05/2011

Salut Romualdb, et sincères félicitations pour ce script. Je l'ai largement adapté pour mon futur site et - cerise sur le gateau - il fonctionne impec sous IE 5.5+ et toutes versions de moins de 10 ans de Apple/Safari, Chrome, Opéra, Firefox... Bravo, vraiment, c'est du top-boulot ça ;-)
Mais bon... Après avoir réalisé avec succès moults "bidouillages" sur ton code, je suis en train de sécher sur un seul et ultime point (et comme ça fait 3 jours que je trime sur ce pb sans résultat, c'est pour ça que je me permets de me tourner vers toi en dernier ressort...) :
Donc voilà :
Jusqu'à présent, pour une date survolée, la div "event_***" s'affiche lors de l'évènement onmouseover sur une date donnée "***", et disparaît lors du onmouseover sur cette même date.
Or, j'aimerais que cette div reste affichée, jusqu'à ce qu'un autre évènement onmouseover (sur une autre date) ait pour effet de
1) masquer l'ancienne div, et
2) afficher la nouvelle div de la nouvelle date survolée...
Si tu pouvais me donner ne serait-ce que qq pistes de solution à ce pb...
...et encore merci pour ce script génialissime...
@+
Marmotte

30/05/2011

@dangan: il n'est pas possible pour le moment de combler les cases vides avec les jours des autres mois, mais je mets ça sur la liste des évolutions
@LaMArmotte : pareil, pas possible dans l'etat actuel de la classe. Il suffit cependant dans le code de supprimer l'événement onmouseout d'origine et de cacher tous les divs event_*** lors d'un mouseover

30/05/2011

Bonjour,
J'ai bien installé le calendrier mais je n'arrive pas à changer de mois pour regarder le mois de septembre.
Que dois-je modifier?
Merci d'avance

11/08/2011

@remi : voici quelques indices :
la méthode afficheNavigMois(true); permet d'afficher les liens vers les mois suivants et précédents.
activeLienMois() permet d'activer les liens sur les mois.

15/08/2011

Bonjour,
J'ai bien essayé ce que tu ma dit romualb mais je reste bloqué sur le mois d'aout?
Merci d'avance

15/08/2011

as tu un message d'erreur ?
sinon tu peux m'envoyer ton code ?

15/08/2011

Je n'ai pas de message d'erreur il reste juste sur la page du mois d'aout.
Pour le code lequel tu veux et veux tu un copier/coller ou par email
Merci

15/08/2011

par mail sur contact@romualb.com

15/08/2011

bonjour Romualb
Lu avec intérêt les divers commentaires élogieux et je suis tenté mais j'ai essayé de voir le modèle (en haut, droite de cette page) l'accès (uniquement sur date du jour) n'est pas autorisé.
Message affiché: "La commande locate permet de rechercher très rapidement un fichier sur votre système linux.
Locate recherche sur une base de données contenant le nom de tous vos fichiers, celle-ci étant mise à jour par la commande updatedb.
Si ces 2 commandes ne sont pas intallées, voici comment les installer sur Fedora.

Mon but est de relier la table à une BD Mysql et de nourrir une table avec des éléments comme datedebut, heuredebut, datefin, heurefin, organisme, lieu, titreeven, éventuellement lin vers un texte documentaire (communiqué de presse) plus les classiques (nom de contact, email, etc.) et, surtout relier à un système d'alerte pour que ceux qui le veulent soient avertis de l'entrée ou de l'imminence (rappel) d'un événement. (avec si possible des filtres, pays, catégorie, etc.)
si j'ai bien compris on ne peut travailler que sur le mois en cours pas sur plusieurs mois ?
merci d'éclairer ma lanterne

19/08/2011

@fathi : on ne peut pas afficher plusieurs mois, si c'est bien votre demande.

19/08/2011

Bonjour Romuald,
Bravo pour cette classe, que j'ai substantiellement adaptée pour un site en cours de développement dont j'aurais le plaisir de te donner le lien lors de sa mise en ligne officielle !
Parmi ces adaptations, j'ai fait en sorte qu'en cliquant sur une date avec évènement, on affiche la page d'édition-agenda de l'évènement associé. Et comme c'est un backoffice je dois ajouter à ce lien un paramètre d'identification de l'utilisateur connecté (il ne s'agit pas d'une $_SESSION PHP mais d'un id créé à la volée et stocké lors d'une connexion réussie, et qui suit l'utilisateur tout au long de ses actions dans le backoffice et jusqu'à déconnexion ou expiration).
Bref, là où je sèche complètement, c'est quand il s'agit de passer ce paramètre "identifiant" supplémentaire sur les liens de navigation $lienMoisSuiv et $lienMoisPrec, pour ensuite le passer sur chaque lien de date avec évènement.
J'arrive bien à récupérer ce paramètre dans les liens de date avec évènement pour le mois en cours (càd lors du premier affichage-chargement du calendrier), mais dès que je change de mois, je perds ce paramètre !
J'ai placé cette variable en première ligne de la classe_calendrier.php :
$identifiant = $ident (cette variable étant présente dans la page qui contient l'include du calendrier), et c'est pour ça que je retrouve bien ce paramètre dans mes liens de date du mois en cours, soit au premier chargement du calendrier.
J'espère avoir été assez clair dans mes explications !
D'avance merci pour l'aide que tu pourrais m'apporter
@+

25/08/2011

Romuald,

Merci d'oublier mon précédent msg de tout à l'heure car j'ai changé de "tactique" (puisqu'apparemment on ne peut pas changer les paramètres de $lienMoisSuivant et $lienMoisPrécédent), et aussi en espérant résoudre mon pb, mais rien n'y fait !

Alors voilà, j'ai rajouté des paramètres dans $obj_cal->ajouteEvenement() : maintenant il y a 6 paramètres (!) : ($Date, $Intitule_Evenement, $Secteur_concerne, $url_photo, $id_date_agenda, $id_connexion).
Tous ces paramètres sont issus d'une requête Select MySql et sont ajoutés à ajouteEvenement() via une boucle While.
Ensuite, l'intitulé_évènement, le secteur_concerné et l'url_photo sont affichés (dans une div sous le calendrier) sur mouseover de la date correspondante dans le calendrier. L'id_date_agenda, tout comme l'id_connexion, eux, sont ajoutés comme paramètres GET dans le lien d'une date du calendrier, lien qui pointe vers une page d'édition/gestion de cette date, du genre : edition_agenda.php?id_evenement=$id_date_agenda&ident=$id_connexion.
J'ai construit ce lien en modifiant ta variable $onclick de la classe calendrier, cette même variable où je passe mes autres paramètres et qui donne le résultat escompté : ma div s'affiche bien avec son contenu correspondant à la date survolée, et l'id_date_agenda est bien présent dans le lien et ce quelle que soit ma navigation de mois en mois, MAIS ce fichu id_connexion (qui est censé être dans le même lien), BEN NON, il n'y est pas : j'ai seulement "ident=" sans valeur pour ce paramètre, et ce dès que je change de mois ! Par contre au 1er affichage du calendrier, doc pour le mois en cours, cet s'affiche bien dans mes liens de dates.
C'est stupéfiant que je perde ce seul paramètre en changeant de mois, alors qu'il est issu de la même requête que les autres paramètres et traité de la même façon.
Voilou...
Un grand merci si tu pouvais m'aider car là, je ne vois pas...

25/08/2011

@chris76 : merci de m'envoyer ton code par mail sur l'adresse de contact, parce que là, c'est pas évident à comprendre...

25/08/2011

Bonjour et merci beaucoup d'avoir mis ce superbe calendrier à la disposition de tout le monde. Merci également pour vos réponses attentives aux questions que les utilisateurs vous ont posées.
Quant à moi, j'ai aussi deux petites questions a vous poser :
- N'ayant pas connaissance au mécanisme du fonctionnement d'ajax, je voudrais savoir quel est le moyen le plus simple de récupérer le jour du mois dans la fonction calendrier.php quand on clique avec la souris sur le lien de ce jour ? Je m'explique : j'utilise votre classe calendrier pour changer la couleur du fond des cases en fonction des différents types d'évènements en lisant d'un fichier sur le serveur. Pour ce faire, j'ai créé un tableau de couleurs dans classe_calendrier et ai défini les classes correspondantes à chaque couleur dans le fichier calendrier.css et ça marche sans problème. J'ai donc besoin de rajouter la date et le type d'évènement automatiquement dans le fichier en question après avoir cliquer sur le lien du jour pour que le fond de la case soit changé une fois que le calendrier est remis à jour sachant que l'année et le mois y sont déjà disponibles. J'espère que j'étais assez clair dans mon explication.
- Ma deuxième question est très courte : envisageriez-vous de développer un calendrier affichant les jours par demi-journée ?

Merci par avance pour votre réponse.
Cordialement.
Léo

31/08/2011

@Léo : si j'ai bien compris, tu cherche juste à modifier la couleur de la case du jour selon l'évènement associé. Ça devrait se faire simplement avec jQuery par exemple : pour tous les jours ayant un événement $('.event'), tu ajoute la classe correspondante à l'événement sur la case, avec addClass();
Et sinon, il n'est pas prévu de gérer les demi-journées. C'est un calendrier qui sert à la base à sélectionner une date. La division des jours (et même l'ajout d'évènements d'ailleurs) est plus une une utilisation de type agenda.

31/08/2011

Re-bonjour,
je pense que j'ai trouvé la réponse pour ma 1ère question. Je peux extraire la date en lisant l'URL de la page :
$monUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
Par contre, pour le mois courant tout marche sans problème mais, quand je passe sur le mois suivant et je clique sur un jour, l'affichage change et les liens vers les années et les mois suivants disparaissent. Est-ce normale ?
Merci.
Cdt.
Léo

31/08/2011

Malheureusement je ne connais pas jQuery. Je suis très novice dans le domaine.
En tout cas je te remercie pour ta réponse si rapide.
Merci et bonne continuation.
Cdt.
Léo

31/08/2011

Salut,

Ton script n'est pas valide en XHTML strict, c'est normal?

09/10/2011

@Amouna: il doit bien l'être en transitionnel alors...

09/10/2011

Merci beaucoup pour cette classe super pratique et simple d'utilisation !

Je vais voir si on peut facilement la modifier pour n'activer les liens que sur des jours "ouvrables" (tout sauf le week-end par exemple).

Encore merci pour ces classes offertes gracieusement et bon dimanche !

30/10/2011

Merci beaucoup, il fonctionne très bien

31/01/2012

 

Ajouter un commentaire

nom / pseudo :
e-mail :

(Votre e-mail ne sera ni exploité, ni divulgué.)

site (facultatif)
 
romualb.com est sur Facebook
<Février 2012 
LunMarMerJeuVenSamDim
  01 02 03 04 05
06 07 08 09 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29