moved app install/remove/update functions to lib/installer.php
added OC_APP::getAppInfo() for reading app metadata
This commit is contained in:
parent
d70dfbdebb
commit
d10840ab18
106
lib/app.php
106
lib/app.php
|
@ -316,95 +316,29 @@ class OC_APP{
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Installs an app
|
* @brief Read app metadata from the info.xml file
|
||||||
* @param $data array with all information
|
* @param string $appid id of the app
|
||||||
* @returns integer
|
* @returns array
|
||||||
*
|
|
||||||
* 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()){
|
public static function getAppInfo($appid){
|
||||||
// TODO: write function
|
$file='apps/'.$appid.'/appinfo/info.xml';
|
||||||
return true;
|
if(!is_file($file)){
|
||||||
|
return array();
|
||||||
}
|
}
|
||||||
|
$data=array();
|
||||||
/**
|
$plugin=new DOMDocument();
|
||||||
* @brief Update an application
|
$plugin->load($file);
|
||||||
* @param $data array with all information
|
$info=$plugin->getElementsByTagName('info');
|
||||||
* @returns integer
|
if($info->length > 0){
|
||||||
*
|
$info=$info->item(0);
|
||||||
* This function installs an app. All information needed are passed in the
|
$data['info']=array();
|
||||||
* associative array $data.
|
foreach($info->childNodes as $child){
|
||||||
* The following keys are required:
|
if($child->nodeType==XML_ELEMENT_NODE){
|
||||||
* - source: string, can be "path" or "http"
|
$data[$child->tagName]=$child->textContent;
|
||||||
*
|
|
||||||
* 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
|
return $data;
|
||||||
* @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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
|
@ -0,0 +1,117 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* ownCloud
|
||||||
|
*
|
||||||
|
* @author Robin Appelman
|
||||||
|
* @copyright 2010 Frank Karlitschek karlitschek@kde.org
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 3 of the License, or any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public
|
||||||
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class provides the functionality needed to install, update and remove plugins/apps
|
||||||
|
*/
|
||||||
|
class OC_INSTALLER{
|
||||||
|
/**
|
||||||
|
* @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 appinfo/install.php won't be loaded
|
||||||
|
* - 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/install.php
|
||||||
|
* -# setting the installed version
|
||||||
|
*
|
||||||
|
* 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 appinfo/upgrade.php won't be loaded
|
||||||
|
*
|
||||||
|
* This function works as follows
|
||||||
|
* -# fetching the file
|
||||||
|
* -# removing the old files
|
||||||
|
* -# unzipping new file
|
||||||
|
* -# including appinfo/upgrade.php
|
||||||
|
* -# setting the installed version
|
||||||
|
*
|
||||||
|
* upgrade.php can determine the current installed version of the app using "OC_APPCONFIG::getValue($appid,'installed_version')"
|
||||||
|
*/
|
||||||
|
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/remove.php
|
||||||
|
* -# 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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue