コード例 #1
0
ファイル: PcTask.php プロジェクト: ntemple/intelli-plancake
 /**
  * Returns the repetition Ical rule.
  *
  * @return     string|null
  */
 public function getRepetitionICalRrule()
 {
     if (!($repetitionId = $this->getRepetitionId())) {
         return null;
     } else {
         $repetition = PcRepetitionPeer::retrieveByPk($repetitionId);
         if (!$repetition->needsParam()) {
             return $repetition->getIcalRrule();
         } else {
             $repetitionParam = $this->getRepetitionParam();
             if ($repetition->getSpecial() != 'selected_wkdays') {
                 return str_replace('X', $repetitionParam, $repetition->getIcalRrule());
             } else {
                 $weekdaysSet = DateFormat::fromIntegerToWeekdaysSetForRepetition($repetitionParam);
                 $selectedWeekdays = array();
                 foreach ($weekdaysSet as $k => $v) {
                     if ($v) {
                         $selectedWeekdays[] = PcUtils::fromAbbreviationToIcalAbbreviation($k);
                     }
                 }
                 $weekdays = implode(",", $selectedWeekdays);
                 return str_replace('X', $weekdays, $repetition->getIcalRrule());
             }
         }
     }
 }