118 lines
3.9 KiB
PHP
118 lines
3.9 KiB
PHP
<?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;
|
|
}
|
|
}
|