aboutsummaryrefslogtreecommitdiffstats
path: root/lib/app.php
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2011-05-15 16:31:30 +0200
committerRobin Appelman <icewind1991@gmail.com>2011-05-15 16:32:22 +0200
commitd10840ab181feba67e04f6bd6e81a10b8c6e0cf4 (patch)
tree4d1c6bbb7b774af9a8a694bc1e083d3da9fa662e /lib/app.php
parentd70dfbdebba6070368d1c8999a311dcfc81dec1d (diff)
downloadnextcloud-server-d10840ab181feba67e04f6bd6e81a10b8c6e0cf4.tar.gz
nextcloud-server-d10840ab181feba67e04f6bd6e81a10b8c6e0cf4.zip
moved app install/remove/update functions to lib/installer.php
added OC_APP::getAppInfo() for reading app metadata
Diffstat (limited to 'lib/app.php')
-rw-r--r--lib/app.php114
1 files changed, 24 insertions, 90 deletions
diff --git a/lib/app.php b/lib/app.php
index 7ce9e919f9a..e2744f51794 100644
--- a/lib/app.php
+++ b/lib/app.php
@@ -314,97 +314,31 @@ class OC_APP{
return $list;
}
-
- /**
- * @brief Installs an app
- * @param $data array with all information
- * @returns integer
- *
- * This function installs an app. All information needed are passed in the
- * associative array $data.
- * The following keys are required:
- * - source: string, can be "path" or "http"
- *
- * One of the following keys is required:
- * - path: path to the file containing the app
- * - href: link to the downloadable file containing the app
- *
- * The following keys are optional:
- * - pretend: boolean, if set true the system won't do anything
- * - noinstall: boolean, if true the function oc_app_install will be
- * skipped
- * - inactive: boolean, if set true the appconfig/app.sample.php won't be
- * renamed
- *
- * This function works as follows
- * -# fetching the file
- * -# unzipping it
- * -# including appinfo/installer.php
- * -# executing "oc_app_install()"
- *
- * It is the task of oc_app_install to create the tables and do whatever is
- * needed to get the app working.
- */
- public static function installApp( $data = array()){
- // TODO: write function
- return true;
- }
-
+
/**
- * @brief Update an application
- * @param $data array with all information
- * @returns integer
- *
- * This function installs an app. All information needed are passed in the
- * associative array $data.
- * The following keys are required:
- * - source: string, can be "path" or "http"
- *
- * One of the following keys is required:
- * - path: path to the file containing the app
- * - href: link to the downloadable file containing the app
- *
- * The following keys are optional:
- * - pretend: boolean, if set true the system won't do anything
- * - noupgrade: boolean, if true the function oc_app_upgrade will be
- * skipped
- *
- * This function works as follows
- * -# fetching the file
- * -# removing the old files
- * -# unzipping new file
- * -# including appinfo/installer.php
- * -# executing "oc_app_upgrade( $options )"
- */
- public static function upgradeApp( $data = array()){
- // TODO: write function
- return true;
- }
-
- /**
- * @brief Removes an app
- * @param $name name of the application to remove
- * @param $options array with options
- * @returns true/false
- *
- * This function removes an app. $options is an associative array. The
- * following keys are optional:ja
- * - keeppreferences: boolean, if true the user preferences won't be deleted
- * - keepappconfig: boolean, if true the config will be kept
- * - keeptables: boolean, if true the database will be kept
- * - keepfiles: boolean, if true the user files will be kept
- *
- * This function works as follows
- * -# including appinfo/installer.php
- * -# executing "oc_app_uninstall( $options )"
- * -# removing the files
- *
- * The function will not delete preferences, tables and the configuration,
- * this has to be done by the function oc_app_uninstall().
- */
- public static function removeApp( $name, $options = array()){
- // TODO: write function
- return true;
+ * @brief Read app metadata from the info.xml file
+ * @param string $appid id of the app
+ * @returns array
+ */
+ public static function getAppInfo($appid){
+ $file='apps/'.$appid.'/appinfo/info.xml';
+ if(!is_file($file)){
+ return array();
+ }
+ $data=array();
+ $plugin=new DOMDocument();
+ $plugin->load($file);
+ $info=$plugin->getElementsByTagName('info');
+ if($info->length > 0){
+ $info=$info->item(0);
+ $data['info']=array();
+ foreach($info->childNodes as $child){
+ if($child->nodeType==XML_ELEMENT_NODE){
+ $data[$child->tagName]=$child->textContent;
+ }
+ }
+ }
+ return $data;
}
}
?> \ No newline at end of file