q19cms

メンバー管理CMS生成ツール

このツールは、メンバー管理CMSを作成するためのものです。
メンバー管理の入力項目や、登録方法などを設定して、生成を行うと、メンバー登録、管理を行うCMSを生成することができます。

※現在のところβ版で、ツールや生成されるCMSなどは変更される可能性があります。

データファイル、フォームの生成

WEB上の作成ツールを使用して、入力項目やメッセージなどを設定し、生成を行うと、必要な各種ファイルがZIP圧縮ファイルで出力されます。
次のものが作成できます。

  • 登録フォーム
  • ログインフォーム
  • パスワード問い合わせフォーム
  • 登録用データベース
  • 登録データ管理システム

フォームの作成には、土台となるhtmlファイルを指定することができます。
通常CMSのお問い合わせフォームのHTMLを使用します。
他のHTMLファイルでも作成できますが、CSSなどの調整が必要になります。

htmlファイルを指定しなくても生成できます。
その場合は、内部で用意したhtmlファイルを使って生成します。
対応するcssファイルも同梱されます。

登録データ管理システムは、管理者としてログインすることで、登録されたメンバー情報などの一覧、検索、編集を行うことができます。

登録にはメールアドレスを使用します。
通常、メールアドレスがログインIDとなります。

登録者の認証は、いくつかの方法から選択ができます。

  • 認証なし(登録するとすぐ利用可能)
  • 事前メール認証(メールアドレスを先に登録して、送られてきたURLから本登録を行う)
  • 事後メール認証(登録をすると、メールが送られてきて、そのURLを開くと登録が完了する)
  • 管理者認証(登録後、管理者が認証処理をするとログインが可能になる)

生成ツールで、登録項目や認証方法を変えて何度でも生成が可能ですが、実際の運用は、1つのサイトでのみご利用いただけます。

作成方法

生成ツールは、3つの画面に分かれています。(上部タブで切り替え)

基本情報

まず、システムのタイトルを入力します。
次に、登録方法の選択ができます。

  1. メール認証:メールアドレスを先に入力してもらい、そのメールアドレスに本登録用のURLを送る方法。
  2. フォーム認証:フォームに必要事項を記入してもらい、登録後に認証メールを送信して、登録を有効にする方法。
  3. 通常登録:フォームに必要事項を記入してもらい、登録するとすぐに有効なメンバーとなる方法。
  4. 管理者認証:管理者が管理画面から認証を行う方法。認証時にメールが送信されます。

メール関連設定では、送信元名称、管理者のメールアドレス、メールの署名部分などの設定を行います。

登録時メール設定は、メンバー登録を行った際に送信されるメールの文面などを設定します。

フォームメッセージ設定は、登録時のフォームに出力されるメッセージを指定します。

入力項目設定

入力項目は、メンバーを管理するための項目を設定します。
項目には、登録時に入力する項目と、管理者専用項目を設定することができます。
項目は、「追加」ボタンを押すことで、追加することができます。

最低1項目(例えば氏名)の設定が必要です。
ログインを行う場合は、ログインID(現在はメールアドレスを想定)とパスワードの設定が必要です。

「項目」部分をクリックすると、入力フォームが開閉します。
Xを押すと、項目を削除することができます。

「項目見出し」の入力は必須です。空の場合は、その項目は使用されません。

「機能」では、どのような入力方法を行うかを選択します。

「選択肢」は、機能が選択の場合と複数個一行入力の場合の、選択肢や見出しを1行ごとに書きます。

「項目設定」は、項目の属性を設定します。

  • 必須項目:必ず入力が必要な項目の指定です。
  • 一覧項目:この項目を管理画面の一覧に出力します。
  • 検索項目:管理画面の検索対象とします。
  • 管理項目:登録時の入力フォームには含めず、管理画面からのみ設定可能な項目の指定です。

「入力チェック」は、登録時に入力のチェックが必要なものに設定します。
「メールチェック(ユーザーに送信するアドレス)」は、ログインや、ユーザーへのメールの宛先に指定します。

「説明」は、登録フォームの入力欄の下に、説明として表示されます。

出力処理

「設定の保存」により、設定内容を保存しておくこともできます。

「フォーム作成」により、フォーム用htmlファイル、データベース、管理用プログラムが生成されます。
ファイルは、1つのZIPファイルとしてダウンロードされます。

設置方法

作成されたデータファイルをダウンロードしたら、ZIPファイルを展開します。
そして、作成されたファイルをサーバーへアップロードします。

登録やログインを行うためのURLは次のようになります。

  • 登録用URL https://your_url/menber/?act=regist
  • ログインURL https://your_url/menber/?act=userlogin
  • パスワード問い合わせURL https://your_url/menber/?act=password
  • 管理画面 https://your_url/menber/?act=login (id: admin pw: 1234)

この例では、https://your_url/があなたのサーバーのURLで、その中のmemberディレクトリにアップロードした場合です。
memberは別の名前でも問題ありません。

設置する場合、同名のファイルがあるため、他のCMSと同じ場所には設置できません。
CMSのお問い合わせフォームなどのHTMLを指定して生成した場合は、cssや画像ファイルなどの位置が異なりますので、必要なディレクトリなどをコピーするなどしておく必要が在ります。

CMSとの連携方法

会員管理のログイン機能を使用して、CMSで情報の公開を制御する方法について説明します。

ここでは、一般向け情報、会員のみに見せる情報、会員以外には一部の情報を制限する情報の3つの公開条件を使用する例を紹介します。

修正を行ったサンプル版CMS(高機能版不動産テーマ)をダウンロードできますので、併せて参考にしてください。

会員管理対応高機能版不動産CMSサンプル

設置場所

CMSと会員管理は同じディレクトリに設定できません。
一般的には、不動産CMSのディレクトリに、memberディレクトリ(名前はなんでも構いません)を作成して、そこに設置することをお勧めします。

会員登録やログインのURLは、不動産CMSの必要なページにリンクを用意するとよいと思います。

会員管理でログインした後などに、不動産CMSへ行くためのリンクは、会員管理のindex_.htmlに用意しておくと良いと思います。

CMSの項目設定

登録する個々の情報に公開条件を設定するための項目を用意します。
「設定->項目設定」で、情報の種別ごとに限定方法の項目を追加します。
処理を容易にするために、すべての種類で、同じ項目番号を使用することを前提としています。

この例では「項目21(info21)」を公開条件として使用しています。使用していない項目であれば、ほかの項目でも構いません。

公開条件の設定

選択項目は、次のような用途を想定しています。

項目 内容
一般 誰でも見ることができる情報
一般限定情報 会員以外は、一部の情報を見ることができない情報
会員のみ 会員のみ見ることができる情報

それぞれの種類に同様に設定し、登録済みの情報の公開条件を選択しておきます。

※以降の修正では、項目21を想定していますので、「info21」部分は、実際の公開条件の項目に変える必要が在ります。

CMSのindex.phpの設定

index.phpの修正は、複数カ所あり、内容が似たものもありますので、十分注意して修正をお願いします。
わかりにくい場合は、サンプルのindex.phpを参考にしてください。

・一覧に会員限定情報を出力しない設定

753行付近(修正後の行数です。以下同じ)

クリップボードにコピー

この修正は、物件一覧に会員専用の情報を出力しないためのものです。
一覧上で「会員のみご覧いただけます」などの表示をする場合は、この修正は不要です。
今回のサンプルでは、この機能を無効にしていますので、実際に使用する場合は、上記の説明の通り//を削除してください。

	$search["info21_C"] = array("一般", "一般限定情報");	// 管理画面の設定と一致すること

情報の種類の指定は、項目設定でしていたものと完全に一致する必要があります。

・一覧の限定情報を制御するためのマークの出力

935行付近

クリップボードにコピー

この処理は、一覧への出力を行う際に、ログインの有無により、情報の出力を制御します。
ログインしている場合は、すべての情報を出力できるようにして、会員限定情報の場合は、そのマークを出力します。
ログインしていない場合は、情報の限定条件の設定により、制限する情報のマークを出力しています。

「$list["member"]」は、その物件が会員限定であることを表示するために使用します。

「$list["limit"]」は、その物件が一般限定情報であることを表示するために使用します。

「$list["nodisp"]」は、会員のみの情報を表示しないようにするために使用します。

・一覧の一般限定情報の場合の、出力項目の設定

959行付近

クリップボードにコピー

この設定は、一般限定情報の場合に、公開する情報を設定する処理です。
「公開する情報」と書いてある部分の項目名に相当する情報のみ出力されます。

・詳細画面の限定条件のマークの出力

1018行付近

クリップボードにコピー

この処理では、詳細画面の出力の際に、ログインの有無により会員限定、一般限定情報のマークを出力します。
ログインしていない場合は、会員限定情報は一覧にリンクが出力されないはずですが、直接IDを指定して出力しようとした場合などに、ブロックするためにマークが必要になります。

「$list["member"]」は、その物件が会員限定であることを表示するために使用します。

「$list["limit"]」は、その物件が一般限定情報であることを表示するために使用します。

「$list["nodisp"]」は、会員のみの情報を表示しないようにするために使用します。

・詳細画面の一般限定情報の場合の、出力項目の設定

1097行付近

クリップボードにコピー

この処理は、一般情報限定の詳細情報の公開する情報の出力を行います。
「公開する情報」の部分の「"info5", "info3", "info8"」が出力される項目になります。
情報はいくつでも指定できます。増やす場合は、半角のカンマ(,)を入れて、項目名を半角のダブルクォーテーション(")で囲んでください。

HTMLの出力処理の変更

物件情報を出力しているHTMLのすべてで、限定情報の判定と処理が必要になります。

一覧出力では、会員限定とマーク(nodisp)とマークされている物件は、出力しない(会員限定と表示)様にする必要があります。

・index_.html

トップページ(index_.html)では、「最新物件情報」「最近チェックした物件」「おすすめ物件情報」で一覧出力を行っています。
この3カ所の修正が必要です。

(1) 最新物件情報

<!--{each list0}-->
<div class="list<!--{def list0/recommend2}--> option2<!--{/def}-->">
<!--{def list0/nodisp}-->
この物件は会員のみ閲覧できます
<!--{/def}-->
<!--{ndef list0/nodisp}-->
<a href="?act=bukken&id={val list0/info_id}">
〜省略〜
<!--{/ndef}-->
</div>
<!--{/each}-->

この例では、会員専用情報では、「この物件は会員のみ閲覧できます」と表示しています。

<!--{def list0/nodisp}-->
〜会員以外へ表示するメッセージ〜
<!--{/def}-->

これで囲まれた部分が、会員専用物件でログインしていない状態の場合に表示されることになります。

また、情報の表示制御のために、情報が次の処理で囲まれています。

<!--{ndef list0/nodisp}-->
〜物件情報〜
<!--{/ndef}-->

会員以外に表示する文と「def」と「ndef」の違いがあります。
「def」は、「nodisp」が定義されている場合を指定し、「ndef」は、定義されていない場合を指定します。
index.phpの処理で出力された、nodispマークをここで判定して表示を切り替えていることになります。

この方法は、他の一覧でも同じことになります。

また、個々の物件情報に限定条件の表示を行います。

<!--{def list0/member}-->(会員のみ公開)<!--{/def}-->
<!--{def list0/limit}-->(会員以外一部非公開)<!--{/def}-->

これは、会員限定の情報のマーク「member」が定義されている場合に、「(会員のみ公開)」と表示し、一般限定情報のマーク「limit」が定義されている場合に、「(会員以外一部非公開)」と表示します。

(2)最近チェックした物件

<!--{each history}-->
<div class="list">
<!--{def history/nodisp}-->
この物件は会員のみ閲覧できます
<!--{/def}-->
<!--{ndef history/nodisp}-->
〜省略〜
<!--{/ndef}-->
</div>
<!--{/each}-->

これは、最新物件情報と同じ処理です。ただし、「<!--{def history/nodisp}-->」の部分が、list0からhistoryに変わっていることに注意が必要です。

(3)おすすめ物件情報

<!--{each osusume}-->
<div class="list">
<!--{def osusume/nodisp}-->
この物件は会員のみ閲覧できます
<!--{/def}-->
<!--{ndef osusume/nodisp}-->
〜省略〜
<!--{/ndef}-->
</div>
<!--{/each}-->

これも、最新物件情報と同じ処理です。同様に「<!--{def osusume/nodisp}-->」のlist0がosusumeになっています。

index_.html以外のファイルの「最近見た物件」「おすすめ物件情報」なども同様に修正します。

・list.html

このファイルも、同様に一覧部分の修正が必要です。
「最近見た物件」「おすすめ物件情報」については、index_.htmlと同じですので、省略します。

一覧部分は、index_.htmlとは表示方法が少し異なります。

<!--{each list}-->
<!--{def list/nodisp}-->
<div class="list<!--{def list/recommend2}--> option2<!--{/def}-->">
<a id="{val list/info_id}">
<h4>
{val list/title}[No.{val list/info_id}] (会員限定情報)
</h4>
</a>
<span>情報を見るには、<a href="../member/?act=regist" target="_blank">会員登録</a>・<a href="../member/?act=userlogin" target="_blank">ログイン</a>してください。</span>
<!--{/def}-->
<!--{ndef list/nodisp}-->
<div class="list<!--{def list/recommend2}--> option2<!--{/def}-->">
<a href="?act=bukken&id={val list/info_id}">
〜省略〜
</a>
<!--{/ndef}-->
</div>
<!--{/each}-->

ログインしていない場合、会員限定情報は、タイトルとIDの後に「(会員限定情報)」と表示されます。
タイトルも隠したい場合は、「{val list/title}[No.{val list/info_id}]」の部分を削除するか、書き換えてください。

会員登録やログインのリンクが設定されていますが、会員管理のディレクトリ位置などにあわせて、書き換えてください。

会員のみ公開や、一般限定情報の場合の表示を次の部分で行っています。

<!--{def list/member}-->(会員のみ公開)<!--{/def}-->
<!--{def list/limit}-->(会員以外一部非公開)<!--{/def}-->

これは、会員限定の情報のマーク「member」が定義されている場合に、「(会員のみ公開)」と表示し、一般限定情報のマーク「limit」が定義されている場合に、「(会員以外一部非公開)」と表示します。

・item.html

物件詳細表示画面も同様の修正を行います。
「最近見た物件」「おすすめ物件情報」については、index_.htmlと同じですので、省略します。

<h2>
{val item/title} [No.{val item/info_id}] 
<!--{def item/new_flag}--><span class="newicon">NEW</span><!--{/def}-->
<!--{def item/update_flag}--><span class="upicon">UP</span><!--{/def}-->
<!--{def item/recommend1}--><span class="option1">おすすめ</span><!--{/def}-->
<!--{def item/recommend2}--><span class="option2">ご契約済</span><!--{/def}-->
<!--{def item/recommend3}--> キャンペーン物件 <!--{/def}-->
<!--{def item/limit}--><span class="option1">会員以外情報限定</span><!--{/def}-->
<!--{def item/member}--><span class="option1">会員限定</span><!--{/def}-->
</h2>
<!--{def item/nodisp}-->
この物件は会員専用です。
<!--{/def}-->
<!--{ndef item/nodisp}-->
〜省略〜
<!--{/ndef}-->
</div>
<!--{/each}-->

会員専用情報は、一覧から詳細画面へのリンクをしませんが、URLで直接物件IDを指定することで、表示される場合があります。
このため、nodispによる表示制限を行います。

<!--{def item/limit}--><span class="option1">会員以外情報限定</span><!--{/def}-->
<!--{def item/member}--><span class="option1">会員限定</span><!--{/def}-->

これにより、一般限定情報(limit)とログインしている場合の会員限定情報(member)への限定種別の表示を行います。

・style.cssの修正

サンプルでは、一覧に会員専用の表記を追加していますが、このためにstyle.cssが変更されています。
同様に行う場合は、style.cssの対応をしてください。(利用しているテンプレートによっては、若干異なる可能性があります)

修正前(196行付近)

/*各ボックスの設定*/
#main .list {
	margin-bottom: 15px;	/*ボックスの下に空ける余白*/
	position: relative;
	overflow: hidden;
	box-shadow: 0px 1px 3px rgba(0,0,0,0.15);	/*ボックスの影。右に、下に、広げる幅、0,0,0は黒の事で0.15は透明度15%の事。*/
}
#main .list a {
	text-decoration: none;
	display: block;
	overflow: hidden;
	border: 1px solid #dcdcdc;	/*枠線の幅、線種、色*/
	padding: 3%;	/*ボックス内の余白*/
}

修正後

/*各ボックスの設定*/
#main .list {
	margin-bottom: 15px;	/*ボックスの下に空ける余白*/
	position: relative;
	overflow: hidden;
	box-shadow: 0px 1px 3px rgba(0,0,0,0.15);	/*ボックスの影。右に、下に、広げる幅、0,0,0は黒の事で0.15は透明度15%の事。*/
	border: 1px solid #dcdcdc;	/*枠線の幅、線種、色*/
}
#main .list > a {
	text-decoration: none;
	display: block;
	overflow: hidden;
	padding: 3%;	/*ボックス内の余白*/
}

/*メンバーCMS生成ツール用に追加*/
#main .list span a {
	padding: 0;
	display: inline;
	border: none;
}
#main .list span:not(.upicon):not(.newicon):not(.date):not(.option1):not(.option2) {
	display: block;
	margin: 0 3% 3%;
}

一覧(list.html)に次の行を出力する場合にのみ、上記の修正が必要になります。

<span>情報を見るには、<a href="../member/?act=regist" target="_blank">会員登録</a>・<a href="../member/?act=userlogin" target="_blank">ログイン</a>してください。</span>

ログインユーザーの表示など

不動産CMS側で、ログインユーザーの情報を表示する方法について説明します。
また、ログアウトなどのリンクを設置することができます。

・index.phpの修正

会員のログイン情報は、$_SESSION["USERLOGIN"] に保存されており、これをhtmlから参照するために次の修正をします。

253行付近

// ------------------------------
// 会員ログイン情報
$data["userlogin"] = $_SESSION["USERLOGIN"];	// 会員がログイン中か判定
// --------------------------------

これにより、「userlogin」でログイン中かや、ログインユーザの情報を表示できます。

・htmlの修正

html側で、ログインユーザーの名前を表示する例です。(サンプルのlist.htmlに入っています)

<!--{def userlogin}-->
ログイン:{val userlogin/item1}様<br>
<!--{/def}-->

この例では、メンバー管理CMS生成の際に「項目1(item1)」に名前を設定した場合です。
別の項目に設定した場合は、item1をその項目に変更してください。
また、名前以外を同様に表示することも可能です。

ログインしている場合に、ログアウトをメニューに出力するためには、次のようにします。

<!--{def userlogin}-->
<li><a href="../member/?act=userlogout">ログアウト</a></li>
<!--{/def}-->

メンバー管理CMSの設置場所により、リンク先 ../member/?act=userlogout の部分を修正してください。

メッセージなど設定の修正

表示されるメッセージや、メールの件名、文面などの修正が可能です。
修正は、setup.phpで行います。

なお、メッセージや項目は、認証方法の指定により、一部異なります。

メッセージ類のうち、ブラウザに表示されるもので改行を行いたい場合は、<br>を使用します。
メールの文面などの場合は、改行は\nを使用します。(\は半角の¥記号です)

メッセージなどの設定は、"で前後を囲まれています。
メッセージ中に"を含める場合は、\"のようにしてください。(\は半角の¥記号です)

※メッセージの設定にミスがあると、プログラム自体がエラーで動作しなくなる場合があります。
バックアップを取りながら、1つずつ慎重に修正を行ってください。

項目 内容
$mail_sys 管理者のメールアドレス
$from_name メール送信者の表示
$from_mail メール送信者のメールアドレス(返信先)
$user_mail 利用者にメールを送る場合のメールアドレス項目(修正しないでください)
$user_passwd 利用者のパスワード項目(修正しないでください)
$passwd_len パスワード最小桁数
$title システムタイトル
$subject ユーザー向け件名
$body ユーザー向け本文・登録時
$subject_sys 管理者向け件名
$body_sys 管理者向け本文・登録時
$footer 署名(メールの後ろに付け加えられる)
$confirm_message 登録確認メッセージ
$complete_message 登録完了メッセージ
$passwd_message パスワード問い合わせ用メッセージ
$subject_passwd パスワードのお知らせ件名
$body_passwd パスワードの通知本文([PASSWORD]がパスワードに置き換わる)
$passwd_end_message パスワード通知完了メッセージ
$login_success ログイン成功メッセージ
$login_error ログインエラーメッセージ
$logout_message ログアウトメッセージ
$email_error1 メールアドレスが入力なしメッセージ
$email_error2 メールアドレスが該当なしのメッセージ
$email_error3 メールアドレスが登録済みメッセージ
$url_error 登録などのURLが有効ではない(すでに使用済みなど)
$regist_success 登録が完了した場合のメッセージ
$regist_success2 登録が完了した場合のメッセージ(管理者認証時)
$subject_regist 登録完了メール件名
$body_success 登録が完了メール本文
$regist_pre 事前メール認証のメッセージ
$subject_regist_pre メール認証用メールの件名
$body_regist_pre メール認証用メールの本文
$regist_success 事前メール認証の登録完了メッセージ
$regist_post 事前メール認証のメッセージ
$subject_regist_post メール認証用メール件名
$body_regist_post 事後メール認証の認証メール送信メッセージ
$regist_post_success 事後メール認証の認証完了メッセージ