Happy New Year
[squirrelmail.git] / src / signout.php
index 94f287625d55ea3e6fd001655825a7ed507c2e85..b3b5618242727d6ed2a485f3ed5a84b74dc897a8 100644 (file)
@@ -3,33 +3,28 @@
 /**
  * signout.php -- cleans up session and logs the user out
  *
- * Copyright (c) 1999-2002 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
  *  Cleans up after the user. Resets cookies and terminates session.
  *
- * $Id$
+ * @copyright 1999-2018 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @version $Id$
+ * @package squirrelmail
  */
 
-/* Path for SquirrelMail required files. */
-define('SM_PATH','../');
+/** This is the signout page */
+define('PAGE_NAME', 'signout');
 
-/* SquirrelMail required files. */
-require_once(SM_PATH . 'include/validate.php');
-require_once(SM_PATH . 'functions/prefs.php');
-require_once(SM_PATH . 'functions/plugin.php');
-require_once(SM_PATH . 'functions/strings.php');
-require_once(SM_PATH . 'functions/html.php');
+/**
+ * Include the SquirrelMail initialization file.
+ */
+require('../include/init.php');
 
 /* Erase any lingering attachments */
-if (isset($attachments) && is_array($attachments) 
-    && sizeof($attachments)){
-    $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
-    foreach ($attachments as $info) {
-        $attached_file = "$hashed_attachment_dir/$info[localfilename]";
-        if (file_exists($attached_file)) {
-            unlink($attached_file);
-        }
+sqgetGlobalVar('compose_messages',  $compose_messages,  SQ_SESSION);
+
+if (!empty($compose_message) && is_array($compose_messages)) {
+    foreach($compose_messages as $composeMessage) {
+        $composeMessage->purgeAttachments();
     }
 }
 
@@ -37,60 +32,48 @@ if (!isset($frame_top)) {
     $frame_top = '_top';
 }
 
-/* If a user hits reload on the last page, $base_uri isn't set
- * because it was deleted with the session. */
-if (!isset($_SESSION['base_uri'])) {
-    if (!function_exists('sqm_baseuri')){
-        require_once(SM_PATH . 'functions/display_messages.php');
-    }
-    $base_uri = sqm_baseuri();
-} else {
-    $base_uri = $_SESSION['base_uri'];
-}
+$login_uri = 'login.php';
 
-do_hook('logout');
+do_hook('logout', $login_uri);
 
 sqsession_destroy();
 
 if ($signout_page) {
-    header('Status: 303 See Other');
+    // Status 303 header is disabled. PHP fastcgi bug. See 1.91 changelog.
+    //header('Status: 303 See Other');
     header("Location: $signout_page");
     exit; /* we send no content if we're redirecting. */
 }
-?>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<?php
-    if ($theme_css != '') {
-?>
-   <link rel="stylesheet" type="text/css" href="<?php echo $theme_css ?>" />
-<?php
+
+/* After a reload of signout.php, $oTemplate might not exist anymore.
+ * Recover, so that we don't get all kinds of errors in that situation. */
+if ( !isset($oTemplate) || !is_object($oTemplate) ) {
+    require_once(SM_PATH . 'class/template/Template.class.php');
+    $sTemplateID = Template::get_default_template_set();
+    $icon_theme_path = !$use_icons ? NULL : Template::calculate_template_images_directory($sTemplateID);
+    $oTemplate = Template::construct_template($sTemplateID);
+
+    // We want some variables to always be available to the template
+    $oTemplate->assign('javascript_on', checkForJavascript());
+    $oTemplate->assign('base_uri', sqm_baseuri());
+    $always_include = array('sTemplateID', 'icon_theme_path');
+    foreach ($always_include as $var) {
+        $oTemplate->assign($var, (isset($$var) ? $$var : NULL));
     }
-?>
-   <title><?php echo $org_title ?> - Signout</title>
-</head>
-<body text="<?php echo $color[8] ?>" bgcolor="<?php echo $color[4] ?>" 
-link="<?php echo $color[7] ?>" vlink="<?php echo $color[7] ?>"
-alink="<?php echo $color[7] ?>">
-<br><br>
-<?
-do_hook('logout_above_text');
-echo
-html_tag( 'table',
-    html_tag( 'tr',
-         html_tag( 'th', _("Sign Out"), 'center' ) ,
-    '', $color[0], 'width="100%"' ) .
-    html_tag( 'tr',
-         html_tag( 'td', _("You have been successfully signed out.") .
-             '<br><a href="login.php" target="' . $frame_top . '">' .
-             _("Click here to log back in.") . '</a><br>' ,
-         'center' ) ,
-    '', $color[4], 'width="100%"' ) .
-    html_tag( 'tr',
-         html_tag( 'td', '<br>', 'center' ) ,
-    '', $color[0], 'width="100%"' ) ,
-'center', $color[4], 'width="50%" cols="1" cellpadding="2" cellspacing="0" border="0"' )
-?>
-</body>
-</html>
+}
+
+// The error handler object is probably also not initialized on a refresh
+$oErrorHandler = new ErrorHandler($oTemplate,'error_message.tpl');
+
+/* internal gettext functions will fail, if language is not set */
+set_up_language($squirrelmail_language, true, true);
+
+displayHtmlHeader($org_title . ' - ' . _("Signout"));
+
+$oTemplate->assign('frame_top', $frame_top);
+$oTemplate->assign('login_uri', $login_uri);
+
+$oTemplate->display('signout.tpl');
+
+$oTemplate->display('footer.tpl');
+