/**
  * Include a component from a module
  *
  * @param string $template
  * @param array $params
  */
 public static function includeComponent($template, $params = array())
 {
     $debug = Context::isDebugMode();
     if ($debug) {
         $time = explode(' ', microtime());
         $pretime = $time[1] + $time[0];
     }
     if (self::doesComponentExist($template, false)) {
         list($template_name, $actionClass, $actionToRunName) = self::_doesComponentExist($template);
         foreach ($params as $key => $val) {
             $actionClass->{$key} = $val;
         }
         $actionClass->{$actionToRunName}();
         $parameters = $actionClass->getParameterHolder();
     } else {
         $template_name = self::getFinalTemplateName($template);
         $parameters = $params;
     }
     self::presentTemplate($template_name, $parameters);
     if ($debug) {
         $time = explode(' ', microtime());
         $posttime = $time[1] + $time[0];
         Context::visitPartial($template, $posttime - $pretime);
     }
 }