追加のログアウト機能を挿入するのに最適な場所はどこですか?

drupal.stackexchange https://drupal.stackexchange.com/questions/310

  •  16-10-2019
  •  | 
  •  

質問

ユーザーがログオフするときに追加のロジックを挿入するには、 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().

他のヒント

チェックアウトしたいかもしれません かわいそうな男のクロン モジュール。

ライセンス: CC-BY-SA帰属
所属していません drupal.stackexchange
scroll top