Se connecter avec
S'enregistrer | Connectez-vous

probleme pour faire un agenda ou un calendrier

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

Dans quel langage ??

J'ai un vieux exemple en php , mais faut également le modifier . Il est fait en pseudo objet ( c'était à mes débuts ^^ ) et il utilise un template.

  1. <?php
  2.  
  3. class Calendrier
  4. {
  5. public function __construct() {}
  6.  
  7. public function showCalendar($periode)
  8. {
  9. // Tableau des valeurs possibles pour un numéro de jour dans la semaine
  10. $tableau = array('0', '1', '2', '3', '4', '5', '6', '0');
  11. $tabJour = array('L','M','M','J','V','S','D');
  12. $nb_jour = Date("t", mktime(0, 0, 0, $this->getMonth($periode), 1, $this->getYear($periode)));
  13. $pas = 0;
  14. $indexe = 1;
  15.  
  16. $calendrierTemplate = new Template('./');
  17. $calendrierTemplate->set_filenames(array('body' => './templates/calendrier/calendrier.tpl'));
  18.  
  19. $calendrierTemplate->assign_var('MOIS' ,$this->monthNumToName($this->getMonth($periode)));
  20. $calendrierTemplate->assign_var('ANNEE',$this->getYear($periode));
  21.  
  22. for ($i=0;$i<sizeof($tabJour);$i++)
  23. {
  24. $calendrierTemplate->assign_block_vars('entete',array('LIBELLE' => $tabJour[$i]));
  25. }
  26.  
  27. while ($pas < $nb_jour)
  28. {
  29. $class='';
  30.  
  31. if($indexe==1) $calendrierTemplate->assign_block_vars('semaine' ,array());
  32. if (date("w", mktime(0, 0, 0, $this->getMonth($periode), 1 + $pas, $this->getYear($periode))) == $tableau[$indexe])
  33. {
  34.  
  35. // Si jour calendrier == aujourd'hui
  36. $afficheJour = date("j", mktime(0, 0, 0, $this->getMonth($periode), 1 + $pas, $this->getYear($periode)));
  37. if (date("Y-m-d", mktime(0, 0, 0, $this->getMonth($periode), 1 + $pas, $this->getYear($periode))) == Date("Y-m-d"))
  38. {
  39. $class = 'class="border"'; // Mettre en evidence la date actuelle
  40. }
  41. // Si jour calendrier == date d'event ou d'anniversaire
  42.  
  43. $calendrierTemplate->assign_block_vars('semaine.joursemaine',array(
  44. 'JOUR' => Date("j", mktime(0, 0, 0, $this->getMonth($periode), 1 + $pas, $this->getYear($periode))),
  45. 'CLASS'=> $class
  46. ));
  47. $pas++;
  48. }
  49. //
  50. else {
  51. $calendrierTemplate->assign_block_vars('semaine.joursemaine',array(
  52. 'JOUR' => ' ',
  53. 'CLASS'=> ' '
  54. ));
  55. }
  56. if ($indexe == 7 && $pas < $nb_jour) { $indexe = 1;} else {$indexe++;}
  57. }
  58. // Ajustement du tableau
  59. for ($i=$indexe ;$i<7;$i++)
  60. {
  61. $calendrierTemplate->assign_block_vars('semaine.joursemaine',array(
  62. 'JOUR' => ' ',
  63. 'CLASS'=> ' '
  64. ));
  65. }
  66. $calendrierTemplate->pparse('body');
  67. }
  68.  
  69. private function getSecond($valeur)
  70. {
  71. return substr($valeur, 17, 2);
  72. }
  73.  
  74. private function getMinute($valeur)
  75. {
  76. return substr($valeur, 14, 2);
  77. }
  78.  
  79. private function getHour($valeur)
  80. {
  81. return substr($valeur, 11, 2);
  82. }
  83.  
  84. private function getDay($valeur)
  85. {
  86. return substr($valeur, 8, 2);
  87. }
  88.  
  89. private function getMonth($valeur)
  90. {
  91. return substr($valeur, 5, 2);
  92. }
  93.  
  94. private function getYear($valeur)
  95. {
  96. return substr($valeur, 0, 4);
  97. }
  98.  
  99. private function monthNumToName($mois)
  100. {
  101. $tableau = Array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aôut", "Septembre", "Octobre", "Novembre", "Décembre");
  102. return (intval($mois) > 0 && intval($mois) < 13) ? $tableau[intval($mois)] : "Indéfini";
  103. }
  104.  
  105. public function __destruct() {}
  106. }


  1. <div class="titreToolbar">Calendrier</div>
  2. <div class="fondToolbar">
  3. <p>{MOIS} {ANNEE}</p>
  4. <table>
  5. <tr>
  6. <!-- BEGIN entete -->
  7. <td>{entete.LIBELLE}</td>
  8. <!-- END entete -->
  9. </tr>
  10. <!-- BEGIN semaine -->
  11. <tr>
  12. <!-- BEGIN joursemaine -->
  13. <td {semaine.joursemaine.CLASS}>{semaine.joursemaine.JOUR}</td>
  14. <!-- END joursemaine -->
  15. </tr>
  16. <!-- END semaine -->
  17. </table>
  18. </div>
  19. <div class="footerToolbar"></div>


Pour l'utiliser il te faut copier également la class template fournie par phpbb ( pourquoi réinventer la roue ^^ ) .

j'ai une question un peu bete mais ce que tu m'as donné, on le met entre quelles balises body ou head?
et puis c'est en deux parties j'ai essayé de les incorporer mais ca ne marche pas
est ce que tu pourrais détailler un peu plus? merci d'avance ^^

La première partie je dirais n'importe où .

Le mieux au dessus de ta page :

  1. <?php
  2.  
  3. include 'calendrier.class.php';
  4. include 'template.class.php'; /* à télécharger sur le site de phpBB */
  5.  
  6. ?>


La deuxième partie dans un fichier se trouvant dans un repertoire templates/calendrier/ . C'est un fichier externe également , c'est la class calendrier qui va le rechercher.

Dans ton body tu fais

  1. $objCalendrier = new Calendrier();
  2. $objCalendrier->showCalendar();
Lassé par la pub ? Créez un compte
Tom's guide dans le monde