Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 03/02/2008 19:55:27

rebel
Membre
Inscription : 31/01/2008
Messages : 62
Site Web

integré un calendrier au template

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

http://bbs.c.la

[ 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

#2 04/02/2008 14:43:17

rebel
Membre
Inscription : 31/01/2008
Messages : 62
Site Web

Re : integré un calendrier au template

ok oublier j'ai trouvé un autre qui fonctionne bien

Hors ligne

#3 04/02/2008 20:16:21

Satanas
Membre
Inscription : 27/01/2008
Messages : 84
Site Web

Re : integré un calendrier au template

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

#4 05/02/2008 00:04:16

rebel
Membre
Inscription : 31/01/2008
Messages : 62
Site Web

Re : integré un calendrier au template

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

#5 25/03/2011 16:38:42

dfraiture
Membre
Inscription : 03/03/2011
Messages : 96

Re : integré un calendrier au template

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

#6 06/02/2012 15:41:17

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Re : integré un calendrier au template

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

#7 07/02/2012 01:22:16

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : integré un calendrier au template

Oui, mais tu le connais aussi roll 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

#8 07/02/2012 11:45:03

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Re : integré un calendrier au template

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

#9 07/02/2012 12:35:54

bpat85
Membre
Inscription : 18/01/2010
Messages : 77

Re : integré un calendrier au template

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

Hors ligne

#10 07/02/2012 12:45:03

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : integré un calendrier au template

bpat85 a écrit :
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 wink
Le problème apparait avec PHP 5.3

a+
Jean-Paul

Hors ligne

Pied de page des forums