diff --git a/plugins/Event/EventPlugin.php b/plugins/Event/EventPlugin.php index 9fa6e17fc3..4e9d153b16 100644 --- a/plugins/Event/EventPlugin.php +++ b/plugins/Event/EventPlugin.php @@ -46,6 +46,9 @@ if (!defined('STATUSNET')) { */ class EventPlugin extends MicroAppPlugin { + + var $oldSaveNew = true; + /** * Set up our tables (event and rsvp) * @@ -142,18 +145,44 @@ class EventPlugin extends MicroAppPlugin throw new Exception(_m('Wrong type for object.')); } + $dtstart = $happeningObj->element->getElementsByTagName('dtstart'); + if($dtstart->length == 0) { + // TRANS: Exception thrown when has no start date + throw new Exception(_m('No start date for event.')); + } + + $dtend = $happeningObj->element->getElementsByTagName('dtend'); + if($dtend->length == 0) { + // TRANS: Exception thrown when has no end date + throw new Exception(_m('No end date for event.')); + } + + // location is optional + $location = null; + $location_object = $happeningObj->element->getElementsByTagName('location'); + if($location_object->length > 0) { + $location = $location_object->item(0)->nodeValue; + } + + // url is optional + $url = null; + $url_object = $happeningObj->element->getElementsByTagName('url'); + if($url_object->length > 0) { + $url = $url_object->item(0)->nodeValue; + } + $notice = null; switch ($activity->verb) { case ActivityVerb::POST: // FIXME: get startTime, endTime, location and URL $notice = Happening::saveNew($actor, - $start_time, - $end_time, + $dtstart->item(0)->nodeValue, + $dtend->item(0)->nodeValue, $happeningObj->title, - null, + $location, $happeningObj->summary, - null, + $url, $options); break; case RSVP::POSITIVE: @@ -228,9 +257,9 @@ class EventPlugin extends MicroAppPlugin array('xmlns' => 'urn:ietf:params:xml:ns:xcal'), common_date_iso8601($happening->end_time)); - // FIXME: add location - // FIXME: add URL - + $obj->extra[] = array('location', false, $happening->location); + $obj->extra[] = array('url', false, $happening->url); + // XXX: probably need other stuff here return $obj; diff --git a/plugins/Event/actions/newevent.php b/plugins/Event/actions/newevent.php index 9483db7b4e..57cd1bb37e 100644 --- a/plugins/Event/actions/newevent.php +++ b/plugins/Event/actions/newevent.php @@ -220,8 +220,8 @@ class NeweventAction extends Action $profile = $this->user->getProfile(); $saved = Happening::saveNew($profile, - $this->startTime, - $this->endTime, + common_sql_date($this->startTime), + common_sql_date($this->endTime), $this->title, $this->location, $this->description, diff --git a/plugins/Event/classes/Happening.php b/plugins/Event/classes/Happening.php index 733235655c..8c713bacbd 100644 --- a/plugins/Event/classes/Happening.php +++ b/plugins/Event/classes/Happening.php @@ -116,8 +116,8 @@ class Happening extends Managed_DataObject $ev->id = UUID::gen(); $ev->profile_id = $profile->id; - $ev->start_time = common_sql_date($start_time); - $ev->end_time = common_sql_date($end_time); + $ev->start_time = $start_time; + $ev->end_time = $end_time; $ev->title = $title; $ev->location = $location; $ev->description = $description;