/** * Dynamically add menu links to administration for system services. * * Listens for 'module_dispatch.postexecute' events. * * @param Zikula_Event $event The event handler. * * @return void */ public function addServiceLink(Zikula_Event $event) { // check if this is for this handler if (!($event['modfunc'][1] == 'getLinks' && $event['type'] == 'admin' && $event['api'] == true)) { return; } // notify EVENT here to gather any system service links $args = array('modname' => $event->getArgument('modname')); $localevent = new \Zikula\Core\Event\GenericEvent($event->getSubject(), $args); $this->eventManager->dispatch('module_dispatch.service_links', $localevent); $sublinks = $localevent->getData(); if (!empty($sublinks)) { $event->data[] = array('url' => $this->getContainer()->get('router')->generate('zikulaextensionsmodule_admin_moduleservices', array('moduleName' => $event['modname'])), 'text' => __('Services'), 'icon' => 'cogs', 'links' => $sublinks); } }