diff --git a/e107_plugins/poll/poll_class.php b/e107_plugins/poll/poll_class.php index 3f69406e2..f006fc8df 100644 --- a/e107_plugins/poll/poll_class.php +++ b/e107_plugins/poll/poll_class.php @@ -27,6 +27,32 @@ class poll var $pollRow; var $pollmode; + /* + function remove_poll_cookies + Remove unused poll cookies. See: http://krijnhoetmer.nl/stuff/javascript/maximum-cookies/ Thanks Fanat1k - bugtracker #4983 + no parameters + */ + function remove_poll_cookies() + { + $arr_polls_cookies = array(); + foreach($_COOKIE as $cookie_name => $cookie_val) + { // Collect poll cookies + list($str, $int) = explode('_', $cookie_name); + if (($str == 'poll') && is_numeric($int)) + { // Yes, its poll's cookie + $arr_polls_cookies[] = $int; + } + } + if (count($arr_polls_cookies) > 1) + { // Remove all except first (assumption: there is always only one active poll) + rsort($arr_polls_cookies); + for($i = 1; $i < count($arr_polls_cookies); $i++) + { + cookie("poll_{$arr_polls_cookies[$i]}", "", (time() - 2592000)); + } + } + } + /* function delete_poll parameter in: $existing - existing poll id to be deleted diff --git a/e107_plugins/poll/poll_menu.php b/e107_plugins/poll/poll_menu.php index 20efa4432..c018a121e 100644 --- a/e107_plugins/poll/poll_menu.php +++ b/e107_plugins/poll/poll_menu.php @@ -61,6 +61,7 @@ WHERE p.poll_type=1{$poll_to_show} ORDER BY p.poll_datestamp DESC LIMIT 0,1 "; -$poll->render_poll($query, $pollType, $pollMode); +$poll->remove_poll_cookies(); +$poll->render_poll($query, $pollType, $pollMode); ?> \ No newline at end of file