diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fcc18a70..2a2a82bdc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,19 @@ 1. [](#improved) * Make it possible to include debug bar also into non-HTML responses +# v1.3.0-rc.5 +## xx/xx/2017 + +1. [](#new) + * Setting `system.session.timeout` to 0 clears the session when the browser session ends [#1538](https://github.com/getgrav/grav/pull/1538) + * Created a `CODE_OF_CONDUCT.md` so everyone knows how to behave :) +1. [](#improved) + * Renamed new `media()` Twig function to `media_directory()` to avoid conflict with Page's `media` object +1. [](#bugfix) + * Fixed global media files disappearing after a reload [#1545](https://github.com/getgrav/grav/issues/1545) + * Fix for broken regex redirects/routes via `site.yaml` + * Sanitize the error message in the error handler page + # v1.3.0-rc.4 ## 06/22/2017 diff --git a/system/src/Grav/Common/Errors/SimplePageHandler.php b/system/src/Grav/Common/Errors/SimplePageHandler.php index f236e53e7..9616b9d61 100644 --- a/system/src/Grav/Common/Errors/SimplePageHandler.php +++ b/system/src/Grav/Common/Errors/SimplePageHandler.php @@ -44,7 +44,7 @@ class SimplePageHandler extends Handler $vars = array( "stylesheet" => file_get_contents($cssFile), "code" => $code, - "message" => $message, + "message" => filter_var(rawurldecode($message), FILTER_SANITIZE_STRING), ); $helper->setVariables($vars); diff --git a/system/src/Grav/Common/Page/Media.php b/system/src/Grav/Common/Page/Media.php index 0a76a2bb7..e83ec77df 100644 --- a/system/src/Grav/Common/Page/Media.php +++ b/system/src/Grav/Common/Page/Media.php @@ -30,12 +30,19 @@ class Media extends AbstractMedia { $this->path = $path; + $this->__wakeup(); + $this->init(); + } + + /** + * Initialize static variables on unserialize. + */ + public function __wakeup() + { if (!isset(static::$global)) { // Add fallback to global media. - static::$global = new GlobalMedia($path); + static::$global = new GlobalMedia(); } - - $this->init(); } /** diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index d3b5f86b2..ffb280f9d 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -480,7 +480,7 @@ class Pages $site_redirects = $config->get("site.redirects"); if (is_array($site_redirects)) { foreach ((array)$site_redirects as $pattern => $replace) { - $pattern = '#^' . preg_quote(ltrim($pattern, '^')) . '#'; + $pattern = '#^' . str_replace('/', '\/', ltrim($pattern, '^')) . '#'; try { $found = preg_replace($pattern, $replace, $source_url); if ($found != $source_url) { @@ -496,7 +496,7 @@ class Pages $site_routes = $config->get("site.routes"); if (is_array($site_routes)) { foreach ((array)$site_routes as $pattern => $replace) { - $pattern = '#^' . preg_quote(ltrim($pattern, '^')) . '#'; + $pattern = '#^' . str_replace('/', '\/', ltrim($pattern, '^')) . '#'; try { $found = preg_replace($pattern, $replace, $source_url); if ($found != $source_url) { diff --git a/system/src/Grav/Common/Session.php b/system/src/Grav/Common/Session.php index aeaf881fc..67aaab5ae 100644 --- a/system/src/Grav/Common/Session.php +++ b/system/src/Grav/Common/Session.php @@ -84,7 +84,7 @@ class Session extends BaseSession } $this->setName($session_name); $this->start(); - setcookie(session_name(), session_id(), time() + $session_timeout, $session_path, $domain, $secure, $httponly); + setcookie(session_name(), session_id(), $session_timeout ? time() + $session_timeout : 0, $session_path, $domain, $secure, $httponly); } }