«前の日記(2008-12-15) 最新 次の日記(2008-12-17)» 編集

ぱぱネット(仮)


2008-12-16 プルダウンメニュー拡張 [長年日記]

_ [開発] クマさんリクエストはあまりに厳しい

nicky.cgiにWebデータベースを組み込め!という ご無体な要望 は、能力的にも工数的にも却下することに致しました。

で、こんなものを作ったのですがいかがでしょうか・・・

_ 日記にタグを埋め込まないとダメだけどね

飛び先の日記に以下のようなタグを埋め込みます。

HTML書式: <%=sanc 'ryouri', '夏野菜のラタトゥエ'%>

俺とエイザはWikiスタイルなのでこうなる。

Wiki書式: {{sanc 'ryouri', '夏野菜のラタトゥエ'}}

ここで第一引数はタグ名です。必ず英字小文字にしてください。また、このタグは 全員の日記で共用 されます。ここが、従来のtDiaryのカテゴリ管理と異なるところですな。

sancタグは、飛び先のHTML中のジャンプ先にもなります。1日の日記が複数パラグラフに分かれている場合は、ふさわしいパラグラフの先頭にsancタグを打つことによって、読者はジャンプした後でスクロールしなくても良くなるというわけ。

じゃあ1日の日記中に、同一カテゴリのsancタグが複数箇所ある場合・・・例えば 1日に食べた駅弁が5個ある 場合はどうするか? その場合は、タグ名に加えて適当な連番をつけてください。タグ(カテゴリ)が'ryouri'である場合は、'ryouri01'とかにしてください。'ryouri', 'ryouri01', 'ryouri12345'全て1つの'ryouri'プルダウンメニューにまとまります。

sancタグの第二引数は説明ワードです。プルダウンメニューに出る文章そのものなので簡潔に短く説明を書いてください。あと空白やタブ、カンマ、ダブルクォート、シングルクォート等の半角記号を使わないでください。但し全角はOKのはずです。ダメ文字があったら報告してくれれば対処するかもしれません。

_ DB更新タイミング

結局、組み込みデータベースが用意できなかったので、tDiaryの更新と同期して自動的にプルダウンメニューが 更新されたりはしません。現状は早朝の6時ごろ に日記全体をサーチしてタグを取り出します。要するに1日は待ってくれ、ということです。

_ [開発] プルダウンのタグの書き方

DBが無事更新されたら、日記本文に以下のようなタグを書いてください。

HTML書式: <%=sancpulldown 'ryouri', '▼三十路男の寂しい自炊記録'%>

Wikiスタイルだとこうなる。

Wiki書式: {{sancpulldown 'ryouri', '▼三十路男の寂しい自炊記録'}}

第一引数はタグ名(ここに数字付きを書かないでください)。第二引数はデフォルトの文章です。すると、JavaScriptプルダウンに展開されます。

sancpulldownタグは日記本文中であればどこでも書けます。またタグの管理さえきちんとやっていれば、日記を数枚経由することで疑似的な階層化もできるということです。

例えば、2009年1月1日の日記には

{{sancpulldown 'area', '地域⇒'}}

と書いて、2009年1月2日の日記には、

{{sanc 'area', '関東⇒'}}
{{sancpulldown 'kantourosen', '路線⇒'}}

と書いて、2009年1月3日の日記には、

{{sanc 'area', '上越⇒'}}
{{sancpulldown 'zyoueturosen', '路線⇒'}}

とか書いておくわけです。すると1/1の日記には「関東⇒」「上越⇒」のプルダウンが現れ、選択すると1/2,1/3のいずれかへ飛びます。いずれのページも単なる日記ですから、補足事項はいくらでも書けるでしょう。

続いて、2/1(説明上2月にします)に今度は'kantorosen'タグで、

{{sanc 'kantourosen', '京浜東北線'}}
{{sancpulldown 'keihineki', '▽駅'}}

と書けば擬似的な階層化が実現できるというわけ。なんなら利用者の利便性を考えて、戻るためにsancpulldown 'area'を各ページに追加してもよいでしょう。ここらへんはUIの設計次第。

もうここまで書けばわかると思いますが、3/1「横浜駅」の日付の日記(今度こそ普通の弁当紹介のある日記ページでしょう)は、

{{sanc 'keihineki', '横浜駅'}}
{{sanc 'toukaidoueki', '横浜駅'}}
{{sanc 'keikyuueki', '横浜駅'}}

となるわけです。つまり複数路線のプルダウンから飛ぶ場合は、タグ名ごとに飛び先を用意してあげないといけません。ま、面倒だけどそこはコピペで。

_ [開発] nicky.cgi

原理的にはディレクトリサーチすることで同じことができるはず・・・・ですが、問題はプルダウンを貼る方にあります。以前書いたように、nicky.cgiには本文に対するプラグイン拡張という概念自体がないので、Perlでゴリゴリ書き込まないといけなくなります。 ゴリゴリ実装しました。 まだ本サーバにはコピーしてませんが。タグは以下の形式になります。

nicky書式: <!--sanc 'ryouri', '夏野菜のラタトゥエ'-->
nicky書式: <!--sancpulldown 'ryouri', '▼三十路男の寂しい自炊記録'-->

tDiaryと違って半角空白等に寛容ではないので書くときは注意。あとクマさんは昔のSPAM対策でhogehogeにしてしまった部分とか どうしますか?どうせならnicky.cgiを最新にしてもらってから更新したいのですが.... なんせ手作業ですので!!

_ 作りながら思ったけど・・・

なんかゲームブックっぽい なと。今は亡き(勝手に殺すな)ハヤカワの 失われた体とか思い出しながら実装していました。

正直、クマさんがRDBMS管理とSQL文法とテーブル設計を学ぶ気があるのなら、MySQLとphpmysqladminをそのまま開放したほうが良かったと思う。でも、テーブル設計をしなくても徐々に作れるというところが良いかもしれません。

本日のツッコミ(全2件) [ツッコミを入れる]
_ クマ三郎 (2008-12-17 07:47)

いつもお世話になります。<br>もうこの際tdiaryに乗り換えようかと思っております。<br>ともりん先生はどう動く?

_ (2008-12-18 10:08)

以前tDiaryを試したとき、気になった部分は具体的にどこなんだい?


2001|04|
2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|05|10|

[BANNER]
このサーバーをもう12年も維持しているかと思うとめまいがしますよ。
ツッコミ機能は、ハンドル名が完全日本語じゃないと登録できません。
また、本文にURLが含まれていても登録できません。
いずれもSPAM対策です。
[Panda Papanda]
2008年
12月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

[Papanda]  [Kuma]  [Tomorin]  [Iron]  [Eiza]  [Dokkin]  [Honya]  [Zyou]  [Tsuyo]  [Bike]  [KoeBBS]  [Chukei]  [portal]  [tvmatome]  [KaoPaku] 

訪問者数:(+2560143)