diff options
author | Jakob Sack <kde@jakobsack.de> | 2011-08-08 23:16:30 +0200 |
---|---|---|
committer | Jakob Sack <kde@jakobsack.de> | 2011-08-08 23:16:30 +0200 |
commit | 962907ee6f12f20c374263d6507d3557bb053e3c (patch) | |
tree | 90e387c638e4fd697b96f0fba7f0a75ff140226c /lib | |
parent | 4b967a941426dbc7994105208e2226524651bf6d (diff) | |
parent | d1d47eb5eb28d9a62f3a16cc3b1be4e0136bed8b (diff) | |
download | nextcloud-server-962907ee6f12f20c374263d6507d3557bb053e3c.tar.gz nextcloud-server-962907ee6f12f20c374263d6507d3557bb053e3c.zip |
Merge branch 'master' of git://anongit.kde.org/owncloud
Conflicts:
lib/template.php
Diffstat (limited to 'lib')
-rw-r--r-- | lib/app.php | 181 | ||||
-rw-r--r-- | lib/setup.php | 4 | ||||
-rw-r--r-- | lib/template.php | 19 |
3 files changed, 38 insertions, 166 deletions
diff --git a/lib/app.php b/lib/app.php index 9e81ed8184e..51e86c847dd 100644 --- a/lib/app.php +++ b/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 @@ -167,38 +164,6 @@ class OC_App{ } /** - * @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 * @returns true/false @@ -224,70 +189,6 @@ class OC_App{ } /** - * @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; @@ -393,6 +254,22 @@ class OC_App{ } /** + * @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 */ diff --git a/lib/setup.php b/lib/setup.php index f87581d7582..04a65d01265 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -224,7 +224,9 @@ class OC_Setup { OC_Installer::installShippedApps(true); //create htaccess files for apache hosts - self::createHtaccess(); //TODO detect if apache is used + if (strstr($_SERVER['SERVER_SOFTWARE'], 'Apache')) { + self::createHtaccess(); + } //and we are done OC_Config::setValue('installed', true); diff --git a/lib/template.php b/lib/template.php index 37da1919556..2ba26eebac8 100644 --- a/lib/template.php +++ b/lib/template.php @@ -233,23 +233,16 @@ class OC_Template{ $search=new OC_Template( 'core', 'part.searchbox'); $search->assign('searchurl',OC_Helper::linkTo( 'search', 'index.php' )); $page->assign('searchbox', $search->fetchPage()); + if(array_search(OC_APP::getCurrentApp(),array('settings','admin','help'))!==false){ + $page->assign('bodyid','body-settings'); + }else{ + $page->assign('bodyid','body-user'); + } // 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" ); } |