PageSpinner データベースパブリッシング キット


PageSpinner と AppleScript を組み合わせることにより、あなたはデータベースからのデータをウェブページで公開できます。 このデータベースパブリッシングキットはオンライン・データベースへの接続をサポートしません、ページは一度作られるとスタティック(不変)です。これによりデータを Mac でメンテナンスしながら、Unix ベースのサーバーでコンテンツを公開することが可能になります。

ここでは、含まれているサンプルを使ったり修正してあなたが自分のデータベースをどのようにして公開することが出来るかを説明します。

データベースからデータを公開するには以下の項目を使用します:

これらの項目について以下により詳しく説明します。 このキットには PageSpinner のテンプレート、サンプルスクリプト、FileMaker Pro, HyperCard, 4D Server 用のデータベースが含まれています。この見本の例は PageSpinner Documentation フォルダの "Database Publishing" という名前のフォルダにあります。

このスクリプトは"現姿"のままで供給されるものであり、Optima Systemは AppleScript の使用と学習に関して援助やサポートを供給するリソースを持っていません。AppleScript についての詳細は AppleScript Documentation フォルダにある AppleScript Documentationをご覧ください。

データベースからのコンテンツを含むウェブページを制作するには以下の手順を使用します:

  1. データベースアプリケーションであなたのデータベースを開く
  2. PageSpinner を起動する
  3. Script Editor で AppleScript を起動する
  4. (必要に応じて) Script Editor でテンプレートへのパスを指定する
  5. Check ボタンをクリックして AppleScript を実行する
  6. スクリプトは List テンプレートを基にして PageSpinner で新しいページを作成します
  7. データベース中にあるそれぞれのレコードについて:
    • スクリプトはデータベースの指定されたフィールドからデータを取り出す
    • スクリプトは PageSpinner の Record テンプレートファイルでプレースフォルダにデータを挿入する
    • レコードコンテンツが入れられたテンプレートからの HTML テキストは List テンプレートから作られたページの末尾に挿入される
    • スクリプトはレコードのリンクまたはアンカー名を記憶する
  8. スクリプトは List テンプレートから作られた PageSpinner ページに、すべてのレコードにリンクするリストで構成された目次を挿入する


Script Editor で作成/編集された AppleScript

Script EditorAppleScripts は通常アプリケーション Script Editor(スクリプト編集プログラム) を使って書かれます。 このアプリケーションはシステムソフトウェアに含まれています。 英語版以外のシステムでは別の名前が付いています。

PageSpinner には、データベースをどのようにして公開するかを説明する3つのスクリプトが含まれています。あなたのシステムのローカライズされた AppleScript スクリプト表現形式によっては、スクリプトをリコンパイルして、キーワードを変更する必要があるかも知れません。

これらのスクリプトは製品についての情報のレコードを含む見本のデータベース(実際にはMacintosh コンピュータ)で働きます。

単一のリスト例はデフォルトで HyperCard Player と "Products HyperCard" という名前のファイルにあるデータを使うようになっています。マルチページとテーブルの例では、FileMaker Pro と "Products FileMaker Pro" という名前のファイルにあるデータを使うようになっています。

Script IconDatabase List Demo Script は、全てのレコードを含む単一ファイルを作成します。

Script IconDatabase Table Demo Scriptは、全てのレコードを含むテーブル付のファイルを作成します。

Script IconDatabase Multi-Page Demo Script は、 目次ファイルと各レコードの単一ページを作成し、レコードの各ページには、「次のページ」と「前のページ」へのリンクを含んでいます。

ページのカラーとレイアウトは PageSpinner テンプレートファイルを修正することにより容易に変更できます。

スクリプトは3つのセクションに別れます:

1. プリファレンスセクションには、変数の定義が含まれます:

あなたのシステム上でスクリプトを走らせる前に、スクリプトがPageSpinner テンプレートファイルを発見できるように、それらへのパスを変更する必要があります。

同様に、他のフィールド名を持つ別のデータベース/テーブルを使うときは、スクリプトのこのセクションで内容を編集する必要があるでしょう。

2. レコードの処理セクション

AppleScript の2番目のセクションでは、データベースから値を得て、 PageSpinner で設計されたレコードテンプレートに挿入するよう PageSpinner にこれらの値を伝えます。レコードテンプレートには、フィールドからのコンテンツが何処に置かれるかを示すプレースホルダーを含んでいます。 スクリプトはそれぞれのフィールドを繰返しループで処理する以下のコマンドを使用します:

repeat with fieldNameIndex in theFields 
  -- For every field specified above
			
  tell DB_Access
    set theData to GetField(fieldNameIndex, currentRec) as text
  end tell
			
  tell application "PageSpinner"
    set search string to "$" & fieldNameIndex & "$"
    set replace string to theData
    replace all
  end tell
			
end repeat -- For every field

このスクリプトのパートでは、どのデータベースアプリケーションを使用しているか、どうやってレコードにアクセスするかを知る必要がありません。関数を実行するパート DB_AccessGetField を呼んでいるだけです。このやり方により、異なったデータベースアプリケーションに同じスクリプトを使ってアクセスすることが可能になります。

すべてのレコードが処理された後、スクリプトは処理されたすべてのレコードへのリンクをリストにして挿入します。

あなたがこのスクリプトのセクションにあるコンテンツを編集しなければならないのは、データベースのレコードを違ったやり方で処理する必要がある場合だけでしょう。

3. DB_Access セクション

スクリプトの3番目のセクションはデータベースアプリケーションとのコミュニケーションに使用します。 このパートはスクリプトの最後で DB_Accessというスクリプトモジュールのフォームにあります。このモジュールは、以下の2つの関数でアクセスします:

GetNumRecords()
GetField(fieldName, recordIndex)

DB_Access スクリプトはこのサンプルスクリプトの最後にあり、デフォルトで FileMaker Pro または HyperCard Player を使用するよう設定されています。

スクリプトコードをこのモジュールの内側に置くことにより、データベースアプリケーション固有インプリメンテーションの詳細を隠すことが可能になります。そしてサポートされているどのデータベースでもアクセスできる汎用的なスクリプトを持つのが容易になります。

現時点の DB_Access モジュールのインプリメンテーションではリレーショナルデータベースをサポートしていません。つまり、データベースアプリケーションが一対一対応または多対一対応の関係を自動的に扱うとしても、このスクリプトは単一テーブルにあるフィールドにアクセスするだけです。

DB_Access スクリプトモジュールには次の DB アプリケーションのコマンドを含んでいます:

あなたが別のデータベースアプリケーションに切り換えたいと思ったら、スクリプトの中にある DB_Access セクションの内容を変更する必要があります。使用したいデータベースのコマンドを含んでいる行の前にあるコメント"--" を取り除きます。そして、現在アクティブな2行のコマンド前に以下のようにコメントを付けます。つまり:

tell application "HyperCard Player"
  set nRecs to (get count of card)

これは、デフォルトで使われている単一リストスクリプトです。あなたは、 GetNumRecords() 関数の中と GetField()関数の中にある両方の行を変更しなければなりません。


データベース・アプリケーションで作成/メンテナンスされているデータベース

PageSpinner には、FileMaker Pro 3.0 以降, HyperCard 2.3.5 以降, 4D Server (4D AppleScript使用) からのコンテンツにアクセスするためのモジュラースクリプトが含まれています。 これらのアプリケーション用に見本のデータベースが含まれています。 サンプルの AppleScript を使うときは、お望みのアプリケーションとこの見本として支給されたデータベースを使ってください。

別のデータベースアプリケーションを使おうとする場合は、スクリプトのDB_Access セクションでスクリプトの内容を変更する必要があります。また、スクリプトの定義セクションの内容を編集してデータベースとフィールドが公開されるものと一致するようにしなければなりません。


PageSpinnerで作成/編集された2つのテンプレートファイル

最終的に、あなたはテンプレートに使用される2つの PageSpinner ファイルを作る必要があります;ひとつのファイルはレコードからの各種フィールドを提示するのに使用される HTML を含んでいます、もうひとつはレコードのインデックスを含んだファイルとして使用されます。

あなたのブラウザを使って、含まれている見本のファイルを List Example で眺めることができます:

PageSpinner Stationery Icon Record_Stationery.html
PageSpinner Stationery Icon List_Stationery.html

しかしこれらのファイルにあるすべての情報を見るには、PageSpinner を使ってそれらのファイルを開きます

Record Template には、データベースから挿入されるフィールド毎に テキスト$fieldname$ とその名前 fieldname が含まれています。 $...$ はプレースホルダとしてデータベースからの実際の値に置き換えられます。上記の AppleScript 例を参照ください。

List Template には2つの特別なプレースホルダを含んでいます。ひとつはリンクのリストが置かれる場所であり、もうひとつはと実際のレコードが挿入される場所を指定します。

ノート: 大変重要な事ですが、これらのファイルは ひな形 ファイルとして保存されなければなりません。そうしない場合はプレースホルダはデータベースからのデータによって上書きされてしまいます。

チップス:Finder でファイルを選択し、ファイル : 情報を見る メニュー項目を使って情報ウィンドウにアクセスします。ウィンドウの右下にひな形チェックボックスがあります。そのファイルで作業している間、情報ウィンドウは開けたままにしておくことができます。

Last updated: 97.7.10
© 1995-1997 Optima System.

Japanese translation: Shuji HOSOKAWA (MuON)