追加のログアウト機能を挿入するのに最適な場所はどこですか?
質問
ユーザーがログオフするときに追加のロジックを挿入するには、 function user_logout()
in user.pages.inc。このコードはコアモジュールにありますが、編集する必要はありませんが、非常にうまく機能します...たとえば、「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));
}
... Cronが過去24時間で実行されていない場合、キャッシュをクリアし、Cronを実行します。さて、クロンには理想的ではありませんが、それは別の問題です。
この小さなスニペットを追加するのに最適な場所はどこですか?単に独自のログアウトメニュー項目を実装できます...しかし、私はその解決策に熱心ではありません。
前もって感謝します。
解決
コアを変更する代わりに、実装できます hook_user()
カスタムモジュールで。その後、確認できます $op
パラメーター「ログアウト」に等しいかどうかを確認します。このコードは、クリックしてログアウトするメニューやリンクに関係なく、ユーザーがログアウトするたびに実行されます。
これはDrupal 6と7の間で異なることに注意してください。この質問はDrupal 6とタグ付けされましたが、Drupal 7を使用している場合、または後で計画する場合は、このフックが置き換えられたことに注意してください。 hook_user_logout()
.
他のヒント
チェックアウトしたいかもしれません かわいそうな男のクロン モジュール。
所属していません drupal.stackexchange