diff options
Diffstat (limited to 'phpBB')
51 files changed, 612 insertions, 154 deletions
diff --git a/phpBB/adm/style/acp_ban.html b/phpBB/adm/style/acp_ban.html index 9e9f05120a..f2249941a5 100644 --- a/phpBB/adm/style/acp_ban.html +++ b/phpBB/adm/style/acp_ban.html @@ -52,7 +52,7 @@ <legend>{L_TITLE}</legend> <dl> <dt><label for="ban">{L_BAN_CELL}{L_COLON}</label></dt> - <dd><textarea name="ban" cols="40" rows="3" id="ban"></textarea></dd> + <dd><!-- EVENT acp_ban_cell_prepend --><textarea name="ban" cols="40" rows="3" id="ban"></textarea><!-- EVENT acp_ban_cell_append --></dd> <!-- IF S_USERNAME_BAN --><dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd><!-- ENDIF --> </dl> <dl> diff --git a/phpBB/adm/style/acp_captcha.html b/phpBB/adm/style/acp_captcha.html index f4866653c3..0efbbac51e 100644 --- a/phpBB/adm/style/acp_captcha.html +++ b/phpBB/adm/style/acp_captcha.html @@ -8,6 +8,13 @@ <p>{L_ACP_VC_EXT_GET_MORE}</p> +<!-- IF ERROR_MSG --> +<div class="errorbox"> + <h3>{L_WARNING}</h3> + <p>{ERROR_MSG}</p> +</div> +<!-- ENDIF --> + <form id="acp_captcha" method="post" action="{U_ACTION}"> <fieldset> diff --git a/phpBB/adm/style/acp_email.html b/phpBB/adm/style/acp_email.html index 63acd7fcc1..e14c56ab47 100644 --- a/phpBB/adm/style/acp_email.html +++ b/phpBB/adm/style/acp_email.html @@ -19,12 +19,14 @@ <legend>{L_COMPOSE}</legend> <dl> <dt><label for="group">{L_SEND_TO_GROUP}{L_COLON}</label></dt> + <!-- EVENT acp_email_group_options_prepend --> <dd><select id="group" name="g">{S_GROUP_OPTIONS}</select></dd> + <!-- EVENT acp_email_group_options_append --> </dl> <dl> <dt><label for="usernames">{L_SEND_TO_USERS}{L_COLON}</label><br /><span>{L_SEND_TO_USERS_EXPLAIN}</span></dt> <dd><textarea name="usernames" id="usernames" rows="5" cols="40">{USERNAMES}</textarea></dd> - <dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd> + <dd><!-- EVENT acp_email_find_username_prepend -->[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]<!-- EVENT acp_email_find_username_append --></dd> </dl> <dl> <dt><label for="subject">{L_SUBJECT}{L_COLON}</label></dt> diff --git a/phpBB/adm/style/acp_forums.html b/phpBB/adm/style/acp_forums.html index 0d8b8ad583..dcad90d7bc 100644 --- a/phpBB/adm/style/acp_forums.html +++ b/phpBB/adm/style/acp_forums.html @@ -498,7 +498,7 @@ <fieldset class="quick"> {L_SELECT_FORUM}{L_COLON} <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{FORUM_BOX}</select> - <input class="button2" type="submit" value="{L_GO}" /> + <!-- EVENT acp_forums_quick_select_button_prepend --><input class="button2" type="submit" value="{L_GO}" /><!-- EVENT acp_forums_quick_select_button_append --> {S_FORM_TOKEN} </fieldset> </form> diff --git a/phpBB/adm/style/acp_groups.html b/phpBB/adm/style/acp_groups.html index d24d62497d..23f6e744c0 100644 --- a/phpBB/adm/style/acp_groups.html +++ b/phpBB/adm/style/acp_groups.html @@ -236,7 +236,7 @@ <dl> <dt><label for="usernames">{L_USERNAME}{L_COLON}</label><br /><span>{L_USERNAMES_EXPLAIN}</span></dt> <dd><textarea id="usernames" name="usernames" cols="40" rows="5"></textarea></dd> - <dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd> + <dd><!-- EVENT acp_groups_find_username_prepend -->[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]<!-- EVENT acp_groups_find_username_append --></dd> </dl> <p class="quick"> @@ -265,6 +265,7 @@ <form id="acp_groups" method="post" action="{U_ACTION}"> + <!-- EVENT acp_groups_manage_before --> <table class="table1"> <col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" /> <thead> @@ -285,6 +286,7 @@ <!-- ENDIF --> </tbody> </table> + <!-- EVENT acp_groups_manage_after --> <fieldset class="quick"> <!-- IF S_GROUP_ADD --> diff --git a/phpBB/adm/style/acp_groups_position.html b/phpBB/adm/style/acp_groups_position.html index c01f7aeb03..20ed9521f0 100644 --- a/phpBB/adm/style/acp_groups_position.html +++ b/phpBB/adm/style/acp_groups_position.html @@ -65,8 +65,10 @@ <option<!-- IF add_legend.GROUP_SPECIAL --> class="sep"<!-- ENDIF --> value="{add_legend.GROUP_ID}">{add_legend.GROUP_NAME}</option> <!-- END add_legend --> </select> + <!-- EVENT acp_groups_position_legend_add_button_before --> <input class="button2" type="submit" name="submit" value="{L_ADD}" /> <input type="hidden" name="action" value="add" /> + <!-- EVENT acp_groups_position_legend_add_button_after --> {S_FORM_TOKEN} </fieldset> </form> @@ -162,8 +164,10 @@ <option<!-- IF add_teampage.GROUP_SPECIAL --> class="sep"<!-- ENDIF --> value="{add_teampage.GROUP_ID}">{add_teampage.GROUP_NAME}</option> <!-- END add_teampage --> </select> + <!-- EVENT acp_groups_position_teampage_add_button_before --> <input class="button2" type="submit" name="submit" value="{L_ADD}" /> <input type="hidden" name="action" value="add" /> + <!-- EVENT acp_groups_position_teampage_add_button_after --> {S_FORM_TOKEN} </fieldset> </form> diff --git a/phpBB/adm/style/acp_logs.html b/phpBB/adm/style/acp_logs.html index 76ea801de0..cb15a8f51d 100644 --- a/phpBB/adm/style/acp_logs.html +++ b/phpBB/adm/style/acp_logs.html @@ -73,7 +73,7 @@ <!-- IF S_SHOW_FORUMS --> <fieldset class="quick"> {L_SELECT_FORUM}{L_COLON} <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{S_FORUM_BOX}</select> - <input class="button2" type="submit" value="{L_GO}" /> + <!-- EVENT acp_logs_quick_select_forum_button_prepend --><input class="button2" type="submit" value="{L_GO}" /><!-- EVENT acp_logs_quick_select_forum_button_append --> </fieldset> <!-- ENDIF --> diff --git a/phpBB/adm/style/acp_permissions.html b/phpBB/adm/style/acp_permissions.html index 004027df41..7766052c59 100644 --- a/phpBB/adm/style/acp_permissions.html +++ b/phpBB/adm/style/acp_permissions.html @@ -30,7 +30,7 @@ <legend>{L_LOOK_UP_FORUM}</legend> <!-- IF S_FORUM_MULTIPLE --><p>{L_LOOK_UP_FORUMS_EXPLAIN}</p><!-- ENDIF --> <dl> - <dt><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt> + <dt><!-- EVENT acp_permissions_select_multiple_forum_prepend --><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label><!-- EVENT acp_permissions_select_multiple_forum_append --></dt> <dd><select id="forum" name="forum_id[]"<!-- IF S_FORUM_MULTIPLE --> multiple="multiple"<!-- ENDIF --> size="10">{S_FORUM_OPTIONS}</select></dd> <!-- IF S_FORUM_ALL --><dd><label><input type="checkbox" class="radio" name="all_forums" value="1" /> {L_ALL_FORUMS}</label></dd><!-- ENDIF --> </dl> @@ -52,7 +52,7 @@ <legend>{L_LOOK_UP_FORUM}</legend> <p>{L_SELECT_FORUM_SUBFORUM_EXPLAIN}</p> <dl> - <dt><label for="sforum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt> + <dt><!-- EVENT acp_permissions_select_forum_prepend --><label for="sforum">{L_LOOK_UP_FORUM}{L_COLON}</label><!-- EVENT acp_permissions_select_forum_append --></dt> <dd><select id="sforum" name="subforum_id">{S_SUBFORUM_OPTIONS}</select></dd> </dl> @@ -95,7 +95,7 @@ <fieldset> <legend>{L_LOOK_UP_GROUP}</legend> <dl> - <dt><label for="group">{L_LOOK_UP_GROUP}{L_COLON}</label></dt> + <dt><!-- EVENT acp_permissions_select_group_prepend --><label for="group">{L_LOOK_UP_GROUP}{L_COLON}</label><!-- EVENT acp_permissions_select_group_append --></dt> <dd><select name="group_id[]" id="group">{S_GROUP_OPTIONS}</select></dd> </dl> @@ -140,7 +140,7 @@ <p>{L_USERNAMES_EXPLAIN}</p> <dl> <dd class="full"><textarea id="username" name="usernames" rows="5" cols="5" style="width: 100%; height: 60px;"></textarea></dd> - <dd class="full" style="text-align: left;"><div style="float: {S_CONTENT_FLOW_END};">[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</div><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd> + <dd class="full" style="text-align: left;"><!-- EVENT acp_permissions_find_username_prepend --><div style="float: {S_CONTENT_FLOW_END};">[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</div><!-- EVENT acp_permissions_find_username_append --><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd> </dl> </fieldset> @@ -183,7 +183,7 @@ <fieldset> <legend>{L_ADD_GROUPS}</legend> <dl> - <dd class="full"><select name="group_id[]" style="width: 100%; height: 107px;" multiple="multiple">{S_ADD_GROUP_OPTIONS}</select></dd> + <dd class="full"><!-- EVENT acp_permissions_add_group_options_prepend --><select name="group_id[]" style="width: 100%; height: 107px;" multiple="multiple">{S_ADD_GROUP_OPTIONS}</select><!-- EVENT acp_permissions_add_group_options_append --></dd> </dl> </fieldset> @@ -267,7 +267,9 @@ <legend>{L_LOOK_UP_GROUP}</legend> <dl> <dt><label for="group_select">{L_LOOK_UP_GROUP}{L_COLON}</label></dt> + <!-- EVENT acp_permissions_select_group_before --> <dd><select name="group_id[]" id="group_select">{S_ADD_GROUP_OPTIONS}</select></dd> + <!-- EVENT acp_permissions_select_group_after --> <dd> </dd> </dl> </fieldset> diff --git a/phpBB/adm/style/acp_prune_forums.html b/phpBB/adm/style/acp_prune_forums.html index 4d748f1cce..b8c681ea00 100644 --- a/phpBB/adm/style/acp_prune_forums.html +++ b/phpBB/adm/style/acp_prune_forums.html @@ -43,7 +43,7 @@ <legend>{L_SELECT_FORUM}</legend> <p>{L_LOOK_UP_FORUMS_EXPLAIN}</p> <dl> - <dt><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt> + <dt><!-- EVENT acp_prune_forums_prepend --><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label><!-- EVENT acp_prune_forums_append --></dt> <dd><select id="forum" name="f[]" multiple="multiple" size="10">{S_FORUM_OPTIONS}</select></dd> <dd><label><input type="checkbox" class="radio" name="all_forums" value="1" /> {L_ALL_FORUMS}</label></dd> </dl> diff --git a/phpBB/adm/style/acp_prune_users.html b/phpBB/adm/style/acp_prune_users.html index b8c271355b..6e8b2e4214 100644 --- a/phpBB/adm/style/acp_prune_users.html +++ b/phpBB/adm/style/acp_prune_users.html @@ -50,7 +50,7 @@ <dl> <dt><label for="users">{L_ACP_PRUNE_USERS}{L_COLON}</label><br /><span>{L_SELECT_USERS_EXPLAIN}</span></dt> <dd><textarea id="users" name="users" cols="40" rows="5"></textarea></dd> - <dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd> + <dd><!-- EVENT acp_prune_users_find_username_prepend -->[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]<!-- EVENT acp_prune_users_find_username_append --></dd> </dl> </fieldset> diff --git a/phpBB/adm/style/acp_users.html b/phpBB/adm/style/acp_users.html index 25064c6f3a..18c3d84f96 100644 --- a/phpBB/adm/style/acp_users.html +++ b/phpBB/adm/style/acp_users.html @@ -146,7 +146,9 @@ <!-- IF S_GROUP_OPTIONS --> <fieldset class="quick"> + <!-- EVENT acp_users_select_group_before --> {L_USER_GROUP_ADD}{L_COLON} <select name="g">{S_GROUP_OPTIONS}</select> <input class="button1" type="submit" name="update" value="{L_SUBMIT}" /> + <!-- EVENT acp_users_select_group_after --> {S_FORM_TOKEN} </fieldset> <!-- ENDIF --> diff --git a/phpBB/adm/style/permission_forum_copy.html b/phpBB/adm/style/permission_forum_copy.html index 1e012a9347..b1539aff12 100644 --- a/phpBB/adm/style/permission_forum_copy.html +++ b/phpBB/adm/style/permission_forum_copy.html @@ -12,7 +12,7 @@ <legend>{L_LOOK_UP_FORUM}</legend> <dl> - <dt><label for="src_forum">{L_COPY_PERMISSIONS_FROM}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_FORUM_FROM_EXPLAIN}</span></dt> + <dt><!-- EVENT acp_permission_forum_copy_src_forum_prepend --><label for="src_forum">{L_COPY_PERMISSIONS_FROM}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_FORUM_FROM_EXPLAIN}</span><!-- EVENT acp_permission_forum_copy_src_forum_append --></dt> <dd><select id="src_forum" name="src_forum_id"><option value="0">{L_SELECT_FORUM}</option><option value="-1">------------------</option>{S_FORUM_OPTIONS}</select></dd> </dl> </fieldset> @@ -22,7 +22,7 @@ <p>{L_LOOK_UP_FORUMS_EXPLAIN}</p> <dl> - <dt><label for="dest_forums">{L_COPY_PERMISSIONS_TO}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_FORUM_TO_EXPLAIN}</span></dt> + <dt><!-- EVENT acp_permission_forum_copy_dest_forum_prepend --><label for="dest_forums">{L_COPY_PERMISSIONS_TO}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_FORUM_TO_EXPLAIN}</span><!-- EVENT acp_permission_forum_copy_dest_forum_append --></dt> <dd><select id="dest_forums" name="dest_forum_ids[]" multiple="multiple" size="10">{S_FORUM_OPTIONS}</select></dd> </dl> </fieldset> diff --git a/phpBB/assets/javascript/core.js b/phpBB/assets/javascript/core.js index 6a008ba1ec..91f5521c7a 100644 --- a/phpBB/assets/javascript/core.js +++ b/phpBB/assets/javascript/core.js @@ -306,6 +306,10 @@ phpbb.ajaxify = function(options) { alert = phpbb.alert(res.MESSAGE_TITLE, res.MESSAGE_TEXT); } else { $dark.fadeOut(phpbb.alertTime); + + if ($loadingIndicator) { + $loadingIndicator.fadeOut(phpbb.alertTime); + } } if (typeof phpbb.ajaxCallbacks[callback] === 'function') { diff --git a/phpBB/assets/javascript/installer.js b/phpBB/assets/javascript/installer.js index e61adc7f99..4fc2e55b66 100644 --- a/phpBB/assets/javascript/installer.js +++ b/phpBB/assets/javascript/installer.js @@ -243,8 +243,20 @@ */ function parseMessage(messageJSON) { $('#loading_indicator').css('display', 'none'); + var responseObject; - var responseObject = JSON.parse(messageJSON); + try { + responseObject = JSON.parse(messageJSON); + } catch (err) { + if (window.console) { + console.log('Failed to parse JSON object\n\nMessage: ' + err.message + '\n\nServer Response: ' + messageJSON); + } else { + alert('Failed to parse JSON object\n\nMessage: ' + err.message + '\n\nServer Response: ' + messageJSON); + } + + resetPolling(); + return; + } // Parse object if (responseObject.hasOwnProperty('errors')) { diff --git a/phpBB/config/default/container/services_files.yml b/phpBB/config/default/container/services_files.yml index 425df6dc9b..2624ae5e06 100644 --- a/phpBB/config/default/container/services_files.yml +++ b/phpBB/config/default/container/services_files.yml @@ -25,7 +25,6 @@ services: - @language - @php_ini - @request - - %core.root_path% files.types.form: class: phpbb\files\types\form diff --git a/phpBB/config/default/container/services_text_reparser.yml b/phpBB/config/default/container/services_text_reparser.yml index 5d54e8dc82..dd15b9f09a 100644 --- a/phpBB/config/default/container/services_text_reparser.yml +++ b/phpBB/config/default/container/services_text_reparser.yml @@ -17,6 +17,7 @@ services: class: phpbb\textreparser\plugins\forum_description arguments: - @dbal.conn + - %tables.forums% tags: - { name: text_reparser.plugin } @@ -24,6 +25,7 @@ services: class: phpbb\textreparser\plugins\forum_rules arguments: - @dbal.conn + - %tables.forums% tags: - { name: text_reparser.plugin } @@ -31,6 +33,7 @@ services: class: phpbb\textreparser\plugins\group_description arguments: - @dbal.conn + - %tables.groups% tags: - { name: text_reparser.plugin } @@ -38,6 +41,7 @@ services: class: phpbb\textreparser\plugins\pm_text arguments: - @dbal.conn + - %tables.privmsgs% tags: - { name: text_reparser.plugin } @@ -52,6 +56,7 @@ services: class: phpbb\textreparser\plugins\poll_title arguments: - @dbal.conn + - %tables.topics% tags: - { name: text_reparser.plugin } @@ -59,6 +64,7 @@ services: class: phpbb\textreparser\plugins\post_text arguments: - @dbal.conn + - %tables.posts% tags: - { name: text_reparser.plugin } @@ -66,5 +72,6 @@ services: class: phpbb\textreparser\plugins\user_signature arguments: - @dbal.conn + - %tables.users% tags: - { name: text_reparser.plugin } diff --git a/phpBB/docs/events.md b/phpBB/docs/events.md index 81a43b5664..a785c6d81c 100644 --- a/phpBB/docs/events.md +++ b/phpBB/docs/events.md @@ -1,3 +1,15 @@ +acp_ban_cell_append +=== +* Location: adm/style/acp_ban.html +* Since: 3.1.7-RC1 +* Purpose: Add content at the end of the ban cell area + +acp_ban_cell_prepend +=== +* Location: adm/style/acp_ban.html +* Since: 3.1.7-RC1 +* Purpose: Add content at the start of the ban cell area + acp_bbcodes_actions_append === * Location: adm/style/acp_bbcodes.html @@ -16,6 +28,30 @@ acp_bbcodes_edit_fieldsets_after * Since: 3.1.0-a3 * Purpose: Add settings to BBCode add/edit form +acp_email_group_options_append +=== +* Location: adm/style/acp_email.html +* Since: 3.1.7-RC1 +* Purpose: Add content at the end of the group options select box + +acp_email_group_options_prepend +=== +* Location: adm/style/acp_email.html +* Since: 3.1.7-RC1 +* Purpose: Add content at the start of the group options select box + +acp_email_find_username_append +=== +* Location: adm/style/acp_email.html +* Since: 3.1.7-RC1 +* Purpose: Add content at the end of the fimd username link + +acp_email_find_username_prepend +=== +* Location: adm/style/acp_email.html +* Since: 3.1.7-RC1 +* Purpose: Add content at the start of the fimd username link + acp_email_options_after === * Location: adm/style/acp_email.html @@ -64,6 +100,18 @@ acp_forums_prune_settings_prepend * Since: 3.1.2-RC1 * Purpose: Add settings to forums before prune settings section +acp_forums_quick_select_button_append +=== +* Location: adm/style/acp_forums.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the quick select forum submit button + +acp_forums_quick_select_button_prepend +=== +* Location: adm/style/acp_forums.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the quick select forum submit button + acp_forums_rules_settings_append === * Location: adm/style/acp_forums.html @@ -88,6 +136,66 @@ acp_group_options_after * Since: 3.1.0-b4 * Purpose: Add addtional options to group settings (after GROUP_RECEIVE_PM) +acp_groups_find_username_append +=== +* Location: adm/style/acp_groups.html +* Since: 3.1.7-RC1 +* Purpose: Add content at the end of the find username link + +acp_groups_find_username_prepend +=== +* Location: adm/style/acp_groups.html +* Since: 3.1.7-RC1 +* Purpose: Add content at the start of the find username link + +acp_groups_manage_after +=== +* Location: adm/style/acp_groups.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the manage groups table + +acp_groups_manage_before +=== +* Location: adm/style/acp_groups.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the manage groups table + +acp_groups_position_legend_add_button_after +=== +* Location: adm/style/acp_groups_position.html +* Since: 3.1.7-RC1 +* Purpose: Add content after adding group to legend submit button + +acp_groups_position_legend_add_button_before +=== +* Location: adm/style/acp_groups_position.html +* Since: 3.1.7-RC1 +* Purpose: Add content before adding group to legend submit button + +acp_groups_position_teampage_add_button_after +=== +* Location: adm/style/acp_groups_position.html +* Since: 3.1.7-RC1 +* Purpose: Add content after adding group to teampage submit button + +acp_groups_position_teampage_add_button_before +=== +* Location: adm/style/acp_groups_position.html +* Since: 3.1.7-RC1 +* Purpose: Add content before adding group to teampage submit button + +acp_logs_quick_select_forum_button_append +=== +* Location: adm/style/acp_logs.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the quick forum select form submit button + +acp_logs_quick_select_forum_button_prepend +=== +* Location: adm/style/acp_logs.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the quick forum select form submit button + acp_main_actions_append === * Location: adm/style/acp_main.html @@ -125,6 +233,102 @@ acp_overall_header_stylesheets_after * Purpose: Add assets after stylesheets within the `<head>` tags in the ACP. Note that INCLUDECSS will not work with this event. +acp_permission_forum_copy_src_forum_append +=== +* Location: adm/style/permission_forum_copy.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the sourse forum select form + +acp_permission_forum_copy_src_forum_prepend +=== +* Location: adm/style/permission_forum_copy.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the sourse forum select form + +acp_permission_forum_copy_dest_forum_append +=== +* Location: adm/style/permission_forum_copy.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the destiny forum select form + +acp_permission_forum_copy_dest_forum_prepend +=== +* Location: adm/style/permission_forum_copy.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the destiny forum select form + +acp_permissions_add_group_options_append +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the group multiple select form + +acp_permissions_add_group_options_prepend +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the group multiple select form + +acp_permissions_find_username_append +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the find username link + +acp_permissions_find_username_prepend +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the find username link + +acp_permissions_select_forum_append +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the forum select form label + +acp_permissions_select_forum_prepend +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the forum select form label + +acp_permissions_select_group_after +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the group select form in usergroup view + +acp_permissions_select_group_append +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the group select form label + +acp_permissions_select_group_before +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the group select form in usergroup view + +acp_permissions_select_group_prepend +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the group select form label + +acp_permissions_select_multiple_forum_append +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the forum multiple select form label + +acp_permissions_select_multiple_forum_prepend +=== +* Location: adm/style/acp_permissions.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the forum multiple select form label + acp_posting_buttons_after === * Locations: @@ -146,6 +350,34 @@ acp_profile_contact_before * Since: 3.1.6-RC1 * Purpose: Add extra options to custom profile field configuration in the ACP +acp_prune_forums_append +=== +* Locations: + + adm/style/acp_prune_forums.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the forum select form label + +acp_prune_forums_prepend +=== +* Locations: + + adm/style/acp_prune_forums.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the forum select form label + +acp_prune_users_find_username_append +=== +* Locations: + + adm/style/acp_prune_users.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the find username link + +acp_prune_users_find_username_prepend +=== +* Locations: + + adm/style/acp_prune_users.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the find username link + acp_ranks_edit_after === * Locations: @@ -297,6 +529,18 @@ acp_users_prefs_view_prepend * Since: 3.1.0-b3 * Purpose: Add user options fieldset to the top of ACP users view prefs settings +acp_users_select_group_after +=== +* Location: adm/style/acp_users.html +* Since: 3.1.7-RC1 +* Purpose: Add content after group select form + +acp_users_select_group_before +=== +* Location: adm/style/acp_users.html +* Since: 3.1.7-RC1 +* Purpose: Add content before group select form + attachment_file_after === * Locations: @@ -1184,6 +1428,13 @@ quickreply_editor_subject_before * Since: 3.1.7-RC1 * Purpose: Add content before the quick reply subject textbox +search_body_form_after +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the search form + search_body_form_before === * Locations: @@ -1191,6 +1442,90 @@ search_body_form_before * Since: 3.1.5-RC1 * Purpose: Add content before the search form +search_body_recent_search_after +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the recent search queries list + +search_body_recent_search_before +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the recent search queries list + +search_body_search_display_options_append +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Put content at the bottom of the search query display options fields set + +search_body_search_display_options_prepend +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Put content at the top of the search query display options fields set + +search_body_search_options_after +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the search query options fields set + +search_body_search_options_append +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Put content at the bottom of the search query options fields set + +search_body_search_options_before +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the search query options fields set + +search_body_search_options_prepend +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Put content at the top of the search query options fields set + +search_body_search_query_after +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Add content after the search query fields set + +search_body_search_query_append +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Put content at the bottom of the search query fields set + +search_body_search_query_before +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Add content before the search query fields set + +search_body_search_query_prepend +=== +* Locations: + + styles/prosilver/template/search_body.html +* Since: 3.1.7-RC1 +* Purpose: Put content at the top of the search query fields set + search_results_header_after === * Locations: @@ -1883,6 +2218,13 @@ viewtopic_body_post_buttons_list_before * Purpose: Add post button custom list to posts (next to edit, quote etc), before the original list. +viewtopic_body_post_subject_before +=== +* Locations: + + styles/prosilver/template/viewtopic_body.html +* Since: 3.1.7-RC1 +* Purpose: Add data before post icon and subject + viewtopic_body_postrow_custom_fields_after === * Locations: diff --git a/phpBB/includes/acp/acp_captcha.php b/phpBB/includes/acp/acp_captcha.php index 1f6fbc2cae..9a3b86a16a 100644 --- a/phpBB/includes/acp/acp_captcha.php +++ b/phpBB/includes/acp/acp_captcha.php @@ -25,7 +25,7 @@ class acp_captcha function main($id, $mode) { - global $db, $user, $auth, $template, $phpbb_log, $request; + global $user, $auth, $template, $phpbb_log, $request; global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx, $phpbb_container; $user->add_lang('acp/board'); @@ -53,11 +53,36 @@ class acp_captcha else { $config_vars = array( - 'enable_confirm' => array('tpl' => 'REG_ENABLE', 'default' => false), - 'enable_post_confirm' => array('tpl' => 'POST_ENABLE', 'default' => false), - 'confirm_refresh' => array('tpl' => 'CONFIRM_REFRESH', 'default' => false), - 'max_reg_attempts' => array('tpl' => 'REG_LIMIT', 'default' => 0), - 'max_login_attempts' => array('tpl' => 'MAX_LOGIN_ATTEMPTS', 'default' => 0), + 'enable_confirm' => array( + 'tpl' => 'REG_ENABLE', + 'default' => false, + 'validate' => 'bool', + 'lang' => 'VISUAL_CONFIRM_REG', + ), + 'enable_post_confirm' => array( + 'tpl' => 'POST_ENABLE', + 'default' => false, + 'validate' => 'bool', + 'lang' => 'VISUAL_CONFIRM_POST', + ), + 'confirm_refresh' => array( + 'tpl' => 'CONFIRM_REFRESH', + 'default' => false, + 'validate' => 'bool', + 'lang' => 'VISUAL_CONFIRM_REFRESH', + ), + 'max_reg_attempts' => array( + 'tpl' => 'REG_LIMIT', + 'default' => 0, + 'validate' => 'int:0:99999', + 'lang' => 'REG_LIMIT', + ), + 'max_login_attempts' => array( + 'tpl' => 'MAX_LOGIN_ATTEMPTS', + 'default' => 0, + 'validate' => 'int:0:99999', + 'lang' => 'MAX_LOGIN_ATTEMPTS', + ), ); $this->tpl_name = 'acp_captcha'; @@ -66,12 +91,31 @@ class acp_captcha add_form_key($form_key); $submit = $request->variable('main_submit', false); + $error = $cfg_array = array(); - if ($submit && check_form_key($form_key)) + if ($submit) { foreach ($config_vars as $config_var => $options) { - $config->set($config_var, $request->variable($config_var, $options['default'])); + $cfg_array[$config_var] = $request->variable($config_var, $options['default']); + } + validate_config_vars($config_vars, $cfg_array, $error); + + if (!check_form_key($form_key)) + { + $error[] = $user->lang['FORM_INVALID']; + } + if ($error) + { + $submit = false; + } + } + + if ($submit) + { + foreach ($cfg_array as $key => $value) + { + $config->set($key, $value); } if ($selected !== $config['captcha_plugin']) @@ -95,10 +139,6 @@ class acp_captcha } trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action)); } - else if ($submit) - { - trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING); - } else { $captcha_select = ''; @@ -125,6 +165,7 @@ class acp_captcha 'CAPTCHA_PREVIEW_TPL' => $demo_captcha->get_demo_template($id), 'S_CAPTCHA_HAS_CONFIG' => $demo_captcha->has_config(), 'CAPTCHA_SELECT' => $captcha_select, + 'ERROR_MSG' => implode('<br />', $error), 'U_ACTION' => $this->u_action, )); diff --git a/phpBB/includes/functions_privmsgs.php b/phpBB/includes/functions_privmsgs.php index b2928d5df8..a54770812e 100644 --- a/phpBB/includes/functions_privmsgs.php +++ b/phpBB/includes/functions_privmsgs.php @@ -1596,7 +1596,7 @@ function get_folder_status($folder_id, $folder) 'percent' => ($user->data['message_limit']) ? (($user->data['message_limit'] > 0) ? floor(($folder['num_messages'] / $user->data['message_limit']) * 100) : 100) : 0, ); - $return['message'] = $user->lang('FOLDER_STATUS_MSG', $user->lang('MESSAGES_COUNT', (int) $return['max']), $return['cur'], $return['percent']); + $return['message'] = $user->lang('FOLDER_STATUS_MSG', $user->lang('MESSAGES_COUNT', (int) $return['max']), (int) $return['cur'], $return['percent']); return $return; } diff --git a/phpBB/includes/mcp/mcp_post.php b/phpBB/includes/mcp/mcp_post.php index e59f0abb04..33aebccb22 100644 --- a/phpBB/includes/mcp/mcp_post.php +++ b/phpBB/includes/mcp/mcp_post.php @@ -549,16 +549,6 @@ function change_poster(&$post_info, $userdata) $from_username = $post_info['username']; $to_username = $userdata['username']; - // Renew post info - $post_info = phpbb_get_post_data(array($post_id), false, true); - - if (!sizeof($post_info)) - { - trigger_error('POST_NOT_EXIST'); - } - - $post_info = $post_info[$post_id]; - /** * This event allows you to perform additional tasks after changing a post's poster * @@ -566,10 +556,21 @@ function change_poster(&$post_info, $userdata) * @var array userdata Information on a post's new poster * @var array post_info Information on the affected post * @since 3.1.6-RC1 + * @changed 3.1.7-RC1 Change location to prevent post_info from being set to the new post information */ $vars = array('userdata', 'post_info'); extract($phpbb_dispatcher->trigger_event('core.mcp_change_poster_after', compact($vars))); + // Renew post info + $post_info = phpbb_get_post_data(array($post_id), false, true); + + if (!sizeof($post_info)) + { + trigger_error('POST_NOT_EXIST'); + } + + $post_info = $post_info[$post_id]; + // Now add log entry $phpbb_log->add('mod', $user->data['user_id'], $user->ip, 'LOG_MCP_CHANGE_POSTER', false, array( 'forum_id' => $post_info['forum_id'], diff --git a/phpBB/index.php b/phpBB/index.php index 73a5989bcb..9939b9ba7f 100644 --- a/phpBB/index.php +++ b/phpBB/index.php @@ -123,7 +123,7 @@ $db->sql_freeresult($result); $legend = implode($user->lang['COMMA_SEPARATOR'], $legend); // Generate birthday list if required ... -$birthday_list = array(); +$birthdays = $birthday_list = array(); if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel')) { $time = $user->create_datetime(); @@ -136,33 +136,66 @@ if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets(' $leap_year_birthdays = " OR u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', 29, 2)) . "%'"; } - $sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday - FROM ' . USERS_TABLE . ' u - LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid) - WHERE (b.ban_id IS NULL - OR b.ban_exclude = 1) + $sql_ary = array( + 'SELECT' => 'u.user_id, u.username, u.user_colour, u.user_birthday', + 'FROM' => array( + USERS_TABLE => 'u', + ), + 'LEFT_JOIN' => array( + array( + 'FROM' => array(BANLIST_TABLE => 'b'), + 'ON' => 'u.user_id = b.ban_userid', + ), + ), + 'WHERE' => "(b.ban_id IS NULL OR b.ban_exclude = 1) AND (u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' $leap_year_birthdays) - AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')'; + AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')', + ); + + /** + * Event to modify the SQL query to get birthdays data + * + * @event core.index_modify_birthdays_sql + * @var array now The assoc array with the 'now' local timestamp data + * @var array sql_ary The SQL array to get the birthdays data + * @var object time The user related Datetime object + * @since 3.1.7-RC1 + */ + $vars = array('now', 'sql_ary', 'time'); + extract($phpbb_dispatcher->trigger_event('core.index_modify_birthdays_sql', compact($vars))); + + $sql = $db->sql_build_query('SELECT', $sql_ary); $result = $db->sql_query($sql); + $rows = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); - while ($row = $db->sql_fetchrow($result)) + foreach ($rows as $row) { $birthday_username = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']); $birthday_year = (int) substr($row['user_birthday'], -4); $birthday_age = ($birthday_year) ? max(0, $now['year'] - $birthday_year) : ''; - $template->assign_block_vars('birthdays', array( + $birthdays[] = array( 'USERNAME' => $birthday_username, 'AGE' => $birthday_age, - )); + ); // For 3.0 compatibility - if ($age = (int) substr($row['user_birthday'], -4)) - { - $birthday_list[] = $birthday_username . (($birthday_year) ? ' (' . $birthday_age . ')' : ''); - } + $birthday_list[] = $birthday_username . (($birthday_age) ? " ({$birthday_age})" : ''); } - $db->sql_freeresult($result); + + /** + * Event to modify the birthdays list + * + * @event core.index_modify_birthdays_list + * @var array birthdays Array with the users birhtdays data + * @var array rows Array with the birhtdays SQL query result + * @since 3.1.7-RC1 + */ + $vars = array('birthdays', 'rows'); + extract($phpbb_dispatcher->trigger_event('core.index_modify_birthdays_list', compact($vars))); + + $template->assign_block_vars_array('birthdays', $birthdays); } // Assign index specific vars diff --git a/phpBB/install/phpbbcli.php b/phpBB/install/phpbbcli.php index ecdb66ade3..e36922f1a5 100644..100755 --- a/phpBB/install/phpbbcli.php +++ b/phpBB/install/phpbbcli.php @@ -12,6 +12,8 @@ * */ +use Symfony\Component\Console\Input\ArgvInput; + if (php_sapi_name() !== 'cli') { echo 'This program must be run from the command line.' . PHP_EOL; @@ -31,6 +33,8 @@ $startup_new_path = $phpbb_root_path . 'install/update/update/new/install/startu $startup_path = (file_exists($startup_new_path)) ? $startup_new_path : $phpbb_root_path . 'install/startup.' . $phpEx; require($startup_path); +$input = new ArgvInput(); + /** @var \phpbb\filesystem\filesystem $phpbb_filesystem */ $phpbb_filesystem = $phpbb_installer_container->get('filesystem'); diff --git a/phpBB/language/en/acp/common.php b/phpBB/language/en/acp/common.php index fdbc4aebd0..1a6168b63f 100644 --- a/phpBB/language/en/acp/common.php +++ b/phpBB/language/en/acp/common.php @@ -231,6 +231,7 @@ $lang = array_merge($lang, array( 'CRON_NO_SUCH_TASK' => 'Could not find cron task “%s”.', 'CRON_NO_TASK' => 'No cron tasks need to be run right now.', 'CRON_NO_TASKS' => 'No cron tasks could be found.', + 'CURRENT_VERSION' => 'Current version', 'DEACTIVATE' => 'Deactivate', 'DIRECTORY_DOES_NOT_EXIST' => 'The entered path “%s” does not exist.', @@ -256,6 +257,7 @@ $lang = array_merge($lang, array( 'IP' => 'User IP', 'IP_HOSTNAME' => 'IP addresses or hostnames', + 'LATEST_VERSION' => 'Latest version', 'LOAD_NOTIFICATIONS' => 'Display Notifications', 'LOAD_NOTIFICATIONS_EXPLAIN' => 'Display the notifications list on every page (typically in the header).', 'LOGGED_IN_AS' => 'You are logged in as:', @@ -288,6 +290,7 @@ $lang = array_merge($lang, array( 'PERMISSIONS_TRANSFERRED_EXPLAIN' => 'You currently have the permissions from %1$s. You are able to browse the board with this user’s permissions, but not access the administration control panel since admin permissions were not transferred. You can <a href="%2$s"><strong>revert to your permission set</strong></a> at any time.', 'PROCEED_TO_ACP' => '%sProceed to the ACP%s', + 'RELEASE_ANNOUNCEMENT' => 'Announcement', 'REMIND' => 'Remind', 'RESYNC' => 'Resynchronise', @@ -420,6 +423,11 @@ $lang = array_merge($lang, array( 'VALUE' => 'Value', 'VERSIONCHECK_FAIL' => 'Failed to obtain latest version information.', 'VERSIONCHECK_FORCE_UPDATE' => 'Re-Check version', + 'VERSION_CHECK' => 'Version check', + 'VERSION_CHECK_EXPLAIN' => 'Checks to see if your phpBB installation is up to date.', + 'VERSION_NOT_UP_TO_DATE_ACP' => 'Your phpBB installation is not up to date.<br />Below is a link to the release announcement, which contains more information as well as instructions on updating.', + 'VERSION_NOT_UP_TO_DATE_TITLE' => 'Your phpBB installation is not up to date.', + 'VERSION_UP_TO_DATE_ACP' => 'Your phpBB installation is up to date. There are no updates available at this time.', 'VIEW_ADMIN_LOG' => 'View administrator log', 'VIEW_INACTIVE_USERS' => 'View inactive users', diff --git a/phpBB/language/en/install.php b/phpBB/language/en/install.php index a42e868aee..6097bd66bb 100644 --- a/phpBB/language/en/install.php +++ b/phpBB/language/en/install.php @@ -312,6 +312,8 @@ $lang = array_merge($lang, array( 'CLI_INSTALL_SHOW_CONFIG' => 'Show the configuration which will be used', 'CLI_INSTALL_VALIDATE_CONFIG' => 'Validate a configuration file', 'CLI_CONFIG_FILE' => 'Config file to use', + 'MISSING_FILE' => 'Unable to access file %1$s', + 'INVALID_YAML_FILE' => 'Could not parse YAML file %1$s', )); // Common updater messages diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index c4865ab3c2..c7762d4cef 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1574,12 +1574,12 @@ switch ($mode) 'U_HIDE_FIND_MEMBER' => ($mode == 'searchuser' || ($mode == '' && $submit)) ? $u_hide_find_member : '', 'U_LIVE_SEARCH' => ($config['allow_live_searches']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=livesearch') : false, 'U_SORT_USERNAME' => $sort_url . '&sk=a&sd=' . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_JOINED' => $sort_url . '&sk=c&sd=' . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_POSTS' => $sort_url . '&sk=d&sd=' . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_EMAIL' => $sort_url . '&sk=e&sd=' . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_ACTIVE' => ($auth->acl_get('u_viewonline')) ? $sort_url . '&sk=l&sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a') : '', - 'U_SORT_RANK' => $sort_url . '&sk=m&sd=' . (($sort_key == 'm' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_LIST_CHAR' => $sort_url . '&sk=a&sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_JOINED' => $sort_url . '&sk=c&sd=' . (($sort_key == 'c' && $sort_dir == 'd') ? 'a' : 'd'), + 'U_SORT_POSTS' => $sort_url . '&sk=d&sd=' . (($sort_key == 'd' && $sort_dir == 'd') ? 'a' : 'd'), + 'U_SORT_EMAIL' => $sort_url . '&sk=e&sd=' . (($sort_key == 'e' && $sort_dir == 'd') ? 'a' : 'd'), + 'U_SORT_ACTIVE' => ($auth->acl_get('u_viewonline')) ? $sort_url . '&sk=l&sd=' . (($sort_key == 'l' && $sort_dir == 'd') ? 'a' : 'd') : '', + 'U_SORT_RANK' => $sort_url . '&sk=m&sd=' . (($sort_key == 'm' && $sort_dir == 'd') ? 'a' : 'd'), + 'U_LIST_CHAR' => $sort_url . '&sk=a&sd=' . (($sort_key == 'l' && $sort_dir == 'd') ? 'a' : 'd'), 'S_SHOW_GROUP' => ($mode == 'group') ? true : false, 'S_VIEWONLINE' => $auth->acl_get('u_viewonline'), diff --git a/phpBB/phpbb/db/migration/tool/module.php b/phpBB/phpbb/db/migration/tool/module.php index 69ac71abb7..a5ed62fd65 100644 --- a/phpBB/phpbb/db/migration/tool/module.php +++ b/phpBB/phpbb/db/migration/tool/module.php @@ -262,7 +262,7 @@ class module implements \phpbb\db\migration\tool\tool_interface // Success $module_log_name = ((isset($this->user->lang[$data['module_langname']])) ? $this->user->lang[$data['module_langname']] : $data['module_langname']); - $phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_MODULE_ADD', false, array($module_log_name)); + $phpbb_log->add('admin', (isset($user->data['user_id'])) ? $user->data['user_id'] : ANONYMOUS, $user->ip, 'LOG_MODULE_ADD', false, array($module_log_name)); // Move the module if requested above/below an existing one if (isset($data['before']) && $data['before']) diff --git a/phpBB/phpbb/files/upload.php b/phpBB/phpbb/files/upload.php index e011e714e5..a9bf74094d 100644 --- a/phpBB/phpbb/files/upload.php +++ b/phpBB/phpbb/files/upload.php @@ -65,9 +65,6 @@ class upload /** @var request_interface Request class */ protected $request; - /** @var string phpBB root path */ - protected $phpbb_root_path; - /** * Init file upload class. * @@ -76,16 +73,14 @@ class upload * @param language $language Language class * @param \bantu\IniGetWrapper\IniGetWrapper $php_ini ini_get() wrapper * @param request_interface $request Request class - * @param string $phpbb_root_path phpBB root path */ - public function __construct(filesystem_interface $filesystem, factory $factory, language $language, \bantu\IniGetWrapper\IniGetWrapper $php_ini, request_interface $request, $phpbb_root_path) + public function __construct(filesystem_interface $filesystem, factory $factory, language $language, \bantu\IniGetWrapper\IniGetWrapper $php_ini, request_interface $request) { $this->filesystem = $filesystem; $this->factory = $factory; $this->language = $language; $this->php_ini = $php_ini; $this->request = $request; - $this->phpbb_root_path = $phpbb_root_path; } /** diff --git a/phpBB/phpbb/install/console/command/install/config/show.php b/phpBB/phpbb/install/console/command/install/config/show.php index 4155440fc3..5d82d8d1ef 100644 --- a/phpBB/phpbb/install/console/command/install/config/show.php +++ b/phpBB/phpbb/install/console/command/install/config/show.php @@ -96,7 +96,7 @@ class show extends \phpbb\console\command\command if (!is_file($config_file)) { - $iohandler->add_error_message(array('MISSING_FILE', array($config_file))); + $iohandler->add_error_message(array('MISSING_FILE', $config_file)); return; } diff --git a/phpBB/phpbb/install/console/command/install/install.php b/phpBB/phpbb/install/console/command/install/install.php index 81ad1039f6..d76182af92 100644 --- a/phpBB/phpbb/install/console/command/install/install.php +++ b/phpBB/phpbb/install/console/command/install/install.php @@ -116,7 +116,7 @@ class install extends \phpbb\console\command\command if (!is_file($config_file)) { - $iohandler->add_error_message(array('MISSING_FILE', array($config_file))); + $iohandler->add_error_message(array('MISSING_FILE', $config_file)); return 1; } @@ -127,7 +127,7 @@ class install extends \phpbb\console\command\command } catch (ParseException $e) { - $iohandler->add_error_message('INVALID_YAML_FILE'); + $iohandler->add_error_message(array('INVALID_YAML_FILE', $config_file)); return 1; } diff --git a/phpBB/phpbb/install/module/install_data/task/add_bots.php b/phpBB/phpbb/install/module/install_data/task/add_bots.php index b45d3808db..2ee641ff63 100644 --- a/phpBB/phpbb/install/module/install_data/task/add_bots.php +++ b/phpBB/phpbb/install/module/install_data/task/add_bots.php @@ -197,6 +197,11 @@ class add_bots extends \phpbb\install\task_base 'user_allow_pm' => 0, ); + if (!function_exists('user_add')) + { + include($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext); + } + $user_id = user_add($user_row); if (!$user_id) diff --git a/phpBB/phpbb/install/module/update_database/task/update.php b/phpBB/phpbb/install/module/update_database/task/update.php index 2d640134a3..84ec6f73f5 100644 --- a/phpBB/phpbb/install/module/update_database/task/update.php +++ b/phpBB/phpbb/install/module/update_database/task/update.php @@ -172,7 +172,7 @@ class update extends task_base { $this->log->add( 'admin', - $this->user->data['user_id'], + (isset($this->user->data['user_id'])) ? $this->user->data['user_id'] : ANONYMOUS, $this->user->ip, 'LOG_UPDATE_DATABASE', false, diff --git a/phpBB/phpbb/textreparser/plugins/forum_description.php b/phpBB/phpbb/textreparser/plugins/forum_description.php index 0302dc3082..b0f5a42452 100644 --- a/phpBB/phpbb/textreparser/plugins/forum_description.php +++ b/phpBB/phpbb/textreparser/plugins/forum_description.php @@ -27,12 +27,4 @@ class forum_description extends \phpbb\textreparser\row_based_plugin 'options' => 'forum_desc_options', ); } - - /** - * {@inheritdoc} - */ - public function get_table_name() - { - return FORUMS_TABLE; - } } diff --git a/phpBB/phpbb/textreparser/plugins/forum_rules.php b/phpBB/phpbb/textreparser/plugins/forum_rules.php index ce550225f2..d131d00707 100644 --- a/phpBB/phpbb/textreparser/plugins/forum_rules.php +++ b/phpBB/phpbb/textreparser/plugins/forum_rules.php @@ -27,12 +27,4 @@ class forum_rules extends \phpbb\textreparser\row_based_plugin 'options' => 'forum_rules_options', ); } - - /** - * {@inheritdoc} - */ - public function get_table_name() - { - return FORUMS_TABLE; - } } diff --git a/phpBB/phpbb/textreparser/plugins/group_description.php b/phpBB/phpbb/textreparser/plugins/group_description.php index 3346ccf25e..2c45c00474 100644 --- a/phpBB/phpbb/textreparser/plugins/group_description.php +++ b/phpBB/phpbb/textreparser/plugins/group_description.php @@ -27,12 +27,4 @@ class group_description extends \phpbb\textreparser\row_based_plugin 'options' => 'group_desc_options', ); } - - /** - * {@inheritdoc} - */ - public function get_table_name() - { - return GROUPS_TABLE; - } } diff --git a/phpBB/phpbb/textreparser/plugins/pm_text.php b/phpBB/phpbb/textreparser/plugins/pm_text.php index 4d06a2878b..867da624ee 100644 --- a/phpBB/phpbb/textreparser/plugins/pm_text.php +++ b/phpBB/phpbb/textreparser/plugins/pm_text.php @@ -29,12 +29,4 @@ class pm_text extends \phpbb\textreparser\row_based_plugin 'bbcode_uid' => 'bbcode_uid', ); } - - /** - * {@inheritdoc} - */ - public function get_table_name() - { - return PRIVMSGS_TABLE; - } } diff --git a/phpBB/phpbb/textreparser/plugins/poll_title.php b/phpBB/phpbb/textreparser/plugins/poll_title.php index 038ae0c366..76d30655c9 100644 --- a/phpBB/phpbb/textreparser/plugins/poll_title.php +++ b/phpBB/phpbb/textreparser/plugins/poll_title.php @@ -39,12 +39,4 @@ class poll_title extends \phpbb\textreparser\row_based_plugin return $sql; } - - /** - * {@inheritdoc} - */ - public function get_table_name() - { - return TOPICS_TABLE; - } } diff --git a/phpBB/phpbb/textreparser/plugins/post_text.php b/phpBB/phpbb/textreparser/plugins/post_text.php index 4a07c98cea..1c98e86067 100644 --- a/phpBB/phpbb/textreparser/plugins/post_text.php +++ b/phpBB/phpbb/textreparser/plugins/post_text.php @@ -29,12 +29,4 @@ class post_text extends \phpbb\textreparser\row_based_plugin 'bbcode_uid' => 'bbcode_uid', ); } - - /** - * {@inheritdoc} - */ - public function get_table_name() - { - return POSTS_TABLE; - } } diff --git a/phpBB/phpbb/textreparser/plugins/user_signature.php b/phpBB/phpbb/textreparser/plugins/user_signature.php index f657a45d38..647d3a7b14 100644 --- a/phpBB/phpbb/textreparser/plugins/user_signature.php +++ b/phpBB/phpbb/textreparser/plugins/user_signature.php @@ -55,14 +55,6 @@ class user_signature extends \phpbb\textreparser\row_based_plugin } /** - * {@inheritdoc} - */ - public function get_table_name() - { - return USERS_TABLE; - } - - /** * Save the keyoptions var from \phpbb\user */ protected function save_keyoptions() diff --git a/phpBB/phpbb/textreparser/row_based_plugin.php b/phpBB/phpbb/textreparser/row_based_plugin.php index d3ca334591..2d32104493 100644 --- a/phpBB/phpbb/textreparser/row_based_plugin.php +++ b/phpBB/phpbb/textreparser/row_based_plugin.php @@ -21,13 +21,20 @@ abstract class row_based_plugin extends base protected $db; /** + * @var string + */ + protected $table; + + /** * Constructor * * @param \phpbb\db\driver\driver_interface $db Database connection + * @param string $table */ - public function __construct(\phpbb\db\driver\driver_interface $db) + public function __construct(\phpbb\db\driver\driver_interface $db, $table) { $this->db = $db; + $this->table = $table; } /** @@ -38,20 +45,13 @@ abstract class row_based_plugin extends base abstract public function get_columns(); /** - * Return the name of the table used by this plugin - * - * @return string - */ - abstract public function get_table_name(); - - /** * {@inheritdoc} */ public function get_max_id() { $columns = $this->get_columns(); - $sql = 'SELECT MAX(' . $columns['id'] . ') AS max_id FROM ' . $this->get_table_name(); + $sql = 'SELECT MAX(' . $columns['id'] . ') AS max_id FROM ' . $this->table; $result = $this->db->sql_query($sql); $max_id = (int) $this->db->sql_fetchfield('max_id'); $this->db->sql_freeresult($result); @@ -96,7 +96,7 @@ abstract class row_based_plugin extends base } $sql = 'SELECT ' . implode(', ', $fields) . ' - FROM ' . $this->get_table_name() . ' + FROM ' . $this->table . ' WHERE ' . $columns['id'] . ' BETWEEN ' . $min_id . ' AND ' . $max_id; return $sql; @@ -109,7 +109,7 @@ abstract class row_based_plugin extends base { $columns = $this->get_columns(); - $sql = 'UPDATE ' . $this->get_table_name() . ' + $sql = 'UPDATE ' . $this->table . ' SET ' . $columns['text'] . " = '" . $this->db->sql_escape($record['text']) . "' WHERE " . $columns['id'] . ' = ' . $record['id']; $this->db->sql_query($sql); diff --git a/phpBB/styles/prosilver/template/ajax.js b/phpBB/styles/prosilver/template/ajax.js index e3780f024a..aec6b0bbe6 100644 --- a/phpBB/styles/prosilver/template/ajax.js +++ b/phpBB/styles/prosilver/template/ajax.js @@ -87,7 +87,7 @@ phpbb.addAjaxCallback('mark_topics_read', function(res, updateTopicLinks) { }); // Remove link to first unread post - $('a').has('span.icon_topic_newest').remove(); + $('a.unread').has('.icon-red').remove(); // Update mark topics read links if (updateTopicLinks) { diff --git a/phpBB/styles/prosilver/template/search_body.html b/phpBB/styles/prosilver/template/search_body.html index 8d56a103d2..618e2680ba 100644 --- a/phpBB/styles/prosilver/template/search_body.html +++ b/phpBB/styles/prosilver/template/search_body.html @@ -9,7 +9,9 @@ <div class="inner"> <h3>{L_SEARCH_QUERY}</h3> + <!-- EVENT search_body_search_query_before --> <fieldset> + <!-- EVENT search_body_search_query_prepend --> <dl> <dt><label for="keywords">{L_SEARCH_KEYWORDS}{L_COLON}</label><br /><span>{L_SEARCH_KEYWORDS_EXPLAIN}</span></dt> <dd><input type="search" class="inputbox" name="keywords" id="keywords" size="40" title="{L_SEARCH_KEYWORDS}" /></dd> @@ -20,7 +22,9 @@ <dt><label for="author">{L_SEARCH_AUTHOR}{L_COLON}</label><br /><span>{L_SEARCH_AUTHOR_EXPLAIN}</span></dt> <dd><input type="search" class="inputbox" name="author" id="author" size="40" title="{L_SEARCH_AUTHOR}" /></dd> </dl> + <!-- EVENT search_body_search_query_append --> </fieldset> + <!-- EVENT search_body_search_query_after --> </div> </div> @@ -30,7 +34,9 @@ <h3>{L_SEARCH_OPTIONS}</h3> + <!-- EVENT search_body_search_options_before --> <fieldset> + <!-- EVENT search_body_search_options_prepend --> <dl> <dt><label for="search_forum">{L_SEARCH_FORUMS}{L_COLON}</label><br /><span>{L_SEARCH_FORUMS_EXPLAIN}</span></dt> <dd><select name="fid[]" id="search_forum" multiple="multiple" size="8" title="{L_SEARCH_FORUMS}">{S_FORUM_OPTIONS}</select></dd> @@ -49,9 +55,11 @@ <dd><label for="sf3"><input type="radio" name="sf" id="sf3" value="titleonly" /> {L_SEARCH_TITLE_ONLY}</label></dd> <dd><label for="sf4"><input type="radio" name="sf" id="sf4" value="firstpost" /> {L_SEARCH_FIRST_POST}</label></dd> </dl> + <!-- EVENT search_body_search_options_append --> <hr class="dashed" /> + <!-- EVENT search_body_search_display_options_prepend --> <dl> <dt><label for="show_results1">{L_DISPLAY_RESULTS}{L_COLON}</label></dt> <dd> @@ -74,7 +82,9 @@ <dt><label>{L_RETURN_FIRST}{L_COLON}</label></dt> <dd><select name="ch" title="{L_RETURN_FIRST}">{S_CHARACTER_OPTIONS}</select> {L_POST_CHARACTERS}</dd> </dl> + <!-- EVENT search_body_search_display_options_append --> </fieldset> + <!-- EVENT search_body_search_options_after --> </div> </div> @@ -91,7 +101,9 @@ </div> </form> +<!-- EVENT search_body_form_after --> +<!-- EVENT search_body_recent_search_before --> <!-- IF .recentsearch --> <div class="forumbg forumbg-table"> <div class="inner"> @@ -119,5 +131,6 @@ </div> </div> <!-- ENDIF --> +<!-- EVENT search_body_recent_search_after --> <!-- INCLUDE overall_footer.html --> diff --git a/phpBB/styles/prosilver/template/search_results.html b/phpBB/styles/prosilver/template/search_results.html index c63415915b..052da31a88 100644 --- a/phpBB/styles/prosilver/template/search_results.html +++ b/phpBB/styles/prosilver/template/search_results.html @@ -84,7 +84,7 @@ <!-- EVENT topiclist_row_prepend --> <!-- IF searchresults.S_UNREAD_TOPIC and not S_IS_BOT --> - <a href="{searchresults.U_NEWEST_POST}"> + <a class="unread" href="{searchresults.U_NEWEST_POST}"> <i class="icon fa-file fa-fw icon-red icon-md" aria-hidden="true"></i><span class="sr-only">{NEW_POST}</span> </a> <!-- ENDIF --> diff --git a/phpBB/styles/prosilver/template/ucp_main_bookmarks.html b/phpBB/styles/prosilver/template/ucp_main_bookmarks.html index 72d23e7da1..71e54c12eb 100644 --- a/phpBB/styles/prosilver/template/ucp_main_bookmarks.html +++ b/phpBB/styles/prosilver/template/ucp_main_bookmarks.html @@ -39,7 +39,7 @@ <!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}" class="row-item-link"></a><!-- ENDIF --> <div class="list-inner"> <!-- IF topicrow.S_UNREAD_TOPIC --> - <a href="{topicrow.U_NEWEST_POST}"> + <a class="unread" href="{topicrow.U_NEWEST_POST}"> <i class="icon fa-file fa-fw icon-red icon-md" aria-hidden="true"></i><span class="sr-only">{NEW_POST}</span> </a> <!-- ENDIF --><a href="{topicrow.U_VIEW_TOPIC}" class="topictitle">{topicrow.TOPIC_TITLE}</a> diff --git a/phpBB/styles/prosilver/template/ucp_main_front.html b/phpBB/styles/prosilver/template/ucp_main_front.html index 1351af914b..aaeb55729f 100644 --- a/phpBB/styles/prosilver/template/ucp_main_front.html +++ b/phpBB/styles/prosilver/template/ucp_main_front.html @@ -18,7 +18,7 @@ <!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}" class="row-item-link"></a><!-- ENDIF --> <div class="list-inner"> <!-- IF topicrow.S_UNREAD --> - <a href="{topicrow.U_NEWEST_POST}"> + <a class="unread" href="{topicrow.U_NEWEST_POST}"> <i class="icon fa-file fa-fw icon-red icon-md" aria-hidden="true"></i><span class="sr-only">{NEW_POST}</span> </a> <!-- ENDIF --> diff --git a/phpBB/styles/prosilver/template/ucp_main_subscribed.html b/phpBB/styles/prosilver/template/ucp_main_subscribed.html index 3405a44f60..6cf23bdf31 100644 --- a/phpBB/styles/prosilver/template/ucp_main_subscribed.html +++ b/phpBB/styles/prosilver/template/ucp_main_subscribed.html @@ -82,7 +82,7 @@ <!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}" class="row-item-link"></a><!-- ENDIF --> <div class="list-inner"> <!-- IF topicrow.S_UNREAD_TOPIC --> - <a href="{topicrow.U_NEWEST_POST}"> + <a class="unread" href="{topicrow.U_NEWEST_POST}"> <i class="icon fa-file fa-fw icon-red icon-md" aria-hidden="true"></i><span class="sr-only">{NEW_POST}</span> </a> <!-- ENDIF --><a href="{topicrow.U_VIEW_TOPIC}" class="topictitle">{topicrow.TOPIC_TITLE}</a> diff --git a/phpBB/styles/prosilver/template/viewforum_body.html b/phpBB/styles/prosilver/template/viewforum_body.html index f36e17369e..78d7111417 100644 --- a/phpBB/styles/prosilver/template/viewforum_body.html +++ b/phpBB/styles/prosilver/template/viewforum_body.html @@ -159,7 +159,7 @@ <div class="list-inner"> <!-- EVENT topiclist_row_prepend --> <!-- IF topicrow.S_UNREAD_TOPIC and not S_IS_BOT --> - <a href="{topicrow.U_NEWEST_POST}"> + <a class="unread" href="{topicrow.U_NEWEST_POST}"> <i class="icon fa-file fa-fw icon-red icon-md" aria-hidden="true"></i><span class="sr-only">{NEW_POST}</span> </a> <!-- ENDIF --> @@ -189,6 +189,13 @@ <!-- IF topicrow.REPLIES --><span class="responsive-show left-box" style="display: none;">{L_REPLIES}{L_COLON} <strong>{topicrow.REPLIES}</strong></span><!-- ENDIF --> <!-- ENDIF --> + <div class="responsive-hide"> + <!-- IF topicrow.S_HAS_POLL --><i class="icon fa-bar-chart fa-fw" aria-hidden="true"></i><!-- ENDIF --> + <!-- IF topicrow.ATTACH_ICON_IMG --><i class="icon fa-paperclip fa-fw" aria-hidden="true"></i><!-- ENDIF --> + {L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} » {topicrow.FIRST_POST_TIME} + <!-- IF topicrow.S_POST_GLOBAL and FORUM_ID != topicrow.FORUM_ID --> » {L_IN} <a href="{topicrow.U_VIEW_FORUM}">{topicrow.FORUM_NAME}</a><!-- ENDIF --> + </div> + <!-- IF .topicrow.pagination --> <div class="pagination"> <span><i class="icon fa-clone fa-fw" aria-hidden="true"></i></span> @@ -205,13 +212,6 @@ </div> <!-- ENDIF --> - <div class="responsive-hide"> - <!-- IF topicrow.S_HAS_POLL --><i class="icon fa-bar-chart fa-fw" aria-hidden="true"></i><!-- ENDIF --> - <!-- IF topicrow.ATTACH_ICON_IMG --><i class="icon fa-paperclip fa-fw" aria-hidden="true"></i><!-- ENDIF --> - {L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} » {topicrow.FIRST_POST_TIME} - <!-- IF topicrow.S_POST_GLOBAL and FORUM_ID != topicrow.FORUM_ID --> » {L_IN} <a href="{topicrow.U_VIEW_FORUM}">{topicrow.FORUM_NAME}</a><!-- ENDIF --> - </div> - <!-- EVENT topiclist_row_append --> </div> </dt> diff --git a/phpBB/styles/prosilver/template/viewtopic_body.html b/phpBB/styles/prosilver/template/viewtopic_body.html index 0c64adc305..e490dacb0a 100644 --- a/phpBB/styles/prosilver/template/viewtopic_body.html +++ b/phpBB/styles/prosilver/template/viewtopic_body.html @@ -222,6 +222,7 @@ <!-- ENDIF --> <div id="post_content{postrow.POST_ID}"<!-- IF postrow.S_POST_HIDDEN --> style="display: none;"<!-- ENDIF -->> + <!-- EVENT viewtopic_body_post_subject_before --> <h3 <!-- IF postrow.S_FIRST_ROW -->class="first"<!-- ENDIF -->><!-- IF postrow.POST_ICON_IMG --><img src="{T_ICONS_PATH}{postrow.POST_ICON_IMG}" width="{postrow.POST_ICON_IMG_WIDTH}" height="{postrow.POST_ICON_IMG_HEIGHT}" alt="{postrow.POST_ICON_IMG_ALT}" title="{postrow.POST_ICON_IMG_ALT}" /> <!-- ENDIF --><a href="#p{postrow.POST_ID}">{postrow.POST_SUBJECT}</a></h3> <!-- DEFINE $SHOW_POST_BUTTONS = (postrow.U_EDIT or postrow.U_DELETE or postrow.U_REPORT or postrow.U_WARN or postrow.U_INFO or postrow.U_QUOTE) --> @@ -283,7 +284,7 @@ <!-- IF S_IS_BOT --> <span><i class="icon fa-file fa-fw <!-- IF postrow.S_UNREAD_POST -->icon-red<!-- ELSE -->icon-lightgray<!-- ENDIF --> icon-md" aria-hidden="true"></i><span class="sr-only">{postrow.MINI_POST}</span></span> <!-- ELSE --> - <a href="{postrow.U_MINI_POST}" title="{postrow.MINI_POST}"> + <a class="unread" href="{postrow.U_MINI_POST}" title="{postrow.MINI_POST}"> <i class="icon fa-file fa-fw <!-- IF postrow.S_UNREAD_POST -->icon-red<!-- ELSE -->icon-lightgray<!-- ENDIF --> icon-md" aria-hidden="true"></i><span class="sr-only">{postrow.MINI_POST}</span> </a> <!-- ENDIF --> diff --git a/phpBB/styles/prosilver/theme/common.css b/phpBB/styles/prosilver/theme/common.css index e5a147f034..af8fa33632 100644 --- a/phpBB/styles/prosilver/theme/common.css +++ b/phpBB/styles/prosilver/theme/common.css @@ -807,7 +807,6 @@ fieldset.fields1 dl.pmlist dd.recipients { ---------------------------------------- */ .pagination { float: right; - margin-top: 3px; text-align: right; width: auto; } @@ -876,7 +875,7 @@ fieldset.fields1 dl.pmlist dd.recipients { /* Pagination in viewforum for multipage topics */ .row .pagination { display: block; - margin-top: 0; + margin-top: -12px; } .row .pagination > ul { diff --git a/phpBB/styles/prosilver/theme/content.css b/phpBB/styles/prosilver/theme/content.css index 6de5126ca1..ef18e26ef1 100644 --- a/phpBB/styles/prosilver/theme/content.css +++ b/phpBB/styles/prosilver/theme/content.css @@ -149,6 +149,10 @@ dl.row-item dt, dl.row-item dd { min-height: 35px; } +dl.row-item dt a { + display: inline; +} + dl a.row-item-link { /* topic row icon links */ display: block; width: 30px; diff --git a/phpBB/styles/prosilver/theme/links.css b/phpBB/styles/prosilver/theme/links.css index 02a4ae73a0..a018bbc792 100644 --- a/phpBB/styles/prosilver/theme/links.css +++ b/phpBB/styles/prosilver/theme/links.css @@ -73,6 +73,7 @@ a.topictitle { font-size: 1.2em; font-weight: bold; text-decoration: none; + display: inline; } a.topictitle:hover { diff --git a/phpBB/styles/prosilver/theme/responsive.css b/phpBB/styles/prosilver/theme/responsive.css index 826972fdac..6d74c5772e 100644 --- a/phpBB/styles/prosilver/theme/responsive.css +++ b/phpBB/styles/prosilver/theme/responsive.css @@ -280,6 +280,11 @@ margin: 5px 0 0; } + .row .pagination { + margin-top: 2px; + margin-bottom: 2px; + } + .row .pagination .ellipsis + li { display: none !important; } @@ -557,3 +562,22 @@ .postbody { width: 70%; } } +@media (min-width: 701px) and (max-width: 950px) { + .row .pagination { + margin-top: 2px; + margin-bottom: 2px; + } + + ul.topiclist dt { + margin-right: -410px; + } + + ul.topiclist dt .list-inner { + margin-right: 410px; + } + + dd.posts, dd.topics, dd.views { + width: 80px; + } +} + |