DOMいじってると、
「やっぱりブロックにはIDが振られるべき」という気が強くします。
でもLegacy_Controllerでは、キャッシュ済みのブロックにはIDが振られているのに
動的なのには振られてないんですね。
modules/legacy/kernel/Legacy_Controller.class.php
の355行目に
'id' => $blockProcedure->getId(),
を入れればすむだけなので、是非入れて欲しいなーと思うんですが。
で、実際にこれがあると何が出来るかっていうデモです。
例によってホダ塾を・・・ :-p
http://www.hodajuku.org/
ブロックタイトルの右端に、Windowsみたいな□ボタンがあります。
これをクリックすると、ブロックが開閉します。
で、開閉だけならすぐできるんですが、これblockIDをCOOKIEに保存してるので
どのページ行っても、同じブロックなら状態が保存されています。
やったことは、
1. 上述のLegacy_Controller.class.phpの1行追加
2. theme.html の各ブロック繰り返しに
<h3 class="blockTitle" id="blockTitle-<{$block.id}>"><{$block.title}></h3>
<div class="blockContent" id="blockContent-<{$block.id}>"><{$block.content}></div>
3. JavaScriptのグローバル変数に xoops_url を加えてます。(変数内容はご想像の通り)
2/3は、これはディストリor開発者対応かなーと思うんですが、1.は結構どうしようもなく。
Delegate入れる場所も無く。
加えていただければなーという感じです。
伊藤
> DOMいじってると、
> 「やっぱりブロックにはIDが振られるべき」という気が強くします。
>
> でもLegacy_Controllerでは、キャッシュ済みのブロックにはIDが振られているのに
> 動的なのには振られてないんですね。
>
> modules/legacy/kernel/Legacy_Controller.class.php
> の355行目に
> 'id' => $blockProcedure->getId(),
> を入れればすむだけなので、是非入れて欲しいなーと思うんですが。
全面的に賛成です!
でも、ここまではっきりしているなら、trackerのFeatureRequestに追加した
方が良いのでは?
急げば 2.1.3 に間に合うかも。
> 全面的に賛成です!
>
> でも、ここまではっきりしているなら、trackerのFeatureRequestに追加した
> 方が良いのでは?
ありがとうございます。
ということで、Trackerに登録いたしました。
伊藤