コード例 #1
0
 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;
 }