Version 4.5.0

This commit is contained in:
Neo committed 2025-12-19 05:51:58 -08:00
1 parent 1a0c7fd3c2
commit f79dcf067a
3791 files changed
+248032 -76372

No files matched your search

@@ -0,0 +1,298 @@
{
"added": [
"app=core&module=activitystats&controller=communityactivity",
"app=core&module=activitystats&controller=keywords",
"app=core&module=applications&controller=api",
"app=core&module=applications&controller=api&tab=apiKeys",
"app=core&module=applications&controller=api&tab=apiLogs",
"app=core&module=applications&controller=api&tab=apiReference",
"app=core&module=applications&controller=applications",
"app=core&module=applications&controller=enhancements",
"app=core&module=applications&controller=enhancements&do=edit&id=core_FacebookPixel",
"app=core&module=applications&controller=enhancements&do=edit&id=core_GoogleMaps&searchResult=form_googlemaps",
"app=core&module=applications&controller=enhancements&do=edit&id=core_Pixabay",
"app=core&module=applications&controller=enhancements&do=edit&id=core_Viglink&searchResult=form_viglink_account_type",
"app=core&module=applications&controller=enhancements&do=edit&searchResult=pixabay_apikey",
"app=core&module=applications&controller=menu",
"app=core&module=applications&controller=plugins",
"app=core&module=applications&controller=rss",
"app=core&module=bulkmail&controller=bulkmail",
"app=core&module=clubs&controller=clubs",
"app=core&module=clubs&controller=settings",
"app=core&module=clubs&controller=settings&searchResult=clubs_locations",
"app=core&module=clubs&controller=settings&searchResult=clubs_modperms",
"app=core&module=clubs&controller=settings&searchResult=form_clubs_enabled_setting",
"app=core&module=customization&controller=emails",
"app=core&module=customization&controller=icons",
"app=core&module=customization&controller=icons&searchResult=form_icons_favicon",
"app=core&module=customization&controller=icons&searchResult=form_icons_homescreen",
"app=core&module=customization&controller=icons&searchResult=form_icons_sharer_logo",
"app=core&module=customization&controller=themes",
"app=core&module=customization&controller=themes&do=designersmode&searchResult=form_theme_designers_mode",
"app=core&module=discovery&controller=rss",
"app=core&module=discovery&controller=search",
"app=core&module=discovery&controller=search&searchResult=form_search_method",
"app=core&module=discovery&controller=search&searchResult=search_index_timeframe",
"app=core&module=editor&controller=emoticons",
"app=core&module=editor&controller=emoticons&tab=custom",
"app=core&module=editor&controller=emoticons&tab=standard",
"app=core&module=editor&controller=settings",
"app=core&module=editor&controller=settings&searchResult=form_editor_paragraph_padding",
"app=core&module=editor&controller=settings&searchResult=form_editor_paste_behaviour",
"app=core&module=editor&controller=settings&searchResult=form_enable_bbcode",
"app=core&module=editor&controller=toolbar",
"app=core&module=languages&controller=languages",
"app=core&module=languages&controller=languages&do=settings&searchResult=form_lang_auto_detect",
"app=core&module=members&controller=groups",
"app=core&module=members&controller=groups&do=form&searchResult=g_promote_exclude",
"app=core&module=members&controller=groups&do=form&searchResult=g_upload_animated_photos",
"app=core&module=members&controller=groups&do=form&searchResult=gbw_hide_group",
"app=core&module=members&controller=groups&do=form&searchResult=gbw_post_highlight",
"app=core&module=members&controller=groups&searchResult=g_access_offline",
"app=core&module=members&controller=groups&searchResult=g_append_edit",
"app=core&module=members&controller=groups&searchResult=g_attach",
"app=core&module=members&controller=groups&searchResult=g_attach_max",
"app=core&module=members&controller=groups&searchResult=g_attach_per_post",
"app=core&module=members&controller=groups&searchResult=g_avoid_flood",
"app=core&module=members&controller=groups&searchResult=g_avoid_q",
"app=core&module=members&controller=groups&searchResult=g_bypass_badwords",
"app=core&module=members&controller=groups&searchResult=g_can_msg_attach",
"app=core&module=members&controller=groups&searchResult=g_can_report",
"app=core&module=members&controller=groups&searchResult=g_delete_own_posts",
"app=core&module=members&controller=groups&searchResult=g_dohtml",
"app=core&module=members&controller=groups&searchResult=g_edit_cutoff",
"app=core&module=members&controller=groups&searchResult=g_edit_posts",
"app=core&module=members&controller=groups&searchResult=g_edit_profile",
"app=core&module=members&controller=groups&searchResult=g_hide_online_list",
"app=core&module=members&controller=groups&searchResult=g_hide_own_posts",
"app=core&module=members&controller=groups&searchResult=g_icon",
"app=core&module=members&controller=groups&searchResult=g_max_bgimg_upload",
"app=core&module=members&controller=groups&searchResult=g_max_messages",
"app=core&module=members&controller=groups&searchResult=g_photo_max_vars_size",
"app=core&module=members&controller=groups&searchResult=g_photo_max_vars_wh",
"app=core&module=members&controller=groups&searchResult=g_pm_perday",
"app=core&module=members&controller=groups&searchResult=g_post_polls",
"app=core&module=members&controller=groups&searchResult=g_ppd_limit",
"app=core&module=members&controller=groups&searchResult=g_ppd_unit",
"app=core&module=members&controller=groups&searchResult=g_prefixsuffix",
"app=core&module=members&controller=groups&searchResult=g_rep_max_positive",
"app=core&module=members&controller=groups&searchResult=g_search_flood",
"app=core&module=members&controller=groups&searchResult=g_sig_max_image_size",
"app=core&module=members&controller=groups&searchResult=g_sig_max_images",
"app=core&module=members&controller=groups&searchResult=g_sig_max_lines",
"app=core&module=members&controller=groups&searchResult=g_sig_max_urls",
"app=core&module=members&controller=groups&searchResult=g_topic_rate_setting",
"app=core&module=members&controller=groups&searchResult=g_use_signatures",
"app=core&module=members&controller=groups&searchResult=g_view_board",
"app=core&module=members&controller=groups&searchResult=g_vote_polls",
"app=core&module=members&controller=groups&searchResult=gbw_allow_upload_bgimage",
"app=core&module=members&controller=groups&searchResult=gbw_cannot_be_ignored",
"app=core&module=members&controller=groups&searchResult=gbw_delete_attachments",
"app=core&module=members&controller=groups&searchResult=gbw_disable_prefixes",
"app=core&module=members&controller=groups&searchResult=gbw_disable_tagging",
"app=core&module=members&controller=groups&searchResult=gbw_no_status_import",
"app=core&module=members&controller=groups&searchResult=gbw_no_status_update",
"app=core&module=members&controller=groups&searchResult=gbw_view_reps",
"app=core&module=members&controller=groups&searchResult=group_username",
"app=core&module=members&controller=ip",
"app=core&module=members&controller=members",
"app=core&module=members&controller=members&searchResult=form_allow_admin_mails",
"app=core&module=members&controller=members&searchResult=form_auto_track",
"app=core&module=members&controller=members&searchResult=form_group",
"app=core&module=members&controller=members&searchResult=form_ips_address_mail",
"app=core&module=members&controller=members&searchResult=form_ips_member_name",
"app=core&module=members&controller=members&searchResult=form_member_content_items",
"app=core&module=members&controller=members&searchResult=form_member_reputation",
"app=core&module=members&controller=members&searchResult=form_member_title",
"app=core&module=members&controller=members&searchResult=form_member_warnings",
"app=core&module=members&controller=members&searchResult=form_password",
"app=core&module=members&controller=members&searchResult=form_secondary_groups",
"app=core&module=members&controller=members&searchResult=form_skin",
"app=core&module=members&controller=members&searchResult=form_view_sigs",
"app=core&module=members&controller=promotions",
"app=core&module=membersettings&controller=ban",
"app=core&module=membersettings&controller=notifications",
"app=core&module=membersettings&controller=notifications&do=edit&id=core_BulkMails",
"app=core&module=membersettings&controller=notifications&do=edit&id=core_Content",
"app=core&module=membersettings&controller=notifications&do=edit&id=core_Messenger",
"app=core&module=membersettings&controller=notifications&do=method&id=inline&searchResult=notification_prefs_sound",
"app=core&module=membersettings&controller=notifications&do=method&id=inline&searchResult=prune_notifications",
"app=core&module=membersettings&controller=notifications&do=pruneSettings&searchResult=form_prune_notifications",
"app=core&module=membersettings&controller=notifications&do=pruneSettings&searchResult=prune_follows",
"app=core&module=membersettings&controller=profiles",
"app=core&module=membersettings&controller=profiles&tab=profilecompletion",
"app=core&module=membersettings&controller=profiles&tab=profilesettings",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=form_group_formatting_type",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=form_letter_photos",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=form_photos_url",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=form_profile_comments",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=form_signatures_enabled",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=form_user_name_length",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=form_username_characters",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=ignore_system_on",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=profile_birthday_type",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=profile_comment_approval",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=prune_item_markers",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=prune_known_devices",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=prune_known_ips",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=prune_member_history",
"app=core&module=membersettings&controller=profiles&tab=profilesettings&searchResult=user_name_length",
"app=core&module=membersettings&controller=ranks",
"app=core&module=membersettings&controller=referrals",
"app=core&module=membersettings&controller=reputation",
"app=core&module=membersettings&controller=reputation&searchResult=form_reaction_count_display",
"app=core&module=membersettings&controller=reputation&searchResult=form_reputation_enabled",
"app=core&module=membersettings&controller=reputation&searchResult=reputation_can_self_vote",
"app=core&module=membersettings&controller=reputation&searchResult=reputation_highlight",
"app=core&module=membersettings&controller=reputation&searchResult=reputation_leaderboard_default_tab",
"app=core&module=membersettings&controller=reputation&searchResult=reputation_leaderboard_on",
"app=core&module=membersettings&controller=reputation&searchResult=reputation_max_members",
"app=core&module=membersettings&controller=reputation&searchResult=reputation_protected_groups",
"app=core&module=membersettings&controller=reputation&searchResult=reputation_show_content",
"app=core&module=membersettings&controller=reputation&searchResult=reputation_show_days_won_trophy",
"app=core&module=membersettings&controller=reputation&searchResult=reputation_show_profile",
"app=core&module=membersettings&controller=reputation&searchResult=reputation_timezone",
"app=core&module=membersettings&controller=reputation&tab=leaderboard&searchResult=reputation_leaderboard_on",
"app=core&module=membersettings&controller=reputation&tab=leaderboard&searchResult=reputation_max_members",
"app=core&module=membersettings&controller=reputation&tab=leaderboard&searchResult=reputation_show_days_won_trophy",
"app=core&module=messengerstats&controller=pmstats",
"app=core&module=moderation&controller=reportedContent",
"app=core&module=moderation&controller=spam",
"app=core&module=moderation&controller=spam&do=serviceLogs",
"app=core&module=moderation&controller=spam&searchResult=bot_antispam_type",
"app=core&module=moderation&controller=spam&searchResult=guest_captcha",
"app=core&module=moderation&controller=spam&tab=captcha",
"app=core&module=moderation&controller=spam&tab=flagging",
"app=core&module=moderation&controller=spam&tab=qanda",
"app=core&module=moderation&controller=spam&tab=service",
"app=core&module=moderation&controller=warnings",
"app=core&module=moderation&controller=warnings&tab=settings&searchResult=form_warn_on",
"app=core&module=moderation&controller=warnings&tab=settings&searchResult=warn_protected",
"app=core&module=moderation&controller=warnings&tab=settings&searchResult=warn_show_own",
"app=core&module=moderation&controller=warnings&tab=settings&searchResult=warnings_acknowledge",
"app=core&module=overview&controller=files",
"app=core&module=overview&controller=files&do=imagesettings",
"app=core&module=overview&controller=files&do=imagesettings&searchResult=form_image_jpg_quality",
"app=core&module=overview&controller=files&do=imagesettings&searchResult=image_png_quality_gd",
"app=core&module=overview&controller=files&do=settings",
"app=core&module=promotion&controller=advertisements",
"app=core&module=promotion&controller=analytics",
"app=core&module=promotion&controller=promote",
"app=core&module=promotion&controller=promote&tab=facebook",
"app=core&module=promotion&controller=promote&tab=internal",
"app=core&module=promotion&controller=promote&tab=links",
"app=core&module=promotion&controller=promote&tab=permissions",
"app=core&module=promotion&controller=promote&tab=schedule",
"app=core&module=promotion&controller=promote&tab=twitter",
"app=core&module=promotion&controller=seo",
"app=core&module=promotion&controller=seo&tab=metatags",
"app=core&module=promotion&controller=seo&tab=sitemap",
"app=core&module=promotion&controller=seo&tab=urls",
"app=core&module=promotion&controller=sharelinks",
"app=core&module=settings&controller=advanced&do=tasks",
"app=core&module=settings&controller=advanced&searchResult=form_auto_polling_enabled",
"app=core&module=settings&controller=advanced&searchResult=form_lazy_load_enabled",
"app=core&module=settings&controller=advanced&tab=datastore",
"app=core&module=settings&controller=advanced&tab=datastore&searchResult=cache_guest_page",
"app=core&module=settings&controller=advanced&tab=datastore&searchResult=cache_method",
"app=core&module=settings&controller=advanced&tab=furl",
"app=core&module=settings&controller=advanced&tab=settings&searchResult=form_clickjackprevention",
"app=core&module=settings&controller=advanced&tab=settings&searchResult=match_ipaddress",
"app=core&module=settings&controller=advanced&tab=settings&searchResult=task_use_cron",
"app=core&module=settings&controller=advanced&tab=settings&searchResult=xforward_matching",
"app=core&module=settings&controller=contactus",
"app=core&module=settings&controller=email",
"app=core&module=settings&controller=email&do=errorLog",
"app=core&module=settings&controller=email&searchResult=email_log_do",
"app=core&module=settings&controller=email&searchResult=our_picks_in_email",
"app=core&module=settings&controller=email&searchResult=settings_form_email_color",
"app=core&module=settings&controller=email&searchResult=settings_form_email_in",
"app=core&module=settings&controller=email&searchResult=settings_form_email_logo",
"app=core&module=settings&controller=email&searchResult=settings_form_email_out",
"app=core&module=settings&controller=email&searchResult=settings_form_mail_method",
"app=core&module=settings&controller=email&searchResult=social_links_in_email",
"app=core&module=settings&controller=general&searchResult=form_board_name",
"app=core&module=settings&controller=general&searchResult=form_copyright_line",
"app=core&module=settings&controller=general&searchResult=form_diagnostics_reporting",
"app=core&module=settings&controller=general&searchResult=form_show_home_link",
"app=core&module=settings&controller=general&searchResult=form_site_address",
"app=core&module=settings&controller=general&searchResult=form_site_online",
"app=core&module=settings&controller=general&searchResult=form_site_social_profiles",
"app=core&module=settings&controller=general&searchResult=form_site_twitter_id",
"app=core&module=settings&controller=licensekey",
"app=core&module=settings&controller=login",
"app=core&module=settings&controller=login&tab=accountsettings&searchResult=device_management",
"app=core&module=settings&controller=login&tab=accountsettings&searchResult=password_strength_meter",
"app=core&module=settings&controller=login&tab=registration",
"app=core&module=settings&controller=login&tab=registration&searchResult=allow_reg",
"app=core&module=settings&controller=login&tab=registration&searchResult=quick_register",
"app=core&module=settings&controller=login&tab=registration&searchResult=reg_auth_type",
"app=core&module=settings&controller=login&tab=registration&searchResult=use_coppa",
"app=core&module=settings&controller=login&tab=settings&searchResult=disable_anonymous",
"app=core&module=settings&controller=login&tab=settings&searchResult=form_new_device_email",
"app=core&module=settings&controller=login&tab=settings&searchResult=ipb_bruteforce_attempts",
"app=core&module=settings&controller=login&tab=settings&searchResult=ipb_bruteforce_period",
"app=core&module=settings&controller=login&tab=settings&searchResult=ipb_bruteforce_unlock",
"app=core&module=settings&controller=mfa",
"app=core&module=settings&controller=posting&searchResult=allow_only_https_remote_images",
"app=core&module=settings&controller=posting&searchResult=attach_allowed_extensions",
"app=core&module=settings&controller=posting&searchResult=attachment_image_size",
"app=core&module=settings&controller=posting&searchResult=attachment_resample_size",
"app=core&module=settings&controller=posting&searchResult=form_allow_remote_images",
"app=core&module=settings&controller=posting&searchResult=form_attach_allowed_types",
"app=core&module=settings&controller=posting&searchResult=form_dellog_retention_period",
"app=core&module=settings&controller=posting&searchResult=form_edit_log",
"app=core&module=settings&controller=posting&searchResult=form_editor_embeds",
"app=core&module=settings&controller=posting&searchResult=form_flood_control",
"app=core&module=settings&controller=posting&searchResult=form_ip_address_prune",
"app=core&module=settings&controller=posting&searchResult=form_max_title_length",
"app=core&module=settings&controller=posting&searchResult=form_max_video_width",
"app=core&module=settings&controller=posting&searchResult=form_merge_concurrent_posts",
"app=core&module=settings&controller=posting&searchResult=form_post_before_registering",
"app=core&module=settings&controller=posting&searchResult=form_reviews_rating_out_of",
"app=core&module=settings&controller=posting&searchResult=form_topic_redirect_prune",
"app=core&module=settings&controller=posting&searchResult=max_video_width",
"app=core&module=settings&controller=posting&searchResult=remote_image_proxy",
"app=core&module=settings&controller=posting&searchResult=remote_image_proxy_cache",
"app=core&module=settings&controller=posting&tab=acronymExpansion",
"app=core&module=settings&controller=posting&tab=general&searchResult=attachment_image_size",
"app=core&module=settings&controller=posting&tab=general&searchResult=form_allow_remote_images",
"app=core&module=settings&controller=posting&tab=general&searchResult=form_attach_allowed_types",
"app=core&module=settings&controller=posting&tab=general&searchResult=form_edit_log",
"app=core&module=settings&controller=posting&tab=general&searchResult=form_flood_control",
"app=core&module=settings&controller=posting&tab=general&searchResult=form_max_title_length",
"app=core&module=settings&controller=posting&tab=general&searchResult=form_max_video_width",
"app=core&module=settings&controller=posting&tab=general&searchResult=form_merge_concurrent_posts",
"app=core&module=settings&controller=posting&tab=general&searchResult=form_reviews_rating_out_of",
"app=core&module=settings&controller=posting&tab=general&searchResult=form_topic_redirect_prune",
"app=core&module=settings&controller=posting&tab=polls",
"app=core&module=settings&controller=posting&tab=profanityFilters",
"app=core&module=settings&controller=posting&tab=tags",
"app=core&module=settings&controller=posting&tab=tags&searchResult=tags_can_prefix",
"app=core&module=settings&controller=posting&tab=urlFilters",
"app=core&module=settings&controller=posting&tab=urlFilters&searchResult=form_links_external",
"app=core&module=settings&controller=posting&tab=urlFilters&searchResult=ipb_url_blacklist",
"app=core&module=settings&controller=posting&tab=urlFilters&searchResult=posts_add_nofollow",
"app=core&module=settings&controller=posting&tab=urlFilters&searchResult=posts_add_nofollow_exclude",
"app=core&module=settings&controller=posting&tab=urlFilters&searchResult=url_filter_action",
"app=core&module=settings&controller=securityquestions",
"app=core&module=settings&controller=terms",
"app=core&module=settings&controller=terms&searchResult=form_guest_terms_bar",
"app=core&module=settings&controller=terms&searchResult=guest_terms_bar_text",
"app=core&module=settings&controller=terms&searchResult=privacy_show_processors",
"app=core&module=staff&controller=admin",
"app=core&module=staff&controller=admin&do=actionLogs",
"app=core&module=staff&controller=admin&do=loginLogs",
"app=core&module=staff&controller=directory",
"app=core&module=staff&controller=moderators",
"app=core&module=staff&controller=moderators&do=actionLogs",
"app=core&module=stats&controller=membervisits",
"app=core&module=stats&controller=onlineusers",
"app=core&module=stats&controller=registrationstats",
"app=core&module=support&controller=errorLogs",
"app=core&module=support&controller=support",
"app=core&module=support&controller=systemLogs"
],
"edited": [],
"removed": []
}
@@ -0,0 +1,24 @@
{
"id": 105013,
"name": "4.5.0 Beta 1",
"steps": {
"queries": true,
"lang": true,
"theme": true,
"themeSettings": true,
"javascript": true,
"emailTemplates": true,
"hooks": false,
"acpSearchKeywords": true,
"settings": true,
"tasks": true,
"modules": true,
"widgets": true,
"whatsnew": false,
"customOptions": true,
"customRoutines": true
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,17 @@
{
"added": [
"notification_referral",
"onboard_reminder",
"notification_best_answer",
"password_reset_forced"
],
"edited": [
"notification_new_private_message",
"acp_notification_ConfigurationError",
"notification_private_message_added",
"_genericContent",
"admin_reg",
"emailWrapper"
],
"removed": []
}
@@ -0,0 +1,131 @@
{
"files": {
"added": [
"global\/framework\/common\/ui\/ips.ui.copy.js",
"core\/admin\/controllers\/core\/ips.core.changeTheme.js",
"core\/admin\/controllers\/core\/ips.core.newFeatures.js",
"core\/admin\/controllers\/dashboard\/ips.dashboard.onboard.js",
"core\/admin\/controllers\/stats\/ips.stats.nodeFilters.js",
"core\/admin\/controllers\/stats\/ips.stats.overview.js",
"core\/admin\/controllers\/stats\/ips.stats.overviewBlock.js",
"global\/framework\/controllers\/stockart\/ips.stockart.pixabay.js",
"core\/admin\/controllers\/system\/ips.system.upgradeManualQuery.js",
"core\/front\/controllers\/system\/ips.system.referrals.js",
"global\/library\/jquery\/jquery-3.5.1.min.js",
"global\/library\/jquery\/jquery-migrate-3.3.0.js",
"core\/admin\/templates\/ips.templates.newFeatures.js"
],
"edited": [
"global\/library\/app.js",
"global\/framework\/common\/ips.controller.js",
"global\/framework\/common\/ui\/ips.ui.addressForm.js",
"global\/framework\/common\/ui\/ips.ui.alert.js",
"global\/framework\/common\/ui\/ips.ui.autocomplete.js",
"global\/framework\/common\/ui\/ips.ui.carousel.js",
"global\/framework\/common\/ui\/ips.ui.chart.js",
"global\/framework\/common\/ui\/ips.ui.contentItem.js",
"global\/framework\/common\/ui\/ips.ui.dialog.js",
"global\/framework\/common\/ui\/ips.ui.editor.js",
"global\/framework\/common\/ui\/ips.ui.form.js",
"global\/framework\/common\/ui\/ips.ui.hovercard.js",
"global\/framework\/common\/ui\/ips.ui.infiniteScroll.js",
"global\/framework\/common\/ui\/ips.ui.js",
"global\/framework\/common\/ui\/ips.ui.lightbox.js",
"global\/framework\/common\/ui\/ips.ui.map.js",
"global\/framework\/common\/ui\/ips.ui.menu.js",
"global\/framework\/common\/ui\/ips.ui.passwordStrength.js",
"global\/framework\/common\/ui\/ips.ui.patchwork.js",
"global\/framework\/common\/ui\/ips.ui.productZoom.js",
"global\/framework\/common\/ui\/ips.ui.quote.js",
"global\/framework\/common\/ui\/ips.ui.selectTree.js",
"global\/framework\/common\/ui\/ips.ui.sideMenu.js",
"global\/framework\/common\/ui\/ips.ui.sticky.js",
"global\/framework\/common\/ui\/ips.ui.tooltip.js",
"global\/framework\/common\/ui\/ips.ui.truncate.js",
"global\/framework\/common\/ui\/ips.ui.uploader.js",
"global\/framework\/common\/utils\/ips.utils.cookie.js",
"global\/framework\/common\/utils\/ips.utils.db.js",
"global\/framework\/common\/utils\/ips.utils.defaultEditorPlugins.js",
"global\/framework\/common\/utils\/ips.utils.lazyLoad.js",
"global\/framework\/common\/utils\/ips.utils.notification.js",
"global\/framework\/common\/utils\/ips.utils.position.js",
"global\/framework\/common\/utils\/ips.utils.responsive.js",
"global\/framework\/common\/utils\/ips.utils.url.js",
"core\/front\/controllers\/clubs\/ips.clubs.navbar.js",
"core\/front\/controllers\/clubs\/ips.clubs.requests.js",
"global\/admin\/controllers\/core\/ips.core.app.js",
"global\/admin\/controllers\/core\/ips.core.dynamicChart.js",
"global\/admin\/controllers\/core\/ips.core.liveSearch.js",
"core\/front\/controllers\/core\/ips.core.announcementBanner.js",
"global\/front\/controllers\/core\/ips.core.app.js",
"global\/front\/controllers\/core\/ips.core.comment.js",
"global\/front\/controllers\/core\/ips.core.commentFeed.js",
"global\/front\/controllers\/core\/ips.core.commentsWrapper.js",
"core\/front\/controllers\/core\/ips.core.followButton.js",
"core\/front\/controllers\/core\/ips.core.guestTerms.js",
"global\/front\/controllers\/core\/ips.core.instantNotifications.js",
"global\/front\/controllers\/core\/ips.core.lightboxedImages.js",
"global\/front\/controllers\/core\/ips.core.navBar.js",
"core\/front\/controllers\/core\/ips.core.profileCompletion.js",
"global\/front\/controllers\/core\/ips.core.quickSearch.js",
"global\/front\/controllers\/core\/ips.core.reputation.js",
"global\/front\/controllers\/core\/ips.core.statuses.js",
"core\/front\/controllers\/core\/ips.core.tagEditor.js",
"core\/front\/controllers\/core\/ips.core.tagEditorForm.js",
"core\/global\/controllers\/core\/ips.core.coverPhoto.js",
"core\/global\/controllers\/core\/ips.core.embeddedvideo.js",
"core\/global\/controllers\/core\/ips.core.licenseRenewal.js",
"core\/global\/controllers\/core\/ips.core.multipleRedirect.js",
"core\/global\/controllers\/core\/ips.core.optionalAutocomplete.js",
"core\/global\/controllers\/core\/ips.core.table.js",
"core\/admin\/controllers\/customization\/ips.customization.emoticons.js",
"core\/global\/controllers\/customization\/ips.customization.visualLang.js",
"core\/admin\/controllers\/dashboard\/ips.dashboard.main.js",
"global\/framework\/controllers\/editor\/ips.editor.customtags.js",
"global\/framework\/controllers\/editor\/ips.editor.giphy.js",
"global\/framework\/controllers\/editor\/ips.editor.link.js",
"core\/front\/controllers\/modcp\/ips.modcp.announcementForm.js",
"core\/front\/controllers\/modcp\/ips.modcp.warnForm.js",
"core\/front\/controllers\/profile\/ips.profile.main.js",
"core\/front\/controllers\/profile\/ips.profile.toggleBlock.js",
"core\/front\/controllers\/search\/ips.search.filters.js",
"core\/front\/controllers\/search\/ips.search.main.js",
"core\/front\/controllers\/search\/ips.search.results.js",
"core\/admin\/controllers\/stats\/ips.stats.filtering.js",
"core\/front\/controllers\/streams\/ips.streams.form.js",
"core\/front\/controllers\/streams\/ips.streams.main.js",
"core\/front\/controllers\/streams\/ips.streams.results.js",
"core\/admin\/controllers\/system\/ips.system.api.js",
"core\/admin\/controllers\/system\/ips.system.menuManager.js",
"core\/admin\/controllers\/system\/ips.system.themeHookEditor.js",
"core\/front\/controllers\/system\/ips.system.metaTagEditor.js",
"core\/front\/controllers\/system\/ips.system.notificationSettings.js",
"core\/admin\/controllers\/templates\/ips.templates.fileEditor.js",
"core\/admin\/controllers\/templates\/ips.templates.fileList.js",
"core\/front\/controllers\/widgets\/ips.widgets.block.js",
"core\/front\/controllers\/widgets\/ips.widgets.manager.js",
"global\/library\/jquery\/jquery.dotdotdot.min.js",
"global\/front\/mixins\/ips.core.table.js",
"core\/admin\/templates\/ips.templates.dashboard.js",
"core\/admin\/templates\/ips.templates.system.js",
"global\/framework\/templates\/ips.core.templates.js",
"core\/front\/templates\/ips.templates.streams.js",
"core\/front\/templates\/ips.templates.system.js",
"global\/admin\/ui\/ips.ui.matrix.js",
"global\/admin\/ui\/ips.ui.statusToggle.js",
"global\/admin\/ui\/ips.ui.tree.js"
],
"removed": [
"core\/admin\/controllers\/dashboard\/ips.dashboard.newFeatures.js",
"core\/admin\/controllers\/settings\/ips.settings.posting.js",
"global\/library\/jquery\/jquery.js"
]
},
"orders": {
"added": [],
"edited": [
"global\/\/dev\/js\/\/library\/\/jquery"
],
"removed": []
}
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,43 @@
{
"added": [
"admin\/overview",
"admin\/system",
"admin\/applications",
"admin\/settings",
"admin\/members",
"admin\/membersettings",
"admin\/staff",
"admin\/customization",
"admin\/languages",
"admin\/editor",
"admin\/bulkmail",
"admin\/livesearch",
"admin\/promotion",
"admin\/stats",
"admin\/support",
"admin\/logs",
"admin\/logsettings",
"admin\/diagnostics",
"admin\/discovery",
"admin\/clubs",
"admin\/activitystats",
"admin\/messengerstats",
"admin\/moderation",
"admin\/mobile",
"front\/system",
"front\/members",
"front\/search",
"front\/messaging",
"front\/online",
"front\/modcp",
"front\/sitemap",
"front\/contact",
"front\/status",
"front\/discover",
"front\/staffdirectory",
"front\/clubs",
"front\/promote"
],
"edited": [],
"removed": []
}
@@ -0,0 +1,138 @@
<?php
/**
* @brief Upgrader: Custom Upgrade Options
* @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 16 Jul 2019
*/
$options = array();
require "../upgrade/lang.php";
/* Are we using elasticsearch? Make sure it is 6.0.0 or greater, and warn that it will be disabled if not. */
if( \IPS\Settings::i()->search_method == 'elastic' AND \IPS\Settings::i()->search_elastic_server )
{
try
{
$response = \IPS\Http\Url::external( rtrim( \IPS\Settings::i()->search_elastic_server, '/' ) )->request()->get()->decodeJson();
}
catch ( \Exception $e )
{
/* If there's an exception, the server may be down temporarily or something - let's not disable in that case */
}
if ( isset( $response ) AND ( !isset( $response['version']['number'] ) OR version_compare( $response['version']['number'], \IPS\Content\Search\Elastic\Index::MINIMUM_VERSION, '<' ) ) )
{
$options[] = new \IPS\Helpers\Form\Custom( '105000_es_version', null, FALSE, array( 'getHtml' => function( $element ) use ( $response ){
$minimumVersion = \IPS\Content\Search\Elastic\Index::MINIMUM_VERSION;
$yourVersion = $response['version']['number'];
return "The new minimum supported version of Elasticsearch is {$minimumVersion}, however your server is currently running {$yourVersion}. By continuing, your search engine will revert back to MySQL searching.";
}, 'formatValue' => function( $element ){ return true; } ), function( $val ) { return TRUE; }, NULL, NULL, '105000_es_version' );
}
}
/* Try/catch because this table won't be present yet if coming from 3.x */
try
{
$emailCount = \IPS\Db::i()->select( 'COUNT(*)', 'core_email_templates', array( "template_app=? AND template_name=? AND template_edited=?", 'core', 'admin_reg', 1 ) )->first();
if ( $emailCount )
{
$options[] = new \IPS\Helpers\Form\Custom( '105000_admin_reg_customized', NULL, FALSE, array( 'getHtml' => function( $element ) {
return "Customizations to the 'Admin notification of registration pending approval' email template will be reverted.";
}, 'formatValue' => function( $element ) { return TRUE; } ), function( $val ) { return TRUE; }, NULL, NULL, '105000_admin_reg_customized' );
}
}
catch( \Exception $e ){}
/* Keep bbcode enabled, or disable it? */
$options[] = new \IPS\Helpers\Form\Radio( '105000_enable_bbcode', 'disable', TRUE, array( 'options' => array( 'disable' => '105000_bbcode_disable', 'enable' => '105000_bbcode_enable' ) ) );
/* Combined notifications - again wrapped in a try/catch for 3.4.x upgrades where the table won't exist */
$notificationOptions = array();
try
{
$existingDefaults = iterator_to_array( \IPS\Db::i()->select( '*', 'core_notification_defaults' )->setKeyField('notification_key') );
$newDefaults = array();
$extensions = \IPS\Application::allExtensions( 'core', 'Notifications' );
foreach ( $extensions as $group => $extension )
{
try
{
if ( method_exists( $extension, 'configurationOptions' ) )
{
foreach ( $extension->configurationOptions( NULL ) as $optionKey => $option )
{
if ( $option['type'] === 'standard' )
{
foreach ( $option['notificationTypes'] as $type )
{
if ( isset( $existingDefaults[$type] ) )
{
if ( !isset( $newDefaults[$optionKey] ) )
{
$newDefaults[$optionKey] = array(
'notification_key' => $optionKey,
'default' => $existingDefaults[$type]['default'],
'disabled' => $existingDefaults[$type]['disabled'],
'editable' => $existingDefaults[$type]['editable'],
);
}
else
{
if ( !isset( $notificationOptions["105000_notifications_editable_{$optionKey}"] ) and $newDefaults[$optionKey]['editable'] != $existingDefaults[$type]['editable'] )
{
$notificationOptions["105000_notifications_editable_{$optionKey}"] = new \IPS\Helpers\Form\Radio( "105000_notifications_editable_{$optionKey}", TRUE, FALSE, array('options' => array(
1 => 'notification_editable_yes',
0 => 'notification_editable_no'
)) );
$notificationOptions["105000_notifications_editable_{$optionKey}"]->label = sprintf( $lang["105000_notifications_editable"], $lang['notifications__' . $optionKey] );
$notificationOptions["105000_notifications_editable_{$optionKey}"]->description = $lang['notifications__' . $optionKey . '_desc'];
}
if ( !isset( $notificationOptions["105000_notifications_default_{$optionKey}"] ) and $newDefaults[$optionKey]['default'] != $existingDefaults[$type]['default'] )
{
$notificationOptions["105000_notifications_default_{$optionKey}"] = new \IPS\Helpers\Form\CheckboxSet( "105000_notifications_default_{$optionKey}", $option['default'], FALSE, array('options' => array(
'inline' => 'notification_method_inline',
'email' => 'notification_method_email'
)) );
$notificationOptions["105000_notifications_default_{$optionKey}"]->label = sprintf( $lang["105000_notifications_default"], $lang['notifications__' . $optionKey] );
$notificationOptions["105000_notifications_default_{$optionKey}"]->description = $lang['notifications__' . $optionKey . '_desc'];
}
if ( !isset( $notificationOptions["105000_notifications_disabled_{$optionKey}"] ) and $newDefaults[$optionKey]['disabled'] != $existingDefaults[$type]['disabled'] )
{
$notificationOptions["105000_notifications_disabled_{$optionKey}"] = new \IPS\Helpers\Form\CheckboxSet( "105000_notifications_disabled_{$optionKey}", $option['disabled'], FALSE, array('options' => array(
'inline' => 'notification_method_inline',
'email' => 'notification_method_email'
)) );
$notificationOptions["105000_notifications_disabled_{$optionKey}"]->label = sprintf( $lang["105000_notifications_disabled"], $lang['notifications__' . $optionKey] );
$notificationOptions["105000_notifications_disabled_{$optionKey}"]->description = $lang['notifications__' . $optionKey . '_desc'];
}
}
}
}
}
}
}
}
catch( \Exception $e ){}
}
}
catch( \Exception $e ){}
if( !\IPS\CIC )
{
/* Use new default pruning preferences? */
$options[] = new \IPS\Helpers\Form\Radio( '105000_prune', 'enable', TRUE, array( 'options' => array( 'disable' => '105000_prune_disable', 'enable' => '105000_prune_enable' ) ) );
}
if ( $notificationOptions )
{
$options[] = new \IPS\Helpers\Form\Custom( '105000_notifications', null, FALSE, array( 'getHtml' => function( $element ) use ( $members ){
return "Some notifications options have been combined to allow members to manage their notification preferences more easily. Some of your default values for the combined options do not match. Please choose how you would like them to be combined:";
} ), function( $val ) {}, NULL, NULL, '105000_notifications' );
$options += $notificationOptions;
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,400 @@
{
"added": [
"acp_dashboard_blocks",
"acp_notes",
"acp_notes_updated",
"activity_stream_rss",
"ads_circulation",
"ads_exist",
"ads_force_sidebar",
"all_activity_clubs",
"all_activity_follow_content",
"all_activity_follow_member",
"all_activity_like",
"all_activity_photo",
"all_activity_register",
"all_activity_rep_neg",
"allow_creator_vote",
"allow_email_changes",
"allow_email_changes_target",
"allow_forgot_password",
"allow_forgot_password_target",
"allow_only_https_remote_images",
"allow_password_changes",
"allow_password_changes_target",
"allow_reg",
"allow_reg_target",
"allow_remote_images",
"allow_result_view",
"allowed_reg_email",
"api_log_prune",
"attach_allowed_extensions",
"attach_allowed_types",
"attachment_image_size",
"attachment_resample_size",
"authy_enabled",
"authy_groups",
"authy_key",
"authy_method",
"authy_onetouch",
"authy_setup",
"authy_setup_lockout",
"authy_setup_tries",
"auto_follow_new_content",
"auto_follow_replied_to",
"auto_polling_enabled",
"automoderation_enabled",
"automoderation_report_again_mins",
"base_url_stored",
"bitly_enabled",
"bitly_token",
"board_name",
"bot_antispam_type",
"ckeditor_extraPlugins",
"ckeditor_permissions",
"ckeditor_toolbars",
"clickjackprevention",
"club_nodes_in_apps",
"clubs",
"clubs_allow_view_change",
"clubs_default_sort",
"clubs_default_view",
"clubs_header",
"clubs_locations",
"clubs_modperms",
"clubs_paid_commission",
"clubs_paid_gateways",
"clubs_paid_on",
"clubs_paid_tax",
"clubs_paid_transfee",
"clubs_require_approval",
"connect_slaves",
"contact_access",
"contact_emails",
"contact_nexus_department",
"contact_redirect",
"contact_type",
"coppa_address",
"coppa_consent_extra",
"coppa_fax",
"copyright_line",
"csp_header",
"dellog_retention_period",
"device_management",
"diagnostics",
"diagnostics_reporting",
"disable_all_plugins",
"disable_anonymous",
"edit_log",
"edit_log_prune",
"edit_log_public",
"editor_allowed_classes",
"editor_allowed_datacontrollers",
"editor_allowed_iframe_bases",
"editor_embeds",
"editor_paragraph_padding",
"editor_paste_behaviour",
"email_color",
"email_in",
"email_logo",
"email_out",
"emoji_ascii",
"emoji_cache",
"emoji_shortcodes",
"emoji_style",
"enable_bbcode",
"error_log",
"error_log_level",
"error_notify",
"error_notify_level",
"fb_pixel_delay",
"fb_pixel_enabled",
"fb_pixel_id",
"fbc_bot_group",
"file_log_pruning",
"flood_control",
"force_reg_terms",
"furl_configuration",
"giphy_apikey",
"giphy_apikey_default",
"giphy_enabled",
"giphy_rating",
"gl_guidelines",
"gl_link",
"gl_type",
"google_maps_api_key",
"google_maps_api_key_secret",
"googleauth_enabled",
"googleauth_groups",
"googlemaps",
"googleplacesautocomplete",
"group_formatting",
"guest_captcha",
"guest_terms_bar",
"htaccess_mod_rewrite",
"icons_favicon",
"icons_homescreen",
"icons_mask_color",
"icons_mask_icon",
"icons_sharer_logo",
"ignore_system_on",
"image_jpg_quality",
"image_png_quality_gd",
"image_suite",
"imagick_strip_exif",
"ip_address_prune",
"ipb_bruteforce_attempts",
"ipb_bruteforce_period",
"ipb_bruteforce_unlock",
"ipb_copy_number",
"ipb_poll_only",
"ipb_reg_number",
"ipb_url_blacklist",
"ipb_url_filter_option",
"ipb_url_whitelist",
"ipbseo_ga_enabled",
"ipbseo_ga_paginatecode",
"ipbseo_ga_provider",
"ips_cp_purchase",
"ipseo_ga",
"ipsgeoip",
"itunes_affiliate_string",
"keycaptcha_privatekey",
"lang_auto_detect",
"last_data_store_update",
"lazy_load_enabled",
"leaderboard_excluded_groups",
"letter_photos",
"link_default",
"links_external",
"lp_method",
"mail_method",
"manifest_details",
"mapbox",
"mapbox_api_key",
"match_browser",
"match_ipaddress",
"max_internalembed_width",
"max_internalembed_width_css",
"max_poll_choices",
"max_poll_questions",
"max_title_length",
"max_user_name_length",
"max_video_width",
"max_video_width_css",
"member_menu_create_key",
"merge_concurrent_posts",
"mfa_forgot_behaviour",
"mfa_lockout_behaviour",
"mfa_lockout_time",
"mfa_optional_prompt",
"mfa_required_groups",
"mfa_required_prompt",
"min_user_name_length",
"minimum_age",
"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_secret",
"most_online",
"new_device_email",
"new_reg_notify",
"notification_prefs_one_per_view",
"notification_prefs_popup",
"notification_prefs_sound",
"onboard_complete",
"orig_tables_checked",
"our_picks_in_email",
"password_strength_meter",
"password_strength_meter_enforce",
"password_strength_option",
"php_mail_extra",
"pixabay_apikey",
"pixabay_editor_permissions",
"pixabay_enabled",
"poll_allow_public",
"poll_allow_vdelete",
"pop3_password",
"pop3_port",
"pop3_server",
"pop3_tls",
"pop3_user",
"post_before_registering",
"post_titlechange",
"posts_add_nofollow",
"posts_add_nofollow_exclude",
"privacy_link",
"privacy_show_processors",
"privacy_text",
"privacy_type",
"profile_birthday_type",
"profile_comment_approval",
"profile_comments",
"promote_community_enabled",
"promote_facebook_auth",
"promote_groups",
"promote_members",
"promote_scheduled",
"promote_tz",
"prune_emailerrorlogs",
"prune_follows",
"prune_item_markers",
"prune_known_devices",
"prune_known_ips",
"prune_log_admin",
"prune_log_adminlogin",
"prune_log_email_error",
"prune_log_emailstats",
"prune_log_error",
"prune_log_moderator",
"prune_log_spam",
"prune_log_system",
"prune_log_tasks",
"prune_member_history",
"prune_notifications",
"quick_register",
"reaction_count_display",
"reaction_is_likemode",
"recaptcha2_private_key",
"recaptcha2_public_key",
"ref_on",
"reg_auth_type",
"reg_rules",
"remote_image_cache",
"reputation_can_self_vote",
"reputation_enabled",
"reputation_highlight",
"reputation_leaderboard_default_tab",
"reputation_leaderboard_on",
"reputation_max_members",
"reputation_overview_max_members",
"reputation_point_types",
"reputation_protected_groups",
"reputation_show_days_won_trophy",
"reputation_show_profile",
"reputation_timezone",
"reputation_top_members_filters",
"reputation_top_members_overview",
"reviews_rating_out_of",
"search_decay_days",
"search_decay_factor",
"search_default_operator",
"search_elastic_analyzer",
"search_elastic_custom_analyzer",
"search_elastic_index",
"search_elastic_self_boost",
"search_elastic_server",
"search_index_maxresults",
"search_index_timeframe",
"search_method",
"search_title_boost",
"security_questions_areas",
"security_questions_enabled",
"security_questions_groups",
"security_questions_number",
"security_questions_prompt",
"security_questions_timer",
"security_questions_tries",
"sendgrid_api_key",
"sendgrid_click_tracking",
"sendgrid_ip_pool",
"sendgrid_use_for",
"seo_r_on",
"setup_in_progress",
"signatures_enabled",
"signatures_guests",
"signatures_mobile",
"site_address",
"site_offline_message",
"site_online",
"site_secret_key",
"site_social_profiles",
"site_twitter_id",
"sitemap_content_settings",
"sitemap_last_ping",
"sitemap_path",
"sitemap_profiles_content",
"sitemap_profiles_count",
"sitemap_profiles_priority",
"sitemap_url",
"sixty_second_emails",
"smtp_host",
"smtp_pass",
"smtp_port",
"smtp_protocol",
"smtp_user",
"social_links_in_email",
"spam_service_action_0",
"spam_service_action_1",
"spam_service_action_2",
"spam_service_action_3",
"spam_service_action_4",
"spam_service_enabled",
"spam_service_send_to_ips",
"sparkpost_api_key",
"sparkpost_click_tracking",
"sparkpost_ip_pool",
"sparkpost_use_for",
"spm_notify",
"spm_option",
"spm_post_days",
"staff_directory_empty",
"startpoll_cutoff",
"stats_device_usage_prune",
"stats_keywords",
"stats_keywords_prune",
"stats_online_users_prune",
"stats_search_prune",
"status_updates_mem_enable",
"tags_can_prefix",
"tags_clean",
"tags_enabled",
"tags_force_lower",
"tags_len_max",
"tags_len_min",
"tags_max",
"tags_min",
"tags_min_req",
"tags_open_system",
"tags_predefined",
"task_cron_key",
"task_use_cron",
"theme_designers_mode",
"theme_disk_cache_path",
"theme_disk_cache_templates",
"topic_redirect_prune",
"twitter_hashtag",
"updates_consent_default",
"upgrade_email",
"upgrade_ftp_details",
"upload_settings",
"url_filter_action",
"url_filter_any_action",
"usage_reporting",
"use_coppa",
"use_friendly_urls",
"username_characters",
"validate_day_prune",
"viglink_api_key",
"viglink_enabled",
"viglink_groups",
"viglink_norewrite",
"viglink_subid",
"warn_on",
"warn_protected",
"warn_show_own",
"warnings_acknowledge",
"webhook_logs_fail",
"webhook_logs_success",
"webhooks_allowed_fails",
"widget_cache_ttl",
"xforward_matching",
"zapier_api_key"
],
"edited": [],
"removed": []
}
@@ -0,0 +1,38 @@
{
"added": [
"profilesync",
"updatecheck",
"cleanup",
"sitemapgenerator",
"queue",
"pop",
"digest",
"publish",
"clearcache",
"clearsessions",
"viewupdates",
"cleanupattachments",
"cleanupfiles",
"unlockmembers",
"leaderboard",
"deletecontent",
"clubrebuild",
"onlineusers",
"promote",
"prunesearchindex",
"prunesystemlogs",
"automaticmoderation",
"usagereporting",
"userAgentStatistics",
"pruneipaddresses",
"clearelasticsearchtasks",
"postBeforeRegisterFollowup",
"weeklydigest",
"clearincompletemembers",
"rssimport",
"webhooks",
"chunkcleanup"
],
"edited": [],
"removed": []
}
@@ -0,0 +1,488 @@
{
"html": {
"added": [
"admin\/activitystats\/overview",
"admin\/activitystats\/overviewCounts",
"admin\/activitystats\/repWrapper",
"admin\/api\/zapier",
"admin\/applications\/enhancementsGoogleMapsApi",
"admin\/applications\/enhancementsGoogleMapsKeyRestrictions",
"admin\/applications\/pluginVersionData",
"front\/clubs\/clubRules",
"admin\/clubs\/clubTypesBar",
"front\/clubs\/rulesForm",
"admin\/clubs\/statsOverview",
"front\/clubs\/viewPage",
"admin\/customization\/langDescription",
"admin\/dashboard\/onboard",
"admin\/dashboard\/onboardForm",
"admin\/dashboard\/onboardWelcome",
"admin\/feeds\/importPreview",
"admin\/feeds\/importRow",
"global\/forms\/editorTags",
"global\/forms\/trbl",
"global\/forms\/widthheight",
"global\/global\/applePieChart",
"front\/global\/contentEditLine",
"front\/global\/mobileNavigationIcon",
"front\/global\/reactionTooltip",
"global\/global\/referralBanner",
"front\/global\/solvedBadge",
"admin\/members\/referralPopup",
"admin\/members\/referralsOverview",
"admin\/members\/referralsOverviewRows",
"admin\/members\/referralsTable",
"admin\/promotion\/metaTagUrl",
"front\/sharelinks\/shareButton",
"admin\/stats\/filtersOverviewForm",
"admin\/stats\/overview",
"admin\/stats\/overviewComparisonCount",
"admin\/stats\/overviewCount",
"admin\/stats\/overviewTable",
"front\/system\/invite",
"admin\/system\/manualUpgradeRequired",
"front\/system\/pixabay",
"front\/system\/referralsRows",
"front\/system\/referralTable",
"front\/system\/registerSetPassword",
"front\/system\/settingsLinks",
"front\/system\/settingsReferrals",
"admin\/system\/upgradeDeltaDatabaseCheck",
"admin\/system\/upgradeDeltaLargeTables",
"admin\/system\/upgradeDeltaManualQuery",
"admin\/system\/upgradeDeltaQueryFailed",
"front\/widgets\/builderWrapper",
"front\/widgets\/invite",
"front\/widgets\/mostSolved",
"front\/widgets\/mostSolvedRows",
"front\/widgets\/pagebuilderoembed",
"front\/widgets\/pagebuildertext",
"front\/widgets\/pagebuilderupload",
"front\/widgets\/stream",
"front\/widgets\/streamItem",
"front\/widgets\/twitter"
],
"edited": [
"admin\/advancedsettings\/taskResult",
"admin\/api\/oauthSecret",
"admin\/applications\/appRowDescription",
"admin\/applications\/appRowTitle",
"admin\/applications\/codeHookEditor",
"admin\/applications\/enhancements",
"admin\/applications\/menuItemTools",
"admin\/applications\/menuManager",
"admin\/applications\/menuPreviewWrapper",
"admin\/applications\/schemaConflict",
"front\/clubs\/clubCard",
"front\/clubs\/clubMemberBox",
"front\/clubs\/coverPhotoOverlay",
"front\/clubs\/directory",
"admin\/clubs\/disabled",
"front\/clubs\/embedClub",
"front\/clubs\/header",
"front\/clubs\/members",
"front\/clubs\/membersRows",
"front\/clubs\/myClubsSidebar",
"front\/clubs\/nonMemberClubStatus",
"front\/clubs\/view",
"admin\/customization\/editor",
"admin\/customization\/emoticons",
"admin\/customization\/templateEditor",
"admin\/customization\/themeDescription",
"admin\/customization\/themeSettingRevert",
"admin\/customization\/vseBadge",
"admin\/dashboard\/backgroundQueue",
"admin\/dashboard\/dashboard",
"admin\/dashboard\/fileTable",
"admin\/dashboard\/onlineAdmins",
"global\/editor\/image",
"global\/editor\/myMedia",
"front\/embed\/embedHeader",
"front\/embed\/embedItemStats",
"global\/embed\/embedNoPermission",
"front\/embed\/embedOriginalItem",
"global\/embed\/embedUnavailable",
"global\/embed\/twitch",
"global\/forms\/autocomplete",
"global\/forms\/codemirror",
"global\/forms\/color",
"front\/forms\/commentTemplate",
"global\/forms\/dateRange",
"global\/forms\/editorAttachments",
"global\/forms\/editorAttachmentsMinimized",
"global\/forms\/editorAttachmentsPlaceholder",
"global\/forms\/editorRaw",
"global\/forms\/interval",
"global\/forms\/message",
"global\/forms\/node",
"global\/forms\/nodeCascade",
"global\/forms\/poll",
"front\/forms\/popupRegisterTemplate",
"front\/forms\/popupTemplate",
"front\/forms\/postingInformation",
"front\/forms\/profileCompleteTemplate",
"admin\/forms\/row",
"front\/forms\/row",
"front\/forms\/select",
"front\/forms\/statusPopupTemplate",
"front\/forms\/statusTemplate",
"global\/forms\/upload",
"global\/global\/advertisementImage",
"front\/global\/announcementContentTop",
"front\/global\/announcementSidebar",
"front\/global\/announcementTop",
"admin\/global\/appmenu",
"global\/global\/basicUrl",
"front\/global\/breadcrumb",
"admin\/global\/buttons",
"front\/global\/comment",
"front\/global\/commentContainer",
"front\/global\/commentEditHistory",
"front\/global\/commentMultimodHeader",
"front\/global\/commentsAndReviewsTabs",
"front\/global\/contentItemMessage",
"front\/global\/coverPhoto",
"front\/global\/customFieldsDisplay",
"front\/global\/designersModeBuilding",
"global\/global\/dynamicChart",
"front\/global\/embedComment",
"front\/global\/embedItem",
"front\/global\/embedReview",
"admin\/global\/error",
"front\/global\/featuredComment",
"front\/global\/featuredComments",
"front\/global\/findComment",
"front\/global\/follow",
"front\/global\/followButton",
"admin\/global\/globalTemplate",
"front\/global\/globalTemplate",
"front\/global\/guestCommentTeaser",
"global\/global\/includeCSS",
"global\/global\/includeJS",
"front\/global\/loginPopup",
"front\/global\/loginPopupForm",
"front\/global\/metaTagEditor",
"front\/global\/mobileNavBar",
"admin\/global\/mobileNavigation",
"front\/global\/mobileNavigation",
"front\/global\/navBar",
"front\/global\/navBarItems",
"admin\/global\/pageButtons",
"front\/global\/pageHeader",
"global\/global\/poll",
"global\/global\/pollForm",
"front\/global\/promoteLink",
"front\/global\/quickSearch",
"front\/global\/reactionBlurb",
"front\/global\/reactionLog",
"front\/global\/reactionOverview",
"front\/global\/reputation",
"front\/global\/reputationMini",
"front\/global\/review",
"front\/global\/reviewContainer",
"front\/global\/sidebar",
"front\/global\/signature",
"front\/global\/tag",
"front\/global\/tags",
"front\/global\/updateWarning",
"front\/global\/userBar",
"front\/global\/userPhoto",
"front\/global\/widgetContainer",
"global\/login\/oauthLogin",
"global\/login\/securityQuestionsSetup",
"admin\/memberprofile\/basicInformation",
"admin\/memberprofile\/contentBreakdown",
"admin\/memberprofile\/devicesAndIPAddresses",
"admin\/memberprofile\/groups",
"admin\/memberprofile\/header",
"admin\/memberprofile\/history",
"admin\/memberprofile\/loginMethods",
"admin\/memberprofile\/mfa",
"admin\/memberprofile\/notificationTypes",
"admin\/memberprofile\/oauth",
"admin\/memberprofile\/profileData",
"admin\/memberprofile\/quotas",
"admin\/memberprofile\/tabbedBlock",
"admin\/memberprofile\/warnings",
"admin\/memberprofile\/warningView",
"admin\/members\/acpRestrictions",
"global\/members\/attachmentLocations",
"admin\/members\/bulkMailPreview",
"admin\/members\/confirmMassAction",
"admin\/members\/memberCounts",
"admin\/members\/memberReserved",
"global\/members\/nameHistoryTable",
"global\/members\/notificationsSettingsRow",
"admin\/members\/quickRegisterDisabled",
"front\/messaging\/conversation",
"front\/messaging\/messageList",
"front\/messaging\/messageListRow",
"front\/messaging\/template",
"front\/modcp\/announcementRow",
"front\/modcp\/announcements",
"front\/modcp\/approvalQueue",
"front\/modcp\/approvalQueueHeader",
"front\/modcp\/approvalQueueItem",
"front\/modcp\/approvalQueueSplash",
"front\/modcp\/iptools",
"front\/modcp\/members",
"front\/modcp\/recentWarningsRows",
"front\/modcp\/report",
"front\/modcp\/reportListOverview",
"front\/modcp\/reportPanel",
"front\/modcp\/template",
"front\/modcp\/warnHovercard",
"admin\/notifications\/adminValidations",
"admin\/notifications\/indexBlock",
"admin\/notifications\/licenseKey",
"admin\/notifications\/lockedTask",
"admin\/notifications\/newVersion",
"admin\/notifications\/origTables",
"admin\/plugins\/details",
"admin\/plugins\/pluginRowDescription",
"front\/popular\/memberRow",
"front\/popular\/popularItem",
"front\/popular\/popularRows",
"front\/popular\/popularWrapper",
"front\/popular\/tabs",
"front\/popular\/topMembersResults",
"front\/profile\/allFollowers",
"front\/profile\/followers",
"front\/profile\/hovercard",
"front\/profile\/profile",
"front\/profile\/profileHeader",
"front\/profile\/profileTabs",
"front\/profile\/userContent",
"front\/profile\/userReputation",
"admin\/promote\/facebookOwnedBy",
"front\/promote\/promoteAttachments",
"front\/promote\/promotePublicTable",
"front\/promote\/promotePublicTableRow",
"admin\/promote\/twitterOwnedBy",
"admin\/promote\/warningNoFacebookPostToPagePermission",
"admin\/promote\/warningNoFacebookUser",
"admin\/promote\/warningNoTwitterPostToPagePermission",
"admin\/promotion\/activeBadge",
"front\/search\/filters",
"front\/search\/hints",
"front\/search\/member",
"front\/search\/results",
"front\/search\/resultStream",
"front\/search\/search",
"admin\/settings\/reputationLeaderboardRebuild",
"front\/staffdirectory\/template",
"admin\/stats\/filtersFormTemplate",
"front\/streams\/extraItem",
"front\/streams\/filterCreateForm",
"front\/streams\/filterForm",
"front\/streams\/filterFormShowMe",
"front\/streams\/filterFormTags",
"front\/streams\/filterInlineForm",
"front\/streams\/stream",
"front\/streams\/streamWrapper",
"admin\/support\/diagnostics",
"admin\/support\/fixDatabase",
"admin\/support\/support",
"admin\/support\/thirdPartyDisabled",
"front\/system\/announcement",
"admin\/system\/backgroundProcessesRunNow",
"front\/system\/completeProfile",
"front\/system\/completeValidation",
"front\/system\/contact",
"front\/system\/finishRegistration",
"front\/system\/followedContent",
"front\/system\/followers",
"front\/system\/followForm",
"front\/system\/guidelines",
"front\/system\/ignore",
"front\/system\/ignoreEditForm",
"admin\/system\/login",
"front\/system\/login",
"admin\/system\/loginForm",
"front\/system\/loginForm",
"front\/system\/lostPass",
"front\/system\/lostPassConfirm",
"front\/system\/mergeSocialAccount",
"front\/system\/notAdminValidated",
"front\/system\/notCoppaValidated",
"front\/system\/notificationsAjax",
"front\/system\/notValidated",
"front\/system\/reauthenticate",
"front\/system\/reconfirmTerms",
"front\/system\/register",
"front\/system\/resetPass",
"front\/system\/searchResult",
"front\/system\/settings",
"front\/system\/settingsApps",
"front\/system\/settingsDevices",
"front\/system\/settingsEmail",
"front\/system\/settingsLoginConnect",
"front\/system\/settingsLoginMethodOff",
"front\/system\/settingsLoginMethodOn",
"front\/system\/settingsMfa",
"front\/system\/settingsMfaPassword",
"front\/system\/settingsOverview",
"front\/system\/settingsPassword",
"front\/system\/settingsProfileSyncLogin",
"front\/system\/settingsSecureAccount",
"front\/system\/settingsSignature",
"front\/system\/settingsUsername",
"front\/system\/settingsUsernameLimitReached",
"admin\/system\/systemLogView",
"front\/system\/unfollowFromEmail",
"front\/system\/unsubscribed",
"admin\/system\/upgradeDeltaThemeConflicts",
"admin\/system\/upgradeFinished",
"admin\/system\/upgradeSelectVersion",
"front\/tables\/commentRows",
"front\/tables\/rows",
"admin\/tables\/table",
"admin\/trees\/row",
"admin\/trees\/template",
"front\/widgets\/activeUsers",
"front\/widgets\/blockList",
"front\/widgets\/formTemplate",
"front\/widgets\/members",
"front\/widgets\/newsletter",
"front\/widgets\/promoted",
"front\/widgets\/relatedContent",
"front\/widgets\/topContributorRows",
"front\/widgets\/whosOnline",
"global\/embed\/embedNoPermission",
"global\/embed\/embedUnavailable",
"front\/global\/userPhoto"
],
"removed": [
"admin\/forms\/widthheight",
"front\/sharelinks\/delicious",
"front\/sharelinks\/digg"
]
},
"css": {
"added": [
"admin\/core\/charts.css",
"admin\/dashboard\/onboard.css",
"global\/framework\/_vars.css",
"global\/framework\/spectrum.css",
"admin\/promotion\/meta.css",
"front\/styles\/referrals_responsive.css",
"front\/styles\/referrals.css",
"admin\/system\/statistics.css"
],
"edited": [
"global\/2fa.css",
"front\/core_responsive.css",
"front\/core.css",
"admin\/core\/badges.css",
"admin\/core\/buttons.css",
"admin\/core\/controlstrip.css",
"admin\/core\/forms.css",
"admin\/core\/global.css",
"admin\/core\/livesearch.css",
"admin\/core\/menu.css",
"admin\/core\/misc.css",
"admin\/core\/pagination.css",
"admin\/core\/popups.css",
"admin\/core\/tables.css",
"admin\/core\/tabs.css",
"admin\/core\/treelist.css",
"admin\/core\/trees.css",
"admin\/core\/typography.css",
"admin\/customization\/templates.css",
"global\/framework\/animation.css",
"global\/framework\/badges.css",
"global\/framework\/blocks.css",
"global\/framework\/buttons.css",
"global\/framework\/cards.css",
"global\/framework\/comments.css",
"global\/framework\/compose.css",
"global\/framework\/data-lists.css",
"global\/framework\/engagement.css",
"global\/framework\/fonts.css",
"global\/framework\/forms.css",
"global\/framework\/global.css",
"global\/framework\/layout.css",
"global\/framework\/lightbox.css",
"global\/framework\/menus.css",
"global\/framework\/messages.css",
"global\/framework\/misc.css",
"global\/framework\/navigation.css",
"global\/framework\/pagination.css",
"global\/framework\/popup.css",
"global\/framework\/post-content.css",
"global\/framework\/posts.css",
"global\/framework\/streams.css",
"global\/framework\/tables.css",
"global\/framework\/tabs.css",
"global\/framework\/tags.css",
"global\/framework\/toolbox.css",
"global\/framework\/typography.css",
"admin\/members\/view.css",
"global\/responsive\/badges.css",
"global\/responsive\/buttons.css",
"global\/responsive\/comments.css",
"global\/responsive\/compose.css",
"global\/responsive\/data-lists.css",
"global\/responsive\/engagement.css",
"admin\/responsive\/forms.css",
"admin\/responsive\/global.css",
"global\/responsive\/global.css",
"global\/responsive\/layout.css",
"global\/responsive\/menus.css",
"admin\/responsive\/misc.css",
"global\/responsive\/misc.css",
"global\/responsive\/navigation.css",
"global\/responsive\/pagination.css",
"global\/responsive\/popup.css",
"global\/responsive\/posts.css",
"global\/responsive\/responsive.css",
"global\/responsive\/streams.css",
"global\/responsive\/tables.css",
"admin\/responsive\/tabs.css",
"global\/responsive\/tabs.css",
"admin\/settings\/general.css",
"front\/styles\/clubs_responsive.css",
"front\/styles\/clubs.css",
"front\/styles\/embeds.css",
"front\/styles\/leaderboard_responsive.css",
"front\/styles\/leaderboard.css",
"front\/styles\/messaging_responsive.css",
"front\/styles\/messaging.css",
"front\/styles\/meta_tags.css",
"front\/styles\/modcp.css",
"front\/styles\/profiles_responsive.css",
"front\/styles\/profiles.css",
"front\/styles\/promote.css",
"front\/styles\/search.css",
"front\/styles\/settings.css",
"front\/styles\/streams_responsive.css",
"front\/styles\/streams.css",
"admin\/system\/api.css",
"admin\/system\/dashboard.css",
"admin\/system\/enhancements.css",
"admin\/system\/login.css",
"admin\/system\/menumanager.css",
"admin\/system\/plugins.css"
],
"removed": [
"front\/extra\/ie8.css"
]
},
"resources": {
"added": [
"admin\/welcome.svg",
"admin\/enhancements\/google_maps\/places.png",
"admin\/enhancements\/google_maps\/geocodeapi.png",
"admin\/enhancements\/google_maps\/jsapi.png",
"admin\/enhancements\/google_maps\/staticapi.png",
"admin\/enhancements\/zapier.png",
"admin\/enhancements\/google_maps.jpeg",
"admin\/enhancements\/pixabay.png",
"global\/logos\/pixabay.png"
],
"edited": [],
"removed": [
"admin\/enhancements\/google_maps.png"
]
}
}
@@ -0,0 +1,90 @@
{
"added": [
"active_input_border",
"ajax_pagination",
"alternate_button",
"alternate_button_font",
"area_background",
"area_background_dark",
"area_background_light",
"area_background_reset",
"body_font",
"brand_primary",
"button_bar",
"comment_count",
"comment_count_font",
"enable_fluid_width",
"featured",
"fluid_width_size",
"font_2x_large",
"font_3x_large",
"font_4x_large",
"font_base",
"font_large",
"font_medium",
"font_size",
"font_small",
"font_x_large",
"font_x_small",
"footer_text",
"header",
"header_text",
"headline_font",
"important_button",
"important_button_font",
"item_status",
"js_include",
"light_button",
"light_button_font",
"link",
"link_button",
"link_hover",
"main_nav",
"main_nav_font",
"main_nav_tab",
"main_nav_tab_font",
"mentions",
"moderated",
"moderated_light",
"moderated_text",
"moderated_text_light",
"normal_button",
"normal_button_font",
"notification_bubble",
"page_background",
"pagination_active",
"post_highlight",
"post_highlight_border",
"prefix",
"price",
"primary_button",
"primary_button_font",
"profile_header",
"rating_on",
"recaptcha_theme",
"recaptcha2_theme",
"responsive",
"rounded_photos",
"secondary_title",
"secondary_title_font",
"section_title",
"section_title_font",
"selected",
"selected_border",
"sidebar_position",
"sidebar_responsive",
"social_links",
"tab_background",
"tag",
"text_color",
"text_dark",
"text_light",
"timeline_color",
"very_light_button",
"very_light_button_font",
"widget_title_bar",
"widget_title_font"
],
"edited": [],
"removed": []
}
@@ -0,0 +1,494 @@
<?php
/**
* @brief 4.5.0 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 16 Jul 2019
*/
namespace IPS\core\setup\upg_105013;
/* 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.5.0 Beta 1 Upgrade Code
*/
class _Upgrade
{
/**
* Update group anonymous options
*
* @return 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()
{
if ( \IPS\Settings::i()->disable_anonymous )
{
\IPS\Db::i()->update( 'core_groups', array( "g_hide_online_list" => 2 ), array( "g_hide_online_list!=?", 1 ) );
}
return TRUE;
}
/**
* Custom title for this step
*
* @return string
*/
public function step1CustomTitle()
{
return "Fixing anonymous groups online list configuration";
}
/**
* Convert notification defaults
*
* @return 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 step2()
{
$existingDefaults = iterator_to_array( \IPS\Db::i()->select( '*', 'core_notification_defaults' )->setKeyField('notification_key') );
$newDefaults = array();
$extensions = \IPS\Application::allExtensions( 'core', 'Notifications' );
foreach ( $extensions as $group => $extension )
{
try
{
if ( method_exists( $extension, 'configurationOptions' ) )
{
foreach ( $extension->configurationOptions( NULL ) as $optionKey => $option )
{
if ( $option['type'] === 'standard' )
{
foreach ( $option['notificationTypes'] as $type ) { break; } // This is to just get the first type key
$value = array( 'notification_key' => $optionKey );
if ( isset( $_SESSION['upgrade_options']['core']['105000']["notifications_default_{$optionKey}"] ) )
{
$value['default'] = implode( ',', $_SESSION['upgrade_options']['core']['105000']["notifications_default_{$optionKey}"] );
}
elseif ( isset( $existingDefaults[ $type ] ) )
{
$value['default'] = $existingDefaults[ $type ]['default'];
}
else
{
$value['default'] = implode( ',', $option['default'] );
}
if ( isset( $_SESSION['upgrade_options']['core']['105000']["notifications_disabled_{$optionKey}"] ) )
{
$value['disabled'] = implode( ',', $_SESSION['upgrade_options']['core']['105000']["notifications_disabled_{$optionKey}"] );
}
elseif ( isset( $existingDefaults[ $type ] ) )
{
$value['disabled'] = $existingDefaults[ $type ]['disabled'];
}
else
{
$value['disabled'] = '';
}
if ( isset( $_SESSION['upgrade_options']['core']['105000']["notifications_editable_{$optionKey}"] ) )
{
$value['editable'] = intval( $_SESSION['upgrade_options']['core']['105000']["notifications_editable_{$optionKey}"] );
}
elseif ( isset( $existingDefaults[ $type ] ) )
{
$value['editable'] = intval( $existingDefaults[ $type ]['editable'] );
}
else
{
$value['editable'] = 1;
}
$newDefaults[ $optionKey ] = $value;
foreach ( $option['notificationTypes'] as $type )
{
$value['notification_key'] = $type;
$newDefaults[ $type ] = $value;
}
}
}
}
}
catch( \Exception $e ){}
}
\IPS\Db::i()->delete( 'core_notification_defaults' );
\IPS\Db::i()->insert( 'core_notification_defaults', $newDefaults );
return TRUE;
}
/**
* Custom title for this step
*
* @return string
*/
public function step2CustomTitle()
{
return "Fixing default notifications";
}
/**
* Convert referrals
*
* @return 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 step3()
{
if( \IPS\Db::i()->checkForTable('nexus_referrals' ) )
{
\IPS\Db::i()->insert( 'core_referrals', \IPS\Db::i()->select( 'member_id, referred_by, amount', 'nexus_referrals' ) );
}
if( \IPS\Db::i()->checkForTable('nexus_referral_banners' ) )
{
\IPS\Db::i()->insert( 'core_referral_banners', \IPS\Db::i()->select( 'rb_id, rb_url, rb_upload, rb_order', 'nexus_referral_banners' ) );
}
return TRUE;
}
/**
* Custom title for this step
*
* @return string
*/
public function step3CustomTitle()
{
return "Converting referrals";
}
/**
* Cleaning up pruning options
*
* @return 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 step4()
{
if( \IPS\CIC )
{
/* Reset notification pruning back to default */
\IPS\Db::i()->update( 'core_sys_conf_settings', array( 'conf_value' => NULL ), array( \IPS\Db::i()->in( 'conf_key', array( 'prune_member_history', 'prune_notifications' ) ) ) );
/* If we are not using the default member history prune preference, initiate the BG task to reset it */
if( !\IPS\Settings::i()->prune_member_history OR \IPS\Settings::i()->prune_member_history != 365 )
{
\IPS\Task::queue( 'core', 'PruneLargeTable', array(
'table' => 'core_member_history',
'where' => array( 'log_date < ?', \IPS\DateTime::create()->sub( new \DateInterval( 'P365D' ) )->getTimestamp() ),
), 4 );
}
}
else
{
/* If this is less than the new minimum, update the setting */
if( \IPS\Settings::i()->prune_notifications > 0 AND \IPS\Settings::i()->prune_notifications < 7 )
{
\IPS\Db::i()->update( 'core_sys_conf_settings', array( 'conf_value' => NULL ), array( 'conf_key=?', 'prune_notifications' ) );
}
}
/* Do the initial prune on the potentially large tables */
if ( \IPS\CIC OR ( isset( $_SESSION['upgrade_options']['core']['105000']['prune'] ) AND $_SESSION['upgrade_options']['core']['105000']['prune'] == 'enable' ) )
{
\IPS\Task::queue( 'core', 'PruneLargeTable', array(
'table' => 'core_members_known_ip_addresses',
'where' => array( 'last_seen < ?', \IPS\DateTime::create()->sub( new \DateInterval( 'P365D' ) )->getTimestamp() ),
), 4 );
\IPS\Task::queue( 'core', 'PruneLargeTable', array(
'table' => 'core_members_known_devices',
'where' => array( 'last_seen < ?', \IPS\DateTime::create()->sub( new \DateInterval( 'P365D' ) )->getTimestamp() ),
), 4 );
\IPS\Task::queue( 'core', 'PruneLargeTable', array(
'table' => 'core_item_markers',
'where' => array( 'item_member_id IN(?)', \IPS\Db::i()->select( 'member_id', 'core_members', array( 'last_activity < ?', \IPS\DateTime::create()->sub( new \DateInterval( 'P60D' ) )->getTimestamp() ) ) ),
'deleteJoin' => array(
'column' => 'member_id',
'table' => 'core_members',
'where' => array( 'last_activity < ?', \IPS\DateTime::create()->sub( new \DateInterval( 'P60D' ) )->getTimestamp() ),
'outerColumn' => 'item_member_id'
)
), 4 );
\IPS\Task::queue( 'core', 'PruneLargeTable', array(
'table' => 'core_follow',
'where' => array( 'follow_member_id IN(?)', \IPS\Db::i()->select( 'member_id', 'core_members', array( 'last_activity < ?', \IPS\DateTime::create()->sub( new \DateInterval( 'P365D' ) )->getTimestamp() ) ) ),
'deleteJoin' => array(
'column' => 'member_id',
'table' => 'core_members',
'where' => array( 'last_activity < ?', \IPS\DateTime::create()->sub( new \DateInterval( 'P365D' ) )->getTimestamp() ),
'outerColumn' => 'follow_member_id'
)
), 4 );
}
elseif( !\IPS\CIC AND isset( $_SESSION['upgrade_options']['core']['105000']['prune'] ) AND $_SESSION['upgrade_options']['core']['105000']['prune'] == 'disable' )
{
/* We need to insert the settings with values of 0 so they will remain disabled when we import the settings later */
\IPS\Db::i()->replace( 'core_sys_conf_settings', array(
'conf_key' => 'prune_item_markers',
'conf_value' => '0',
'conf_default' => '60',
'conf_app' => 'core'
) );
\IPS\Db::i()->replace( 'core_sys_conf_settings', array(
'conf_key' => 'prune_known_ips',
'conf_value' => '0',
'conf_default' => '365',
'conf_app' => 'core'
) );
\IPS\Db::i()->replace( 'core_sys_conf_settings', array(
'conf_key' => 'prune_known_devices',
'conf_value' => '0',
'conf_default' => '365',
'conf_app' => 'core'
) );
\IPS\Db::i()->replace( 'core_sys_conf_settings', array(
'conf_key' => 'prune_follows',
'conf_value' => '0',
'conf_default' => '365',
'conf_app' => 'core'
) );
}
/* If this is less than the new minimum, update the setting */
if( \IPS\Settings::i()->prune_log_system > 0 AND \IPS\Settings::i()->prune_log_system < 7 )
{
\IPS\Db::i()->update( 'core_sys_conf_settings', array( 'conf_value' => NULL ), array( 'conf_key=?', 'prune_log_system' ) );
}
return TRUE;
}
/**
* Custom title for this step
*
* @return string
*/
public function step4CustomTitle()
{
return "Adjusting pruning options";
}
/**
* Remove orphaned ratings
*
* @return 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 step5()
{
$validClasses = array();
foreach( \IPS\Content::routedClasses( FALSE, TRUE, TRUE ) as $class )
{
if( \in_array( 'IPS\Content\Ratings', class_implements( $class ) ) )
{
$validClasses[] = $class;
}
}
if( !\count( $validClasses ) )
{
return TRUE;
}
$toRun = \IPS\core\Setup\Upgrade::runManualQueries( array( array(
'table' => 'core_ratings',
'query' => "DELETE FROM " . \IPS\Db::i()->prefix . "core_ratings WHERE " . \IPS\Db::i()->in( 'class', $validClasses, TRUE )
) ) );
if ( \count( $toRun ) )
{
\IPS\core\Setup\Upgrade::adjustMultipleRedirect( array( 1 => 'core', 'extra' => array( '_upgradeStep' => 6 ) ) );
/* Queries to run manually */
return array( 'html' => \IPS\Theme::i()->getTemplate( 'forms' )->queries( $toRun, \IPS\Http\Url::internal( 'controller=upgrade' )->setQueryString( array( 'key' => $_SESSION['uniqueKey'], 'mr_continue' => 1, 'mr' => \IPS\Request::i()->mr ) ) ) );
}
return TRUE;
}
/**
* Custom title for this step
*
* @return string
*/
public function step5CustomTitle()
{
return "Removing orphaned ratings";
}
/**
* Rebuild the existing content messages and make them public
*
* @return 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 step6()
{
$perCycle = 250;
$did = 0;
$limit = \intval( \IPS\Request::i()->extra );
/* Try to prevent timeouts to the extent possible */
$cutOff = \IPS\core\Setup\Upgrade::determineCutoff();
foreach( \IPS\Db::i()->select( '*', 'core_content_meta', array( 'meta_type=?', 'core_ContentMessages' ), 'meta_id', array( $limit, $perCycle ) ) as $i )
{
if( $cutOff !== null AND time() >= $cutOff )
{
return ( $limit + $did );
}
$did++;
$meta = json_decode( $i['meta_data'], TRUE);
$meta['is_public'] = TRUE;
\IPS\Db::i()->update('core_content_meta', array('meta_data' => json_encode($meta)), array('meta_id=?', $i['meta_id'] ));
}
if ( $did )
{
return ( $limit + $did );
}
else
{
unset( $_SESSION['_step6Count'] );
return TRUE;
}
}
/**
* Custom title for this step
*
* @return string
*/
public function step6CustomTitle()
{
return "Rebuilding content messages";
}
/**
* Finish
*
* @return 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 finish()
{
/* Delete old language strings (yes, these are in core for some reason ) */
\IPS\Db::i()->delete( 'core_sys_lang_words', array( 'word_app=? and ' . \IPS\Db::i()->in( 'word_key', array(
'rss_import_forum_id',
'rss_import_mid',
'rss_import_mid_desc',
'acronym_expansion',
'acronym_add',
'acronym_a_short',
'acronym_a_long' ,
'acronym_a_casesensitive'
) ), 'core' ) );
/* Revert back to MySQL search if their Elasticsearch version is outdated */
if ( isset( $_SESSION['upgrade_options']['core']['105000']['es_version'] ) AND $_SESSION['upgrade_options']['core']['105000']['es_version'] )
{
\IPS\Settings::i()->changeValues( array( 'search_method' => 'mysql' ) );
\IPS\Content\Search\Index::i()->rebuild();
}
/* Update user link preference setting for existing installs */
\IPS\Db::i()->replace( 'core_sys_conf_settings', array(
'conf_key' => 'link_default',
'conf_value' => 'first',
'conf_default' => 'unread',
'conf_app' => 'core'
) );
/* Enable/disable bbcode appropriately */
if ( isset( $_SESSION['upgrade_options']['core']['105000']['enable_bbcode'] ) AND $_SESSION['upgrade_options']['core']['105000']['enable_bbcode'] == 'enable' )
{
/* The setting won't have been inserted yet */
\IPS\Db::i()->replace( 'core_sys_conf_settings', array(
'conf_key' => 'enable_bbcode',
'conf_value' => 1,
'conf_default' => 0,
'conf_app' => 'core'
) );
}
/* Copy Commerce setting to core. It is removed in Commerce upgrader */
\IPS\Db::i()->replace( 'core_sys_conf_settings', array(
'conf_key' => 'ref_on',
'conf_value' => \IPS\Settings::i()->cm_ref_on ?: 0,
'conf_default' => 0,
'conf_app' => 'core'
) );
/* Revert admin_reg email templates */
\IPS\Db::i()->delete( 'core_email_templates', array( "template_app=? AND template_name=? AND template_edited=?", 'core', 'admin_reg', 1 ) );
/* Initiate image proxy rebuilds to remove image proxy */
unset( \IPS\Data\Store::i()->currentImageProxyRebuild );
foreach ( \IPS\Content::routedClasses( FALSE, TRUE ) as $class )
{
if( isset( $class::$databaseColumnMap['content'] ) )
{
try
{
\IPS\Task::queue( 'core', 'RebuildImageProxy', array( 'class' => $class ), 4 );
}
catch( \OutOfRangeException $ex ) { }
}
}
foreach( \IPS\Application::allExtensions( 'core', 'EditorLocations', FALSE, NULL, NULL, TRUE, TRUE ) as $_key => $extension )
{
if( method_exists( $extension, 'rebuildImageProxy' ) )
{
\IPS\Task::queue( 'core', 'RebuildImageProxyNonContent', array( 'extension' => $_key ), 4 );
}
}
/* Also initiate the task to delete the files. If we are caching indefinitely, files will be retained but the table still should be dropped. */
\IPS\Task::queue( 'core', 'DeleteImageProxyFiles', array(), 5 );
/* Disable third party addons to prevent errors post-upgrade */
foreach( \IPS\Application::enabledApplications() as $app )
{
if( !\in_array( $app->directory, \IPS\IPS::$ipsApps ) )
{
$app->enabled = false;
$app->save();
}
}
foreach( \IPS\Plugin::enabledPlugins() as $plugin )
{
$plugin->enabled = FALSE;
$plugin->save();
}
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,23 @@
{
"added": [
"activeUsers",
"stats",
"relatedContent",
"recentStatusUpdates",
"topContributors",
"whosOnline",
"members",
"guestSignUp",
"promoted",
"clubs",
"newsletter",
"mostContributions",
"oembed",
"twitter",
"invite",
"stream",
"mostSolved"
],
"edited": [],
"removed": []
}