Пример #1
0
 private static function getErrorResponse(Exception $ex)
 {
     $debugTrace = $ex->getTraceAsString();
     $message = $ex->getMessage();
     if (!method_exists($ex, 'isHtmlMessage') || !$ex->isHtmlMessage()) {
         $message = Common::sanitizeInputValue($message);
     }
     $logo = new CustomLogo();
     $logoHeaderUrl = false;
     $logoFaviconUrl = false;
     try {
         $logoHeaderUrl = $logo->getHeaderLogoUrl();
         $logoFaviconUrl = $logo->getPathUserFavicon();
     } catch (Exception $ex) {
         Log::debug($ex);
     }
     $result = Piwik_GetErrorMessagePage($message, $debugTrace, true, true, $logoHeaderUrl, $logoFaviconUrl);
     /**
      * Triggered before a Piwik error page is displayed to the user.
      *
      * This event can be used to modify the content of the error page that is displayed when
      * an exception is caught.
      *
      * @param string &$result The HTML of the error page.
      * @param Exception $ex The Exception displayed in the error page.
      */
     Piwik::postEvent('FrontController.modifyErrorPage', array(&$result, $ex));
     return $result;
 }
Пример #2
0
 private static function getErrorResponse(Exception $ex)
 {
     $debugTrace = $ex->getTraceAsString();
     $message = $ex->getMessage();
     $isHtmlMessage = method_exists($ex, 'isHtmlMessage') && $ex->isHtmlMessage();
     if (!$isHtmlMessage && Request::isApiRequest($_GET)) {
         $outputFormat = strtolower(Common::getRequestVar('format', 'xml', 'string', $_GET + $_POST));
         $response = new ResponseBuilder($outputFormat);
         return $response->getResponseException($ex);
     } elseif (!$isHtmlMessage) {
         $message = Common::sanitizeInputValue($message);
     }
     $logo = new CustomLogo();
     $logoHeaderUrl = false;
     $logoFaviconUrl = false;
     try {
         $logoHeaderUrl = $logo->getHeaderLogoUrl();
         $logoFaviconUrl = $logo->getPathUserFavicon();
     } catch (Exception $ex) {
         try {
             Log::debug($ex);
         } catch (\Exception $otherEx) {
             // DI container may not be setup at this point
         }
     }
     $result = Piwik_GetErrorMessagePage($message, $debugTrace, true, true, $logoHeaderUrl, $logoFaviconUrl);
     try {
         /**
          * Triggered before a Piwik error page is displayed to the user.
          *
          * This event can be used to modify the content of the error page that is displayed when
          * an exception is caught.
          *
          * @param string &$result The HTML of the error page.
          * @param Exception $ex The Exception displayed in the error page.
          */
         Piwik::postEvent('FrontController.modifyErrorPage', array(&$result, $ex));
     } catch (ContainerDoesNotExistException $ex) {
         // this can happen when an error occurs before the Piwik environment is created
     }
     return $result;
 }
 protected function handleMaintenanceMode()
 {
     if (Config::getInstance()->General['maintenance_mode'] != 1 || Common::isPhpCliMode()) {
         return;
     }
     Common::sendResponseCode(503);
     $logoUrl = null;
     $faviconUrl = null;
     try {
         $logo = new CustomLogo();
         $logoUrl = $logo->getHeaderLogoUrl();
         $faviconUrl = $logo->getPathUserFavicon();
     } catch (Exception $ex) {
     }
     $logoUrl = $logoUrl ?: 'plugins/Morpheus/images/logo-header.png';
     $faviconUrl = $faviconUrl ?: 'plugins/CoreHome/images/favicon.ico';
     $page = file_get_contents(PIWIK_INCLUDE_PATH . '/plugins/Morpheus/templates/maintenance.tpl');
     $page = str_replace('%logoUrl%', $logoUrl, $page);
     $page = str_replace('%faviconUrl%', $faviconUrl, $page);
     $page = str_replace('%piwikTitle%', Piwik::getRandomTitle(), $page);
     echo $page;
     exit;
 }
Пример #4
0
 /**
  * Returns the url to header logo (~127x50px)
  *
  * @param bool $pathOnly If true, returns path relative to doc root. Otherwise, returns a URL.
  * @return string
  * @deprecated since Piwik 2.15.1
  */
 public function getHeaderLogoUrl($pathOnly = false)
 {
     $logo = new CustomLogo();
     return $logo->getHeaderLogoUrl($pathOnly);
 }