本文整理汇总了PHP中OC_Installer::installShippedApp方法的典型用法代码示例。如果您正苦于以下问题:PHP OC_Installer::installShippedApp方法的具体用法?PHP OC_Installer::installShippedApp怎么用?PHP OC_Installer::installShippedApp使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OC_Installer
的用法示例。
在下文中一共展示了OC_Installer::installShippedApp方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: installApp
/**
* @param mixed $app
* @return bool
* @throws Exception if app is not compatible with this version of ownCloud
* @throws Exception if no app-name was specified
*/
public static function installApp($app)
{
$l = \OC::$server->getL10N('core');
$config = \OC::$server->getConfig();
$appData = OC_OCSClient::getApplication($app);
// check if app is a shipped app or not. OCS apps have an integer as id, shipped apps use a string
if (!is_numeric($app)) {
$shippedVersion = self::getAppVersion($app);
if ($appData && version_compare($shippedVersion, $appData['version'], '<')) {
$app = self::downloadApp($app);
} else {
$app = OC_Installer::installShippedApp($app);
}
} else {
// Maybe the app is already installed - compare the version in this
// case and use the local already installed one.
// FIXME: This is a horrible hack. I feel sad. The god of code cleanness may forgive me.
$internalAppId = self::getInternalAppIdByOcs($app);
if ($internalAppId !== false) {
if ($appData && version_compare(\OC_App::getAppVersion($internalAppId), $appData['version'], '<')) {
$app = self::downloadApp($app);
} else {
self::enable($internalAppId);
$app = $internalAppId;
}
} else {
$app = self::downloadApp($app);
}
}
if ($app !== false) {
// check if the app is compatible with this version of ownCloud
$info = self::getAppInfo($app);
$version = OC_Util::getVersion();
if (!self::isAppCompatible($version, $info)) {
throw new \Exception($l->t('App \\"%s\\" can\'t be installed because it is not compatible with this version of ownCloud.', array($info['name'])));
}
// check for required dependencies
$dependencyAnalyzer = new DependencyAnalyzer(new Platform($config), $l);
$missing = $dependencyAnalyzer->analyze($app);
if (!empty($missing)) {
$missingMsg = join(PHP_EOL, $missing);
throw new \Exception($l->t('App \\"%s\\" cannot be installed because the following dependencies are not fulfilled: %s', array($info['name'], $missingMsg)));
}
$config->setAppValue($app, 'enabled', 'yes');
if (isset($appData['id'])) {
$config->setAppValue($app, 'ocsid', $appData['id']);
}
\OC_Hook::emit('OC_App', 'post_enable', array('app' => $app));
} else {
throw new \Exception($l->t("No app name specified"));
}
return $app;
}
示例2: enable
/**
* @brief enables an app
* @param mixed $app app
* @throws \Exception
* @return void
*
* This function set an app as enabled in appconfig.
*/
public static function enable($app)
{
self::$enabledAppsCache = array();
// flush
if (!OC_Installer::isInstalled($app)) {
// check if app is a shipped app or not. OCS apps have an integer as id, shipped apps use a string
if (!is_numeric($app)) {
$app = OC_Installer::installShippedApp($app);
} else {
$appdata = OC_OCSClient::getApplication($app, \OC_Util::getVersion());
$download = OC_OCSClient::getApplicationDownload($app, 1, \OC_Util::getVersion());
if (isset($download['downloadlink']) and $download['downloadlink'] != '') {
$info = array('source' => 'http', 'href' => $download['downloadlink'], 'appdata' => $appdata);
$app = OC_Installer::installApp($info);
}
}
}
$l = OC_L10N::get('core');
if ($app !== false) {
// check if the app is compatible with this version of ownCloud
$info = OC_App::getAppInfo($app);
$version = OC_Util::getVersion();
if (!isset($info['require']) or !self::isAppVersionCompatible($version, $info['require'])) {
throw new \Exception($l->t("App \"%s\" can't be installed because it is not compatible with this version of ownCloud.", array($info['name'])));
} else {
OC_Appconfig::setValue($app, 'enabled', 'yes');
if (isset($appdata['id'])) {
OC_Appconfig::setValue($app, 'ocsid', $appdata['id']);
}
\OC_Hook::emit('OC_App', 'post_enable', array('app' => $app));
}
} else {
throw new \Exception($l->t("No app name specified"));
}
}
示例3: installShippedApps
/**
* Installs shipped apps
*
* This function installs all apps found in the 'apps' directory that should be enabled by default;
*/
public static function installShippedApps()
{
foreach (OC::$APPSROOTS as $app_dir) {
if ($dir = opendir($app_dir['path'])) {
while (false !== ($filename = readdir($dir))) {
if (substr($filename, 0, 1) != '.' and is_dir($app_dir['path'] . "/{$filename}")) {
if (file_exists($app_dir['path'] . "/{$filename}/appinfo/app.php")) {
if (!OC_Installer::isInstalled($filename)) {
$info = OC_App::getAppInfo($filename);
$enabled = isset($info['default_enable']);
if ($enabled) {
OC_Installer::installShippedApp($filename);
OC_Appconfig::setValue($filename, 'enabled', 'yes');
}
}
}
}
}
closedir($dir);
}
}
}
示例4: installApp
/**
* @param mixed $app
* @return bool
* @throws Exception if app is not compatible with this version of ownCloud
* @throws Exception if no app-name was specified
*/
public static function installApp($app)
{
$l = \OC::$server->getL10N('core');
$appData = OC_OCSClient::getApplication($app);
// check if app is a shipped app or not. OCS apps have an integer as id, shipped apps use a string
if (!is_numeric($app)) {
$shippedVersion = self::getAppVersion($app);
if ($appData && version_compare($shippedVersion, $appData['version'], '<')) {
$app = self::downloadApp($app);
} else {
$app = OC_Installer::installShippedApp($app);
}
} else {
$app = self::downloadApp($app);
}
if ($app !== false) {
// check if the app is compatible with this version of ownCloud
$info = self::getAppInfo($app);
$version = OC_Util::getVersion();
if (!self::isAppCompatible($version, $info)) {
throw new \Exception($l->t('App \\"%s\\" can\'t be installed because it is not compatible with this version of ownCloud.', array($info['name'])));
} else {
OC_Appconfig::setValue($app, 'enabled', 'yes');
if (isset($appData['id'])) {
OC_Appconfig::setValue($app, 'ocsid', $appData['id']);
}
\OC_Hook::emit('OC_App', 'post_enable', array('app' => $app));
}
} else {
throw new \Exception($l->t("No app name specified"));
}
return $app;
}
示例5: enable
/**
* @brief enables an app
* @param $app app
* @returns true/false
*
* This function set an app as enabled in appconfig.
*/
public static function enable($app)
{
if (!OC_Installer::isInstalled($app)) {
OC_Installer::installShippedApp($app);
}
OC_Appconfig::setValue($app, 'enabled', 'yes');
}
示例6: installShippedApps
/**
* Installs shipped apps
*
* This function installs all apps found in the 'apps' directory that should be enabled by default;
*/
public static function installShippedApps()
{
foreach (OC::$APPSROOTS as $app_dir) {
if ($dir = opendir($app_dir['path'])) {
while (false !== ($filename = readdir($dir))) {
if (substr($filename, 0, 1) != '.' and is_dir($app_dir['path'] . "/{$filename}")) {
if (file_exists($app_dir['path'] . "/{$filename}/appinfo/info.xml")) {
if (!OC_Installer::isInstalled($filename)) {
$info = OC_App::getAppInfo($filename);
$enabled = isset($info['default_enable']);
if (($enabled || in_array($filename, \OC::$server->getAppManager()->getAlwaysEnabledApps())) && \OC::$server->getConfig()->getAppValue($filename, 'enabled') !== 'no') {
OC_Installer::installShippedApp($filename);
\OC::$server->getConfig()->setAppValue($filename, 'enabled', 'yes');
}
}
}
}
}
closedir($dir);
}
}
}
示例7: enable
/**
* @brief enables an app
* @param mixed $app app
* @return bool
*
* This function set an app as enabled in appconfig.
*/
public static function enable($app)
{
if (!OC_Installer::isInstalled($app)) {
// check if app is a shipped app or not. OCS apps have an integer as id, shipped apps use a string
if (!is_numeric($app)) {
$app = OC_Installer::installShippedApp($app);
} else {
$download = OC_OCSClient::getApplicationDownload($app, 1);
if (isset($download['downloadlink']) and $download['downloadlink'] != '') {
$app = OC_Installer::installApp(array('source' => 'http', 'href' => $download['downloadlink']));
}
}
}
if ($app !== false) {
// check if the app is compatible with this version of ownCloud
$info = OC_App::getAppInfo($app);
$version = OC_Util::getVersion();
if (!isset($info['require']) or $version[0] > $info['require']) {
OC_Log::write('core', 'App "' . $info['name'] . '" can\'t be installed because it is not compatible with this version of ownCloud', OC_Log::ERROR);
return false;
} else {
OC_Appconfig::setValue($app, 'enabled', 'yes');
return true;
}
} else {
return false;
}
}
示例8: installShippedApps
/**
* @brief Installs shipped apps
* @param $enabled
*
* This function installs all apps found in the 'apps' directory;
* If $enabled is true, apps are installed as enabled.
* If $enabled is false, apps are installed as disabled.
*/
public static function installShippedApps()
{
$dir = opendir(OC::$SERVERROOT . "/apps");
while (false !== ($filename = readdir($dir))) {
if (substr($filename, 0, 1) != '.' and is_dir(OC::$SERVERROOT . "/apps/{$filename}")) {
if (file_exists(OC::$SERVERROOT . "/apps/{$filename}/appinfo/app.php")) {
if (!OC_Installer::isInstalled($filename)) {
$info = OC_Installer::installShippedApp($filename);
$enabled = isset($info['default_enable']);
if ($enabled) {
OC_Appconfig::setValue($filename, 'enabled', 'yes');
} else {
OC_Appconfig::setValue($filename, 'enabled', 'no');
}
}
}
}
}
closedir($dir);
}
开发者ID:Teino1978-Corp,项目名称:Teino1978-Corp-owncloud_.htaccess-,代码行数:28,代码来源:owncloud_lib_installer.php