GENERATORとは、建築マップサイト内の登録データを検索するCGIスクリプトです。GENERATORは、どのサイトでも設置することが出来ますので大いに活用してください。GENERATOR.CGIのソースを改変しても構いません。
GENERATORの設置方法ページには、以下のサブコンテンツがあります。
入力したキーワードが建築マップに登録されているものであれば、その検索結果を表示します。query form
を設置するには以下のソースをHTML文書に追記してください。
<form action="http://www.mediawars.ne.jp/~m921320/a_map/generator/generator.cgi?quot; method="get"> <p> <input type="text" accesskey="w" tabindex="1" name="word" size="25" value=" "> <input type="radio" accesskey="o" tabindex="2" value="or" checked name="searchmethod">OR /<input type="radio" accesskey="a" tabindex="3" value="and" name="searchmethod">AND <input type="submit" accesskey="s" tabindex="4" name="search" value="Search"></p> </form>
accesskey="アルファベット"
やtabindex="数字"
は、キーボード操作だけでもカーソルを移動させることが出来る機能です(省略してもGENEは動きます)。ソースをHTML文書に記載すると、以下のようなクエリーフォームを設置したことになります。
あたかも画像を貼り付けるかのようにページ内に別ページを貼り付けるインラインフレームという要素を使います。今からこの要素を使ってGENERATORの検索結果をページ内に貼り付ける方法を説明します。iframe
要素以外にフレームを使用する方法もあります。
iframe
要素は、IE3.0以降かネットスケープ6以降のブラウザに対応します。
建築マップ内に登録されている安藤忠雄氏の検索結果を表示しています。そのソースは以下のようになります。
<iframe title="GENERATOR" name="GENERATOR"
src="http://www.mediawars.ne.jp/~m921320/a_map/generator/generator.cgi?
field=Architect&word=ANDO+Tadao&searchmethod=and&style=2" marginwidth="1" marginheight="1" height="500"width="180"></iframe>
http://www.mediawars.ne.jp/~m921320/generator/generator.cgi
までは、いつも書かなくてはならないURL。このあとに&
で区切ってオプションをつけてゆきます。
searchmethod=and searchmethod=or
AND検索かOR検索かを指定します。
今回はAND検索を指定しました。OR検索ならsearchmethod=or
です。このオプションを入れないと、OR検索の結果を表示します。このあとで説明するword=***
にword=HARA+Hiroshi
と書くと、原広司さんの作品群に加えて「Hiroshima」までもが表示してしまいます。ANDとORで出てくる結果は、ずいぶん変わるときがあります。
フィールドオプション一覧 | 説明 |
---|---|
field=DocumentNo | 4桁の数字 |
field=ArchitectureHead | 建物名のヘッダー |
field=Architecture | アルファベットでの建物名 |
field=ArchitectureJp | 日本語の建物名 |
field=ArchitectureJpKana | 日本語読みしたカタカナ表記の建物名 |
field=URL | ページのURL |
field=Photograph | 画像のURL |
field=Country | 外国語表記の国名 |
field=CountryJp | 日本語表記の国名 |
field=Location | 外国語表記の都市・地域名 |
field=LocationJp | 日本語表記の都市・地域名 |
field=ArchitectHead | 設計者のヘッダー |
field=Architect | 外国語表記の設計者 |
field=ArchitectJp | 日本語表記の設計者 |
field=ArchitectureType | 外国語表記の用途・種類 |
field=ArchitectureTypeJp | 日本語表記の用途・種類 |
field=Author | ページ作成者 |
field=PreparationDate | YYYYMMDD形式の更新日 |
検索する列を指定します。field=Country
field=Location
field=LocationJp
field=Architect
あたりが便利かと思います。特に指定しない場合はfield=**
そのものを削除しても構いません。ここでフィールドを指定するとword=**
に書いたキーワードに対して絞り込んだ検索結果を得ることが出来ます。
例えば、フィールド名を指定しないでword=フランス
と指定すると、全DATAから検索するのでフランス国内だけでなくどこかの国の「フランス大使館」までヒットします。
そんなときにはgenerator.cgi?searchmethod=and&fieid=country&word=France
と記述すると、確実にフランス国内だけの建物を表示します。
word=***
***
に検索したいキーワードを書いておきます。日本語でも構いません。前述したsearchmethod=and
とfield=**
を記述しなくとも結果は表示します。一番手っ取り早い方法は、クエリーフォームで検索した結果のURLを貼り付けることです。
style=1 style=2
背景色を指定します。値を1
にすると黒色の背景、2
にすると白色の背景になります。
scrolling="no" scrolling="yes"
スクロールバーの表示の有無を選択します。
必要に応じてスクロールバーが表示されるようにする場合は、このオプションごと削除します。
marginwidth="1" marginheight="1"
外枠から表示するまでの余白(マージン)を指定します。
width="***" height="***"
挿入するiframe
要素の大きさを指定します。横×縦=width
×height
。単位は書きませんがピクセル単位です。GENERATORの検索結果は横幅200ピクセルあればじゅうぶんです。ブラウザのウィンドウサイズに収まれば良いのですから、縦幅500ピクセルあればじゅうぶんです。
width="200" height="500"
と記述すれば200×500ピクセルのインラインフレームを挿入することになります。
iframe
要素に対応してないブラウザでは、フレームページを表示するべき部分が白紙になります。そんな場合を考慮して代替テキストを表示させます。その記述例を紹介します。
<a href="http://www.mediawars.ne.jp/~m921320/a_map/generator/generator.cgi
searchmethod=and&field=architect&word=ANDO+Tadao&style=2">GENERATORで関連ページを表示します。</a>
searchmethod=and&field=architect&word=ANDO+Tadao&style=2
部分は、その都度変更します。
<iframe title="GENERATOR" name="GENERATOR" src="http://www.mediawars.ne.jp/~m921320/a_map/generator/generator.cgi
searchmethod=and &field=location&word=okinawa &style=2" marginwidth="1" marginheight="1" height="500" width="200" scrolling="no"> <a href="http://www.mediawars.ne.jp/~m921320/a_map/generator/generator.cgi
searchmethod=and&field=location&word=okinawa&style=2">GENERATORで関連ページを表示します。</a> </iframe>
<iframe title="GENERATOR" name="GENERATOR" src="http://www.mediawars.ne.jp/~m921320/a_map/generator/generator.cgi
searchmethod=and &word=tokyo &style=1" height="500" width="400" scrolling="yes" marginwidth="1" marginheight="1"> <a href="http://www.mediawars.ne.jp/~m921320/a_map/generator/generator.cgi
searchmethod=and&field=location&word=tokyo&style=1">GENERATORで関連ページを表示します。</a> </iframe>
GENERATOR検索をするクエリーフォームと検索結果を表示するインラインフレームを連携させて、ページを切り替えることなく検索ををすることができます。
name="generator"
としました。target="generator"
です。検索結果を表示するページが、フレームに移動するようにターゲット指定すれば連携します。これで、このページ内にあるクエリーフォームでの検索結果は、そのすぐ下のインラインフレームへ表示するように設定できました。
ためしに、以下のクエリーフォームで何か検索してみてください。検索結果がiframe要素内に表示されたら正しく動作したことになります。
GENERATORの設置を説明するために、通常Webページ上では表示させないHTML文書をpre要素で表示させています。
ソース
Web作成ソフトをご利用のかたは、公開したソースをコピーしてHTML文書に貼り付けると、実際にコピーしたい文字列と異なる表示をすることがあります。その表示は以下のようになったことでしょう。
<iframe title="GENERATOR" name="GENERATOR" src="http://www.mediawars.ne.jp/~m921320/a_map/generator/generator.cgi searchmethod=and &field=architect &word=ANDO+Tadao &style=2" marginwidth="1" marginheight="1" height="500" width="180"> <a href="http://www.mediawars.ne.jp/~m921320/a_map/generator/generator.cgi searchmethod=and &field=architect &word=ANDO+Tadao &style=2"> GENERATORで関連ページを表示します。</a> </iframe>
そんなときには一旦「メモ帳」などのテキストエディタにて貼り付けてから、それをもう一度コピーしてWeb作成ソフトのHTML文書内に貼り付けてください。HTML文書を最初からテキストエディタで編集しているかたは、このような問題は発生しませんが実態参照には注意してください。
ソースはWebページでの表示の都合上、強制改行している箇所がありますが、改行せずに続けて書いても構いません。
URLとしては使える文字でも、WWWブラウザ上では使ってはいけない場合があります。
例えばWebページ上で「<hr>
は水平線です」と書きたい場合に、HTML文書では「<hr>
は水平線です」と書かないと、本当に水平線を表示してしまいます。
今、使用した<
や>
やGENERATORで使用する&
などは、実態参照といいます。ページ上で使えない文字も実態参照に書き換えておけば<
や>
&
も問題なく表示させることが出来ます。
GENERATORで「安藤忠雄」を検索した結果のURLは
http://www.mediawars.ne.jp/~m921320/a_map/generator/generator.cgisearchmethod=and
&field=architect
&word=ANDO+Tadao
&style=2
となりますが、そのことをWebページ上で伝えるための記述や、実際にインラインフレームで表示させるために書き込むソースには&
を&
と書き換えておかないと誤作動を起こす可能性があります。今のところ、これが原因で誤作動を起こしたという報告は聞いておりませんが、気になるかたはソース内で&
と表記する部分を&
に書き換えてください。