handle app repo connection failure

This commit is contained in:
Kamil Domanski 2011-06-18 22:02:45 +02:00
Родитель 51420a7522
Коммит be3ee03189
3 изменённых файлов: 78 добавлений и 52 удалений

Просмотреть файл

@ -36,7 +36,14 @@ if(isset($_GET['id'])) $id=$_GET['id']; else $id=0;
if(isset($_GET['cat'])) $cat=$_GET['cat']; else $cat=0; if(isset($_GET['cat'])) $cat=$_GET['cat']; else $cat=0;
$categories=OC_OCSCLIENT::getCategories(); $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 All

Просмотреть файл

@ -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>

Просмотреть файл

@ -37,7 +37,10 @@ class OC_OCSCLIENT{
public static function getCategories(){ public static function getCategories(){
$url='http://api.apps.owncloud.com/v1/content/categories'; $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); $data=simplexml_load_string($xml);
$tmp=$data->data; $tmp=$data->data;
@ -61,16 +64,19 @@ class OC_OCSCLIENT{
* This function returns a list of all the applications on the OCS server * This function returns a list of all the applications on the OCS server
*/ */
public static function getApplications($categories){ public static function getApplications($categories){
if(is_array($categories)) { if(is_array($categories)) {
$categoriesstring=implode('x',$categories); $categoriesstring=implode('x',$categories);
}else{ }else{
$categoriesstring=$categories; $categoriesstring=$categories;
} }
$url='http://api.apps.owncloud.com/v1/content/data?categories='.urlencode($categoriesstring).'&sortmode=new&page=0&pagesize=10'; $url='http://api.apps.owncloud.com/v1/content/data?categories='.urlencode($categoriesstring).'&sortmode=new&page=0&pagesize=10';
$apps=array(); $apps=array();
$xml=file_get_contents($url); $xml=@file_get_contents($url);
if($xml==FALSE){
return NULL;
}
$data=simplexml_load_string($xml); $data=simplexml_load_string($xml);
$tmp=$data->data->content; $tmp=$data->data->content;
for($i = 0; $i < count($tmp); $i++) { for($i = 0; $i < count($tmp); $i++) {
$app=array(); $app=array();
@ -90,60 +96,66 @@ class OC_OCSCLIENT{
} }
/** /**
* @brief Get an the applications from the OCS server * @brief Get an the applications from the OCS server
* @returns array with application data * @returns array with application data
* *
* This function returns an applications from the OCS server * This function returns an applications from the OCS server
*/ */
public static function getApplication($id){ public static function getApplication($id){
$url='http://api.apps.owncloud.com/v1/content/data/'.urlencode($id); $url='http://api.apps.owncloud.com/v1/content/data/'.urlencode($id);
$xml=file_get_contents($url); $xml=@file_get_contents($url);
$data=simplexml_load_string($xml); if($xml==FALSE){
return NULL;
}
$data=simplexml_load_string($xml);
$tmp=$data->data->content; $tmp=$data->data->content;
$app=array(); $app=array();
$app['id']=$tmp->id; $app['id']=$tmp->id;
$app['name']=$tmp->name; $app['name']=$tmp->name;
$app['type']=$tmp->typeid; $app['type']=$tmp->typeid;
$app['typename']=$tmp->typename; $app['typename']=$tmp->typename;
$app['personid']=$tmp->personid; $app['personid']=$tmp->personid;
$app['detailpage']=$tmp->detailpage; $app['detailpage']=$tmp->detailpage;
$app['preview1']=$tmp->smallpreviewpic1; $app['preview1']=$tmp->smallpreviewpic1;
$app['preview2']=$tmp->smallpreviewpic2; $app['preview2']=$tmp->smallpreviewpic2;
$app['preview3']=$tmp->smallpreviewpic3; $app['preview3']=$tmp->smallpreviewpic3;
$app['changed']=strtotime($tmp->changed); $app['changed']=strtotime($tmp->changed);
$app['description']=$tmp->description; $app['description']=$tmp->description;
return $app; return $app;
} }
/** /**
* @brief Get all the knowledgebase entries from the OCS server * @brief Get all the knowledgebase entries from the OCS server
* @returns array with q and a data * @returns array with q and a data
* *
* This function returns a list of all the knowledgebase entries from the OCS server * This function returns a list of all the knowledgebase entries from the OCS server
*/ */
public static function getKnownledgebaseEntries(){ public static function getKnownledgebaseEntries(){
$url='http://api.apps.owncloud.com/v1/knowledgebase/data?type=150&page=0&pagesize=10'; $url='http://api.apps.owncloud.com/v1/knowledgebase/data?type=150&page=0&pagesize=10';
$kbe=array(); $kbe=array();
$xml=file_get_contents($url); $xml=@file_get_contents($url);
$data=simplexml_load_string($xml); if($xml==FALSE){
return NULL;
}
$data=simplexml_load_string($xml);
$tmp=$data->data->content; $tmp=$data->data->content;
for($i = 0; $i < count($tmp); $i++) { for($i = 0; $i < count($tmp); $i++) {
$kb=array(); $kb=array();
$kb['id']=$tmp[$i]->id; $kb['id']=$tmp[$i]->id;
$kb['name']=$tmp[$i]->name; $kb['name']=$tmp[$i]->name;
$kb['description']=$tmp[$i]->description; $kb['description']=$tmp[$i]->description;
$kb['answer']=$tmp[$i]->answer; $kb['answer']=$tmp[$i]->answer;
$kb['preview1']=$tmp[$i]->smallpreviewpic1; $kb['preview1']=$tmp[$i]->smallpreviewpic1;
$kbe[]=$kb; $kbe[]=$kb;
} }
return $kbe; return $kbe;
} }