1ae6ff62720a18270de4b2800ce80052144cce63
6 * Originally contrubuted by Michal Szczotka <michal@tuxy.org>
8 * functions to operate on calendar data files.
10 * @copyright © 2002-2005 The SquirrelMail Project Team
11 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
14 * @subpackage calendar
17 /** this is array that contains all events
18 * it is three dimensional array with fallowing structure
19 * $calendardata[date][time] = array(length,priority,title,message); */
20 $calendardata = array();
23 * read events into array
25 * data is | delimited, just like addressbook
26 * files are structured like this:
27 * date|time|length|priority|title|message
28 * files are divided by year for performance increase */
29 function readcalendardata() {
30 global $calendardata, $username, $data_dir, $year;
32 $filename = getHashedFile($username, $data_dir, "$username.$year.cal");
34 if (file_exists($filename)){
35 $fp = fopen ($filename,'r');
38 while ($fdata = fgetcsv ($fp, 4096, '|')) {
39 $calendardata[$fdata[0]][$fdata[1]] = array( 'length' => $fdata[2],
40 'priority' => $fdata[3],
41 'title' => htmlspecialchars($fdata[4],ENT_NOQUOTES
),
42 'message' => htmlspecialchars($fdata[5],ENT_NOQUOTES
),
43 'reminder' => $fdata[6] );
46 // this is to sort the events within a day on starttime
47 $new_calendardata = array();
48 foreach($calendardata as $day => $data) {
49 ksort($data, SORT_NUMERIC
);
50 $new_calendardata[$day] = $data;
52 $calendardata = $new_calendardata;
57 //makes events persistant
58 function writecalendardata() {
59 global $calendardata, $username, $data_dir, $year, $color;
61 $filetmp = getHashedFile($username, $data_dir, "$username.$year.cal.tmp");
62 $filename = getHashedFile($username, $data_dir, "$username.$year.cal");
63 $fp = fopen ($filetmp,"w");
65 while ( $calfoo = each ($calendardata)) {
66 while ( $calbar = each ($calfoo['value'])) {
67 $calfoobar = $calendardata[$calfoo['key']][$calbar['key']];
68 $calstr = "$calfoo[key]|$calbar[key]|$calfoobar[length]|$calfoobar[priority]|$calfoobar[title]|$calfoobar[message]|$calfoobar[reminder]\n";
69 if(sq_fwrite($fp, $calstr, 4096) === FALSE) {
70 error_box(_("Could not write calendar file %s", "$username.$year.cal.tmp"), $color);
77 rename($filetmp,$filename);
81 //deletes event from file
82 function delete_event($date, $time) {
83 global $calendardata, $username, $data_dir, $year;
85 $filename = getHashedFile($username, $data_dir, "$username.$year.cal");
86 $fp = fopen ($filename,'r');
88 while ($fdata = fgetcsv ($fp, 4096, "|")) {
89 if (($fdata[0]==$date) && ($fdata[1]==$time)){
92 $calendardata[$fdata[0]][$fdata[1]] = array( 'length' => $fdata[2],
93 'priority' => $fdata[3],
95 'message' => $fdata[5],
96 'reminder' => $fdata[6] );
105 // same as delete but not saves calendar
106 // saving is done inside event_edit.php
107 function update_event($date, $time) {
108 global $calendardata, $username, $data_dir, $year;
110 $filename = getHashedFile($username, $data_dir, "$username.$year.cal");
111 $fp = fopen ($filename,'r');
113 while ($fdata = fgetcsv ($fp, 4096, '|')) {
114 if (($fdata[0]==$date) && ($fdata[1]==$time)){
117 $calendardata[$fdata[0]][$fdata[1]] = array( 'length' => $fdata[2],
118 'priority' => $fdata[3],
119 'title' => $fdata[4],
120 'message' => $fdata[5],
121 'reminder' => $fdata[6] );