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