From a975786b7b4669128ef7a35f05cf975bc0a83f0c Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 12 Aug 2015 05:57:14 -0600 Subject: [PATCH 1/3] fix for empty string header values throwing errors --- system/src/Grav/Common/Page/Page.php | 46 ++++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/system/src/Grav/Common/Page/Page.php b/system/src/Grav/Common/Page/Page.php index 4263a5731..712faa541 100644 --- a/system/src/Grav/Common/Page/Page.php +++ b/system/src/Grav/Common/Page/Page.php @@ -213,74 +213,74 @@ class Page } if ($var) { - if (isset($this->header->slug)) { + if (!empty($this->header->slug)) { $this->slug = trim($this->header->slug); } - if (isset($this->header->routes)) { + if (!empty($this->header->routes)) { $this->routes = (array)($this->header->routes); } - if (isset($this->header->title)) { + if (!empty($this->header->title)) { $this->title = trim($this->header->title); } - if (isset($this->header->language)) { + if (!empty($this->header->language)) { $this->language = trim($this->header->language); } - if (isset($this->header->template)) { + if (!empty($this->header->template)) { $this->template = trim($this->header->template); } - if (isset($this->header->menu)) { + if (!empty($this->header->menu)) { $this->menu = trim($this->header->menu); } - if (isset($this->header->routable)) { + if (!empty($this->header->routable)) { $this->routable = $this->header->routable; } - if (isset($this->header->visible)) { + if (!empty($this->header->visible)) { $this->visible = $this->header->visible; } - if (isset($this->header->order_dir)) { + if (!empty($this->header->order_dir)) { $this->order_dir = trim($this->header->order_dir); } - if (isset($this->header->order_by)) { + if (!empty($this->header->order_by)) { $this->order_by = trim($this->header->order_by); } - if (isset($this->header->order_manual)) { + if (!empty($this->header->order_manual)) { $this->order_manual = (array)$this->header->order_manual; } - if (isset($this->header->date)) { + if (!empty($this->header->date)) { $this->date = strtotime($this->header->date); } - if (isset($this->header->markdown_extra)) { + if (!empty($this->header->markdown_extra)) { $this->markdown_extra = (bool)$this->header->markdown_extra; } - if (isset($this->header->taxonomy)) { + if (!empty($this->header->taxonomy)) { foreach ($this->header->taxonomy as $taxonomy => $taxitems) { $this->taxonomy[$taxonomy] = (array)$taxitems; } } - if (isset($this->header->max_count)) { + if (!empty($this->header->max_count)) { $this->max_count = intval($this->header->max_count); } - if (isset($this->header->process)) { - foreach ($this->header->process as $process => $status) { + if (!empty($this->header->process)) { + foreach ((array) $this->header->process as $process => $status) { $this->process[$process] = $status; } } - if (isset($this->header->published)) { + if (!empty($this->header->published)) { $this->published = $this->header->published; } - if (isset($this->header->publish_date)) { + if (!empty($this->header->publish_date)) { $this->publish_date = strtotime($this->header->publish_date); } - if (isset($this->header->unpublish_date)) { + if (!empty($this->header->unpublish_date)) { $this->unpublish_date = strtotime($this->header->unpublish_date); } - if (isset($this->header->expires)) { + if (!empty($this->header->expires)) { $this->expires = intval($this->header->expires); } - if (isset($this->header->etag)) { + if (!empty($this->header->etag)) { $this->etag = (bool)$this->header->etag; } - if (isset($this->header->last_modified)) { + if (!empty($this->header->last_modified)) { $this->last_modified = (bool)$this->header->last_modified; } From e13c5c214acaf8f8d5ce831d6a88f6a307181369 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 12 Aug 2015 06:22:49 -0600 Subject: [PATCH 2/3] reverted !empty to isset and put in some casting logic to handle empty/invalid values --- CHANGELOG.md | 7 ++++ system/src/Grav/Common/Page/Page.php | 58 ++++++++++++++-------------- system/src/Grav/Common/Utils.php | 6 ++- 3 files changed, 41 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bd3a997a1..0e3702027 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# v0.9.37 +## 08/12/2015 + +3. [](#bugfix) + * Fixed issue when saving `header.process` in page forms via the **admin plugin** + * Fixed error due to use of `set_time_limit` that might be disabled on some hosts + # v0.9.36 ## 08/11/2015 diff --git a/system/src/Grav/Common/Page/Page.php b/system/src/Grav/Common/Page/Page.php index 712faa541..3c8a8dbb7 100644 --- a/system/src/Grav/Common/Page/Page.php +++ b/system/src/Grav/Common/Page/Page.php @@ -213,75 +213,75 @@ class Page } if ($var) { - if (!empty($this->header->slug)) { + if (isset($this->header->slug)) { $this->slug = trim($this->header->slug); } - if (!empty($this->header->routes)) { + if (isset($this->header->routes)) { $this->routes = (array)($this->header->routes); } - if (!empty($this->header->title)) { + if (isset($this->header->title)) { $this->title = trim($this->header->title); } - if (!empty($this->header->language)) { + if (isset($this->header->language)) { $this->language = trim($this->header->language); } - if (!empty($this->header->template)) { + if (isset($this->header->template)) { $this->template = trim($this->header->template); } - if (!empty($this->header->menu)) { + if (isset($this->header->menu)) { $this->menu = trim($this->header->menu); } - if (!empty($this->header->routable)) { - $this->routable = $this->header->routable; + if (isset($this->header->routable)) { + $this->routable = (bool) $this->header->routable; } - if (!empty($this->header->visible)) { - $this->visible = $this->header->visible; + if (isset($this->header->visible)) { + $this->visible = (bool) $this->header->visible; } - if (!empty($this->header->order_dir)) { + if (isset($this->header->order_dir)) { $this->order_dir = trim($this->header->order_dir); } - if (!empty($this->header->order_by)) { + if (isset($this->header->order_by)) { $this->order_by = trim($this->header->order_by); } - if (!empty($this->header->order_manual)) { + if (isset($this->header->order_manual)) { $this->order_manual = (array)$this->header->order_manual; } - if (!empty($this->header->date)) { + if (isset($this->header->date)) { $this->date = strtotime($this->header->date); } - if (!empty($this->header->markdown_extra)) { + if (isset($this->header->markdown_extra)) { $this->markdown_extra = (bool)$this->header->markdown_extra; } - if (!empty($this->header->taxonomy)) { - foreach ($this->header->taxonomy as $taxonomy => $taxitems) { + if (isset($this->header->taxonomy)) { + foreach ((array) $this->header->taxonomy as $taxonomy => $taxitems) { $this->taxonomy[$taxonomy] = (array)$taxitems; } } - if (!empty($this->header->max_count)) { + if (isset($this->header->max_count)) { $this->max_count = intval($this->header->max_count); } - if (!empty($this->header->process)) { + if (isset($this->header->process)) { foreach ((array) $this->header->process as $process => $status) { - $this->process[$process] = $status; + $this->process[$process] = (bool) $status; } } - if (!empty($this->header->published)) { - $this->published = $this->header->published; + if (isset($this->header->published)) { + $this->published = (bool) $this->header->published; } - if (!empty($this->header->publish_date)) { + if (isset($this->header->publish_date)) { $this->publish_date = strtotime($this->header->publish_date); } - if (!empty($this->header->unpublish_date)) { + if (isset($this->header->unpublish_date)) { $this->unpublish_date = strtotime($this->header->unpublish_date); } - if (!empty($this->header->expires)) { + if (isset($this->header->expires)) { $this->expires = intval($this->header->expires); } - if (!empty($this->header->etag)) { - $this->etag = (bool)$this->header->etag; + if (isset($this->header->etag)) { + $this->etag = (bool) $this->header->etag; } - if (!empty($this->header->last_modified)) { - $this->last_modified = (bool)$this->header->last_modified; + if (isset($this->header->last_modified)) { + $this->last_modified = (bool) $this->header->last_modified; } } diff --git a/system/src/Grav/Common/Utils.php b/system/src/Grav/Common/Utils.php index 5c38f97a9..2cd81ada6 100644 --- a/system/src/Grav/Common/Utils.php +++ b/system/src/Grav/Common/Utils.php @@ -219,7 +219,11 @@ abstract class Utils $file_parts = pathinfo($file); $filesize = filesize($file); - set_time_limit(0); + // check if this function is available, if so use it to stop any timeouts + if (function_exists('set_time_limit')) { + set_time_limit(0); + } + ignore_user_abort(false); if ($force_download) { From 38a7b0d7ab52abb04b6a0980025213ea01ab439b Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Wed, 12 Aug 2015 06:31:07 -0600 Subject: [PATCH 3/3] version update --- system/defines.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/defines.php b/system/defines.php index 84c41d5f6..d6803db21 100644 --- a/system/defines.php +++ b/system/defines.php @@ -2,7 +2,7 @@ // Some standard defines define('GRAV', true); -define('GRAV_VERSION', '0.9.36'); +define('GRAV_VERSION', '0.9.37'); define('DS', '/'); // Directories and Paths