. * * This file is a part of iCalcreator. */ namespace Kigkonsult\Icalcreator\Traits; use Kigkonsult\Icalcreator\Util\Util; use function is_numeric; /** * SEQUENCE property functions * * @author Kjell-Inge Gustafsson, kigkonsult * @since 2.22.23 - 2017-02-24 */ trait SEQUENCEtrait { /** * @var array component property SEQUENCE value * @access protected */ protected $sequence = null; /** * Return formatted output for calendar component property sequence * * @return string */ public function createSequence() { if( ! isset( $this->sequence ) || ( empty( $this->sequence ) && ! is_numeric( $this->sequence ))) { return null; } if(( ! isset( $this->sequence[Util::$LCvalue] ) || ( empty( $this->sequence[Util::$LCvalue] ) && ! is_numeric( $this->sequence[Util::$LCvalue] ))) && ( Util::$ZERO != $this->sequence[Util::$LCvalue] )) { return ( $this->getConfig( Util::$ALLOWEMPTY )) ? Util::createElement( Util::$SEQUENCE ) : null; } return Util::createElement( Util::$SEQUENCE, Util::createParams( $this->sequence[Util::$LCparams] ), $this->sequence[Util::$LCvalue] ); } /** * Set calendar component property sequence * * @param int $value * @param array $params * @return bool */ public function setSequence( $value = null, $params = null ) { if(( empty( $value ) && ! is_numeric( $value )) && ( Util::$ZERO != $value )) { $value = ( isset( $this->sequence[Util::$LCvalue] ) && ( -1 < $this->sequence[Util::$LCvalue] )) ? $this->sequence[Util::$LCvalue] + 1 : Util::$ZERO; } $this->sequence = [ Util::$LCvalue => $value, Util::$LCparams => Util::setParams( $params ), ]; return true; } }