オブジェクト指向ブログ
2007年6月5日
ネットサーフィンしていて、ふと目に留まった言葉:『オブジェクト指向ブログ』。面白いかも。
記事に継承機能を取り入れる。例えば、継承もとの記事では、
これは次のように表示される。
この記事を継承した新しい記事は、次のように書ける。
これは、次のように表示されるだろう。
これは便利だろうか?それとも、面倒くさいだけなのだろうか?
少なくとも、この機能のためのプラグインを設計・製作することは面白そう。
このプラグインのテーブル構造は、例えば
データは、次の例のように挿入される。
SQLクエリーは次のように書けるかも。
fetch は次のように行う。
なお_parse()関数は、キー値でソートした後に、順に継承を行いパースする関数($dataが空の場合は何も実行しない)。
記事に継承機能を取り入れる。例えば、継承もとの記事では、
<block id=1>ここに記事の一部</block> <block id=2>ここに別の記事の一部</block> <block id=3>ここに記事の残り</block>のように書く。
これは次のように表示される。
ここに記事の一部 ここに別の記事の一部 ここに記事の残り
この記事を継承した新しい記事は、次のように書ける。
<block id=2>ここに変更した別の記事の一部</block>
これは、次のように表示されるだろう。
ここに記事の一部 ここに変更した別の記事の一部 ここに記事の残り
これは便利だろうか?それとも、面倒くさいだけなのだろうか?
少なくとも、この機能のためのプラグインを設計・製作することは面白そう。
このプラグインのテーブル構造は、例えば
CREATE TABLE IF NOT EXISTS nucleus_plugin_itemextension ( id int(11) not null auto_increment, itemid int(11) not null default 0, inherit int(11) not null default 0, PRIMARY KEY (id), KEY (itemid,inherit) );
データは、次の例のように挿入される。
(id) (itemid) (inherit) 201 110 1 202 110 10 203 110 110これは、itemid=110 の継承元が itemid=10で、itemid=10 の継承元が itemid=1のケースである。上から順に継承を行う。継承順は、idキーの値で決まる。継承をまったく行わないケースでも、itemid=inherit となるようなデータを挿入しておく必要がある。
SQLクエリーは次のように書けるかも。
SELECT i.itemid as itemid, j.ibody as body, e.inherit as inherit, e.id as eid FROM nucleus_item as i, nucleus_item as j nucleus_plugin_itemextension as e WHERE (デフォルトの条件式) and i.inumber=e.itemid and j.inumber=e.inherit
fetch は次のように行う。
$data=array(); $itemid=0; while($row=mysql_fetch_assoc($res)){ if ($itemid!=$row['itemid']) { $this->_parse($data); $itemid=$row['itemid']; $data=array(); } $data[$row['eid']]=$row; } $this->_parse($data);nucleus_itemテーブルを2回参照している。iの方は、デフォルトの条件式で決まるitemid取得用で、jの方が実際のデータ(ititle, ibody, imore)取得用である。したがって継承もとの記事は、ドラフトでも未来の記事でも、かまわない。
なお_parse()関数は、キー値でソートした後に、順に継承を行いパースする関数($dataが空の場合は何も実行しない)。