blogの分離でNP_CategoryIcon作成

カテゴリ:Nucleus
日時:2004/08/01 22:31

Nucleusを蔵書データベースにに書いたようにblogを分離したわけだが、いろいろと苦労させられた。

新blog(読書日記)の作成およびデータ移行については、Nucleusの標準機能で問題なく完了。しかし、細かいところにほころびが生じてしまった。

第1の問題は、カテゴリアイコン。ウチのサイトは、よせばいいのにカテゴリごとにアイコンを付加している。新blog側でも同じようにアイコンを用意すれば問題ないのだが、新blogでは全カテゴリ共通のアイコンにしたかった。だって、小説やノンフィクションにどんなアイコンを用意すればいいんだ?

第2の問題は、元のblogと新blogともに、各アイテムのカテゴリのリンクが思ったとおりに機能しないというもの。

・元blogに新blogのアイテムを表示しない
・新blogに独自テンプレを用意する

をやればいいのだが、元blogに新blogも表示して、新blogでも元blogのテンプレを使いまわしたかったので、どうにかしなければならない。 まず、アイコン問題をまとめると、

blog A
 カテゴリ1
 カテゴリ2
 カテゴリ3
blog B
 カテゴリ4
 カテゴリ5

という状態で、カテゴリ1~3にはそれぞれ独自のアイコンを付加、カテゴリ4~5は共通のアイコンとし、blog Aにblog Bのアイテムを表示する際はその共通アイコンを表示したいのだ。

blog B用のテンプレを用意すれば、blog B内では問題ないのだが、blog Aではblog Bのアイテムもblog Aのテンプレで表示されるため、根本的な解決が必要だ。

そこで、アイテムごとにblogidとcatid変数を取得して、それに応じて適切なアイコンを自動選択するプラグインを自作することにした。これでアイコン問題は解決。

リンクが思い通りにならない問題にはかなり悩まされた。テンプレ変数標準のblogidは、カレントblogのIDを返すだけなので、blog Bのアイテムでもblog Aに表示しているときはblog AのIDを返してしまうのである。テンプレやスキンをいじくり回すが、埒が明かない。いっそ、アイテム本体に直接リンクを書き込むか? とも思ったのだが、スマートではない。

そのとき、あることに思い当たった。そのアイテムが属するblogの正確なIDを取得しているものがすでに存在するではないか。それが、アイコン問題を解決するために作ったプラグイン「NP_CategoryIcon」である。コイツにオプションを追加して、アイコンではなくblogidを返す機能も付けてみた。これでカテゴリのリンク問題も解決。

土日の2日間をほぼ食いつぶしたblog分離作業は、こうしてめでたく終わったのであった。

次は、参考文献か。こいつは読書日記とは別のblog(つまり第3のblog)にしたいな。データエントリのことを考えると欝になるが……。