サイトの言語の機能で表示されるカスタム404エラーページを作成する方法を探しています。
これまでのところ、error.phpを作成してそこに配置しました: "templates/YourTemplate/error.php"
<?php defined('_JEXEC') or die; if ($this->error->getCode() == '404') { header("HTTP/1.0 404 Not Found"); echo file_get_contents(JURI::root().'./error-404'); exit; }
また、エラービュー404でブログビューをすべての言語に設定した非表示のメニューを作成しました。このメニューは、「error-404」カテゴリ(すべての言語)の記事に対応しています。
同じ記事にエイリアスを付ける必要はないので、error-404でフランス語の記事を作成し、error-404-enエイリアスで英語のカテゴリも作成しました。最後に、2つの記事をリンクする関連付けを作成しました。
すべての要素を「インデックスなし/フォローなし」に設定しました。
特定のerror.phpを使用して、一方の言語用に新しいテンプレートを作成し、もう一方を別の言語用に設定できることはわかっていますが、両方の言語で同じテンプレートを保持したいと思います。
ご協力いただきありがとうございます!
また、テンプレートが既に存在する場合は、テンプレートの標準の404(または同様の)phpファイルを使用することもできます。 Joomla!エイリアスの標準は、エイリアス処理のグローバル構成に応じて/ 404または/404.htmlになります。通常、この動作を手動でオーバーライドすることはお勧めできません。
私はただ使う
<?php echo JText::_('SOME_INFO_FOR_404'); ?>
phpファイル内。したがって、タイトルなどに対応する言語文字列のオーバーライドを設定するだけで、phpファイルやテンプレートを分離する必要はありません。異なる言語の特別な変数をプッシュしたい場合は、例えば別の画像を渡す場合、利用可能なフレームワーク言語チェックを使用することもできます。
に基づく:
$lang = JFactory::getLanguage();
$result = $lang->getTag();
if (($this->error->getCode()) == '404') {
if ($result=="en-GB") {
header('Location: /index.php?option=com_content&view=article&id=31');
exit;
}
if ($result=="pt-PT") {
header('Location: /index.php?option=com_content&view=article&id=30');
exit;
}
}
コードを調整する必要があります。「 カスタム404エラーページの作成 」をお読みください。