ユーザーがログオフするときに追加のロジックを挿入するには、user.pages.incのfunction user_logout()
を調べます。このコードはコアモジュール内にあるため、編集しないでください。ただし、非常にうまく機能します。たとえば、次のコードを 'user_logout()'関数の先頭に追加すると...
$last_run = variable_get('cron_last', 0);
if(time() - $last_run > 86400) {
include_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
drupal_cron_run();
drupal_flush_all_caches();
watchdog('user', 'cron set to run and cache to be cleared on user logout', array('%name' => $user->name));
}
...過去24時間にcronが実行されていない場合は、キャッシュをクリアしてcronを実行します。わかりました、cronには理想的ではありませんが、それは別の問題です。
この小さなスニペットを追加するのに最適な場所はどこですか?独自のログアウトメニュー項目を単純に実装することもできますが、その解決策にはあまり興味がありません。
前もって感謝します。
コアを変更する代わりに、カスタムモジュールに hook_user()
を実装できます。次に、_$op
_パラメーターをチェックして、「logout」と等しいかどうかを確認できます。このコードは、ユーザーがログアウトするためにクリックするメニュー項目またはリンクに関係なく、ユーザーがログアウトするたびに実行されます。
これはDrupal 6と7で異なることに注意してください。この質問にはDrupal 6のタグが付けられていますが、Drupal 7を使用している場合、または後で計画する場合は、このフックが hook_user_logout()
に置き換えられたことに注意してください。
Poor Mans Cron モジュールをチェックアウトしたいと思うかもしれません。