diff --git a/datamodels/2.x/itop-portal-base/module.itop-portal-base.php b/datamodels/2.x/itop-portal-base/module.itop-portal-base.php index 60c64d84e..4319c3524 100644 --- a/datamodels/2.x/itop-portal-base/module.itop-portal-base.php +++ b/datamodels/2.x/itop-portal-base/module.itop-portal-base.php @@ -2,7 +2,7 @@ SetupWebPage::AddModule( __FILE__, // Path to the current file, all other file names are relative to the directory containing this file - 'itop-portal-base/1.0.0', array( + 'itop-portal-base/1.0.1', array( // Identification 'label' => 'Portal Development Library', 'category' => 'Portal', diff --git a/datamodels/2.x/itop-portal-base/portal/src/controllers/defaultcontroller.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/controllers/defaultcontroller.class.inc.php index 9b9c49331..f99f9e795 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/controllers/defaultcontroller.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/controllers/defaultcontroller.class.inc.php @@ -37,8 +37,17 @@ class DefaultController // Doing it only for tile visible on home page to avoid unnecessary rendering if (($oBrick->GetVisibleHome() === true) && ($oBrick->GetTileControllerAction() !== null)) { - $oController = new \Combodo\iTop\Portal\Controller\ManageBrickController($oRequest, $oApp); - $aData['aTilesRendering'][$oBrick->GetId()] = $oController->HomeAction($oRequest, $oApp); + $aControllerActionParts = explode('::', $oBrick->GetTileControllerAction()); + if (count($aControllerActionParts) !== 2) + { + $oApp->abort(500, 'Tile controller action must be of form "\Namespace\ControllerClass::FunctionName" for brick "' . $oBrick->GetId() . '"'); + } + + $sControllerName = $aControllerActionParts[0]; + $sControllerAction = $aControllerActionParts[1]; + + $oController = new $sControllerName($oRequest, $oApp, $oBrick->GetId()); + $aData['aTilesRendering'][$oBrick->GetId()] = $oController->$sControllerAction($oRequest, $oApp, $oBrick->GetId()); } } diff --git a/datamodels/2.x/itop-portal-base/portal/src/entities/portalbrick.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/entities/portalbrick.class.inc.php index 670d93b88..956f13d72 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/entities/portalbrick.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/entities/portalbrick.class.inc.php @@ -493,6 +493,9 @@ abstract class PortalBrick extends AbstractBrick $this->SetDecorationClassNavigationMenu($optionalNodeValue); } break; + case 'tile_controller_action': + $this->SetTileControllerAction($oBrickSubNode->GetText(static::DEFAULT_TILE_CONTROLLER_ACTION)); + break; } }