diff --git a/lib/app.php b/lib/app.php index 54f16d6bdc..ca256ed1aa 100644 --- a/lib/app.php +++ b/lib/app.php @@ -294,6 +294,23 @@ class OC_App{ return true; } + /** + * @brief Get the navigation entries for the $app + * @param string $app app + * @return array of the $data added with addNavigationEntry + */ + public static function getAppNavigationEntries($app) { + if(is_file(self::getAppPath($app).'/appinfo/app.php')) { + $save = self::$navigation; + self::$navigation = array(); + require $app.'/appinfo/app.php'; + $app_entries = self::$navigation; + self::$navigation = $save; + return $app_entries; + } + return array(); + } + /** * @brief gets the active Menu entry * @return string id or empty string diff --git a/lib/base.php b/lib/base.php index 3de38258d0..c60a97100f 100644 --- a/lib/base.php +++ b/lib/base.php @@ -557,6 +557,7 @@ class OC { if (!self::$CLI) { try { + OC_App::loadApps(); OC::getRouter()->match(OC_Request::getPathInfo()); return; } catch (Symfony\Component\Routing\Exception\ResourceNotFoundException $e) { diff --git a/settings/ajax/navigationdetect.php b/settings/ajax/navigationdetect.php index 607c0e873f..7f961eb9bc 100644 --- a/settings/ajax/navigationdetect.php +++ b/settings/ajax/navigationdetect.php @@ -6,10 +6,7 @@ OCP\JSON::callCheck(); $app = $_GET['app']; $app = OC_App::cleanAppId($app); -//load the one app and see what it adds to the navigation -OC_App::loadApp($app); - -$navigation = OC_App::getNavigation(); +$navigation = OC_App::getAppNavigationEntries($app); $navIds = array(); foreach ($navigation as $nav) {