クリックするとCCKフィールド値の変更などのアクションを実行するユーザー通知メールで送信されるURLを作成することが可能/推奨されるかどうかを判断しようとしています。
たとえば、問題追跡システムがあるとします。 1週間、1つの問題に関するアクティビティがないため、システムは、問題を投稿した人に、問題がクローズされたと見なすかどうかを尋ねる電子メールを送信します。その場合は、ここをクリックして問題を解決してください。
電子メールの「問題を閉じる」リンクをクリックすると、問題のCCKステータスフィールドが「クローズ」に変更され、サイトの任意のページに移動します。
そのようなことは実行可能ですか?
In Drupal 6?
私は多かれ少なかれ私が望むことをするモジュールを見つけました-
http://drupal.org/project/node_update_from_url
ユーザーが自分のコンテンツを編集する権限を持っている場合、ユーザーがクリックして任意のCCKフィールドを更新できるURLを作成できます。ユーザーを確認ページに移動し、そこで「更新」をクリックする必要があります...その後、アクションが実行されます。
私はそれをテストしているだけです。動作しているようです。おそらく今のところ私の要件に合うはずです。だが! -他の答えはかなり興味深いので、おそらくそれらも調べます。
それは実行可能ですが、お勧めできません。 URLを介してデータを変更するためのDrupalの標準:1)_GET変数(または単純なURLパス)を使用して_access_dataに2)_POST変数を使用してデータを変更する
_POSTの使用に加えて、DrupalのForm APIを使用して、トークンとフィールドが生成および検証されるようにする必要があります。
URL(リンクなど)を介してデータを変更するために実行できるオプションは次のとおりです。1)URLにトークンを追加して、一度だけ使用されることを検証します(またはその他の検証が必要です)2)ユーザーがログインしていることを確認します(おそらく、ユーザーが所有者であることを確認しますそのチケットのなど)これがお役に立てば幸いです。
非アクティブの1週間後にメールを送信するには、ルールをインストールして設定する必要があります。
メニューリンクには、カスタムモジュールを作成します
/**
* Implements hook_menu()
*/
function MYMODULE_menu() {
$items['issue/close/%'] = array(
'page callback' => '_MYMODULE_close_issue',
'page arguement' => array(2),
'access callback' => TRUE,
);
}
function _MYMODULE_close_issue($nid = NULL) {
if ($nid) {
$node = node_load($nid);
$node['field_issue_closed'][0][value] = TRUE;
node_save($node);
}
}
問題:
あなたが本当にこれをしたい方法は、Drupalがユーザーパスワードをリセットする方法です。そこでは、1回のログインに適したハッシュリンクをユーザーに電子メールで送信します。これに対する事前定義アクションがある場合を除きます。リンク、問題を閉じることです。
ローカルコミュニティの誰かを知っていますDrupalこれらのハッシュリンクを作成するモジュールを作成しているMeetup。まだサンドボックスにあると思います。彼を追跡して、彼のプロジェクトがどこにあるかを確認します。にあります。
Drupal 7の場合、アンカーリンクから値を変更できる別のモジュールがあります。これは Rules Link と呼ばれ、はるかに人気があります。ルールとの接続により、 more-必要なルールをアクティブにします。