nextcloud/admin/apps.php

107 lines
2.8 KiB
PHP
Raw Normal View History

<?php
/**
* ownCloud
*
* @author Frank Karlitschek
* @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/>.
*
*/
require_once('../lib/base.php');
2011-07-29 23:36:03 +04:00
if( !OC_User::isLoggedIn() || !OC_Group::inGroup( OC_User::getUser(), 'admin' )){
header( "Location: ".OC_Helper::linkTo( "", "index.php" ));
exit();
}
// Load the files we need
2011-07-29 23:36:03 +04:00
OC_Util::addStyle( "admin", "apps" );
OC_Util::addScript( "admin", "apps" );
if(isset($_GET['id'])) $id=$_GET['id']; else $id=0;
if(isset($_GET['cat'])) $cat=$_GET['cat']; else $cat=0;
2011-06-20 20:16:24 +04:00
if(isset($_GET['installed'])) $installed=true; else $installed=false;
if($installed){
global $SERVERROOT;
2011-07-29 23:36:03 +04:00
OC_Installer::installShippedApps(false);
$apps = OC_Appconfig::getApps();
2011-06-20 20:16:24 +04:00
$records = array();
2011-07-29 23:36:03 +04:00
OC_App::setActiveNavigationEntry( "core_apps" );
2011-06-20 20:16:24 +04:00
foreach($apps as $app){
2011-07-29 23:36:03 +04:00
$info=OC_App::getAppInfo("$SERVERROOT/apps/$app/appinfo/info.xml");
2011-06-20 20:16:24 +04:00
$record = array( 'id' => $app,
'name' => $info['name'],
'version' => $info['version'],
'author' => $info['author'],
2011-07-29 23:36:03 +04:00
'enabled' => OC_App::isEnabled( $app ));
2011-06-20 20:16:24 +04:00
$records[]=$record;
}
$tmpl = new OC_Template( "admin", "appsinst", "user" );
2011-06-20 20:16:24 +04:00
$tmpl->assign( "apps", $records );
2011-06-19 00:02:45 +04:00
$tmpl->printPage();
unset($tmpl);
exit();
2011-06-20 20:16:24 +04:00
}else{
2011-07-29 23:36:03 +04:00
$categories=OC_OCSClient::getCategories();
2011-06-20 20:16:24 +04:00
if($categories==NULL){
2011-07-29 23:36:03 +04:00
OC_App::setActiveNavigationEntry( "core_apps" );
$tmpl = new OC_Template( "admin", "app_noconn", "user" );
2011-06-20 20:16:24 +04:00
$tmpl->printPage();
unset($tmpl);
exit();
}
2011-06-20 20:16:24 +04:00
if($id==0) {
2011-07-29 23:36:03 +04:00
OC_App::setActiveNavigationEntry( "core_apps_get" );
2011-06-20 20:16:24 +04:00
if($cat==0){
$numcats=array();
foreach($categories as $key=>$value) $numcats[]=$key;
2011-07-29 23:36:03 +04:00
$apps=OC_OCSClient::getApplications($numcats);
2011-06-20 20:16:24 +04:00
}else{
2011-07-29 23:36:03 +04:00
$apps=OC_OCSClient::getApplications($cat);
2011-06-20 20:16:24 +04:00
}
2011-06-20 20:16:24 +04:00
// return template
$tmpl = new OC_Template( "admin", "apps", "user" );
2011-06-20 20:16:24 +04:00
$tmpl->assign( "categories", $categories );
$tmpl->assign( "apps", $apps );
$tmpl->printPage();
unset($tmpl);
}else{
2011-07-29 23:36:03 +04:00
OC_App::setActiveNavigationEntry( "core_apps" );
2011-07-29 23:36:03 +04:00
$app=OC_OCSClient::getApplication($id);
$tmpl = new OC_Template( "admin", "app", "user" );
2011-06-20 20:16:24 +04:00
$tmpl->assign( "categories", $categories );
$tmpl->assign( "app", $app );
$tmpl->printPage();
unset($tmpl);
2011-06-20 20:16:24 +04:00
}
}
?>