• Модуль: report
  • Путь к файлу: ~/bitrix/modules/report/lib/visualconstructor/entity/widget.php
  • Класс: BitrixReportVisualConstructorEntityWidget
  • Вызов: Widget::getCopyForCurrentUser
public function getCopyForCurrentUser()
{
	global $USER;
	//TODO create normal copy function for models
	$coreWidget = clone $this;
	$copyWidget = new Widget();
	$copyWidget->setBoardId($coreWidget->getBoardId());
	$copyWidget->setWidgetClass($coreWidget->getWidgetClass());
	$copyWidget->setViewKey($coreWidget->getViewKey());
	$copyWidget->setGId($coreWidget->getGId());
	$copyWidget->setWeight($coreWidget->getWeight());
	$copyWidget->setOwnerId($USER->getID());
	if ($coreWidget->getId())
	{
		$copyWidget->setParentWidgetId($coreWidget->getId());
	}
	else
	{
		$copyWidget->setParentWidgetId($coreWidget->getId());
	}

	$reports = $coreWidget->getReports();
	if (is_array($reports))
	{
		foreach ($reports as $report)
		{
			//HACK: must rewrite
			$report->loadAttribute('configurations');
			$reportCopy = $report->getCopy();
			$reportCopy->setWidget($copyWidget);
			$reportCopy->setWidgetId(null);
			$copyWidget->addReports($reportCopy);
		}
	}


	$configurations = $coreWidget->getConfigurations();
	if ($configurations)
	{
		foreach ($configurations as $configuration)
		{
			$configuration->setId(null);
			$copyWidget->addConfigurations($configuration);
		}
	}


	return $copyWidget;
}