2012-03-28 6 views
0

現在処理中のページではなく、別のページをレンダリングできますか?Joomla - ページレンダリングコントロール

たとえば、私のプラグインは404エラーを検出し、対応するHTTPヘッダーを設定してから、Webページから通常のページを出力しますが、HTTP 404ヘッダーの下に表示されるため、ブラウザと検索エンジンはカスタムの見栄えの良い404ページを受け取ります。

<? header("Location: ...'); ?> 

によってリダイレクト

はオプションではありません。 私は現在のページのレンダリングを停止し、別のページをレンダリングする必要がありますが、存在しないこのURLの下に表示します。

これはどのように行うことができますか?

+0

カスタムerror.phpファイルをテンプレートに追加できますか? templates/system/error.phpのデフォルトのerror.phpを参照してください。 –

+0

はい、それはオプションですが、まだ完全に他のページ、すべてのモジュールなどをレンダリングする必要があります... – simon

答えて

2

あなたは、システム・イベント・プラグインを必要とするような音、参照してください。onAfterDispatch方法は、ルーティングの後に呼び出され

http://docs.joomla.org/Plugin/Events/System#onAfterDispatch

、および:、

特に

http://docs.joomla.org/Plugin/Events/System

onAfterDispatch方法をJoomlaがURLが有効かどうかを判断した後、別のページにリダイレクトしてリダイレクトする時間になるはずです。