diff --git a/serendipity_event_linktrimmer/ChangeLog b/serendipity_event_linktrimmer/ChangeLog index 7a47db67..00668570 100644 --- a/serendipity_event_linktrimmer/ChangeLog +++ b/serendipity_event_linktrimmer/ChangeLog @@ -1,3 +1,5 @@ +1.6.6: Check is_countable() before count() + 1.6.5: Hotfixes for PHP 8 (surrim) 1.6.4: Added German translation. diff --git a/serendipity_event_linktrimmer/serendipity_event_linktrimmer.php b/serendipity_event_linktrimmer/serendipity_event_linktrimmer.php index f892a266..07fbefc8 100644 --- a/serendipity_event_linktrimmer/serendipity_event_linktrimmer.php +++ b/serendipity_event_linktrimmer/serendipity_event_linktrimmer.php @@ -6,6 +6,16 @@ if (IN_serendipity !== true) { @serendipity_plugin_api::load_language(dirname(__FILE__)); +if (PHP_VERSION_ID < 70300) { + // Borrowed from + // https://github.com/symfony/polyfill/blob/6b0f6d1b248ec4adc9bb18f4a93b30cc9788713a/src/Php73/bootstrap.php#L18 + if (!function_exists('is_countable')) { + function is_countable($value) { + return is_array($value) || $value instanceof Countable || $value instanceof ResourceBundle || $value instanceof SimpleXmlElement; + } + } +} + class serendipity_event_linktrimmer extends serendipity_event { var $debug; @@ -20,7 +30,7 @@ class serendipity_event_linktrimmer extends serendipity_event { 'php' => '4.1.0' )); - $propbag->add('version', '1.6.5'); + $propbag->add('version', '1.6.6'); $propbag->add('author', 'Garvin Hicking, Ian'); $propbag->add('stackable', false); $propbag->add('configuration', array('prefix', 'frontpage', 'domain')); @@ -320,7 +330,7 @@ class serendipity_event_linktrimmer extends serendipity_event { $uri_part = $parts[0]; $parts = array_pop($parts); - if (count($parts) > 1) { + if (is_countable($parts) && count($parts) > 1) { foreach($parts as $key => $value) { $val = explode('=', $value); $_REQUEST[$val[0]] = $val[1]; @@ -332,7 +342,7 @@ class serendipity_event_linktrimmer extends serendipity_event { if (!isset($_REQUEST['txtarea'])) { $parts = explode('&', $uri_parts[1]); - if (count($parts) > 1) { + if (is_countable($parts) && count($parts) > 1) { foreach($parts as $key => $value) { $val = explode('=', $value); $_REQUEST[$val[0]] = $val[1];