calendar_data.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. /*
  3. * calendar_data.php
  4. *
  5. * Copyright (c) 2001 Michal Szczotka <michal@tuxy.org>
  6. * Licensed under the GNU GPL. For full terms see the file COPYING.
  7. *
  8. * functions to operate on calendar data files.
  9. *
  10. * $Id$
  11. */
  12. // this is array that contains all events
  13. // it is three dimensional array with fallowing structure
  14. // $calendardata[date][time] = array(length,priority,title,message);
  15. $calendardata = array();
  16. //read events into array
  17. //data is | delimited, just like addresbook
  18. //files are structured like this:
  19. //date|time|length|priority|title|message);
  20. //files are divide by year for performance increase
  21. function readcalendardata() {
  22. global $calendardata, $username, $data_dir, $year;
  23. $filename = getHashedFile($username, $data_dir, "$username.$year.cal");
  24. if (file_exists($filename)){
  25. $fp = fopen ($filename,'r');
  26. if ($fp){
  27. while ($fdata = fgetcsv ($fp, 4096, '|')) {
  28. $calendardata[$fdata[0]][$fdata[1]] = array( 'length' => $fdata[2],
  29. 'priority' => $fdata[3],
  30. 'title' => $fdata[4],
  31. 'message' => $fdata[5],
  32. 'reminder' => $fdata[6] );
  33. }
  34. fclose ($fp);
  35. }
  36. }
  37. }
  38. //makes events persistant
  39. function writecalendardata() {
  40. global $calendardata, $username, $data_dir, $year;
  41. $filetmp = getHashedFile($username, $data_dir, "$username.$year.cal.tmp");
  42. $filename = getHashedFile($username, $data_dir, "$username.$year.cal");
  43. $fp = fopen ($filetmp,"w");
  44. if ($fp) {
  45. while ( $calfoo = each ($calendardata)) {
  46. while ( $calbar = each ($calfoo['value'])) {
  47. $calfoobar = $calendardata[$calfoo['key']][$calbar['key']];
  48. $calstr = "$calfoo[key]|$calbar[key]|$calfoobar[length]|$calfoobar[priority]|$calfoobar[title]|$calfoobar[message]|$calfoobar[reminder]\n";
  49. fwrite($fp, $calstr, 4096);
  50. }
  51. }
  52. fclose ($fp);
  53. rename($filetmp,$filename);
  54. }
  55. }
  56. //deletes event from file
  57. function delete_event($date, $time) {
  58. global $calendardata, $username, $data_dir, $year;
  59. $filename = getHashedFile($username, $data_dir, "$username.$year.cal");
  60. $fp = fopen ($filename,'r');
  61. if ($fp){
  62. while ($fdata = fgetcsv ($fp, 4096, "|")) {
  63. if (($fdata[0]==$date) && ($fdata[1]==$time)){
  64. // do nothing
  65. } else {
  66. $calendardata[$fdata[0]][$fdata[1]] = array( 'length' => $fdata[2],
  67. 'priority' => $fdata[3],
  68. 'title' => $fdata[4],
  69. 'message' => $fdata[5],
  70. 'reminder' => $fdata[6] );
  71. }
  72. }
  73. fclose ($fp);
  74. }
  75. writecalendardata();
  76. }
  77. // same as delete but not saves calendar
  78. // saving is done inside event_edit.php
  79. function update_event($date, $time) {
  80. global $calendardata, $username, $data_dir, $year;
  81. $filename = getHashedFile($username, $data_dir, "$username.$year.cal");
  82. $fp = fopen ($filename,'r');
  83. if ($fp){
  84. while ($fdata = fgetcsv ($fp, 4096, '|')) {
  85. if (($fdata[0]==$date) && ($fdata[1]==$time)){
  86. // do nothing
  87. } else {
  88. $calendardata[$fdata[0]][$fdata[1]] = array( 'length' => $fdata[2],
  89. 'priority' => $fdata[3],
  90. 'title' => $fdata[4],
  91. 'message' => $fdata[5],
  92. 'reminder' => $fdata[6] );
  93. }
  94. }
  95. fclose ($fp);
  96. }
  97. }
  98. ?>