Commit 2310bd97 authored by drumm's avatar drumm

#54238 by gopherspidey and fago. Don't cache pages with messages.

parent fa60c763
......@@ -321,8 +321,6 @@ function variable_del($name) {
*
* Note: we do not serve cached pages when status messages are waiting (from
* a redirected form submission which was completed).
* Because the output handler is not activated, the resulting page will not
* get cached either.
*/
function page_get_cache() {
global $user, $base_root;
......@@ -585,15 +583,21 @@ function drupal_set_message($message = NULL, $type = 'status') {
*
* @param $type
* (optional) Only return messages of this type.
* @param $clear_queue
* (optional) Set to FALSE if you do not want to clear the messages queue
*/
function drupal_get_messages($type = NULL) {
function drupal_get_messages($type = NULL, $clear_queue = TRUE) {
if ($messages = drupal_set_message()) {
if ($type) {
unset($_SESSION['messages'][$type]);
if ($clear_queue) {
unset($_SESSION['messages'][$type]);
}
return array($type => $messages[$type]);
}
else {
unset($_SESSION['messages']);
if ($clear_queue) {
unset($_SESSION['messages']);
}
return $messages;
}
}
......
......@@ -1586,7 +1586,7 @@ function _drupal_bootstrap_full() {
function page_set_cache() {
global $user, $base_root;
if (!$user->uid && $_SERVER['REQUEST_METHOD'] == 'GET') {
if (!$user->uid && $_SERVER['REQUEST_METHOD'] == 'GET' && count(drupal_get_messages(NULL, FALSE)) == 0) {
// This will fail in some cases, see page_get_cache() for the explanation.
if ($data = ob_get_contents()) {
$cache = TRUE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment