Joomla!1.5.8でGoogleMapを記事に埋め込む
うちにも問い合わせが来たので・・・。
Joomla!1.5.8では、記事保存時にコンテンツコンポーネントの設定でなにも設定していなければ、初期設定で指定されている削除タグはすべて削除されてしまいます。おそらく、何も設定せずに使用されている方のためにデフォルトで危なそうなタグを削除するという設定に変更したのだと思います。
では、それを回避するにはどうすれば良いかというと、簡単です。バックエンドの記事管理一覧のプリファレンスから、フィルタオプション以下を設定すればOKです。
設定例(推奨設定です)
フィルタグループ
- register
- author
- editor
- publisher
を選択します。フロントエンドから投稿するひとすべてですね。
フィルタタイプ
- htmlなし
フィルタタグ
- 空白
フィルタ属性
- 空白
但し、この設定ではフロントエンドからの記事投稿者にはHTMLを一切許可しない設定です。許可したい場合は、フィルタタグや、属性の設定が必要です。
さて、本題ですがこの設定をすることにより、フィルタグループで指定されていないユーザーレベル(この場合ならmanager, administrator, super administrator)はフィルタを通過しないのでGoolgleMapのIFrameも登録可能になります。
Joomla!1.6はさらに進化してそうだ
いつもRSSリーダーで登録している記事を読んでいます。もちろんJoomla!関連のサイトはいくつか登録してあってその中にJoomla!1.6関連のものがありました。もちろん英語記事なので読んでも”さっぱり”なところもあり、その理解した内容があっているかはわかりませんが・・・。
Joomla!1.6では権限管理が加わっていそうです。どこまでできるようになるのかは、わかりませんが、機能によって権限の付与・剥奪ができるようになるのでしょうか。また、パフォーマンスも今より改善されるようです。
このサイトの1.5化では、mootools1.2を基本にして足りないものとやりたいことを実現しようと思っていますが、あーだこーだやってるうちにJoomla!1.6が出てきちゃったりしたらまた、延ばさないといけなくなっちゃいそうです。
1.6が出るとさらにエクステンション側の対応も必要になってくるでしょうから、今追いついておかないと取り残されそうです。(すでに、まだJoomla!1.0.xを使っている時点で取り残されている気はしますが・・ポツ~ン。他のサイトは、みんな1.5ですもんね。)
まあ、個人的には1.0.xと1.5は、機能にあまり差がないと思っているので、Joomla!2.0くらいを待ち望んでいます。
Joomla!1.5.8がリリースされています
今回は、変更箇所を少し確認してから1.5デモサイトをアップデートしました。いくつかのXSS対策も今回適用されているようですので該当する使い方(ウェブリンクの投稿を許可していたり、Author以上のユーザーに投稿を許可している)をされているサイトは、すぐにアップデートした方が良さそうです。
今回のリリースであらためて気づいたのですが、テンプレートでオーバーライドできることにより、アップデートの内容によっては使用しているテンプレートにも影響するということです。みなさんがお使いのテンプレートでオーバーライドしているものがあれば確認が必要です。元のコンポーネントや、モジュールのテンプレートが変更されていれば、確認した方が良いと思います。
Joomla!1.5をもっと速くする!?
1週間くらい前からだろうか、次のバージョンのJBackup(早くしなきゃ)の最終テストとしながら、ダミー記事20,000タイトル(1タイトル、2000ワード。SQLデータで260MBにもなる。)をテスト用Joomla!1.5に入れ何度もテストを行っています。ところが、何度やってもなかなかサイトが表示されない。おかしい。あまりにも遅い(表示に5分以上かかる)のでプラグインをオフにしてみた。・・・でも、遅いではないか。えっ!これってJoomla!の限界!?
20,000タイトルごときで、と思う方もいるかもしれない。・・・まあ、20,000タイトルなんてそんなサイトなかなか無いと思うが、記事としてではなく、データとして20,000以上あるものは、ざらにあるのではないか。
そこで、何が原因か少し設定を変えて試してみた。
- 全モジュール(メインメニュー以外オフ)
あら、あっさりと、速くなったではないか・・・。そこで一つずつオフにしたモジュールをオンにしていった。で、オンにしたら極端に遅くなったモジュールを列挙。
- mod_latestnews
ちなみにこのモジュールの入り口から出口までの所要時間は、なんと104秒もかかりました。 - mod_mostread
これもほぼ同じです。
対策を考えて、そしてその対策を行った結果、104秒かかっていた処理時間が、1秒になった。なんと104分の1です。んだこれ。mod_latestnewsもmod_mostreadも同様なので208秒(3分28秒)くらいかかっていた時間が、2秒です。3分もサイトが表示されるのを待っている人なんてクリックしてから、「ご飯だよ~。」と呼ばれた人くらいのものだ。
で、その対策は以下
$query = 'SELECT a.*,' .
を
$query = 'SELECT a.title, a.access, a.sectionid,' .
のように変更するだけです。
念のため、phpMyAdminでも変更前のクエリで実行してみたらほぼ同じように104秒前後の結果でした。
クエリは、必要なフィールドだけにしましょう。(気をつけようっと)
これってJoomla!1.5(もしかしたらうちの1.0.xも・・)を使っている方すべてに言えることなのでこの対策をするだけで少しはみなさんのサイトも速くなるかもしれませんね。しかし、もっと効率の良い方法が、無いものなのか考えどころですね。もっとHackしてしまったらもう少し速くなると思いますが、Hackする部分が多くなってしまいますのでこのあたりにしておきます。




























