1.0.13では、ヘッダーがCacheされないと先日書きましたが、Joomla!1.5ではどうもCacheされているようです。すごい!
私としては、一番ベストなCache方法だと思います。パーツごとにCacheして且つヘッダーまでもなんて、なんてナイスなんでしょう。すばらしい。
ということで・・・SyntaxHighlighter for 1.5とGrayBox for 1.5のアップデートは、やめます。![]()
さて・・・いつものようにRSSの記事を流し読みしていたらなんと!「インターネットマガジン」を無償公開とあるではないですか。こりゃ得か?(購読者でもないのに・・・) いや、無償ですよ。無償。
早速、購読者になる私でした。
昨日ある問い合わせがあってCacheのことでJoomlaのソースを眺めていました。
Joomla!のCacheは、パーツごとにCacheファイルを作成し、それをパーツごとに読み込むようになっているようです。たとえば記事なら記事ごとにファイルが作成されます。モジュールならモジュールごとに。そうすることのメリットは、Cacheされては困るパーツは、Cacheさせないようにすることができるからだと思います。たとえば、このサイトで使用している!JoomlaCommentもその一つですが、Cacheされてしまうと投稿した内容はすぐに反映されません。明示的にCacheをクリアするしかありません。また、このサイトで配布しているPluginの中でもJavascriptをヘッダーに出力しているもの(SyntaxHilighter, CodePress Plugin, GreyBox)は、Cacheに対応していません。というより、Joomla!のCacheがヘッダーとともにCacheしないからです。その理由もわかります。パーツごとに管理しているため、Cacheしないパーツがヘッダー内の出力を変更することを考慮しているからだろうと想像します。Pluginは、記事内の設定された文字により、ONになります。Cacheから読み込まれた場合はPluginを通過した後の記事となるためPlugin自体を通過しません。よってヘッダーには出力することができません。
サードパーティーのCacheエクステンション(ヘッダーを含めすべてをCacheしてくれる。)をひとつ試してみましたが、すべてのエクステンションに対応しているわけでは無いのでサイトで使用しているエクステンションによっては、自分で対応するように工夫しなければなりません。このサイトではCacheはオフにしていますが、Cacheの応答性を考えるとやはり対応していかなければならないと考えています。
そこで対応の方法を考えてみました。
- Joomla!のコアを変更してしまう。
ソースを詳細に見ているわけではないので、もしかしたらそうできるように用意されているかもしれない。 - サードパーティーのCacheエクステンションを使う。
今回試したエクステンションは、うちのPluginはすべて正常動作していました。まるごとCacheされるので当然といえば当然ですが。
と、そうしなくても簡易対応ならできます。
- CacheがONならヘッダー内に出力せず、記事内にタグを出力。
記事内にJavascriptや、CSSを出力するわけです。(あまり好きではないですが・・・さんざんGoogleのモジュールを作成しておいて何を言うって感じですか・・・)
対応していないPluginは、次のバージョン(マイナー)で簡易対応するつもりです。
XML-RPCですが、Joomla!1.5ではどうもbloggerAPIのみの対応っぽいですね。他のAPI対応の動きは盛んなようですので最終的にはサードパーティーからになるかもしれませんが、公開されるような気はします。私も密かにつくりかけてたり・・・。

最近、PCの調子が悪かったのですが、どうもオンボードのLANに問題があったようです。二つのオンボードLANがあってそれをいつもインターネットに接続している方とは逆にしてみたらブラウジングも速くなって良さそうです。いつも何かに責任転嫁している私ですが、本体だったとは・・・。
先日から、記事毎にイギリス国旗がはためいていると思います。これは、Web翻訳へのリンクです。もっときれいに表示する予定だったのですが、YahooのBabelfishは、フレーム化を阻止してくれるので諦めました。Googleでの表示は、大丈夫ですが記事のみの表示にしています。(結果:白黒)そのあたりは改善していきます。(Article Translation Plugin) ページ右上のは、テンプレートに直接書き込んだYahoo BabelfishのWeb翻訳です。
国旗と道路標識のイラストフリー素材・National flag & Road sign MT
今思いつきました。別に1pxのIFrameで読み込んでもいいですね。見せたくないものは。それで終わったら消す。Ajaxで返ってくるものに自分自身を消すコードを含ませて。と言いつつもあまりパッとしないからやっぱりボツ。






























