From 5c2b2fc8425e7fa52945b53058ac67f67d228409 Mon Sep 17 00:00:00 2001
From: Brice Maron <brice@bmaron.net>
Date: Wed, 6 Jun 2012 19:54:57 +0000
Subject: [PATCH] Change app path logic in templates

---
 apps/contacts/appinfo/remote.php | 4 ++--
 core/js/js.js                    | 8 +++-----
 core/templates/layout.guest.php  | 2 +-
 core/templates/layout.user.php   | 3 +--
 lib/template.php                 | 5 +++++
 5 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/apps/contacts/appinfo/remote.php b/apps/contacts/appinfo/remote.php
index ef50e4ad39..5add3bc688 100644
--- a/apps/contacts/appinfo/remote.php
+++ b/apps/contacts/appinfo/remote.php
@@ -22,8 +22,8 @@
 
 OCP\App::checkAppEnabled('contacts');
 
-if(substr($_SERVER["REQUEST_URI"],0,strlen(OC::$APPSWEBROOT . '/apps/contacts/carddav.php')) == OC::$APPSWEBROOT . '/apps/contacts/carddav.php'){
-	$baseuri = OC::$APPSWEBROOT . '/apps/contacts/carddav.php';
+if(substr($_SERVER["REQUEST_URI"],0,strlen(OC_App::getAppWebPath('contacts').'/carddav.php')) == OC_App::getAppWebPath('contacts').'/carddav.php'){
+	$baseuri = OC_App::getAppWebPath('contacts').'/carddav.php';
 }
 
 // only need authentication apps
diff --git a/core/js/js.js b/core/js/js.js
index 89a20a529f..a1ad0c7718 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -31,7 +31,7 @@ t.cache={};
 
 OC={
 	webroot:oc_webroot,
-	appswebroot:oc_appswebroot,
+	appswebroots:oc_appswebroots,
 	currentUser:(typeof oc_current_user!=='undefined')?oc_current_user:false,
 	coreApps:['', 'admin','log','search','settings','core','3rdparty'],
 	/**
@@ -63,10 +63,8 @@ OC={
 				link+= file;
 			}
 		}else if(file.substring(file.length-3) != 'php' && !isCore){
-			link=OC.appswebroot;
-			link+='/';
-			link+='apps/';
-			link+=app+'/';
+			link=OC.appswebroots[app];
+			link+='/'+app+'/';
 			if(type){
 				link+=type+'/';
 			}
diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php
index 7f5a4d50fc..7a96891771 100644
--- a/core/templates/layout.guest.php
+++ b/core/templates/layout.guest.php
@@ -12,7 +12,7 @@
 		<?php endforeach; ?>
 		<script type="text/javascript">
 			var oc_webroot = '<?php echo OC::$WEBROOT; ?>';
-			var oc_appswebroot = '<?php echo OC::$APPSWEBROOT; ?>';
+			var oc_appswebroots = <?php echo $_['apps_paths'] ?>;
 		</script>
 		<?php if (!defined('DEBUG') || !DEBUG): ?>
 		<script type="text/javascript" src="<?php echo OC_Helper::linkToRemote('core.js', false) ?>"></script>
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index 5f00a884a0..91cfa1a87a 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -12,8 +12,7 @@
 		<?php endforeach; ?>
 		<script type="text/javascript">
 			var oc_webroot = '<?php echo OC::$WEBROOT; ?>';
-			var oc_appswebroot = '<?php //echo OC::$APPSWEBROOT; ?>';
-			// TODO: PATH
+			var oc_appswebroots = <?php echo $_['apps_paths'] ?>;
 			var oc_current_user = '<?php echo OC_User::getUser() ?>';
 		</script>
 		<?php if (!defined('DEBUG') || !DEBUG): ?>
diff --git a/lib/template.php b/lib/template.php
index fdd608fdc7..6fe0710203 100644
--- a/lib/template.php
+++ b/lib/template.php
@@ -383,6 +383,11 @@ class OC_Template{
 			}else{
 				$page = new OC_Template( "core", "layout.guest" );
 			}
+			$apps_paths = array();
+			foreach(OC_App::getEnabledApps() as $app){
+				$apps_paths[$app] = OC_App::getAppWebPath($app);
+			}
+			$page->assign( 'apps_paths', str_replace('\\/', '/',json_encode($apps_paths)) ); // Ugly unescape slashes waiting for better solution
 
 			// Read the selected theme from the config file
 			$theme=OC_Config::getValue( "theme" );
-- 
GitLab