4namespace Bitrix\Calendar\ICal\Builder;
6use Bitrix\Calendar\ICal\Basic\Content;
7use Bitrix\Calendar\ICal\Basic\DatetimePropertyType;
8use Bitrix\Calendar\ICal\Basic\LengthPropertyType;
9use Bitrix\Calendar\ICal\Basic\Parameter;
10use Bitrix\Main\Type\Date;
14 private const TRIGGER_START =
'trigger_start';
15 private const TRIGGER_END =
'trigger_end';
16 private const TRIGGER_DATE =
'trigger_date';
18 private $triggerInterval;
19 private $triggerMode = self::TRIGGER_DATE;
29 $interval = new \DateInterval(
"PT{$minutes}M");
30 $interval->invert = 1;
32 return static::getInstance(
$description)->triggerAtStart($interval);
42 $interval = new \DateInterval(
"PT{$min}M");
43 $interval->invert = 1;
45 return static::getInstance(
$description)->triggerAtEnd($interval);
87 $this->triggerMode = self::TRIGGER_DATE;
95 $this->triggerMode = self::TRIGGER_START;
96 $this->triggerInterval = $interval;
103 $this->triggerMode = self::TRIGGER_END;
104 $this->triggerInterval = $interval;
111 return Content::getInstance($this->
getType())
113 ->textProperty(
'DESCRIPTION', $this->
message)
114 ->property($this->resolveTriggerProperty());
117 private function resolveTriggerProperty()
119 if ($this->triggerMode === self::TRIGGER_DATE) {
120 return DateTimePropertyType::getInstance(
124 )->addParameter(
new Parameter(
'VALUE',
'DATE-TIME'));
127 $property = LengthPropertyType::getInstance(
'TRIGGER', $this->triggerInterval);
129 if ($this->triggerMode === self::TRIGGER_END) {
130 return $property->addParameter(
new Parameter(
'RELATED',
'END'));
textProperty($names, ?string $value, bool $disableEscaping=false)
triggerAtEnd(\DateInterval $interval)
triggerDate(Date $triggerAt)
static minutesBeforeStart(int $minutes, string $description=null)
static minutesAfterStart(int $min, string $description=null)
static minutesBeforeEnd(int $min, string $description=null)
static date(Date $date, string $description=null)
__construct(array $reminds=[], $description='')
static minutesAfterEnd(int $min, string $description=null)
triggerAtStart(\DateInterval $interval)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(Loader::includeModule( 'bitrix24')) elseif(Loader::includeModule('intranet') &&CIntranetUtils::getPortalZone() !=='ru') $description