web-dev-qa-db-ja.com

成人向けに分類されたコンテンツを表示するための警告を表示

認証されたユーザーが記事を書くことができる1つの発行Webサイトを開発しています。各記事について、記事の対象となる年齢層を設定します。異なる年齢層は、「大人」、「未成年者」、「全員」かもしれません。私はtaxonomyを年齢層に使用しました。

ここで、ユーザーがコンテンツをロードする前に「アダルト」の分類された記事のページに移動したときに警告メッセージを表示し、18歳以上であることをユーザーに確認してこの記事を表示します。

これをどのように実装できますか、またはこれを達成するのに役立つモジュールがありますか。

御時間ありがとうございます。

4
Kalpesh Patel

匿名ユーザーまたはログインユーザーの年齢確認を実装しますか?ログインしているユーザーに対してのみ行う場合は、ユーザーに誕生日フィールドを追加して年齢を確認するだけの方が良いオプションかもしれません。そのため、常に年齢を要求する必要はありません。初めて、それを誕生日フィールドに格納します。

そうでない場合は、実際の確認ページで* hook_node_view *を使用できます。ユーザーがそのノードの年齢を確認していない場合は、コンテンツを確認フォームに置き換えます。誰かがノードの年齢を確認したかどうかを保存する方法については、上で述べたように、認証されたユーザー、匿名ユーザー、どのように動作させるかによって異なります。

1
mns

彼らがこれを実装できる方法はたくさんあるので、私は個人的にSESSIONSを使用してユーザーの年齢を記憶するモジュールを作成します(サイトにアクセスするたびに確認でイライラするのを防ぎます)。

次に、モジュールで、アクセスを制限するページで呼び出すことができる関数を作成します。

何かのようなもの

function mymodule_age_verification()
{
  $age = isset($_SESSION['age']) ? $_SESSION['age'] : null;
  if ($age == null) 
  { 
     // print dialog asking for users age
  }
  else if ($age < 18)
  {
    //print error
    exit();
    // dont show this page they aren't old enoguh etc
  }
  else
  { 
    // do nothing they are allowed to go here
  }
}

年齢に基づいてノードが表示されないようにするには、次のようなものを使用できます

function mymodule_node_view()
{
  mymodule_age_verification();
}

構文は正確ではありません。どうしても必要な場合は、より詳細な構文の正確な回答を提供します。

もちろん、その例は非常に大雑把で基本的なものであり、年齢の確認エントリにAJAXを使用するのはいいことですが、これで十分です。

0
Daniel Waters