Tylerization
[squirrelmail.git] / plugins / calendar / calendar_data.php
CommitLineData
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
23function 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
45function 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
66function 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
91function 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?>