Your IP : 3.139.236.174


Current Path : /home/bitrix/ext_www/coffe.land/bitrix/modules/report/lib/visualconstructor/helper/
Upload File :
Current File : /home/bitrix/ext_www/coffe.land/bitrix/modules/report/lib/visualconstructor/helper/report.php

<?php
namespace Bitrix\Report\VisualConstructor\Helper;

use Bitrix\Report\VisualConstructor\Handler\BaseReport;
use Bitrix\Report\VisualConstructor\RuntimeProvider\ReportProvider;

/**
 * Class Report
 * @package Bitrix\Report\VisualConstructor\Helper
 */
class Report
{
	/**
	 * Build Pseudo report in context of widget.
	 *
	 * @param string $reportHandlerClassName Report handler class name.
	 * @param \Bitrix\Report\VisualConstructor\Entity\Widget $widget Widget entity.
	 * @param bool $isPseudo Marker to set built widget will be pseudo or no.
	 * @return BaseReport|null
	 */
	public static function buildReportHandlerForWidget($reportHandlerClassName, \Bitrix\Report\VisualConstructor\Entity\Widget $widget, $isPseudo = false)
	{
		$reportHandler = ReportProvider::getReportHandlerByClassName($reportHandlerClassName);
		if ($reportHandler instanceof BaseReport)
		{
			/** @var BaseReport $reportHandler */
			$reportHandler = new $reportHandler;
			$reportHandler->setView($widget->getWidgetHandler()->getView());
			$reportHandler->setWidgetHandler($widget->getWidgetHandler());
			if ($isPseudo)
			{
				$reportHandler->getReport()->setGId('_pseudo' . Util::generateUserUniqueId());
			}
			else
			{
				$reportHandler->getReport()->setGId(Util::generateUserUniqueId());
			}

			$reportHandler->getReport()->setWidget($widget);
			$reportHandler->getCollectedFormElements();
			return $reportHandler;
		}
		return null;
	}
}