public buildModuleList ( |
||
$controllerContext | ||
return | array |
public function buildModuleList(ControllerContext $controllerContext)
{
$modules = array();
foreach ($this->settings['modules'] as $module => $moduleConfiguration) {
if (!$this->isModuleEnabled($module)) {
continue;
}
if (isset($moduleConfiguration['privilegeTarget']) && !$this->privilegeManager->isPrivilegeTargetGranted($moduleConfiguration['privilegeTarget'])) {
continue;
}
$submodules = array();
if (isset($moduleConfiguration['submodules'])) {
foreach ($moduleConfiguration['submodules'] as $submodule => $submoduleConfiguration) {
if (!$this->isModuleEnabled($module . '/' . $submodule)) {
continue;
}
if (isset($submoduleConfiguration['privilegeTarget']) && !$this->privilegeManager->isPrivilegeTargetGranted($submoduleConfiguration['privilegeTarget'])) {
continue;
}
$submodules[] = $this->collectModuleData($controllerContext, $submodule, $submoduleConfiguration, $module . '/' . $submodule);
}
}
$modules[] = array_merge($this->collectModuleData($controllerContext, $module, $moduleConfiguration, $module), array('group' => $module, 'submodules' => $submodules));
}
return $modules;
}
/** * @param NodeInterface $node * @return string * @throws NeosException */ public function render(NodeInterface $node) { if ($this->privilegeManager->isPrivilegeTargetGranted('Neos.Neos:Backend.GeneralAccess') === false) { return ''; } /** @var $actionRequest ActionRequest */ $actionRequest = $this->controllerContext->getRequest(); $innerView = new StandaloneView($actionRequest); $innerView->setTemplatePathAndFilename('resource://Neos.Neos/Private/Templates/Backend/Content/Container.html'); $innerView->setFormat('html'); $innerView->setPartialRootPath('resource://Neos.Neos/Private/Partials'); $user = $this->partyService->getAssignedPartyOfAccount($this->securityContext->getAccount()); $innerView->assignMultiple(array('node' => $node, 'modules' => $this->menuHelper->buildModuleList($this->controllerContext), 'sites' => $this->menuHelper->buildSiteList($this->controllerContext), 'user' => $user)); return $innerView->render(); }