function main($out, $configurationArray) { tx_rnbase_util_Misc::pushTT('tx_rnbase_controller', 'start'); // Making the configurations object tx_rnbase_util_Misc::pushTT('init configuration', ''); $configurations = $this->_makeConfigurationsObject($configurationArray); tx_rnbase_util_Misc::pullTT(); tx_rnbase_util_Misc::enableTimeTrack($configurations->get('_enableTT') ? TRUE : FALSE); // Making the parameters object tx_rnbase_util_Misc::pushTT('init parameters', ''); $parameters = $this->_makeParameterObject($configurations); // Make sure to keep all parameters $configurations->setParameters($parameters); tx_rnbase_util_Misc::pullTT(); try { // check for doConvertToUserIntObject $configurations->getBool('toUserInt') && $configurations->convertToUserInt(); } catch (tx_rnbase_exception_Skip $e) { // dont do anything! the controller will be called twice, // if we convert the USER to USER_INTERNAL return ''; } // Finding the action: $actions = $this->_findAction($parameters, $configurations); if (!isset($actions)) { return $this->getUnknownAction(); } $out = ''; if (is_array($actions)) { foreach ($actions as $actionName) { tx_rnbase_util_Misc::pushTT('call action', $actionName); $out .= $this->doAction($actionName, $parameters, $configurations); tx_rnbase_util_Misc::pullTT(); } } else { // Call a single action tx_rnbase_util_Misc::pushTT('call action', $actionName); $out .= $this->doAction($actions, $parameters, $configurations); tx_rnbase_util_Misc::pullTT(); } tx_rnbase_util_Misc::pullTT(); return $out; }