diff options
Diffstat (limited to 'phpBB')
75 files changed, 1269 insertions, 274 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/composer.lock b/phpBB/composer.lock index 5ea4af4d75..b85c590552 100644 --- a/phpBB/composer.lock +++ b/phpBB/composer.lock @@ -271,7 +271,7 @@ "Psr\\Log\\": "" } }, - "notification-url": "http://packagist.org/downloads/", + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -354,12 +354,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "647a2a148d8ce2847ea75e58608b0a89f5a1dd1b" + "reference": "f21c97aec1b5302d2dc0d17047ea8f4e4ff93aae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/647a2a148d8ce2847ea75e58608b0a89f5a1dd1b", - "reference": "647a2a148d8ce2847ea75e58608b0a89f5a1dd1b", + "url": "https://api.github.com/repos/symfony/config/zipball/f21c97aec1b5302d2dc0d17047ea8f4e4ff93aae", + "reference": "f21c97aec1b5302d2dc0d17047ea8f4e4ff93aae", "shasum": "" }, "require": { @@ -375,7 +375,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\Config\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -393,7 +396,7 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2015-10-11 08:29:26" + "time": "2015-11-23 20:38:01" }, { "name": "symfony/console", @@ -401,16 +404,17 @@ "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "89a795226477f66745e8ea10415e769304114920" + "reference": "ee86b4579c9e8ad3859cd33f3ef1572f85eda537" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/89a795226477f66745e8ea10415e769304114920", - "reference": "89a795226477f66745e8ea10415e769304114920", + "url": "https://api.github.com/repos/symfony/console/zipball/ee86b4579c9e8ad3859cd33f3ef1572f85eda537", + "reference": "ee86b4579c9e8ad3859cd33f3ef1572f85eda537", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.3.9", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { "psr/log": "~1.0", @@ -431,7 +435,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -449,7 +456,7 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2015-10-12 10:31:17" + "time": "2015-11-18 13:45:00" }, { "name": "symfony/debug", @@ -457,12 +464,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "0c250fd873c7ceb31a9e7ad629b4a7048c931c28" + "reference": "441bd03c6d08132cc8329dde904657d0e5f59748" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/0c250fd873c7ceb31a9e7ad629b4a7048c931c28", - "reference": "0c250fd873c7ceb31a9e7ad629b4a7048c931c28", + "url": "https://api.github.com/repos/symfony/debug/zipball/441bd03c6d08132cc8329dde904657d0e5f59748", + "reference": "441bd03c6d08132cc8329dde904657d0e5f59748", "shasum": "" }, "require": { @@ -485,7 +492,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\Debug\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -503,7 +513,7 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2015-10-11 08:29:26" + "time": "2015-10-30 20:15:42" }, { "name": "symfony/dependency-injection", @@ -511,12 +521,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "dc1fb82df24dfd4e13735265d18d027f28a72a3e" + "reference": "4eb9fce835b5d179b4e996b57504a6d90bf3ba5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/dc1fb82df24dfd4e13735265d18d027f28a72a3e", - "reference": "dc1fb82df24dfd4e13735265d18d027f28a72a3e", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/4eb9fce835b5d179b4e996b57504a6d90bf3ba5b", + "reference": "4eb9fce835b5d179b4e996b57504a6d90bf3ba5b", "shasum": "" }, "require": { @@ -544,7 +554,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -562,7 +575,7 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2015-10-11 08:29:26" + "time": "2015-11-23 10:34:41" }, { "name": "symfony/event-dispatcher", @@ -570,12 +583,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "41899a21d196332ab23e40f76e1276f2b7aa4d0d" + "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/41899a21d196332ab23e40f76e1276f2b7aa4d0d", - "reference": "41899a21d196332ab23e40f76e1276f2b7aa4d0d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5eb815363c0388e83247e7e9853e5dbc14999cc", + "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc", "shasum": "" }, "require": { @@ -601,7 +614,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -619,7 +635,7 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2015-10-12 10:13:39" + "time": "2015-10-30 20:15:42" }, { "name": "symfony/filesystem", @@ -627,12 +643,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "fc3fe52fef85e1f3e7775ffad92539e16c20e0af" + "reference": "3e661a0d521ac67496515fa6e6704bd61bcfff60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/fc3fe52fef85e1f3e7775ffad92539e16c20e0af", - "reference": "fc3fe52fef85e1f3e7775ffad92539e16c20e0af", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/3e661a0d521ac67496515fa6e6704bd61bcfff60", + "reference": "3e661a0d521ac67496515fa6e6704bd61bcfff60", "shasum": "" }, "require": { @@ -647,7 +663,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -665,7 +684,7 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2015-10-11 08:29:26" + "time": "2015-11-23 10:19:46" }, { "name": "symfony/finder", @@ -673,12 +692,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "dcd5aaba34ca332abb7f33ec554ebd4d829cb202" + "reference": "ead9b07af4ba77b6507bee697396a5c79e633f08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/dcd5aaba34ca332abb7f33ec554ebd4d829cb202", - "reference": "dcd5aaba34ca332abb7f33ec554ebd4d829cb202", + "url": "https://api.github.com/repos/symfony/finder/zipball/ead9b07af4ba77b6507bee697396a5c79e633f08", + "reference": "ead9b07af4ba77b6507bee697396a5c79e633f08", "shasum": "" }, "require": { @@ -693,7 +712,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -711,7 +733,7 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2015-10-11 08:29:26" + "time": "2015-10-30 20:15:42" }, { "name": "symfony/http-foundation", @@ -719,16 +741,17 @@ "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "7e8c33e9e6464d75091296e4615852ec4981ed80" + "reference": "0d7031746341f4fa9233aaab616bd9361dac98ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7e8c33e9e6464d75091296e4615852ec4981ed80", - "reference": "7e8c33e9e6464d75091296e4615852ec4981ed80", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0d7031746341f4fa9233aaab616bd9361dac98ce", + "reference": "0d7031746341f4fa9233aaab616bd9361dac98ce", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.3.9", + "symfony/polyfill-php54": "~1.0" }, "require-dev": { "symfony/expression-language": "~2.4|~3.0.0" @@ -743,8 +766,8 @@ "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -763,7 +786,7 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2015-10-13 16:11:28" + "time": "2015-11-20 17:41:52" }, { "name": "symfony/http-kernel", @@ -771,12 +794,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "8f2cb3dfac5090be80fdf71e13f41aadaefc31e0" + "reference": "2c7b16ca290d42d33b9931318ff9531ad769901f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8f2cb3dfac5090be80fdf71e13f41aadaefc31e0", - "reference": "8f2cb3dfac5090be80fdf71e13f41aadaefc31e0", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2c7b16ca290d42d33b9931318ff9531ad769901f", + "reference": "2c7b16ca290d42d33b9931318ff9531ad769901f", "shasum": "" }, "require": { @@ -824,7 +847,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\HttpKernel\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -842,7 +868,121 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2015-10-13 16:11:28" + "time": "2015-11-20 12:20:48" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "0b6a8940385311a24e060ec1fe35680e17c74497" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0b6a8940385311a24e060ec1fe35680e17c74497", + "reference": "0b6a8940385311a24e060ec1fe35680e17c74497", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2015-11-04 20:28:58" + }, + { + "name": "symfony/polyfill-php54", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php54.git", + "reference": "2c9f6d98eb30dc04fe0b06f9cc92a55acea5bdcc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/2c9f6d98eb30dc04fe0b06f9cc92a55acea5bdcc", + "reference": "2c9f6d98eb30dc04fe0b06f9cc92a55acea5bdcc", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php54\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 5.4+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2015-11-04 20:28:58" }, { "name": "symfony/routing", @@ -850,12 +990,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "765f56756fdd425e73224980693c97d4862e4b6f" + "reference": "2a7a2196ab427f0ed97efaad2cf940e21613c943" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/765f56756fdd425e73224980693c97d4862e4b6f", - "reference": "765f56756fdd425e73224980693c97d4862e4b6f", + "url": "https://api.github.com/repos/symfony/routing/zipball/2a7a2196ab427f0ed97efaad2cf940e21613c943", + "reference": "2a7a2196ab427f0ed97efaad2cf940e21613c943", "shasum": "" }, "require": { @@ -889,7 +1029,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\Routing\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -913,7 +1056,7 @@ "uri", "url" ], - "time": "2015-10-11 08:29:26" + "time": "2015-11-23 09:29:40" }, { "name": "symfony/security", @@ -997,17 +1140,17 @@ "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "ff97292bc36ca33214e7bdff355085143ead11f6" + "reference": "49788ae22cf167db21a441ed3f9aae5fb2bdfc0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/ff97292bc36ca33214e7bdff355085143ead11f6", - "reference": "ff97292bc36ca33214e7bdff355085143ead11f6", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/49788ae22cf167db21a441ed3f9aae5fb2bdfc0f", + "reference": "49788ae22cf167db21a441ed3f9aae5fb2bdfc0f", "shasum": "" }, "require": { "php": ">=5.3.9", - "twig/twig": "~1.20|~2.0" + "twig/twig": "~1.23|~2.0" }, "require-dev": { "symfony/asset": "~2.7|~3.0.0", @@ -1016,7 +1159,7 @@ "symfony/finder": "~2.3|~3.0.0", "symfony/form": "~2.8", "symfony/http-kernel": "~2.8|~3.0.0", - "symfony/intl": "~2.3|~3.0.0", + "symfony/polyfill-intl-icu": "~1.0", "symfony/routing": "~2.2|~3.0.0", "symfony/security": "~2.6|~3.0.0", "symfony/security-acl": "~2.6|~3.0.0", @@ -1049,7 +1192,10 @@ "autoload": { "psr-4": { "Symfony\\Bridge\\Twig\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1067,7 +1213,7 @@ ], "description": "Symfony Twig Bridge", "homepage": "https://symfony.com", - "time": "2015-10-11 08:29:26" + "time": "2015-11-02 20:29:24" }, { "name": "symfony/yaml", @@ -1075,12 +1221,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "ff7f886a33f5b7a26a94d62f6e14bb9cf0e3bf5d" + "reference": "f65177d7093bc29aefebfbdbe496b9e3a6292653" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ff7f886a33f5b7a26a94d62f6e14bb9cf0e3bf5d", - "reference": "ff7f886a33f5b7a26a94d62f6e14bb9cf0e3bf5d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/f65177d7093bc29aefebfbdbe496b9e3a6292653", + "reference": "f65177d7093bc29aefebfbdbe496b9e3a6292653", "shasum": "" }, "require": { @@ -1095,7 +1241,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1113,29 +1262,33 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2015-10-12 11:16:35" + "time": "2015-11-18 13:45:00" }, { "name": "twig/twig", - "version": "v1.20.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "1ea4e5f81c6d005fe84d0b38e1c4f1955eb86844" + "reference": "d9b6333ae8dd2c8e3fd256e127548def0bc614c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/1ea4e5f81c6d005fe84d0b38e1c4f1955eb86844", - "reference": "1ea4e5f81c6d005fe84d0b38e1c4f1955eb86844", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/d9b6333ae8dd2c8e3fd256e127548def0bc614c6", + "reference": "d9b6333ae8dd2c8e3fd256e127548def0bc614c6", "shasum": "" }, "require": { "php": ">=5.2.7" }, + "require-dev": { + "symfony/debug": "~2.7", + "symfony/phpunit-bridge": "~2.7" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.20-dev" + "dev-master": "1.23-dev" } }, "autoload": { @@ -1170,7 +1323,7 @@ "keywords": [ "templating" ], - "time": "2015-08-12 15:56:39" + "time": "2015-11-05 12:49:06" } ], "packages-dev": [ @@ -2022,12 +2175,12 @@ "version": "v1.0.2", "source": { "type": "git", - "url": "https://github.com/fabpot/Pimple.git", + "url": "https://github.com/silexphp/Pimple.git", "reference": "ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fabpot/Pimple/zipball/ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94", + "url": "https://api.github.com/repos/silexphp/Pimple/zipball/ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94", "reference": "ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94", "shasum": "" }, @@ -2470,12 +2623,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "35bde11fc81eecb2409eb60c5f7920659ad7e00a" + "reference": "589f32fe4f43155ea303d505171634c45f15e876" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/35bde11fc81eecb2409eb60c5f7920659ad7e00a", - "reference": "35bde11fc81eecb2409eb60c5f7920659ad7e00a", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/589f32fe4f43155ea303d505171634c45f15e876", + "reference": "589f32fe4f43155ea303d505171634c45f15e876", "shasum": "" }, "require": { @@ -2484,7 +2637,7 @@ }, "require-dev": { "symfony/css-selector": "~2.0,>=2.0.5|~3.0.0", - "symfony/process": "~2.0,>=2.0.5|~3.0.0" + "symfony/process": "~2.3.34|~2.7,>=2.7.6|~3.0.0" }, "suggest": { "symfony/process": "" @@ -2498,7 +2651,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\BrowserKit\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2516,7 +2672,7 @@ ], "description": "Symfony BrowserKit Component", "homepage": "https://symfony.com", - "time": "2015-10-11 08:29:26" + "time": "2015-11-02 20:29:24" }, { "name": "symfony/css-selector", @@ -2524,12 +2680,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "01e341a68e06e540e0322017506b58b0e072c626" + "reference": "b600fec37c0efca08046d481d79e7eabc07108ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/01e341a68e06e540e0322017506b58b0e072c626", - "reference": "01e341a68e06e540e0322017506b58b0e072c626", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/b600fec37c0efca08046d481d79e7eabc07108ff", + "reference": "b600fec37c0efca08046d481d79e7eabc07108ff", "shasum": "" }, "require": { @@ -2544,7 +2700,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\CssSelector\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2566,7 +2725,7 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2015-10-11 08:29:26" + "time": "2015-10-30 20:15:42" }, { "name": "symfony/dom-crawler", @@ -2574,16 +2733,17 @@ "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "93bfc2cc94cdfc16c728c663658117a25acd1aa5" + "reference": "740c98235f5b6e2b0b13df2fb97c7a1c7d1a18fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/93bfc2cc94cdfc16c728c663658117a25acd1aa5", - "reference": "93bfc2cc94cdfc16c728c663658117a25acd1aa5", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/740c98235f5b6e2b0b13df2fb97c7a1c7d1a18fc", + "reference": "740c98235f5b6e2b0b13df2fb97c7a1c7d1a18fc", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.3.9", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { "symfony/css-selector": "~2.8|~3.0.0" @@ -2600,7 +2760,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\DomCrawler\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2618,7 +2781,7 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2015-10-11 08:29:26" + "time": "2015-11-02 20:29:39" }, { "name": "symfony/process", @@ -2626,12 +2789,12 @@ "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "4e1daf58b375ea7c506d525dc7801df1c9a6ebbd" + "reference": "63573e0afb71aa3ea2381d70d96b8d9063627794" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/4e1daf58b375ea7c506d525dc7801df1c9a6ebbd", - "reference": "4e1daf58b375ea7c506d525dc7801df1c9a6ebbd", + "url": "https://api.github.com/repos/symfony/process/zipball/63573e0afb71aa3ea2381d70d96b8d9063627794", + "reference": "63573e0afb71aa3ea2381d70d96b8d9063627794", "shasum": "" }, "require": { @@ -2646,7 +2809,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2664,7 +2830,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2015-10-11 08:29:26" + "time": "2015-11-20 07:33:53" } ], "aliases": [], 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/config/installer/container/services.yml b/phpBB/config/installer/container/services.yml index e7325399ad..5626724dd0 100644 --- a/phpBB/config/installer/container/services.yml +++ b/phpBB/config/installer/container/services.yml @@ -9,6 +9,11 @@ imports: - { resource: ../../default/container/services_twig.yml } services: + cache.driver: + class: %cache.driver.class% + arguments: + - "%core.root_path%/cache/installer/" + config: class: phpbb\config\config arguments: diff --git a/phpBB/config/installer/container/services_installer.yml b/phpBB/config/installer/container/services_installer.yml index 667ff2bafd..c2c730e62c 100644 --- a/phpBB/config/installer/container/services_installer.yml +++ b/phpBB/config/installer/container/services_installer.yml @@ -86,6 +86,7 @@ services: class: phpbb\install\installer abstract: true arguments: + - @cache.driver - @installer.helper.config - @path_helper diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html index b1db7b6f36..85828d91f8 100644 --- a/phpBB/docs/CHANGELOG.html +++ b/phpBB/docs/CHANGELOG.html @@ -49,6 +49,7 @@ <ol> <li><a href="#changelog">Changelog</a> <ul> + <li><a href="#v31x">Changes since 3.1.x</a></li> <li><a href="#v315">Changes since 3.1.5</a></li> <li><a href="#v314">Changes since 3.1.4</a></li> <li><a href="#v313">Changes since 3.1.3</a></li> @@ -113,6 +114,243 @@ <div class="content"> + <a name="v31x"></a><h3>Changes since 3.1.x</h3> + <h4>Bug</h4> + <ul> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-6466">PHPBB3-6466</a>] - Permission Role Tooltips do not display in Safari</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-7187">PHPBB3-7187</a>] - Quote smilies error</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-7275">PHPBB3-7275</a>] - Custom bbodes trim('${1}')</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8064">PHPBB3-8064</a>] - forum author sort not using username_clean</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8419">PHPBB3-8419</a>] - custom tag eats up space character</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8420">PHPBB3-8420</a>] - emoticon removes space before itself when using preview</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8613">PHPBB3-8613</a>] - BBCode_uid- and censor-bug</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9073">PHPBB3-9073</a>] - Word censoring in URLs</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9109">PHPBB3-9109</a>] - Maximum allowed recepients restriction precedence</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9377">PHPBB3-9377</a>] - Custom BB Code Nesting</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10002">PHPBB3-10002</a>] - (incomplete) BBCode usage of [quote] - and [list] - forces closing [/list] - and [/quote] -s, ultimately breaking HTML/Design</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10388">PHPBB3-10388</a>] - Template engine should use json_encode() to properly escape JS properties</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10572">PHPBB3-10572</a>] - Unguarded includes in acp/</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10989">PHPBB3-10989</a>] - Bug in BBCode</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11444">PHPBB3-11444</a>] - Unnecessary notify column in phpbb_user_notifications table</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11967">PHPBB3-11967</a>] - Notification settings are not respected</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12143">PHPBB3-12143</a>] - Untranslated group name from index if not special group</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12195">PHPBB3-12195</a>] - Double-slash URLs not supported</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12387">PHPBB3-12387</a>] - mysqli_free_result is called with false value</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12554">PHPBB3-12554</a>] - Quotes do not display correctly as list elements</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12698">PHPBB3-12698</a>] - Replace all instances of magic numbers with constants in javascript</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12957">PHPBB3-12957</a>] - The template engine is not constructed properly in install/index</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12974">PHPBB3-12974</a>] - Update nightly version of develop to 3.2.0-a1-dev</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13101">PHPBB3-13101</a>] - Remove WLM contact from profile</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13238">PHPBB3-13238</a>] - \phpbb\db\migration\data\v310\mysql_fulltext_drop tries to drop non existent indexes</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13359">PHPBB3-13359</a>] - Develop tests fail due to wrong template set up in tests</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13362">PHPBB3-13362</a>] - The whole cache dir (excluding the .htaccess and index.html files) should be ignored by git</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13371">PHPBB3-13371</a>] - Lang vars not loaded during install process</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13372">PHPBB3-13372</a>] - Environment Bug - Routing broken for extensions</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13377">PHPBB3-13377</a>] - Function decode_message() incorrectly decodes www type URLs</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13425">PHPBB3-13425</a>] - Smiley code at start of text being quoted doesn't show smiley image in quote</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13513">PHPBB3-13513</a>] - Mixed routing file paths in the router</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13555">PHPBB3-13555</a>] - Poll options preview rendered incorrectly by <br /> collision</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13619">PHPBB3-13619</a>] - Remove unneeded folders/files from vendor folder in release package</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13638">PHPBB3-13638</a>] - INCLUDECSS and INCLUDEJS Broken in 3.2</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13670">PHPBB3-13670</a>] - Fix fatal function name must be a string in functional tests</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13680">PHPBB3-13680</a>] - Notification for a quote within a quote</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13718">PHPBB3-13718</a>] - Spambot countermeasures/CAPTCHA admin panel won't load</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13749">PHPBB3-13749</a>] - Add missing slash to base uri in helper route tests</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13766">PHPBB3-13766</a>] - Missing style_parent_id in textformater's data_access::get_styles()</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13769">PHPBB3-13769</a>] - bin/phpbbcli.php ignores PHPBB_ENVIRONMENT constant from config.php</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13772">PHPBB3-13772</a>] - Error in @param variable type for phpbb\passwords\manager</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13782">PHPBB3-13782</a>] - ACM null caching driver class is named with the reserved word 'null'</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13792">PHPBB3-13792</a>] - Travis fails installing hhvm-nigthly</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13814">PHPBB3-13814</a>] - phpbb_is_writable() method of the new filesystem class truncates files</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13825">PHPBB3-13825</a>] - create_thumbnail() incorrectly calls phpbb\filesystem::phpbb_chmod</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13828">PHPBB3-13828</a>] - Rename null driver to dummy for PHP7 compatibility in tests</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13829">PHPBB3-13829</a>] - Router requires cache directory to be writable</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13839">PHPBB3-13839</a>] - Failing test when the phpBB root directory isn't named phpbb</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13849">PHPBB3-13849</a>] - Development environment broken</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13860">PHPBB3-13860</a>] - Array to string conversion in parser service</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13871">PHPBB3-13871</a>] - Call to a member function realpath() on a non-object in functions.php on line 3474</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13875">PHPBB3-13875</a>] - Lint test should ignore cache, ext, and store folder</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13890">PHPBB3-13890</a>] - Failling tests in master</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13896">PHPBB3-13896</a>] - Coding style issue in master</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13897">PHPBB3-13897</a>] - Non-existent environment causes fatal error</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13906">PHPBB3-13906</a>] - BBCodes in signatures are not correctly parsed in post preview</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13990">PHPBB3-13990</a>] - Reparse markup inside of forum rules/description</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13993">PHPBB3-13993</a>] - Signature Editing Broken</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14008">PHPBB3-14008</a>] - Do not add a user_id value to quotes from guests</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14033">PHPBB3-14033</a>] - Correct docblock errors</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14034">PHPBB3-14034</a>] - Fix reparser names that contain "text_reparser" in the middle</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14036">PHPBB3-14036</a>] - Replace path_helper with a mock</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14052">PHPBB3-14052</a>] - New installer - The commands are not translated</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14074">PHPBB3-14074</a>] - Not possible to clear notification (mark as read)</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14076">PHPBB3-14076</a>] - Notifications settings are not correctly handled when a non default setting is set</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14078">PHPBB3-14078</a>] - Notification related sql general error on submission of editing post</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14079">PHPBB3-14079</a>] - Cannot mark notification as read from the dropdown</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14094">PHPBB3-14094</a>] - Current master branch is getting segmentation fault error on PHP 7 tests</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14128">PHPBB3-14128</a>] - Image posting overflow regression</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14137">PHPBB3-14137</a>] - Fix Notification Menu Settings spacing issue caused by new jump-box improvements</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14138">PHPBB3-14138</a>] - Use span tags instead of abbr tags in the footer</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14165">PHPBB3-14165</a>] - Fix layout of ucp/mcp after 14139</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14178">PHPBB3-14178</a>] - Installer database helper tests fail if sqlite3 is not present</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14180">PHPBB3-14180</a>] - Use unix line ending in files classes tests</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14182">PHPBB3-14182</a>] - Move the v310\notifications_board migration to v320\notifications_board</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14183">PHPBB3-14183</a>] - Remove deprecated max-device-width</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14193">PHPBB3-14193</a>] - Custom BBCode Buttons Broken</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14194">PHPBB3-14194</a>] - Responsive Quick Links Menu Broken</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14195">PHPBB3-14195</a>] - Plupload Attachments Not Quite Working</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14199">PHPBB3-14199</a>] - We need to hide icons from screen readers</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14202">PHPBB3-14202</a>] - Add missing sr-only classes to icons</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14216">PHPBB3-14216</a>] - Do not run thumbnail test if gd is not enabled</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14221">PHPBB3-14221</a>] - Fix viewforum header issue</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14222">PHPBB3-14222</a>] - ACP users page tries to cast deactivated_super_global to int</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14225">PHPBB3-14225</a>] - Inject the resolver in routing loaders when using them</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14230">PHPBB3-14230</a>] - Unread posts' icons don't have different color in viewtopic</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14234">PHPBB3-14234</a>] - Do not use references in trigger_event()</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14235">PHPBB3-14235</a>] - Font Awesome not available with simple_header.html</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14240">PHPBB3-14240</a>] - Always include all config files in the update package</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14274">PHPBB3-14274</a>] - New installer has weak inclusion of user functions</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14277">PHPBB3-14277</a>] - Don't use user_id in migrations as it is not defined</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14278">PHPBB3-14278</a>] - Don't use user_id in installer if not available</li> + </ul> + <h4>Improvement</h4> + <ul> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8672">PHPBB3-8672</a>] - No file size limit in getimagesize() and remote upload</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8708">PHPBB3-8708</a>] - Splitting global announcements from f_announce</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9485">PHPBB3-9485</a>] - Please include link to specific post in moderator's activity logs.</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10268">PHPBB3-10268</a>] - extend function make_clickable() to also recognize semicolons as leading URL borders</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10620">PHPBB3-10620</a>] - Quote tag improvement</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10922">PHPBB3-10922</a>] - Allow parameters for [email] - BBCode content instead of addresses only</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11649">PHPBB3-11649</a>] - Move construction of twig environment to DIC</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11742">PHPBB3-11742</a>] - BBCode 'code' doesn't support tabs</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12466">PHPBB3-12466</a>] - Move classes from acp_database.php to their own files</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12487">PHPBB3-12487</a>] - Update PHP code</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12608">PHPBB3-12608</a>] - Improve notifications drop-down menu styling in header</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12654">PHPBB3-12654</a>] - Improve header search-box styling</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12681">PHPBB3-12681</a>] - Cache the compiled routes and dump the url_generator</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12719">PHPBB3-12719</a>] - Convert to Normalize & SUITCSS - base for reset</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12745">PHPBB3-12745</a>] - Allow Emoji characters in posts</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12769">PHPBB3-12769</a>] - Add and use Font-Awesome to handle proSilver icons</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12821">PHPBB3-12821</a>] - Use CSS instead of images for gradients</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12958">PHPBB3-12958</a>] - Remove subsilver2</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13063">PHPBB3-13063</a>] - Move functions_url_matcher to a proper class</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13132">PHPBB3-13132</a>] - Twig: move the loops content from loops. to the root context</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13137">PHPBB3-13137</a>] - Remove schema.json from repository</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13178">PHPBB3-13178</a>] - Allow posting Emoji characters if the database supports it</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13206">PHPBB3-13206</a>] - DEBUG mode should automatically recompile stale style components</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13266">PHPBB3-13266</a>] - Enabling twig dump function if DEBUG is defined</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13388">PHPBB3-13388</a>] - Integrate routing and di parameters resolution</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13450">PHPBB3-13450</a>] - Type-hint return value of $phpbb_container->get()</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13455">PHPBB3-13455</a>] - Change request_var() calls with $request->variable()</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13468">PHPBB3-13468</a>] - Change add_log() calls with $phpbb_log->add()</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13494">PHPBB3-13494</a>] - Replace set_config() calls with $config->set()</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13496">PHPBB3-13496</a>] - Replace set_config_count() calls with $config->increment()</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13497">PHPBB3-13497</a>] - Change get_tables() calls with $db_tools->sql_list_tables()</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13498">PHPBB3-13498</a>] - Change get_user_avatar() calls with phpbb_get_avatar()</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13499">PHPBB3-13499</a>] - Move get_remote_file() to functions_compatibility.php</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13595">PHPBB3-13595</a>] - Remove unused instances of the bbcode class</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13614">PHPBB3-13614</a>] - Remove phpbb_pcre_utf8_support() and assume Unicode is supported by PCRE</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13652">PHPBB3-13652</a>] - Extend SQL query builder functionality</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13697">PHPBB3-13697</a>] - Rewriting/moving file system functions to filesystem class</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13740">PHPBB3-13740</a>] - Refactoring installer</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13762">PHPBB3-13762</a>] - Moving translation loading and language related functions into a service</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13770">PHPBB3-13770</a>] - Make DI Container builder constructor dependency free</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13789">PHPBB3-13789</a>] - Implement Googles noCAPTCHA reCAPTCHA</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13801">PHPBB3-13801</a>] - Decouple the user object from the text_formatter.s9e.parser service</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13803">PHPBB3-13803</a>] - Implement a generic and scalable way to reparse rich text</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13805">PHPBB3-13805</a>] - Make generate_text_for_storage() match the signature and feature set of message_parser::parse()</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13844">PHPBB3-13844</a>] - Replace help_ language magic with a help manager and normal language files</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13847">PHPBB3-13847</a>] - Move quote generation to text_formatter.utils</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13891">PHPBB3-13891</a>] - Add CLI commands for reparsing text</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13901">PHPBB3-13901</a>] - Give quotes more whitespace in the posting form for readability</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13902">PHPBB3-13902</a>] - Increase the CSS margin around blockquote</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13904">PHPBB3-13904</a>] - Refactor attachment upload functions into service</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13921">PHPBB3-13921</a>] - Try harder to fix block elements BBCodes used inside of inline elements BBCodes</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13946">PHPBB3-13946</a>] - Increase the CSS margin around [code] - and [list] -</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13970">PHPBB3-13970</a>] - Save the value of the optional parameter in [code] - BBCode</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13986">PHPBB3-13986</a>] - Add --resume option to reparser CLI</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13987">PHPBB3-13987</a>] - Add --dry-run option to reparser CLI</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14000">PHPBB3-14000</a>] - Make it possible to use emojis in posts</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14097">PHPBB3-14097</a>] - Catch and show all exceptions</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14107">PHPBB3-14107</a>] - dropdown rendering on rtl</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14124">PHPBB3-14124</a>] - Automatically translate exception in CLI</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14139">PHPBB3-14139</a>] - stop styling IDs</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14157">PHPBB3-14157</a>] - Allow administrators to set an alt attribute for topic icons</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14162">PHPBB3-14162</a>] - Add CLI commands to manage migrations</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14168">PHPBB3-14168</a>] - Refactor attachment management functions into classes</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14174">PHPBB3-14174</a>] - issues in language\en\install_new.php </li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14175">PHPBB3-14175</a>] - Refactor responsive implementation for easier manipulation</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14206">PHPBB3-14206</a>] - Fix jumpbox incosistencies</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14220">PHPBB3-14220</a>] - Adding routing file locator and route loader services</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14231">PHPBB3-14231</a>] - Fix double home icon in breadcrumbs</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14237">PHPBB3-14237</a>] - Use language class in the notifications component</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14264">PHPBB3-14264</a>] - Don't use constants in textreparser plugins</li> + </ul> + <h4>New Feature</h4> + <ul> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10165">PHPBB3-10165</a>] - Send test email feature on email settings ACP page</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11768">PHPBB3-11768</a>] - Integrate s9e\TextFormatter</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12516">PHPBB3-12516</a>] - Always preview signature in UCP/ACP module</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12620">PHPBB3-12620</a>] - Allow the user to define multiples environments</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12692">PHPBB3-12692</a>] - Add a console command to manage the thumbnail</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13329">PHPBB3-13329</a>] - Rely on Intl and mbstring, use patchwork/utf8 as fallback</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13641">PHPBB3-13641</a>] - problem with custom BBCode</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13961">PHPBB3-13961</a>] - Add orderable service collections</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14125">PHPBB3-14125</a>] - Add --env option to all CLI commands</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14158">PHPBB3-14158</a>] - Add a lang_array function to the language service to avoid using call_user_func</li> + </ul> + <h4>Sub-task</h4> + <ul> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12577">PHPBB3-12577</a>] - Use a lazy service to delay the construction of the passwords_manager</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12581">PHPBB3-12581</a>] - Use the proxy pattern for the template lexer</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12632">PHPBB3-12632</a>] - Use a twig.debug environment config value to enable Twig debug</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12633">PHPBB3-12633</a>] - Add debug.template.events</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12699">PHPBB3-12699</a>] - Replace instances in the message textarea keydown callback</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13421">PHPBB3-13421</a>] - Create an interface for db\tools.php</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13487">PHPBB3-13487</a>] - Add factory for db tool class</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13645">PHPBB3-13645</a>] - Moving feeds to controllers</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13647">PHPBB3-13647</a>] - Move FAQ to controller</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13654">PHPBB3-13654</a>] - Moving reports to controller</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13881">PHPBB3-13881</a>] - Unify quote removal in 3.1 and 3.2</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13935">PHPBB3-13935</a>] - Allow more admin-configurable schemes in post links</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14039">PHPBB3-14039</a>] - Refactoring the updater</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14044">PHPBB3-14044</a>] - Deduplicate the installers</li> + </ul> + <h4>Task</h4> + <ul> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9457">PHPBB3-9457</a>] - [Accessibility] - Add WAI-ARIA landmarks to the Prosilver template files</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11528">PHPBB3-11528</a>] - Use mink for acceptance tests involving javascript execution</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12384">PHPBB3-12384</a>] - Run Travis CI HHVM tests against MySQLi instead of MySQL</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12505">PHPBB3-12505</a>] - Remove outdated media handling in attachment.html</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12564">PHPBB3-12564</a>] - Remove obsolete version definitions from module info files</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12916">PHPBB3-12916</a>] - Add separate nightly builds for 3.1 and 3.2</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13130">PHPBB3-13130</a>] - Update dependencies to Symfony 2.5</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13139">PHPBB3-13139</a>] - Update Twig to 1.18.0</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13363">PHPBB3-13363</a>] - Replace phpbb\php\ini with composer package bantu/ini-get-wrapper</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13407">PHPBB3-13407</a>] - Update Symfony Components to 2.7.x</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13572">PHPBB3-13572</a>] - Upgrade composer to 1.0.0-alpha9</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13634">PHPBB3-13634</a>] - Update README to show new branch names</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13725">PHPBB3-13725</a>] - Coding guidelines: static public</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13767">PHPBB3-13767</a>] - Remove .git from vendor/s9e/text-formatter</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13768">PHPBB3-13768</a>] - Update to Symfony 2.8@dev</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13774">PHPBB3-13774</a>] - Update s9e\TextFormatter</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13777">PHPBB3-13777</a>] - Move acp/modules module handling code into a service</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13793">PHPBB3-13793</a>] - Remove message translation from exceptions</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13800">PHPBB3-13800</a>] - Make extension manager an optional dependency for the router</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13804">PHPBB3-13804</a>] - Make template's user dependency optional</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13832">PHPBB3-13832</a>] - Replace use of deprecated e modifier of preg_replace in bbcode functions</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13985">PHPBB3-13985</a>] - Update s9e\TextFormatter</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14015">PHPBB3-14015</a>] - Update Symfony to the latest 2.8@dev</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14053">PHPBB3-14053</a>] - Remove @covers annotations from installer config test</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14056">PHPBB3-14056</a>] - Keep install schema resources in the install folder</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14096">PHPBB3-14096</a>] - Update Symfony to the latest 2.8@dev</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14140">PHPBB3-14140</a>] - Update Symfony to benefit from improvement to the console component</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14150">PHPBB3-14150</a>] - Update fast-image-size to newest release</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14205">PHPBB3-14205</a>] - Bump PHP requirement to 5.4</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14238">PHPBB3-14238</a>] - Update Symfony to the latest 2.8@dev</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14243">PHPBB3-14243</a>] - Exclude every .git directory from the pakages</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14256">PHPBB3-14256</a>] - Remove PHP7 from the allowed failures</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14265">PHPBB3-14265</a>] - Make all tables available in the container</li> + </ul> + <a name="v315"></a><h3>Changes since 3.1.5</h3> <h4>Bug</h4> 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/constants.php b/phpBB/includes/constants.php index f6d62fcdf4..680d5a2b4e 100644 --- a/phpBB/includes/constants.php +++ b/phpBB/includes/constants.php @@ -28,7 +28,7 @@ if (!defined('IN_PHPBB')) */ // phpBB Version -define('PHPBB_VERSION', '3.2.0-a1-dev'); +define('PHPBB_VERSION', '3.2.0-a2-dev'); // QA-related // define('PHPBB_QA', 1); 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/app.php b/phpBB/install/app.php index 9346351aba..9664f92cf1 100644 --- a/phpBB/install/app.php +++ b/phpBB/install/app.php @@ -30,7 +30,6 @@ $phpbb_filesystem = $phpbb_installer_container->get('filesystem'); /** @var \phpbb\template\template $template */ $template = $phpbb_installer_container->get('template'); - // Path to templates $paths = array($phpbb_root_path . 'install/update/new/adm/style', $phpbb_admin_path . 'style'); $paths = array_filter($paths, 'is_dir'); @@ -42,17 +41,17 @@ $template->set_custom_style(array( ), ), $paths); -/* @var $phpbb_dispatcher \phpbb\event\dispatcher */ +/** @var $phpbb_dispatcher \phpbb\event\dispatcher */ $phpbb_dispatcher = $phpbb_installer_container->get('dispatcher'); /** @var \phpbb\language\language $language */ $language = $phpbb_installer_container->get('language'); $language->add_lang(array('common', 'acp/common', 'acp/board', 'install', 'posting')); -/* @var $http_kernel \Symfony\Component\HttpKernel\HttpKernel */ +/** @var $http_kernel \Symfony\Component\HttpKernel\HttpKernel */ $http_kernel = $phpbb_installer_container->get('http_kernel'); -/* @var $symfony_request \phpbb\symfony_request */ +/** @var $symfony_request \phpbb\symfony_request */ $symfony_request = $phpbb_installer_container->get('symfony_request'); $response = $http_kernel->handle($symfony_request); $response->send(); diff --git a/phpBB/install/convertors/convert_phpbb20.php b/phpBB/install/convertors/convert_phpbb20.php index 30ff5119ab..9949c972d9 100644 --- a/phpBB/install/convertors/convert_phpbb20.php +++ b/phpBB/install/convertors/convert_phpbb20.php @@ -38,7 +38,7 @@ $dbms = $phpbb_config_php_file->convert_30_dbms_to_31($dbms); $convertor_data = array( 'forum_name' => 'phpBB 2.0.x', 'version' => '1.0.3', - 'phpbb_version' => '3.1.6', + 'phpbb_version' => '3.2.0-a1', 'author' => '<a href="https://www.phpbb.com/">phpBB Limited</a>', 'dbms' => $dbms, 'dbhost' => $dbhost, 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/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql index 680341b855..5cf5af6ddc 100644 --- a/phpBB/install/schemas/schema_data.sql +++ b/phpBB/install/schemas/schema_data.sql @@ -275,7 +275,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0 INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('use_system_cron', '0'); -INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.2.0-a1-dev'); +INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.2.0-a2-dev'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400'); diff --git a/phpBB/install/startup.php b/phpBB/install/startup.php index 766f6be38a..b40face4f8 100644 --- a/phpBB/install/startup.php +++ b/phpBB/install/startup.php @@ -81,4 +81,5 @@ $config_path = (file_exists($other_config_path . '/installer/config.yml')) ? $ot $phpbb_installer_container = $phpbb_installer_container_builder ->with_config_path($config_path) + ->with_custom_parameters(array('cache.driver.class' => 'phpbb\cache\driver\file')) ->get_container(); 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/data/v320/allowed_schemes_links.php b/phpBB/phpbb/db/migration/data/v320/allowed_schemes_links.php index de127e3745..726822bc71 100644 --- a/phpBB/phpbb/db/migration/data/v320/allowed_schemes_links.php +++ b/phpBB/phpbb/db/migration/data/v320/allowed_schemes_links.php @@ -15,6 +15,13 @@ namespace phpbb\db\migration\data\v320; class allowed_schemes_links extends \phpbb\db\migration\migration { + static public function depends_on() + { + return array( + '\phpbb\db\migration\data\v320\dev', + ); + } + public function update_data() { return array( diff --git a/phpBB/phpbb/db/migration/data/v320/announce_global_permission.php b/phpBB/phpbb/db/migration/data/v320/announce_global_permission.php index fe30a1c1b8..7afecb884b 100644 --- a/phpBB/phpbb/db/migration/data/v320/announce_global_permission.php +++ b/phpBB/phpbb/db/migration/data/v320/announce_global_permission.php @@ -29,7 +29,9 @@ class announce_global_permission extends \phpbb\db\migration\migration static public function depends_on() { - return array('\phpbb\db\migration\data\v310\rc2'); + return array( + '\phpbb\db\migration\data\v320\dev', + ); } public function update_data() diff --git a/phpBB/phpbb/db/migration/data/v320/dev.php b/phpBB/phpbb/db/migration/data/v320/dev.php new file mode 100644 index 0000000000..ad2da3c1f4 --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v320/dev.php @@ -0,0 +1,36 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +namespace phpbb\db\migration\data\v320; + +class dev extends \phpbb\db\migration\container_aware_migration +{ + public function effectively_installed() + { + return version_compare($this->config['version'], '3.2.0-dev', '>='); + } + + static public function depends_on() + { + return array( + '\phpbb\db\migration\data\v31x\v316', + ); + } + + public function update_data() + { + return array( + array('config.update', array('version', '3.2.0-dev')), + ); + } +} diff --git a/phpBB/phpbb/db/migration/data/v320/font_awesome_update.php b/phpBB/phpbb/db/migration/data/v320/font_awesome_update.php index 6ffaf18b4a..817b638037 100644 --- a/phpBB/phpbb/db/migration/data/v320/font_awesome_update.php +++ b/phpBB/phpbb/db/migration/data/v320/font_awesome_update.php @@ -15,6 +15,13 @@ namespace phpbb\db\migration\data\v320; class font_awesome_update extends \phpbb\db\migration\migration { + static public function depends_on() + { + return array( + '\phpbb\db\migration\data\v320\dev', + ); + } + public function effectively_installed() { return isset($this->config['load_font_awesome_url']); diff --git a/phpBB/phpbb/db/migration/data/v320/icons_alt.php b/phpBB/phpbb/db/migration/data/v320/icons_alt.php index 7071ae78db..80132e579e 100644 --- a/phpBB/phpbb/db/migration/data/v320/icons_alt.php +++ b/phpBB/phpbb/db/migration/data/v320/icons_alt.php @@ -17,7 +17,9 @@ class icons_alt extends \phpbb\db\migration\migration { static public function depends_on() { - return array('\phpbb\db\migration\data\v310\dev'); + return array( + '\phpbb\db\migration\data\v320\dev', + ); } public function update_schema() diff --git a/phpBB/phpbb/db/migration/data/v320/log_post_id.php b/phpBB/phpbb/db/migration/data/v320/log_post_id.php index 0f155d543c..ead53c8138 100644 --- a/phpBB/phpbb/db/migration/data/v320/log_post_id.php +++ b/phpBB/phpbb/db/migration/data/v320/log_post_id.php @@ -17,7 +17,9 @@ class log_post_id extends \phpbb\db\migration\migration { static public function depends_on() { - return array('\phpbb\db\migration\data\v310\dev'); + return array( + '\phpbb\db\migration\data\v320\dev', + ); } public function update_schema() diff --git a/phpBB/phpbb/db/migration/data/v320/notifications_board.php b/phpBB/phpbb/db/migration/data/v320/notifications_board.php index fd9f1a2ad6..8a76ebab58 100644 --- a/phpBB/phpbb/db/migration/data/v320/notifications_board.php +++ b/phpBB/phpbb/db/migration/data/v320/notifications_board.php @@ -17,7 +17,9 @@ class notifications_board extends \phpbb\db\migration\migration { static public function depends_on() { - return array('\phpbb\db\migration\data\v310\notifications'); + return array( + '\phpbb\db\migration\data\v320\dev', + ); } public function update_data() diff --git a/phpBB/phpbb/db/migration/data/v320/remove_outdated_media.php b/phpBB/phpbb/db/migration/data/v320/remove_outdated_media.php index 59208be4dc..c14d31f1c0 100644 --- a/phpBB/phpbb/db/migration/data/v320/remove_outdated_media.php +++ b/phpBB/phpbb/db/migration/data/v320/remove_outdated_media.php @@ -21,6 +21,13 @@ class remove_outdated_media extends \phpbb\db\migration\migration ATTACHMENT_CATEGORY_QUICKTIME, ); + static public function depends_on() + { + return array( + '\phpbb\db\migration\data\v320\dev', + ); + } + public function update_data() { return array( diff --git a/phpBB/phpbb/db/migration/data/v320/remove_profilefield_wlm.php b/phpBB/phpbb/db/migration/data/v320/remove_profilefield_wlm.php index 2898c708f8..1cb9070bf9 100644 --- a/phpBB/phpbb/db/migration/data/v320/remove_profilefield_wlm.php +++ b/phpBB/phpbb/db/migration/data/v320/remove_profilefield_wlm.php @@ -17,7 +17,9 @@ class remove_profilefield_wlm extends \phpbb\db\migration\migration { static public function depends_on() { - return array('\phpbb\db\migration\data\v310\profilefield_wlm'); + return array( + '\phpbb\db\migration\data\v320\dev', + ); } public function update_schema() diff --git a/phpBB/phpbb/db/migration/data/v320/v320a1.php b/phpBB/phpbb/db/migration/data/v320/v320a1.php new file mode 100644 index 0000000000..d7ecb36f90 --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v320/v320a1.php @@ -0,0 +1,44 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +namespace phpbb\db\migration\data\v320; + +class v320a1 extends \phpbb\db\migration\container_aware_migration +{ + public function effectively_installed() + { + return version_compare($this->config['version'], '3.2.0-a1', '>='); + } + + static public function depends_on() + { + return array( + '\phpbb\db\migration\data\v320\dev', + '\phpbb\db\migration\data\v320\allowed_schemes_links', + '\phpbb\db\migration\data\v320\announce_global_permission', + '\phpbb\db\migration\data\v320\remove_profilefield_wlm', + '\phpbb\db\migration\data\v320\font_awesome_update', + '\phpbb\db\migration\data\v320\icons_alt', + '\phpbb\db\migration\data\v320\log_post_id', + '\phpbb\db\migration\data\v320\remove_outdated_media', + '\phpbb\db\migration\data\v320\notifications_board', + ); + } + + public function update_data() + { + return array( + array('config.update', array('version', '3.2.0-dev')), + ); + } +} 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/installer.php b/phpBB/phpbb/install/installer.php index 77e0a896bc..a41b4cd6a6 100644 --- a/phpBB/phpbb/install/installer.php +++ b/phpBB/phpbb/install/installer.php @@ -13,6 +13,7 @@ namespace phpbb\install; +use phpbb\cache\driver\driver_interface; use phpbb\di\ordered_service_collection; use phpbb\install\exception\installer_config_not_writable_exception; use phpbb\install\exception\jump_to_restart_point_exception; @@ -26,6 +27,11 @@ use phpbb\path_helper; class installer { /** + * @var driver_interface + */ + protected $cache; + + /** * @var config */ protected $install_config; @@ -55,11 +61,13 @@ class installer /** * Constructor * - * @param config $config Installer config handler - * @param path_helper $path_helper Path helper + * @param driver_interface $cache Cache service + * @param config $config Installer config handler + * @param path_helper $path_helper Path helper */ - public function __construct(config $config, path_helper $path_helper) + public function __construct(driver_interface $cache, config $config, path_helper $path_helper) { + $this->cache = $cache; $this->install_config = $config; $this->installer_modules = null; $this->web_root = $path_helper->get_web_root_path(); @@ -235,6 +243,7 @@ class installer if ($install_finished || $fail_cleanup) { $this->install_config->clean_up_config_file(); + $this->cache->purge(); } else { 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/obtain_data/task/obtain_admin_data.php b/phpBB/phpbb/install/module/obtain_data/task/obtain_admin_data.php index 41616e995a..ac305e8ab5 100644 --- a/phpBB/phpbb/install/module/obtain_data/task/obtain_admin_data.php +++ b/phpBB/phpbb/install/module/obtain_data/task/obtain_admin_data.php @@ -70,7 +70,7 @@ class obtain_admin_data extends \phpbb\install\task_base implements \phpbb\insta $admin_name = $this->io_handler->get_input('admin_name', '', true); $admin_pass1 = $this->io_handler->get_input('admin_pass1', '', true); $admin_pass2 = $this->io_handler->get_input('admin_pass2', '', true); - $board_email = $this->io_handler->get_input('board_email', ''); + $board_email = $this->io_handler->get_input('board_email', '', true); $admin_data_valid = $this->check_admin_data($admin_name, $admin_pass1, $admin_pass2, $board_email); diff --git a/phpBB/phpbb/install/module/obtain_data/task/obtain_board_data.php b/phpBB/phpbb/install/module/obtain_data/task/obtain_board_data.php index 4e977981ce..6c54561d14 100644 --- a/phpBB/phpbb/install/module/obtain_data/task/obtain_board_data.php +++ b/phpBB/phpbb/install/module/obtain_data/task/obtain_board_data.php @@ -76,8 +76,8 @@ class obtain_board_data extends \phpbb\install\task_base implements \phpbb\insta { // Board data $default_lang = $this->io_handler->get_input('default_lang', ''); - $board_name = $this->io_handler->get_input('board_name', ''); - $board_desc = $this->io_handler->get_input('board_description', ''); + $board_name = $this->io_handler->get_input('board_name', '', true); + $board_desc = $this->io_handler->get_input('board_description', '', true); // Check default lang $langs = $this->language_helper->get_available_languages(); @@ -116,8 +116,8 @@ class obtain_board_data extends \phpbb\install\task_base implements \phpbb\insta { if ($use_request_data) { - $board_name = $this->io_handler->get_input('board_name', ''); - $board_desc = $this->io_handler->get_input('board_description', ''); + $board_name = $this->io_handler->get_input('board_name', '', true); + $board_desc = $this->io_handler->get_input('board_description', '', true); } else { 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/style.cfg b/phpBB/styles/prosilver/style.cfg index 481b80d912..33547c3ce5 100644 --- a/phpBB/styles/prosilver/style.cfg +++ b/phpBB/styles/prosilver/style.cfg @@ -21,8 +21,8 @@ # General Information about this style name = prosilver copyright = © phpBB Limited, 2007 -style_version = 3.2.0-a1-dev -phpbb_version = 3.2.0-a1-dev +style_version = 3.2.0-a1 +phpbb_version = 3.2.0-a1 # Defining a different template bitfield # template_bitfield = lNg= 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 858a7d3072..cd8ce66a74 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 5466a86f29..fdf26ebfd3 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 cd7e5e0b92..e2e582c286 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..d71fd142e6 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; } @@ -552,8 +557,34 @@ } } +@media (min-width: 700px) { + .postbody { width: 70%; } +} + +@media (min-width: 850px) { + .postbody { width: 76%; } +} + @media (max-width: 850px) { .postprofile { width: 28%; } - .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; + } } diff --git a/phpBB/viewforum.php b/phpBB/viewforum.php index 3e9eb019bc..c9a081cc0e 100644 --- a/phpBB/viewforum.php +++ b/phpBB/viewforum.php @@ -267,7 +267,7 @@ gen_forum_auth_level('forum', $forum_id, $forum_data['forum_status']); $limit_days = array(0 => $user->lang['ALL_TOPICS'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']); $sort_by_text = array('a' => $user->lang['AUTHOR'], 't' => $user->lang['POST_TIME'], 'r' => $user->lang['REPLIES'], 's' => $user->lang['SUBJECT'], 'v' => $user->lang['VIEWS']); -$sort_by_sql = array('a' => 't.topic_first_poster_name', 't' => array('t.topic_last_post_time', 't.topic_last_post_id'), 'r' => (($auth->acl_get('m_approve', $forum_id)) ? 't.topic_posts_approved + t.topic_posts_unapproved + t.topic_posts_softdeleted' : 't.topic_posts_approved'), 's' => 't.topic_title', 'v' => 't.topic_views'); +$sort_by_sql = array('a' => 't.topic_first_poster_name', 't' => array('t.topic_last_post_time', 't.topic_last_post_id'), 'r' => (($auth->acl_get('m_approve', $forum_id)) ? 't.topic_posts_approved + t.topic_posts_unapproved + t.topic_posts_softdeleted' : 't.topic_posts_approved'), 's' => 'LOWER(t.topic_title)', 'v' => 't.topic_views'); $s_limit_days = $s_sort_key = $s_sort_dir = $u_sort_param = ''; gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param, $default_sort_days, $default_sort_key, $default_sort_dir); |