Calendrier simple en PHP
<< | mai 2006 | >> | ||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
aujourd'hui |
Version : v2.2
Auteur : Sylvain Baudoin
Licence : GPL (GNU General Public License)
Veuillez remonter toute erreur à [email protected]
Si nécessaire, vous pouvez renommez les fichiers :
_js
. Par exemple, si vous avez
renommeacute; le fichier calendar.php en foo.php,
renommez le fichier calendar_js.php en foo_js.php.Pour un exemple complet, vous pouvez consulter la page de démonstration demo_fr.php. Le détail complet des paramètres de configuration du calendrier est donné dans un paragraphe dédié.
Il suffit de procéder de la façon suivante dans la page PHP où vous voulez afficher le calendrier :
<html>
<head>
...
<link rel="stylesheet" href="calendar.css" type="text/css" />
...
</head>
<body>
...
<?php
...
// Appel au script du calendrier
require_once("calendar.php");
// Parametrage
$params = array(...);
// Affichage
Calendar($params);
...
?>
<body>
<html>
Les chemins vers la feuille de style et le script calendar.php doivent bien entendu être corrigés par rapport à l'endroit où vous avez mis ces fichiers.
Le paramétrage du calendrier se fait grâce à un tableau associatif. Par exemple :
$params = array(
"LANGUAGE_CODE" => "en",
"FIRST_WEEK_DAY" => 1,
"USE_SESSION" => true
);
Calendar($params);
ATTENTION !!! si vous activez l'utilisation des sessions (USE_SESSION
= true
), vous devez créer vous-même la session au tout début de
votre page car le script du calendrier ne le fera pas.
Pour mettre plusieurs calendrier sur une même page, inutile de réincorporer le script
calendar.php : il suffit de définir les nouveaux paramètres
de chaque calendrier et d'appeler la fonction Calendar()
avec ces paramètres :
...
<?php
require_once("calendar.php");
// Premier calendrier
$params1 = array(...);
Calendar($params1);
...
?>
...
<?php
// Second calendrier
$params2 = array(...);
Calendar($params2);
?>
...
Depuis la version 2.1, il est possible de récupérer le code HTML du calendrier
dans votre code PHP en précisant la valeur "return"
au paramètre
OUTPUT_MODE. Exemple :
...
<?php
require_once("calendar.php");
$params1 = array(..., "OUTPUT_MODE" => "return", ...);
$html_calendar = Calendar($params1);
...
// Affichage du calendrier
echo $html_calendar;
...
?>
...
ATTENTION !!! pour l'intégration JavaScript, il reste nécessaire d'avoir un serveur Web PHP pour exécuter les scripts calendar.php et calendar_js.php. Le but de cet intégration JavaScript est de permettre d'afficher le calendrier dans les pages Web dans lesquelles il n'est pas possible d'écrire du PHP.
Pour cette intégration, il suffit de procéder de la façon suivante :
<html>
<head>
...
<link rel="stylesheet" href="calendar.css" type="text/css" />
...
</head>
<body>
...
<!-- Affichage du calendrier -->
<script type="text/javascript" src="calendar_js.php?..."></script>
...
<body>
<html>
Le paramétrage du calendrier se fait en passant les paramètres du calendrier
et leur valeur en tant que variables d'URL. Ainsi, pour définir les paramètres
CSS_PREFIX à "foo_"
et USE_SESSION à true
,
il faut faire :
<script type="text/javascript"
src="calendar_js.php?CSS_PREFIX=foo_&USE_SESSION=true">
</script>
Pensez bien à ajouter la feuille de style du calendrier dans votre page (voir plus bas, paragraphe "Style du calendrier").
Le paramétrage du calendrier se fait en définissant des paramètres. Pour chaque paramètre non défini, des valeurs par défaut sont utilisées :
Paramètre | Description | Valeur par défaut |
---|---|---|
PREFIX | préfixe des paramètres d'URL et de session du calendrier. Définissez une valeur différente pour chaque calendrier à afficher sur la même page. Ne pas commencer le préfixe par un chiffre. | "calendar_" |
CSS_PREFIX | préfixe des classes CSS utilisées pour le style du calendrier. A utiliser pour afficher des calendriers dans différents styles. | "calendar_" |
DATE_URL | si défini, indique une URL à utiliser pour rendre les jours du calendrier cliquables. Cette URL est complétée par le paramètre d'URL indique par le paramètre URL_PARAMETER du calendrier. | "" |
URL_PARAMETER | si le paramètre précédent (DATE_URL) est défini, indique le nom du paramètre d'URL à utiliser pour compléter l'URL DATE_URL avec la date cliquée. La date est passée au format indiqué par le paramètre URL_DAY_DATE_FORMAT pour les jours et URL_MONTH_DATE_FORMAT pour le mois et l'année (lien du titre du calendrier). | "date" |
USE_SESSION |
mettre à true pour stocker les données d'affichage du
calendrier en session. Cela permet de mémoriser l'affichage lorsqu'on navigue
entre plusieurs pages.ATTENTION !!! si vous utilisez les sessions, n'oubliez pas de créer la session au tout début de votre script, ce script ne le fera pas. |
false |
PRESERVE_URL |
indique, au moment de constuire les URL des liens "mois précédent"
et "mois suivant", s'il faut conserver (true ) l'URL actuelle de la
page et ajouter la date (?xx=yyy&...&date=... ) ou s'il faut supprimer
la query string et ne mettre que le paramètre de date (?date=... ).
|
true |
JS | indique si le calendrier est intégré en JavaScript (true ) ou non. |
false |
JS_URL | si l'intégration JavaScript est utilisée, doit indiquer l'URL de la page intégrant le calendrier. | "" |
FIRST_WEEK_DAY | premier jour de la semaine : 1 pour lundi, 2 pour mardi, etc..., 7 ou 0 pour dimanche. | 1 (lundi) |
LANGUAGE_CODE | code ISO à 2 lettres de la langue d'affichage du calendrier. | "fr" (francais) |
CLICKABLE_TITLE | lorsque DATE_URL est défini, dit si le titre du calendrier (i.e. le mois + année en haut du calendrier) est cliquable. Dans ce cas, la date passée dans le paramètre d'URL est au format indiqué par le paramètre URL_MONTH_DATE_FORMAT. | true |
OUTPUT_MODE |
si défini à "return" , le code HTML du calendrier
sera renvoyé en tant que valeur de retour de la fonction Calendar .
Si défini à "echo" , le code HTML du calendrier
sera directement renvoyé dans la réponse au navigateur. Utilisez
"return" si vous voulez récupérer le code HTML
du calendrier dans une variable PHP et éventuellement faire des
traitements dessus.
|
"echo" |
URL_DAY_DATE_FORMAT |
lorsque DATE_URL est défini, indique le format de la
date des jours du calendrier passée dans l'URL. Ce format doit être
donné selon le format supporté par la fonction PHP date .
Sans effet si DATE_URL n'est pas défini.
|
"dmY" (jjmmaaaa) |
URL_MONTH_DATE_FORMAT |
lorsque DATE_URL est défini, indique le format de la
date du mois passée dans l'URL (lien du titre du calendrier). Ce format doit être
donné selon le format supporté par la fonction PHP date .
Sans effet si DATE_URL n'est pas défini.
|
"mY" (mmaaaa) |
Vous pouvez rendre les jours du calendrier cliquables. Pour cela, définissez le paramètre DATE_URL. Dans ce cas, toutes les dates du calendrier seront cliquables. Les URL des dates sont alors construites de la façon suivante :
<valeur du paramètre DATE_URL><?|&><valeur
du paramètre URL_PARAMETER>=<date du jour au format URL_DAY_DATE_FORMAT>
Par exemple, si vous définissez DATE_URL à "/rep1/rep2/script.php?foo=bar"
,
URL_PARAMETER à "event_date"
et URL_DAY_DATE_FORMAT
à "Ymd"
, alors les URL des jours du calendrier seront les suivantes :
/rep1/rep2/script.php?foo=bar&event_date=20060813
/rep1/rep2/script.php?foo=bar&event_date=20060814
...
L'URL du titre du calendrier (i.e. l'URL du mois) est construite de la même façon mais en utilisant URL_MONTH_DATE_FORMAT à la place de URL_DAY_DATE_FORMAT.
Dans cette version du calendrier (de même que les versions précédentes),
il n'est pas possible de rendre seulement quelques cliquables par simple paramétrage. Si
vous souhaitez ne rendre que quelques dates cliquables, vous devez modifier le code du fichier
calendar.php
par exemple pour aller chercher ces dates dans une base de données.
Le style du calendrier est entièrement défini par CSS. Vous devez déclarer vous-même la feuille de style du calendrier dans le code HTML de vos pages. Par exemple, ajoutez la ligne suivante dans les en-têtes de vos pages Web si vous avez placé la feuille de style par défaut du calendrier à la racine de votre site :
<link rel="stylesheet" href="/calendar.css" type="text/css" />
Reportez-vous également aux démos fournis avec ce script.
Vous pouvez utiliser la feuille par défaut (le fichier calendar.css
) ou vos
propres styles. Pour le détail des classes utilisées, veuillez consulter
le fichier calendar.css. Le nom des classes est calculé
en utilisant le préfixe défini par le paramètre CSS_PREFIX.
Ceci permet de définir deux styles différents pour deux calendriers affichés
dans la même page. Par exemple, si vous définissez le paramètre CSS_PREFIX
à foo_
pour un calendrier, les classes CSS qui seront appliqués
seront foo_title pour le titre du calendrier (année + mois), foo_weekend
pour les jours du week-end, etc.
Pour masquer le lien situé sous le calendrier et ramenant au mois en cours, définissez
la propriété CSS display à none
.
Depuis la version 2.0, ce logiciel supporte plusieurs langues d'affichage. La langue d'affichage par défaut est le français. La version 2.0 possède les traductions pour le français, l'anglais, l'allemand, l'espagnol et l'italien. La version 2.1 a apporté une traduction chinoise.
Rappel : pour modifier la langue d'affichage, utilisez le paramètre LANGUAGE_CODE du calendrier (voir le paramétrage) pour indiquer le code ISO 639 de la langue. Vous trouverez la liste de ces codes ISO 639 des langues sur le site http://www.loc.gov/standards/iso639-2/langcodes.html. Exemple :
<?php
...
// On affiche en allemand (code ISO 639 = de)
$params = array(..., "LANGUAGE_CODE" => "de", ...);
Calendar($params);
...
?>
Pour ajouter une langue au calendrier, procédez de la façon suivante :
%m
sera remplacé par
le mois et %y
sera remplacé par l'année sur 4 chiffres. Exemple :
"%y - %m"
fera afficher "2006 - janvier", "2006 - février", etc.Version | Description |
---|---|
2.2 |
|
2.1 |
|
2.0 |
|
1.1 |
|
1.0 |
|
Copyright (c) 2005-2007 - Sylvain BAUDOIN ([email protected])
Ce programme PHP est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier au titre des clauses de la Licence Publique Générale GNU, telle que publiée par la Free Software Foundation ; soit la version 2 de la Licence, ou (à votre discrétion) une version ultérieure quelconque.
Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même une garantie implicite de COMMERCIABILITE ou DE CONFORMITE A UNE UTILISATION PARTICULIERE. Voir la Licence Publique Generale GNU pour plus de détails.
Vous devriez avoir reçu un exemplaire de la Licence Publique Generale GNU avec ce programme (fichier gpl.txt) ; si ce n'est pas le cas, écrivez à la Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.