本文整理匯總了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;
}