From be3ee0318942f092839b3de04f193a04e397116c Mon Sep 17 00:00:00 2001 From: Kamil Domanski Date: Sat, 18 Jun 2011 22:02:45 +0200 Subject: [PATCH] handle app repo connection failure --- admin/apps.php | 7 ++ admin/templates/app_noconn.php | 7 ++ lib/ocsclient.php | 128 ++++++++++++++++++--------------- 3 files changed, 84 insertions(+), 58 deletions(-) create mode 100644 admin/templates/app_noconn.php diff --git a/admin/apps.php b/admin/apps.php index 7ce3f4c419f..5b4e65e340e 100644 --- a/admin/apps.php +++ b/admin/apps.php @@ -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 index 00000000000..2ca3d15d445 --- /dev/null +++ b/admin/templates/app_noconn.php @@ -0,0 +1,7 @@ + +

Apps Repository

+

Cannot connect to apps repository

\ No newline at end of file diff --git a/lib/ocsclient.php b/lib/ocsclient.php index a3c4659c6e4..cfd529b2ec4 100644 --- a/lib/ocsclient.php +++ b/lib/ocsclient.php @@ -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; + } -- 2.39.5