Writerのみ)を使って記事を投稿しているのでJoomla!1.0.xからある{ほにゃらら}適当な何か{/ほにゃらら}といったタグを書くプラグインというのは作成してこなかった。ブログエディタでは、ほぼやりたいことをブログエディタ側でやってくれるからです。公開はしていないが、Joomla!1.0.xの時タグを置き換えるものを作成したことがある。それはタグを登録しておけば、保存したHTMLなりに置き換えてくれるというものでした。その残骸が、一部の記事に残っていたりしますが、今は使っていませんというか、Joomla!1.5用のものは作成していません。Writerには、テキストテンプレートというプラグインがあって、登録しておくだけでその登録したテキストを挿入してくれます。それを使えば、わざわざプラグインなどを使わなくても良いし、作らなくても良い。16:43前記事でGreyBoxが使っているJavascrptライブラリであるAJSライブラリでのwindow.onloadを書きました。続いて他のJavascriptライブラリでのwindow.onloadの書き方を・・・。AJSライブラリではこう書きました。特定のライブラリに依存している(特定のJavascriptライブラリを必ずページ毎に読み込んでいる)場合ならそのライブラリの書き方で書いた方がスマートですね。テンプレートや、エクステンションを追加・変更したとき、今まで動いていたJavascriptが動かなくなったらまず、onloadをソースから探してみると意外にそこに原因があったりするので解決の近道になるかもしれません。Joomla!で作られたサイトを見ているとエクステンションにより、使っているJavascriptライブラリが異なっているのでしょうが、3つ以上のライブラリを読み込んでいるサイトもあります。通信速度のことを考えないならばそれで動作していればそれで良いと思っています。書き直すってのも無理があるし、特定のライブラリに依存したものだけを探すのも難しいですしね。今回、これを書いていてエクステンションを作るとき、Javascriptライブラリを利用するなら複数のライブラリに対応させるようにした方が良いかもしれないと思いました。(するかどうかは別ですけど・・・。)パラメータで切り替えできれば、複数のライブラリを利用せずにすみますね。今までもそうですが、そのライブラリを出力するかしないかのパラメータは、なるべくつけるようにしています。15:41GreyBoxが動かないことでの説明は、簡単ですが以前にもしていますが、あらためておさらいします。動かない原因のほとんどが、window.onloadイベントを上書きしてしまっていることが原因です。それは、GreyBoxに限らず、multiboxでもlightboxでも上書きしてしまったら結果は同じです。winodow.onloadについてとてもわかりやすくどう書いていると動かなくなるのかを説明されているサイトがありましたのでご覧ください。イベントに処理を追加する後で追加されるwindow.onloadイベントの追加方法が、すでに追加されているイベントを上書きするような追加方法で記述されていると、GreyBoxのwindow.onloadイベントが実行されません。GreyBoxのライブラリを読み込んだ上で下記のようなコードを書いてみます。AJS"のみ表示されるだけです。AJS');//}</script>最後のwindow.onloadをコメントアウトして実行すると、"body"と表示されるだけです。AJS"と表示され、GoogleのページがGreyBoxによって表示されます。Joomla!でヘッドタグにGreyBoxライブラリのScriptタグが書き込まれるタイミングは、テンプレートに依存しており、また大抵headタグ開始直後に書き込まれるようになっていると思います。すれば、後から書かれるJavascriptの影響を受けるのは当然です。その後から書かれているonloadイベントがイベント追加タイプでなかったらたとえGreyBoxで無くてもonloadイベントは消失してしまうので注意しなければなりません。どのように対策すれば良いのか。1.0.xJoomla!のデフォルトサイトキャッシュがONの時は、自動で記事内にスクリプトコードを出力するようにしました。キャッシュパラメータを付加しましたのでYesにすることにより、常時記事内にスクリプトコードを出力することができるようにしました。rel="lightbox"タグがあれば削除するオプションを追加しました。parameterInstallすでにインストール済みの方は、解凍後のファイルで上書きし、再設定を行うか、再インストールしてください。1.5用は、後日のアップデートになります。Javascriptを使用しています。