From b56e728f4928cd48699ac25f1bacdda78720d326 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 9 Apr 2018 07:42:23 +0200 Subject: [PATCH] Extensions can now extend the standard Navigation --- application/controllers/system/Navigation.php | 48 +++++++++++++++++-- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/application/controllers/system/Navigation.php b/application/controllers/system/Navigation.php index 037a7d0f4..9e16580b0 100644 --- a/application/controllers/system/Navigation.php +++ b/application/controllers/system/Navigation.php @@ -13,14 +13,15 @@ class Navigation extends VileSci_Controller * */ public function __construct() - { - parent::__construct(); + { + parent::__construct(); $this->config->load('navigation'); - // Load session library - $this->load->library('session'); - } + // Load session library + $this->load->library('session'); + $this->load->library('ExtensionsLib'); + } /** * @@ -34,6 +35,24 @@ class Navigation extends VileSci_Controller { $navigationMenuArray = $this->config->item('navigation_menu'); + // Load Menu Entries of Extensions + $extensions = $this->extensionslib->getInstalledExtensions(); + if(hasData($extensions)) + { + foreach($extensions->retval as $ext) + { + $filename = APPPATH.'config/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$ext->name.'/navigation.php'; + if (file_exists($filename)) + { + unset($config); + include($filename); + if(isset($config['navigation_menu']) && is_array($config['navigation_menu'])) + { + $navigationMenuArray = array_merge_recursive($navigationMenuArray, $config['navigation_menu']); + } + } + } + } if (isset($navigationMenuArray) && is_array($navigationMenuArray)) { if (isset($navigationMenuArray[$navigation_widget_called])) @@ -71,6 +90,25 @@ class Navigation extends VileSci_Controller { $navigationHeaderArray = $this->config->item('navigation_header'); + // Load Header Entries of Extensions + $extensions = $this->extensionslib->getInstalledExtensions(); + if(hasData($extensions)) + { + foreach($extensions->retval as $ext) + { + $filename = APPPATH.'config/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$ext->name.'/navigation.php'; + if (file_exists($filename)) + { + unset($config); + include($filename); + if(isset($config['navigation_header']) && is_array($config['navigation_header'])) + { + $navigationHeaderArray = array_merge_recursive($navigationHeaderArray, $config['navigation_header']); + } + } + } + } + if (isset($navigationHeaderArray) && is_array($navigationHeaderArray)) { if (isset($navigationHeaderArray[$navigation_widget_called]))