「お問合せ窓口」は、問い合わせフォーム のようなものを使うための モジュールである。モジュールは、次のような特徴を持っている。
従来のメールフォームと異なるのは、問合せをデータベースに保存し、 問合せ対応まで支援する点である。
行 ::= 項目名["*"][=表示ラベル][,タイプ][,属性指定...][,引数...] タイプ ::= {text|checkbox|radio|textarea|select|const|hidden|mail|file}
引数 ::= [値 ["+"] "="] ラベル
属性指定 ::= 属性名 "=" 値
属性名 ::= {size|rows|maxlength|cols|prop|check}
「説明文の扱い」をテンプレートとして指定すると、説明文をフォー ムのテンプレートとして扱う。テンプレート中には、フォーム要素を 変数 {名前} として埋め込むことができる。
変数名 説明 {FORM_ATTR} フォームタグ属性 {SUBMIT} 送信ボタン {BACK} 再編集ボタン {CHECK_SCRIPT} 検査用の JavaScript {要素名} フォーム要素の名前 {TO_UNAME} {TO_NAME} ユーザ指定のフォームにおける送信先ユーザ名
- 各変数は必ず1回だけ出現すること
- フォーム作成画面で「テンプレートの追加」ボタンで使って変数一式を生成できる。
- フォーム全体は次のような構成をとる (要素は form タグの内側へ任意に配置可能)
<form {FORM_ATTR}> 要素1: {要素1} 要素2*: {要素2} : 要素n: {要素n} {SUBMIT} {BACK} </form> {CHECK_SCRIPT}[desc]説明文[/desc] とすると、 「説明文」はフォームでだけ表示され確認画面では表示されない。 {TO_UNAME}, {TO_NAME} は、通常のフォームの説明文中でも有効 「全体テンプレート」を指定すると XOOPS のテーマは使用されず、純粋に HTML による表示となる。 「全域テンプレート」を指定するとブロックを無効化して動作する。「部分テンプレート」との違いは、smarty の $xoops_show{c,l,r}block 変数を 0 に指定することなので、テンプレートがこれらの変数を考慮している必要がある。
モジュールの一般設定では以下の項目を指定できる。
項目名 設定/既定値 説明 一覧表示の数 25 一覧表示で表示する行数を指定する 属性の既定値 size=60, rows=5, cols=50, notify_with_email=0 フォームの要素に指定する属性の既定値などを設定する。 状況の選択肢 全部: - a b c 作業待ち: - a 作業済み: b c --------: 受付待: - 作業中: a 応答済: b 完了: c書式は 表示名: [状態1[,状態2...]] を複数行指定する。状態は (-,a,b,c) の文字で指定する。 それぞれの状態の意味は、-:受付待ち, a:作業中, b: 応答済み, c: 完了 となる。
オプション変数
属性名 設定/既定値 説明 size 0 テキスト入力項目 (input) の入力領域幅 maxlength 0 テキスト入力項目 (input) の入力上限文字数 rows 0 テキストエリアの行数 cols 0 テキストエリアの桁数 accept_ext なし file 型でアップロード可能な拡張子を指定する。 例: accept_type=jpg|gif|png|xls
accept_type なし file 型でアップロード可能なファイルの型を指定する。 例: accept_type=image/jp*g|image/gif|image/png|application/*
注意: accept_type と accept_ext の要素数 ('|' で区切られた数) が等しい場合、対応位置の型が一致するか確認される。
input_mail_confirm yes/no "no" に設定したら mail 型の入力で確認入力を行わない input_mail_login yes/noconf/no "noconf" でログイン時に mail 型の入力の確認用入力を行わない。"no" ならログイン時に mail 型の入力を行わない。 input_mail_confirm=no を指定した場合、既定値は "noconf" となる。
notify_with_email 0 1に設定したら問合せ通知メールにメールアドレスを表示する export_charset UTF-8 CSV ファイルへ出力する場合のエンコーディングを指定する。 redirect なし フォームの送信後に遷移するページの URLを指定する use_fckeditor なし コメント編集に FCKeditor 使う。設定値は Basic または Default from_confirm_tpl form_confirm.tpl 応答メッセージ用のメールテンプレートのファイル名を指定する charge_notify_tpl なし 担当者向けの通知メッセージ用のメールテンプレートのファイル名を指定する。指定されない場合、応答メッセージ用のものが使われる。 group_notify_tpl なし 担当グループ向けの通知メッセージ用のメールテンプレートのファイル名を指定する。指定されない場合、応答メッセージ用のものが使われる。 他の名称 正規表現 入力検査の文字列定義 例: 数値 numeric=[-+]?[0-9]+、電話番号tel="\+?[0-9][0-9-,]*[0-9]"
利用は、入力の定義で check=tel のように利用する。正規表現は、JavaScript で使える範囲のものを使うこと。(サーバ側は perl の正規表現が使うが、クライアント側は JavaScript を利用するため)
使い方メモ
問合せの通知
問合せの通知は、XOOPSのイベント通知の設定にしたがって行われる。 ただし、担当者や担当グループへの通知は、特に設定を行わない場合も行われる。
- イベント通知の方法 (メール/PM/停止) はユーザの設定に従う
- 担当者が指定されていない場合、担当グループに通知が行われる
- 問合せの担当者になったユーザには、その問合せへのコメント通知が設定される
- 担当者グループのメンバーはフォーム毎の通知を設定できる
- 管理権限がある場合、問合せの全体の通知を設定できる
情報漏洩対策
XOOPS のコメントシステムを利用する構造上、コメントを強制的に表示するようなブロック、モジュールの扱いには注意すること。
例えば、「システム管理」の「最近のコメント」ブロックの利用した場合、 問合せでのコメントのタイトルが表示されることになる。 この場合、表示ページでアクセス制限されるので本文を読むことはできないが、 頻度やメッセージの時間は漏れてしまう。
あるいは、Whatsnew(新着情報) モジュールで、コメント本文を表示すると 内容が漏れてしまう。
メンバ指定によるフォーム
受付担当者として、メンバ[グループ] で指定したフォームは、 HTTP引数に uid を指定することで担当者を指定したフォーム送信を 行うことができる。
XOOPS_URL/modules/ccenter/index.php?form=XX&uid=YYこの設定は、別ページから上記形式のリンクを張ることで利用する ことを想定しており、このモジュール単独で使うことはない。
典型的には「ある記事の著者に対する問合せフォーム」と言うもの で、テンプレートをカスタマイズして上記リンクを埋め込むことで利用する。
変更履歴
- 2012-01-22 ccenter 0.98
- スクリプト挿入の脆弱性を修正 (thx dramifa)
- 評価値、評価コメントの管理者編集機能を追加
- 問合せ管理の一覧で検索条件などが失われる障害を修正
- 対応履歴の保存書式を変更
- メールアドレス入力指定 (input_mail_confirm, input_main_login) のオプション指定を追加
- いくつかの不具合修正
- 2012-01-14 ccenter 0.97
- ディレクトリトラバーサルの静寂性の修正 (thx Marijuana)
- アップロードファイルの拡張子(accept_ext)、mime型(accept_type)の検査の追加
- 2011-10-08 ccenter 0.96
- ファイル形式の入力で必須入力を可能にする
- メールのテンプレート変数にフォームの入力値を設定 ("{項目名}" でメールの応答文に記載できる)
- 2011-04-24 ccenter 0.95
- ゲストの問い合わせでコメントできない障害の修正
- 担当グループで正常にアクセスできない障害の修正
- 通知メール用のテンプレート指定の説明を追加
- 2011-03-15 ccenter 0.94
- 情報漏えいの脆弱性を修正 (thx Hosiryuhosi)
- altsys の言語設定での障害に対応
- フォルダ名を変更した場合の不具合を修正
- 応答メールのテンプレートファイルをオプション変数で変更可能にする
- 2009-11-15 ccenter 0.93
- 通知メールの追加コメント/テンプレートをフォーム毎にオプション変数で指定
- オプション変数の取扱い機構を変更
- 2009-07-04 ccenter 0.92
- 問合せ管理に簡易検索を追加
- フォームブロックの編集で初期値に旧設定を反映する (thx jun)
- ドイツ語の言語リソースを追加 (thx Rene)
- パンくずリストの終端をリンクにしない
- カスタムフォームでもパンくずリストの設定を行う
- テンプレートの誤りによる誤動作を修正 (thx L2)
- 2009-06-12 ccenter 0.91
- 内容表示を radio, select, checkbox の表示文字列で行う
- 全体テンプレートの表示が働いてなかったものを修正
- フォームテンプレートの管理リンクの間違いを修正
- 添付ファイル (file) のテンプレートの誤りを修正 (thx yata)
- メールアドレスの最大長を256に拡張 (thx shige-p)
- 2009-06-06 ccenter 0.90
- XOOPS 2.3 互換のための修正
- フォーム毎のオプションの上書きを可能にする
- メールアドレスが非表示にならない障害を修正
- フォーム部品をテンプレートで生成するように変更
- 問合せ日時の表示が更新時間になっていたものを修正 (thx zorro87)
- 1タイムパスワードでエンコードによる認証失敗を防ぐ修正 (thx zorro87)
- フォームブロックの送信先設定の誤りを修正 (thx uhouho)
- ポルトガル語の言語リソースを追加 (thx leco1)
- 2009-02-12 ccenter 0.89
- 「属性の既定値」の書式解析を頑健に変更
- イベント通知機能の問合せ通知が機能していない障害を修正 (thx yue178)
- 入力が空の場合文字列検査が正しく行われない障害を修正
- 英語の問合せ確認のメールテンプレートの修正
- 定義中のユーザー変数を評価する
- メッセージ表示画面のテンプレート修正
- 2008-06-15 ccenter 0.88
- 一覧へアクセス時間(参照マーク)の表示を追加
- アクセス時間の表示を修正
- アクセス時間の更新を常に反映するように変更
- JavaScript の正規表現エスケープを改善
- CSV 出力時のラベルから HTML タグを除く
- CSV 出力の文字コード指定を属性に追加 (export_charset=UTF-8)
- notify_with_email=1 で保存データに email が含まないように修正
- textarea の必須検査で改行するとエラーになる障害を修正
- 2008-06-01 ccenter 0.87
- テンプレートモードでもコメントを表示する
- 属性名を使って入力検査指定を可能にする
- フォーム書式を CSV 形式で扱えるように厳密化
- ブロックのフォーム指定を選択ボタンに変更
- 管理者プレビューを改善
- 保存なしの場合の送信後ページの誤りを修正
- 問合せ者のアクセス時間を記録する (相手が読んだことを知るため)
- 2008-05-17 ccenter 0.86
- データベースの保存モード「記録しない」を追加
- 導入時にサンプルフォームを作成する
- フォーム属性の既定値 notify_with_email=1 を設定するとメールアドレスを表示する
- 項目名の先頭を "-" にすると前項目と同じ行に表示する
- 2008-02-29 ccenter 0.85
- フォーム定義用の入力ヘルパを追加
- 完了時にコメント通知が発生するようにした
- 完了時ログの状態名称が間違っていたものを修正
- CSV出力の前年の範囲が誤っていたものを修正
- 2008-01-31 ccenter 0.84
- 英語リソースの追加
- 項目名の代替ラベルを拡張
- 項目型に定数 (const) を追加
- フォームブロックを追加
- クオート(')処理のバグを修正
- IE での JavaScript検査の不具合を修正
- 2007-11-01 ccenter 0.83
- CSV出力に期間指定を追加
- 担当者グループの指定が働くように修正
- 評価終了時の通知/記録を行うように修正
- 2007-10-27 ccenter 0.82
- {REMOTE_ADDR}と{HTTP_USER_AGENT}をメール変数に定義
- 「全域テンプレート」モードを追加
- ゲストのコメント障害とコメント履歴記録を修正
- 変数初期値 ({X_UNAME}=ユーザ名など) の指定を実装
- 管理画面での一括変更で受付待ちにできない障害を修正
- 管理画面での状態変更がエラーになる障害を修正
- 2007-08-06 ccenter 0.81
- パンくずの定義を改善
- XCL 2.1 用に blocks での global 宣言を追加
- 2007-08-03 ccenter 0.8
- 状態変更の通知をイベント通知に変更
- 問合せ管理ページを追加
- 担当者の選択方法を改善
- リスト表示の汎用化
- ブロック表示の条件拡張
- ページタイトルを改善
- 担当者/問合せのページを分離と強化
- メッセージがないとき受付ページにアクセスできない障害を修正
- 監査用テーブル (log) を追加
- altsys があれば利用する
- 2007-06-14 ccenter 0.71
- 属性の既定値を指定可能にする
- 障害修正: コメントのリプライ投稿時にゲストの通知が行われない
- 障害修正: 漢字のファイル名がハンドリングできない
- 障害修正: hilien と mail を組み合わせると異常が起きる
- 障害修正: radio で、「その他」機能を使うと、デフォルトで有効になる
- 2007-05-13 ccenter 0.7
- 担当者を動的に任意ユーザにする
- CSV 出力を SJIS から UTF-8 に変更
- 削除状態の指定できないのを修正
- checkbox, radio に、その他 [テキスト] を使えるようにする
- 検査の一般的の拡張 (check=xx)
- hilien アイテムの実装
- バグ修正: コメントの表示位置がおかしい
- 2007-03-07 ccenter 0.6
安富 伸浩 <nobuhiro.yasutomi@nifty.ne.jp> マイサイト ユーザーズ http://myht.org/
$Id: help.html,v 1.11 2012/01/22 09:22:18 nobu Exp $