おはようございます、私は新しいコンテンツ タイプ - 嘆願書を作成しました。最後のステップは、証明するリンクを送信するか、請願書から削除することによって、メール アドレスを確認する必要があります。
ある種の一意のリンクを取得する必要があり、それをトークン化されたアクション メールとして、フォームで提供されたメール アカウントに送信します。トークン化されたリンクは、メールアドレスを有効に設定し、投稿を非公開にすることもできます。
私はここで少し必死です。一般的な指示をいただければ幸いです。
おはようございます、私は新しいコンテンツ タイプ - 嘆願書を作成しました。最後のステップは、証明するリンクを送信するか、請願書から削除することによって、メール アドレスを確認する必要があります。
ある種の一意のリンクを取得する必要があり、それをトークン化されたアクション メールとして、フォームで提供されたメール アカウントに送信します。トークン化されたリンクは、メールアドレスを有効に設定し、投稿を非公開にすることもできます。
私はここで少し必死です。一般的な指示をいただければ幸いです。
ノードの内容を変更する方法と、ノードが作成されたときにメールを送信する方法の例を次に示します (ただし、フォームが入力されたときにメールを送信することもできます)。セットアップで動作するように調整できるはずです。
ノードが作成され、デフォルトでは公開されません。ここでは、誰かがメール内のリンクをクリックしたときにノードを公開済みとして設定します。
nodeapi と通信するカスタム モジュールを作成します。
function module_nodeapi($node, $op, $a3 = NULL, $a4 = NULL){
if($node->type == 'petition'){
switch ($op) {
case 'submit':
case 'insert':
$mail = $user->mail;
$nodeid = $node->nid;
// mail the user using the drupal_send_mail() function
// make the link something like: http://web.be/petition/validate/$nodeid/$mail
// drupal_set_message('thank you for validating the petition');
case 'update':
break;
}
}
リンクの例はhttp://web.be/petition/validate/20/test@test.comです。次に行うことは、hook_menu を使用してリンクとその変数を取得することです (これもカスタム モジュールにあります)。
function module_menu(){
$items['petition/valid/%/%'] = array(
'title' => 'Validated your petition-entry',
'page callback' => 'module_validate_petition',
'page arguments' => array(1,2),
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
}
function module_validate_petition($nid, $mail){
// load the node
$node = node_load($nid);
// set to published
$node->status = 1;
// save the node
node_save($node);
}