web-dev-qa-db-ja.com

Drupalモジュールはログイン時にチェックボックスを要求します

Drupal 6.xの場合、ユーザーがログインする前にチェックボックスをオンにすることを必須にするモジュールがありますか?

このサイトでは、すべてのユーザーが登録時だけでなく、ログインするたびに利用規約に同意する必要があります。

2
Joe Mako

http://drupal.org/project/legalhttp://drupal.org/project/terms_of_use の2つのモジュールがあり、登録時に同意する必要があります(あなたはすでにそれらを見つけたと思います)。

私が知っている限り、必要なもの(ログインごとに受け入れる)は、これらのモジュールの機能ではありません。ただし、カスタムモジュールを記述し、それらのモジュールのいずれかのコードを再利用して、すべてのログインフォームにこのチェックボックスを追加するのはそれほど難しくないはずです。

以前にモジュールを作成したことがない場合は、drupal.orgの モジュール開発者ガイド をご覧ください。ログインフォームにチェックボックスを追加するには、 hook_form_alter を使用する必要があります。

3
marcvangend

@marcvangendは情報とリンクをありがとう、ここに私が見つけた/編集した/思いついたコードがあります:

function toscheckbox_form_user_login_alter(&$form, &$form_state) {
  // Add a checkbox to login form about agreeing to terms of service.
  $form['terms_of_service'] = array(
    '#type' => 'checkbox', 
    '#title' => "I agree with the website's terms of service.", 
    '#required' => TRUE
  );
}

function toscheckbox_form_user_login_block_alter(&$form, &$form_state) {
  // Add a checkbox to login form about agreeing to terms of service.
  $form['terms_of_service'] = array(
    '#type' => 'checkbox', 
    '#title' => "I agree with the website's terms of service.", 
    '#required' => TRUE
  );
}
0
Joe Mako

さらに簡単に、ログインすると、小さなJavaScriptを含むページにリダイレクトされます。

そのようです:

1)次のトリガー/アクションセットを作成します。[トリガー]ユーザーログイン-> [アクション]/mustagreeへのリダイレクト

2)コンテンツページを追加する必要があります:

URLがuserhomepageのコンテンツページがあると仮定すると、これは完全に機能します。

0
user5960