diff --git a/application/core/Survey_Common_Action.php b/application/core/Survey_Common_Action.php index bf744d562c9..9bbac2b4718 100644 --- a/application/core/Survey_Common_Action.php +++ b/application/core/Survey_Common_Action.php @@ -509,6 +509,9 @@ public function _showadminmenu() $updateNotification = $updateModel->updateNotification; $aData['showupdate'] = Yii::app()->getConfig('updatable') && $updateNotification->result && ! $updateNotification->unstable_update ; + // Fetch extra menus from plugins, e.g. last visited surveys + $aData['extraMenus'] = $this->fetchExtraMenus($aData); + $this->getController()->renderPartial("/admin/super/adminmenu", $aData); } } @@ -1377,4 +1380,26 @@ protected function _tempdir($dir, $prefix='', $mode=0700) return $path; } + /** + * Get extra menus from plugins that are using event beforeAdminMenuRender + * + * @param array $aData + * @return array + */ + protected function fetchExtraMenus(array $aData) + { + $event = new PluginEvent('beforeAdminMenuRender', $this); + $event->set('data', $aData); + $result = App()->getPluginManager()->dispatchEvent($event); + + $extraMenus = $result->get('extraMenus'); + + if ($extraMenus === null) + { + $extraMenus = array(); + } + + return $extraMenus; + } + } diff --git a/application/views/admin/super/adminmenu.php b/application/views/admin/super/adminmenu.php index e56a530a6a1..42f011e2f12 100644 --- a/application/views/admin/super/adminmenu.php +++ b/application/views/admin/super/adminmenu.php @@ -140,6 +140,29 @@ + + + + + +