/** * Gets url of download controller. * @param string $action Action. * @param array $params Parameters to add in query. * @param bool $absolute Generate absolute url with host url. * @return string */ public function getUrlDownloadController($action, array $params = array(), $absolute = false) { static $rewriteCondition = null; if ($rewriteCondition === null) { /** @noinspection PhpDynamicAsStaticMethodCallInspection */ $accessPoints = \CUrlRewriter::getList(array('ID' => 'bitrix:disk.services')); if (empty($accessPoints)) { $rewriteCondition = "#^/disk/(?<action>[0-9a-zA-Z]+)/(?<fileId>[0-9]+)/(.*)\$#"; } else { $rewrite = reset($accessPoints); $rewriteCondition = $rewrite['CONDITION']; } } return ($absolute ? $this->getHostUrl() : '') . $this->buildUrl($rewriteCondition, array('action' => $action, 'ncc' => 1) + $params); }