Version 4.7.0

This commit is contained in:
Neo committed 2025-12-19 16:00:35 -08:00
1 parent 517a5e1f70
commit 8ba7d43898
1933 files changed
+65613 -11332

No files matched your search

@@ -0,0 +1,7 @@
{
"added": [],
"edited": [],
"removed": [
"app=core&module=members&controller=members&searchResult=form_member_title"
]
}
@@ -0,0 +1,24 @@
{
"id": 106156,
"name": "4.6.11 Beta 1",
"steps": {
"queries": true,
"lang": true,
"theme": true,
"themeSettings": false,
"javascript": true,
"emailTemplates": true,
"hooks": false,
"acpSearchKeywords": true,
"settings": true,
"tasks": false,
"modules": true,
"widgets": false,
"whatsnew": false,
"customOptions": false,
"customRoutines": true
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,8 @@
{
"added": [],
"edited": [
"notification_new_rank",
"notification_new_badge"
],
"removed": []
}
@@ -0,0 +1,16 @@
{
"files": {
"added": [
"global\/framework\/controllers\/editor\/ips.editor.censorBlock.js"
],
"edited": [
"core\/front\/controllers\/widgets\/ips.widgets.area.js"
],
"removed": []
},
"orders": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,434 @@
{
"normal": {
"added": [
"icons_homescreen_maskable",
"icons_homescreen_maskable_desc",
"profanity_filter_action_block",
"profanity_filter_action_block_desc",
"profanity_block",
"profanity_block_public_explanation",
"profanity_already_exists",
"mfa_back",
"club_max_cover",
"webhook_club_member_added",
"webhook_club_member_removed"
],
"edited": [
"enhancements__core_Zapier",
"member_notifications_push_desc_with_app",
"member_notifications_push_stop_desc_sub_with_app"
],
"removed": [
"ext__MobileNavigation",
"app_posts",
"app_topics",
"app_replies",
"app_quote",
"app_post_options",
"app_end_of_forum",
"app_cancel",
"app_post_action",
"app_save",
"app_confirm",
"app_yes",
"app_no",
"app_add",
"app_report",
"app_show",
"app_hide",
"app_replace",
"app_load_earlier",
"app_write_reply",
"app_unread_posts",
"app_your_profile",
"app_settings",
"app_sign_out",
"app_notification_settings",
"app_disabled_notification",
"app_legal_notices",
"app_edit_profile",
"app_offline",
"app_home",
"app_browse",
"app_our_picks",
"app_new_content",
"app_active_users",
"app_popular_contributors",
"app_x_more",
"app_no_users_online",
"app_x_guests_online",
"app_activity_replied",
"app_activity_commented",
"app_activity_reviewed",
"app_activity_posted_item",
"app_activity_generic",
"app_login_prompt",
"app_login_register_prompt",
"app_login_prompt_comment",
"app_login_register_prompt_comment",
"app_register",
"app_sign_in",
"app_home_view_error",
"app_topic_view_error",
"app_no_topics",
"app_forum_requires_password",
"app_enter_password",
"app_password",
"app_go",
"app_user_browsing_community",
"app_error",
"app_error_remove_reaction",
"app_error_reacting",
"app_error_following",
"app_error_unfollowing",
"app_ok",
"app_cant_show_reactions",
"app_editor_quote_line",
"app_editor_quote_line_with_time",
"app_ignoring_user",
"app_pagination",
"app_insert",
"app_insert_into_post",
"app_delete_image",
"app_cancel_upload",
"app_attachment_options",
"app_no_matching_members",
"app_rep",
"app_no_rep_this_week",
"app_list_two",
"app_list_three",
"app_take_photo",
"app_camera_roll",
"app_failed",
"app_error_loading",
"app_try_again",
"app_load_earlier_comments",
"app_unread_comments",
"app_order_start_unread",
"app_order_start_first",
"app_order_start_last",
"app_content_view_desc",
"app_error_marking_read",
"app_error_marking_read_desc",
"app_someones_x",
"app_no_results",
"app_who_reacted",
"app_account_settings",
"app_reply_screen",
"app_tab_home",
"app_tab_search",
"app_tab_streams",
"app_tab_notifications",
"app_tab_user",
"app_tab_signin",
"app_confirm_logout",
"app_submitting",
"app_discard",
"app_stay_here",
"app_upload_in_progress",
"app_upload_in_progress_desc",
"app_quoting_x",
"app_your_reply",
"app_started_by_x",
"app_cannot_reply_with_info",
"app_copy_permalink",
"app_copied_permalink",
"app_ignore",
"app_unignore",
"app_ignore_options",
"app_error_ignoring_member",
"app_error_ignore_type",
"app_error_ignore_member",
"app_error_ignore_no_self",
"app_seconds",
"app_minutes",
"app_hours",
"app_days",
"app_weeks",
"app_months",
"app_years",
"app_seconds_short",
"app_minutes_short",
"app_hours_short",
"app_days_short",
"app_weeks_short",
"app_months_short",
"app_years_short",
"app_time_future",
"app_time_past",
"app_link_url",
"app_link_text",
"app_invalid_link",
"app_invalid_link_desc",
"app_error_upload_type",
"app_error_upload_space",
"app_error_upload_other",
"app_no_address",
"app_no_color",
"app_no_date",
"app_no_email",
"app_no_selection",
"app_no_member",
"app_no_value",
"app_not_available",
"app_no_url",
"app_status_pinned",
"app_status_hidden",
"app_status_hidden_desc",
"app_status_deleted",
"app_status_deleted_desc",
"app_status_unapproved",
"app_status_unapproved_desc",
"app_status_hot",
"app_status_featured",
"app_status_locked",
"app_status_archived",
"app_share",
"app_error_sharing_content",
"app_share_x_on_x_at_x",
"app_share_x",
"app_followed_member",
"app_unfollowed_member",
"app_profile_content_count",
"app_profile_reputation",
"app_profile_followers",
"app_profile_overview",
"app_profile_content",
"app_basic_information",
"app_joined",
"app_email_address",
"app_end_of_profile_content",
"app_profile_error",
"app_username",
"app_forgot_password",
"app_sign_in_anon",
"app_sign_in_with_social",
"app_search_site",
"app_loading",
"app_no_recent_searches",
"app_error_searching",
"app_no_results_in_x",
"app_see_all",
"app_name_replied",
"app_item_in_container",
"app_in_container",
"app_overview",
"app_top_content",
"app_top_members",
"app_recent_searches",
"app_content",
"app_votes",
"app_votes_nonum",
"app_poll_closed",
"app_poll_closes_date",
"app_poll_view",
"app_poll_view_results",
"app_poll_view_and_vote",
"app_poll_you_voted",
"app_poll_prefix",
"app_poll_question_number",
"app_poll_multiple_choice",
"app_poll_view_confirm",
"app_poll_no_permission",
"app_poll_submit_votes",
"app_poll_change_vote",
"app_poll_update_vote",
"app_tags_min_max",
"app_tags_min",
"app_tags_min_error",
"app_tags_max",
"app_tags_max_error",
"app_tags_len_min_max",
"app_tags_len_min",
"app_tags_len_max",
"app_manage_tags",
"app_enter_tag",
"app_tags",
"app_tag_suggestions",
"app_too_many_tags",
"app_too_few_tags",
"app_notification_group_core",
"app_no_more_notifications",
"app_notifications_unread",
"app_notifications_read",
"app_no_notifications",
"app_notification_instructions",
"app_notification_instructions_ios",
"app_notification_instructions_android",
"app_notification_android_extra",
"app_notification_android_extra_desc",
"app_email_notification",
"app_email_notification_desc",
"app_notification_types",
"app_notification_both",
"app_notification_inline",
"app_notification_none",
"app_notification_type_push",
"app_notification_type_email",
"app_notification_type_inline",
"app_notification_type_none",
"app_notification_inline_only",
"app_switch_stream",
"app_past_hour",
"app_yesterday",
"app_today",
"app_last_week",
"app_earlier",
"app_all_activity",
"app_stream_error",
"app_x_follow_this",
"app_follow_immediate",
"app_follow_weekly",
"app_follow_daily",
"app_follow_none",
"app_follow_anon",
"app_follow_freq",
"app_follow_privacy",
"app_follow",
"app_followers",
"app_follow_save",
"app_unfollow",
"app_error_select_follow_option",
"app_no_followers",
"app_reporting_x_in_x",
"app_revoke_report_x_in_x",
"app_reporting_x",
"app_revoke_report_x",
"app_error_must_select_report_reason",
"app_error_already_reported",
"app_error_report_failed",
"app_error_cannot_report",
"app_error_revoke_failed",
"app_thanks_for_report",
"app_revoke_success",
"app_sending_report",
"app_send_report",
"app_sending_revoke",
"app_send_revoke",
"app_choose_reason",
"app_report_reason",
"app_additional_report_info",
"app_no_additional_info",
"app_report_info_placeholder",
"app_report_unknown",
"app_report_content_screen",
"app_messages",
"app_myconvo",
"app_switch_folder",
"app_new_message",
"app_conversation_removed",
"app_conversation_left_time",
"app_conversation_left_no_time",
"app_conversation_pm_disabled",
"app_conversation_last_read",
"app_conversation_not_read",
"app_x_participants",
"app_leave_conversation",
"app_conversation_add_user",
"app_confirm_leave_text",
"app_conversation_remove",
"app_conversation_add_back",
"app_remove_user",
"app_remove_user_text",
"app_error_adding_user",
"app_error_removing_user",
"app_error_leaving_conversation",
"app_conversation_reply",
"app_notifications__club_invitation",
"app_notifications__club_response",
"app_notifications__club_request",
"app_notifications__club_join",
"app_notifications__unapproved_club",
"app_notifications__new_content",
"app_notifications__new_comment",
"app_notifications__new_review",
"app_notifications__follower_content",
"app_notifications__quote",
"app_notifications__mention",
"app_notifications__embed",
"app_notifications__new_likes_rep",
"app_notifications__new_likes_like",
"app_notifications__warning_mods",
"app_notifications__report_center",
"app_notifications__automatic_moderation",
"app_notifications__unapproved_content",
"app_notifications__new_private_message",
"app_notifications__private_message_added",
"app_notifications__member_follow",
"app_notifications__profile_comment",
"app_notifications__profile_reply",
"app_notifications__new_status",
"app_legal_terms",
"app_legal_privacy",
"app_legal_guidelines",
"app_third_party_licenses",
"app_legal_app_privacy",
"menu__core_mobile",
"menu__core_mobile_menu",
"menu__core_mobile_mobile",
"r__mobile",
"r__mobile_manage",
"mobile_app_splash",
"mobile_app_splash_info",
"mobile_app_splash_pricing",
"mobile_app_splash_pricing_cic",
"mobile_app_splash_requirements",
"mobile_app_splash_get_started",
"mobile_app_splash_manual",
"mobile_app_splash_manual_id",
"mobile_app_splash_manual_secret",
"mobile_app_splash_manual_error",
"mobile_app_splash_manual_error_url",
"mobile_app_listing_name",
"mobile_app_listing_desc",
"mobile_app_listing_logo",
"mobile_app_listing_logo_desc",
"mobile_app_listing_logo_square",
"mobile_app_listing_logo_dims",
"mobile_app_listing_logo_choose",
"mobile_app_listing_logo_keep",
"mobile_app_listing_logo_change",
"mobile_app_listing_category",
"mobile_app_listing_languages",
"mobile_app_listing_details",
"mobile_app_listing_update",
"mobile_app_listing_update_info",
"mobile_app_deregister_confirm",
"mobile_app_redirect_scheme",
"mobile_app_prompt",
"mobile_app_prompt_desc",
"mobile_app_hide_stats",
"mobile_app_hide_stats_desc",
"mobile_app_itunes_id",
"mobile_app_itunes_id_desc",
"mobile_app_itunes_url",
"mobile_app_play_id",
"mobile_app_play_id_desc",
"mobile_app_play_url",
"itunes_affiliate_string",
"itunes_affiliate_string_desc",
"mobile_app_status_pending",
"mobile_app_status_expired",
"mobile_app_status_suspended",
"mobile_app_requires_active_license",
"mobile_app_requires_license",
"mobile_app_home_blocks_order",
"mobile_app_home_blocks_new_content",
"mobile_app_home_blocks_active_users",
"mobile_app_home_blocks_our_picks",
"mobile_app_home_blocks_popular_contributors",
"mobile_app_default_client_name",
"mobile_app_registration_error",
"acplogs__mobile_app_registered",
"acplogs__mobile_app_updated",
"acplogs__mobile_app_unregistered",
"acplogs__mobile_app_activated",
"mobilenavigation_CustomItem"
]
},
"js": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,7 @@
{
"added": [],
"edited": [],
"removed": [
"admin\/mobile"
]
}
@@ -0,0 +1,32 @@
{
"1": {
"method": "changeColumn",
"params": [
"core_profanity_filters",
"action",
{
"name": "action",
"type": "SET",
"length": null,
"decimals": null,
"values": [
"swap",
"moderate",
"block"
],
"allow_null": false,
"default": "swap",
"comment": "",
"unsigned": false,
"auto_increment": false
}
]
},
"2": {
"method": "dropTable",
"params": [
"core_mobileapp_menu",
true
]
}
}
@@ -0,0 +1,18 @@
{
"added": [
"club_max_cover",
"icons_homescreen_maskable"
],
"edited": [],
"removed": [
"mobile_app_home_blocks_order",
"mobile_app_id",
"mobile_app_itunes_id",
"mobile_app_itunes_url",
"mobile_app_play_id",
"mobile_app_play_url",
"mobile_app_prompt",
"mobile_app_redirect_scheme",
"mobile_app_secret"
]
}
@@ -0,0 +1,33 @@
{
"html": {
"added": [],
"edited": [
"admin\/api\/zapier",
"global\/forms\/editorRaw",
"front\/global\/globalTemplate",
"global\/global\/includeMeta",
"global\/global\/poll",
"global\/login\/mfaAuthenticate",
"admin\/members\/deviceInfo",
"front\/system\/notificationSettingsIndex"
],
"removed": [
"admin\/mobile\/details",
"admin\/mobile\/splash"
]
},
"css": {
"added": [],
"edited": [
"global\/framework\/misc.css",
"global\/framework\/typography.css",
"admin\/system\/dashboard.css"
],
"removed": []
},
"resources": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,71 @@
<?php
/**
* @brief 4.6.11 Beta 1 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
* @since 09 Feb 2022
*/
namespace IPS\core\setup\upg_106156;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.6.11 Beta 1 Upgrade Code
*/
class _Upgrade
{
/**
* remove mobile app client
*
* @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()
{
try
{
$client = \IPS\Api\OAuthClient::constructFromData( \IPS\Db::i()->select( '*', 'core_oauth_clients', array( 'oauth_type=?', 'mobile' ) )->first() );
$client->delete();
}
catch ( \UnderflowException $e )
{
}
/* Rebuild Zapier REST API Key Permissions */
if( \IPS\Settings::i()->zapier_api_key )
{
try
{
$apiKey = \IPS\Api\Key::load( \IPS\Settings::i()->zapier_api_key );
$correctPermissions = json_encode( \IPS\core\extensions\core\CommunityEnhancements\Zapier::apiKeyPermissions() );
if ( $apiKey->permissions != $correctPermissions )
{
$apiKey->permissions = $correctPermissions;
$apiKey->save();
}
}
catch ( \OutOfRangeException $e )
{
}
}
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
}