Horde_ActiveSync_Message_Task::getRecurrence PHP Метод

getRecurrence() публичный Метод

Obtain a recurrence object. Note this returns a Horde_Date_Recurrence object, not Horde_ActiveSync_Message_Recurrence.
public getRecurrence ( ) : Horde_Date_Recurrence
Результат Horde_Date_Recurrence
    public function getRecurrence()
    {
        if (!($recurrence = $this->_getAttribute('recurrence'))) {
            return false;
        }
        $d = clone $this->getDueDate();
        //  $d->setTimezone($this->getTimezone());
        $rrule = new Horde_Date_Recurrence($d);
        /* Map MS AS type field to Horde_Date_Recurrence types */
        switch ($recurrence->type) {
            case Horde_ActiveSync_Message_Recurrence::TYPE_DAILY:
                $rrule->setRecurType(Horde_Date_Recurrence::RECUR_DAILY);
                break;
            case Horde_ActiveSync_Message_Recurrence::TYPE_WEEKLY:
                $rrule->setRecurType(Horde_Date_Recurrence::RECUR_WEEKLY);
                $rrule->setRecurOnDay($recurrence->dayofweek);
                break;
            case Horde_ActiveSync_Message_Recurrence::TYPE_MONTHLY:
                $rrule->setRecurType(Horde_Date_Recurrence::RECUR_MONTHLY_DATE);
                break;
            case Horde_ActiveSync_Message_Recurrence::TYPE_MONTHLY_NTH:
                $rrule->setRecurType(Horde_Date_Recurrence::RECUR_MONTHLY_WEEKDAY);
                $rrule->setRecurOnDay($recurrence->dayofweek);
                break;
            case Horde_ActiveSync_Message_Recurrence::TYPE_YEARLY:
                $rrule->setRecurType(Horde_Date_Recurrence::RECUR_YEARLY_DATE);
                break;
            case Horde_ActiveSync_Message_Recurrence::TYPE_YEARLYNTH:
                $rrule->setRecurType(Horde_Date_Recurrence::RECUR_YEARLY_WEEKDAY);
                $rrule->setRecurOnDay($recurrence->dayofweek);
                break;
        }
        if ($rcnt = $recurrence->occurrences) {
            $rrule->setRecurCount($rcnt);
        }
        if ($runtil = $recurrence->until) {
            $rrule->setRecurEnd(new Horde_Date($runtil));
        }
        if ($interval = $recurrence->interval) {
            $rrule->setRecurInterval($interval);
        }
        return $rrule;
    }

Usage Example

Пример #1
0
 /**
  * Create a nag Task object from an activesync message
  *
  * @param Horde_ActiveSync_Message_Task $message  The task object
  */
 public function fromASTask(Horde_ActiveSync_Message_Task $message)
 {
     /* Owner is always current user. */
     $this->owner = $GLOBALS['registry']->getAuth();
     /* Notes and Title */
     if ($message->getProtocolVersion() >= Horde_ActiveSync::VERSION_TWELVE) {
         if ($message->airsyncbasebody->type == Horde_ActiveSync::BODYPREF_TYPE_HTML) {
             $this->desc = Horde_Text_Filter::filter($message->airsyncbasebody->data, 'Html2text');
         } else {
             $this->desc = $message->airsyncbasebody->data;
         }
     } else {
         $this->desc = $message->body;
     }
     $this->name = $message->subject;
     $tz = date_default_timezone_get();
     /* Completion */
     if ($this->completed = $message->complete) {
         if ($message->datecompleted) {
             $message->datecompleted->setTimezone($tz);
             $this->completed_date = $message->datecompleted->timestamp();
         } else {
             $this->completed_date = null;
         }
     }
     /* Due Date */
     if (($due = $message->utcduedate) || ($due = $message->duedate)) {
         $due->setTimezone($tz);
         $this->due = $due->timestamp();
     }
     /* Start Date */
     if (($start = $message->utcstartdate) || ($start = $message->startdate)) {
         $start->setTimezone($tz);
         $this->start = $start->timestamp();
     }
     /* Priority */
     switch ($message->getImportance()) {
         case Horde_ActiveSync_Message_Task::IMPORTANCE_LOW:
             $this->priority = 5;
             break;
         case Horde_ActiveSync_Message_Task::IMPORTANCE_NORMAL:
             $this->priority = 3;
             break;
         case Horde_ActiveSync_Message_Task::IMPORTANCE_HIGH:
             $this->priority = 1;
             break;
         default:
             $this->priority = 3;
     }
     if (($alarm = $message->getReminder()) && $this->due) {
         $alarm->setTimezone($tz);
         $this->alarm = ($this->due - $alarm->timestamp()) / 60;
     }
     if ($rrule = $message->getRecurrence()) {
         $this->recurrence = $rrule;
     }
     $this->tasklist = $GLOBALS['prefs']->getValue('default_tasklist');
     /* Categories */
     if (is_array($message->categories) && count($message->categories)) {
         $this->tags = $message->categories;
     }
 }
All Usage Examples Of Horde_ActiveSync_Message_Task::getRecurrence