]> source.dussan.org Git - nextcloud-server.git/commitdiff
make it possible to connect to other ocs appstores and other ocs knowledgebase servers.
authorFrank Karlitschek <karlitschek@kde.org>
Fri, 23 Mar 2012 14:52:41 +0000 (15:52 +0100)
committerFrank Karlitschek <karlitschek@kde.org>
Fri, 23 Mar 2012 14:52:41 +0000 (15:52 +0100)
also make it possible to switch the app store and the knowledgebase off completely.

config/config.sample.php
lib/app.php [changed mode: 0644->0755]
lib/ocsclient.php [changed mode: 0644->0755]

index 5206737455599aeef73ba6f779fbebb9d3aee889..199c9248c5154d02d14fe11e60cd297ce38f44f1 100755 (executable)
@@ -15,6 +15,10 @@ $CONFIG = array(
 "theme" => "",
 "3rdpartyroot" => "",
 "3rdpartyurl" => "",
+"knowledgebaseenabled" => true,
+"knowledgebaseurl" => "",
+"appstoreenabled" => true,
+"appstoreurl" => "",
 // "datadirectory" => ""
 );
 ?>
old mode 100644 (file)
new mode 100755 (executable)
index 64cbe88..3daf539
@@ -210,10 +210,13 @@ class OC_App{
        public static function getSettingsNavigation(){
                $l=new OC_L10N('core');
 
+               $settings = array();
                // by default, settings only contain the help menu
-               $settings = array(
-                       array( "id" => "help", "order" => 1000, "href" => OC_Helper::linkTo( "settings", "help.php" ), "name" => $l->t("Help"), "icon" => OC_Helper::imagePath( "settings", "help.svg" ))
-               );
+               if(OC_Config::getValue('knowledgebaseenabled', true)==true){
+                       $settings = array(
+                               array( "id" => "help", "order" => 1000, "href" => OC_Helper::linkTo( "settings", "help.php" ), "name" => $l->t("Help"), "icon" => OC_Helper::imagePath( "settings", "help.svg" ))
+                       );
+               }
 
                // if the user is logged-in
                if (OC_User::isLoggedIn()) {
old mode 100644 (file)
new mode 100755 (executable)
index 9d5932f..d830a4f
 
 class OC_OCSClient{
 
+       /**
+        * @brief Get the url of the OCS AppStore server. 
+        * @returns string of the AppStore server
+        *
+        * This function returns the url of the OCS AppStore server. It´s possible to set it in the config file or it will fallback to the default
+        */
+       private static function getAppStoreURL(){
+               $configurl=OC_Config::getValue('appstoreurl', '');
+               if($configurl<>'') {
+                       $url=$configurl;
+               }else{
+                       $url='http://api.apps.owncloud.com/v1';
+               }
+               return($url);
+       }
+
+        /**
+         * @brief Get the url of the OCS KB server. 
+         * @returns string of the KB server
+         * This function returns the url of the OCS knowledge base server. It´s possible to set it in the config file or it will fallback to the default
+         */
+        private static function getKBURL(){
+                $configurl=OC_Config::getValue('knowledgebaseurl', '');
+                if($configurl<>'') {
+                        $url=$configurl;
+                }else{
+                        $url='http://api.apps.owncloud.com/v1';
+                }
+                return($url);
+        }
+
+
        /**
         * @brief Get all the categories from the OCS server
         * @returns array with category ids
@@ -35,7 +67,7 @@ class OC_OCSClient{
         * This function returns a list of all the application categories on the OCS server
         */
        public static function getCategories(){
-               $url='http://api.apps.owncloud.com/v1/content/categories';
+               $url=OC_OCSClient::getAppStoreURL().'/content/categories';
        
                $xml=@file_get_contents($url);
                if($xml==FALSE){
@@ -64,12 +96,16 @@ class OC_OCSClient{
         * This function returns a list of all the applications on the OCS server
         */
        public static function getApplications($categories){
+               if(OC_Config::getValue('appstoreenabled', true)==false){
+                       return(array());
+               }
+
                if(is_array($categories)) {
                        $categoriesstring=implode('x',$categories);
                }else{
                        $categoriesstring=$categories;
                }
-               $url='http://api.apps.owncloud.com/v1/content/data?categories='.urlencode($categoriesstring).'&sortmode=new&page=0&pagesize=10';
+               $url=OC_OCSClient::getAppStoreURL().'/content/data?categories='.urlencode($categoriesstring).'&sortmode=new&page=0&pagesize=10';
                $apps=array();
                $xml=@file_get_contents($url);
                if($xml==FALSE){
@@ -104,7 +140,7 @@ class OC_OCSClient{
         * This function returns an  applications from the OCS server
         */
        public static function getApplication($id){
-               $url='http://api.apps.owncloud.com/v1/content/data/'.urlencode($id);
+               $url=OC_OCSClient::getAppStoreURL().'/content/data/'.urlencode($id);
 
                $xml=@file_get_contents($url);
                if($xml==FALSE){
@@ -137,7 +173,7 @@ class OC_OCSClient{
          * This function returns an download url for an applications from the OCS server
          */
         public static function getApplicationDownload($id,$item){
-                $url='http://api.apps.owncloud.com/v1/content/download/'.urlencode($id).'/'.urlencode($item);
+                $url=OC_OCSClient::getAppStoreURL().'/content/download/'.urlencode($id).'/'.urlencode($item);
 
                 $xml=@file_get_contents($url);
                 if($xml==FALSE){
@@ -164,9 +200,15 @@ class OC_OCSClient{
         * This function returns a list of all the knowledgebase entries from the OCS server
         */
        public static function getKnownledgebaseEntries($page,$pagesize){       
+               if(OC_Config::getValue('knowledgebaseenabled', true)==false){
+                       $kbe=array();
+                       $kbe['totalitems']=0;
+                       return $kbe;
+               }
+
                $p= (int) $page;
                $s= (int) $pagesize;
-               $url='http://api.apps.owncloud.com/v1/knowledgebase/data?type=150&page='.$p.'&pagesize='.$s;
+               $url=OC_OCSClient::getKBURL().'/knowledgebase/data?type=150&page='.$p.'&pagesize='.$s;
 
                $kbe=array();
                $xml=@file_get_contents($url);