Где лучшее место для внедрения дополнительных функций входа в систему?

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

  •  16-10-2019
  •  | 
  •  

Вопрос

Чтобы вставить дополнительную логику, когда пользователь выходит из выхода из одного из них, может посмотреть на function user_logout() в 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 работает, если Cron не работает за последние 24 часа. Хорошо, не идеально для Крона, но это еще одна проблема.

Где лучшее место, чтобы добавить этот маленький фрагмент? Я мог бы просто реализовать свой собственный пункт меню «Выход» ... но я не заинтересован в этом решении.

Заранее спасибо.

Это было полезно?

Решение

Вместо изменения ядра вы можете реализовать hook_user() в пользовательском модуле. Тогда вы можете проверить $op Параметр, чтобы увидеть, равно ли это «вход». Этот код будет работать всякий раз, когда пользователь выходит из системы, независимо от того, какой элемент меню или ссылку они нажимают, чтобы выйти из системы.


Обратите внимание, что это отличается между Drupal 6 и 7. Этот вопрос был помечен Drupal 6, но если вы используете Drupal 7 или планируете позже, имейте в виду, что этот крюк был заменен на hook_user_logout().

Другие советы

Может захотеть проверить Бедный мужчина Крона модуль.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top