private function buildRecurringSection(PhabricatorCalendarEvent $event) { $viewer = $this->getViewer(); if (!$event->getIsRecurring()) { return null; } $properties = id(new PHUIPropertyListView())->setUser($viewer); $is_parent = $event->isParentEvent(); if ($is_parent) { $parent_link = null; } else { $parent = $event->getParentEvent(); $parent_link = $viewer->renderHandle($parent->getPHID())->render(); } $rule = $event->getFrequencyRule(); switch ($rule) { case PhabricatorCalendarEvent::FREQUENCY_DAILY: if ($is_parent) { $message = pht('This event repeats every day.'); } else { $message = pht('This event is an instance of %s, and repeats every day.', $parent_link); } break; case PhabricatorCalendarEvent::FREQUENCY_WEEKLY: if ($is_parent) { $message = pht('This event repeats every week.'); } else { $message = pht('This event is an instance of %s, and repeats every week.', $parent_link); } break; case PhabricatorCalendarEvent::FREQUENCY_MONTHLY: if ($is_parent) { $message = pht('This event repeats every month.'); } else { $message = pht('This event is an instance of %s, and repeats every month.', $parent_link); } break; case PhabricatorCalendarEvent::FREQUENCY_YEARLY: if ($is_parent) { $message = pht('This event repeats every year.'); } else { $message = pht('This event is an instance of %s, and repeats every year.', $parent_link); } break; } $properties->addProperty(pht('Event Series'), $message); return $properties; }