server/lib/public/inavigationmanager.php
Joas Schilling 970846624f Allow registering closures for navigation entries
This speeds up all pages that don't use the navigation by 0.04sec per app,
because we don't need to create the routing anymore, unless we really need to.
2015-03-16 16:17:43 +01:00

53 lines
1.6 KiB
PHP

<?php
/**
* ownCloud
*
* @author Bart Visscher
* @copyright 2013 Bart Visscher bartv@thisnet.nl
*
* 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/>.
*
*/
/**
* Public interface of ownCloud for apps to use.
* Navigation manager interface
*
*/
// use OCP namespace for all classes that are considered public.
// This means that they should be used by apps instead of the internal ownCloud classes
namespace OCP;
/**
* Manages the ownCloud navigation
*/
interface INavigationManager {
/**
* Creates a new navigation entry
*
* @param array|\Closure $entry Array containing: id, name, order, icon and href key
* The use of a closure is preferred, because it will avoid
* loading the routing of your app, unless required.
* @return void
*/
public function add($entry);
/**
* Sets the current navigation entry of the currently running app
* @param string $appId id of the app entry to activate (from added $entry)
* @return void
*/
public function setActiveEntry($appId);
}