]> source.dussan.org Git - nextcloud-server.git/commitdiff
handle app repo connection failure
authorKamil Domanski <kdomanski@kdemail.net>
Sat, 18 Jun 2011 20:02:45 +0000 (22:02 +0200)
committerKamil Domanski <kdomanski@kdemail.net>
Sat, 18 Jun 2011 20:02:45 +0000 (22:02 +0200)
admin/apps.php
admin/templates/app_noconn.php [new file with mode: 0644]
lib/ocsclient.php

index 7ce3f4c419fb63f66040c2f846bac884daabf4e2..5b4e65e340ec03e40ad22633149e894f40532c93 100644 (file)
@@ -36,7 +36,14 @@ if(isset($_GET['id']))  $id=$_GET['id']; else $id=0;
 if(isset($_GET['cat'])) $cat=$_GET['cat']; else $cat=0;
 
 $categories=OC_OCSCLIENT::getCategories();
+if($categories==NULL){
+       OC_APP::setActiveNavigationEntry( "core_apps" );
 
+       $tmpl = new OC_TEMPLATE( "admin", "app_noconn", "admin" );
+       $tmpl->printPage();
+       unset($tmpl);
+       exit();
+}
 /*
 
 All
diff --git a/admin/templates/app_noconn.php b/admin/templates/app_noconn.php
new file mode 100644 (file)
index 0000000..2ca3d15
--- /dev/null
@@ -0,0 +1,7 @@
+<?php
+/*
+ * Template for Apps when can't connect to app store
+ */
+?>
+<h1>Apps Repository</h1>
+<h2>Cannot connect to apps repository</h2>
\ No newline at end of file
index a3c4659c6e46aeca839f30a74d7be2824a49cf45..cfd529b2ec486fb7bdc4ca26a4ccc1e360bd5de7 100644 (file)
@@ -37,7 +37,10 @@ class OC_OCSCLIENT{
        public static function getCategories(){
                $url='http://api.apps.owncloud.com/v1/content/categories';
        
-               $xml=file_get_contents($url);
+               $xml=@file_get_contents($url);
+               if($xml==FALSE){
+                       return NULL;
+               }
                $data=simplexml_load_string($xml);
        
                $tmp=$data->data;
@@ -61,16 +64,19 @@ class OC_OCSCLIENT{
         * This function returns a list of all the applications on the OCS server
         */
        public static function getApplications($categories){
-                if(is_array($categories)) {
+               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';
                $apps=array();
-               $xml=file_get_contents($url);
+               $xml=@file_get_contents($url);
+               if($xml==FALSE){
+                       return NULL;
+               }
                $data=simplexml_load_string($xml);
-       
+
                $tmp=$data->data->content;
                for($i = 0; $i < count($tmp); $i++) {
                        $app=array();
@@ -90,60 +96,66 @@ class OC_OCSCLIENT{
        }
 
 
-        /**
-         * @brief Get an the applications from the OCS server
-         * @returns array with application data
-         *
-         * 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);
-
-                $xml=file_get_contents($url);
-                $data=simplexml_load_string($xml);
-
-                $tmp=$data->data->content;
-                $app=array();
-                $app['id']=$tmp->id;
-                $app['name']=$tmp->name;
-                $app['type']=$tmp->typeid;
-                $app['typename']=$tmp->typename;
-                $app['personid']=$tmp->personid;
-                $app['detailpage']=$tmp->detailpage;
-                $app['preview1']=$tmp->smallpreviewpic1;
-                $app['preview2']=$tmp->smallpreviewpic2;
-                $app['preview3']=$tmp->smallpreviewpic3;
-                $app['changed']=strtotime($tmp->changed);
-                $app['description']=$tmp->description;
-
-                return $app;
-        }
-
-        /**
-         * @brief Get all the knowledgebase entries from the OCS server
-         * @returns array with q and a data
-         *
-         * This function returns a list of all the knowledgebase entries from the OCS server
-         */
-        public static function getKnownledgebaseEntries(){
-                $url='http://api.apps.owncloud.com/v1/knowledgebase/data?type=150&page=0&pagesize=10';
-
-                $kbe=array();
-                $xml=file_get_contents($url);
-                $data=simplexml_load_string($xml);
-
-                $tmp=$data->data->content;
-                for($i = 0; $i < count($tmp); $i++) {
-                        $kb=array();
-                        $kb['id']=$tmp[$i]->id;
-                        $kb['name']=$tmp[$i]->name;
-                        $kb['description']=$tmp[$i]->description;
-                        $kb['answer']=$tmp[$i]->answer;
-                        $kb['preview1']=$tmp[$i]->smallpreviewpic1;
-                        $kbe[]=$kb;
-                }
-                return $kbe;
-        }
+       /**
+        * @brief Get an the applications from the OCS server
+        * @returns array with application data
+        *
+        * 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);
+
+               $xml=@file_get_contents($url);
+               if($xml==FALSE){
+                       return NULL;
+               }
+               $data=simplexml_load_string($xml);
+
+               $tmp=$data->data->content;
+               $app=array();
+               $app['id']=$tmp->id;
+               $app['name']=$tmp->name;
+               $app['type']=$tmp->typeid;
+               $app['typename']=$tmp->typename;
+               $app['personid']=$tmp->personid;
+               $app['detailpage']=$tmp->detailpage;
+               $app['preview1']=$tmp->smallpreviewpic1;
+               $app['preview2']=$tmp->smallpreviewpic2;
+               $app['preview3']=$tmp->smallpreviewpic3;
+               $app['changed']=strtotime($tmp->changed);
+               $app['description']=$tmp->description;
+
+               return $app;
+       }
+
+       /**
+        * @brief Get all the knowledgebase entries from the OCS server
+        * @returns array with q and a data
+        *
+        * This function returns a list of all the knowledgebase entries from the OCS server
+        */
+       public static function getKnownledgebaseEntries(){
+               $url='http://api.apps.owncloud.com/v1/knowledgebase/data?type=150&page=0&pagesize=10';
+
+               $kbe=array();
+               $xml=@file_get_contents($url);
+               if($xml==FALSE){
+                       return NULL;
+               }
+               $data=simplexml_load_string($xml);
+
+               $tmp=$data->data->content;
+               for($i = 0; $i < count($tmp); $i++) {
+                       $kb=array();
+                       $kb['id']=$tmp[$i]->id;
+                       $kb['name']=$tmp[$i]->name;
+                       $kb['description']=$tmp[$i]->description;
+                       $kb['answer']=$tmp[$i]->answer;
+                       $kb['preview1']=$tmp[$i]->smallpreviewpic1;
+                       $kbe[]=$kb;
+               }
+               return $kbe;
+       }