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.
remotes/origin/stable4
Frank Karlitschek 13 years ago
parent 82b54938e3
commit a191b75c31
  1. 4
      config/config.sample.php
  2. 9
      lib/app.php
  3. 52
      lib/ocsclient.php

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

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

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

Loading…
Cancel
Save