Joomla!の時刻設定
[ joomla ] [ joomla ]作成者 2008年 7月 31日(木曜日) 21:40
Joomla! 1.5.xでは、マルチランゲージ化の影響で日時の取り扱いもJoomla! 1.0.xとは変更されている。
Joomla! 1.5.x + ja-JPをインストール後、最初に行うこと
グローバルコンフィグレーションのサーバからタイムゾーンを設定する。
(日本で使用するならUTC +09:00 に設定)
プラグイン管理でEditor - TinyMCE 2.0のランゲージコードを ja に設定する。
これで問題無く動いているように見えるが、細かい所に不具合が出ていた。
Joomla! 1.5.x系ではデータとして取り扱う時刻はGMTで統一され、フロントエンドへ表示する時はグローバルコンフィグレーションのタイムゾーン
で変更してから表示する。なのでMySQLに保存されている時刻はGMTになる。
記事等の表示は問題ない。
feed系はタイムゾーン設定を無視するので壊れる。
(ただし通常のフードリーダでミックスを行わなければ問題無し)
サードパーティもタイムゾーン設定を無視する物が多いので時刻が壊れる。
もう一つの問題はキャッシュが正常に動かない。これは標準のフードにアイテムがまったく無いデータを作る事が起こる。
キャッシュタイムを超えて最初に表示する時はアイテムがでるがキャッシュから読み込みはされない。
この問題を再現するには
- キャッシュディレクトリのパーミッションが書込み可(又はFTPが有効になっている)
- 実行サーバの時刻設定がJST(GMT以外)
- キャッシュが有効かCache ハンドラがファイル以外
これを解決するにはJoomla! 1.5.5 以降のサイトランゲージ(ja+JP)をインストールする。
Joomla! 1.5.5 以降のサイトランゲージにはja-JP.date.phpが含まれているのでこのファイルが問題を解決します。
Joomla! 1.5.5 + ja-JPは今週中にダウンロードできると思います。。。
feedを表示する時にタイムゾーン設定を無視するのはコアのバグぽいですが、JDateを各言語で切り替えるのが正しいみたい。
もともとJDateを切り替えるのはWindows上のPHPでdate関数がおかしい部分の変更と思っていましたが。。。
コメント
まだありません