install shipped apps also in "installed apps" page

This commit is contained in:
Kamil Domanski 2011-06-21 22:16:41 +02:00
parent ee0f1490e1
commit e047feb2ad
3 changed files with 42 additions and 27 deletions

View file

@ -22,6 +22,7 @@
*/
require_once('../lib/base.php');
include_once('../lib/installer.php');
require( 'template.php' );
if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' )){
header( "Location: ".OC_HELPER::linkTo( "", "index.php" ));
@ -42,6 +43,8 @@ if($installed){
$apps = OC_APPCONFIG::getApps();
$records = array();
OC_INSTALLER::installShippedApps(false);
OC_APP::setActiveNavigationEntry( "core_apps_installed" );
foreach($apps as $app){
$info=OC_APP::getAppInfo("$SERVERROOT/apps/$app/appinfo/info.xml");

View file

@ -236,4 +236,42 @@ class OC_INSTALLER{
// TODO: write function
return true;
}
/**
* @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( $enabled ){
global $SERVERROOT;
$dir = opendir( "$SERVERROOT/apps" );
while( false !== ( $filename = readdir( $dir ))){
if( substr( $filename, 0, 1 ) != '.' and is_dir("$SERVERROOT/apps/$filename") ){
if( file_exists( "$SERVERROOT/apps/$filename/appinfo/app.php" )){
if(!OC_INSTALLER::isInstalled($filename)){
//install the database
if(is_file("$SERVERROOT/apps/$filename/appinfo/database.xml")){
OC_DB::createDbFromStructure("$SERVERROOT/apps/$filename/appinfo/database.xml");
}
//run appinfo/install.php
if(is_file("$SERVERROOT/apps/$filename/appinfo/install.php")){
include("$SERVERROOT/apps/$filename/appinfo/install.php");
}
$info=OC_APP::getAppInfo("$SERVERROOT/apps/$filename/appinfo/info.xml");
OC_APPCONFIG::setValue($filename,'installed_version',$info['version']);
if( $enabled ){
OC_APPCONFIG::setValue($filename,'enabled','yes');
}else{
OC_APPCONFIG::setValue($filename,'enabled','no');
}
}
}
}
}
closedir( $dir );
}
}

View file

@ -136,7 +136,7 @@ class OC_SETUP {
OC_GROUP::addToGroup($username, 'admin');
//guess what this does
self::installShippedApps();
OC_INSTALLER::installShippedApps(true);
//create htaccess files for apache hosts
self::createHtaccess(); //TODO detect if apache is used
@ -186,32 +186,6 @@ class OC_SETUP {
$content = "deny from all";
file_put_contents(OC_CONFIG::getValue('datadirectory', $SERVERROOT.'/data').'/.htaccess', $content);
}
private static function installShippedApps(){
global $SERVERROOT;
$dir = opendir( "$SERVERROOT/apps" );
while( false !== ( $filename = readdir( $dir ))){
if( substr( $filename, 0, 1 ) != '.' and is_dir("$SERVERROOT/apps/$filename") ){
if( file_exists( "$SERVERROOT/apps/$filename/appinfo/app.php" )){
if(!OC_INSTALLER::isInstalled($filename)){
//install the database
if(is_file("$SERVERROOT/apps/$filename/appinfo/database.xml")){
OC_DB::createDbFromStructure("$SERVERROOT/apps/$filename/appinfo/database.xml");
}
//run appinfo/install.php
if(is_file("$SERVERROOT/apps/$filename/appinfo/install.php")){
include("$SERVERROOT/apps/$filename/appinfo/install.php");
}
$info=OC_APP::getAppInfo("$SERVERROOT/apps/$filename/appinfo/info.xml");
OC_APPCONFIG::setValue($filename,'installed_version',$info['version']);
OC_APPCONFIG::setValue($filename,'enabled','yes');
}
}
}
}
closedir( $dir );
}
}
?>