403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/calendar/lib/ical/builder/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/calendar/lib/ical/builder/alert.php
<?php


namespace Bitrix\Calendar\ICal\Builder;

use Bitrix\Calendar\ICal\Basic\Content;
use Bitrix\Calendar\ICal\Basic\DatetimePropertyType;
use Bitrix\Calendar\ICal\Basic\LengthPropertyType;
use Bitrix\Calendar\ICal\Basic\Parameter;
use Bitrix\Main\Type\Date;

class Alert
{
	private const TRIGGER_START = 'trigger_start';
	private const TRIGGER_END = 'trigger_end';
	private const TRIGGER_DATE = 'trigger_date';
	private $triggerDate;
	private $triggerInterval;
	private $triggerMode = self::TRIGGER_DATE;
	private $message;

	public static function date(Date $date, string $description = null): Alert
	{
		return static::getInstance($description)->triggerDate($date);
	}

	public static function minutesBeforeStart(int $minutes, string $description = null): Alert
	{
		$interval = new \DateInterval("PT{$minutes}M");
		$interval->invert = 1;

		return static::getInstance($description)->triggerAtStart($interval);
	}

	public static function minutesAfterStart(int $min, string $description = null): Alert
	{
		return static::getInstance($description)->triggerAtStart(new \DateInterval("PT{$min}M"));
	}

	public static function minutesBeforeEnd(int $min, string $description = null): Alert
	{
		$interval = new \DateInterval("PT{$min}M");
		$interval->invert = 1;

		return static::getInstance($description)->triggerAtEnd($interval);
	}

	public static function minutesAfterEnd(int $min, string $description = null): Alert
	{
		return static::getInstance($description)->triggerAtEnd(new \DateInterval("PT{$min}M"));
	}

	private static function getInstance(array $reminds = [], $description = ''): Alert
	{
		return new self($reminds, $description);
	}

	public function __construct(array $reminds = [], $description = '')
	{
		$this->message = $reminds;
		$this->message = $description;
	}

	public function getType(): string
	{
		return 'VALARM';
	}

	public function getRequiredProperties(): array
	{
		return [
			'ACTION',
			'TRIGGER',
			'DESCRIPTION',
		];
	}

	public function message(string $message): Alert
	{
		$this->message = $message;

		return $this;
	}

	public function triggerDate(Date $triggerAt): Alert
	{
		$this->triggerMode = self::TRIGGER_DATE;
		$this->triggerDate = $triggerAt;

		return $this;
	}

	public function triggerAtStart(\DateInterval $interval): Alert
	{
		$this->triggerMode = self::TRIGGER_START;
		$this->triggerInterval = $interval;

		return $this;
	}

	public function triggerAtEnd(\DateInterval $interval): Alert
	{
		$this->triggerMode = self::TRIGGER_END;
		$this->triggerInterval = $interval;

		return $this;
	}

	protected function setContent(): Content
	{
		return Content::getInstance($this->getType())
			->textProperty('ACTION', 'DISPLAY')
			->textProperty('DESCRIPTION', $this->message)
			->property($this->resolveTriggerProperty());
	}

	private function resolveTriggerProperty()
	{
		if ($this->triggerMode === self::TRIGGER_DATE) {
			return DateTimePropertyType::getInstance(
				'TRIGGER',
				$this->triggerDate,
				true
			)->addParameter(new Parameter('VALUE', 'DATE-TIME'));
		}

		$property = LengthPropertyType::getInstance('TRIGGER', $this->triggerInterval);

		if ($this->triggerMode === self::TRIGGER_END) {
			return $property->addParameter(new Parameter('RELATED', 'END'));
		}

		return $property;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit