Vous n'êtes pas identifié(e).
Bonjour,Bonsoir
j'ai un code pour calendrier php que j'aimerais bien integré sur mon zite.
Mais nul en php je sais pas trop comment faire pour le faire apparaitre
[ inclure ??
voici mon code
celendrier.php
<?
//----------------------------------------------------------------
// Voici un petit calendrier qui affiche entre autre,les numeros
// de semaine, tous les jours feries, les week end ...
//
// Version 1.0
//
// Auteur: Patrice FROMHOLTZ
// email: webmaster@lafoireinformatique.com
// web: http://www.lafoireinformatique.com/
//
//----------------------------------------------------------------
?>
<style TYPE="text/css">
<!--
.titremois { font-family: Helvetica, Arial; font-size: 13px; font-weight: bold; color: #FDFC65; background: #1C2D67 }
.titremois:link { font-family: Helvetica, Arial; font-size: 13px; font-weight: bold; color: #FDFC65; background: #1C2D67; text-decoration: none }
.titremois:visited { font-family: Helvetica, Arial; font-size: 13px; font-weight: bold; color: #FDFC65; background: #1C2D67; text-decoration: none }
.titremois:hover { font-family: Helvetica, Arial; font-size: 13px; font-weight: bold; color: #FF0000; background: #1C2D67; text-decoration: underline }
.titrejours { font-family: Helvetica, Arial; font-size: 9px; color: #FDFC65; background: #1C2D67 }
.titrenum { font-family: Helvetica, Arial; font-size: 11px; color: #FDFC65; background: #1C2D67 }
.titrenum2 { font-family: Helvetica, Arial; font-size: 11px; color: #AAAAAA; background: #1C2D67 }
.titreweek { font-family: Helvetica, Arial; font-size: 9px; color: #AAAAAA; background: #1C2D67 }
.titreweek2 { font-family: Helvetica, Arial; font-size: 11px; color: #AAAAAA; background: #1C2D67 }
.titrewend { font-family: Helvetica, Arial; font-size: 11px; color: #FDFC65; background: #5060A0 }
.titrewend2 { font-family: Helvetica, Arial; font-size: 11px; color: #AAAAAA; background: #5060A0 }
.titrenow { font-family: Helvetica, Arial; font-size: 11px; color: #FDFC65; background: #90A0E0 }
-->
</style>
<?
function calcul_joursferies($month,$day,$year)
{
$resultat=false;
$jf1=$year-1900;
$jf2=$jf1%19;
$jf3=intval((7*$jf2+1)/19);
$jf4=(11*$jf2+4-$jf3)%29;
$jf5=intval($jf1/4);
$jf6=($jf1+$jf5+31-$jf4)%7;
$jfj=25-$jf4-$jf6;
$jfm=4;
if ($jfj<=0){
$jfm=3;
$jfj=$jfj+31;
}
$paques=(($jfm < 10) ? "0".$jfm : $jfm)."/".(($jfj < 10) ? "0".$jfj : $jfj);
$lunpaq=date("m/d",mktime(12,0,0,$jfm,$jfj+1,$Year));
$ascension=date("m/d",mktime(12,0,0,$jfm,$jfj+39,$Year));
$lunpent=date("m/d",mktime(12,0,0,$jfm,$jfj+50,$Year));
$JourFerie= Array("01/01","05/01","05/08","07/14","08/15","11/01","11/11","12/25","$paques","$lunpaq","$ascension","$lunpent");
$nbj=0;
$val= $lien=date("m/d", mktime(0,0,0,$month,$day,$year));
while ($nbj<=count($JourFerie)){
if ($JourFerie[$nbj]==$val){
$resultat=true;
$nbj=15;
}
$nbj++;
}
return( $resultat );
}
$tabmonth = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin","Juillet", "Août", "Septembre", "Octobre", "Novembre","Décembre");
$tabday = Array("Lun", "Mar", "Mer", "Jeu", "Ven", "Sam","Dim");
// selectionne la date d aujourd hui si aucune saisie
if (!$dt){
$year = date("Y");
$now = date("Y/m/d");
$month = date("n");
$day = date("d");
}else{
$data=explode(" ",$dt);
$year=$data[0];
$month=$data[1];
$day=$data[2];
$now=date("Y/m/d", mktime(0,0,0,$month,$day,$year));
}
$moyear=$tabmonth[$month-1]." ".$year;
?>
<table WIDTH="160" BORDER="0" CELLSPACING="0" CELLPADDING="2">
<tr>
<td CLASS='titremois' colspan="8" ALIGN="center">
<?
$lien=date("Y+m+d", mktime(0,0,0,$month-1,$day,$year));
echo "<A CLASS='titremois' href=\"?dt=$lien\"><<</a>";
echo "<A CLASS='titremois'> $moyear </a>";
$lien=date("Y+m+d", mktime(0,0,0,$month+1,$day,$year));
echo "<A CLASS='titremois' href=\"?dt=$lien\">>></a>";
?>
</td>
</tr>
<tr>
<?
echo"<td WIDTH=20 class='titreweek' ALIGN='center'>Sem</td>\n";
for ($i=0;$i<7;$i++) {
echo"<td WIDTH=20 class='titrejours' ALIGN='center'>$tabday[$i]</td>\n";
}
?>
</tr>
<?
$num_day=date("w", mktime(0,0,0,$month,01,$year));
if($num_day==0){$num_day=7;}
$max_day=date("t", mktime(0,0,0,$month,01,$year));
$cpt_day=2;
while ($cpt_day<=$max_day+$num_day) {
echo "<tr>";
// calcul le numero de semaine
$nb_day=date("z", mktime(0,0,0,$month,$cpt_day-$num_day+3,$year));
$val=intval($nb_day/7)+1;
echo "<td WIDTH=20 class='titreweek2' ALIGN='center'>".(($val < 10) ? "0".$val : $val)."</td>\n";
// affiche les jours du mois
for ($i=0;$i<7;$i++) {
$theday=date("D", mktime(0,0,0,$month,$cpt_day-$num_day,$year));
$val=date("d", mktime(0,0,0,$month,$cpt_day-$num_day,$year));
$jourferie=calcul_joursferies($month,$cpt_day-$num_day,$year);
$class="titrenum";
if (($theday=="Sun") or ($theday=="Sat")or ($jourferie)){ $class="titrewend";}
if ($now==date("Y/m/d",mktime(0,0,0,$month,$cpt_day-$num_day,$year))){ $class="titrenow";}
if ((($cpt_day-$num_day)<1) or (($cpt_day-$num_day)>$max_day)){
$class="titrenum2";
if (($theday=="Sun") or ($theday=="Sat")or ($jourferie)){ $class="titrewend2";}
}
$cpt_day++;
echo "<td WIDTH=20 class='$class'ALIGN='center'>".$val."</td>\n";
}
echo "</tr>";
}
?>
</table>
Dernière modification par rebel (03/02/2008 19:56:48)
Hors ligne
ok oublier j'ai trouvé un autre qui fonctionne bien
Hors ligne
Et comment tu as fait alors pour intégrer ce calendrier dans ton site ?
Ca peut m'intéresser ...
Dernière modification par Satanas (04/02/2008 20:17:41)
Hors ligne
J'ai crée un article titre (source) ModuleCalendrier // caché
sous forme de module caché
Après dans template.php j'ai ajouté
<center><?php echo $zite->get_content(ModuleCalendrier, true) ?></p></center>
Tout juste sous
div id="side">
et le code :
<SCRIPT>
<!-- Begin
// Definir l'ornement
var day_of_week = new Array('Dim','Lun','Mar','Mer','Jeu','Ven','Sam');
var month_of_year = new Array('Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Decembre');
// DECLARER ET INITIALIZER LES VARIABLES
var Calendar = new Date();
var year = Calendar.getFullYear(); // Retourne annee
var month = Calendar.getMonth(); // Retourne mois (0-11)
var today = Calendar.getDate(); // Retourne date (1-31)
var weekday = Calendar.getDay(); // Returns jour (1-31)
var DAYS_OF_WEEK = 7; // "constant" pour le nombre de jours dans la semaine
var DAYS_OF_MONTH = 31; // "constant" pour le nombre de jours dans le mois
var cal; // utiliser pour copiez (printing)
Calendar.setDate(1); // commencer le calendrier au jour '1'
Calendar.setMonth(month); // commencer le calendrier a partir de ce mois
/* VARIABLES FOR FORMATTING
NOTE: Tu peux formater ceux ci 'BORDER', 'BGCOLOR', 'CELLPADDING', 'BORDERCOLOR'
les étiquettes pour personnaliser le regard de votre calendrier. */
var TR_start = '<TR>';
var TR_end = '</TR>';
var highlight_start = '<TD WIDTH="30"><TABLE CELLSPACING=0 BORDER=1 BGCOLOR=DEDEFF BORDERCOLOR=CCCCCC><TR><TD WIDTH=20><B><CENTER>';
var highlight_end = '</CENTER></TD></TR></TABLE></B>';
var TD_start = '<TD WIDTH="30"><CENTER>';
var TD_end = '</CENTER></TD>';
/* BEGIN CODE FOR CALENDAR
NOTE: Tu peux formater ceux ci the 'BORDER', 'BGCOLOR', 'CELLPADDING', 'BORDERCOLOR'
les étiquettes pour personnaliser le regard de votre calendrier.*/
cal = '<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=0 BORDERCOLOR=BBBBBB><TR><TD>';
cal += '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2>' + TR_start;
cal += '<TD COLSPAN="' + DAYS_OF_WEEK + '" BGCOLOR="#EFEFEF"><CENTER><B>';
cal += month_of_year[month] + ' ' + year + '</B>' + TD_end + TR_end;
cal += TR_start;
// NE PAS CHANGER LES LIGNES EN BAS (DESSOUS) //
// LOOPS POUR CHAQUE JOUR DE LA SEMAINE
for(index=0; index < DAYS_OF_WEEK; index++)
{
// VIF LE JOUR ACTUEL DE LA SEMAINE
if(weekday == index)
cal += TD_start + '<B>' + day_of_week[index] + '</B>' + TD_end;
// IMPRIMER LE JOUR
else
cal += TD_start + day_of_week[index] + TD_end;
}
cal += TD_end + TR_end;
cal += TR_start;
// REMPLIR DES ECARTS BLANCS JUSQU' AU JOUR D'AUJOURD'HUI
for(index=0; index < Calendar.getDay(); index++)
cal += TD_start + ' ' + TD_end;
// LOOPS POUR CHAQUE JOUR DE LA SEMAINE DANS LE CALENDRIER
for(index=0; index < DAYS_OF_MONTH; index++)
{
if( Calendar.getDate() > index )
{
// RETOURNE SUR LE LENDEMAIN POUR IMPRIMER
week_day =Calendar.getDay();
// COMMENCER LE NOUVEAU RANG POUR LE PREMIER JOUR DE LA SEMAINE
if(week_day == 0)
cal += TR_start;
if(week_day != DAYS_OF_WEEK)
{
// REGLER LA VARIABLE DANS LA BOUCLE POUR GRADUER JUSQU'AUX OBJECTIFS
var day = Calendar.getDate();
// SOULIGNER LA DATE D'AUJOURD'HUI
if( today==Calendar.getDate() )
cal += highlight_start + day + highlight_end + TD_end;
// IMPRIMER LE JOUR
else
cal += TD_start + day + TD_end;
}
// TERMINER LE RANG POUR LE DERNIER JOUR DE LA SEMAINE
if(week_day == DAYS_OF_WEEK)
cal += TR_end;
}
// LES GRADUATIONS JUSQU' A LA FIN DU MOIS
Calendar.setDate(Calendar.getDate()+1);
}// FIN DU loop
cal += '</TD></TR></TABLE></TABLE>';
// IMPRIMER LE CALENDRIER
document.write(cal);
// FIN -->
</SCRIPT>
Hors ligne
Wahou ! Ca marche !!
Mais, heu, vous allez dire que je le fait exprès, mais ensuite, ... comment faire pour s'en servir comme agenda par exemple ?
Hors ligne
J'aimerai savoir si quelqu'un connait un script de calendrier (avec possibilité de réservations) qui ne nécessiterai pas de BDD ?
Dernière modification par Stefpei (06/02/2012 15:42:09)
Stéphane
Webdesign AvantageWeb
Hors ligne
Oui, mais tu le connais aussi car c'est Wikazzle
J'y avais jeté un coup d'oeil et il me semblait prometteur et adaptable à Ziteplus.
J'avais même commencé une petite modif pour PHP 5.3 et mis l'entête
/** modification JPG du 13/06/2010 */
/** merci à Stephei de m'avoir fait découvrir ce script */
Et puis ... par manque de temps c'est resté en l'état.
J'ai vu sur le site de l'auteur qu'il n'a pas évolué depuis.
a+
Jean-Paul
Hors ligne
Je n'ai rien trouvé d'aussi simple que Wikazzle (pas de BDD, 1 fichier php, 1 fichier de datas)
Donc je l'ai mis en test ici : http://www.c-too.com/intuiteo/location2/ pour voir si ça suffit (à mon client)...
J'ai eu un problême de "date" (Call-time pass-by-reference has been deprecated).
J'ai vu qu'il fallait enlever un "&"... ça a l'air de rouler maintenant.
J'ai trouvé aussi "Blogotext" (moteur de blog sans BDD) qui a l'air pas mal (mais pas pour mon besoin actuel).
Stéphane
Webdesign AvantageWeb
Hors ligne
... J'ai eu un problême de "date" (Call-time pass-by-reference has been deprecated).
J'ai vu qu'il fallait enlever un "&"... ça a l'air de rouler maintenant. ...
Pas eu ce souci en le mettant (pour tester moi aussi) sur un hébergement free.fr
Hors ligne
Stefpei a écrit :... J'ai eu un problême de "date" (Call-time pass-by-reference has been deprecated).
J'ai vu qu'il fallait enlever un "&"... ça a l'air de rouler maintenant. ...Pas eu ce souci en le mettant (pour tester moi aussi) sur un hébergement free.fr
Parce que Free a une très vielle version de PHP
Le problème apparait avec PHP 5.3
a+
Jean-Paul
Hors ligne