From 988710b0fc4e77b1a565a9f3ee4e7f24a539e057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Tue, 31 Dec 2013 14:34:28 +0100 Subject: [PATCH 1/3] avoid conflict with physical file config.js --- core/routes.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/routes.php b/core/routes.php index 5009243d59..f8454877e0 100644 --- a/core/routes.php +++ b/core/routes.php @@ -7,6 +7,7 @@ */ // Post installation check +/** @var $this OC_Router */ $this->create('post_setup_check', '/post-setup-check') ->action('OC_Setup', 'postSetupCheck'); @@ -61,7 +62,7 @@ $this->create('core_tags_delete', '/tags/{type}/delete') ->action('OC\Core\Tags\Controller', 'deleteTags') ->requirements(array('type')); // oC JS config -$this->create('js_config', '/core/js/config.js') +$this->create('js_config', '/core/js/oc.js') ->actionInclude('core/js/config.php'); // Routing $this->create('core_ajax_routes', '/core/routes.json') From ae5671d2813f74562b77ae4288f01b4ed5ed52be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Tue, 31 Dec 2013 14:36:02 +0100 Subject: [PATCH 2/3] new config parameter 'front_controller_active' which will instruct the url generator to generate urls without index.php --- lib/private/server.php | 5 +++-- lib/private/urlgenerator.php | 25 ++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/lib/private/server.php b/lib/private/server.php index 77c3732a9c..17565fafa4 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -120,7 +120,8 @@ class Server extends SimpleContainer implements IServerContainer { return new \OC\L10N\Factory(); }); $this->registerService('URLGenerator', function($c) { - return new \OC\URLGenerator(); + $config = $this->getConfig(); + return new \OC\URLGenerator($config); }); $this->registerService('AppHelper', function($c) { return new \OC\AppHelper(); @@ -249,7 +250,7 @@ class Server extends SimpleContainer implements IServerContainer { } /** - * @return \OC\Config + * @return \OCP\IConfig */ function getConfig() { return $this->query('AllConfig'); diff --git a/lib/private/urlgenerator.php b/lib/private/urlgenerator.php index 7795011fd0..4e3c110900 100644 --- a/lib/private/urlgenerator.php +++ b/lib/private/urlgenerator.php @@ -15,6 +15,19 @@ use RuntimeException; * Class to generate URLs */ class URLGenerator implements IURLGenerator { + + /** + * @var \OCP\IConfig + */ + private $config; + + /** + * @param \OCP\IConfig $config + */ + public function __construct($config) { + $this->config = $config; + } + /** * @brief Creates an url using a defined route * @param $route @@ -41,12 +54,18 @@ class URLGenerator implements IURLGenerator { * Returns a url to the given app and file. */ public function linkTo( $app, $file, $args = array() ) { + $frontControllerActive=($this->config->getSystemValue('front_controller_active', 'false') == 'true'); + if( $app != '' ) { $app_path = \OC_App::getAppPath($app); // Check if the app is in the app folder if ($app_path && file_exists($app_path . '/' . $file)) { if (substr($file, -3) == 'php' || substr($file, -3) == 'css') { + $urlLinkTo = \OC::$WEBROOT . '/index.php/apps/' . $app; + if ($frontControllerActive) { + $urlLinkTo = \OC::$WEBROOT . '/apps/' . $app; + } $urlLinkTo .= ($file != 'index.php') ? '/' . $file : ''; } else { $urlLinkTo = \OC_App::getAppWebPath($app) . '/' . $file; @@ -58,7 +77,11 @@ class URLGenerator implements IURLGenerator { if (file_exists(\OC::$SERVERROOT . '/core/' . $file)) { $urlLinkTo = \OC::$WEBROOT . '/core/' . $file; } else { - $urlLinkTo = \OC::$WEBROOT . '/' . $file; + if ($frontControllerActive && $file === 'index.php') { + $urlLinkTo = \OC::$WEBROOT; + } else { + $urlLinkTo = \OC::$WEBROOT . '/' . $file; + } } } From 6254f0a403e315461f8e20ebccf71cb91e9313a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Tue, 31 Dec 2013 15:12:17 +0100 Subject: [PATCH 3/3] use getAppWebPath() in here as well --- lib/private/template/cssresourcelocator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/template/cssresourcelocator.php b/lib/private/template/cssresourcelocator.php index 8e7831ca54..e26daa2582 100644 --- a/lib/private/template/cssresourcelocator.php +++ b/lib/private/template/cssresourcelocator.php @@ -22,7 +22,7 @@ class CSSResourceLocator extends ResourceLocator { $app = substr($style, 0, strpos($style, '/')); $style = substr($style, strpos($style, '/')+1); $app_path = \OC_App::getAppPath($app); - $app_url = $this->webroot . '/index.php/apps/' . $app; + $app_url = \OC_App::getAppWebPath($app); if ($this->appendIfExist($app_path, $style.$this->form_factor.'.css', $app_url) || $this->appendIfExist($app_path, $style.'.css', $app_url) ) {