ふと・・・Combineだとか、TagReplacerなどと作ると言っておきながら作ってない物がありますね。
昨日、別のエクステンションで少しテストしていたのですが、Joomla!1.0.xでは容赦なくGLOBALな値にして参照していたものをGLOBALな値にせずにJoomla!1.5で活用して且つ、HeaderTagに最終的に出力しようと思うと、その最後のタイミングのイベントがどうも無さそうなんです。というか考え方が間違っているのかもしれませんが、Joomla!1.5ではモジュールからHeaderTag内にも出力できるのでそれすらもカバーしようと思うとどのモジュールが(というより、最後にHeaderTagに入れたいやつは誰だ?)最後かわからないのです。これでは判断しようが無い。
Joomla!1.0.xのようにモジュールからのHeaderTagへの出力をカバーしなければ良いのですけどね。
クライアントの担当者から電話があり、Joomla!の1.0.15JPを入れたらグローバルコンフィグレーションのWYSIWYGエディタの設定だけが反映され、ユーザの指定したエディタが反映されないと言われる。
よくよく見てみると以下を訂正しなければ、直らない。
root/administrator/components/com_user/user.xmlの13行目
<param name="ユーザエディタ" type="editor_list" default="" label="ユーザエディタ"
のname部分を
<param name="editor" type="editor_list" default="" label="ユーザエディタ"
のように変更して各ユーザーの設定を保存し直せば直ります。
これは、パラメータ部分の指定によってフォームを作成してくれるのですが、name部分がフォームのname属性となり、保存するとデータベースで
name部分の値=入力した値
として保存されます。Joomla!側では、name部分の値は固定されているので指定されたname値が設定されていないと呼び出されません。なので本来なら
editor=jce などとならなければいけないところが、
ユーザエディタ=jce などと保存されていたので設定が反映されなかったってのがオチでした。
stableもバージョンアップもすべてそうなっているかもしれない。
後で投稿しておこう。
以前にJavascriptでショッピングカートのようなものを作成したことがあって先日その依頼者が画面を見て悩んでいた。
依頼者:「数が増えると重くて使えない。」・・・それは、私が作った物。
私:「Javascriptにも限界があるのな。」・・・ぉぃ
依頼者:「・・・・。」
すこしソースを眺めていた。動作は、間違っていない。ソースも間違いではない。エラーももちろん出ていない。クッキーを利用しているのでクッキー?、いやそうでない。じゃあ何よって。
私は、陥りやすいのかもしれない。
コードを処理によってパーツ化するのは当然なのですが、そう・・・ループの中で同じ値を参照するのにループ内でそれを見にいっている。それは間違っていますよね。パーツ化していると単純にそれを呼び出せば値が返ってくることがわかっているのでそれを使ってしまう罠でした。それが単純ならわかりやすいのですが、参照先からさらに奥へとつながっていたのでその先で何やってたか把握してなくてそんなことになっていました。
ループの外で参照しよう・・・・。
言い訳太郎でした。