diff --git a/administrator/includes/app.php b/administrator/includes/app.php index 161abb4a2f85e..0fdbb854aaed3 100644 --- a/administrator/includes/app.php +++ b/administrator/includes/app.php @@ -17,14 +17,7 @@ include_once dirname(__DIR__) . '/defines.php'; } -if (!defined('_JDEFINES')) { - define('JPATH_BASE', dirname(__DIR__)); - require_once JPATH_BASE . '/includes/defines.php'; -} - -if (!defined('JPATH_PUBLIC')) { - define('JPATH_PUBLIC', JPATH_ROOT); -} +require_once __DIR__ . '/defines.php'; // Check for presence of vendor dependencies not included in the git repository if (!file_exists(JPATH_LIBRARIES . '/vendor/autoload.php') || !is_dir(JPATH_PUBLIC . '/media/vendor')) { diff --git a/administrator/includes/defines.php b/administrator/includes/defines.php index ddf7c93e779e5..23b7ff2790212 100644 --- a/administrator/includes/defines.php +++ b/administrator/includes/defines.php @@ -9,21 +9,24 @@ defined('_JEXEC') or die; +// Define JPATH constants if not defined yet +defined('JPATH_BASE') || define('JPATH_BASE', dirname(__DIR__)); + // Global definitions $parts = explode(DIRECTORY_SEPARATOR, JPATH_BASE); array_pop($parts); // Defines -define('JPATH_ROOT', implode(DIRECTORY_SEPARATOR, $parts)); -define('JPATH_SITE', JPATH_ROOT); -define('JPATH_PUBLIC', JPATH_ROOT); -define('JPATH_CONFIGURATION', JPATH_ROOT); -define('JPATH_ADMINISTRATOR', JPATH_ROOT . DIRECTORY_SEPARATOR . 'administrator'); -define('JPATH_LIBRARIES', JPATH_ROOT . DIRECTORY_SEPARATOR . 'libraries'); -define('JPATH_PLUGINS', JPATH_ROOT . DIRECTORY_SEPARATOR . 'plugins'); -define('JPATH_INSTALLATION', JPATH_ROOT . DIRECTORY_SEPARATOR . 'installation'); -define('JPATH_THEMES', JPATH_BASE . DIRECTORY_SEPARATOR . 'templates'); -define('JPATH_CACHE', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'cache'); -define('JPATH_MANIFESTS', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'manifests'); -define('JPATH_API', JPATH_ROOT . DIRECTORY_SEPARATOR . 'api'); -define('JPATH_CLI', JPATH_ROOT . DIRECTORY_SEPARATOR . 'cli'); +defined('JPATH_ROOT') || define('JPATH_ROOT', implode(DIRECTORY_SEPARATOR, $parts)); +defined('JPATH_SITE') || define('JPATH_SITE', JPATH_ROOT); +defined('JPATH_PUBLIC') || define('JPATH_PUBLIC', JPATH_ROOT); +defined('JPATH_CONFIGURATION') || define('JPATH_CONFIGURATION', JPATH_ROOT); +defined('JPATH_ADMINISTRATOR') || define('JPATH_ADMINISTRATOR', JPATH_ROOT . DIRECTORY_SEPARATOR . 'administrator'); +defined('JPATH_LIBRARIES') || define('JPATH_LIBRARIES', JPATH_ROOT . DIRECTORY_SEPARATOR . 'libraries'); +defined('JPATH_PLUGINS') || define('JPATH_PLUGINS', JPATH_ROOT . DIRECTORY_SEPARATOR . 'plugins'); +defined('JPATH_INSTALLATION') || define('JPATH_INSTALLATION', JPATH_ROOT . DIRECTORY_SEPARATOR . 'installation'); +defined('JPATH_THEMES') || define('JPATH_THEMES', JPATH_BASE . DIRECTORY_SEPARATOR . 'templates'); +defined('JPATH_CACHE') || define('JPATH_CACHE', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'cache'); +defined('JPATH_MANIFESTS') || define('JPATH_MANIFESTS', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'manifests'); +defined('JPATH_API') || define('JPATH_API', JPATH_ROOT . DIRECTORY_SEPARATOR . 'api'); +defined('JPATH_CLI') || define('JPATH_CLI', JPATH_ROOT . DIRECTORY_SEPARATOR . 'cli'); diff --git a/api/includes/app.php b/api/includes/app.php index d55fc47a3c6cd..61559562e1469 100644 --- a/api/includes/app.php +++ b/api/includes/app.php @@ -17,14 +17,7 @@ include_once dirname(__DIR__) . '/defines.php'; } -if (!defined('_JDEFINES')) { - define('JPATH_BASE', dirname(__DIR__)); - require_once JPATH_BASE . '/includes/defines.php'; -} - -if (!defined('JPATH_PUBLIC')) { - define('JPATH_PUBLIC', JPATH_ROOT); -} +require_once __DIR__ . '/defines.php'; require_once JPATH_BASE . '/includes/framework.php'; diff --git a/api/includes/defines.php b/api/includes/defines.php index 09df2661f67d3..bc05a4ac58f31 100644 --- a/api/includes/defines.php +++ b/api/includes/defines.php @@ -9,21 +9,24 @@ defined('_JEXEC') or die; +// Define JPATH constants if not defined yet +defined('JPATH_BASE') || define('JPATH_BASE', dirname(__DIR__)); + // Global definitions $parts = explode(DIRECTORY_SEPARATOR, JPATH_BASE); array_pop($parts); -// Defines. -define('JPATH_ROOT', implode(DIRECTORY_SEPARATOR, $parts)); -define('JPATH_SITE', JPATH_ROOT); -define('JPATH_PUBLIC', JPATH_ROOT); -define('JPATH_CONFIGURATION', JPATH_ROOT); -define('JPATH_ADMINISTRATOR', JPATH_ROOT . DIRECTORY_SEPARATOR . 'administrator'); -define('JPATH_LIBRARIES', JPATH_ROOT . DIRECTORY_SEPARATOR . 'libraries'); -define('JPATH_PLUGINS', JPATH_ROOT . DIRECTORY_SEPARATOR . 'plugins'); -define('JPATH_INSTALLATION', JPATH_ROOT . DIRECTORY_SEPARATOR . 'installation'); -define('JPATH_THEMES', JPATH_BASE . DIRECTORY_SEPARATOR . 'templates'); -define('JPATH_CACHE', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'cache'); -define('JPATH_MANIFESTS', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'manifests'); -define('JPATH_API', JPATH_ROOT . DIRECTORY_SEPARATOR . 'api'); -define('JPATH_CLI', JPATH_ROOT . DIRECTORY_SEPARATOR . 'cli'); +// Defines +defined('JPATH_ROOT') || define('JPATH_ROOT', implode(DIRECTORY_SEPARATOR, $parts)); +defined('JPATH_SITE') || define('JPATH_SITE', JPATH_ROOT); +defined('JPATH_PUBLIC') || define('JPATH_PUBLIC', JPATH_ROOT); +defined('JPATH_CONFIGURATION') || define('JPATH_CONFIGURATION', JPATH_ROOT); +defined('JPATH_ADMINISTRATOR') || define('JPATH_ADMINISTRATOR', JPATH_ROOT . DIRECTORY_SEPARATOR . 'administrator'); +defined('JPATH_LIBRARIES') || define('JPATH_LIBRARIES', JPATH_ROOT . DIRECTORY_SEPARATOR . 'libraries'); +defined('JPATH_PLUGINS') || define('JPATH_PLUGINS', JPATH_ROOT . DIRECTORY_SEPARATOR . 'plugins'); +defined('JPATH_INSTALLATION') || define('JPATH_INSTALLATION', JPATH_ROOT . DIRECTORY_SEPARATOR . 'installation'); +defined('JPATH_THEMES') || define('JPATH_THEMES', JPATH_BASE . DIRECTORY_SEPARATOR . 'templates'); +defined('JPATH_CACHE') || define('JPATH_CACHE', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'cache'); +defined('JPATH_MANIFESTS') || define('JPATH_MANIFESTS', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'manifests'); +defined('JPATH_API') || define('JPATH_API', JPATH_ROOT . DIRECTORY_SEPARATOR . 'api'); +defined('JPATH_CLI') || define('JPATH_CLI', JPATH_ROOT . DIRECTORY_SEPARATOR . 'cli'); diff --git a/includes/app.php b/includes/app.php index 53a25b9c8f0f4..7a34a062e99f3 100644 --- a/includes/app.php +++ b/includes/app.php @@ -17,10 +17,7 @@ include_once dirname(__DIR__) . '/defines.php'; } -if (!defined('_JDEFINES')) { - define('JPATH_BASE', dirname(__DIR__)); - require_once JPATH_BASE . '/includes/defines.php'; -} +require_once __DIR__ . '/defines.php'; if (!defined('JPATH_PUBLIC')) { define('JPATH_PUBLIC', JPATH_ROOT); diff --git a/includes/defines.php b/includes/defines.php index 179cb9b9d89a2..cf156324c5cb6 100644 --- a/includes/defines.php +++ b/includes/defines.php @@ -9,20 +9,18 @@ defined('_JEXEC') or die; -// Global definitions -$parts = explode(DIRECTORY_SEPARATOR, JPATH_BASE); - -// Defines. -define('JPATH_ROOT', implode(DIRECTORY_SEPARATOR, $parts)); -define('JPATH_SITE', JPATH_ROOT); -define('JPATH_CONFIGURATION', JPATH_ROOT); -define('JPATH_PUBLIC', JPATH_ROOT); -define('JPATH_ADMINISTRATOR', JPATH_ROOT . DIRECTORY_SEPARATOR . 'administrator'); -define('JPATH_LIBRARIES', JPATH_ROOT . DIRECTORY_SEPARATOR . 'libraries'); -define('JPATH_PLUGINS', JPATH_ROOT . DIRECTORY_SEPARATOR . 'plugins'); -define('JPATH_INSTALLATION', JPATH_ROOT . DIRECTORY_SEPARATOR . 'installation'); -define('JPATH_THEMES', JPATH_BASE . DIRECTORY_SEPARATOR . 'templates'); -define('JPATH_CACHE', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'cache'); -define('JPATH_MANIFESTS', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'manifests'); -define('JPATH_API', JPATH_ROOT . DIRECTORY_SEPARATOR . 'api'); -define('JPATH_CLI', JPATH_ROOT . DIRECTORY_SEPARATOR . 'cli'); +// Define JPATH constants if not defined yet +defined('JPATH_BASE') || define('JPATH_BASE', dirname(__DIR__)); +defined('JPATH_ROOT') || define('JPATH_ROOT', JPATH_BASE); +defined('JPATH_SITE') || define('JPATH_SITE', JPATH_ROOT); +defined('JPATH_PUBLIC') || define('JPATH_PUBLIC', JPATH_ROOT); +defined('JPATH_CONFIGURATION') || define('JPATH_CONFIGURATION', JPATH_ROOT); +defined('JPATH_ADMINISTRATOR') || define('JPATH_ADMINISTRATOR', JPATH_ROOT . DIRECTORY_SEPARATOR . 'administrator'); +defined('JPATH_LIBRARIES') || define('JPATH_LIBRARIES', JPATH_ROOT . DIRECTORY_SEPARATOR . 'libraries'); +defined('JPATH_PLUGINS') || define('JPATH_PLUGINS', JPATH_ROOT . DIRECTORY_SEPARATOR . 'plugins'); +defined('JPATH_INSTALLATION') || define('JPATH_INSTALLATION', JPATH_ROOT . DIRECTORY_SEPARATOR . 'installation'); +defined('JPATH_THEMES') || define('JPATH_THEMES', JPATH_BASE . DIRECTORY_SEPARATOR . 'templates'); +defined('JPATH_CACHE') || define('JPATH_CACHE', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'cache'); +defined('JPATH_MANIFESTS') || define('JPATH_MANIFESTS', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'manifests'); +defined('JPATH_API') || define('JPATH_API', JPATH_ROOT . DIRECTORY_SEPARATOR . 'api'); +defined('JPATH_CLI') || define('JPATH_CLI', JPATH_ROOT . DIRECTORY_SEPARATOR . 'cli'); diff --git a/libraries/src/Router/SiteRouter.php b/libraries/src/Router/SiteRouter.php index 73edd157c90f3..49e6e13e3f600 100644 --- a/libraries/src/Router/SiteRouter.php +++ b/libraries/src/Router/SiteRouter.php @@ -149,11 +149,11 @@ public function parseInit(&$router, &$uri) if (preg_match("#.*?\.php#u", $path, $matches)) { // Get the current entry point path relative to the site path. $scriptPath = realpath($_SERVER['SCRIPT_FILENAME'] ?: str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED'])); - $relativeScriptPath = str_replace('\\', '/', str_replace(JPATH_SITE, '', $scriptPath)); + $relativeScriptPath = str_replace('\\', '/', str_replace(JPATH_PUBLIC, '', $scriptPath)); // If a php file has been found in the request path, check to see if it is a valid file. // Also verify that it represents the same file from the server variable for entry script. - if (is_file(JPATH_SITE . $matches[0]) && ($matches[0] === $relativeScriptPath)) { + if (is_file(JPATH_PUBLIC . $matches[0]) && ($matches[0] === $relativeScriptPath)) { // Remove the entry point segments from the request path for proper routing. $path = str_replace($matches[0], '', $path); }