phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] phpgroupware/ipc_test_suite/sources/app/class.ipc_ca


From: nomail
Subject: [Phpgroupware-cvs] phpgroupware/ipc_test_suite/sources/app/class.ipc_calendar.inc.php, 1.1.2.1
Date: Thu, 20 May 2004 13:13:19 -0000

Update of /phpgroupware/ipc_test_suite/sources/app
Added Files:
        Branch: Version-0_9_16-branch
          class.ipc_calendar.inc.php

date: 2004/04/05 19:42:00;  author: mkaemmerer;  state: Exp;  lines: +160 -0

Log Message:
- updated to new version from dirk
=====================================================================
No syntax errors detected in -
=====================================================================
<?php
        /**
        * IPC Layer
        * @author Dirk Schaller <address@hidden>
        * @copyright Copyright (C) 2003-2004 Free Software Foundation, Inc. 
http://www.fsf.org/
        * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General 
Public License
        * @package phpgwapi
        * @subpackage communication
        * @version $Id: class.ipc_calendar.inc.php,v 1.1.2.1 2004/04/05 
19:42:00 mkaemmerer Exp $
        */

        /**
        * Fassade of the calendar application.
        * @package calendar
        */
        class ipc_calendar extends ipc_
        {
                /**
                * @var object $bo application business object
                * @access private
                */
                var $bo;

                /**
                * @var object $bo_iCal application business object for 
iCalendar import/export
                * @access private
                */
                var $bo_iCal;


                /**
                * Constructor
                */
                function ipc_calendar()
                {
                        $this->bo      =& CreateObject('calendar.bocalendar');
                        $this->bo_iCal =& CreateObject('calendar.boicalendar');
                }


                /**
                * Add data in a certain mime type format to the application.
                * @param mixed $data data for adding to the application, the 
datatype depends on the mime type
                * @param string $type specifies the mime type of the passed data
                * @param string $version specifies the mime type version of the 
passed data
                * @return integer id of the added data
                */
                function addData($data, $type, $version='')
                {
                        // 1: mapping the mime type to application data
                        if(($type != 'text/x-ical') && ($type != 
'text/calendar'))
                                return false;

                        $data = ereg_replace("\n\n", "\r\n", $data); // xml-rpc 
bug: \r\n -> \n\n
                        $data = ereg_replace("\r\n\r\n", "\r\n", $data); // 
ical from calmeno
                        $data_lines = explode("\r\n", $data);
                        
                        $id = $this->bo_iCal->import($data_lines, true);
                        return $id;
                }


                /**
                * Get data from the application in a certain mime type format.
                * @param integer $id id of data to get from the application
                * @param string $type specifies the mime type of the returned 
data
                * @param string $version specifies the mime type version of the 
returned data
                * @return mixed data from application, the datatype depends on 
the passed mime type, false if no data exists for the passed id
                */
                function getData($id, $type, $version='')
                {
                        if(($type != 'text/x-ical') && ($type != 
'text/calendar'))
                                return false;

                        if(!is_integer($id) || ($id<=0))
                                return false;

                        $data = $this->bo_iCal->export(array('l_event_id' => 
$id));
                        return $data;
                }


                /**
                * Return a list with the available id's in the application.
                * The optional lastmod parameter allows a limitations of the 
data id list.
                * The list contains all the id's of the modified data since the 
passed lastmod timestamp.
                * @param integer $lastmod last modification time, default is -1 
and means return all data id's
                * @return array list of data id's, if $lastmod is set, only 
modified entry id's, else all id's returned
                */
                function getIdList($lastmod=-1)
                {
                        return $this->bo->so->cal->list_dirty_events($lastmod);
                }


                /**
                * Remove data of the passed id.
                * @param integer $id id of data to remove from the application
                * @return boolean true if the data is removed, otherwise false
                */
                function removeData($id)
                {
                        if(!is_integer($id) || ($id<=0))
                                return false;

                        if($this->bo->delete_entry($id) == 16)
                        {
                                $this->bo->expunge();
                                return true;
                        }
                        else
                                return false;
                }


                /**
                * Replace the existing data of the passed id with the passed 
data in a certain mime type format.
                * @param integer $id id of data to replace
                * @param mixed $data the new data, the datatype depends on the 
passed mime type
                * @param string $type specifies the mime type of the passed data
                * @param string $version specifies the mime type version of the 
passed data
                * @return boolean true if the data is replaced, otherwise false
                */
                function replaceData($id, $data, $type, $version='')
                {
                        if(($type != 'text/x-ical') && ($type != 
'text/calendar'))
                                return false;

                        if(!is_integer($id) || ($id<=0))
                                return false;

                        $entry = $this->bo->read_entry($id);
                        if(!$entry || !isset($entry['uid']))
                                return false;

                        $data = ereg_replace("\n\n", "\r\n", $data); // xml-rpc 
bug: \r\n -> \n\n
                        $data = ereg_replace("\r\n\r\n", "\r\n", $data); // 
ical from calmeno
                        $data_lines = explode("\r\n", $data);

                        return $this->bo_iCal->import($data_lines, true);
                }


                /**
                * Checks if data for the passed id exists.
                * @param integer $id id to check
                * @return boolean true if the data with id exist, otherwise 
false
                */
                function existData($id)
                {
                        if(!is_integer($id) || ($id<=0))
                                return false;

                        if(!$this->bo->read_entry($id))
                                return false;
                        else
                                return true;
                }
        }
?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]