お問合せ窓口モジュール


概要

「お問合せ窓口」は、問い合わせフォーム のようなものを使うための モジュールである。モジュールは、次のような特徴を持っている。

従来のメールフォームと異なるのは、問合せをデータベースに保存し、 問合せ対応まで支援する点である。

フォームの指定
フォームの作成は、管理メニューの「フォームの作成」で行う。 「フォームの定義」項目を指定できる。指定の書式は次通り。
行 ::= 項目名["*"][=表示ラベル][,タイプ][,属性指定...][,引数...]

タイプ ::= {text|checkbox|radio|textarea|select|const|hidden|mail|file}
引数 ::= [値 ["+"] "="] ラベル
属性指定 ::= 属性名 "=" 値
属性名 ::= {size|rows|maxlength|cols|prop|check}

例:
表記フォーム形態説明
名前*名前* 項目名の末尾に * を付けると必須項目になる。タイプを省略した場合 text。
名前*,size=5名前* 属性 (大きさ) を指定する。
名前*,size=10,規定値,#コメント文名前* コメント文引数の先頭を "#" にすると説明文として表示する
名前,size=10,check=reqire,{X_NAME},#コメント文名前 コメント文必須検査は require として指定できる。既定値の {X_NAME}はユーザ情報の本名に設定しているものになる。
選択,radio,項目1+,項目2<br/>,*=その他選択 項目1   項目2
その他
引数には HTML タグを含めることができるが値としては無効。値を "*" に指定するとその他をテキスト指定できる。
選択,checkbox,項目1+,項目2,項目3選択 項目1   項目2   項目3   選択値のデフォルト選択は、"+" を付加する。
選択,select,項目1,項目2,項目3選択
ラベル,const,値ラベル 値固定値として表示され、それが入力値となる。
ラベル,hidden,値(フォームには表示されない)入力値としては表示される。
#コメント文コメント文フォーム上に表示されるが入力値にはならない
カスタムフォーム

「説明文の扱い」をテンプレートとして指定すると、説明文をフォー ムのテンプレートとして扱う。テンプレート中には、フォーム要素を 変数 {名前} として埋め込むことができる。

変数名説明
{FORM_ATTR}フォームタグ属性
{SUBMIT}送信ボタン
{BACK}再編集ボタン
{CHECK_SCRIPT}検査用の JavaScript
{要素名}フォーム要素の名前
{TO_UNAME} {TO_NAME}ユーザ指定のフォームにおける送信先ユーザ名
一般設定

モジュールの一般設定では以下の項目を指定できる。

項目名設定/既定値説明
一覧表示の数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: 完了 となる。

オプション変数
属性名設定/既定値説明
size0テキスト入力項目 (input) の入力領域幅
maxlength0テキスト入力項目 (input) の入力上限文字数
rows0テキストエリアの行数
cols0テキストエリアの桁数
accept_extなしfile 型でアップロード可能な拡張子を指定する。

例: accept_type=jpg|gif|png|xls

accept_typeなしfile 型でアップロード可能なファイルの型を指定する。

例: accept_type=image/jp*g|image/gif|image/png|application/*

注意: accept_typeaccept_ext の要素数 ('|' で区切られた数) が等しい場合、対応位置の型が一致するか確認される。

input_mail_confirmyes/no"no" に設定したら mail 型の入力で確認入力を行わない
input_mail_loginyes/noconf/no"noconf" でログイン時に mail 型の入力の確認用入力を行わない。"no" ならログイン時に mail 型の入力を行わない。

input_mail_confirm=no を指定した場合、既定値は "noconf" となる。

notify_with_email01に設定したら問合せ通知メールにメールアドレスを表示する
export_charsetUTF-8CSV ファイルへ出力する場合のエンコーディングを指定する。
redirectなしフォームの送信後に遷移するページの URLを指定する
use_fckeditorなしコメント編集に FCKeditor 使う。設定値は Basic または Default
from_confirm_tplform_confirm.tpl応答メッセージ用のメールテンプレートのファイル名を指定する
charge_notify_tplなし担当者向けの通知メッセージ用のメールテンプレートのファイル名を指定する。指定されない場合、応答メッセージ用のものが使われる。
group_notify_tplなし担当グループ向けの通知メッセージ用のメールテンプレートのファイル名を指定する。指定されない場合、応答メッセージ用のものが使われる。
他の名称正規表現入力検査の文字列定義

例: 数値 numeric=[-+]?[0-9]+、電話番号tel="\+?[0-9][0-9-,]*[0-9]"
利用は、入力の定義で check=tel のように利用する。

正規表現は、JavaScript で使える範囲のものを使うこと。(サーバ側は perl の正規表現が使うが、クライアント側は JavaScript を利用するため)

使い方メモ
問合せの通知

問合せの通知は、XOOPSのイベント通知の設定にしたがって行われる。 ただし、担当者や担当グループへの通知は、特に設定を行わない場合も行われる。

情報漏洩対策

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 $