先日アップデートされていたが、今回はテストバージョンを入れていたこともあって、まだアップデートしていませんでした。Joomla!を使ってサイト構築をしている方で、サイト独自にJoomla!のコアファイルを編集している方は、なかなかアップデート作業が面倒になりがちですよね。私もそうで、たまに忘れて上書きしちゃうことがあります。
このサイトでは、404エラーの時にサイトトップにリダイレクトして、メッセージを表示するようにしています。それは、Joomla!1.0から1.5に変更したためで、URLがすべて異なるのでそうした対応をしました。(ちなみに今度のJoomla!1.6にはリダイレクトの設定ができるっぽいです。)404のエラー画面が出るとビジターがどっかにいっちゃうのじゃないかと考えたためです。![]()
前回メニュー管理のメニューアイテム作るところを書きました。メニューの新規作成でもJoomla!1.6では、かなり使いやすくなっています。
まず、Joomla!1.5ではいくつかのメニュータイプを選択してからしか、(画面遷移がつきまとうので鬱陶しかった)選択できませんでしたが、1.6ではいきなりこの画面です。そのかわりメニュータイプを選択するボタンがついています。さらに、モジュールの割当も同じ画面でできるのでかなり楽になりますね。
昨日発見した点
まず2点。Fireboardへのリンクは、先ほどリダイレクトのメソッドを追加したので解決した。
Joomla!は、Itemidでの管理が多用されていてItemid(メニューIDのことです。)が無い場合内部では99999999などと勝手にItemidをつけて処理しているようです。ですが、これだとItemid無しでアクセスまたは、異なるItemidでのアクセスの場合、Itemidで表示を管理するモジュールなどが正しく表示されません。Allにしていれば問題ないでしょうが、Itemid(メニューID)ごとに異なるモジュールを割り当てている場合は、Allのもののみ表示されるだけで意図した表示にはならないです。
小さなことかもしれませんが、サイトを移転したりメニューIDを変更したときには重要かもしれません。
今回の場合、Itemidが異なるため表示はされるのですが、ComibineコンポーネントでFireboard用に出力されるはずのJavascriptが出力されていませんでした。
指定した(存在するメニューID)Itemidでのみアクセスを許可し、それ以外ならリダイレクトさせるような処理をしてくれるエクステンションが、必要かもしれませんね。それがあれば、サイト移転しても楽じゃないかな。
Joomla!1.5では、管理画面からログアウトすると管理画面のログイン画面にリダイレクトします。ですが、Joomla!1.0.xではサイトトップに戻ってしまい、もう一度ログインしたい時などに不便を感じることがあります。そこで以下を変更してみました。簡単です3文字削除するだけです。
root/administrator/logout.php
// return to site homepage mosRedirect( '../index.php' );
を
// return to site homepage mosRedirect( 'index.php' );
のように変更してみました。
これによって管理画面からログアウトしても管理画面のログイン画面になります。
同様に気になっていた方はお試しあれ。
最新のリビジョンのJoomla!1.5RC4をエクスポートして、比較してみました。
とりあえず、記事の日時の問題は以下でクリアしそうです。
JoomlaRoot/libraries/joomla/utilities/date.php
$date = date("Y-m-d H:i:s", $this->_date);
を
$date = gmdate("Y-m-d H:i:s", $this->_date);
へ
$date = strftime($format, $this->_date + ($this->_offset * 3600));
を
$date = gmstrftime($format, $this->_date + ($this->_offset * 3600));
へ 変更する。
Joomla!1.5 DemoをRC3からRC4に変更しました。手順は、先日テストサーバーで行ったのと全く同じで問題ありませんでした。VideoBarのデモのためにテンプレートに少し手を加えていたのを忘れていて消しちゃってから少しあわてましたが・・・。(全然バックアップせずに行っていた。)
少し違う点は、Demoとはいえ公開しているサイトなのでDemoRootにリダイレクトさせる.htaccessを設置してから行いました。