BLOCKBLOGがサービスを停止すると突然公知したので、
他のブログに引越ししないといけなくなったが、
BLOCKBLOGで作ってきたブログツールを他のブログに移植を本格的に
考えてみた。
以前考えていたことは、ソフトメニューを途中までは作り、そこで未完のまま
放置していたので、ライブドアブログで作ってみた。
●調査結果
すなわち、BLOCKBLOGでは、必要とするところは以下。
<div id="menu">
<dl id="b_xxx_xxx">
<dt>メニュー名</dt>
<dd>項目1</dd>
<dd>項目2</dd>
:
</dl>
:
</div>
A)livedoor blog
①、③が可能。
以下に示す。
<div id=links>
<div class=sidetitle>メニュー名</div> :menuObj
<div class=side> :elementBlockObj
<div class=sidebody>項目1</div> :elementObj
<div class=sidebody>項目2</div>
:
</div>
:
</div>
この構造であれば、問題なく可能だろう。
メニュー名ブロックを探すには、
id名でなく「メニュー名」文字列を指定してもらい、
「links」の子ノードでclass名=sidetitleを検索し、
該当するオブジェクトの値を指定した「メニュー名」と比較すればよい。
その対象となる項目群は、求めたノードの次に位置するノードを
探していき、それがDIV領域でclass名=sideを対象とする。
なお、次のノードがないか、次のsidetitleが出てくれば、
項目群はないものとすればよい。
●移植の考え方。
元の構造から内容を抜き出してBLOCKBLOGの構造に替えてしまう方法。
あとは、BLOCKBLOGの処理をそのまま使えるので、移植作業が簡単になる。
この考え方だと、最初のjs7initSoftMenu関数内を
変更するだけでOK。あとは、CSSをいじるだけ。
このCSSもメニュー名や項目は、CSSのセレクタをidで指定するのではなく、
新規にBLOCKBLOGのclass名も挿入して、そのクラス名で指定するように替えることで、
CSSファイルが簡単になる。
ということで、A)を作ってみたら出来ました。^^)
ところが、その後、移植先ブログを調査していたら、
ライブドアブログは、現在の内容をそのまま移植するには不適切ということで、
一番有力は忍者ブログになってるので、再度、忍者ブログに作り変えた。
F)忍者blog
①,②、③は可能
以下に示す。
<div class="PluginInnerBlock">
<div class="PluginTitle left">メニュー名</div>
<div class="PluginExplanation left"> </div>
<div class="PluginContents left">
<div class="plugin_data"><a href=" ">項目1</a></div>
<div class="plugin_data"><a href=" ">項目2</a></div>
:
</div>
</div>
ということで殆どライブドアと構造は同じであるが、
問題は、id名もしくはname名がなく、クラス名のみである。
従って、IEは、DIVタグからメニュー名を求めるようにしないと出来ない。
プログラムを同じにしたいので、DOMもそれにあわせて作るしかない。
ということで、なんとかクラス名を元に探し当てることに成功し、
サーバーにアップしたら、なんか表示しない。。。。
問題の箇所のソース見たら、なんか変。。。。。。
ということで昔のソースでなんでこんな記述をしたのか
考えたが分からない。。。。
で、よく考えたら、 バグでした。。。。。
昔は、プルダウンの個数が少ないことはなかったためたまたまセーフだった。。
ということで、その他のブログツールも含め2008/09/17深夜にやっと完成しました。
他のブログに引越ししないといけなくなったが、
BLOCKBLOGで作ってきたブログツールを他のブログに移植を本格的に
考えてみた。
以前考えていたことは、ソフトメニューを途中までは作り、そこで未完のまま
放置していたので、ライブドアブログで作ってみた。
●調査結果
すなわち、BLOCKBLOGでは、必要とするところは以下。
<div id="menu">
<dl id="b_xxx_xxx">
<dt>メニュー名</dt>
<dd>項目1</dd>
<dd>項目2</dd>
:
</dl>
:
</div>
A)livedoor blog
①、③が可能。
以下に示す。
<div id=links>
<div class=sidetitle>メニュー名</div> :menuObj
<div class=side> :elementBlockObj
<div class=sidebody>項目1</div> :elementObj
<div class=sidebody>項目2</div>
:
</div>
:
</div>
この構造であれば、問題なく可能だろう。
メニュー名ブロックを探すには、
id名でなく「メニュー名」文字列を指定してもらい、
「links」の子ノードでclass名=sidetitleを検索し、
該当するオブジェクトの値を指定した「メニュー名」と比較すればよい。
その対象となる項目群は、求めたノードの次に位置するノードを
探していき、それがDIV領域でclass名=sideを対象とする。
なお、次のノードがないか、次のsidetitleが出てくれば、
項目群はないものとすればよい。
●移植の考え方。
元の構造から内容を抜き出してBLOCKBLOGの構造に替えてしまう方法。
あとは、BLOCKBLOGの処理をそのまま使えるので、移植作業が簡単になる。
この考え方だと、最初のjs7initSoftMenu関数内を
変更するだけでOK。あとは、CSSをいじるだけ。
このCSSもメニュー名や項目は、CSSのセレクタをidで指定するのではなく、
新規にBLOCKBLOGのclass名も挿入して、そのクラス名で指定するように替えることで、
CSSファイルが簡単になる。
ということで、A)を作ってみたら出来ました。^^)
ところが、その後、移植先ブログを調査していたら、
ライブドアブログは、現在の内容をそのまま移植するには不適切ということで、
一番有力は忍者ブログになってるので、再度、忍者ブログに作り変えた。
F)忍者blog
①,②、③は可能
以下に示す。
<div class="PluginInnerBlock">
<div class="PluginTitle left">メニュー名</div>
<div class="PluginExplanation left"> </div>
<div class="PluginContents left">
<div class="plugin_data"><a href=" ">項目1</a></div>
<div class="plugin_data"><a href=" ">項目2</a></div>
:
</div>
</div>
ということで殆どライブドアと構造は同じであるが、
問題は、id名もしくはname名がなく、クラス名のみである。
従って、IEは、DIVタグからメニュー名を求めるようにしないと出来ない。
プログラムを同じにしたいので、DOMもそれにあわせて作るしかない。
ということで、なんとかクラス名を元に探し当てることに成功し、
サーバーにアップしたら、なんか表示しない。。。。
問題の箇所のソース見たら、なんか変。。。。。。
ということで昔のソースでなんでこんな記述をしたのか
考えたが分からない。。。。
で、よく考えたら、 バグでした。。。。。
昔は、プルダウンの個数が少ないことはなかったためたまたまセーフだった。。
ということで、その他のブログツールも含め2008/09/17深夜にやっと完成しました。
PR