============================================================ AmigoDatabase 取り扱い説明書 ============================================================ ◎はじめに ------------------------------------------------------------ この度は、AmigoDatabaseをダウンロード頂き誠にありがとうございます。 このスクリプトがあなたのサイトの発展に貢献できる事を願っております。 今後共、AmigoDatabaseならびにCGI DE AMIGO!!をよろしくお願い致します。 ◎以前のバージョンより移行される方へ ------------------------------------------------------------ 以前のバージョンからの変更点及び 変更ファイルをver.txtにてご確認頂けます。 こちらをご覧頂きますと最小限の作業で移行できます。 途中のバージョンを飛ばして移行されたい場合は 現在ご利用のバージョンから最新(利用する)バージョンまでの 全てのバージョンでの変更ファイルをリストアップし それらのファイルを最新(利用する)バージョンのものに差し替えて下さい。 ◎AmigoDatabaseについて ------------------------------------------------------------ AmigoDatabaseは簡易リンク集から 本格的な商品/不動産のデータベース等 様々な用途に使用出来る汎用データベースです。 CGIの知識が無くても自分専用のデータベースが構築できます。 また、自由度の高いスクリプトですので この説明書では利用法の一部しか紹介できません。 こういう風に使用したいが方法が分からない等という場合は サポート掲示板へご投稿下さい。 http://www.cgi-amigo.com/support.html ◎ユーザー登録機能について ------------------------------------------------------------ AmigoDatabaseはユーザー登録制で 通常のデータの他にユーザー情報も別ファイルに保存します。 ユーザーは「検索のみ」と「データ登録可」のいずれかのタイプとなり 設定により登録ユーザーでなくても検索は可能となりますが データ登録するには必ずユーザー登録が必要で ユーザータイプが「データ登録可」である必要があります。 なお、管理者もデータ登録をする為にはユーザー登録が必要です。 ユーザー登録機能が必要でない場合には ユーザー登録をデータ登録として見立てて データ登録を利用しないという形でご利用下さい。 ただし、この場合カウント機能等一部の機能がご利用頂けません。 ◎設置手順1(任意) ------------------------------------------------------------ ディレクトリ(フォルダ)名をデフォルトから変更します。 変更出来るのはdata,data/user,image,lockディレクトリです。 dataディレクトリ名は変更する事をお勧めします。 (data/dataディレクトリは変更しないで下さい) ※その他のディレクトリ名/ファイル名(database.cgi除く)は変更しないで下さい。 ◎設置手順2 ------------------------------------------------------------ database.cgiをテキストエディタで開き 1行目のPerlのパスを使用サーバーに合わせて変更します。 ※ほぼ#!/usr/bin/perlか#!/usr/local/bin/perlですが 分からない場合はサーバー管理者へお問い合わせ下さい。 次に、db-setup.cgiを開き基本的な設定を行います。 ■基本ディレクトリ(http://から) database.cgiを設置するディレクトリです。 ※http://から記述し最後に/は付けません。 また設置するディレクトリまでですので 最後にdatabase.cgiは付けません。 [設定例] 設置URL:http://www.cgi-amigo.com/cgi-bin/database/database.cgi 設定値:http://www.cgi-amigo.com/cgi-bin/database ■データディレクトリ〜ファイルアップロードディレクトリ 各ディレクトリへのパスです。 ディレクトリ名を変更した場合等に設定を変更して下さい。 ※最後に/は付けません。 ■ロックタイプ(1=flock式/2=標準/3=symlink式/4=mkdir式/5=open式) ファイルロックのタイプをご利用の環境等に合わせて選択します。 通常は、標準タイプをご利用頂く事をお勧め致します。 ※database.cgi?cmd=ltとしてアクセスすると ロックテストを行い利用可能なロックタイプを表示します。 ■メインスクリプト名 database.cgiのファイル名を変更した場合のみ変更が必要です。 ■バックアップファイル名 バックアップファイルの名称です。 そのままでも構いませんがバックアップファイルを 他者にダウンロードされる恐れがあるのでなるべく変更して下さい。 ■設置サイトの最短URL 設置したサイトとして認識できる最短のURLです。 他のサイトからCGIを不正使用されるのを防止する為の設定です。 http://www.cgi-amigo.com/ と設定した場合 http://www.cgi-amigo.com/****.html等の サイト内から呼び出されないとエラーとなるページがあります。 URLを''で囲んで複数設定する場合は,で区切ります。 ※未設定としたい場合は@MyUrl=();として下さい。 (例1)@MyUrl=('http://www.aaaaa.com/'); (例2)@MyUrl=( 'http://www.aaaaa.com/', 'http://www.bbbbb.com/', 'http://www.ccccc.com/' ); ■リンク制限(ON=1/OFF=0) 他サイトからデータ登録ページ等へのリンクを制限する機能です。 ONにすると「サイトの最短URL」で設定した サイト内からのアクセスでないとエラーとなります。 ※ブックマークやURLの直接入力によるアクセスも不可となります。 ■保存パスワードの暗号化(ON=1/OFF=0) ファイルに保存するパスワードを暗号化する機能です。 ■カウントアップタイプ(0=リンク式/1=投票式) カウントアップのタイプを選択します。 0は通常のリンク式で1は登録ユーザー限定の投票式となります。 ■誤2重送信防止機能(ON=1/OFF=0) 誤2重送信を防止する機能です。 通常はONのまま利用される事をお勧め致しますが ご利用環境によっては正常に動作しない場合がありますので その場合はOFFにしてご利用下さい。 ■日本語処理設定(いずれか使用しない方の行頭に#を付加) 設置サーバーにてJcode.pmが使用可能な場合には 設定を変更してご利用される事をお勧め致します。 ■ジャンプタイプ(0=Location/1=META) 設置サーバーがLocation使用不可の場合は1にしてご利用下さい。 ※通常は0のままで問題ありません。 ■携帯からの利用の可能性(有り=1/無し=0) 携帯からデータベースを利用される可能性が 無い場合には「無し」の設定でご利用下さい。 ※AmigoDatabaseは携帯からの利用に完全対応は致しておりませんが 表示デザインを調整する事で携帯からの検索利用等は可能となります。 ◎設置手順3 ------------------------------------------------------------ ファイルをサーバーへ転送します。 画像ファイルはバイナリ、それ以外はテキストモードで転送します。 転送したらパーミッションを以下のように変更します。 ※()内は主な設定値です。 ※設定すべきパーミッションが分からない場合 左(700〜755なら700)から順に試してみて下さい。 [700]〜[755] (700,705,755) data/config data/data data/mail data/user lib lib/template lib/template/complete lib/template/result lib/template/data-part lib/template/data-part/data lib/template/data-part/user database.cgi [701]〜[755] (701,705,755) image js [700]〜[777] (700,705,755,707,777) data access lock file file/tmp [600]〜[666] (600,606,666) *****.dat access.log data/config/*****.cgi data/data/*****.cgi data/user/*****.cgi lock/*****.loc [604]〜[666] (604,644,606,666) js/*****.js [604]〜[644] (604,644) *****.gif lib/*****.pl lib/*****.cgi [600]〜[644] (600,604,644) *****.html(テンプレートファイル) lock/*****.lk2 ◎設置手順4 ------------------------------------------------------------ 基本的な環境設定を行います。 管理者認証ページ(database.cgi?cmd=ac)へアクセスします。 初期状態ではパスワードは未設定の為 何も入力せず認証ボタンを押して入室します。 環境設定を選択します。 以下のリストに無いもの(データ項目設定等)は後の手順にてご説明致します。 また、いくつかの項目はデータ項目等が確定していない段階では 設定できないものもあるかと思われますので 必ずしもこの手順の段階で全てを設定する必要はございません。 ■パスワード 必ず設定して下さい。 ■ホームURL 戻り先のURL(トップページ等)です。 ■検索フォームURL 検索フォームのあるページのURLです。 ■データベース名称 データベースの名称です。 各ページのタイトル表示等に反映されます。 ■登録名称 ユーザー登録、データ登録の それぞれの登録名称を設定します。 各ページの表示に反映されます。 (ユーザー:会員,利用者、データ:商品,物件等) ■アクセスログ アクセスログを何件・何ファイルまで保存するかを設定します。 ※アクセスログを記録しない場合は0件と設定して下さい。 ■最低投票間隔 カウント機能(投票式)において 同一ユーザーが同一データに再投票を出来るようになるまでの時間です。 ■カウントリセット間隔 カウント機能のカウント数を何時間毎にリセットするかを設定します。 ※リセットしない場合は0として下さい。 ■新着期間 データの登録から何時間まで新着期間として NEWマーク表示対象とするかを設定します。 ■更新期間 データの最終更新から何時間までを更新期間として UPマーク表示対象とするかを設定します。 ■データ(ユーザ)登録時更新日時記録 チェックするとデータ及びユーザー登録の際に 最終更新日時にも現在日時を記録するようになります。 ■クッキー設定 クッキー名称、保存期間を設定します。 ■制限設定 データ登録等のファイルへの書きこみを Proxy経由や特定ドメインのみ制限したい場合は チェックボックスをチェックします。 制限解除機能とは特定のドメインの制限を解除する機能で Proxy制限や特定ドメイン制限で引っ掛かっても 制限解除ドメインに設定されていれば制限が解除されます。 ■制限ドメイン/制限解除ドメイン 制限したい/解除したいドメインをホスト名やIPアドレスで設定します。 複数の場合「,」で区切って設定します。 ※IPアドレスで123.と設定すると123.**.**.**のパターンを制限できます。 ※IPアドレスで設定する場合必ず.を付けて下さい(×123 ○123.) ■データ関連制限設定 複数データ登録制限は同一ユーザーの複数データ登録を制限します。 ユーザーのデータ登録制限はユーザーのデータ登録を一切制限します。 (登録は管理者のみ可能となります) ■管理者審査 管理者の審査を必要とするものをチェックします。 ■閉じるタグ 許可しているタグの中で 閉じるタイプのタグ(A,B,FONT等)を設定します。 複数の場合「,」で区切って設定します。 ■使用可能タグ属性 使用出来るタグの属性をタグ毎に設定します。 A==href|targetのようにタグ名==属性(複数は|で区切る) の形式で複数の場合「,」で区切って設定します。 ※タグ名は必ず大文字にします。 ■アップロード可能ファイル形式 アップロード可能なファイル形式をデータ種類毎に設定します。 データ種類==拡張子 の形式で設定し1つのデータ種類で複数許可する場合は「&」で区切ります。 データ種類==拡張子&拡張子 各データ種類は「,」で区切ります。 (例) DFile==txt,File==gif&jpg ※この設定は[ユ][デ]共通となります。 ■アップロード一時ファイル最大数 ファイルアップロードを利用した登録時にプレビューを行った場合 アップロードファイルは一時ファイルとして保存されますので この一時ファイルの最大数を設定します。 最大数を超えた場合には古いファイルから自動的に削除されます。 利用者の登録頻度が高い場合には最大数を多めに設定して下さい。 ※この設定は[ユ][デ]共通となります。 ■アップロードファイルサイズ制限 アップロードするファイルのサイズ制限をデータ種類毎に設定します。 データ種類==上限サイズ(KB) の形式で設定し各データ種類は「,」で区切ります。 (例) DFile==30,File==10 ※この設定は[ユ][デ]共通となります。 ■登録/更新日時表示形式 検索結果/詳細ページでの 登録/更新日時の表示形式を設定します。 以下のような形式で自由に形式を設定できます。 ※()内は表示例 {yyyy} 年-西暦(2005) {yy} 年-西暦下2桁(05) {y} 年-平成(17) {mmm} 月-英語表記(Aug) {mm} 月-2桁揃え(07) {m} 月-通常(7) {dd} 日-2桁揃え(05) {d} 日-通常(5) {ww} 曜日-日本語(金) {w} 曜日-英語(Fri) {HH} 午前午後-日本語(午後) {H} 午前午後-英語(PM) {hhhh} 時-24時間2桁揃え(16) {hhh} 時-24時間(16) {hh} 時-12時間2桁揃え(04) {h} 時-12時間(4) {nn} 分-2桁揃え(06) {n} 分-通常(6) {ss} 秒-2桁揃え(09) {s} 秒-通常(9) ■カウント後のジャンプ先 カウントアップ用リンクをクリックした後の ジャンプ先をデータ詳細ページにしたい場合はチェックして下さい。 ■検索条件未指定時 こちらをチェックした場合は 検索時に全く検索条件が指定されていない場合には 検索条件を指定するようにエラーが表示されます。 ■検索精度設定 高精度検索をONにすると 文字コードの誤認による誤った一致を軽減します。 (※検索フォームでの指定も必要となります) 英数字/カナの全半角を区別しないをONにすると 登録値とキーワードの全角半角の違いを 区別せずに一致するようになります。 ■検索結果が1件のみの場合 こちらをチェックした場合は 検索時に該当するデータが1件のみだった場合には 一覧画面を省略し詳細画面を表示するようになります。 ※テンプレートはdefault.htmlとなります。 ■検索結果表示件数 検索結果の表示件数のデフォルトと最大値を設定します。 ■自動リンクTarget 自動リンク機能で貼られたリンクのTarget属性を設定します。 ■カウントアップ制限設定 カウントアップを制限したいパターンの チェックボックスをチェックします。 ■チェックボックス/セレクトメニューの区切り文字 チェックボックス(セレクトメニュー)項目で 複数選択して登録した場合の検索結果表示時の区切り文字を設定 ■ユーザーデータからの検索 データファイルベース検索時に ユーザーファイル(user.cgi)のデータを 検索対象として指定できるようにする場合はチェックします。 ※通常ONのままで問題ありませんが ユーザーデータを検索条件として使用&検索結果で表示しない場合は OFFにしておいた方が検索速度が向上します。 ■sendmailのパス メール送信用のsendmailのパスです。 サーバーに合わせて設定を変更して下さい。 ■管理者メールアドレス 管理者のメールアドレスです。 ■CCメールアドレス 管理者以外へ同内容のメールを送信したい場合に設定します。 ◎データベースの構築 ------------------------------------------------------------ テンプレートファイルを編集/設定し データベースを構築していきます。(手順5〜) 編集したものを順次サーバーへ再転送します。 ◎設置手順5 ------------------------------------------------------------ ユーザー登録関連部を設定します。 まずユーザーの情報として保存するデータ種類を決めます。 例えば名前,住所,年齢,性別など必要なデータをリストアップします。 ※データ種類はいくつあっても構いません。 管理室から環境設定を選択します。 "全データ種類[ユ]"に先程リストアップしたデータ種類を設定します。 この際データ種類には半角英数字のみ使用可能となります。(-や_等も利用不可) 例えば名前というデータならName,住所ならAddressのようにします。 複数の場合「,」で区切ってデータ種類を設定します。 ※Pass,Mail,UserTypeは必ず必要なデータ種類です。 削除しないようにして下さい。 "全データ名称[ユ]"に"全データ種類[ユ]"に設定した データ種類の名称を設定します。 これは例えばユーザー登録時にNameという種類のデータの 入力が不正だった場合にエラー画面で Nameの入力が不正です。と表示しても登録する人には意味が分かりません。 その為Nameは名前のデータであると設定して 名前の入力が不正です。と表示する為のものです。 Name==名前のようにデータ種類==データ種類名称 の形式で複数の場合「,」で区切って設定します。 ※Pass,Mail,UserTypeは必ず必要なデータ種類です。 削除しないようにして下さい。 "入力必須項目[ユ]"に入力を必須とするデータ種類を設定します。 複数の場合「,」で区切って設定します。 ※Pass,Mail,UserTypeは削除しないようにして下さい。 "同一確認項目[ユ]"にユーザー登録時に 入力が同一である必要があるデータ種類2つを1組で設定します。 Pass==Pass2のようにデータ種類==データ種類 の形式で複数の場合「,」で区切って設定します。 "文字数制限項目[ユ]"にユーザー登録時に 入力文字数を制限するデータ種類を設定します。 Name==20のようにデータ種類==文字数(半角) の形式で複数の場合「,」で区切って設定します。 ※Pass==8は文字数は変えても削除しないようにして下さい。 "有効書式項目[ユ]","無効書式[ユ]"にユーザー登録時に 入力データの書式をチェックするデータ種類を設定します。 Pass==\wのようにデータ種類==正規表現 の形式で複数の場合「,」で区切って設定します。 ※正規表現については(◎正規表現について)を参照 "数値上限項目[ユ]","数値下限項目[ユ]"にユーザー登録時に 数値をチェックするデータ種類を設定します。 Age==100のようにデータ種類==数値 の形式で複数の場合「,」で区切って設定します。 "確認時自動リンク項目[ユ]"にユーザー登録プレビュー時に 自動リンクされるデータ種類を設定します。 複数の場合「,」で区切って設定します。 ※プレビュー時のみで保存されるデータには影響しません。 "自動リンク項目[ユ]"にユーザー登録時に 自動リンクされるデータ種類を設定します。 複数の場合「,」で区切って設定します。 ※自動リンクされたデータが保存されます。 "改行可能項目[ユ]"にユーザー登録時に 改行が可能なデータ種類を設定します。 複数の場合「,」で区切って設定します。 "タグ使用項目[ユ]"にユーザー登録時に タグが使用出来るデータ種類を設定します。 Comment==FONT&B&Iのようにデータ種類==使用可能なタグ(複数は&で区切る) の形式で複数の場合「,」で区切って設定します。 ※タグはかならず大文字で記述して下さい。 "チェックボックス項目[ユ]"にユーザー登録時に チェックボックス,ラジオボタンのデータ種類を設定します。 UserType==h&vのようにデータ種類==value(複数は&で区切る) の形式で複数の場合「,」で区切って設定します。 ※valueとはのhの部分です。 ※同じデータ種類で全く同じ値を複数設定(データ種類==A&Aのように)する事はできません。 "セレクトメニュー項目[ユ]"にユーザー登録時に セレクトメニューのデータ種類を設定します。 Address==北海道&青森県のようにデータ種類==value(複数は&で区切る) の形式で複数の場合「,」で区切って設定します。 ※valueとはの北海道の部分です。 ※同じデータ種類で全く同じ値を複数設定(データ種類==A&Aのように)する事はできません。 "ファイルアップロード項目[ユ]"に ファイルアップロードのデータ種類を設定します。 複数の場合「,」で区切って設定します。 "未入力時の表示値[ユ]"に 登録者が未入力としたデータ種類の検索結果での表示値を設定します。 File==space.gifのようにデータ種類==表示値 の形式で複数の場合「,」で区切って設定します。 ※空白の表示で構わないデータ種類は設定の必要はありません。 ※ここでの設定はあくまでも検索結果表示時のもので データファイルにこの値が記録されるものではありません。 "単位自動表示項目[ユ]"に 検索結果で単位を付けて表示をしたい項目を設定します。 Price==円のようにデータ種類==単位 の形式で複数の場合「,」で区切って設定します。 ※登録値が空のデータの場合には単位は表示されません。 ※ここでの設定はあくまでも検索結果表示時のもので データファイルにこの値が記録されるものではありません。 "表示を省略する項目[ユ]"に 検索結果一覧で表示を指定文字数までに 省略したい項目を設定します。 Name==30のようにデータ種類==最大文字数(半角) の形式で複数の場合「,」で区切って設定します。 ※HTMLタグを許可している項目については タグの途中で文字が切れないように設定値を調整して下さい。 "3桁毎にカンマを入れる項目[ユ]"に 検索結果表示時に3桁毎に自動的にカンマを入れたい項目を設定します。 複数の場合「,」で区切って設定します。 ※登録値が半角数字でなければカンマは入りません。 "管理者のみ登録可能な項目[ユ]"に 管理者のみが登録可能としたい項目を設定します。 管理者以外の登録時にはこの項目の登録値は空になります。 複数の場合「,」で区切って設定します。 "管理者のみ編集可能な項目[ユ]"に 管理者のみが編集可能としたい項目を設定します。 管理者以外の編集時にはこの項目の登録値を変更しても反映されません。 複数の場合「,」で区切って設定します。 "非公開(検索・表示除外)項目[ユ]"に 検索時に検索や表示の対象としない非公開項目を設定します。 こちらに設定された項目は、検索時に検索や表示が出来なくなります。 複数の場合「,」で区切って設定します。 ※管理者権限での検索・閲覧時は制限は解除されます。 ※UserNum(ユーザ番号)、DataNum(データ番号)は設定できません。 また、Pass(パスワード)、TempPass(仮パスワード)は 標準で設定済みの為、設定の必要はございません。 "データ保存項目[ユ]"にユーザー登録時に ファイルに保存するデータ種類を設定します。 複数の場合「,」で区切って設定します。 ※Pass,Mail,UserTypeは自動的に保存されるので 必ずしも設定の必要はありません。 "CSVインポート項目[ユ]"にCSVインポート機能で 登録・更新を行う場合の登録項目名を設定します。 複数の場合「,」で区切って設定します。 ※こちらは、必ずしも設定の必要はありません。 ※詳しくは「◎CSVファイルインポート/エクスポート機能について」の項を参照 ユーザー登録時等にメールを送信する場合は "管理者宛送信[ユ]"と"ユーザー宛送信[ユ]"の チェックボックスの必要なものをチェックして下さい。 メールを送信する設定にした場合メールのサブジェクトと本文を設定します。 設定はlib/db-mail.cgiを編集して行います。 詳しくは(◎メール文章設定法)をご覧下さい。 user-regist.htmlをHTMLエディタ等で開き フォームに必要な部品を追加する等の編集を行います。 この際のように name="データ種類"の書式で設定していきます。 user-regist-preview.htmlを開き編集します。 プレビュー画面で表示したいデータを自由に設定します。 フォームに入力されたデータを表示する為には $PREFORM{Pass}のように$PREFORM{データ種類}の形式で設定します。 user-edit.htmlを開き編集を行います。 この際のように name="データ種類" value="$DATA{データ種類}"の形式で 現在の登録値を反映させる為の設定を行います。 ただしチェックボックス(ラジオボタン)の場合は のように の形式で設定します。 ※環境設定で設定したvalueの順番とは例えば UserType==h&vと設定していた場合hは1vは2となる。 またセレクトメニューの場合は の形式で設定します。 ファイルアップロード項目については 上記のような現在の登録値を反映させる為の設定は必要ありません。 代わりにアップしたファイルを個別に削除する為のチェックボックスを のように の形式で設置します。 user-edit-preview.htmlを user-regist-preview.htmlと同様に設定します。 なおuser-regist(edit)-admin.htmlは管理者専用ページで 管理メニューの管理者ユーザー登録よりアクセスすれば専用登録ページに ユーザー認証で管理者として入室すれば自動的に専用編集ページになります。 ◎設置手順6 ------------------------------------------------------------ データ登録関連部を設定します。 ユーザー登録関連部と全く同様に データ種類のリストアップ〜環境設定までをします。 ※環境設定の設定項目は[ユ]ではなく[デ]の方です。 ただしユーザー登録関連と違う部分がいくつかあります。 ※Pass,Mail,UserTypeというデータ種類は不要です。 data-regist.htmlをuser-regist.htmlと同様に フォームに必要な部品を追加する等の編集を行います。 data-regist-preview.html は user-regist-preview.html data-edit-preview.html は user-edit-preview.html data-edit.html は user-edit.html data-edit-admin.html は user-edit-admin.html と同様に設定します。 data-regist(edit)-admin.htmlは管理者専用ページで 管理メニューの管理者データ登録よりアクセスすれば専用登録ページに データ編集認証で管理者として入室すれば自動的に専用編集ページになります。 ◎設置手順7(任意) ------------------------------------------------------------ ユーザー登録(編集)時またはデータ登録(編集)時に 審査が必要な設定とした場合は審査関連の設定が必要となります。 db-html.cgiをテキストエディタで開き ユーザー(データ)審査一覧部分を設定します。 これは審査待ちデータ一覧ページでの1件分のデザインとなります。 ユーザー審査は$VU[$REC{UJudge}{データ種類}] データ審査は$VD[$REC{DJudge}{データ種類}] で任意のデータを表示できます。 審査に必要なデータを設定して下さい。 次にuser(data)-judge.htmlを編集します。 こちらの設定法はuser-edit.html等と同様となります。 またプレビューを使用する場合は user(data)-judge-preview.htmlを編集します。 こちらの設定法はuser-regist-preview.html等と同様となります。 ◎設置手順8 ------------------------------------------------------------ 検索フォームを作成します。 検索フォームは他のページと違い通常のHTMLファイルとなります。 つまり自由なページにフォームをいくつでも設置できます。 (同梱のsample.htmlを参考にして下さい)
のdatabase.cgiへのパスを設置場所に応じて変更します。 こちらは、ユーザー,データどちらのファイルをベースとした検索かを指定します。 データファイルベースの場合は上記のままで ユーザーファイルベースの場合はvalue="User"とします。 こちらは、検索結果一覧用のテンプレートファイルを指定します。 ※検索結果一覧のテンプレートの デザインの編集は(◎設置手順9)を参照 ※***.htmlのようにファイル名のみ設定します。 value=""の場合はdefault.htmlが使用されます。 ※この検索結果用テンプレートファイルは lib/template/resultディレクトリ内に設置されている必要があります。 こちらは、データ1件分のデザインに どのデザインを使用するかを指定するものです。 デザインの編集は(◎設置手順9)を参照 ※value=Html_1のように設定します。 value=""の場合はHtml_Defaultが使用されます。 こちらは、検索結果一覧ページの各データのテーブル色を 交互に違う色を利用したい場合に設定します。 2種類の色を,で区切って設定します。 次に、検索用のフォーム部品を設定します。 のように name="S_検索条件番号_データタイプ_対照データ種類"の形式で設定します。 ※検索条件番号は任意の数字で構いませんが 同じ数字を使用しないよう注意して下さい。 ※ユーザーファイルのデータ種類を対象とする条件の場合は name="S_検索条件番号_データタイプ_対照データ種類_U"とします。 ※データタイプは「Num」か「Key」で Numは数値でKeyは文字列となります。 また、検索対照データ種類には「Multi」と指定する事もできます。 Multiとするとと記述します。 ※全文検索の場合は「all」という値を指定します。 データタイプがNumの場合のみ1つの検索条件で数値範囲検索が可能です。 以下のみの場合は value="*〜100" のように指定します。 以上のみの場合は value="100〜*" のように指定します。 各検索条件毎に検索タイプを指定します。 のように name="Type_検索条件番号" value="[一致タイプ]-[and,or指定]"の形式で設定します。 一致タイプはデータタイプがNumの場合は More,Equal,Lessの3種類が指定できます。 More=以上(入力された数値以上の時に一致) Equal=完全一致(入力された数値と完全一致の時に一致) Less=以下(入力された数値以下の時に一致) データタイプがKeyの場合はNormal,Equal,Head,Footが指定できます。 Normal=キーワードを含む時に一致 Equal=キーワードと完全一致の時に一致 Head=キーワードを頭文字に含む時に一致 Foot=キーワードを文末に含む時に一致 and,or指定は and=全てを含む(全てに一致する) or=いずれかを含む(いずれかに一致する)となります。 検索条件毎に一致か不一致(NOT)かを指定します。 その検索条件を含まない時にHITさせたい場合は のように とします。 ※通常の一致検索の場合はこの設定自体必要ありません。 例外的なものとしてデータタイプDateがあります。 Dateの場合は検索対照データ種類にRtimeかUpTimeしか指定できません。 また検索タイプは指定できません。 Dateの場合自動的に(入力された数値)時間前のデータを検索します。 つまり検索対照データ種類がRtimeの場合 5と入力されると5時間以内に登録されたデータに一致します。 ※Rtimeは登録日時,UpTimeは更新日時です。 オプションとしてチェックボックス複数選択による キーワード検索が可能になります。 ※各チェックボックス側には という形式で必要なキーワード分記述します。 ※チェックボックス全体で1つの検索条件になるので 全て同じ検索条件番号と検索対象データを指定します。 ※セレクトメニューの複数選択の場合も 同様の記述をする事で可能になります。 検索結果を任意のデータの数値順・文字列順にソートできます。 ソート条件を指定するにはで昇順になります。 valueが空の場合やこの記述自体が無い場合は降順となります。 ソート条件を複数設定している場合は それぞれnameをReverse2,Reverse3として指定します。 検索結果の全体の表示件数上限と 1ページ辺りの表示件数を指定できます。 1ページ辺りの表示件数は 等といった形で指定します。 全体の表示件数上限は または 等といった形で指定します。 ※SearchMaxは一致データが上限に達した時点で 検索を打ち切り結果を表示しますので、検索時の負荷軽減の効果がありますが ソート条件上位のデータが表示されない場合がございます。 SearchMax2は全ての一致データをソート後に表示件数を削減します。 ◎設置手順9 ------------------------------------------------------------ 検索結果のデザインを設定します。 検索結果のページ全体のデザインは 検索結果テンプレート(lib/template/result/default.html等)を 編集する事で変更が可能となります。 &_PrintData; print <<""; という記述は検索結果データの表示に置き換わります。 &_PageControl(1,0,undef,'前のページ','次のページ'); print <<""; 等といった記述はページ移動用のリンク(プルダウン)に置き換わります。 なお、()の中の値は任意の値への変更が可能となります。 1,0の部分はページ移動用のリンク(プルダウン)の上下に 改行を入れたい場合に指定をすると数値分の改行が挿入されます。 改行が不要の場合には0,0と指定して下さい。 undefの部分に任意の文字列を指定すると ページ移動用の表示がプルダウンに切り替わり 指定した文字列が送信ボタンに反映される形となります。 ※任意の文字列は''で囲んでご指定下さい。 '前のページ','次のページ'の部分は ページ移動用のリンクの前後のページへの移動リンクのテキストを 任意の文字列で指定します。 ※任意の文字列は''で囲んでご指定下さい。 また、検索結果テンプレート内に 検索結果の再ソート用のリンクを設定する事が出来ます。 $SortUrl&Sort=Num_Countや $SortUrl&Sort=Num_Count&Reverse=1等のように $SortUrl&Sort=ソート条件 といった形式のURLへリンクを貼ってご利用下さい。 ※ソート条件の指定部分は 検索フォームでの指定の際と同様の形となります。 次に、検索結果のデータ1件分のデザイン設定は db-html.cgiを編集する事で変更が可能となります。 設定は、print < マーク画像を表示する為には NEWマークは$NewMarkGif UPマークは$UpMarkGif マーク1は$Mark1Gif (データファイルベース検索時のみ) マーク2は$Mark2Gif (データファイルベース検索時のみ) とします。 データ詳細へのリンクを表示する為には とします。 ***部分は ユーザーファイルベースの場合 $VU[$REC{User}{UserNum}] データファイルベースの場合 $VD[$REC{Data}{DataNum}] と記述します。 フォームメールへのリンクを表示するには とします。 ***部分は ユーザーファイルベースの場合 $VU[$REC{User}{UserNum}] データファイルベースの場合 $VD[$REC{Data}{UserNum}] と記述します。 ■データファイルベース検索時のみ データファイルベース検索時に ユーザー登録日時を表示する場合は$URDate 更新日時を表示する場合は$UNDateとします。 カウント数を上げるリンクを表示する為には とします。 データ編集へのリンクを表示する為には とします。 投票用のリンクを表示するには とします。 ◎設置手順10(任意) ------------------------------------------------------------ 詳細ページを設定します。 lib/template/data-part/data(user)/default.htmlを開き ※詳細テンプレートを複数使用している場合は ファイル名はdefault.htmlとは限りません。 (◎詳細テンプレート複数化)参照 詳細画面で表示したいデータを自由に設定します。 設定法は手順9の一覧ページと同様となります。 ◎テンプレート編集時の注意事項 ------------------------------------------------------------ AmigoDatabaseのテンプレートファイルは それ自体がプログラムの一部の為 編集時にミスがありますと正常な動作が出来なくなります。 HTMLエディタ等で簡単にデザインが変更できますが 以下の点には注意して下さい。 下記4種の行は改変したり 行中にスペースや余分な文字を入れないようにして下さい。 ※HTMLエディタによっては自動構文エラー修正等により 自動的に改変される場合がある為注意が必要です。 その場合は下記4種の行を最初にテキストエディタ等で コメント行等に置き換えて編集終了後に元に戻して下さい。 print <<""; &_*****; 1; $***形式の部分はスクリプトが適切な文字列に置き換えるので 削除/改変しないで下さい。 Tabスペース・全角スペースを使用せず半角スペースを使用して下さい。 @という文字を入れる場合は\@として下さい。 文字化けする場合は文字化けが始まった文字の後ろに\をつけて下さい。 ◎ユーザー別登録データ一覧、管理者用一覧について ------------------------------------------------------------ ユーザーメニューの「登録データ一覧」より 自身が登録したデータの一覧を表示し選択したデータを編集する事が可能です。 また、管理者は管理メニューの 「登録データ一覧」、「登録ユーザ一覧」より 全登録情報を確認し管理する事が可能となります。 これらの一覧表示デザインの設定法は 通常の検索結果一覧の設定とほぼ同様となりますが テンプレート(HTML指定)と1件分のデザイン(DataHtml指定)が 予め以下のように固定されています。 これらの設定を編集する事で 各表示デザインを変更してご利用下さい。 ユーザ別登録データ一覧:dataedit.html、Html_DataEdit 登録ユーザ一覧:admin-ulist.html、Html_AdminUlist 登録データ一覧:admin-dlist.html、Html_AdminDlist ◎ショートカット検索について ------------------------------------------------------------ ショートカット検索はテキストリンクから 1クリックで検索が出来る機能です。 まず検索フォームで通常通り検索条件を指定して 管理用パスワードとショートカット名(半角英数)を入力して 検索ボタンをクリックしショートカットを登録します。 既に登録済みのショートカットを編集したい場合は 上書きのチェックボックスをチェックして下さい。 ショートカットを削除したい場合は 削除のチェックボックスをチェックして下さい。 後はdatabase.cgi?cmd=s&sc=ショートカット名 という形式のリンクを好きなページに記述すれば完成です。 [関連検索] 検索結果画面で「ショートカット+特定のデータ項目を利用した検索条件」 で関連検索を行う事が出来ます。 database.cgi?cmd=s&sc=ショートカット名&加える検索条件 という形式で記述します。(db-html.cgiや詳細テンプレートに) 加える検索条件のところには S_*_Key_*****=特定のデータ項目の値&Type_*=Normal-or のように 検索条件(name)=キーワード(value)&検索タイプ指定 という形式で記述します。 ※通常の検索フォームの各部品のnameとvalue(入力される値)と考えてください。 ※特定のデータ項目の値の所はURLエンコードされた方のデータ($RU,$RD)を使用して下さい。 例:$VU[$REC{User}{Name}] 上記の例は登録ユーザーの名前に そのユーザーが登録した全データを検索するリンクを貼ったものです。 この他にも商品のデータベースなら同じメーカーの商品を検索するリンクや 映画のデータベースなら出演者の他の出演作を検索するリンク等 アイディア次第で様々な利用法があります。 ◎現在の登録数表示法 ------------------------------------------------------------ トップページ等の任意のHTMLページに 現在のユーザー(データ)登録数を表示できます。 任意のHTMLページに以下のような記述を追加します。 ユーザー登録数を表示する場合は 以下に と記述します。 後は登録数を表示したい場所に と記述します。 データ登録数の場合は 以下に 登録数を表示したい場所に と記述します。 なお登録数はリアルタイムで反映されますが 管理室より登録数ファイル更新を行えば 強制的に現在の登録数が反映されます。 ◎メール文章設定法 ------------------------------------------------------------ メール文章の設定はdb-mail.cgiを編集して行います。 メールのサブジェクトを変更したい場合は 各サブジェクト my$subject="******"; の*****部分を編集します。 メールの本文を編集したい場合は 各本文の my$body=< DpTypeが未入力のデータは自動的にdefault.htmlで表示されます。 1つのデータで複数の詳細ページを表示したい場合は 以下のようにします。 template/data-part/data(user)ディレクトリ内に いくつでも詳細ページテンプレートを用意します。 後は詳細ページへのリンクに&dp=テンプレートファイル名 という記述を追加すればそのテンプレートファイルを使用した 詳細ページが表示されます。 ※なおdp=テンプレートファイルの指定の方が優先順位が高い為 これが指定されると前述のDpTypeの指定は無視されます。 ◎ファイルアップロードに関して ------------------------------------------------------------ ファイルアップロードはユーザーが ファイルをサーバーに送る事を可能とするもので 使い方によってはセキュリティ上深刻な問題が起きる可能性があります。 許可する拡張子の設定を慎重に検討し サイズ上限も小さめにする事をお勧め致します。 ファイルアップロードのデータ種類の場合 データファイルにはファイル名が記録されますので これを利用して検索結果画面等に画像の表示やリンクをして下さい。 例: ◎ユーザーファイル共有に関して ------------------------------------------------------------ AmigoDatabaseでは複数のデータベースでユーザーファイルを共有できます。 ユーザーファイルを共有したい場合は各データベースの ・ユーザーディレクトリ ・ロックディレクトリ ・user-su.jsが入っているディレクトリ ・アップロードディレクトリ をそれぞれ同じディレクトリに設定します。 ※環境設定ファイルはデータベース毎に別々になりますので ユーザーファイルに関する設定は統一する必要があります。 ◎CSVファイルインポート/エクスポート機能について ------------------------------------------------------------ CSVファイルインポート機能により CSV形式ファイルのデータをdata.cgi,user.cgiへ 一括登録する事が出来ます。 また現在のデータをエクスポートする事が出来ます。 生成されたCSVファイルは基本的にそのままインポート出来る為 エクスポートしたファイルを編集しインポートする事で 一括のデータ編集が可能となりデータ管理を効率的に行えます。 なおインポートを実行される際には (特に独自に用意したCSVファイルを読み込む場合は) 必ずデータファイルのバックアップを取っておいて下さい。 CSVファイルに何らかの問題があると 登録データに問題が発生する恐れがあります。 またインポート時に独自にCSVファイルを用意する場合 用意するCSVファイルの項目(データ種類)の順番は data.cgi,user.cgiと同じである必要はありません。 但し、必ず1行目に項目名(データ種類)を記述して下さい。 (例)Name,Address,Mail,Pass ※環境設定でCSVインポート項目設定を 行っている場合は、こちらの行は不要となります。 インポート時にはCSVファイル中の #から始まる行はデータとして認識しませんので メモ等を記述したい場合にご利用下さい。 用意したCSVファイルを データファイル(data.cgi)を対象に読み込む場合はdata.csv ユーザーファイル(user.cgi)を対象に読み込む場合はuser.csv というファイル名でデータディレクトリ(data)内に設置して下さい。 管理室のメニューよりCSVファイルインポートを選択し 対象ファイル及び読込形式を選択して実行して下さい。 [更新]=現在のdata.cgi(user.cgi)を更新する形で CSVファイルのデータを登録します。 (通常はこちらを選択して下さい) ※ユーザーファイルの場合はUserNum(ユーザー番号) データファイルの場合はDataNum(データ番号) の項目がCSVファイルにありUserNum(DataNum)が 指定されているデータは更新(編集)され 指定されていないデータは追加登録されます。 [追加]=現在のdata.cgi(user.cgi)に追加する形で CSVファイルのデータを登録します。 ※現在のdata.cgi(user.cgi)のデータは更新せず 必ず追加登録のみを行いますので CSVファイルにUserNum(DataNum)の項目を設けた場合 現在のdata.cgi(user.cgi)内のデータと UserNum(DataNum)が重複しないように注意が必要です。 [上書]=現在のdata.cgi(user.cgi)を完全に空にして CSVファイルのデータを登録します。 なおCSVファイルは読み込み実行後には サーバーから削除される事をお勧め致します。 実行時に「読み込み後CSVファイルを消去」をチェックしますと 自動的にサーバー上から削除されます。 ◎FAQ(よくある質問/症状) ------------------------------------------------------------ (Q).検索しても1件もデータがHITしない (A).最も考えられるのはセレクトメニューののようになっていませんか? この場合"指定しない"という文字列がCGIに送信される事になります。 本当に指定しないという条件を送る場合は のようにする必要があります。 ◎正規表現について ------------------------------------------------------------ 正規表現を利用して入力されるデータを正確にチェックできます。 正規表現については専門の書籍などを参考にして下さい。 (複雑なものでなければサポート掲示板へ ご質問頂ければ正規表現をお教え致します) 以下に簡単な正規表現(略記法)を紹介します。 ■\w 単語の構成文字(英数字) 有効書式に設定すると英数字が含まれていないとエラーになる。 無効書式に設定すると英数字が含まれているとエラーになる。 ■\W 単語の構成文字(英数字)以外 有効書式に設定すると英数字以外が含まれていないとエラーになる。 無効書式に設定すると英数字以外が含まれているとエラーになる。 ■\d 数字 有効書式に設定すると数字が含まれていないとエラーになる。 無効書式に設定すると数字が含まれているとエラーになる。 ■\D 数字以外 有効書式に設定すると数字以外が含まれていないとエラーになる。 無効書式に設定すると数字以外が含まれているとエラーになる。 ◎最後に ------------------------------------------------------------ このスクリプトをさらに便利なスクリプトへ成長させる為 バグ報告や機能アンケートへのご協力をお願い致します。 また本説明書で不明な点があればサポート掲示板へ投稿して下さい。 ============================================================ Copyright(c)2000 by CGI DE AMIGO!! All Right Reserved.