diff --git a/Languages/en_US/Editor.php b/Languages/en_US/Editor.php
index 77beb9a6f3..f3a7ec9fb9 100644
--- a/Languages/en_US/Editor.php
+++ b/Languages/en_US/Editor.php
@@ -15,6 +15,21 @@
$editortxt['font_name'] = 'Font name';
$editortxt['font_size'] = 'Font size';
$editortxt['font_color'] = 'Font color';
+$editortxt['black'] = 'Black';
+$editortxt['red'] = 'Red';
+$editortxt['yellow'] = 'Yellow';
+$editortxt['pink'] = 'Pink';
+$editortxt['green'] = 'Green';
+$editortxt['orange'] = 'Orange';
+$editortxt['purple'] = 'Purple';
+$editortxt['blue'] = 'Blue';
+$editortxt['beige'] = 'Beige';
+$editortxt['brown'] = 'Brown';
+$editortxt['teal'] = 'Teal';
+$editortxt['navy'] = 'Navy';
+$editortxt['maroon'] = 'Maroon';
+$editortxt['lime_green'] = 'Lime Green';
+$editortxt['white'] = 'White';
$editortxt['remove_formatting'] = 'Remove formatting';
$editortxt['cut'] = 'Cut';
$editortxt['browser_no_cut'] = 'Your browser does not allow the cut command. Please use the keyboard shortcut Ctrl/Cmd-X';
diff --git a/Languages/en_US/General.php b/Languages/en_US/General.php
index 84d0b33a0f..c1712ea84e 100644
--- a/Languages/en_US/General.php
+++ b/Languages/en_US/General.php
@@ -239,6 +239,7 @@
$txt['page'] = 'Page';
$txt['prev'] = 'Previous page';
$txt['next'] = 'Next page';
+$txt['breadcrumb'] = 'Breadcrumb';
$txt['page_title_number'] = '{title} - Page {pagenum, number, integer}';
@@ -307,7 +308,8 @@
$txt['reply_quote'] = 'Reply with quote';
$txt['reply'] = 'Reply';
$txt['reply_noun'] = 'Reply';
-$txt['reply_number'] = 'Reply #{0, number} - ';
+$txt['reply_number'] = 'Reply #{0, number}';
+$txt['reply_number_sr'] = 'Reply #{0, number}';
$txt['approve'] = 'Approve';
$txt['unapprove'] = 'Unapprove';
$txt['approve_all'] = 'approve all';
diff --git a/Languages/en_US/Help.php b/Languages/en_US/Help.php
index 4eb6b15316..20593cf9ec 100644
--- a/Languages/en_US/Help.php
+++ b/Languages/en_US/Help.php
@@ -265,6 +265,7 @@
$helptxt['enable_ajax_alerts'] = 'This option allows your members to receive AJAX notifications. This means that members do not need to refresh the page to get new notifications. NOTE: This option might cause a severe load at your server with many users online.';
$helptxt['alerts_auto_purge'] = 'Once an alert has been read, it is rarely needed again. For performance reasons, it is a good idea to automatically delete them after a while.';
$helptxt['jquery_source'] = 'This will determine the source used to load the jQuery Library. Google CDN, jQuery CDN and Microsoft CDN will load the jQuery library from those respective CDN networks. Local will only use the local source. Custom allows you to specify a custom URL for the library.';
+$helptxt['fontawesome_source'] = 'This will determine the source used to load the Font Awesome Library. Cloudflare CDN, and Font Awesome CDN will load the Font Awesome library from those respective CDN networks. Local will only use the local source. Custom allows you to specify a custom URL for the library.';
$helptxt['compactTopicPagesEnable'] = 'This will just show a selection of the number of pages. Example:
"3" to display: 1 ... 4 [5] 6 ... 9
"5" to display: 1 ... 3 4 [5] 6 7 ... 9';
diff --git a/Languages/en_US/ManageMaintenance.php b/Languages/en_US/ManageMaintenance.php
index fe635e5c38..d6e0299ae2 100644
--- a/Languages/en_US/ManageMaintenance.php
+++ b/Languages/en_US/ManageMaintenance.php
@@ -100,7 +100,7 @@
$txt['database_optimize_attempt'] = 'Attempting to optimize your database...';
$txt['database_optimizing'] = 'Optimizing {0}... {1} KB optimized.';
$txt['database_already_optimized'] = 'All of the tables were already optimized.';
-$txt['database_opimize_unneeded'] = 'It was not necessary to optimize any tables.';
+$txt['database_opimize_unneeded'] = 'No tables need to be optimized.';
$txt['database_optimized'] = ' table(s) optimized.';
$txt['database_no_id'] = 'has a non-existent member ID';
@@ -162,16 +162,14 @@
$txt['maintain_recount'] = 'Recount all forum totals and statistics';
$txt['maintain_recount_info'] = 'Should the total replies of a topic or the number of PMs in your inbox be incorrect: this function will recount all saved counts and statistics for you.';
-$txt['maintain_errors'] = 'Find and repair any errors';
-$txt['maintain_errors_info'] = 'If, for example, posts or topics are missing after a server crash, this function may help in finding them again.';
-$txt['maintain_logs'] = 'Empty out unimportant logs';
-$txt['maintain_logs_info'] = 'This function will empty out all unimportant logs. This should be avoided unless something is wrong, but it does not hurt anything.';
-$txt['maintain_cache'] = 'Empty SMF’s cache';
-$txt['maintain_cache_info'] = 'This function will empty out the cache should you need it to be cleared.';
-$txt['maintain_optimize'] = 'Optimize all tables';
-$txt['maintain_optimize_info'] = 'This task allows you to optimize all tables. This will get rid of overhead, effectively making the tables smaller in size and your forum faster.';
+$txt['maintain_repair'] = 'Find and repair any errors';
+$txt['maintain_repair_info'] = 'Try to find and fix any errors that may prevent posts or topics from showinng up or being searchable. This should be run afer a forum conversion.';
+$txt['maintain_logs'] = 'Clear logs';
+$txt['maintain_logs_info'] = 'Clear out all information-related logs, such as the error log. This should be avoided unless something is wrong, and will not adversely affect forum operations';
+$txt['maintain_cleancache'] = 'Empty SMF’s cache';
+$txt['maintain_cleancache_info'] = 'Empty out the cache should you need it to be cleared.';
$txt['maintain_version'] = 'Check all files against current versions';
-$txt['maintain_version_info'] = 'This maintenance task allows you to do a detailed version check of all forum files against the official list of latest versions.';
+$txt['maintain_version_info'] = 'Runs a detailed version check of all forum files against the official list of latest versions and displays the results.';
$txt['maintain_rebuild_settings'] = 'Rebuild Settings.php';
$txt['maintain_rebuild_settings_info'] = 'This task reconstructs your Settings.php file. It does not change the values stored in the file. Instead, it cleans up and reformats your Settings.php file to a pristine version.';
$txt['maintain_run_now'] = 'Run task now';
@@ -183,7 +181,7 @@
$txt['maintain_old_nothing_else'] = 'Any sort of topic.';
$txt['maintain_old_are_moved'] = 'Moved/merged topic notices.';
$txt['maintain_old_are_locked'] = 'Locked.';
-$txt['maintain_old_are_not_stickied'] = 'But do not count stickied topics.';
+$txt['maintain_old_are_not_stickied'] = 'Exclude sticky topics.';
$txt['maintain_old_all'] = 'All boards (click to select specific boards)';
$txt['maintain_old_choose'] = 'Specific boards (click to select all)';
$txt['maintain_old_remove'] = 'Remove now';
@@ -207,10 +205,10 @@
$txt['mediumtext_introduction'] = 'The default messages table can contain posts up to a size of 65535 characters, in order be able to store bigger texts the column must be converted to "MEDIUMTEXT". This operation is not reversible.';
$txt['body_checking_introduction'] = 'This function will convert the column of your database that contains the text of the messages into a "TEXT" format (currently is "MEDIUMTEXT"). This operation will allow to slightly reduce the amount of space occupied by each message (1 byte per message). If any message stored into the database is longer than 65535 characters it will be truncated and part of the text will be lost.';
-$txt['entity_convert_title'] = 'Convert HTML-entities to UTF-8 characters';
-$txt['entity_convert_only_utf8'] = 'The database needs to be in UTF-8 format before HTML-entities can be converted to UTF-8';
-$txt['entity_convert_introduction'] = 'This function will convert all characters that are stored in the database as HTML-entities to UTF-8 characters. This is especially useful when you have just converted your forum from a character set like ISO-8859-1 while non-latin characters were used on the forum. The browser then sends all characters as HTML-entities. For example, the HTML-entity α represents the greek letter α (alpha). Converting entities to UTF-8 will improve searching and sorting of text and reduce storage size.';
-$txt['entity_convert_proceed'] = 'Proceed';
+$txt['maintain_convertentities'] = 'Convert HTML-entities to UTF-8 characters';
+$txt['maintain_convertentities_only_utf8'] = 'The database needs to be in UTF-8 format before HTML-entities can be converted to UTF-8';
+$txt['maintain_convertentities_info'] = 'This function will convert all characters that are stored in the database as HTML-entities to UTF-8 characters. This is especially useful when you have just converted your forum from a character set like ISO-8859-1 while non-latin characters were used on the forum. The browser then sends all characters as HTML-entities. For example, the HTML-entity α represents the greek letter α (alpha). Converting entities to UTF-8 will improve searching and sorting of text and reduce storage size.';
+$txt['maintain_convertentities_proceed'] = 'Proceed';
// Move topics out.
$txt['move_topics_maintenance'] = 'Move Topics';
diff --git a/Languages/en_US/ManageSettings.php b/Languages/en_US/ManageSettings.php
index 613785f972..1b4e720c0e 100644
--- a/Languages/en_US/ManageSettings.php
+++ b/Languages/en_US/ManageSettings.php
@@ -73,12 +73,16 @@
$txt['alerts_auto_purge_0'] = 'Never';
$txt['alerts_per_page'] = 'Alerts Per Page';
$txt['jquery_source'] = 'Source for the jQuery Library';
-$txt['jquery_custom_label'] = 'Custom';
$txt['jquery_custom'] = 'Custom URL to the jQuery Library';
-$txt['jquery_local'] = 'Local';
-$txt['jquery_google_cdn'] = 'Google CDN';
-$txt['jquery_jquery_cdn'] = 'jQuery CDN';
-$txt['jquery_microsoft_cdn'] = 'Microsoft CDN';
+$txt['fontawesome_source'] = 'Source for the FontAwesome Library';
+$txt['fontawesome_custom'] = 'Custom URL to the FontAwesome Library';
+$txt['cdn_custom_label'] = 'Custom';
+$txt['local_cdn'] = 'Local';
+$txt['google_cdn'] = 'Google CDN';
+$txt['jquery_cdn'] = 'jQuery CDN';
+$txt['microsoft_cdn'] = 'Microsoft CDN';
+$txt['cloudflare_cdn'] = 'Cloudflare CDN';
+$txt['fontawesome_cdn'] = 'FontAwesome CDN';
$txt['minimize_files'] = 'Minimize CSS and JavaScript files';
$txt['queryless_urls'] = 'Use friendly URLs';
$txt['queryless_urls_note'] = 'Supported on Apache, Lighttpd, and LiteSpeed only';
diff --git a/Languages/en_US/Profile.php b/Languages/en_US/Profile.php
index 5331a6ea37..11b2b67b4d 100644
--- a/Languages/en_US/Profile.php
+++ b/Languages/en_US/Profile.php
@@ -645,6 +645,8 @@
$txt['theme_opt_posting'] = 'Posting';
$txt['theme_opt_moderation'] = 'Moderation';
$txt['theme_opt_personal_messages'] = 'Personal Messages';
+$txt['theme_opt_colormode'] = 'Theme Color Mode';
+$txt['theme_opt_variant'] = 'Theme Variant';
$txt['export_profile_data'] = 'Download profile data';
$txt['export_profile_data_desc'] = 'This section allows you to export a copy of your forum profile data to a downloadable file, optionally including your posts and personal messages. Please note:
';
+
// The below functions include all the scripts needed from the simplemachines.org site. The language and format are passed for internationalization.
if (empty(Config::$modSettings['disable_smf_js']))
echo '
@@ -111,7 +117,6 @@ function template_admin()
echo '
';
}
@@ -767,9 +758,6 @@ function template_show_settings()
if (!empty(Utils::$context['settings_insert_above']))
echo Utils::$context['settings_insert_above'];
- echo '
-
-
-
-
', Lang::getTxt('warning', file: 'Login'), '
-
';
+
+
+
', Lang::$txt['warning'], '
+
';
// Show the message or default message.
echo '
-
+
+
';
}
@@ -391,39 +307,32 @@ function template_admin_login()
{
// Since this should redirect to whatever they were doing, send all the get data.
echo '
-
+
', Lang::getTxt('login', file: 'General'), '
-
';
+
';
if (!empty(Utils::$context['incorrect_password']))
echo '
';
echo '
- ', Lang::getTxt('password', file: 'General'), '
-
-
+ ', Lang::$txt['password'], ':
+
+
';
// Make sure to output all the old post data.
echo Utils::$context['post_data'], '
-
+
-
';
-
- // Focus on the password box.
- echo '
- ';
}
/**
@@ -433,25 +342,21 @@ function template_retry_activate()
{
// Just ask them for their code so they can try it again...
echo '
-
-
-
', Utils::$context['page_title'], '
-
-
-
';
+
+
', Utils::$context['page_title'], '
+
+
';
// You didn't even have an ID?
if (empty(Utils::$context['member_id']))
echo '
-
';
}
@@ -498,23 +395,20 @@ function template_resend()
*/
function template_logout()
{
- // This isn't that much... just like normal login but with a message at the top.
echo '
-
';
-
- // Show the quick moderation options?
- if (!empty(Utils::$context['can_quick_mod']))
- {
- echo '
-
';
-
- if (Theme::$current->options['display_quick_mod'] == 1)
- echo '
- ';
- else
- {
- // Check permissions on each and show only the ones they are allowed to use.
- if ($topic['quick_mod']['remove'])
- echo '';
-
- if ($topic['quick_mod']['lock'])
- echo '';
-
- if ($topic['quick_mod']['lock'] || $topic['quick_mod']['remove'])
- echo ' ';
-
- if ($topic['quick_mod']['sticky'])
- echo '';
-
- if ($topic['quick_mod']['move'])
- echo '';
- }
- echo '
-
';
- }
- echo '
-
';
- }
- echo '
-
';
+ template_list_topics(Utils::$context['topics_headers'], Utils::$context['topics']);
if (!empty(Utils::$context['can_quick_mod']) && Theme::$current->options['display_quick_mod'] == 1 && !empty(Utils::$context['topics']))
{
@@ -314,10 +151,6 @@ function template_main()
';
}
- echo '
-
';
-
- // Finish off the form - again.
if (!empty(Utils::$context['can_quick_mod']) && Theme::$current->options['display_quick_mod'] > 0 && !empty(Utils::$context['topics']))
echo '
@@ -325,12 +158,12 @@ function template_main()
echo '
';
+ }
-/**
- * Outputs the board lastposts for a standard board or a redirect.
- * When on a mobile device, this may be hidden if no last post exists.
- *
- * @param array $board Current board information.
- */
-function template_bi_board_lastpost($board)
-{
- if (!empty($board['last_post']['id']))
echo '
-
', $board['last_post']['last_post_message'], '
';
-}
+
';
-/**
- * Outputs the board children for a standard board.
- *
- * @param array $board Current board information.
- */
-function template_bi_board_children($board)
-{
- // Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
- if (!empty($board['children']))
- {
- // Sort the links into an array with new boards bold so it can be imploded.
- $children = array();
- /* Each child in each board's children has:
- id, name, description, new (is it new?), topics (#), posts (#), href, link, and last_post. */
- foreach ($board['children'] as $child)
+ foreach ($topics as $topic)
{
- if (!$child['is_redirect'])
- $child['link'] = '' . ($child['new'] ? '' . Lang::getTxt('new', file: 'General') . ' ' : '') . ' $child['posts'], 'topics' => $child['topics']], file: 'General') . '">' . $child['name'] . '';
- else
- $child['link'] = '' . $child['name'] . '';
+ echo '
+
';
- // Has it posts awaiting approval?
- if ($child['can_approve_posts'] && ($child['unapproved_posts'] || $child['unapproved_topics']))
- $child['link'] .= ' !';
+ foreach ($columns as $name => $column) {
+ echo '
+
';
-
// Show the member's custom title, if they have one.
if (isset($message['member']['title']) && $message['member']['title'] != '')
echo '
-
', $message['member']['title'], '
';
+
', $message['member']['title'], '
';
// Show the member's primary group (like 'Administrator') if they have one.
if (isset($message['member']['group']) && $message['member']['group'] != '')
echo '
-
', $message['member']['group'], '
';
+
', $message['member']['group'], '
';
// Show the user's avatar.
if (!empty(Config::$modSettings['show_user_images']) && empty(Theme::$current->options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
-
';
// Are there any custom fields below the avatar?
if (!empty($message['custom_fields']['below_avatar']))
foreach ($message['custom_fields']['below_avatar'] as $custom)
echo '
-
', $custom['value'], '
';
+
', $custom['value'], '
';
// Don't show these things for guests.
if (!$message['member']['is_guest'])
{
// Show the post group icons
echo '
-
', $message['member']['group_icons'], '
';
+
', $message['member']['group_icons'], '
';
// Show the post group if and only if they have no other group or the option is on, and they are in a post group.
if ((empty(Config::$modSettings['hide_post_group']) || $message['member']['group'] == '') && $message['member']['post_group'] != '')
echo '
-
', $message['member']['post_group'], '
';
+
', $message['member']['post_group'], '
';
// Show how many posts they have made.
if (!isset(Utils::$context['disabled_fields']['posts']))
echo '
-
';
+ ';
}
// Show the IP to this user for this post - because you can moderate?
if (!empty(Utils::$context['can_moderate_forum']) && !empty($message['member']['ip']))
echo '
-
';
// Don't show an icon if they haven't specified a website.
if ($message['member']['website']['url'] != '' && !isset(Utils::$context['disabled_fields']['website']))
echo '
-
';
+ ';
}
// Any custom fields for standard placement?
if (!empty($message['custom_fields']['standard']))
foreach ($message['custom_fields']['standard'] as $custom)
echo '
-
', $custom['title'], ': ', $custom['value'], '
';
+
', $custom['title'], ': ', $custom['value'], '
';
// Are we showing the warning status?
if ($message['member']['can_see_warning'])
echo '
-
';
// Are there any custom fields to show at the bottom of the poster info?
if (!empty($message['custom_fields']['bottom_poster']))
foreach ($message['custom_fields']['bottom_poster'] as $custom)
echo '
-
', $custom['value'], '
';
+
', $custom['value'], '
';
}
// Done with the information about the poster... on to the post itself.
echo '
-
@@ -596,7 +594,7 @@ function template_single_pm($message)
echo '
-
+
';
}
@@ -818,8 +816,9 @@ function template_search()
', Lang::getTxt('new_message', file: 'PersonalMessage'), '
@@ -1027,7 +1026,7 @@ function template_send()
// Autosuggest will be added by the JavaScript later on.
echo '
- ';
+ ';
// A link to add BCC, only visible with JavaScript enabled.
echo '
@@ -1046,7 +1045,7 @@ function template_send()
', trim(Lang::getTxt('pm_bcc', ['list' => ''], file: 'PersonalMessage')), '
diff --git a/Themes/default/Post.template.php b/Themes/default/Post.template.php
index 0dd7a9559f..4538a69918 100644
--- a/Themes/default/Post.template.php
+++ b/Themes/default/Post.template.php
@@ -26,43 +26,9 @@ function template_main()
echo '
';
// If the user is replying to a topic show the previous posts.
@@ -587,34 +516,32 @@ function addPollOption()
$ignored_posts[] = $ignoring = $post['id'];
echo '
-
';
}
echo '
@@ -643,20 +570,55 @@ function addPollOption()
}
echo '
- function insertQuoteFast(messageid)
- {
- var e = document.getElementById("', Utils::$context['post_box_name'], '");
- sceditor.instance(e).insertQuoteFast(messageid);
+ ';
+ }
+}
- return true;
- }
- function onReceiveOpener(text)
- {
- var e = document.getElementById("', Utils::$context['post_box_name'], '");
- sceditor.instance(e).insert(text);
+/**
+ * Render additional post options as a list of checkboxes.
+ *
+ * $additional_options is an array of options to be rendered as elements in a HTML unordered list. It accrpts:
+ * - 'can_show' (bool): Whether the option should be displayed (based on user permissions).
+ * - 'name' (string): The name attribute of the checkbox input.
+ * - 'id' (string): The id attribute of the checkbox input.
+ * - 'checked' (bool): Whether the checkbox should be pre-checked or not.
+ * - 'label' (string): The label text displayed next to the checkbox.
+ * - 'value' (string, optional): The value attribute of the checkbox (default is '1').
+ * - 'hidden' (array, optional): Any hidden input fields associated with this option (key-value pairs).
+ *
+ * @param array $additional_options The options array containing the settings for each checkbox.
+ * @param ?string $id The id for the wrapper list element (`ul`).
+ */
+function template_additional_options(array $additional_options, ?string $id = null): void
+{
+ echo '
+
';
+
+ foreach ($additional_options as $option) {
+ // Only display the option if can_show is true
+ if ($option['can_show']) {
+ echo '
+
';
}
@@ -90,16 +91,20 @@ function template_alerts_popup()
{
// Unlike almost every other template, this is designed to be included into the HTML directly via $().load()
echo '
-
';
}
@@ -978,14 +980,12 @@ function template_editIgnoreList()
';
}
@@ -1312,8 +1312,7 @@ function template_statPanel()
{
// First, show a few text statistics such as post/topic count.
echo '
-
-
+
';
foreach (Utils::$context['text_stats'] as $key => $stat)
@@ -1330,12 +1329,10 @@ function template_statPanel()
}
echo '
-
-
';
+ ';
// This next section draws a graph showing what times of day they post the most.
echo '
-
', Lang::getTxt('statPanel_activityTime', file: 'Profile'), '
@@ -1345,7 +1342,7 @@ function template_statPanel()
// If they haven't post at all, don't draw the graph.
if (empty(Utils::$context['posts_by_time']))
echo '
-
';
- }
- else
- {
- // Close child board lists until we reach a common level
- // with the next board.
- while ($next_child_level < $curr_child_level--)
- {
- echo '
-
';
// For each membergroup show a checkbox so members can be assigned to more than one group.
@@ -2824,12 +2643,7 @@ function template_profile_group_manage()
';
echo '
-
';
}
@@ -2866,7 +2680,7 @@ function template_profile_signature_modify()
echo '
- ';
+ ';
// If there is a limit at all!
if (!empty(Utils::$context['signature_limits']['max_length']))
@@ -2875,24 +2689,13 @@ function template_profile_signature_modify()
if (!empty(Utils::$context['show_preview_button']))
echo '
- ';
+ ';
if (Utils::$context['signature_warning'])
echo '
', Utils::$context['signature_warning'], '';
- // Some javascript used to count how many characters have been used so far in the signature.
echo '
-
';
}
@@ -2904,45 +2707,45 @@ function template_profile_avatar_select()
// Start with the upper menu
echo '
-
-
- ';
+
+ ';
if (empty(Config::$modSettings['gravatarEnabled']) || empty(Config::$modSettings['gravatarOverride']))
echo '
-
+
';
if (!empty(Utils::$context['member']['avatar']['allow_server_stored']))
echo '
-
+
';
if (!empty(Utils::$context['member']['avatar']['allow_external']))
echo '
-
+
';
if (!empty(Utils::$context['member']['avatar']['allow_upload']))
echo '
-
+
';
if (!empty(Utils::$context['member']['avatar']['allow_gravatar']))
echo '
-
-
+
+
';
echo '
+
';
@@ -2950,66 +2753,53 @@ function template_profile_avatar_select()
if (!empty(Utils::$context['member']['avatar']['allow_server_stored']))
{
echo '
-
';
+ if ($avatar['is_dir'])
+ {
+ echo '
+ ';
+ }
+ else
+ echo '
+ ';
+
+ echo '
+
+ ';
}
// If the user can link to an off server avatar, show them a box to input the address.
if (!empty(Utils::$context['member']['avatar']['allow_external']))
echo '
-
';
// If the user is able to upload avatars to the server show them an upload box.
if (!empty(Utils::$context['member']['avatar']['allow_upload']))
echo '
-
';
+ ';
// if the user is able to use Gravatar avatars show then the image preview
if (!empty(Utils::$context['member']['avatar']['allow_gravatar']))
{
echo '
-
';
// If there is any field marked as required, show it here!
if (!empty(Utils::$context['custom_fields_required']) && !empty(Utils::$context['custom_fields']))
{
- echo '
-
';
-
foreach (Utils::$context['custom_fields'] as $field)
if ($field['show_reg'] > 1)
echo '
-
';
-
// If we have either of these, show the extra group.
if (!empty(Utils::$context['profile_fields']) || !empty(Utils::$context['custom_fields']))
echo '
';
if (!empty(Utils::$context['profile_fields']))
{
@@ -207,8 +172,8 @@ function verifyAgree()
else
{
echo '
-
- ', $field['label'], ':';
+
+ ', $field['label'], ':';
// Does it have any subtext to show?
if (!empty($field['subtext']))
@@ -216,8 +181,8 @@ function verifyAgree()
', $field['subtext'], '';
echo '
-
-
';
+
+
';
// Want to put something infront of the box?
if (!empty($field['preinput']))
@@ -232,18 +197,18 @@ function verifyAgree()
// Maybe it's a text box - very likely!
elseif (in_array($field['type'], array('int', 'float', 'text', 'password', 'url')))
echo '
- ';
+ ';
// You "checking" me out? ;)
elseif ($field['type'] == 'check')
echo '
- ';
+ ';
// Always fun - select boxes!
elseif ($field['type'] == 'select')
{
echo '
- ';
+ ';
if (isset($field['options']))
{
@@ -268,7 +233,7 @@ function verifyAgree()
', $field['postinput'];
echo '
- ';
+
';
}
}
}
@@ -279,46 +244,33 @@ function verifyAgree()
foreach (Utils::$context['custom_fields'] as $field)
if ($field['show_reg'] < 2)
echo '
-
- ', $field['name'], ':
- ', $field['desc'], '
-
-
', $field['input_html'], '
';
+
+ ', $field['name'], ':
+ ', $field['desc'], '
+
+
', $field['input_html'], '
';
}
- // If we have either of these, close the list like a proper gent.
- if (!empty(Utils::$context['profile_fields']) || !empty(Utils::$context['custom_fields']))
- echo '
-
-
-
';
-
if (Utils::$context['visual_verification'])
echo '
';
// Go through each type of report they can run.
foreach (Utils::$context['report_types'] as $type)
{
+ echo '
+
+
+ ', $type['title'], '';
+
if (isset($type['description']))
echo '
-
';
- }
- else
- {
- // Close child board lists until we reach a common level
- // with the next board.
- while ($next_child_level < $curr_child_level--)
- {
- echo '
-
', Lang::getTxt('forum_history', file: 'Stats'), '
diff --git a/Themes/default/Themes.template.php b/Themes/default/Themes.template.php
index 65c57bf682..bd94a4a561 100644
--- a/Themes/default/Themes.template.php
+++ b/Themes/default/Themes.template.php
@@ -511,8 +511,7 @@ function template_set_settings()
';
// Do we allow theme variants?
- if (!empty(Utils::$context['theme_variants']))
- {
+ if (!empty(Utils::$context['theme_variants'])) {
echo '
@@ -544,6 +543,38 @@ function template_set_settings()
';
}
+ // Color modes for the theme?
+ if (!empty(Theme::$current->settings['has_dark_mode'])) {
+ echo '
+
@@ -690,65 +721,68 @@ function template_set_settings()
function template_pick()
{
echo '
-
';
- // Just go through each theme and show its information - thumbnail, etc.
- foreach (Utils::$context['available_themes'] as $theme)
+ for ($i = 0; $i < 2; $i++)
{
echo '
-
';
+
+ // Just go through each theme and show its information - thumbnail, etc.
+ foreach (Utils::$context['available_themes'] as $theme)
+ {
+ if (($theme['selected'] && $i == 0) || (!$theme['selected'] && $i == 1))
+ {
+ echo '
+