From c05680ea449c14ac878b9030627711ad0e7a1bbf Mon Sep 17 00:00:00 2001 From: Bryan Nielsen Date: Wed, 21 Jan 2026 13:48:35 -0500 Subject: [PATCH 1/4] Update references to first party addon path to check for presence in third-party addon path first --- system/user/addons/forum/Model/Post.php | 9 +++++++-- system/user/addons/forum/Model/Topic.php | 9 +++++++-- system/user/addons/forum/spam.forum.php | 9 +++++++-- system/user/addons/forum/tab.forum.php | 9 +++++++-- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/system/user/addons/forum/Model/Post.php b/system/user/addons/forum/Model/Post.php index 48c602d..a6fcf09 100644 --- a/system/user/addons/forum/Model/Post.php +++ b/system/user/addons/forum/Model/Post.php @@ -131,8 +131,13 @@ public static function onBeforeBulkDelete($delete_ids) public static function onAfterBulkDelete() { - require_once PATH_ADDONS . 'forum/mod.forum.php'; - require_once PATH_ADDONS . 'forum/mod.forum_core.php'; + foreach(['forum/mod.forum.php', 'forum/mod.forum_core.php'] as $file) { + if (file_exists(PATH_THIRD . $file)) { + require_once PATH_THIRD . $file; + } else { + require_once PATH_ADDONS . $file; + } + } $forum_core = new \Forum_Core(); diff --git a/system/user/addons/forum/Model/Topic.php b/system/user/addons/forum/Model/Topic.php index dc72498..74491d1 100644 --- a/system/user/addons/forum/Model/Topic.php +++ b/system/user/addons/forum/Model/Topic.php @@ -167,8 +167,13 @@ public static function onBeforeBulkDelete($delete_ids) public static function onAfterBulkDelete($delete_ids) { - require_once PATH_ADDONS . 'forum/mod.forum.php'; - require_once PATH_ADDONS . 'forum/mod.forum_core.php'; + foreach(['forum/mod.forum.php', 'forum/mod.forum_core.php'] as $file) { + if (file_exists(PATH_THIRD . $file)) { + require_once PATH_THIRD . $file; + } else { + require_once PATH_ADDONS . $file; + } + } $forum_core = new \Forum_Core(); diff --git a/system/user/addons/forum/spam.forum.php b/system/user/addons/forum/spam.forum.php index 55ebedb..8d79bff 100644 --- a/system/user/addons/forum/spam.forum.php +++ b/system/user/addons/forum/spam.forum.php @@ -20,8 +20,13 @@ class Forum_spam implements SpamModerationInterface */ public function __construct() { - require_once PATH_ADDONS . 'forum/mod.forum.php'; - require_once PATH_ADDONS . 'forum/mod.forum_core.php'; + foreach(['forum/mod.forum.php', 'forum/mod.forum_core.php'] as $file) { + if (file_exists(PATH_THIRD . $file)) { + require_once PATH_THIRD . $file; + } else { + require_once PATH_ADDONS . $file; + } + } $this->fc = new \Forum_Core(); } diff --git a/system/user/addons/forum/tab.forum.php b/system/user/addons/forum/tab.forum.php index 7f60d86..8d3daff 100644 --- a/system/user/addons/forum/tab.forum.php +++ b/system/user/addons/forum/tab.forum.php @@ -317,8 +317,13 @@ public function save($entry, $values) // Update the forum stats if (! class_exists('Forum')) { - require PATH_ADDONS . 'forum/mod.forum.php'; - require PATH_ADDONS . 'forum/mod.forum_core.php'; + foreach(['forum/mod.forum.php', 'forum/mod.forum_core.php'] as $file) { + if (file_exists(PATH_THIRD . $file)) { + require_once PATH_THIRD . $file; + } else { + require_once PATH_ADDONS . $file; + } + } } $forum_core = new Forum_Core(); From dd67e42ae86ce509b227c01a77cd5ca64f18d0d9 Mon Sep 17 00:00:00 2001 From: robinsowell Date: Thu, 5 Mar 2026 12:17:49 -0500 Subject: [PATCH 2/4] php deprecations plus a bug fix Bug: // make sure Super Admins are always allowed if (! in_array($allowed_groups, 1)) { oops! if (! in_array(1, $allowed_groups)) { --- system/user/addons/forum/mod.forum.php | 2 ++ system/user/addons/forum/mod.forum_core.php | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/system/user/addons/forum/mod.forum.php b/system/user/addons/forum/mod.forum.php index c326803..6691b53 100644 --- a/system/user/addons/forum/mod.forum.php +++ b/system/user/addons/forum/mod.forum.php @@ -43,6 +43,7 @@ class Forum public $cur_thread_row = 0; public $thread_post_total = 0; // Used for new entry submission to determine redirect page number public $trigger_error_page = false; + public $trigger_login_page = false; public $is_table_open = false; public $preview_override = false; public $mbr_class_loaded = false; @@ -53,6 +54,7 @@ class Forum public $spellcheck_enabled = false; public $feeds_enabled = null; public $feed_ids = ''; + public $date_limit = ''; public $realm = "ExpressionEngine Forums"; public $auth_attempt = false; public $use_sess_id = 0; // Used in calls to ee()->functions->fetch_site_index() in certain URLs, like attachments diff --git a/system/user/addons/forum/mod.forum_core.php b/system/user/addons/forum/mod.forum_core.php index 9a98f84..3757978 100644 --- a/system/user/addons/forum/mod.forum_core.php +++ b/system/user/addons/forum/mod.forum_core.php @@ -6180,7 +6180,8 @@ public function move_reply() } if (false !== (strpos($new_topic_id, "/"))) { - $new_topic_id = end(explode("/", $new_topic_id)); + $new_topic_id_parts = explode("/", $new_topic_id); + $new_topic_id = end($new_topic_id_parts); } if (! is_numeric($new_topic_id)) { @@ -6491,7 +6492,8 @@ public function do_merge() } if (false !== (strpos($merge_id, "/"))) { - $merge_id = end(explode("/", $merge_id)); + $merge_id_parts = explode("/", $merge_id); + $merge_id = end($merge_id_parts); } if (! is_numeric($merge_id)) { @@ -9523,7 +9525,7 @@ public function http_authentication_check_digest($allowed_groups = array()) } // make sure Super Admins are always allowed - if (! in_array($allowed_groups, 1)) { + if (! in_array(1, $allowed_groups)) { $allowed_groups[] = 1; } From 5fc90dbb09c360bdc1d2bf2623c106fd2a5a4924 Mon Sep 17 00:00:00 2001 From: robinsowell Date: Thu, 5 Mar 2026 12:45:15 -0500 Subject: [PATCH 3/4] 5.1.3 release --- README.md | 6 ++++++ system/user/addons/forum/addon.setup.php | 2 +- system/user/addons/forum/mod.forum.php | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f142dcb..04f0fb4 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,12 @@ The ExpressionEngine Discussion Forum Module allows you to create and manage a f ## Changelog +### 5.1.3 + +- Fixed PHP deprecation issues. +- Fixed bug where Superadmin were not given full permissions in rare cases. +- Fixed Invalid reference to PATH_ADDONS ([#5](https://github.com/ExpressionEngine/Forum/issues/5)) + ### 5.1.2 - Fixed PHP deprecation issues. diff --git a/system/user/addons/forum/addon.setup.php b/system/user/addons/forum/addon.setup.php index c0f69c5..620ba7b 100644 --- a/system/user/addons/forum/addon.setup.php +++ b/system/user/addons/forum/addon.setup.php @@ -5,7 +5,7 @@ 'author_url' => 'https://expressionengine.com/', 'name' => 'Forum', 'description' => 'Add a full-featured forum to your site', - 'version' => '5.1.2', + 'version' => '5.1.3', 'namespace' => 'ExpressionEngine\Addons\Forum', 'settings_exist' => true, diff --git a/system/user/addons/forum/mod.forum.php b/system/user/addons/forum/mod.forum.php index 6691b53..8863be7 100644 --- a/system/user/addons/forum/mod.forum.php +++ b/system/user/addons/forum/mod.forum.php @@ -13,8 +13,8 @@ */ class Forum { - public $version = '5.1.2'; - public $build = '20251119'; + public $version = '5.1.3'; + public $build = '20260305'; public $use_site_profile = false; public $search_limit = 250; // Maximum number of search results (x2 since it can include this number of topics + this number of posts) public $return_data = ''; From d786f646e3b9f00ea7889963adafda46bfce7b92 Mon Sep 17 00:00:00 2001 From: robinsowell Date: Thu, 5 Mar 2026 12:59:10 -0500 Subject: [PATCH 4/4] Had some errors with null value causing deprecations so fixed --- system/user/addons/forum/mod.forum.php | 6 +++--- system/user/addons/forum/mod.forum_core.php | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/system/user/addons/forum/mod.forum.php b/system/user/addons/forum/mod.forum.php index 8863be7..b8a6136 100644 --- a/system/user/addons/forum/mod.forum.php +++ b/system/user/addons/forum/mod.forum.php @@ -273,12 +273,12 @@ public function display_forum($function = '') // Parse Snippets foreach (ee()->config->_global_vars as $key => $val) { - $this->return_data = str_replace(LD . $key . RD, $val, $this->return_data); + $this->return_data = str_replace(LD . $key . RD, ($val === null) ? '' : $val, $this->return_data); } // Parse Global Variables foreach (ee()->TMPL->global_vars as $key => $val) { - $this->return_data = str_replace(LD . $key . RD, $val, $this->return_data); + $this->return_data = str_replace(LD . $key . RD, ($val === null) ? '' : $val, $this->return_data); } $this->return_data = $this->_final_prep($this->return_data); @@ -940,7 +940,7 @@ public function var_swap($str, $data) } foreach ($data as $key => $val) { - $str = str_replace('{' . $key . '}', $val, $str); + $str = str_replace('{' . $key . '}', ($val === null) ? '' : $val, $str); } return $str; diff --git a/system/user/addons/forum/mod.forum_core.php b/system/user/addons/forum/mod.forum_core.php index 3757978..da1aeef 100644 --- a/system/user/addons/forum/mod.forum_core.php +++ b/system/user/addons/forum/mod.forum_core.php @@ -106,12 +106,12 @@ public function display_forum($function = '') // Parse Snippets foreach (ee()->config->_global_vars as $key => $val) { - $this->return_data = str_replace(LD . $key . RD, $val, $this->return_data); + $this->return_data = str_replace(LD . $key . RD, ($val === null) ? '' : $val, $this->return_data); } // Parse Global Variables foreach (ee()->TMPL->global_vars as $key => $val) { - $this->return_data = str_replace(LD . $key . RD, $val, $this->return_data); + $this->return_data = str_replace(LD . $key . RD, ($val === null) ? '' : $val, $this->return_data); } $this->return_data = $this->_final_prep($this->return_data);