* * functions to operate on calendar data files. * * $Id: calendar_data.php,v 1.7 2003/03/27 16:47:44 philippe_mingo Exp $ */ // this is array that contains all events // it is three dimensional array with fallowing structure // $calendardata[date][time] = array(length,priority,title,message); $calendardata = array(); /************************************************ * Database: * --------- * The sqcalender table should have some columns: CREATE TABLE "sqcalender" ( "username" varchar(128) NOT NULL, "year" varchar(6) NOT NULL, "month" varchar(4) NOT NULL, "mmddyy" varchar(8) NOT NULL, "stime" varchar(8) NOT NULL, "length" varchar(8) , "priority" varchar(2) , "title" text , "message" text , "reminder" text , "tomailadd" text ); CREATE INDEX "sqcalender_index_key" ON "sqcalender" ( "mmddyy" , "username" , "year" , "month" ) ; Use DB handler PEAR-DB class require_once('DB.php'); Thease Global Valiables : $sqcalender_dsn $sqcalender_table you use DataBase DSN and Table name. ************************************************/ require_once('DB.php'); $sqcalender_dsn = 'pgsql://squirreluser:sqpassword@localhost/squirrelmail' ; $sqcalender_table = 'sqcalender' ; // Read Calender Data a month function readcalendardata($year , $month) { global $username , $sqcalender_dsn , $sqcalender_table ; $dbh = DB::connect($sqcalender_dsn); if(DB::isError($dbh)) { $error = DB::errorMessage($dbh); return false; } $query = sprintf( "SELECT mmddyy , stime, length, priority, title , message, reminder, tomailadd FROM %s WHERE username='%s' AND year='%s' AND month='%s' ORDER BY mmddyy,stime " , $sqcalender_table , $dbh->quoteString($username) , $dbh->quoteString($year), $dbh->quoteString($month) ) ; $tmpdata = $dbh->getAll($query); foreach($tmpdata as $fdata ){ $calendardata[$fdata[0]][$fdata[1]] = array( 'length' => $fdata[2], 'priority' => $fdata[3], 'title' => htmlspecialchars($fdata[4],ENT_NOQUOTES), 'message' => htmlspecialchars($fdata[5],ENT_NOQUOTES), 'reminder' => $fdata[6], 'tomailadd'=> $fdata[7] ) ; } $dbh->disconnect ; return $calendardata ; } // Read Calender Data a day function readcalendardataday($year , $month , $day) { global $username , $sqcalender_dsn , $sqcalender_table ; $dbh = DB::connect($sqcalender_dsn); if(DB::isError($dbh)) { $error = DB::errorMessage($dbh); return false; } $mmddyyyy = $month.$day.$year ; $query = sprintf( "SELECT mmddyy , stime, length, priority, title , message, reminder, tomailadd FROM %s WHERE username='%s' AND mmddyy='%s' ORDER BY mmddyy,stime " , $sqcalender_table , $dbh->quoteString($username) , $dbh->quoteString($mmddyyyy) ) ; $tmpdata = $dbh->getAll($query); foreach($tmpdata as $fdata ){ $calendardata[$fdata[0]][$fdata[1]] = array( 'length' => $fdata[2], 'priority' => $fdata[3], 'title' => htmlspecialchars($fdata[4],ENT_NOQUOTES), 'message' => htmlspecialchars($fdata[5],ENT_NOQUOTES), 'reminder' => $fdata[6], 'tomailadd'=> $fdata[7] ) ; } $dbh->disconnect ; return $calendardata ; } // Read Calender Data Get One Event function readcalendardataGetOne($year , $month , $day ,$stime) { global $username , $sqcalender_dsn , $sqcalender_table ; $dbh = DB::connect($sqcalender_dsn); if(DB::isError($dbh)) { $error = DB::errorMessage($dbh); return false; } $mmddyyyy = $month.$day.$year ; $query = sprintf( "SELECT mmddyy , stime, length, priority, title , message, reminder, tomailadd FROM %s WHERE username='%s' AND mmddyy='%s' AND stime='%s' " , $sqcalender_table , $dbh->quoteString($username) , $dbh->quoteString($mmddyyyy) , $dbh->quoteString($stime) ) ; $fdata = $dbh->getRow($query); $calendardata[$fdata[0]][$fdata[1]] = array( 'length' => $fdata[2], 'priority' => $fdata[3], 'title' => htmlspecialchars($fdata[4],ENT_NOQUOTES), 'message' => htmlspecialchars($fdata[5],ENT_NOQUOTES), 'reminder' => $fdata[6], 'tomailadd'=> $fdata[7] ) ; $dbh->disconnect ; return $calendardata ; } //makes events persistant function writecalendardata( $mmddyy , $stime , $calbar ) { global $username , $sqcalender_dsn , $sqcalender_table ; $dbh = DB::connect($sqcalender_dsn); if(DB::isError($dbh)) { $error = DB::errorMessage($dbh); return false; } $dbh->simpleQuery("BEGIN TRANSACTION"); $fooyear = substr($mmddyy,4,4); $foomonth = substr($mmddyy,0,2); $query = sprintf( "INSERT INTO %s (username, year, month, mmddyy, stime, length, priority, title, message, reminder) VALUES ('%s', '%s', '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s' )", $sqcalender_table , $dbh->quoteString($username) , $dbh->quoteString($fooyear) , $dbh->quoteString($foomonth), $dbh->quoteString($mmddyy) , $dbh->quoteString($stime), $dbh->quoteString($calbar['length']), $dbh->quoteString($calbar['priority']), $dbh->quoteString($calbar['title']), $dbh->quoteString($calbar['message']), $dbh->quoteString($calbar['reminder']) ) ; $res = $dbh->simpleQuery($query); if (DB::isError($res)) { $dbh->simpleQuery("ROLLBACK TRANSACTION"); } $dbh->simpleQuery("COMMIT TRANSACTION"); $dbh->disconnect ; return true; } //deletes event from file function delete_event($date, $time) { global $username , $sqcalender_dsn , $sqcalender_table ; $dbh = DB::connect($sqcalender_dsn); if(DB::isError($dbh)) { $error = DB::errorMessage($dbh); return false; } $dbh->simpleQuery("BEGIN TRANSACTION"); $fooyear = substr($date,4,4); $foomonth = substr($date,0,2); $query = sprintf( "DELETE FROM %s WHERE username='%s' AND year='%s' AND month='%s' AND mmddyy='%s' AND stime='%s' ", $sqcalender_table , $dbh->quoteString($username), $dbh->quoteString($fooyear) , $dbh->quoteString($foomonth), $dbh->quoteString($date) , $dbh->quoteString($time) ) ; $res = $dbh->simpleQuery($query); if (DB::isError($res)) { $dbh->simpleQuery("ROLLBACK TRANSACTION"); } $dbh->simpleQuery("COMMIT TRANSACTION"); $dbh->disconnect ; return true; } // pure UPDATE PostgreSQL function update_event( $date , $time , $calbar ) { global $username , $sqcalender_dsn , $sqcalender_table ; $dbh = DB::connect($sqcalender_dsn); if(DB::isError($dbh)) { $error = DB::errorMessage($dbh); return false; } $dbh->simpleQuery("BEGIN TRANSACTION"); $fooyear = substr($date,4,4); $foomonth = substr($date,0,2); $query = sprintf( "UPDATE %s SET length='%s' , priority='%s', title='%s', message='%s' , reminder='%s' WHERE username='%s' AND year='%s' AND month='%s' AND mmddyy='%s' AND stime='%s' " , $sqcalender_table , $dbh->quoteString($calbar['length']), $dbh->quoteString($calbar['priority']), $dbh->quoteString($calbar['title']), $dbh->quoteString($calbar['message']), $dbh->quoteString($calbar['reminder']), $dbh->quoteString($username), $dbh->quoteString($fooyear), $dbh->quoteString($foomonth), $dbh->quoteString($date), $dbh->quoteString($time) ) ; //// echo "" ; $res = $dbh->simpleQuery($query); if (DB::isError($res)) { $dbh->simpleQuery("ROLLBACK TRANSACTION"); } $dbh->simpleQuery("COMMIT TRANSACTION"); $dbh->disconnect ; return true; } ?>