Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kalendarz z wkładką
Forum PHP.pl > Forum > PHP
Muadib
Potrzebuje koncepcji, posiadam kod prostego kalendarza

  1. <?php
  2.  
  3. function genMonth($year,$month,$offset) 
  4. {
  5. $sequence = array_pad(array(), 43, "&nbsp");
  6. $monthstart = getdate(mktime(0,0,0,$month,1,$year));
  7. $monthend = getdate(mktime(0,0,0,($month + 1),0,$year));
  8.  
  9. for ($i = 1; $i <= $monthend["mday"]; $i++)
  10. {
  11. $sequence[$i + $monthstart["wday"]] = $i;
  12. }
  13.  
  14. $monthtable = "$offset<table>\n";
  15. $monthtable .= "$offset <tr align=center>\n";
  16. $monthtable .= "$offset <td colspan=7>" . $monthstart["month"] . " " . $year ."</td>\n";
  17. $monthtable .= "$offset </tr>\n";
  18. $monthtable .= "$offset <tr align=center>\n";
  19. $monthtable .= "$offset <td>Sun</td><td>Mon</td><td>Tue</td><td>Wed</td><td>Thu</td><td>Fri</td><td>Sat</td>\n";
  20. $monthtable .= "$offset </tr>\n";
  21. for ($i = 1; $i <= 36; $i += 7)
  22. {
  23. $monthtable .= "$offset <tr align=right valign=bottom>\n";
  24. for ($day = $i; $day <= $i + 6; $day++)
  25. {
  26. $monthtable .= "$offset <td width=25 height=10>" . $sequence[$day] . "</td>\n";
  27. }
  28. $monthtable .= "$offset </tr>\n";
  29. }
  30. $monthtable .= "$offset</table>\n";
  31.  
  32. return $monthtable;
  33. }
  34.  
  35.  
  36.  
  37. function genYear($year,$cols)
  38. {
  39. $validcols = array(1,2,3,4,6,12);
  40. if (!in_array($cols,$validcols))
  41. {
  42. $cols = 3;
  43. } 
  44. $yeartable = "<table border=1>\n";
  45. for ($i = 1; $i <= 12; $i += $cols)
  46. {
  47. $yeartable .= " <tr>\n";
  48. for ($month = $i; $month <= $i + $cols - 1; $month++)
  49. {
  50. $yeartable .= " <td>\n" . genMonth($year,$month," ") . "\n </td>\n";
  51. }
  52. $yeartable .= " </tr>\n";
  53. }
  54. $yeartable .= "</table>\n";
  55.  
  56. return $yeartable;
  57. }
  58. ?>


  1. <?php
  2. $getRok = getdate();
  3. $rok = $getRok['year'];
  4. echo genYear($rok,$cols);
  5. ?>


Chciałbym umieścić w nim element w którym by sie wpisywało wybrane daty, plik txt czy xml, i odznaczałby to na kalendarzu innym kolorem. Wiem jakich funkcji można by uzyc jednak nie mam koncepcji gdzie i jak tongue.gif
grzegorzr
eee...
Przebuduj skrypt na wstępie masz dużą plątaninę warstwy prezentacji i biznesowej. Stwórz klasę calendarManager która będzie zarządzać twoim kalendarzem i "wypluwać" potrzebne dane do warstwy prezentacji. Jednym słowem wywal te tabele poza metody genMonth(() itd.. W bazieDanych/xml/txt zrób takie coś co bym sam nazwał jak "specjalne dni". I potem w trakcie twoich pętelek
  1. <?php
  2. (...)
  3. if(is_special_day($day))
  4. {
  5. $day->addXXX(/*podpis , kolory itd.*/)
  6. }
  7. (...)
  8. ?>

przykład xml'a ze specjalnymi dniam:
  1. <days>
  2. <day date="11-11-*" type="swieto" name="Dzień niepodległości" />
  3. <day date="10-17-*" type="urodziny" name="Jan Kowalski" />
  4. </days>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.