. * * This file is a part of iCalcreator. */ namespace Kigkonsult\Icalcreator\Traits; use Kigkonsult\Icalcreator\Util\Util; use function filter_var; use function substr; /** * URL property functions * * @author Kjell-Inge Gustafsson, kigkonsult * @since 2.22.23 - 2017-02-05 */ trait URLtrait { /** * @var array component property URL value * @access protected */ protected $url = null; /** * Return formatted output for calendar component property url * * @return string */ public function createUrl() { if( empty( $this->url )) { return null; } if( empty( $this->url[Util::$LCvalue] )) { return ( $this->getConfig( Util::$ALLOWEMPTY )) ? Util::createElement( Util::$URL ) : null; } return Util::createElement( Util::$URL, Util::createParams( $this->url[Util::$LCparams] ), $this->url[Util::$LCvalue] ); } /** * Set calendar component property url * * @param string $value * @param array $params * @return bool */ public function setUrl( $value, $params = null ) { static $URN = 'urn'; if( ! empty( $value )) { if( ! filter_var( $value, FILTER_VALIDATE_URL ) && ( 0 != strcasecmp( $URN, substr( $value, 0, 3 )))) { return false; } } elseif( $this->getConfig( Util::$ALLOWEMPTY )) { $value = Util::$SP0; } else { return false; } $this->url = [ Util::$LCvalue => $value, Util::$LCparams => Util::setParams( $params ), ]; return true; } }