Version 5.0.0 beta 1

This commit is contained in:
Neo committed 2025-12-19 16:27:35 -08:00
1 parent 25ddeb65d6
commit 15c7beabc5
6736 files changed
+627902 -497943

No files matched your search

@@ -0,0 +1,35 @@
{
"added": [
"app=forums&module=forums&controller=forums&do=form&searchResult=forum_solved_mode",
"app=forums&module=forums&controller=forums&searchResult=forum_icon_choose",
"app=forums&module=forums&controller=forums&subnode=0&parent=2&searchResult=forum_icon_choose",
"app=forums&module=forums&controller=settings&searchResult=form_forums_helpful_highlight",
"app=forums&module=forums&controller=settings&searchResult=form_forums_solved_nudge_experts",
"app=forums&module=stats&controller=solvers"
],
"edited": [
"app=forums&module=forums&controller=settings&searchResult=form_forums_topic_activity",
"app=forums&module=forums&controller=settings&searchResult=form_forums_topic_activity_features",
"app=forums&module=forums&controller=settings&searchResult=forums_topic_activity_desktop"
],
"removed": [
"app=forums&module=forums&controller=forums&do=form&searchResult=bw_enable_answers__member",
"app=forums&module=forums&controller=forums&do=form&searchResult=forum_best_answer",
"app=forums&module=forums&controller=forums&searchResult=form_2_forum_min_posts_post",
"app=forums&module=forums&controller=forums&searchResult=form_new_forum_min_posts_post",
"app=forums&module=forums&controller=forums&searchResult=forum_allow_rating",
"app=forums&module=forums&controller=forums&searchResult=forum_icon",
"app=forums&module=forums&controller=forums&searchResult=forum_min_posts_view",
"app=forums&module=forums&controller=forums&subnode=0&parent=2&searchResult=form_new_forum_min_posts_post",
"app=forums&module=forums&controller=forums&subnode=0&parent=2&searchResult=forum_allow_rating",
"app=forums&module=forums&controller=forums&subnode=0&parent=2&searchResult=forum_icon",
"app=forums&module=forums&controller=forums&subnode=0&parent=2&searchResult=forum_min_posts_view",
"app=forums&module=forums&controller=settings&searchResult=form_forums_answers_downvote",
"app=forums&module=forums&controller=settings&searchResult=form_forums_new_questions",
"app=forums&module=forums&controller=settings&searchResult=form_forums_questions_downvote",
"app=forums&module=forums&controller=forums&searchResult=bw_disable_prefixes",
"app=forums&module=forums&controller=forums&searchResult=bw_disable_tagging",
"app=forums&module=forums&controller=forums&subnode=0&parent=2&searchResult=bw_disable_prefixes",
"app=forums&module=forums&controller=forums&subnode=0&parent=2&searchResult=bw_disable_tagging"
]
}
@@ -0,0 +1,22 @@
{
"id": 500001,
"name": "5.0.0 Alpha 1",
"steps": {
"queries": true,
"lang": true,
"theme": true,
"themeeditor": true,
"javascript": true,
"emailTemplates": true,
"acpSearchKeywords": true,
"settings": true,
"tasks": true,
"modules": false,
"widgets": true,
"customOptions": false,
"customRoutines": true
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,8 @@
{
"added": [],
"edited": [
"digests__comment",
"digests__item"
],
"removed": []
}
@@ -0,0 +1,25 @@
{
"files": {
"added": [],
"edited": [
"forums\/front\/controllers\/forum\/ips.forum.forumList.js",
"forums\/front\/controllers\/forum\/ips.forum.hovercard.js",
"forums\/admin\/controllers\/settings\/ips.settings.archiveRules.js",
"forums\/front\/controllers\/topic\/ips.topic.answers.js",
"forums\/front\/controllers\/topic\/ips.topic.view.js",
"forums\/front\/controllers\/forum\/ips.forum.forumList.js",
"forums\/front\/controllers\/forum\/ips.forum.forumPage.js"
],
"removed": []
},
"orders": {
"added": [],
"edited": [],
"removed": [
"global\/\/dev\/js\/\/framework\/",
"global\/\/dev\/js\/\/library\/",
"global\/\/dev\/js\/\/library\/\/jquery",
"global\/\/dev\/js\/\/library\/\/linkify"
]
}
}
@@ -0,0 +1,276 @@
{
"normal": {
"added": [
"r__solvers",
"r__solvers_manage",
"can_view_reports_topic",
"chart_groups",
"forums_default_view_modern",
"forums_default_view_modern_desc",
"forum_view",
"forum_list_view",
"forum_topic_view",
"forums_topic_view_classic",
"forums_topic_view_modern",
"forums_topic_view_modern_desc",
"topic_started_username_date",
"no_posts_show",
"topic_show_all_replies",
"moderator_checkbox",
"filter_assigned_topics",
"topics_noposts_tid",
"topics_noposts_title",
"topics_noposts_state",
"topics_noposts_start_date",
"topics_noposts_starter_id",
"topics_noposts_views",
"topics_noposts_forum_id",
"topics_noposts_approved",
"stats_topics_tab_noposts",
"menu__forums_stats_solvers",
"top_solvers",
"top_solvers_name",
"top_solvers_count",
"top_solvers_solved_date",
"top_solvers_date",
"top_solvers_member_group_id",
"stats_topics_tab_groups",
"stats_topics_tab_unsolved",
"solved_stats_from_cutoff",
"solved_stats_from_cutoff_desc",
"cannot_mark_helpful",
"mark_helpful",
"unmark_helpful",
"helpful_users_found_helpful",
"gbw_view_helpful",
"forums_helpful_highlight",
"forums_helpful_highlight_prefix",
"forums_helpful_highlight_suffix",
"forums_helpful_highlight_never",
"helpful_go_to_most_helpful",
"most_helpful_byline",
"helpful_all_replies",
"helpful_all_n_replies",
"helpful_only_helpful",
"helpful_only_n_helpful",
"forums_solved_nudge_experts",
"forums_solved_nudge_experts_prefix",
"forums_solved_nudge_experts_suffix",
"forums_solved_nudge_experts_never",
"forums_solved_nudge_experts_desc",
"forums_is_expert",
"forums_is_expert_tooltip",
"topicactivity_helpfulposts",
"topic_overview_settings",
"forums_topic_activity_features_helpful",
"forums_topic_activity_features_helpful_desc",
"achievement_filter_AnswerMarkedBest_helpful_or_solved",
"achievement_filter_AnswerMarkedBest_helpful_or_solved_helpful",
"achievement_filter_AnswerMarkedBest_helpful_or_solved_solved",
"AchievementAction__AnswerMarkedHelpful_title",
"AchievementAction__AnswerMarkedBest_log_subject_helpful",
"AchievementAction__AnswerMarkedBest_log_other_helpful",
"AchievementAction__TopicMarkedPopular",
"achievement_filter_TopicMarkedPopular_forum",
"achievement_filter_TopicMarkedPopular_forum_prefix",
"achievement_filter_TopicMarkedPopular_author",
"achievement_filter_TopicMarkedPopular_nth",
"achievement_filter_TopicMarkedPopular_nth_suffix",
"AchievementAction__TopicMarkedPopular_log_subject",
"AchievementAction__TopicMarkedPopular_log_deleted",
"AchievementAction__TopicMarkedPopular_title",
"forum_customizations",
"forum_solved_options",
"topic_and_post_settings",
"forum_icon_choose",
"forum_icon_choose_desc",
"forum_icon_choose_icon",
"forum_icon_choose_upload",
"forum_icon_picker",
"forum_icon_upload",
"forum_icon_choose_icon_none",
"forum_solved_mode",
"forum_solved_mode_off",
"forum_solved_mode_off_desc",
"forum_solved_mode_mods",
"forum_solved_mode_starter",
"forum_solved_mode_desc",
"forum_enable_assignments",
"forum_enable_assignments_desc"
],
"edited": [
"can_pin_topic",
"can_unpin_topic",
"can_feature_topic",
"can_unfeature_topic",
"can_edit_topic",
"can_hide_topic",
"can_unhide_topic",
"can_view_hidden_topic",
"can_move_topic",
"can_move_topic_desc",
"can_lock_topic",
"can_unlock_topic",
"can_reply_to_locked_topic",
"can_delete_topic",
"can_split_merge_topic",
"can_edit_post",
"can_hide_post",
"can_unhide_post",
"can_view_hidden_post",
"can_delete_post",
"can_read_all_topics",
"can_read_all_topics_desc",
"can_set_best_answer",
"forum_card_image",
"forum_card_image_desc",
"forums_default_view_table",
"forums_default_view_grid",
"forums_default_view_fluid",
"forums_fluid_pinned",
"queued_topics_badge",
"queued_posts_badge",
"no_forum_posts_password",
"no_topics_in_forum",
"moderator_actions",
"forums_topic_list_snippet",
"forums_topic_list_list",
"topic_snippet_last_reply",
"modlog__removed_archive_exclude_topic",
"bw_solved_set_by_moderator",
"AchievementAction__AnswerMarkedBest"
],
"removed": [
"__indefart_answer",
"__indefart_question",
"__defart_answer",
"__defart_answer_plural",
"__defart_question",
"__defart_question_plural",
"forum_type_qa",
"forum_type_qa_desc",
"posting_settings",
"forum_preview_posts_qa",
"forum_preview_posts_questions",
"forum_display_question",
"forum_forum_allow_rating",
"forum_forum_allow_rating_desc",
"forum_min_posts_view",
"forum_min_posts_post",
"forum_can_view_others_qa",
"forum_can_view_others_qa_desc",
"forum_permission_showtopic_qa",
"forum_permission_showtopic_qa_desc",
"forum_qa_rate_questions",
"forum_qa_rate_questions_desc",
"forum_qa_rate_answers",
"forum_qa_rate_answers_desc",
"bw_solved_set_by_member",
"bw_solved_set_by_member_desc",
"forum_icon",
"forum_icon_desc",
"bw_solved_set_by_moderator_desc",
"bw_enable_answers__member",
"bw_enable_answers__member_desc",
"questions",
"question_settings",
"forums_questions_downvote",
"forums_answers_downvote",
"forums_new_questions",
"forums_new_questions_desc",
"forums_new_questions_best",
"forums_new_questions_any",
"forums_default_view_choose",
"forums_default_view_choose_desc",
"forums_default_view_choose_none",
"forums_default_view_choose_error",
"forum_sort_key_qa",
"perm_forum_perm__read_qa",
"perm_forum_perm__read_qa_pass",
"perm_forum_perm__read2_qa",
"perm_forum_perm__read2_qa_pass",
"perm_forum_perm__add_qa",
"perm_forum_perm__add_qa_rest",
"perm_forum_perm__reply_qa",
"perm_forum_perm__reply_qa_rest",
"ask_a_question",
"ask_a_question_lc",
"ask_a_question_desc",
"answer_this_question",
"question_mainTab",
"question_title",
"questions_i_asked",
"questions_i_posted_in",
"question_answered",
"question_not_answered",
"question_asker",
"sort_question_rating",
"all_questions",
"featured_question",
"most_popular_questions",
"explore_questions_title",
"new_questions",
"awaiting_an_answer",
"best_answer_by",
"forum_rss_title_questions",
"answer_count",
"best_answer_tooltip",
"vote_answer_up",
"vote_answer_down",
"vote_question_up",
"vote_question_down",
"ask_new_question",
"no_answers",
"question__comment_placeholder",
"next_question",
"prev_question",
"submit_question",
"submit_question_edit",
"edit_question",
"go_back_to_qa_forum",
"count_questions_in_forum",
"view_next_unread_question",
"view_next_unread_question_title",
"question_moved_to",
"question_merged_to",
"questions_with_best_answers",
"questions_without_best_answers",
"rate_this_question",
"sign_in_rate_question",
"sign_in_rate_answer",
"no_questions_in_forum",
"submit_first_question",
"popular_questions_title",
"no_popular_questions",
"new_questions_title_no_answer",
"new_questions_title_no_best",
"no_new_questions",
"x_asked_new_question",
"x_answered_a_question",
"ad_fluid_index_view_number",
"ad_fluid_index_view_number_suffix",
"ad_fluid_index_view_repeat",
"ad_fluid_index_view_repeat_suffix",
"menu__forums_stats_questions",
"stats_question_ratings_title",
"stats_question_ratings_negative",
"stats_question_ratings_positive",
"r__questions",
"r__questions_manage",
"recommend_post",
"recommended_posts",
"topicactivity_topposters_qa",
"topic_summary_settings",
"app_not_question",
"app_cannot_vote",
"app_error_voting_question",
"app_question_asked_by",
"app_this_is_best_answer"
]
},
"js": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,348 @@
{
"1": {
"method": "dropColumn",
"params": [
"forums_forums",
[
"qa_rate_questions",
"qa_rate_answers",
"last_post",
"last_poster_id",
"last_poster_name",
"last_title",
"last_id",
"seo_last_title",
"seo_last_name",
"last_x_topic_ids",
"last_poster_anon",
"min_posts_post",
"min_posts_view"
]
]
},
"2": {
"method": "addColumn",
"params": [
"forums_forums",
{
"name": "last_post_data",
"type": "TEXT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "A JSON array of the last post data",
"unsigned": false,
"auto_increment": false
}
]
},
"3": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_score",
"type": "FLOAT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"auto_increment": false
}
]
},
"4": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_score_last_event",
"type": "BIGINT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"comment": "Last time an event occurred which requires the post score to be recalculated",
"unsigned": true,
"auto_increment": false
}
]
},
"5": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_share_count",
"type": "BIGINT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"comment": "",
"unsigned": true,
"auto_increment": false
}
]
},
"6": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_quote_count",
"type": "BIGINT",
"length": 0,
"decimals": null,
"values": [],
"allow_null": true,
"default": "0",
"comment": "",
"unsigned": true,
"auto_increment": false
}
]
},
"7": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_linked_count",
"type": "BIGINT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"comment": "",
"unsigned": true,
"auto_increment": false
}
]
},
"8": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_reaction_count",
"type": "BIGINT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": "0",
"comment": "",
"unsigned": false,
"auto_increment": false
}
]
},
"9": {
"method": "addColumn",
"params": [
"forums_topics",
{
"name": "topic_post_score_average",
"type": "FLOAT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"auto_increment": false
}
]
},
"10": {
"method": "addColumn",
"params": [
"forums_topics",
{
"name": "topic_summary_date",
"type": "BIGINT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": true,
"auto_increment": false
}
]
},
"11": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_view_time",
"type": "INT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"comment": "Average time this post was displayed on screen",
"unsigned": true,
"auto_increment": false
}
]
},
"12": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_view_time_view_count",
"type": "INT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"comment": "The number of times (roughly) this post's content was displayed in a browser",
"unsigned": true,
"auto_increment": false
}
]
},
"13": {
"method": "changeColumn",
"params": [
"forums_posts",
"post_field_t2",
{
"name": "post_field_t2",
"type": "TEXT",
"length": 0,
"decimals": null,
"values": [],
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"auto_increment": false
}
]
},
"14": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_force_in_summary",
"type": "TINYINT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"comment": "",
"unsigned": true,
"auto_increment": false
}
]
},
"15": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_embed_count",
"type": "BIGINT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"comment": "",
"unsigned": true,
"auto_increment": false
}
]
},
"16": {
"method": "addIndex",
"params": [
"forums_forums",
{
"type": "key",
"name": "widget_performance",
"length": {
"1": 20,
"2": 160,
"3": null
},
"columns": {
"1": "password",
"2": "password_override",
"3": "can_view_others"
}
}
]
},
"17": {
"method": "addColumn",
"params": [
"forums_topics",
{
"name": "assignment_id",
"type": "BIGINT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": true,
"auto_increment": false
}
]
},
"18": {
"method": "addIndex",
"params": [
"forums_topics",
{
"type": "key",
"name": "assignment_id",
"columns": [
"assignment_id"
],
"length": [
null
]
}
]
},
"19": {
"method": "addColumn",
"params": [
"forums_posts",
{
"name": "post_featured",
"type": "INT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"comment": "",
"unsigned": true,
"auto_increment": false
}
]
}
}
@@ -0,0 +1,17 @@
{
"added": [
"forums_helpful_highlight",
"forums_solved_nudge_experts",
"forums_topic_summary_post_count"
],
"edited": [],
"removed": [
"forums_answers_downvote",
"forums_default_view",
"forums_default_view_choose",
"forums_new_questions",
"forums_questions_downvote",
"forums_view_list_choose",
"forums_view_list_method"
]
}
@@ -0,0 +1,7 @@
{
"added": [
"expertUserNudge"
],
"edited": [],
"removed": []
}
@@ -0,0 +1,77 @@
{
"html": {
"added": [],
"edited": [
"front\/forums\/topicRow",
"front\/forums\/topicRowSnippet",
"front\/global\/row",
"front\/index\/forumGridItem",
"front\/index\/forumRow",
"front\/index\/simplifiedTopicRow",
"front\/index\/simplifiedTopicRowSnippet",
"front\/topics\/postContainer",
"front\/widgets\/postFeed",
"front\/widgets\/topicFeed",
"front\/widgets\/topicFeedRow",
"front\/forums\/forumDisplay",
"front\/forums\/popularQuestionRow",
"front\/forums\/questionRow",
"front\/forums\/topicRow",
"front\/forums\/topicRowSnippet",
"front\/global\/commentTableHeader",
"front\/index\/forumRow",
"front\/index\/index",
"front\/index\/simplifiedTopicRow",
"front\/index\/simplifiedTopicRowSnippet",
"front\/topics\/activity",
"front\/widgets\/pollWidget",
"front\/widgets\/topicFeed",
"front\/widgets\/topicFeedRow",
"front\/forums\/clubForums",
"front\/forums\/forumDisplay",
"front\/forums\/forumTable",
"front\/forums\/topicRow",
"front\/index\/index",
"front\/index\/simplifiedForumTable",
"front\/submit\/createTopicForm",
"front\/topics\/topic",
"front\/topics\/topicSolutionMessage",
"front\/widgets\/topicFeedRow",
"front\/submit\/createTopicModOptions",
"front\/forums\/topicRowSnippet",
"front\/widgets\/topicFeedRow",
"front\/forums\/qaForum",
"front\/forums\/topicHover",
"front\/forums\/topicRow",
"front\/index\/simplifiedTopicRow",
"front\/submit\/createTopicForm",
"front\/topics\/activity",
"front\/topics\/topic",
"front\/widgets\/forumStatistics",
"front\/widgets\/hotTopics",
"front\/widgets\/poll",
"front\/widgets\/pollWidget",
"front\/widgets\/postFeed",
"front\/widgets\/topicFeed",
"front\/widgets\/topicFeedRow"
],
"removed": []
},
"css": {
"added": [],
"edited": [
"front\/forums.css",
"front\/forums.css",
"front\/topics.css"
],
"removed": [
"front\/embed.css",
"front\/posts.css"
]
},
"resources": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,10 @@
{
"added": [
"layout_forums_forum",
"layout_forums_topic",
"layout_forums_post",
"layout_forum_topic_view_firstpost"
],
"edited": [],
"removed": []
}
@@ -0,0 +1,37 @@
{
"categories": {
"added": [],
"edited": [],
"removed": []
},
"settings": {
"added": [],
"edited": [
"layout_forums_forum",
"layout_forums_topic",
"layout_forums_post",
"layout_forum_topic_view_firstpost",
"layout_forums_forum",
"layout_forums_topic",
"layout_forums_post",
"layout_forum_topic_view_firstpost",
"layout_forums_forum",
"layout_forums_topic",
"layout_forums_post",
"layout_forum_topic_view_firstpost",
"layout_forums_forum",
"layout_forums_topic",
"layout_forums_post",
"layout_forum_topic_view_firstpost",
"layout_forums_forum",
"layout_forums_topic",
"layout_forums_post",
"layout_forum_topic_view_firstpost",
"layout_forums_forum",
"layout_forums_topic",
"layout_forums_post",
"layout_forum_topic_view_firstpost"
],
"removed": []
}
}
@@ -0,0 +1,66 @@
<?php
/**
* @brief 5.0.0 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Forums
* @since 20 Sep 2022
*/
namespace IPS\forums\setup\upg_500001;
/* To prevent PHP errors (extending class does not exist) revealing path */
use IPS\Db;
use IPS\Patterns\ActiveRecordIterator;
use IPS\Task;
use function defined;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 5.0.0 Upgrade Code
*/
class Upgrade
{
/**
* ...
*
* @return bool|array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1() : bool|array
{
/* Convert Q&A to Solved */
foreach( new ActiveRecordIterator( Db::i()->select( '*', 'forums_forums', array( 'forums_bitoptions & ?', 4 ) ), '\IPS\forums\Forum' ) as $forum )
{
$forum->forums_bitoptions['bw_enable_answers'] = FALSE;
$forum->forums_bitoptions['bw_solved_set_by_moderator'] = TRUE;
$forum->forums_bitoptions['bw_solved_set_by_member'] = TRUE;
$forum->save();
}
return TRUE;
}
/**
* Update the last post info for forums
*
* @return bool|array
*/
public function step2() : bool|array
{
/* Update last topic info per forum */
Task::queue( 'core', 'RebuildContainerCounts', array( 'class' => 'IPS\forums\Forum', 'count' => 0 ), 4, array( 'class' ) );
return TRUE;
}
// You can create as many additional methods (step2, step3, etc.) as is necessary.
// Each step will be executed in a new HTTP request
}
@@ -0,0 +1,8 @@
{
"added": [],
"edited": [
"topicFeed",
"topicFeed"
],
"removed": []
}