27 if (!defined(
'NOREQUIREMENU')) {
28 define(
'NOREQUIREMENU',
'1');
30 if (!defined(
'NOREQUIREHTML')) {
31 define(
'NOREQUIREHTML',
'1');
33 if (!defined(
'NOREQUIREAJAX')) {
34 define(
'NOREQUIREAJAX',
'1');
37 if (!defined(
'EVEN_IF_ONLY_LOGIN_ALLOWED')) {
38 define(
'EVEN_IF_ONLY_LOGIN_ALLOWED',
'1');
41 require_once
'../main.inc.php';
44 if (!empty($_SESSION[
"dol_authmode"]) && ($_SESSION[
"dol_authmode"] ==
'forceuser' || $_SESSION[
"dol_authmode"] ==
'http')) {
45 unset($_SESSION[
"dol_login"]);
46 die(
"Applicative disconnection should be useless when connection was made in mode ".$_SESSION[
"dol_authmode"]);
49 global $conf, $langs, $user;
52 $result = $user->call_trigger(
'USER_LOGOUT', $user);
60 $hookmanager->initHooks(array(
'logout'));
61 $parameters = array();
62 $reshook = $hookmanager->executeHooks(
'afterLogout', $parameters, $user, $action);
68 $urlfrom = empty($_SESSION[
"urlfrom"]) ?
'' : $_SESSION[
"urlfrom"];
71 $url = DOL_URL_ROOT.
"/index.php";
73 $url = DOL_URL_ROOT.$urlfrom;
75 if (!empty($conf->global->MAIN_LOGOUT_GOTO_URL)) {
76 $url = $conf->global->MAIN_LOGOUT_GOTO_URL;
79 if (
GETPOST(
'dol_hide_topmenu')) {
80 $url .= (preg_match(
'/\?/', $url) ?
'&' :
'?').
'dol_hide_topmenu=1';
82 if (
GETPOST(
'dol_hide_leftmenu')) {
83 $url .= (preg_match(
'/\?/', $url) ?
'&' :
'?').
'dol_hide_leftmenu=1';
85 if (
GETPOST(
'dol_optimize_smallscreen')) {
86 $url .= (preg_match(
'/\?/', $url) ?
'&' :
'?').
'dol_optimize_smallscreen=1';
88 if (
GETPOST(
'dol_no_mouse_hover')) {
89 $url .= (preg_match(
'/\?/', $url) ?
'&' :
'?').
'dol_no_mouse_hover=1';
91 if (
GETPOST(
'dol_use_jmobile')) {
92 $url .= (preg_match(
'/\?/', $url) ?
'&' :
'?').
'dol_use_jmobile=1';
97 if (session_status() === PHP_SESSION_ACTIVE) {
103 unset($_SESSION[
'dol_login']);
104 unset($_SESSION[
'dol_entity']);
105 unset($_SESSION[
'urlfrom']);
110 header(
"Location: ".$url);