make it possible to connect to other ocs appstores and other ocs knowledgebase servers.

also make it possible to switch the app store and the knowledgebase off completely.
This commit is contained in:
Frank Karlitschek 2012-03-23 15:52:41 +01:00
parent 82b54938e3
commit a191b75c31
3 changed files with 57 additions and 8 deletions

View File

@ -15,6 +15,10 @@ $CONFIG = array(
"theme" => "",
"3rdpartyroot" => "",
"3rdpartyurl" => "",
"knowledgebaseenabled" => true,
"knowledgebaseurl" => "",
"appstoreenabled" => true,
"appstoreurl" => "",
// "datadirectory" => ""
);
?>

3
lib/app.php Normal file → Executable file
View File

@ -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
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()) {

52
lib/ocsclient.php Normal file → Executable file
View File

@ -28,6 +28,38 @@
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);