login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Kalender met zondag laten beginnen.

Offline ajdemoed - 14/10/2005 10:19 (laatste wijziging 14/10/2005 15:05)
Avatar van ajdemoedNieuw lid Hallo allemaal. Ik heb een probleem met mn kalender script. Mijn opdrachtgever verzocht mij of ik de kalender misschien met zondag kan laten beginnen. Dus, in plaats van hoe het nu is: "M" "D" "W" "D" "V" "Z" "Z" moet het zo worden: "Z" "M" "D" "W" "D" "V" "Z".

Hier is de kalender in werking:

http://www.curs...lender.php

Zoals je ziet lukt het me wel om de dag aanduidingen om te zetten. Maar niet om de data 1 plek op te schuiven. Kan iemand mij vertellen hoe ik dit voor elkaar krijg?

Hieronder zal ik de functie toevoegen.

Alvast bedankt iedereen!

M.v.g.
Arjan Démoed

  1. <?
  2. function ShowKalender() {
  3. $i=0;
  4. $month=$_GET['month'];
  5. $year=$_GET['year'];
  6.  
  7. if ((!$year) || ($year < 1970) || ($year > 2036) || (!is_numeric($year))) {
  8. $year = date("Y");
  9. }
  10. if ((!$month) || ($month < 1) || ($month > 12) || (!is_numeric($month))) {
  11. $month = date("m");
  12. }
  13.  
  14. $this_day = mktime(0,0,0,date("m"),date("d"),date("Y"));
  15. $month_end = date("t",mktime(0,0,0,$month+1,0,$year));
  16. $month_start_day = date("w",mktime(0,0,0,$month,1,$year));
  17.  
  18. if ($month_start_day == 0) {
  19. $month_start_day = 7;
  20. }
  21.  
  22. $tedoen =0;
  23. $news_query = "SELECT * FROM kalender WHERE categorie='Publiek' ORDER BY datum";
  24. $result = mysql_query($news_query);
  25.  
  26. while ($ddoen = mysql_fetch_array($result)) {
  27. $dagtedoen[$i]=$ddoen[1];
  28. $i++;
  29. }
  30.  
  31. $months = Array("Januari","Februari","Maart","April","Mei","Juni","Juli", "Augustus","September","Oktober","November","December");
  32. $days = Array("Z","M","D","W","D","V","Z");
  33. $dagte = explode('-', $dagtedoen[$tedoen]);
  34. echo "<table width=200 height=1 class=\"adminmenu\" style=\"border-style: solid; border-width: 1px; border-color: red; font-size: 12px; margin-bottom: 10px; margin-top: 10px;\" border=0 cellspacing=1 cellpadding=0>";
  35. echo "<tr><td colspan=7 align=center>".$months[$month-1]." ".$year."</td></tr>";
  36. echo "<tr>";
  37.  
  38. for ($i=0;$i<7;$i++) {
  39. echo "<td bgcolor=#eeeeee align=center width=20 height=20>".$days[$i]."</td>";
  40. }
  41.  
  42. echo "</tr>";
  43. echo "<tr>";
  44. $days_open=0;
  45.  
  46. for ($i=1;$i<$month_start_day;$i++) {
  47. echo "<td height=20 width=20>&nbsp;</td>";
  48. $days_open++;
  49. }
  50.  
  51. $row = 1;
  52.  
  53. for ($i=1;$i<=$month_end;$i++) {
  54. $day = date("w",mktime(0,0,0,$month,$i,$year));
  55. $datenow = mktime(0,0,0,$month,$i,$year);
  56. $mond = date("m",mktime(0,0,0,$month,1,$year));
  57. if ($dagte[1]==$mond) {
  58. $dagt = mktime(0,0,0,$dagte[1],$dagte[2],$dagte[0]);
  59. } else {
  60. $tedoen++;
  61. $dagte = explode('-', $dagtedoen[$tedoen]);
  62. }
  63. if ($datenow == $dagt) {
  64. $sql = "SELECT * FROM kalender WHERE datum='".$dagtedoen[$tedoen]."'";
  65. $resultaat = mysql_query($sql);
  66. while ($rij = mysql_fetch_array($resultaat)) {
  67. if ($rij['checked'] == 0) {
  68. echo "<td bgcolor='".$rij['kleur1']."' style=\"cursor:hand\" onclick=\"gotourl('kalender.php?actie=kalender&datumkijk=".$dagtedoen[$tedoen]."&month=".$month."&year=".$year."')\"
  69. onmouseout=\"style.background='".$rij['kleur1']."'\" onmouseover=\"style.background='".$rij['kleur2']."'\" height=\"20\" width=\"20\" align=\"center\"
  70. >".$i."</td>";
  71. }
  72. $tedoen++;
  73. }
  74. $dagte = explode('-', $dagtedoen[$tedoen]);
  75. } else {
  76. if ($datenow == $this_day) {
  77. echo "<td bgcolor=#9999bb style=\"cursor: default\"
  78. onmouseover=\"movein1(this)\"
  79. onmouseout=\"moveout1(this)\" height=\"20\" width=\"20\" align=\"center\"
  80. >".$i."</td>";
  81. } else {
  82. if ($day == 1 || $day == 0) {
  83. echo "<td bgcolor=#ddcccc style=\"cursor: default;\"
  84. onmouseover=\"movein3(this)\"
  85. onmouseout=\"moveout3(this)\" height=\"20\" width=\"20\" align=\"center\"
  86. >".$i."</td>";
  87. } else {
  88. echo "<td bgcolor=white style=\"cursor: default;\"
  89. onmouseover=\"movein2(this)\"
  90. onmouseout=\"moveout2(this)\" height=\"20\" width=\"20\" align=\"center\"
  91. >".$i."</td>";
  92. }
  93. }
  94. }
  95. if (($day == 0) && ($i != $month_end)) {
  96. echo "</tr><tr>"; $row++;
  97. }
  98. }
  99.  
  100. $days_over= (($row*7)-$month_end)-$days_open;
  101.  
  102. for ($i=1;$i<=$days_over;$i++) {
  103. echo "<td height=20 width=20>&nbsp;</td>";
  104. }
  105.  
  106. echo "</tr>";
  107.  
  108. if ($month==1) {
  109. $prev_month = 12;
  110. $prev_year = $year-1;
  111. } else {
  112. $prev_month = $month-1;
  113. $prev_year = $year;
  114. }
  115.  
  116.  
  117. if ($month==12) {
  118. $next_month=1;
  119. $next_year=$year+1;
  120. } else {
  121. $next_month=$month+1;
  122. $next_year=$year;
  123. }
  124.  
  125. echo "<tr><td colspan=7 align=center>
  126. <a href=\"". $_SERVER['PHP_SELF'] ."?actie=kalender&pagina=$pagina&month=".$prev_month."&year=".$prev_year."\">Vorige</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"". $_SERVER['PHP_SELF'] ."?actie=kalender&pagina=$pagina&month=".$next_month."&year=".$next_year."\">
  127. Volgende</a></td></tr>";
  128. echo "<tr class=\"algemeen\"><td>&nbsp;</td><td colspan=6 valign=\"top\"><img src=\"images/lgn_publiek.jpg\" style=\"border-style: solid; border-width: 1px; border-color: black;\" alt=\"Algemene agendapunten\" height=15 width=15> = Algemeen</td></tr>";
  129. echo "<tr class=\"algemeen\"><td>&nbsp;</td><td colspan=6 valign=\"top\"><img src=\"images/lgn_vakantie.jpg\" style=\"border-style: solid; border-width: 1px; border-color: black;\" alt=\"Vakantiedagen\" height=15 width=15> = Vakantie</td></tr></table>";
  130. }
  131. ?>

3 antwoorden

Gesponsorde links
Offline Thomas - 14/10/2005 11:40
Avatar van Thomas Moderator Ik ben met een kalender-class bezig, waarin je een kalender "staand" of "liggend" af kan drukken, je de start-dag van de week in kunt stellen, en waar je aan elke dag links en popups (met behulp van overlib) kunt hangen.

Ik zal binnenkort wel wat code posten (of het script, als het af is).
Offline ajdemoed - 14/10/2005 15:01 (laatste wijziging 14/10/2005 15:04)
Avatar van ajdemoed Nieuw lid Ok, ik wacht in spanning af op je script... 
Is er ook de mogelijkheid om een database aan de applicatie te hangen?

Kun je misschien aan de hand van wat je hierboven ziet vertellen waar de start-datum van de maand bepaald wordt? Misschien kan ik dan met dit script mijn kalender kloppend krijgen...
Offline Thomas - 14/10/2005 15:52
Avatar van Thomas Moderator Jep, je kunt je kalender koppelen aan een database. In die kalender-class kun je "events" aan een dag hangen, die dan in je overlib-popup verschijnen als je met je muis-pointer over een dagnummer beweegt.

regel 16 t/m 20:
  1. $month_start_day = date("w",mktime(0,0,0,$month,1,$year));
  2. if ($month_start_day == 0) {
  3. $month_start_day = 7;
  4. }


date("w", $je_datum) retourneert het dagnummer van de week (0=zondag, 1=maandag, ..., 6=zaterdag).

Als de begindag van een maand in jouw script op een zondag valt, krijgt $month_start_day de waarde 7 (i.p.v. 0).
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.203s