blog actif depuis 774 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.
Bookmark and Share

 

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

 

Ajouter un commentaire

nom / pseudo :
e-mail :

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

site (facultatif)
 

Webmaster depuis maintenant plus de 10 ans, j'ai créé ce blog pour publier mes retours d'expérience et parler du Web et du développement Web en général, mais aussi de plein d'autres choses...

romualb.com est sur Facebook
<Juillet 2010 
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 30 31  

 

 

Referencement annuaire gratuit Annuaire carte postale blog,,personnel communiquer gratuit Paperblog : Les meilleurs actualités issues des blogs Classement de sites - Inscrivez le vôtre! Inscrivez-vous maintenant sur Viadeo Web Developement Blogs - BlogCatalog Blog Directory web counter