メインコンテンツまでスキップ

Tutorial5:会員管理


会員管理を追加する

会員の概念を追加し、会員ページや会員だけがアクセスできるページを作成していきます。

サンプルサイト>ログイン・会員情報コンテンツ

以下の手順で作成していきます。
  1. userモジュールの管理
    1. ユーザーシートの作成
    2. 項目の設計・作成
    3. ユーザーシートの編集
  2. ユーザーコンテンツの作成
    1. 登録コンテンツ
    2. 詳細コンテンツ
    3. ログインコンテンツ
    4. 編集コンテンツ
    5. パスワード再設定コンテンツ
  3. 自動配信メールの設定

userモジュールの管理

モジュール「user」を使って会員管理をします。

1. ユーザーシートの作成

「設定」⇒「モジュール」⇒「user(シート作成)」

項目選択内容・記述選択・記述例
ユーザー名称適宜会員
シートエイリアス適宜membership
排他制御有効/無効有効
アカウント状態(初期値)有効/無効無効
メール受信(初期値)有効/無効有効

ステータス設定について

  • アカウント状態(初期値)

    1. 有効:コンテンツからユーザー登録時、ステータスが「有効」
    2. 無効:コンテンツからユーザー登録時、ステータスが「無効」
      1. 管理者が、ステータスを「有効」にする
      2. 自動配信メール中にあるアクティベートURLで、登録者がステータス変更(無効から有効)をする
  • メール受信(初期値)

    1. 有効:登録時のメール受信状態が有効
    2. 無効:登録時のメール受信状態が無効
      自動配信メールも届かないので、特にアクティベートメールを利用する場合には注意が必要

2. 項目の設定

会員情報の項目を設定・設計し、登録します。

シート設定に必要な特定項目の注意点

シート編集時に設定する項目の条件は、以下のとおりです。

  • 共通
      項目種別:文字列(1行)
  • ログインキー
      ID、または、入力必須かつ重複禁止に設定された項目
  • メール配信設定
      項目定義:メールアドレス
  • パスワード再設定用メールアドレス
      項目定義:メールアドレス
      重複設定:禁止する
      必須設定:必須

3. ユーザーシートの編集

参考:user|シート編集

項目作成した後に、シートの編集設定をします。

  • コンテンツ設定「ログインキー」:ユーザーがログインするためのキー(ログインID)項目を設定
  • メール配信設定「メールアドレス設定」:自動配信メールやsendモジュールの送信先メール項目
  • メール配信設定「パスワード再設定用メールアドレス」:パスワードを再発行するための認証用メールアドレス

コンテンツの作成

1. ユーザーコンテンツ

ユーザー関連のコンテンツを作成します。
ユーザーシートに関連するコンテンツは以下になります。

  • ユーザー登録コンテンツ
  • ユーザー詳細コンテンツ
  • ユーザーログインコンテンツ
  • ユーザー編集コンテンツ
    • データ編集
    • 退会
    • パスワード変更
  • ユーザーパスワード再設定コンテンツ
作成順の提案
  1. ユーザー登録コンテンツの作成・動作確認
  2. ユーザー詳細コンテンツの作成
  3. ユーザーログインコンテンツの作成・動作確認
    ログイン先URLに「ユーザー詳細」コンテンツのIDを記述
    例)./contents.php?c=mypage
  4. ユーザー編集コンテンツの作成・動作確認
  5. ユーザー編集(退会・パスワード変更)コンテンツの作成・動作確認
  6. ユーザーパスワード再設定コンテンツの作成
    ログイン先URLはユーザー編集(パスワード変更)
  7. パスワード再設定の自動配信メールの設定
    ログインコンテンツにリンクを作成
  8. パスワード再設定の動作確認
  9. その他自動配信メールの設定・動作確認
    ユーザー登録・編集・ステータス変更・パスワード変更など
  10. 登録時アクティベートメールでユーザーにステータス変更をさせるための設定変更と動作確認
ユーザー編集コンテンツについて

「退会」「パスワード変更」は、それぞれモード切替のためのタグが必要になります。そのため、それぞれ別のコンテンツが必要になります。

  • モード切替|hidden|退会<input type="hidden" name="design" value="delete">
  • モード切替|hidden|パスワード変更<input type="hidden" name="design" value="pass">

2. ユーザー権限のコンテンツ

  • ユーザーは、自身のエントリーデータの閲覧・参照や編集が可能
    • エントリー一覧・詳細
    • エントリー削除
  • その他、アイテムやエントリーなどの閲覧権限を制御することも可能
ユーザー権限と一般権限による閲覧制限の例
  1. イベント応募のとき、有料イベントならば会員をエントリー画面へ、一般を会員登録へ誘導する
@if( record.item_type == "有料" )
@if( current_account.type == "user" )
<a href="./contents.php?c=event-entry&item={{ record.id }}">申込</a>
@else
<a href="./contents.php?c=user-regist">会員登録</a>
@endif
@else
<a href="./contents.php?c=event-entry&item={{ record.id }}">申込</a>
@endif
  1. イベント一覧やイベント詳細コンテンツを、会員/一般の2種類作成し、公開範囲で制御する コンテンツ設定>公開範囲

ユーザーコンテンツのまとめとヒント

1. ユーザー登録コンテンツ

  • 公開範囲:「一般」のみ
  • 閲覧権限外の転送URL: 一般以外でアクセスしたときにリダイレクトするページを指定
  • パスワード登録の変数を置かない場合、パスワードはランダム生成する
    自動生成されたパスワードは、自動配信メールでお知らせします。

2. ユーザーログインコンテンツ

  • 公開範囲:「一般」のみ
  • ログイン先URL: ログインしたときに表示されるページを指定
    公開範囲に会員を含むページを設定してください。
  • ログアウト先URL: ログアウトしたときに表示されるページを指定
    公開範囲に一般を含むページを設定してください。

3. ユーザーパスワード再設定コンテンツ

  • パスワードを忘れたときに、パスワードを要求するコンテンツ
  • 公開範囲:「一般」のみ
  • ログイン先URL: メールからアクセスするページを指定
    このとき、パレットCMSへはユーザー権限(ログインした状態)でアクセスしています。
    閲覧権限がユーザーであるコンテンツを設定してください。
    パスワード変更のみのコンテンツ(会員ページへの動線のないコンテンツ)を別途作成することをお勧めします。
  • ログアウト先URL: メールからログインしたページからのログアウト先を指定
    閲覧権限が一般であるコンテンツを設定してください。
  • メールの有効期限の設定は「設定>システム設定|メール」を開き「パスワード再設定有効期間」を確認

4. ユーザー詳細コンテンツ

  • 会員情報のページ
  • 公開範囲:「会員」のみ(シートを選択)
  • 参照制限は基本的に「自身」で、ログインしたユーザーの情報を表示
    ※参照制限「全て」「他人」のとき、公開範囲の該当者であれば「システムID」、「ID」からアクセスすることは可能
    ※ユーザー一覧コンテンツはありません。

5. ユーザー編集コンテンツ

  • 会員情報の編集ページ
  • 退会
    • 退会用のコードを置く必要があります。
    • 完了後、ユーザーステータスを「無効」に変更
      完了画面から一般権限のコンテンツへ移動する動線のみにすることをお勧めします。
  • パスワード変更
    • パスワード変更用のコードを置く必要があります。

自動配信メールの設定

userモジュール固有のメール設定について
  • 会員登録:アクティベートメール
  • パスワード再設定メール

1. 会員登録:アクティベートメールの設定

アクティベートメールとは、会員(ユーザー)登録の自動配信メールに、ステータス初期値「無効」を「有効」に変更(アクティベーション)するための変数[activate]を使ったメールです。
参考:アクティベートメール変数の利用方法

  1. 会員ステータス「有効」のシステムIDを取得
    1. 会員一覧 の右上歯車⚙️から シート項目
    2. 設定▲アカウント状態 を選択
    3. 有効 を選択
    4. システムID を取得
  2. 会員の初期ステータスを「無効」に設定
  3. 着地点となるコンテンツを確認
    1. 公開範囲が「ユーザー」であることを確認
    2. コンテンツID を取得
  4. 設定>システム設定|メールを開き「アクティベートURL有効期間」を確認
  5. 会員登録をトリガーとする自動配信メールを設定
    1. 配信条件「user/[シート名]/一般/一般/送信/登録」を有効
    2. テンプレート作成
      本文に「アクティベートURL【引数対応】 ⇔ [activate]」を置く
      • 引数を設定 [activate:第一引数:第二引数]
        • 第一引数:有効ステータスのシステムID
          1.iv.で取得したシステムID
        • 第二引数:着地点となるコンテンツID
          3.ii.で取得したコンテンツID

2. パスワード再設定メール

  1. 配信条件「user/[シート名]/一般/一般/送信/パスワード再設定」を有効
  2. テンプレート作成 本文に「パスワード再設定URL[url]」を置く
    • メール記載のURLからは、パスワード再設定コンテンツで指定した「ログイン先URL」に行きます。
  3. コードスニペット利用のとき、エラーがポップアップで表示されます。「スクリプト|jQuery」「スクリプト|SweetAlert」を組み込むことをお勧めします。

動作確認

  • コンテンツから登録、ログイン、編集、パスワード再設定ができることを確認
  • メールが届くことを確認
  • メールからログインできることを確認(アクティベートメール、パスワード再設定)