Login モジュール【~ Ver. 3.0】

この機能は Ver. 3.1 で廃止されました。新しい会員機能についてのドキュメントは以下をご覧ください。

ログイン・会員機能の基本

a-blog cms では、会員制サイトを作成するための読者登録機能が標準機能として搭載されています。また、SNSログインや2段階認証など、メールアドレス/ユーザーIDとパスワード以外でのログイン認証についても標準機能としてサポートされている他、パスワードポリシー設定などのセキュリティに関する設定も標準機能として提供されています。

主な機能としては以下のようなものがあげられます。

  • メールアドレスとパスワードによるログイン認証
  • SNSアカウントによるログイン認証
  • 2段階認証
  • ユーザー登録の外部申請(サイト閲覧者がアカウント登録をすることができる機能)
  • メールアドレスの有効性チェック
  • パスワード変更機能
  • パスワードポリシー(パスワードのルール)の設定

Login モジュール

a-blog cms では、ログイン認証や、読者登録機能ついては、Login モジュールとして提供しております。ログイン認証や、パスワード変更、外部申請によるユーザー登録などは POST 操作になりますので、POSTモジュールとして提供されています。Login モジュールはログイン認証や、パスワード変更、外部申請によるユーザー登録などでPOSTモジュールを実行した結果を表示するためのモジュールになります。

Login モジュールで利用できるブロック



ブロック名 概要
auth https://a-blogcmsの設置場所/config.server.php で LOGIN_SEGMENT に指定した文字列/ のURLにアクセスした時に表示されるブロックです。メールアドレスとパスワードによるログインやSNSログインの認証フォームを表示します。
reset Login_Remindモジュールで発行されたパスワード変更URLからアクセスした場合に表示されるブロックです。パスワード変更フォームを表示します。
tfa メールアドレスとパスワードによるログイン認証時、2段階認証が有効になっている場合に表示されるブロックです。2段階認証コードを入力して2段階認証を行うフォームを表示します。
recovery alt のURLコンテキストに recovery が指定されている場合に表示されるブロックです。2段階認証を無効にするフォームを表示します。
subscribe alt のURLコンテキストに subscribe が指定されているかつ、コンフィグ > ログイン設定 > 読者登録機能の ユーザー登録の外部申請が有効になっている場合に表示されるブロックです。ユーザーを外部から登録するためのフォームを表示します。
remind alt のURLコンテキストに remind が指定されている場合に表示されるブロックです。パスワード変更メールを送信するフォームを表示します。
<!-- BEGIN_MODULE Login -->
<section>
  <form action="" method="post" class="h-adr js-validator">

    <!-- BEGIN auth -->
    <!-- ログイン -->
    <!-- END auth -->

    <!-- BEGIN reset -->
    <!-- パスワード変更 -->
    <!-- END reset -->

    <!-- BEGIN subscribe -->
    <!-- 新規ユーザー登録 -->
    <!-- END subscribe -->

    <!-- BEGIN remind -->
    <!-- パスワード変更メールの送信 -->
    <!-- END remind -->

    <!-- BEGIN tfa -->
    <!-- 2段階認証 -->
    <!-- END tfa -->

    <!-- BEGIN recovery -->
    <!-- 2段階認証の無効化 -->
    <!-- END recovery -->
  </form>
</section>
<!-- END_MODULE Login -->

以下のブロックは、上記のブロックの中で使用することができるブロックです。



ブロック名 概要
submit GETによるアクセス(初回アクセス)や POSTモジュールの処理が失敗してエラーが発生した場合に表示されます。POSTモジュールの処理が成功した場合に非表示にしたいテンプレートに活用します。
sendMsg#before GETによるアクセス(初回アクセス)の場合に表示されるブロックです。初回アクセス時のみ表示したいテンプレートで活用します。
sendMsg#after POST によるアクセスかつ、POSTモジュールの処理が成功した場合に表示されるブロックです。POST モジュールの処理(パスワード変更やユーザー登録)が成功した場合に表示したいテンプレートに活用します。
subscribeLink コンフィグ > ログイン設定 > 読者登録機能の ユーザー登録の外部申請が有効になっている場合に表示されるブロックです。読者登録機能が有効になっている場合のみ表示したいテンプレートに活用します。
<!-- BEGIN_MODULE Login -->
<section>
  <form action="" method="post" class="h-adr js-validator">
    <!-- BEGIN subscribe -->
    <!-- BEGIN sendMsg#before -->
    <p>登録いただくと指定されたメールアドレスに確認メールが送信されます。メールの内容に従って登録を完了してください。</p>
    <!-- END sendMsg#before -->
    <!-- BEGIN sendMsg#after -->
    <p class="acms-alert acms-alert-info alert">入力されたメールアドレス宛に、確認用メールを送信しました。</p>
    <!-- END sendMsg#after -->

    <!-- BEGIN submit -->
    <button type="submit" class="btn" name="ACMS_POST_Login_Subscribe">会員登録</button>
    <!-- END submit -->
    <!-- END subscribe -->
  </form>
</section>
<!-- END_MODULE Login -->

Login モジュールで利用できる変数



変数名 概要
step GETによるアクセス(初回アクセス)では 'step' 、POSTモジュール実行後かつ、POSTモジュールの処理が成功した場合は 'result' 、POSTモジュール実行後かつ、POSTモジュールの処理が失敗した場合は 'reapply' が表示されます。IFブロックと組み合わせて利用します。
trialTime コンフィグ > ログイン設定 > セキュリティのアカウントロックで設定した、パスワード認証の再試行制限の時間(分)
trialNumber コンフィグ > ログイン設定 > セキュリティのアカウントロックで設定した、パスワード認証の再試行制限の回数
lockTime コンフィグ > ログイン設定 > セキュリティのアカウントロック時間で設定したアカウントがロックされた場合の時間(分)
passwordPolicyMessage コンフィグ > ログイン設定 > パスワードポリシーで設定したメッセージ

また、Form モジュール と同じく送信した値は変数として表示できます。また、バリデーターやコンバーターも Form モジュールと同じ形式で利用できます。

注意点として、Login 系の POST モジュールでは、プログラム側で強制的にバリデーションを設定しているため、テンプレートにバリデーターを設定していなくても、バリデータのエラーが表示されます。

例えば、Login_Auth モジュールでは、コンフィグ > ログイン設定 > アカウントロックで設定した、パスワード認証の再試行制限に引っかかった場合、mail というフィールドの lock というオプションでエラーが表示されます。

<p class="validator-result-{mail:validator#lock} acms-admin-alert acms-admin-alert-danger">{trialNumber}回ログインに失敗したため、アカウントがロックされました。{lockTime}分後にもう一度試してください。</p>

POSTモジュールで設定しているバリデーターはモジュールごとに異なるため、各種POSTモジュールのページを参照してください。

メールアドレス認証URLからアクセスした場合に利用できるブロック

コンフィグ > ログイン設定 > 読者登録機能で、メールアドレスの有効性確認が行われる設定になっている場合、Login_Subscribe モジュールでユーザー登録を行った場合、自動返信メールに記載されているメールアドレスの有効性認証のためのURLにアクセスして初めてユーザーがログインできるようになります。

Login モジュールでは、メールアドレスの有効性認証のためのURLからアクセスした場合に、ユーザーのメールアドレス認証が成功したかどうかの結果を表示するために以下のブロックが使用できるようになります。



ブロック名 概要
subscribe.enableAccount メールアドレスの有効性認証が成功した場合に表示されるブロックです。
subscribe.badRequest メールアドレスの有効性認証のためのURLの形式が不正であるために、メールアドレスの有効性認証が失敗した場合に表示されるブロックです。
subscribe.expired メールアドレスの有効性認証のためのURLの有効期限切れが原因で、メールアドレスの有効性認証が失敗した場合に表示されるブロックです。有効期限は コンフィグ > ログイン設定 > 読者登録機能の確認メールの有効時間で設定可能です。
subscribe.notFound メールアドレスの有効性認証を行う対象となるユーザーが見つからなかったために、メールアドレスの有効性認証が失敗した場合に表示されるブロックです。既にメールアドレスの有効性を認証済みかユーザーが削除されている場合などに表示されます。
<!-- BEGIN subscribe.enableAccount -->
<p class="acms-admin-alert acms-admin-alert-info">アカウントを有効化しました。メールアドレスとパスワードを入力してログインください。</p>
<!-- END subscribe.enableAccount -->
<!-- BEGIN subscribe.badRequest -->
<p class="acms-admin-alert acms-admin-alert-danger">不正なアクセスです。</p>
<!-- END subscribe.badRequest -->
<!-- BEGIN subscribe.expired -->
<p class="acms-admin-alert acms-admin-alert-danger">有効期限切れのURLです。再度申請ください。</p>
<!-- END subscribe.expired -->
<!-- BEGIN subscribe.notFound -->
<p class="acms-admin-alert acms-admin-alert-danger">すでに有効済みか無効なURLです。</p>
<!-- END subscribe.notFound -->

パスワード変更URLからアクセスした場合に利用できるブロック

Login_Remind モジュールで発行したパスワード変更URLにアクセスした場合に、そのアクセスが有効かどうかの検証を行っています。その検証結果を表示するために以下のブロックが使用できるようになります。



ブロック名 概要
reset.success 2段階認証有効時にパスワード変更を行った場合に表示されます。2段階認証が無効の場合は、パスワード変更後、ブログのトップページへリダイレクトされるため基本は利用しません。
reset.badRequest パスワード変更URLの形式が不正であるために、パスワード変更URLの有効性検証が失敗した場合に表示されるブロックです。
reset.expired パスワード変更URLの有効期限切れが原因で、パスワード変更URLの有効性検証が失敗した場合に表示されるブロックです。有効期限は コンフィグ > ログイン設定 > セキュリティのパスワード変更の有効時間で設定可能です。
reset.notFound パスワード変更URLの有効性検証を行う対象となるユーザーが見つからなかったために、パスワード変更URLの有効性検証が失敗した場合に表示されるブロックです。既にパスワード変更URLの有効性を認証済みかユーザーが削除されている場合などに表示されます。
<!-- BEGIN reset.success -->
<p class="acms-admin-alert acms-admin-alert-info">パスワードを変更しました。</p>
<!-- END reset.success -->
<!-- BEGIN reset.badRequest -->
<p class="acms-admin-alert acms-admin-alert-danger">不正なアクセスです。</p>
<!-- END reset.badRequest -->
<!-- BEGIN reset.expired -->
<p class="acms-admin-alert acms-admin-alert-danger">有効期限切れのURLです。再度申請ください。</p>
<!-- END reset.expired -->
<!-- BEGIN reset.notFound -->
<p class="acms-admin-alert acms-admin-alert-danger">不正なアクセスです。</p>
<!-- END reset.notFound -->

Login_Auth モジュール【~ Ver. 3.0】

この機能は Ver. 3.1 で廃止されました。新しい会員機能についてのドキュメントは以下をご覧ください。

ログイン・会員機能の基本

Login_Auth モジュールとは、メールアドレスとパスワードによるログイン認証及び、2段階認証を行うための POST モジュールです。

メールアドレスとパスワードによるログイン認証を行うことが出来ます。また、メールアドレスの代わりにユーザーIDを指定することも可能です。ログイン後はコンフィグ > ログイン設定 > 基本設定の設定に従ってリダイレクトされます。例外として、2段階認証が有効になっている場合は1度目のログイン後のリダイレクトは行われません。2段階認証が成功した場合にリダイレクトが行われます。

また、2段階認証も Login_Auth モジュールの処理として行われます。

有効なフィールド(項目)

Login_Auth モジュールで有効なフィールド(項目)について説明します。以下のフィールド(項目)が送信できます。

また、Login_Auth モジュールで送信するフィールド(項目)は name 属性に login[] を、 value 属性に 送信したいフィールド(項目)名を指定した input タグを一緒に記述する必要があります。

<input type="password" name="pass" value="{pass}"  class="acms-admin-form-large  validator-result-{pass:validator#auth}" autocomplete="off" />
<input type="hidden" name="login[]" value="pass" />


フィールド名(項目) 概要 入力例
mail ログインするユーザーのメールアドレスまたは、ユーザーIDです。 info@example.com
pass ログインするユーザーのパスワードです。 password
redirect ログイン後のリダイレクト先をパス指定で指定します。この指定はコンフィグ > ログイン設定 > 基本設定の「現在のURLでログイン」や「ログイン後ページの指定」より優先されます。 /news/
tfa このフィールドが on の場合、2段階認証コードの検証を行います。 on
code 2段階認証コードです。 928676

Login_Auth モジュールのサンプルコード

<!-- BEGIN_MODULE Login -->
<form action="" method="post" enctype="multipart/form-data">
  <!-- BEGIN auth -->
  <div class="acms-admin-loginBox clearfix">
      <div class="acms-admin-siteImageText">ログイン</div>
      <div class="acms-admin-form">
        <p class="validator-result-{mail:validator#restriction} acms-admin-alert acms-admin-alert-danger">お使いの端末(ブラウザ)からはログインが禁止されています。<br>管理者にお問い合わせ下さい。</p>
        <p class="validator-result-{pass:validator#auth} acms-admin-alert acms-admin-alert-danger">ユーザーIDまたはパスワードが違います。</p>
        <p class="validator-result-{mail:validator#lock} acms-admin-alert acms-admin-alert-danger">{trialNumber}回ログインに失敗したため、アカウントがロックされました。{lockTime}分後にもう一度試してください。</p>

        <label class="acms-admin-form-block acms-admin-clear">ユーザーID / メールアドレス</label>
        <input type="text" name="mail" value="{mail}" class="acms-admin-form-large  validator-result-{pass:validator#auth}" id="input-text-mail" placeholder="" />
        <input type="hidden" name="login[]" value="mail" />
        <label class="acms-admin-form-block">パスワード</label>
        <input type="password" name="pass" value="{pass}"  class="acms-admin-form-large validator-result-{pass:validator#auth}" autocomplete="off" />
        <input type="hidden" name="login[]" value="pass" />
        <input type="hidden" name="redirect" value="%{redirect}" />
        <input type="hidden" name="login[]" value="redirect" />
      </div>
      <p class="loginAction">
        <button type="submit" class="acms-admin-btn-admin acms-admin-btn-admin-primary acms-admin-btn-block acms-admin-btn-large" name="ACMS_POST_Login_Auth">ログイン</button>
      </p>
  </div>
  <!-- END auth -->
</form>
<!-- END_MODULE Login -->

a-blog cms ではクエリストリングの値をグローバル変数として取得する事ができるため、上記のサンプルコードでは、redirect に クエリストリングの値を指定することで動的にリダイレクト先を指定できるようにしています。

エラー時の表示

Login_Auth モジュールで何らかのエラーが起きた場合には以下のフィールド(項目)がバリデーションエラーとして表示されます。



フィールド(項目)名 オプション名 概要
pass auth コンフィグ > アクセス設定 > ログイン制限で設定した制限に引っかかった場合に発生するエラー
mail lock コンフィグ > ログイン設定 > アカウントロックで設定した、パスワード認証の再試行制限に引っかかった場合に発生するエラー
mail restriction ログイン拒否端末からログインした場合に発生するエラー
code auth 2段階認証に失敗した場合に発生するエラー

Login_Remind モジュール【~ Ver. 3.0】

この機能は Ver. 3.1 で廃止されました。新しい会員機能についてのドキュメントは以下をご覧ください。

ログイン・会員機能の基本

Login_Remind モジュールとは、入力されたメールアドレスに対して、パスワード変更用のURLが記載されたメールの送信を行うための POST モジュールです。

パスワード変更用のURLの有効期限は、コンフィグ > ログイン設定 > セキュリティ のパスワード変更の有効時間から設定可能です。

有効なフィールド(項目)

Login_Remind モジュールで有効なフィールド(項目)について説明します。以下のフィールド(項目)が送信できます。

また、Login_Remind モジュールで送信するフィールド(項目)は name 属性に login[] を、 value 属性に 送信したいフィールド(項目)名を指定した input タグを一緒に記述する必要があります。

<input type="email" name="mail" value="{mail}"  class="acms-admin-form-large" autocomplete="email" />
<input type="hidden" name="login[]" value="mail" />


フィールド名(項目) 概要 入力例
mail(必須) パスワードリセット用のURLが記載されたメールの送信先となるメールアドレス info@example.com

Login_Remind モジュールのサンプルコード

!-- BEGIN_MODULE Login -->
<form action="" method="post" enctype="multipart/form-data">
  <!-- BEGIN remind -->
  <div class="acms-admin-loginBox">
      <div class="acms-admin-siteImageText"><span class="acms-admin-label" style="background-color:%{BLOG_THEME_COLOR};">%{BLOG_NAME}</span>&nbsp;<span class="acms-admin-label"><!--T-->パスワード変更<!--/T--></span></div>
      <!-- BEGIN sendMsg#before -->
      <p class="acms-admin-alert acms-admin-alert-info">パスワードの再設定をご案内するメールを送信します。</p><!-- END sendMsg#before --><!-- BEGIN sendMsg#after -->
      <p class="acms-admin-alert acms-admin-alert-info">パスワードの再設定をご案内するメールを送信しました。</p><!-- END sendMsg#after -->

      <p class="validator-result-{mail:validator#required} acms-admin-alert acms-admin-alert-danger">メールアドレスが入力されていません。</p>
      <p class="validator-result-{mail:validator#exist} acms-admin-alert acms-admin-alert-danger">登録されていないメールアドレスです。</p>
      <p class="validator-result-{mail:validator#confirmed} acms-admin-alert acms-admin-alert-danger">有効化されていないメールアドレスです。</p>
      <p class="validator-result-{mail:validator#send} acms-admin-alert acms-admin-alert-danger">メールの送信に失敗しました。システムの設定に問題があります。システムの管理者にお問い合わせください。</p>

      <div class="acms-admin-form">
        <label class="acms-admin-form-block acms-admin-clear">メールアドレス</label>
        <input type="email" name="mail" value="{mail}" class="acms-admin-form-large validator-result-{mail:validator#required} validator-result-{mail:validator#exist} validator-result-{mail:validator#send}" id="input-text-mail" placeholder="" />
        <input type="hidden" name="login[]" value="mail" />
      </div>
      <!-- BEGIN submit -->
      <p class="loginAction">
        <button type="submit" class="acms-admin-btn-admin acms-admin-btn-admin-primary acms-admin-btn-block acms-admin-btn-large" name="ACMS_POST_Login_Remind">パスワード再設定メールを送る</button>
      </p><!-- END submit -->
    </div>
  <!-- END remind -->
</form>
<!-- END_MODULE Login -->

エラー時の表示

Login_Remind モジュールで何らかのエラーが起きた場合には以下のフィールド(項目)がバリデーションエラーとして表示されます。



フィールド名(項目) オプション名 概要
mail required メールアドレスが入力されていない場合に発生するエラーです。
mail exist 指定したメールアドレスで有効化されているユーザーが存在しない場合に発生するエラーです。
mail confirmed 指定したメールアドレスのユーザーがメールアドレスの有効性が認証されているユーザーでない場合に発生するエラーです。
mail send メールの送信が失敗した場合に発生するエラーです。

パスワード再設定メールで使用できる変数

パスワード再設定メールでは以下の変数が使用できます。



変数名 概要
resetUrl パスワード変更用のURL

Login_ResetPassword モジュール【~ Ver. 3.0】

この機能は Ver. 3.1 で廃止されました。新しい会員機能についてのドキュメントは以下をご覧ください。

ログイン・会員機能の基本

Login_ResetPassword モジュールとは、ユーザーのパスワード変更を行うための POST モジュールです。

ユーザーのパスワードをユーザー自身が指定したパスワードに変更できます。パスワード変更が成功すると自動的にログインし、現在のブログのトップページにリダイレクトされます。

ユーザーがログインパスワードを忘れてログインできない場合に、パスワードの再設定を行い、ログインできるようにするために利用できます。

また、Login_ResetPassword モジュールは Login_Remind モジュールで発行されたパスワード変更のURLから実行する必要がありますのでご注意ください。

2段階認証が有効な場合は、パスワード変更が成功した場合でもリダイレクトせず、そのままログイン画面に遷移します。

有効なフィールド(項目)

Login_ResetPassword モジュールで有効なフィールド(項目)について説明します。以下のフィールド(項目)が送信できます。

また、Login_ResetPassword モジュールで送信するフィールド(項目)は name 属性に user[] を、 value 属性に 送信したいフィールド(項目)名を指定した input タグを一緒に記述する必要があります。

<input type="password" name="pass" value="{pass}" class="acms-admin-form-large validator-result-{pass:validator#required} validator-result-{pass:validator#password}" autocomplete="off" />
<input type="hidden" name="user[]" value="pass" />


フィールド名(項目) 概要 入力例
pass(必須) 新しく設定したいパスワード password
retype_pass(必須) 新しく設定したいパスワード(確認用) password

Login_ResetPassword モジュールのサンプルコード

<!-- BEGIN_MODULE Login -->
<form action="" method="post" enctype="multipart/form-data">
  <!-- BEGIN reset -->
  <div class="acms-admin-loginBox">
      <div class="acms-admin-siteImageText">パスワード変更</div>

      <!-- BEGIN_IF [{pass:validator#required}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">パスワードが入力されていません。</p>
      <!-- END_IF -->
      <!-- BEGIN_IF [{pass:validator#password}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">不正なパスワードです。別のパスワードを入力ください。</p>
      <!-- END_IF -->
      <!-- BEGIN_IF [{retype_pass:validator#equalTo}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">パスワードが一致しません。</p>
      <!-- END_IF -->
      <!-- BEGIN_IF [{reset:validator#isOperable}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">不正な操作です。</p>
      <!-- END_IF -->

      <div class="acms-admin-form">
        <label class="acms-admin-form-block acms-admin-clear">新しいパスワード</label>
        <div class="js-password_strength">
          <input type="password" name="pass" value="{pass}" class="js-input acms-admin-form-large  validator-result-{pass:validator#required} validator-result-{pass:validator#password}" autocomplete="off" />
          <input type="hidden" name="user[]" value="pass" />
          <div>
            <div class="js-meter acms-admin-password-strength-meter acms-admin-form-width-full"></div>
          </div>
          <span class="js-label acms-admin-password-strength-label" aria-live="assertive"></span>
        </div>

        <label class="acms-admin-form-block acms-admin-clear">新しいパスワードを確認</label>
        <input type="password" name="retype_pass" value="{retype_pass}" class="acms-admin-form-large validator-result-{retype_pass:validator#equalTo}" autocomplete="off" />
        <input type="hidden" name="user[]" value="retype_pass" />
        <input type="hidden" name="retype_pass:validator#equalTo" value="pass" id="validator-retype_pass-equalTo" />

        <!-- BEGIN passwordPolicyMessage:veil -->
        <p class="acms-admin-text-danger">{passwordPolicyMessage}</p>
        <!-- END passwordPolicyMessage:veil -->
      </div>
      <p class="loginAction">
        <button type="submit" class="acms-admin-btn-admin" name="ACMS_POST_Login_ResetPassword">パスワードを変更</button>
      </p>
    </div>
  <!-- END reset -->
</form>
<!-- END_MODULE Login -->

エラー時の表示

Login_ResetPassword モジュールで何らかのエラーが起きた場合には以下のフィールド(項目)がバリデーションエラーとして表示されます。



フィールド(項目)名 オプション名 概要
pass required パスワードが入力されていない場合に発生するエラーです。
pass password コンフィグ > ログイン設定 > パスワードポリシーで設定したルールに違反している場合に発生するエラーです。
retype_pass equalTo 入力されたパスワードが retype_pass のフィールド(項目)で入力したパスワードと一致していない場合に発生するエラーです。
reset isOperable Login_Remind モジュールで発行されたパスワード変更のURLでないURLや、パスワード変更のURLの有効期限が切れていた場合などに発生するエラーです。

Login_Subscribe モジュール【~ Ver. 3.0】

この機能は Ver. 3.1 で廃止されました。新しい会員機能についてのドキュメントは以下をご覧ください。

ログイン・会員機能の基本

Login_Subscribe モジュールとは、外部申請によるユーザー登録を行うためのPOSTモジュールです。

Login_Subscribe モジュールを使うことで、サイト閲覧者自身でユーザー登録を行うことができます。これにより、サイト閲覧者に会員登録をしてもらうことを想定した会員制サイトを構築することが可能です。

また、Login_Subscribe モジュールでは、メールアドレスや名前などのユーザーの基本設定だけでなく、ユーザーのカスタムフィールドも登録することが可能です。また、コンフィグ > ログイン設定 > 読者登録機能から登録するユーザーのステータスや権限の設定や、メールアドレスの有効性認証を行うかどうかをカスタマイズできます。

Login_Subscribe モジュールを使ったユーザー登録フォームのカスタマイズについては、以下のドキュメントで詳しく紹介されています。


有効なフィールド(項目)

Login_Subscribe モジュールではユーザーの基本設定のフィールド(項目)とカスタムフィールドのデータを送信できます。基本設定のフィールド(項目)を送信する場合は、 name 属性に `user[]` を、 value 属性に 送信したいフィールド(項目)名を指定した input タグを一緒に記述する必要があります。

<input type="text" name="name" value="{name}" class="acms-form-large validator-result-{name:validator#required}" placeholder="" />
<input type="hidden" name="user[]" value="name" />

<!-- ↓カスタムフィールドも追加できます -->
<input type="text" name="company" value="{company}" class="acms-form-large" />
<input type="hidden" name="field[]" value="company" />


フィールド名(項目) 概要 入力例
name(必須) 登録するユーザーの名前です。 アップルップル
mail(必須) 登録するユーザーのメールアドレスです。 info@example.com
pass(必須) 登録するユーザーのパスワードです。 password
retype_pass(必須) 登録するユーザーのパスワード(確認用)です。 password
code 登録するユーザーのユーザーコードです。 ablogcms
url 登録するユーザーのURLです。 https://example.com
mail_magazine 登録するユーザーがメールマガジンを受信するかどうか(on | off)です。 off

上記のユーザー基本設定に加えて、ユーザーのカスタムフィールドを登録することも可能です。

Login_Subscribe モジュールのサンプルコード

<!-- BEGIN_MODULE Login -->
<form action="" method="post" enctype="multipart/form-data">
  <!-- BEGIN subscribe -->
  <div class="acms-admin-loginBox">
      <div class="acms-admin-siteImageText">新規ユーザー登録</div>

      <!-- BEGIN sendMsg#before -->
      <p class="acms-admin-login-text">登録いただくと指定されたメールアドレスに確認メールが送信されます。メールの内容に従って登録を完了してください。</p>
      <!-- END sendMsg#before -->
      <!-- BEGIN sendMsg#after -->
      <p class="acms-admin-alert acms-admin-alert-info">入力されたメールアドレス宛に、確認用メールを送信しました。</p>
      <!-- END sendMsg#after -->

      <!-- BEGIN_IF [{name:validator#required}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">名前が入力されていません。</p>
      <!-- END_IF -->
      <!-- BEGIN_IF [{mail:validator#required}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">メールアドレスが入力されていません。</p>
      <!-- END_IF -->

      <!-- BEGIN_IF [{mail:validator#email}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">不正なメールアドレスです。</p>
      <!-- END_IF -->
      <!-- BEGIN_IF [{mail:validator#doubleMail}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">すでに登録されているメールアドレスです。</p>
      <!-- END_IF -->
      <!-- BEGIN_IF [{mail:validator#send}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">メールの送信に失敗しました。システムの設定に問題があります。システムの管理者にお問い合わせください。</p>
      <!-- END_IF -->
      <!-- BEGIN_IF [{pass:validator#required}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">パスワードが入力されていません。</p>
      <!-- END_IF -->
      <!-- BEGIN_IF [{pass:validator#password}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">不正なパスワードです。別のパスワードを入力ください。</p>
      <!-- END_IF -->
      <!-- BEGIN_IF [{retype_pass:validator#equalTo}/eq/0] -->
      <p class="validator-result-0 acms-admin-alert acms-admin-alert-danger">パスワードが一致しません。</p>
      <!-- END_IF -->

      <div class="acms-admin-form">
        <label class="acms-admin-form-block acms-admin-clear">名前</label>
        <input type="text" name="name" value="{name}" class="acms-admin-form-large  validator-result-{name:validator#required}" placeholder="" />
        <input type="hidden" name="user[]" value="name" />

        <label class="acms-admin-form-block acms-admin-clear">メールアドレス</label>
        <input type="text" name="mail" value="{mail}" class="acms-admin-form-large  validator-result-{mail:validator#required} validator-result-{mail:validator#email} validator-result-{mail:validator#doubleMail} validator-result-{mail:validator#send}" placeholder="" />
        <input type="hidden" name="user[]" value="mail" />

        <label class="acms-admin-form-block acms-admin-clear">パスワード</label>
        <div class="js-password_strength">
          <input type="password" name="pass" value="{pass}" class="js-input acms-admin-form-large validator-result-{pass:validator#required} validator-result-{pass:validator#password}" autocomplete="off" />
          <input type="hidden" name="user[]" value="pass" />
          <div>
            <div class="js-meter acms-admin-password-strength-meter acms-admin-form-width-full"></div>
          </div>
          <span class="js-label acms-admin-password-strength-label" aria-live="assertive"></span>
        </div>

        <label class="acms-admin-form-block acms-admin-clear">パスワード(確認)</label>
        <input type="password" name="retype_pass" value="{retype_pass}" class="acms-admin-form-large validator-result-{retype_pass:validator#equalTo}" autocomplete="off" />
        <input type="hidden" name="user[]" value="retype_pass" />
      </div>
      <!-- BEGIN passwordPolicyMessage:veil -->
      <p class="acms-admin-text-danger">{passwordPolicyMessage}</p>
      <!-- END passwordPolicyMessage:veil -->
      <!-- BEGIN submit -->
      <p class="loginAction">
        <button type="submit" class="acms-admin-btn-admin acms-admin-btn-admin-primary acms-admin-btn-block acms-admin-btn-large" name="ACMS_POST_Login_Subscribe"><!--T-->読者登録<!--/T--></button>
      </p>
     <!-- END submit -->
    </div>
  <!-- END subscribe -->
</form>
<!-- END_MODULE Login -->

エラー時の表示

Login_Subscribe モジュールで何らかのエラーが起きた場合には以下のフィールド(項目)がバリデーションエラーとして表示されます。



フィールド(項目)名 オプション名 概要
name required ユーザーの名前が入力されていない場合に発生するエラー
mail required ユーザーのメールアドレスが入力されていない場合に発生するエラー
mail email ユーザーのメールアドレスの形式が間違っている場合に発生するエラー
mail doubleMail 入力されたメールアドレスで登録されたユーザーが既に存在する場合に発生するエラー
mail send 読者登録メールの送信に失敗した場合に発生するエラー
pass required ユーザーのパスワードが入力されていない場合に発生するエラー
pass password ユーザーのパスワードがコンフィグで設定したパスワードポリシーに違反している場合に発生するエラー
retype_pass equalTo ユーザーのパスワード(確認用)が入力されたパスワードと一致しない場合に発生するエラー
code regex ユーザーコードが不正な形式である場合に発生するエラー
code doubleCode 入力されたコードで登録されたユーザーが既に存在する場合に発生するエラー
url url ユーザーのURLの形式が間違っている場合に発生するエラー
login isOperable コンフィグ > ログイン設定 > 読者登録機能のユーザー登録の外部申請が無効になっている場合に発生するエラー

自動送信メールで使用できる変数

Login_Subscribe モジュールで送信された自動送信メールでは以下の変数が利用できます。



変数名 概要
uid 作成されたユーザーのユーザーIDです。
name 作成されたユーザーの名前です。
mail 作成されたユーザーのメールアドレスです。
code 作成されたユーザーのユーザーコードです。
url 作成されたユーザーのURLです。
subscribeUrl メールアドレスの有効性認証ための認証URLです。