本文整理汇总了PHP中Tinebase_DateTime::getClone方法的典型用法代码示例。如果您正苦于以下问题:PHP Tinebase_DateTime::getClone方法的具体用法?PHP Tinebase_DateTime::getClone怎么用?PHP Tinebase_DateTime::getClone使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tinebase_DateTime
的用法示例。
在下文中一共展示了Tinebase_DateTime::getClone方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: repairAttendee
/**
* add calendar owner as attendee if not already set
*
* @param string $calendarId
* @param Tinebase_DateTime $from
* @param Tinebase_DateTime $until
* @param boolean $dry run
*
* @return number of updated events
*/
public function repairAttendee($calendarId, $from, $until, $dry = false)
{
$container = Tinebase_Container::getInstance()->getContainerById($calendarId);
if ($container->type !== Tinebase_Model_Container::TYPE_PERSONAL) {
throw new Calendar_Exception('Only allowed for personal containers!');
}
if ($container->owner_id !== Tinebase_Core::getUser()->getId()) {
throw new Calendar_Exception('Only allowed for own containers!');
}
$updateCount = 0;
while ($from->isEarlier($until)) {
$endWeek = $from->getClone()->addWeek(1);
if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) {
Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . ' Repairing period ' . $from . ' - ' . $endWeek);
}
// TODO we need to detect events with DECLINED/DELETED attendee
$events = $this->_getEventsForPeriodAndCalendar($calendarId, $from, $endWeek);
$from->addWeek(1);
if (count($events) == 0) {
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' No events found');
}
continue;
}
foreach ($events as $event) {
// add attendee if not already set
if ($event->isRecurInstance()) {
// TODO get base event
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Skip recur instance ' . $event->toShortString());
}
continue;
}
$ownAttender = Calendar_Model_Attender::getOwnAttender($event->attendee);
if (!$ownAttender) {
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Add missing attender to event ' . $event->toShortString());
}
$attender = new Calendar_Model_Attender(array('user_type' => Calendar_Model_Attender::USERTYPE_USER, 'user_id' => Tinebase_Core::getUser()->contact_id, 'status' => Calendar_Model_Attender::STATUS_ACCEPTED));
$event->attendee->addRecord($attender);
if (!$dry) {
$this->update($event);
}
$updateCount++;
}
}
}
return $updateCount;
}