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/bizproc/lib/workflow/template/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/bizproc/lib/workflow/template/tpl.php
<?php
namespace Bitrix\Bizproc\Workflow\Template;

use Bitrix\Main\ArgumentException;
use CBPWorkflowTemplateLoader;

class Tpl extends Entity\EO_WorkflowTemplate
{
	protected $tpl;

	public function getRootActivity()
	{
		return $this->getActivities()[0];
	}

	public function findActivity($activityName)
	{
		return CBPWorkflowTemplateLoader::FindActivityByName($this->getActivities(), $activityName);
	}

	public function getDocumentComplexType()
	{
		return [$this->getModuleId(), $this->getEntity(), $this->getDocumentType()];
	}

	public function getActivities()
	{
		return $this->getTemplate();
	}

	/**
	 * @return Collection\Usages
	 * @throws \CBPArgumentOutOfRangeException
	 */
	public function collectUsages()
	{
		/** @var \CBPActivity $rootActivity */
		if ($this->getId())
		{
			$rootActivity = CBPWorkflowTemplateLoader::GetLoader()->LoadWorkflow($this->getId())[0];
		}
		else
		{
			$rootActivity = CBPWorkflowTemplateLoader::GetLoader()->loadWorkflowFromArray([
				'ID' => '0',
				'TEMPLATE' => $this->getTemplate(),
				'VARIABLES' => $this->getVariables(),
				'PARAMETERS' => $this->getParameters(),
			])[0];
		}

		$rootActivity->SetProperties($this->getParameters());
		$rootActivity->SetVariablesTypes($this->getVariables());

		$usages = new Collection\Usages();
		$this->findActivityUsagesRecursive($rootActivity, $usages);

		return $usages;
	}

	public function findUsedSourceKeys($sourceType)
	{
		if (!SourceType::isType($sourceType))
		{
			throw new ArgumentException('Incorrect $sourceType', 'sourceType');
		}

		$usages = $this->collectUsages();
		return array_unique(array_column($usages->getBySourceType($sourceType), 1));
	}

	private function findActivityUsagesRecursive(\CBPActivity $activity, Collection\Usages $usages)
	{
		$sources = $activity->collectUsages();
		$usages->addOwnerSources($activity->GetName(), $sources);

		$children = $activity->CollectNestedActivities();
		if (is_array($children))
		{
			foreach ($children as $child)
			{
				$this->findActivityUsagesRecursive($child, $usages);
			}
		}
		return $usages;
	}

	public function getUsedActivityTypes()
	{
		return array_unique($this->getActivityTypes($this->getTemplate()));
	}

	private function getActivityTypes(array $activities)
	{
		$types = [];
		foreach ($activities as $activity)
		{
			$types[] = $activity['Type'];

			if (!empty($activity['Children']))
			{
				$types = array_merge($types, $this->getActivityTypes($activity['Children']));
			}
		}
		return $types;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit