2011年5月20日金曜日

【Joomla1.5系関連】新着記事モジュールの日付のずれについて

お疲れ様です。

今回、Joomla1.5系にて
新着記事表示モジュールを利用すると
日付がずれる(タイムゾーンを日本にしているにもかかわらず標準時間になる)
という現象を解決するために、いろいろ調査した事柄です。
何かの役に立つかもということで
一応残しておきます。

その前に、上記件の解決方法ですが
mod_latestnewsモジュールの
日付表示部分に+9時間するように修正しました。
(あまりいいとはいえませんが・・・)
コードは割愛致します。

ではでは、今回判明した事柄です。

①記事の作成や編集時にDBへデータを保存している箇所
ルートフォルダ/administrator/components/com_content/controller.php
saveContent関数

作成日時等の日時はtoMySQL関数という
MySQLのdatetime形に型を整形している感じです。
また、taskパラメーターによって、保存や適用の
リダイレクト処理もsaveContent関数内で処理もしています。


②toMySQL関数定義ファイル
ルートフォルダ/libraries/joomla/utilities/date.php

toMySQL関数のほかに
タイムゾーンによって日付を加算する処理等も行っているようですが
私の環境(Joomla1.5.22)では管理画面上に表示されている日付と
DBに格納されている日付に相違があります。
このtoMySQLで正しいタイムゾーン値(日本なら+9)が取得されてないため
DBに格納する際は標準時間(ロンドン)で格納されます。
このあたりを修正してみたのですが、なぜか保存や適用をするたびに
作成日時がどんどん+9されてしまいます。

③JFactoryクラス定義ファイル
ルートフォルダ/libraries/joomla/factory.php

これはJoomla内でよく利用されるJFactoryクラスが定義されている場所です。(おそらく)


以上です。

0 件のコメント:

コメントを投稿

こちらにコメントをどうぞ