web-dev-qa-db-ja.com

「エラーページの表示エラー:アプリケーションのインスタンス化エラー」メッセージを上書きする方法はありますか?

データベースにエラーがある場合、Joomlaはそのエラーをスローします。これは実行サイクルの非常に早い段階で行われるため、Joomlaアプリケーションからの準備ができていないため、単純なテキストのエラーメッセージを含む醜い空白のページが表示されます。

それらをオーバーライドして、これらのエラーがたとえば静的なHTMLエラーページに送られるようにする方法はありますか?私はすでにこれをチェックしました

https://docs.joomla.org/Custom_error_pages

しかし、もし私が間違っていなければ、これはこれらのエラーに対しては機能しません。適切にロードされるより多くのものを必要とするからです。そうではありません。

前もって感謝します!

2
Isidro Baquero

遅い答えでごめんなさい。

はい、可能ですが、ルートインストールディレクトリにあるJoomlaのメインの_index.php_ファイルを少し編集する必要があります。

簡単な説明:このエラーメッセージは、実際にはJoomlaのコアクラスgetApplicationのメソッドJFactoryによってスローされた例外です。したがって、Joomlaコアに少し触れずにエラーメッセージを単にカスタマイズすることはできません。

クイックソリューション:メソッドgetApplicationが呼び出されたときに必要なのはtry-catchだけです。これを行うには、ルートインストールディレクトリにあるファイル_index.php_を開き、$app = JFactory::getApplication('site')などを検索します。次に、以下の行に置き換えます。

_try {
    $app = JFactory::getApplication('site');    
}
catch (Exception $e) {
    // Do something when the site cannot be instantiated.
    header('Location: my-error-file.html');
}
_
1
FlavioEscobar