mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
dont use a different navigation page for settings stuff
This commit is contained in:
parent
7820e8959c
commit
e6f6d3dabc
10 changed files with 43 additions and 262 deletions
|
|
@ -2,11 +2,4 @@
|
|||
|
||||
OC_App::register( array( "order" => 1, "id" => "admin", "name" => "Administration" ));
|
||||
|
||||
// OC_App::addAdminPage( array( "id" => "core_system", "order" => 1, "href" => OC_Helper::linkTo( "admin", "system.php" ), "name" =>"System", "icon" => OC_Helper::imagePath( "admin", "administration.png" )));
|
||||
OC_App::addAdminPage( array( "id" => "core_users", "order" => 2, "href" => OC_Helper::linkTo( "admin", "users.php" ), "name" => "Users", "icon" => OC_Helper::imagePath( "admin", "users.png" )));
|
||||
OC_App::addAdminPage( array( "id" => "core_apps", "order" => 3, "href" => OC_Helper::linkTo( "admin", "apps.php?installed" ), "name" => "Apps", "icon" => OC_Helper::imagePath( "admin", "apps.png" )));
|
||||
|
||||
// Add subentries for App installer
|
||||
//OC_App::addNavigationSubEntry( "core_apps", array( "id" => "core_apps_get", "order" => 4, "href" => OC_Helper::linkTo( "admin", "apps.php" ), "name" => "Get new apps", "icon" => OC_Helper::imagePath( "admin", "navicon.png" )));
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
OC_App::addNavigationSubEntry('files_index', array( "id" => "files_publiclink_administration", "order" => 1, "href" => OC_Helper::linkTo( "files_publiclink", "admin.php" ), "name" => "Public Links"));
|
||||
OC_App::addNavigationEntry(array( "id" => "files_publiclink_administration", "order" => 2, "href" => OC_Helper::linkTo( "files_publiclink", "admin.php" ), "name" => "Public Links"));
|
||||
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -36,4 +36,4 @@ $entry = array(
|
|||
'href' => OC_Helper::linkTo( "user_ldap", "settings.php" ),
|
||||
'name' => 'LDAP'
|
||||
);
|
||||
OC_App::addNavigationSubEntry( "core_users", $entry);
|
||||
// OC_App::addNavigationSubEntry( "core_users", $entry);
|
||||
|
|
|
|||
|
|
@ -1,69 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>ownCloud</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<link rel="shortcut icon" href="<?php echo image_path('', 'favicon.png'); ?>" /><link rel="apple-touch-icon-precomposed" href="<?php echo image_path('', 'favicon-touch.png'); ?>" />
|
||||
<?php foreach($_['cssfiles'] as $cssfile): ?>
|
||||
<link rel="stylesheet" href="<?php echo $cssfile; ?>" type="text/css" media="screen" />
|
||||
<?php endforeach; ?>
|
||||
<script type="text/javascript">
|
||||
var oc_webroot = '<?php global $WEBROOT; echo $WEBROOT; ?>';
|
||||
var oc_current_user = '<?php echo OC_User::getUser() ?>';
|
||||
// </script>
|
||||
<?php foreach($_['jsfiles'] as $jsfile): ?>
|
||||
<script type="text/javascript" src="<?php echo $jsfile; ?>"></script>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach($_['headers'] as $header): ?>
|
||||
<?php
|
||||
echo '<'.$header['tag'].' ';
|
||||
foreach($header['attributes'] as $name=>$value){
|
||||
echo "$name='$value' ";
|
||||
};
|
||||
echo '>';
|
||||
echo $header['text'];
|
||||
echo '</'.$header['tag'].'>';
|
||||
?>
|
||||
<?php endforeach; ?>
|
||||
</head>
|
||||
|
||||
<body id="body-settings">
|
||||
<div id="header">
|
||||
<a href="<?php echo link_to('', 'index.php'); ?>" title="" id="owncloud"><img src="<?php echo image_path('', 'owncloud-logo-small-white.png'); ?>" alt="ownCloud" /></a>
|
||||
<ul id="metanav">
|
||||
<li><a href="<?php echo link_to('', 'index.php'); ?>" title="Back to files"><img class='svg' src="<?php echo image_path('', 'actions/back.svg'); ?>"></a></li>
|
||||
<li><a href="<?php echo link_to('', 'index.php?logout=true'); ?>" title="Log out"><img class='svg' src="<?php echo image_path('', 'actions/logout.svg'); ?>"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="navigation">
|
||||
<ul>
|
||||
<?php foreach($_['settingsnavigation'] as $entry):?>
|
||||
<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry["active"] ): ?> class="active"<?php endif; ?>><?php echo $entry['name'] ?></a></li>
|
||||
<?php if( sizeof( $entry["subnavigation"] )): ?>
|
||||
<?php foreach($entry["subnavigation"] as $subentry):?>
|
||||
<li><a href="<?php echo $subentry['href']; ?>" title="" <?php if( $subentry['active'] ): ?>class="active"<?php endif; ?>><?php echo $subentry['name'] ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
<?php if(isset($_['adminnavigation'])):?>
|
||||
<?php foreach($_['adminnavigation'] as $entry):?>
|
||||
<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry["active"] ): ?> class="active"<?php endif; ?>><?php echo $entry['name'] ?></a>
|
||||
<?php if( sizeof( $entry["subnavigation"] )): ?>
|
||||
<ul>
|
||||
<?php foreach($entry["subnavigation"] as $subentry):?>
|
||||
<li class="subentry"><a class="subentry<?php if( $subentry['active'] ): ?> active<?php endif; ?>" href="<?php echo $subentry['href']; ?>" title=""><?php echo $subentry['name'] ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<?php echo $_['content']; ?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -32,13 +32,12 @@
|
|||
<a href="<?php echo link_to('', 'index.php'); ?>" title="" id="owncloud"><img src="<?php echo image_path('', 'owncloud-logo-small-white.png'); ?>" alt="ownCloud" /></a>
|
||||
<?php echo $_['searchbox']?>
|
||||
<ul id="metanav">
|
||||
<li><a href="<?php echo link_to('settings', 'index.php'); ?>" title="Settings"><img class='svg' src="<?php echo image_path('', 'actions/settings.svg'); ?>"></a></li>
|
||||
<li><a href="<?php echo link_to('', 'index.php'); ?>?logout=true" title="Log out"><img class='svg' src="<?php echo image_path('', 'actions/logout.svg'); ?>"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="navigation">
|
||||
<ul>
|
||||
<ul id="apps">
|
||||
<?php foreach($_['navigation'] as $entry): ?>
|
||||
<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry['active'] ): ?> class="active"<?php endif; ?>><?php echo $entry['name']; ?></a>
|
||||
<?php if( sizeof( $entry["subnavigation"] )): ?>
|
||||
|
|
@ -51,6 +50,16 @@
|
|||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<ul id="settings">
|
||||
<?php foreach($_['settingsnavigation'] as $entry):?>
|
||||
<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry["active"] ): ?> class="active"<?php endif; ?>><?php echo $entry['name'] ?></a></li>
|
||||
<?php if( sizeof( $entry["subnavigation"] )): ?>
|
||||
<?php foreach($entry["subnavigation"] as $subentry):?>
|
||||
<li><a href="<?php echo $subentry['href']; ?>" title="" <?php if( $subentry['active'] ): ?>class="active"<?php endif; ?>><?php echo $subentry['name'] ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="content">
|
||||
<?php echo $_['content']; ?>
|
||||
|
|
|
|||
|
|
@ -3,10 +3,5 @@
|
|||
OC_App::register( array( "order" => 2, "id" => "files", "name" => "Files" ));
|
||||
|
||||
OC_App::addNavigationEntry( array( "id" => "files_index", "order" => 1, "href" => OC_Helper::linkTo( "files", "index.php" ), "icon" => OC_Helper::imagePath( "files", "home.png" ), "name" => "Files" ));
|
||||
OC_App::addAdminPage( array( "id" => "files_administration", "order" => 3, "href" => OC_Helper::linkTo( "files", "admin.php" ), "name" => "Files", "icon" => OC_Helper::imagePath( "files", "folder.png" )));
|
||||
|
||||
|
||||
// To add navigation sub entries use
|
||||
// OC_App::addNavigationSubEntry( "files_index", array( ... ));
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -2,13 +2,4 @@
|
|||
|
||||
OC_App::register( array( "order" => 1, "id" => "help", "name" => "Help" ));
|
||||
|
||||
// Workaround for having help as the last entry always
|
||||
$entry = array( "id" => "help", "order" => 1000, "href" => OC_Helper::linkTo( "help", "index.php" ), "name" => "Help", "icon" => OC_Helper::imagePath( "help", "help.png" ));
|
||||
if( isset( $_SESSION["user_id"] ) && OC_Group::inGroup( $_SESSION["user_id"], "admin" )){
|
||||
OC_App::addAdminPage( $entry );
|
||||
}
|
||||
else{
|
||||
OC_App::addSettingsPage( $entry );
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
181
lib/app.php
181
lib/app.php
|
|
@ -30,10 +30,7 @@ class OC_App{
|
|||
static private $init = false;
|
||||
static private $apps = array();
|
||||
static private $activeapp = '';
|
||||
static private $adminpages = array();
|
||||
static private $settingspages = array();
|
||||
static private $navigation = array();
|
||||
static private $subnavigation = array();
|
||||
|
||||
/**
|
||||
* @brief loads all apps
|
||||
|
|
@ -166,38 +163,6 @@ class OC_App{
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief adds a sub entry to the navigation
|
||||
* @param $parent id of the parent
|
||||
* @param $data array containing the data
|
||||
* @returns true/false
|
||||
*
|
||||
* This function adds a new sub entry to the navigation visible to users.
|
||||
* these entries are visible only if the parent navigation entry is marked
|
||||
* as being active (see activateNavigationEntry()). $data is an associative
|
||||
* array.
|
||||
* The following keys are required:
|
||||
* - id: unique id for this entry ('addressbook_index')
|
||||
* - href: link to the page
|
||||
* - name: Human readable name ('Addressbook')
|
||||
*
|
||||
* The following keys are optional:
|
||||
* - icon: path to the icon of the app
|
||||
* - order: integer, that influences the position of your application in
|
||||
* the navigation. Lower values come first.
|
||||
*/
|
||||
public static function addNavigationSubEntry( $parent, $data ){
|
||||
$data['active']=false;
|
||||
if(!isset($data['icon'])){
|
||||
$data['icon']='';
|
||||
}
|
||||
if( !array_key_exists( $parent, self::$subnavigation )){
|
||||
self::$subnavigation[$parent] = array();
|
||||
}
|
||||
self::$subnavigation[$parent][] = $data;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief marks a navigation entry as active
|
||||
* @param $id id of the entry
|
||||
|
|
@ -223,70 +188,6 @@ class OC_App{
|
|||
return self::$activeapp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief registers an admin page
|
||||
* @param $data array containing the data
|
||||
* @returns true/false
|
||||
*
|
||||
* This function registers a admin page that will be shown in the admin
|
||||
* menu. $data is an associative array.
|
||||
* The following keys are required:
|
||||
* - id: unique id for this entry ('files_admin')
|
||||
* - href: link to the admin page
|
||||
* - name: Human readable name ('Files Administration')
|
||||
*
|
||||
* The following keys are optional:
|
||||
* - order: integer, that influences the position of your application in
|
||||
* the list. Lower values come first.
|
||||
*/
|
||||
public static function addAdminPage( $data = array()){
|
||||
// TODO: write function
|
||||
OC_App::$adminpages[] = $data;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief registers a settings page
|
||||
* @param $data array containing the data
|
||||
* @returns true/false
|
||||
*
|
||||
* This function registers a settings page. $data is an associative array.
|
||||
* The following keys are required:
|
||||
* - app: app the settings belong to ('files')
|
||||
* - id: unique id for this entry ('files_public')
|
||||
* - href: link to the admin page
|
||||
* - name: Human readable name ('Public files')
|
||||
*
|
||||
* The following keys are optional:
|
||||
* - order: integer, that influences the position of your application in
|
||||
* the list. Lower values come first.
|
||||
*
|
||||
* For the main settings page of an app, the keys 'app' and 'id' have to be
|
||||
* the same.
|
||||
*/
|
||||
public static function addSettingsPage( $data = array()){
|
||||
// TODO: write function
|
||||
OC_App::$settingspages[] = $data;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Returns the navigation
|
||||
* @returns associative array
|
||||
*
|
||||
* This function returns an array containing all entries added. The
|
||||
* entries are sorted by the key 'order' ascending. Additional to the keys
|
||||
* given for each app the following keys exist:
|
||||
* - active: boolean, signals if the user is on this navigation entry
|
||||
* - children: array that is empty if the key 'active' is false or
|
||||
* contains the subentries if the key 'active' is true
|
||||
*/
|
||||
public static function getNavigation(){
|
||||
$navigation = self::proceedNavigation( self::$navigation );
|
||||
$navigation = self::addSubNavigation( $navigation );
|
||||
return $navigation;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Returns the Settings Navigation
|
||||
* @returns associative array
|
||||
|
|
@ -295,57 +196,20 @@ class OC_App{
|
|||
* entries are sorted by the key 'order' ascending.
|
||||
*/
|
||||
public static function getSettingsNavigation(){
|
||||
$navigation = self::proceedNavigation( self::$settingspages );
|
||||
$navigation = self::addSubNavigation( $navigation );
|
||||
|
||||
return $navigation;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Returns the admin navigation
|
||||
* @returns associative array
|
||||
*
|
||||
* This function returns an array containing all admin pages added. The
|
||||
* entries are sorted by the key 'order' ascending.
|
||||
*/
|
||||
public static function getAdminNavigation(){
|
||||
$navigation = self::proceedNavigation( self::$adminpages );
|
||||
$navigation = self::addSubNavigation( $navigation );
|
||||
|
||||
return $navigation;
|
||||
}
|
||||
|
||||
/// Private foo
|
||||
private static function addSubNavigation( $list ){
|
||||
if(isset(self::$subnavigation[self::$activeapp])){
|
||||
$subNav=self::$subnavigation[self::$activeapp];
|
||||
foreach( $list as &$naventry ){
|
||||
if( $naventry['id'] == self::$activeapp ){
|
||||
$naventry['active'] = true;
|
||||
$naventry['subnavigation'] = $subNav;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
foreach(self::$subnavigation as $parent=>$entries){
|
||||
$activeParent=false;
|
||||
foreach($entries as &$subNav){
|
||||
$subNav['active']=$subNav['id'] == self::$activeapp;
|
||||
if($subNav['active']){
|
||||
$activeParent=true;
|
||||
}
|
||||
}
|
||||
if($activeParent){
|
||||
foreach( $list as &$naventry ){
|
||||
if( $naventry['id'] == $parent ){
|
||||
$naventry['active'] = true;
|
||||
$naventry['subnavigation'] = $entries;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$admin=array(
|
||||
array( "id" => "core_users", "order" => 2, "href" => OC_Helper::linkTo( "admin", "users.php" ), "name" => "Users", "icon" => OC_Helper::imagePath( "admin", "users.png" )),
|
||||
array( "id" => "core_apps", "order" => 3, "href" => OC_Helper::linkTo( "admin", "apps.php?installed" ), "name" => "Apps", "icon" => OC_Helper::imagePath( "admin", "apps.png" )),
|
||||
array( "id" => "files_administration", "order" => 3, "href" => OC_Helper::linkTo( "files", "admin.php" ), "name" => "Files", "icon" => OC_Helper::imagePath( "files", "folder.png" )),
|
||||
);
|
||||
$settings=array(
|
||||
array( "id" => "help", "order" => 1000, "href" => OC_Helper::linkTo( "help", "index.php" ), "name" => "Help", "icon" => OC_Helper::imagePath( "help", "help.png" )),
|
||||
array( "id" => "settings", "order" => 1, "href" => OC_Helper::linkTo( "settings", "index.php" ), "name" => "Personal", "icon" => OC_Helper::imagePath( "settings", "personal.png" ))
|
||||
);
|
||||
if( OC_Group::inGroup( $_SESSION["user_id"], "admin" )){
|
||||
$settings=array_merge($admin,$settings);
|
||||
}
|
||||
|
||||
return $list;
|
||||
$navigation = self::proceedNavigation($settings);
|
||||
return $navigation;
|
||||
}
|
||||
|
||||
/// This is private as well. It simply works, so don't ask for more details
|
||||
|
|
@ -354,9 +218,6 @@ class OC_App{
|
|||
$naventry['subnavigation'] = array();
|
||||
if( $naventry['id'] == self::$activeapp ){
|
||||
$naventry['active'] = true;
|
||||
if( array_key_exists( $naventry['id'], self::$subnavigation )){
|
||||
$naventry['subnavigation'] = self::$subnavigation[$naventry['id']];
|
||||
}
|
||||
}
|
||||
else{
|
||||
$naventry['active'] = false;
|
||||
|
|
@ -392,6 +253,22 @@ class OC_App{
|
|||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Returns the navigation
|
||||
* @returns associative array
|
||||
*
|
||||
* This function returns an array containing all entries added. The
|
||||
* entries are sorted by the key 'order' ascending. Additional to the keys
|
||||
* given for each app the following keys exist:
|
||||
* - active: boolean, signals if the user is on this navigation entry
|
||||
* - children: array that is empty if the key 'active' is false or
|
||||
* contains the subentries if the key 'active' is true
|
||||
*/
|
||||
public static function getNavigation(){
|
||||
$navigation = self::proceedNavigation( self::$navigation );
|
||||
return $navigation;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the id of loaded app
|
||||
* @return string
|
||||
|
|
|
|||
|
|
@ -242,22 +242,8 @@ class OC_Template{
|
|||
|
||||
// Add navigation entry
|
||||
$page->assign( "navigation", OC_App::getNavigation());
|
||||
}
|
||||
elseif( $this->renderas == "admin" )
|
||||
{
|
||||
$page = new OC_Template( "core", "layout.admin" );
|
||||
$search=new OC_Template( 'core', 'part.searchbox');
|
||||
$search->assign('searchurl',OC_Helper::linkTo( 'search', 'index.php' ));
|
||||
$page->assign('searchbox', $search->fetchPage());
|
||||
|
||||
// Add menu data
|
||||
if( OC_Group::inGroup( $_SESSION["user_id"], "admin" )){
|
||||
$page->assign( "adminnavigation", OC_App::getAdminNavigation());
|
||||
}
|
||||
$page->assign( "settingsnavigation", OC_App::getSettingsNavigation());
|
||||
}
|
||||
else
|
||||
{
|
||||
}else{
|
||||
$page = new OC_Template( "core", "layout.guest" );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<?php
|
||||
|
||||
OC_App::register( array( "id" => "settings", "name" => "Settings" ));
|
||||
OC_App::addSettingsPage( array( "id" => "settings", "order" => -1000, "href" => OC_Helper::linkTo( "settings", "index.php" ), "name" => "Personal", "icon" => OC_Helper::imagePath( "settings", "personal.png" )));
|
||||
|
||||
?>
|
||||
|
|
|
|||
Loading…
Reference in a new issue