AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 18.226.177.12
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/modules/calendar/lib/ical/parser/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/modules/calendar/lib/ical/parser/parsermanager.php
<?php


namespace Bitrix\Calendar\ICal\Parser;


class ParserManager
{
	/**
	 * @var array
	 */
	private $data;
	/**
	 * @var array
	 */
	private $timezones;
	/**
	 * @var array
	 */
	private $events = [];
	/**
	 * @var array
	 */
	private $components = [];
	/**
	 * @var string
	 */
	private $method = '';

	public static function getInstance(string $data): ParserManager
	{
		return new self($data);
	}

	public function __construct(string $data = '')
	{
		$this->data = $data;
	}

	public function parseData(): ParserManager
	{
		try
		{
			$parser = Parser::getInstance($this->data);
			$this->components = $parser->handleData()->getComponents();
		}
		catch(\Exception $e)
		{
		}

		return $this;
	}

	public function handleComponents(): ParserManager
	{
		$components = $this->components;

		foreach ($components as $component)
		{
			if ($component instanceof Calendar)
			{
				$this->events = $component->handleEvents()->getEvents();
				$this->method = $component->getMethod();
			}
			elseif ($component instanceof Event)
			{
				$this->events[] = $component->getContent();
			}
		}

		return $this;
	}

	public function getComponents(): array
	{
		return $this->components;
	}

	public function getEvents()
	{
		return $this->events;
	}

	public function getProcessedEvents()
	{
		return $this->parseData()
			->handleComponents()
			->getEvents();
	}

	public function getMethod()
	{
		return $this->method;
	}
}

Anon7 - 2022
AnonSec Team