Esempio n. 1
0
 /**
  * The name of the action method will render by default.
  *
  * render 'listDocuments' template file
  * <code>
  *  <?php
  *  ...
  *  $this->renderAction('listDocuments');
  *  ...
  *  ?>
  * </code>
  *
  * @param   string  $name
  */
 protected function renderAction($name)
 {
     // current url
     $this->_view->currentUrl = '/' . $this->_request->getUri();
     // copy instance variables
     foreach (get_object_vars($this) as $key => $value) {
         $this->_view->{$key} = $value;
     }
     // add suffix
     if ($this->_actionConflict) {
         $name = str_replace('Action', '', $name);
     }
     if (!strstr($name, '.')) {
         $name .= '.html';
     }
     // prepend this controller's "short name" only if the action was
     // specified without a controller "short name".
     // e.g. index           -> Shortname/index
     //      Shortname/index -> Shortname/index
     if (!strstr($name, '/')) {
         $name = $this->_shortName . '/' . $name;
     }
     // respond to Javascript accept header
     if ($this->respondTo()->js) {
         // don't use application layout for JS
         if (strstr($this->_layoutName, 'application')) {
             $this->useLayout(false);
         }
         $this->_response->setHeader('Content-Type: text/javascript; charset=utf-8');
         $name = str_replace('.html', '.js', $name);
         if (!file_exists(MAD_ROOT . '/app/views/' . $name)) {
             throw new Mad_Controller_Exception("Missing template for: <b>{$name}</b>");
         }
     }
     if ($this->_useLayout) {
         $this->_view->contentForLayout = $this->_view->render($name);
         $text = $this->_view->render($this->_layoutName);
     } else {
         $text = $this->_view->render($name);
     }
     $this->renderText($text);
 }
Esempio n. 2
0
 /**
  * Log the http request
  *
  * @todo - get total query times
  *
  * @param   Mad_Controller_Request_Http $request
  * @param   int $totalTime
  */
 protected function _logRequest($request, $totalTime)
 {
     $queryTime = 0;
     // total time to execute queries
     $queryCount = 0;
     // total queries performed
     $phpTime = $totalTime - $queryTime;
     // embed user info in log
     $uri = $request->getUri();
     $method = $request->getMethod();
     $paramStr = 'PARAMS=' . $this->_formatLogParams($request->getParameters());
     $msg = sprintf("{$method} {$uri} %.4fs (DB=%.4fs [{$queryCount}] PHP=%.4fs) {$paramStr}", $totalTime, $queryTime, $phpTime);
     $msg = wordwrap($msg, 80, "\n\t  ", 1);
     Mad_Controller_Dispatcher::logger()->info($msg);
 }