これが私のユースケースです:
投票の計算は、cronまたは他のモジュールを使用して行われます。私は特定のモジュールとタイアップする必要はありません(そして基本的なモジュールを書くことで結構です)。私は現在、ルール、投票ルール、ファイブスター、そして明らかに投票APIで運を試しています。ログイン/登録には、ペルソナとfbauthが使用されるため、電子メールによる確認は必要ありません。
同様の問題が ユーザーが匿名でコンテンツを作成し、登録した場合にコンテンツを割り当てることができるモジュール で説明されていますが、私の使用例では、投票と電子メールを使用しない登録が含まれていました。投票はそれをより複雑にしますが、電子メールなしの登録は(うまくいけば)それをより簡単にします。
PS:plus1(または類似の)モジュールを使用して、異なるノードに対して同じワークフローを実行したいので、一般的なアプローチが要求されます。
匿名の投票をCookieに保存し、ログイン/登録時にそのCookieが存在するかどうかを確認して、それに応じて投票することができます。
user_cookie_save()
を使用して、ユーザーが投票しようとしたエンティティのエンティティタイプとエンティティIDをCookieに保存します。 _pending_votes
_のような名前を付けます。同時に、モーダルログインウィンドウをトリガーできます。ユーザーがその時点でログイン/登録せず、最終的にログインする前に他のエンティティに投票しようとする可能性もあります。そのため、エンティティタイプとIDをシリアル化された配列として保存することをお勧めします。hook_user_login()
を使用してログインしているユーザーにフックし、_pending_votes
_ Cookieの存在を確認します。そこにある場合は、その内容を votingapi_set_votes()
とともに使用して、保留中の投票をキャストします。 (後で_pending_votes
_ Cookieを削除して、ログインするたびに投票しないようにします)遅延登録 も同様の理由で設計されましたが、どれほど安定しているかはわかりません。どちらにしても、それはあなたのための良い出発点を提供します。
遅延登録モジュールは、匿名ユーザーが行ったアクションをキャプチャし、登録の準備ができるまで一時的なユーザーアカウントに対して保存します。