X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FEvent%2FEventPlugin.php;h=978b4610b2019df4111c39cb4905bac02d090599;hb=b6b9baa9a240db9f10c41dc0c0aae81dad0d744a;hp=1ee6ef4309a1033ba46e8a537e7859a7063e4c9b;hpb=31c1177970124cee31823cab3a11542c23b4126d;p=quix0rs-gnu-social.git diff --git a/plugins/Event/EventPlugin.php b/plugins/Event/EventPlugin.php index 1ee6ef4309..978b4610b2 100644 --- a/plugins/Event/EventPlugin.php +++ b/plugins/Event/EventPlugin.php @@ -105,7 +105,6 @@ class EventPlugin extends MicroappPlugin * * @return boolean hook value; true means continue processing, false means stop. */ - function onRouterInitialized($m) { $m->connect('main/event/new', @@ -130,12 +129,14 @@ class EventPlugin extends MicroappPlugin 'author' => 'Evan Prodromou', 'homepage' => 'http://status.net/wiki/Plugin:Event', 'description' => + // TRANS: Plugin description. _m('Event invitations and RSVPs.')); return true; } function appTitle() { - return _m('Event'); + // TRANS: Title for event application. + return _m('TITLE','Event'); } function tag() { @@ -162,21 +163,22 @@ class EventPlugin extends MicroappPlugin function saveNoticeFromActivity($activity, $actor, $options=array()) { if (count($activity->objects) != 1) { - throw new Exception('Too many activity objects.'); + throw new Exception(_('Too many activity objects.')); } $happeningObj = $activity->objects[0]; if ($happeningObj->type != Happening::OBJECT_TYPE) { - throw new Exception('Wrong type for object.'); + // TRANS: Exception thrown when event plugin comes across a non-event type object. + throw new Exception(_m('Wrong type for object.')); } $notice = null; switch ($activity->verb) { case ActivityVerb::POST: - $notice = Happening::saveNew($actor, - $start_time, + $notice = Happening::saveNew($actor, + $start_time, $end_time, $happeningObj->title, null, @@ -189,12 +191,14 @@ class EventPlugin extends MicroappPlugin $happening = Happening::staticGet('uri', $happeningObj->id); if (empty($happening)) { // FIXME: save the event - throw new Exception("RSVP for unknown event."); + // TRANS: Exception thrown when trying to RSVP for an unknown event. + throw new Exception(_m('RSVP for unknown event.')); } $notice = RSVP::saveNew($actor, $happening, $activity->verb, $options); break; default: - throw new Exception("Unknown verb for events"); + // TRANS: Exception thrown when event plugin comes across a undefined verb. + throw new Exception(_m('Unknown verb for events.')); } return $notice; @@ -207,7 +211,6 @@ class EventPlugin extends MicroappPlugin * * @return ActivityObject */ - function activityObjectFromNotice($notice) { $happening = null; @@ -225,13 +228,15 @@ class EventPlugin extends MicroappPlugin } if (empty($happening)) { - throw new Exception("Unknown object type."); + // TRANS: Exception thrown when event plugin comes across a unknown object type. + throw new Exception(_m('Unknown object type.')); } $notice = $happening->getNotice(); if (empty($notice)) { - throw new Exception("Unknown event notice."); + // TRANS: Exception thrown when referring to a notice that is not an event an in event context. + throw new Exception(_m('Unknown event notice.')); } $obj = new ActivityObject(); @@ -264,7 +269,6 @@ class EventPlugin extends MicroappPlugin * * @return ActivityObject */ - function onEndNoticeAsActivity($notice, &$act) { switch ($notice->object_type) { case RSVP::POSITIVE: @@ -282,7 +286,6 @@ class EventPlugin extends MicroappPlugin * @param Notice $notice * @param HTMLOutputter $out */ - function showNotice($notice, $out) { switch ($notice->object_type) { @@ -326,6 +329,11 @@ class EventPlugin extends MicroappPlugin { $rsvp = RSVP::fromNotice($notice); + if (empty($rsvp)) { + $out->element('p', null, _('Deleted.')); + return; + } + $out->elementStart('div', 'rsvp'); $out->raw($rsvp->asHTML()); $out->elementEnd('div'); @@ -337,8 +345,10 @@ class EventPlugin extends MicroappPlugin $profile = $notice->getProfile(); $event = Happening::fromNotice($notice); - assert(!empty($event)); - assert(!empty($profile)); + if (empty($event)) { + $out->element('p', null, _('Deleted.')); + return; + } $out->elementStart('div', 'vevent event'); // VEVENT IN @@ -365,7 +375,8 @@ class EventPlugin extends MicroappPlugin $out->elementStart('div', 'event-times'); // VEVENT/EVENT-TIMES IN - $out->element('strong', null, _('Time:')); + // TRANS: Field label for event description. + $out->element('strong', null, _m('Time:')); $out->element('abbr', array('class' => 'dtstart', 'title' => common_date_iso8601($event->start_time)), @@ -385,14 +396,16 @@ class EventPlugin extends MicroappPlugin if (!empty($event->location)) { $out->elementStart('div', 'event-location'); - $out->element('strong', null, _('Location: ')); + // TRANS: Field label for event description. + $out->element('strong', null, _m('Location:')); $out->element('span', 'location', $event->location); $out->elementEnd('div'); } if (!empty($event->description)) { $out->elementStart('div', 'event-description'); - $out->element('strong', null, _('Description: ')); + // TRANS: Field label for event description. + $out->element('strong', null, _m('Description:')); $out->element('span', 'description', $event->description); $out->elementEnd('div'); } @@ -400,9 +413,12 @@ class EventPlugin extends MicroappPlugin $rsvps = $event->getRSVPs(); $out->elementStart('div', 'event-rsvps'); - $out->element('strong', null, _('Attending: ')); + // TRANS: Field label for event description. + $out->element('strong', null, _m('Attending:')); $out->element('span', 'event-rsvps', - sprintf(_('Yes: %d No: %d Maybe: %d'), + // TRANS: RSVP counts. + // TRANS: %1$d, %2$d and %3$d are numbers of RSVPs. + sprintf(_m('Yes: %1$d No: %2$d Maybe: %3$d'), count($rsvps[RSVP::POSITIVE]), count($rsvps[RSVP::NEGATIVE]), count($rsvps[RSVP::POSSIBLE]))); @@ -431,7 +447,6 @@ class EventPlugin extends MicroappPlugin * @param HTMLOutputter $out * @return Widget */ - function entryForm($out) { return new EventForm($out); @@ -442,7 +457,6 @@ class EventPlugin extends MicroappPlugin * * @param Notice $notice */ - function deleteRelated($notice) { switch ($notice->object_type) { @@ -474,4 +488,18 @@ class EventPlugin extends MicroappPlugin $action->cssLink($this->path('event.css')); return true; } + + function onStartShowThreadedNoticeTail($nli, $notice, &$children) + { + // Filter out any poll responses + if ($notice->object_type == Happening::OBJECT_TYPE) { + $children = array_filter($children, array($this, 'isNotRSVP')); + } + return true; + } + + function isNotRSVP($notice) + { + return (!in_array($notice->object_type, array(RSVP::POSITIVE, RSVP::NEGATIVE, RSVP::POSSIBLE))); + } }