Lesson 9. Elvis, Up Close and Personal 人々は個人的な Elvis との繋がりを求めて君のサイトにやってくる。君はサイト訪問者のニーズと好みに応じてサイトを修正することでこれを提供することが可能だ。新しい Elvis 目撃情報ページにサイト訪問者への心配りという機能を付け加えよう。この方法で、サイト訪問者がきたときに、自分が最後にきてからの新しい情報がどれなのかが即座に分かるだろう。 1. sighthings ドキュメントをクリックし、これを編集。 2. View タブをクリックして見てみる;。 すべての目撃情報に New マークがついている。 1. このページをリロードする。 今度は New マークのついている目撃情報はないはずだ。これは君がすでにこれらを見たことがあるからだ。 1. sightingsFolder フォルダをクリックしてその中にはいる。 2. product add list から DTML Method を選択。 3. id に Seattle とタイプ。タイトルはオプションでこの場合はどうしても必要ってわけじゃない。title フィールドはブランクのままでいい。 4. Add and Edit ボタンをクリック。 5. メソッドのコンテンツを以下のように変更する。

6/1/2000 -- Seattle

Elvis spotted spare changing on Broadway. He denied being the King.

6. Save Changes ボタンをクリック。 さて新しい目撃情報が作成された。目撃情報ページで New マークがついているかどうか見てみよう。 1. lesson9 フォルダの中の sightings ドキュメントをクリック。 2. View タブをクリック。 我々の(作成した)新しい目撃情報に New マークがついていることをよく確認してほしい。 これはどうやっているんだろう? Http クッキーを利用しているんだ。目撃情報ページを訪れたときにクッキーがセットされ、現在時刻が記録される。それで目撃情報ページに戻ったときのそれぞれの時刻がクッキーのものより新しければ New マークがつけられる。 (正しくは目撃情報オブジェクトの生成されたそれぞれの時刻とクッキーの時間が比較されるはずなんだけど、この文はその辺の解説を端折っているような感じ。いいのか?) 目撃情報ページがどうやってこれを実現しているのか、DTML を見てみよう。 1. sightings ドキュメントをクリックし、その内容を見る。 ドキュメントはこのコードで持ってクッキーをセットしている。 ドキュメントはそれぞれの目撃情報を表示するときに一つ一つ lastVisited クッキーより新しいかどうかをチェックしている。 まとめ Web ページのパーソナライズにクッキーが利用できる。Zope ドキュメントはその見た目を動的にコントロールすることが可能なのだ。 - RESPONSE.setCookie メソッドを使ってクッキーをセットすることができる。 - タグは状態の確認をすることができる。 - DateTime 関数は現在時刻を取得できる。 - bobobase_modification_time メソッドは最後にオブジェクトを変更した時刻を返す。 次のレッスンでは mail フィードバックフォームの作り方を学ぼう。