• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/focuscontroller.php
  • Класс: BitrixDiskFocusController
  • Вызов: FocusController::processActionOpenFileDetail
protected function processActionOpenFileDetail()
{
	if(!$this->checkRequiredGetParams(array('fileId')))
	{
		$this->sendJsonErrorResponse();
	}

	/** @var File $file */
	$file = File::loadById((int)$this->request->getQuery('fileId'), array('STORAGE'));
	if(!$file)
	{
		$this->errorCollection->addOne(new Error('Could not find file', self::ERROR_COULD_NOT_FIND_FILE));
		$this->showNotFound();
	}
	if(!$file->canRead($file->getStorage()->getCurrentUserSecurityContext()))
	{
		$this->errorCollection->addOne(new Error('Could not find file', self::ERROR_COULD_NOT_READ_FILE));
		$this->showNotFound();
	}

	$urlManager = Driver::getInstance()->getUrlManager();
	$pathDetail = $urlManager->getPathFileDetail($file);
	$additionalParameters = [];
	if($this->request->getQuery('back'))
	{
		$additionalParameters['back'] = $this->request->getQuery('back');
	}
	if($this->request->getQuery('show'))
	{
		$additionalParameters['show'] = $this->request->getQuery('show');
	}
	if ($this->request->get('IFRAME') === 'Y' || $this->request->getPost('IFRAME') === 'Y')
	{
		$additionalParameters['IFRAME'] = 'Y';
	}

	if ($additionalParameters)
	{
		$pathDetail .= '?&' . http_build_query($additionalParameters);
	}

	LocalRedirect(
		$urlManager->encodeUrn($pathDetail)
	);
}