* or the GNU Affero General Public License, version 3: * iCalcreator is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * iCalcreator is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * You should have received a copy of the GNU Affero General Public * License along with this program. * If not, see . */ namespace kigkonsult\iCalcreator\traits; use kigkonsult\iCalcreator\util\util; /** * DUE property functions * * @author Kjell-Inge Gustafsson, kigkonsult * @since 2.22.23 - 2017-02-02 */ trait DUEtrait { /** * @var array component property DUE value * @access protected */ protected $due = null; /** * Return formatted output for calendar component property due * * @return string */ public function createDue() { if( empty( $this->due )) return null; if( util::hasNodate( $this->due )) return ( $this->getConfig( util::$ALLOWEMPTY )) ? util::createElement( util::$DUE ) : null; return util::createElement( util::$DUE, util::createParams( $this->due[util::$LCparams] ), util::date2strdate( $this->due[util::$LCvalue], util::isParamsValueSet( $this->due, util::$DATE ) ? 3 : null )); } /** * Set calendar component property due * * @param mixed $year * @param mixed $month * @param int $day * @param int $hour * @param int $min * @param int $sec * @param string $tz * @param array $params * @return bool */ public function setDue( $year, $month=null, $day=null, $hour=null, $min=null, $sec=null, $tz=null, $params=null ) { if( empty( $year )) { if( $this->getConfig( util::$ALLOWEMPTY )) { $this->due = [util::$LCvalue => util::$EMPTYPROPERTY, util::$LCparams => util::setParams( $params )]; return true; } else return false; } if( false === ( $tzid = $this->getConfig( util::$TZID ))) $tzid = null; $this->due = util::setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params, null, null, $tzid ); return true; } }