mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-05-24 02:24:39 +00:00
A new library called this replace vEvent.php and is in AWL.
This commit is contained in:
parent
a91b7d2224
commit
d69d7d56a3
@ -1,231 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* A Class for handling iCalendar data
|
|
||||||
*
|
|
||||||
* @package caldav
|
|
||||||
* @subpackage iCalendar
|
|
||||||
* @author Andrew McMillan <andrew@catalyst.net.nz>
|
|
||||||
* @copyright Catalyst IT Ltd
|
|
||||||
* @license http://gnu.org/copyleft/gpl.html GNU GPL v2
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A Class for handling participants to events
|
|
||||||
*
|
|
||||||
* @package caldav
|
|
||||||
*/
|
|
||||||
class Participant {
|
|
||||||
/**#@+
|
|
||||||
* @access private
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Participant e-mail
|
|
||||||
* @var email string
|
|
||||||
*/
|
|
||||||
var $email;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Status of participant in relation to the event
|
|
||||||
* @var status string
|
|
||||||
*/
|
|
||||||
var $status;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Role of participant in relation to event
|
|
||||||
* @var email string
|
|
||||||
*/
|
|
||||||
var $role;
|
|
||||||
/**#@-*/
|
|
||||||
|
|
||||||
function Participant( $email, $status="NEEDS-ACTION", $role="ATTENDEE" ) {
|
|
||||||
$this->email = $email;
|
|
||||||
$this->status = $status;
|
|
||||||
$this->role = $role;
|
|
||||||
}
|
|
||||||
|
|
||||||
function ToString() {
|
|
||||||
$rv = sprintf( "ATTENDEE;PARTSTAT=%s%s:%s\n", $this->status, ($this-role == "ATTENDEE" ? "" : "ROLE=$this->role"), $this->email );
|
|
||||||
return $rv;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A Class for handling Evends on a calendar
|
|
||||||
*
|
|
||||||
* @package caldav
|
|
||||||
*/
|
|
||||||
class vEvent {
|
|
||||||
/**#@+
|
|
||||||
* @access private
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* List of participants in this event
|
|
||||||
* @var participants array
|
|
||||||
*/
|
|
||||||
var $participants = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The start time for the event
|
|
||||||
* @var start datetime
|
|
||||||
*/
|
|
||||||
var $start;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The duration of the event
|
|
||||||
* @var duration interval
|
|
||||||
*/
|
|
||||||
var $duration;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The organizer of othe event
|
|
||||||
* @var organizer string
|
|
||||||
*/
|
|
||||||
var $organizer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The status of the event
|
|
||||||
* @var status string
|
|
||||||
*/
|
|
||||||
var $status;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A summary description of the event
|
|
||||||
* @var summary string
|
|
||||||
*/
|
|
||||||
var $summary;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A last modified timestamp
|
|
||||||
* @var modified int
|
|
||||||
*/
|
|
||||||
var $modified;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A sequence for different revisions of the event
|
|
||||||
* @var sequence integer
|
|
||||||
*/
|
|
||||||
var $sequence;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A unique ID for the event
|
|
||||||
* @var uid string
|
|
||||||
*/
|
|
||||||
var $uid;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A GUID for the event
|
|
||||||
* @var guid string
|
|
||||||
*/
|
|
||||||
var $guid;
|
|
||||||
/**#@-*/
|
|
||||||
|
|
||||||
function vEvent( $start, $duration="PT1H", $organizer="", $status="TENTATIVE", $summary="" ) {
|
|
||||||
global $c;
|
|
||||||
|
|
||||||
$this->participants = array();
|
|
||||||
$this->start = $start;
|
|
||||||
$this->duration = $duration;
|
|
||||||
$this->organizer = $organizer;
|
|
||||||
$this->status = $status;
|
|
||||||
$this->summary = $summary;
|
|
||||||
$this->modified = iCalendar::EpochTS(time());
|
|
||||||
$this->sequence = 1;
|
|
||||||
$this->uid = sprintf( "%s@%s", time() * 1000 + rand(0,1000), $c->domainname);
|
|
||||||
$this->guid = sprintf( "%s@%s", time() * 1000 + rand(0,1000), $c->domainname);
|
|
||||||
}
|
|
||||||
|
|
||||||
function AddParticipant( $email, $status, $role ) {
|
|
||||||
$this->participants[] = new Participant($email,$status,$role);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
BEGIN:VEVENT
|
|
||||||
ATTENDEE;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:cyrus@example.com
|
|
||||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:lisa@example.com
|
|
||||||
DTSTAMP:20060206T001220Z
|
|
||||||
DTSTART;TZID=US/Eastern:20060104T100000
|
|
||||||
DURATION:PT1H
|
|
||||||
LAST-MODIFIED:20060206T001330Z
|
|
||||||
ORGANIZER:mailto:cyrus@example.com
|
|
||||||
SEQUENCE:1
|
|
||||||
STATUS:TENTATIVE
|
|
||||||
SUMMARY:Event #3
|
|
||||||
UID:DC6C50A017428C5216A2F1CD@example.com
|
|
||||||
X-ABC-GUID:E1CX5Dr-0007ym-Hz@example.com
|
|
||||||
END:VEVENT
|
|
||||||
*/
|
|
||||||
function ToString() {
|
|
||||||
$participants = "";
|
|
||||||
foreach( $this->participants AS $k => $p ) {
|
|
||||||
$participants .= $p->ToString();
|
|
||||||
}
|
|
||||||
$fmt = <<<EOFMT
|
|
||||||
BEGIN:VEVENT
|
|
||||||
%sDTSTAMP:%s
|
|
||||||
DTSTART;TXID=%s:%s".
|
|
||||||
DURATION:%s
|
|
||||||
LAST-MODIFIED:%s
|
|
||||||
ORGANIZER:%s
|
|
||||||
SEQUENCE:%d
|
|
||||||
STATUS:%s
|
|
||||||
SUMMARY:%s
|
|
||||||
UID:%s
|
|
||||||
X-ABC-GUID:%s
|
|
||||||
END:VEVENT
|
|
||||||
|
|
||||||
EOFMT;
|
|
||||||
$string = sprintf( $fmt, $participants, iCalendar::EpochTS(time()), "Pacific/Auckland", $this->start, $this->duration, $this->modified,
|
|
||||||
$this->organizer, $this->sequence, $this->status, $this->summary, $this->uid, $this->guid );
|
|
||||||
return $string;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A Class for handling iCalendar data
|
|
||||||
*
|
|
||||||
* @package caldav
|
|
||||||
*/
|
|
||||||
class iCalendar {
|
|
||||||
|
|
||||||
function iCalendar() {
|
|
||||||
}
|
|
||||||
|
|
||||||
function EpochTS($epoch) {
|
|
||||||
$ts = date('Ymd\THis\Z', $epoch );
|
|
||||||
return $ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
function vTimeZone( $tzname ) {
|
|
||||||
switch ( $tzname ) {
|
|
||||||
case 'Pacific/Auckland':
|
|
||||||
default:
|
|
||||||
$tzstring = <<<EOTZ
|
|
||||||
BEGIN:VTIMEZONE
|
|
||||||
LAST-MODIFIED:20040110T032845Z
|
|
||||||
TZID:Pacific/Auckland
|
|
||||||
BEGIN:STANDARD
|
|
||||||
DTSTART:20000404T020000
|
|
||||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
|
|
||||||
TZNAME:NZST
|
|
||||||
TZOFFSETFROM:+1300
|
|
||||||
TZOFFSETTO:+1200
|
|
||||||
END:STANDARD
|
|
||||||
BEGIN:DAYLIGHT
|
|
||||||
DTSTART:20001026T020000
|
|
||||||
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
|
|
||||||
TZNAME:EST
|
|
||||||
TZOFFSETFROM:+1200
|
|
||||||
TZOFFSETTO:+1300
|
|
||||||
END:DAYLIGHT
|
|
||||||
END:VTIMEZONE
|
|
||||||
|
|
||||||
EOTZ;
|
|
||||||
}
|
|
||||||
return $tzstring;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
@ -83,5 +83,9 @@
|
|||||||
<item url="testing/tests/mulberry/PUT2.data" />
|
<item url="testing/tests/mulberry/PUT2.data" />
|
||||||
<item url="testing/tests/mulberry/PUT2.test" />
|
<item url="testing/tests/mulberry/PUT2.test" />
|
||||||
<item url="testing/tests/mulberry/PUT1.test" />
|
<item url="testing/tests/mulberry/PUT1.test" />
|
||||||
|
<item url="htdocs/ics.php" />
|
||||||
|
<item url="testing/tests/mulberry/GET1.test" />
|
||||||
|
<item url="testing/tests/evolution/PUT1.test" />
|
||||||
|
<item url="testing/tests/evolution/DELETE1.test" />
|
||||||
</project>
|
</project>
|
||||||
</webproject>
|
</webproject>
|
||||||
|
|||||||
3
testing/watch-port-80.sh
Executable file
3
testing/watch-port-80.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sudo tcpdump -i lo -s0 -t -n -q -A 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
|
||||||
Loading…
x
Reference in New Issue
Block a user