]> source.dussan.org Git - nextcloud-server.git/commitdiff
make the location of the 3rdparty folder flexible.
authorFrank Karlitschek <karlitschek@kde.org>
Thu, 23 Feb 2012 14:37:38 +0000 (15:37 +0100)
committerFrank Karlitschek <karlitschek@kde.org>
Thu, 23 Feb 2012 14:37:38 +0000 (15:37 +0100)
It´s automatically search in the owncloud folder and in the parent folder.
override with an option in config.php is also possible

apps/calendar/ajax/events.php
config/config.sample.php
lib/base.php
lib/template.php

index 7734129bd954fec9d62348ef6c556c2fdd170474..1436f634316d41a09d9550d395cc40d0b18071ef 100755 (executable)
@@ -7,7 +7,7 @@
  */
 
 require_once ('../../../lib/base.php');
-require_once('../../../3rdparty/when/When.php');
+require_once('when/When.php');
 
 function create_return_event($event, $vevent){
        $return_event = array();
index cd5253587136454b91fffc2f11d0ca365453582a..5206737455599aeef73ba6f779fbebb9d3aee889 100755 (executable)
@@ -13,6 +13,8 @@ $CONFIG = array(
 "forcessl" => false,
 "enablebackup" => false,
 "theme" => "",
+"3rdpartyroot" => "",
+"3rdpartyurl" => "",
 // "datadirectory" => ""
 );
 ?>
index 880645ff79d124c70b45ebf0dcb552a05da0adfc..a95c9d2b21aff101fc4aaee891e86778d67787f0 100644 (file)
@@ -54,6 +54,14 @@ class OC{
         * the folder that stores the data for the root filesystem (e.g. /srv/http/owncloud/data)
         */
        public static $CONFIG_DATADIRECTORY_ROOT = '';
+       /**
+        * The installation path of the 3rdparty folder on the server (e.g. /srv/http/owncloud/3rdparty)
+        */
+       public static $THIRDPARTYROOT = '';
+       /**
+        * the root path of the 3rdparty folder for http requests (e.g. owncloud/3rdparty)
+        */
+       public static $THIRDPARTYWEBROOT = '';
 
        /**
         * SPL autoload
@@ -138,12 +146,35 @@ class OC{
                }
                OC::$WEBROOT=substr($scriptName,0,strlen($scriptName)-strlen(OC::$SUBURI));
 
+
                if(OC::$WEBROOT!='' and OC::$WEBROOT[0]!=='/'){
                        OC::$WEBROOT='/'.OC::$WEBROOT;
                }
 
+               // search the 3rdparty folder
+               if(OC_Config::getValue('3rdpartyroot', '')<>'' and OC_Config::getValue('3rdpartyurl', '')<>''){
+                       OC::$THIRDPARTYROOT=OC_Config::getValue('3rdpartyroot', '');
+                       OC::$THIRDPARTYWEBROOT=OC_Config::getValue('3rdpartyurl', '');
+               }elseif(file_exists(OC::$SERVERROOT.'/3rdparty')){
+                       OC::$THIRDPARTYROOT=OC::$SERVERROOT;
+                       OC::$THIRDPARTYWEBROOT=OC::$WEBROOT;
+               }elseif(file_exists(OC::$SERVERROOT.'/../3rdparty')){
+                       $url_tmp=explode('/',OC::$WEBROOT);     
+                       $length=count($url_tmp);
+                       unset($url_tmp[$length-1]); 
+                       OC::$THIRDPARTYWEBROOT=implode('/',$url_tmp);
+                       $root_tmp=explode('/',OC::$SERVERROOT); 
+                       $length=count($root_tmp);
+                       unset($root_tmp[$length-1]); 
+                       OC::$THIRDPARTYROOT=implode('/',$root_tmp);
+               }else{
+                       echo("3rdparty directory not found! Please put the ownCloud 3rdparty folder in the ownCloud folder or the folder above. You can also configure the location in the config.php file.");
+                       exit;
+               }
+
+
                // set the right include path
-               set_include_path(OC::$SERVERROOT.'/lib'.PATH_SEPARATOR.OC::$SERVERROOT.'/config'.PATH_SEPARATOR.OC::$SERVERROOT.'/3rdparty'.PATH_SEPARATOR.get_include_path().PATH_SEPARATOR.OC::$SERVERROOT);
+               set_include_path(OC::$SERVERROOT.'/lib'.PATH_SEPARATOR.OC::$SERVERROOT.'/config'.PATH_SEPARATOR.OC::$THIRDPARTYROOT.'/3rdparty'.PATH_SEPARATOR.get_include_path().PATH_SEPARATOR.OC::$SERVERROOT);
 
                // Redirect to installer if not installed
                if (!OC_Config::getValue('installed', false) && OC::$SUBURI != '/index.php') {
index d991759fbcd96b3fbca7a60eccd1d13cdfe6d973..5fe2eb7d6c7b320e7ec5e187c8130151a1171e6d 100644 (file)
@@ -346,31 +346,41 @@ class OC_Template{
 
                        // Add the core js files or the js files provided by the selected theme
                        foreach(OC_Util::$scripts as $script){
-                               if(is_file(OC::$SERVERROOT."/themes/$theme/apps/$script$fext.js" )){
+                               // Is it in 3rd party?
+                               if(is_file(OC::$THIRDPARTYROOT."/$script.js" )){
+                                       $page->append( "jsfiles", OC::$THIRDPARTYWEBROOT."/$script.js" );
+
+                               // Is it in apps and overwritten by the theme?
+                               }elseif(is_file(OC::$SERVERROOT."/themes/$theme/apps/$script$fext.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/apps/$script$fext.js" );
                                }elseif(is_file(OC::$SERVERROOT."/themes/$theme/apps/$script.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/apps/$script.js" );
 
+                               // Is it part of an app?
                                }elseif(is_file(OC::$SERVERROOT."/apps/$script$fext.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/apps/$script$fext.js" );
                                }elseif(is_file(OC::$SERVERROOT."/apps/$script.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/apps/$script.js" );
 
+                               // Is it in the owncloud root but overwritten by the theme?
                                }elseif(is_file(OC::$SERVERROOT."/themes/$theme/$script$fext.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/$script$fext.js" );
                                }elseif(is_file(OC::$SERVERROOT."/themes/$theme/$script.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/$script.js" );
-
+       
+                               // Is it in the owncloud root ?
                                }elseif(is_file(OC::$SERVERROOT."/$script$fext.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/$script$fext.js" );
                                }elseif(is_file(OC::$SERVERROOT."/$script.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/$script.js" );
 
+                               // Is in core but overwritten by a theme?
                                }elseif(is_file(OC::$SERVERROOT."/themes/$theme/core/$script$fext.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/core/$script$fext.js" );
                                }elseif(is_file(OC::$SERVERROOT."/themes/$theme/core/$script.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/core/$script.js" );
 
+                               // Is it in core?
                                }elseif(is_file(OC::$SERVERROOT."/core/$script$fext.js" )){
                                        $page->append( "jsfiles", OC::$WEBROOT."/core/$script$fext.js" );
                                }else{
@@ -380,14 +390,20 @@ class OC_Template{
                        }
                        // Add the css files
                        foreach(OC_Util::$styles as $style){
-                               if(is_file(OC::$SERVERROOT."/apps/$style$fext.css" )){
+                               // is it in 3rdparty?
+                               if(is_file(OC::$THIRDPARTYROOT."/$style.css" )){
+                                       $page->append( "cssfiles", OC::$THIRDPARTYWEBROOT."/$style.css" );
+                               // or in apps?
+                               }elseif(is_file(OC::$SERVERROOT."/apps/$style$fext.css" )){
                                        $page->append( "cssfiles", OC::$WEBROOT."/apps/$style$fext.css" );
                                }elseif(is_file(OC::$SERVERROOT."/apps/$style.css" )){
                                        $page->append( "cssfiles", OC::$WEBROOT."/apps/$style.css" );
+                               // or in the owncloud root?
                                }elseif(is_file(OC::$SERVERROOT."/$style$fext.css" )){
                                        $page->append( "cssfiles", OC::$WEBROOT."/$style$fext.css" );
                                }elseif(is_file(OC::$SERVERROOT."/$style.css" )){
                                        $page->append( "cssfiles", OC::$WEBROOT."/$style.css" );
+                               // or in core ? 
                                }elseif(is_file(OC::$SERVERROOT."/core/$style$fext.css" )){
                                        $page->append( "cssfiles", OC::$WEBROOT."/core/$style$fext.css" );
                                }else{