mirror of
https://github.com/phpbb/phpbb.git
synced 2025-09-10 08:10:44 +02:00
Compare commits
296 Commits
release-3.
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
|
5847a50334 | ||
|
1ade9b39e4 | ||
|
4c94e44710 | ||
|
d640a37984 | ||
|
e4c8e4905c | ||
|
4d30633cd4 | ||
|
6a0727acdc | ||
|
df72846b89 | ||
|
b5594371ab | ||
|
d7553893c4 | ||
|
48dc4c02ae | ||
|
f796f92058 | ||
|
fad280f94b | ||
|
cf9d1fbd1a | ||
|
0bc04a4df0 | ||
|
2b47ef1266 | ||
|
e43d1781bf | ||
|
d51c1707e3 | ||
|
faec26b873 | ||
|
0de7adfa37 | ||
|
defeb1a56f | ||
|
4b99ab7066 | ||
|
9cf81ac7f5 | ||
|
1358acfd7c | ||
|
99eeb52b76 | ||
|
b9b15b7007 | ||
|
293d64e122 | ||
|
b71cf56bda | ||
|
afada9ed40 | ||
|
75b6545bc2 | ||
|
973dfbf868 | ||
|
99f63f39eb | ||
|
d4faeb064b | ||
|
941cf6979e | ||
|
566c8a1bbc | ||
|
53f166274a | ||
|
57a575b5f0 | ||
|
51044167d1 | ||
|
009d59335f | ||
|
ec5729a99f | ||
|
86c472f4f7 | ||
|
c939f1b2c7 | ||
|
b3421e397d | ||
|
c6272fca07 | ||
|
e7ad87e15f | ||
|
737894027a | ||
|
66342f5b89 | ||
|
dec6c7ea8c | ||
|
f847a1a567 | ||
|
6763de2f25 | ||
|
09b6add6ee | ||
|
810d249ca2 | ||
|
29ea1c85b4 | ||
|
f19a6b9714 | ||
|
d06c2cf0f7 | ||
|
7e08109229 | ||
|
defd36ad7f | ||
|
39e51e5599 | ||
|
6768490f69 | ||
|
55b97ffc27 | ||
|
e7e016637b | ||
|
e1af6584d9 | ||
|
23a513baec | ||
|
b343bf783a | ||
|
8be701db0a | ||
|
90771c1762 | ||
|
759950c1a6 | ||
|
205be67622 | ||
|
1a128f9a76 | ||
|
223ae1dfc2 | ||
|
965894a875 | ||
|
5c54e96aab | ||
|
df75b70f3e | ||
|
4bdae294cb | ||
|
253c6e1fc1 | ||
|
9c4ba813d4 | ||
|
41d660dd98 | ||
|
36d1f87c5a | ||
|
9bc9e42c94 | ||
|
eb7152436c | ||
|
2bc79701e6 | ||
|
29b54d12cc | ||
|
1a04d15d4d | ||
|
f6fc8c08a4 | ||
|
699c642128 | ||
|
a9ed32663a | ||
|
97db218829 | ||
|
5b186c936d | ||
|
eed4d0d30f | ||
|
366451c11c | ||
|
9d13b91f46 | ||
|
7f692e7b28 | ||
|
7137dc387a | ||
|
757c67b7d8 | ||
|
63bdd193e0 | ||
|
66ecbd8545 | ||
|
d64a515476 | ||
|
34a9ed3587 | ||
|
ba1776d6a9 | ||
|
4fe95d6870 | ||
|
943f2e1a7b | ||
|
c77d6f39f2 | ||
|
7bd5c793bb | ||
|
61601a052c | ||
|
0c0024497d | ||
|
46a9e5657f | ||
|
4b90357d79 | ||
|
38ac0bcc8e | ||
|
b300e06226 | ||
|
f3eaf6fe04 | ||
|
a12a7d0b90 | ||
|
7479c61d05 | ||
|
3c91fbeaa6 | ||
|
2f2a306994 | ||
|
6c284060d7 | ||
|
1e8735eac1 | ||
|
7bcf6a621f | ||
|
825af557ae | ||
|
5e86c89989 | ||
|
ce4cb9c917 | ||
|
bda6879305 | ||
|
608d3f4d8d | ||
|
51ece03612 | ||
|
682527f509 | ||
|
5354c46e01 | ||
|
8e638dbf6d | ||
|
a0673f8e10 | ||
|
4193bf5641 | ||
|
ebaec047f2 | ||
|
3d9b257597 | ||
|
9d9685eec9 | ||
|
cf2ac56950 | ||
|
240ff27707 | ||
|
90241ae4e6 | ||
|
6400902a01 | ||
|
ee758e22a6 | ||
|
2ee13bbc24 | ||
|
e5a5933db6 | ||
|
8c628a6dc2 | ||
|
1fb4ebb34a | ||
|
64eec22884 | ||
|
abb1244b44 | ||
|
e816006b8e | ||
|
c123c93ca0 | ||
|
0e27b10b8f | ||
|
a876cc8c26 | ||
|
ce4035fdd3 | ||
|
95c0d81ba1 | ||
|
40cd7570e6 | ||
|
b003019958 | ||
|
d264369441 | ||
|
75fcfb1c1d | ||
|
170b75d0c9 | ||
|
994a0dcd4c | ||
|
5314c2bddf | ||
|
b6acc1b9db | ||
|
1b393b1d0b | ||
|
effb5d95d0 | ||
|
8ab7f6b595 | ||
|
1ee4894271 | ||
|
65539df39a | ||
|
8fef959418 | ||
|
f30c5f730e | ||
|
a8e74fff9b | ||
|
cb49a0c4cc | ||
|
3a413cbf30 | ||
|
cb8b245639 | ||
|
8fb9f19aae | ||
|
a0db23bd0e | ||
|
6f66423de9 | ||
|
7efc624b0a | ||
|
9c3126add0 | ||
|
f1ab6f31a1 | ||
|
f64a937a57 | ||
|
526329e697 | ||
|
89fdd1baf2 | ||
|
e132cdd325 | ||
|
bc24c78e06 | ||
|
6f093ade8a | ||
|
a159899d02 | ||
|
eb2aa1f83a | ||
|
cee8ac9dbe | ||
|
71ac6ab2b8 | ||
|
be769d4ca6 | ||
|
e802c5f082 | ||
|
f64373a29f | ||
|
a1683dfb67 | ||
|
e803efc6fc | ||
|
459c62b339 | ||
|
1b3109d650 | ||
|
ce0c33f62a | ||
|
077db77259 | ||
|
30e1d29f58 | ||
|
04e9789e7f | ||
|
b51b4c92e2 | ||
|
74a96bf7c2 | ||
|
cd7b21a703 | ||
|
834aea70a7 | ||
|
85bc9b69ae | ||
|
f3fef8934e | ||
|
43279ee010 | ||
|
6d0697eb89 | ||
|
d5128b3e87 | ||
|
9feb7096ee | ||
|
34aad4046f | ||
|
80f15a41c4 | ||
|
2f773fca18 | ||
|
ba464ec93a | ||
|
80d5a1ec1f | ||
|
f2a98339e2 | ||
|
2478eef550 | ||
|
7307380091 | ||
|
fb610f99df | ||
|
aa1ffc9319 | ||
|
ef9e0e743a | ||
|
820db008ff | ||
|
05ae327553 | ||
|
9b8d8b020f | ||
|
92b096b05b | ||
|
8bd1853b56 | ||
|
96024e88e9 | ||
|
d6008e896a | ||
|
10b6399d30 | ||
|
eeeb62b433 | ||
|
9ff6358dc9 | ||
|
bea5f94de6 | ||
|
e28b93e0cc | ||
|
9a8a0af7ba | ||
|
d03be5ea5f | ||
|
7fca351e05 | ||
|
d7c12ccd60 | ||
|
74854ac65d | ||
|
d48e4b680e | ||
|
39d46e2599 | ||
|
d6de9ce5d9 | ||
|
9f981a7741 | ||
|
6a33472214 | ||
|
84e68b3a73 | ||
|
b02e579c1c | ||
|
6851ff8fab | ||
|
7313cc777e | ||
|
ace3b806a9 | ||
|
ef58752db8 | ||
|
8b8e065441 | ||
|
e3eff2a976 | ||
|
e005455881 | ||
|
26c6ffa458 | ||
|
457e13634e | ||
|
c767712c64 | ||
|
689eaab3e2 | ||
|
fb08d1b27e | ||
|
6e4348b0ea | ||
|
4a76763a8a | ||
|
55664c1c10 | ||
|
d4938e34b0 | ||
|
c20b658f70 | ||
|
31e43ce124 | ||
|
dc65058c20 | ||
|
e59222496a | ||
|
f4761b5e08 | ||
|
9c310f789f | ||
|
ad596f4390 | ||
|
6323180344 | ||
|
9a3aeb8a99 | ||
|
3dbac0f88b | ||
|
9ebee7de32 | ||
|
0061a305d8 | ||
|
5a780dfab1 | ||
|
aaddf41e5b | ||
|
0b4944f125 | ||
|
60c9955f51 | ||
|
ae63843647 | ||
|
265c621c9e | ||
|
bfb672f326 | ||
|
fe1ab6d2ef | ||
|
5e7d9d2fcf | ||
|
496cc64bc6 | ||
|
685bdc87e6 | ||
|
8671e40217 | ||
|
67de119566 | ||
|
1e1efa294e | ||
|
9f5d383d50 | ||
|
8880871951 | ||
|
468f92261a | ||
|
6fafa40d93 | ||
|
bef207e9b7 | ||
|
1e0775a3da | ||
|
da6b378e64 | ||
|
53f597b6d0 | ||
|
d53336af06 | ||
|
292908ca4a | ||
|
7c99e30920 | ||
|
b7f54e42b2 | ||
|
9dd71fa32e | ||
|
0c4b53e2f1 | ||
|
0c109c9d37 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,6 +11,7 @@
|
|||||||
/phpBB/images/avatars/gallery/*
|
/phpBB/images/avatars/gallery/*
|
||||||
/phpBB/images/avatars/upload/*
|
/phpBB/images/avatars/upload/*
|
||||||
/phpBB/images/ranks/*
|
/phpBB/images/ranks/*
|
||||||
|
/phpBB/install/schemas/schema.json
|
||||||
/phpBB/language/*
|
/phpBB/language/*
|
||||||
!/phpBB/language/en
|
!/phpBB/language/en
|
||||||
/phpBB/store/*
|
/phpBB/store/*
|
||||||
|
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
||||||
<!-- a few settings for the build -->
|
<!-- a few settings for the build -->
|
||||||
<property name="newversion" value="3.1.0-RC4" />
|
<property name="newversion" value="3.1.0-RC6" />
|
||||||
<property name="prevversion" value="3.1.0-RC3" />
|
<property name="prevversion" value="3.1.0-RC5" />
|
||||||
<property name="olderversions" value="3.0.12, 3.1.0-a1, 3.1.0-a2, 3.1.0-a3, 3.1.0-b1, 3.1.0-b2, 3.1.0-b3, 3.1.0-b4, 3.1.0-RC1, 3.1.0-RC2" />
|
<property name="olderversions" value="3.0.12, 3.1.0-a1, 3.1.0-a2, 3.1.0-a3, 3.1.0-b1, 3.1.0-b2, 3.1.0-b3, 3.1.0-b4, 3.1.0-RC1, 3.1.0-RC2, 3.1.0-RC3, 3.1.0-RC4" />
|
||||||
<!-- no configuration should be needed beyond this point -->
|
<!-- no configuration should be needed beyond this point -->
|
||||||
|
|
||||||
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
||||||
@@ -273,6 +273,9 @@
|
|||||||
</else>
|
</else>
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
|
<!-- Create schema.json -->
|
||||||
|
<exec dir="${dir}" command="php develop/create_schema_files.php" />
|
||||||
|
|
||||||
<delete file="${dir}/config.php" />
|
<delete file="${dir}/config.php" />
|
||||||
<delete dir="${dir}/develop" />
|
<delete dir="${dir}/develop" />
|
||||||
<delete dir="${dir}/install/data" />
|
<delete dir="${dir}/install/data" />
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<form id="list" method="post" action="{U_ACTION}">
|
<form id="list" method="post" action="{U_ACTION}">
|
||||||
|
|
||||||
<fieldset class="display-options" style="float: left">
|
<fieldset class="display-options search-box">
|
||||||
{L_SEARCH_KEYWORDS}{L_COLON} <input type="text" name="keywords" value="{S_KEYWORDS}" /> <input type="submit" class="button2" name="filter" value="{L_SEARCH}" />
|
{L_SEARCH_KEYWORDS}{L_COLON} <input type="text" name="keywords" value="{S_KEYWORDS}" /> <input type="submit" class="button2" name="filter" value="{L_SEARCH}" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
@@ -109,6 +109,14 @@ hr {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.search-box {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .search-box {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
.small {
|
.small {
|
||||||
font-size: 0.85em;
|
font-size: 0.85em;
|
||||||
}
|
}
|
||||||
@@ -1773,6 +1781,7 @@ li.pagination ul {
|
|||||||
margin: 10px 0;
|
margin: 10px 0;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
clear: both;
|
||||||
}
|
}
|
||||||
|
|
||||||
.success {
|
.success {
|
||||||
|
@@ -1,17 +1,25 @@
|
|||||||
<dl>
|
<dl>
|
||||||
<dt><label for="timezone">{L_BOARD_TIMEZONE}{L_COLON}</label></dt>
|
<dt><label for="timezone">{L_BOARD_TIMEZONE}{L_COLON}</label></dt>
|
||||||
<!-- IF S_TZ_DATE_OPTIONS -->
|
<!-- IF .timezone_date -->
|
||||||
<dd id="tz_select_date" style="display: none;">
|
<dd id="tz_select_date" style="display: none;">
|
||||||
<select name="tz_date" id="tz_date" class="autowidth tz_select">
|
<select name="tz_date" id="tz_date" class="autowidth tz_select">
|
||||||
<option value="">{L_SELECT_CURRENT_TIME}</option>
|
<option value="">{L_SELECT_CURRENT_TIME}</option>
|
||||||
{S_TZ_DATE_OPTIONS}
|
<!-- BEGIN timezone_date -->
|
||||||
|
<option value="{timezone_date.VALUE}"<!-- IF timezone_date.SELECTED --> selected="selected"<!-- ENDIF -->>{timezone_date.TITLE}</option>
|
||||||
|
<!-- END timezone_date -->
|
||||||
</select>
|
</select>
|
||||||
</dd>
|
</dd>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
<dd>
|
<dd>
|
||||||
<select name="tz" id="timezone" class="autowidth tz_select">
|
<select name="tz" id="timezone" class="autowidth tz_select">
|
||||||
<option value="">{L_SELECT_TIMEZONE}</option>
|
<option value="">{L_SELECT_TIMEZONE}</option>
|
||||||
{S_TZ_OPTIONS}
|
<!-- BEGIN timezone_select -->
|
||||||
|
<optgroup label="{timezone_select.LABEL}" data-tz-value="{timezone_select.VALUE}">
|
||||||
|
<!-- BEGIN timezone_options -->
|
||||||
|
<option title="{timezone_select.timezone_options.TITLE}" value="{timezone_select.timezone_options.VALUE}"<!-- IF timezone_select.timezone_options.SELECTED --> selected="selected"<!-- ENDIF -->>{timezone_select.timezone_options.LABEL}</option>
|
||||||
|
<!-- END timezone_options -->
|
||||||
|
</optgroup>
|
||||||
|
<!-- END timezone_select -->
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- INCLUDEJS timezone.js -->
|
<!-- INCLUDEJS timezone.js -->
|
||||||
|
@@ -786,7 +786,7 @@ phpbb.timezoneSwitchDate = function(keepSelection) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($tzDate.val() !== '') {
|
if ($tzDate.val() !== '') {
|
||||||
$timezone.children('optgroup').remove(':not([label="' + $('#tz_date').val() + '"])');
|
$timezone.children('optgroup').remove(':not([data-tz-value="' + $('#tz_date').val() + '"])');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($tzDate.val() === $tzSelectDateSuggest.attr('data-suggested-tz')) {
|
if ($tzDate.val() === $tzSelectDateSuggest.attr('data-suggested-tz')) {
|
||||||
@@ -795,7 +795,7 @@ phpbb.timezoneSwitchDate = function(keepSelection) {
|
|||||||
$tzSelectDateSuggest.css('display', 'inline');
|
$tzSelectDateSuggest.css('display', 'inline');
|
||||||
}
|
}
|
||||||
|
|
||||||
var $tzOptions = $timezone.children('optgroup[label="' + $tzDate.val() + '"]').children('option');
|
var $tzOptions = $timezone.children('optgroup[data-tz-value="' + $tzDate.val() + '"]').children('option');
|
||||||
|
|
||||||
if ($tzOptions.length === 1) {
|
if ($tzOptions.length === 1) {
|
||||||
// If there is only one timezone for the selected date, we just select that automatically.
|
// If there is only one timezone for the selected date, we just select that automatically.
|
||||||
@@ -849,7 +849,7 @@ phpbb.timezonePreselectSelect = function(forceSelector) {
|
|||||||
minutes = minutes.toString();
|
minutes = minutes.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
var prefix = 'GMT' + sign + hours + ':' + minutes;
|
var prefix = 'UTC' + sign + hours + ':' + minutes;
|
||||||
var prefixLength = prefix.length;
|
var prefixLength = prefix.length;
|
||||||
var selectorOptions = $('option', '#tz_date');
|
var selectorOptions = $('option', '#tz_date');
|
||||||
var i;
|
var i;
|
||||||
|
@@ -266,10 +266,6 @@ function mozWrap(txtarea, open, close) {
|
|||||||
var selEnd = txtarea.selectionEnd;
|
var selEnd = txtarea.selectionEnd;
|
||||||
var scrollTop = txtarea.scrollTop;
|
var scrollTop = txtarea.scrollTop;
|
||||||
|
|
||||||
if (selEnd === 1 || selEnd === 2) {
|
|
||||||
selEnd = selLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
var s1 = (txtarea.value).substring(0,selStart);
|
var s1 = (txtarea.value).substring(0,selStart);
|
||||||
var s2 = (txtarea.value).substring(selStart, selEnd);
|
var s2 = (txtarea.value).substring(selStart, selEnd);
|
||||||
var s3 = (txtarea.value).substring(selEnd, selLength);
|
var s3 = (txtarea.value).substring(selEnd, selLength);
|
||||||
|
@@ -104,7 +104,7 @@ require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx);
|
|||||||
|
|
||||||
// Add own hook handler
|
// Add own hook handler
|
||||||
require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
|
require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
|
||||||
$phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('\phpbb\template\template', 'display')));
|
$phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('template', 'display')));
|
||||||
$phpbb_hook_finder = $phpbb_container->get('hook_finder');
|
$phpbb_hook_finder = $phpbb_container->get('hook_finder');
|
||||||
|
|
||||||
foreach ($phpbb_hook_finder->find() as $hook)
|
foreach ($phpbb_hook_finder->find() as $hook)
|
||||||
|
@@ -1,4 +1,9 @@
|
|||||||
services:
|
services:
|
||||||
|
# ----- Auth management -----
|
||||||
|
auth:
|
||||||
|
class: phpbb\auth\auth
|
||||||
|
|
||||||
|
# ----- Auth providers -----
|
||||||
auth.provider_collection:
|
auth.provider_collection:
|
||||||
class: phpbb\auth\provider_collection
|
class: phpbb\auth\provider_collection
|
||||||
arguments:
|
arguments:
|
||||||
@@ -6,6 +11,7 @@ services:
|
|||||||
- @config
|
- @config
|
||||||
tags:
|
tags:
|
||||||
- { name: service_collection, tag: auth.provider }
|
- { name: service_collection, tag: auth.provider }
|
||||||
|
|
||||||
auth.provider.db:
|
auth.provider.db:
|
||||||
class: phpbb\auth\provider\db
|
class: phpbb\auth\provider\db
|
||||||
arguments:
|
arguments:
|
||||||
@@ -19,6 +25,7 @@ services:
|
|||||||
- %core.php_ext%
|
- %core.php_ext%
|
||||||
tags:
|
tags:
|
||||||
- { name: auth.provider }
|
- { name: auth.provider }
|
||||||
|
|
||||||
auth.provider.apache:
|
auth.provider.apache:
|
||||||
class: phpbb\auth\provider\apache
|
class: phpbb\auth\provider\apache
|
||||||
arguments:
|
arguments:
|
||||||
@@ -31,6 +38,7 @@ services:
|
|||||||
- %core.php_ext%
|
- %core.php_ext%
|
||||||
tags:
|
tags:
|
||||||
- { name: auth.provider }
|
- { name: auth.provider }
|
||||||
|
|
||||||
auth.provider.ldap:
|
auth.provider.ldap:
|
||||||
class: phpbb\auth\provider\ldap
|
class: phpbb\auth\provider\ldap
|
||||||
arguments:
|
arguments:
|
||||||
@@ -40,6 +48,7 @@ services:
|
|||||||
- @user
|
- @user
|
||||||
tags:
|
tags:
|
||||||
- { name: auth.provider }
|
- { name: auth.provider }
|
||||||
|
|
||||||
auth.provider.oauth:
|
auth.provider.oauth:
|
||||||
class: phpbb\auth\provider\oauth\oauth
|
class: phpbb\auth\provider\oauth\oauth
|
||||||
arguments:
|
arguments:
|
||||||
@@ -57,12 +66,15 @@ services:
|
|||||||
- %core.php_ext%
|
- %core.php_ext%
|
||||||
tags:
|
tags:
|
||||||
- { name: auth.provider }
|
- { name: auth.provider }
|
||||||
|
|
||||||
|
# ----- OAuth services providers -----
|
||||||
auth.provider.oauth.service_collection:
|
auth.provider.oauth.service_collection:
|
||||||
class: phpbb\di\service_collection
|
class: phpbb\di\service_collection
|
||||||
arguments:
|
arguments:
|
||||||
- @service_container
|
- @service_container
|
||||||
tags:
|
tags:
|
||||||
- { name: service_collection, tag: auth.provider.oauth.service }
|
- { name: service_collection, tag: auth.provider.oauth.service }
|
||||||
|
|
||||||
auth.provider.oauth.service.bitly:
|
auth.provider.oauth.service.bitly:
|
||||||
class: phpbb\auth\provider\oauth\service\bitly
|
class: phpbb\auth\provider\oauth\service\bitly
|
||||||
arguments:
|
arguments:
|
||||||
@@ -70,6 +82,7 @@ services:
|
|||||||
- @request
|
- @request
|
||||||
tags:
|
tags:
|
||||||
- { name: auth.provider.oauth.service }
|
- { name: auth.provider.oauth.service }
|
||||||
|
|
||||||
auth.provider.oauth.service.facebook:
|
auth.provider.oauth.service.facebook:
|
||||||
class: phpbb\auth\provider\oauth\service\facebook
|
class: phpbb\auth\provider\oauth\service\facebook
|
||||||
arguments:
|
arguments:
|
||||||
@@ -77,6 +90,7 @@ services:
|
|||||||
- @request
|
- @request
|
||||||
tags:
|
tags:
|
||||||
- { name: auth.provider.oauth.service }
|
- { name: auth.provider.oauth.service }
|
||||||
|
|
||||||
auth.provider.oauth.service.google:
|
auth.provider.oauth.service.google:
|
||||||
class: phpbb\auth\provider\oauth\service\google
|
class: phpbb\auth\provider\oauth\service\google
|
||||||
arguments:
|
arguments:
|
@@ -1,4 +1,18 @@
|
|||||||
services:
|
services:
|
||||||
|
avatar.manager:
|
||||||
|
class: phpbb\avatar\manager
|
||||||
|
arguments:
|
||||||
|
- @config
|
||||||
|
- @avatar.driver_collection
|
||||||
|
|
||||||
|
# ----- Avatar drivers -----
|
||||||
|
avatar.driver_collection:
|
||||||
|
class: phpbb\di\service_collection
|
||||||
|
arguments:
|
||||||
|
- @service_container
|
||||||
|
tags:
|
||||||
|
- { name: service_collection, tag: avatar.driver }
|
||||||
|
|
||||||
avatar.driver.gravatar:
|
avatar.driver.gravatar:
|
||||||
class: phpbb\avatar\driver\gravatar
|
class: phpbb\avatar\driver\gravatar
|
||||||
arguments:
|
arguments:
|
||||||
@@ -51,10 +65,3 @@ services:
|
|||||||
- [set_name, [avatar.driver.upload]]
|
- [set_name, [avatar.driver.upload]]
|
||||||
tags:
|
tags:
|
||||||
- { name: avatar.driver }
|
- { name: avatar.driver }
|
||||||
|
|
||||||
avatar.driver_collection:
|
|
||||||
class: phpbb\di\service_collection
|
|
||||||
arguments:
|
|
||||||
- @service_container
|
|
||||||
tags:
|
|
||||||
- { name: service_collection, tag: avatar.driver }
|
|
@@ -1,8 +1,3 @@
|
|||||||
parameters:
|
|
||||||
tables.captcha_qa_questions: %core.table_prefix%captcha_questions
|
|
||||||
tables.captcha_qa_answers: %core.table_prefix%captcha_answers
|
|
||||||
tables.captcha_qa_confirm: %core.table_prefix%qa_confirm
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
captcha.factory:
|
captcha.factory:
|
||||||
class: phpbb\captcha\factory
|
class: phpbb\captcha\factory
|
||||||
@@ -10,6 +5,8 @@ services:
|
|||||||
- @service_container
|
- @service_container
|
||||||
- @captcha.plugins.service_collection
|
- @captcha.plugins.service_collection
|
||||||
|
|
||||||
|
# ----- Captcha plugins -----
|
||||||
|
# Scope MUST be prototype for all the plugins to work.
|
||||||
captcha.plugins.service_collection:
|
captcha.plugins.service_collection:
|
||||||
class: phpbb\di\service_collection
|
class: phpbb\di\service_collection
|
||||||
arguments:
|
arguments:
|
||||||
@@ -19,7 +16,7 @@ services:
|
|||||||
|
|
||||||
core.captcha.plugins.gd:
|
core.captcha.plugins.gd:
|
||||||
class: phpbb\captcha\plugins\gd
|
class: phpbb\captcha\plugins\gd
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
calls:
|
calls:
|
||||||
- [set_name, [core.captcha.plugins.gd]]
|
- [set_name, [core.captcha.plugins.gd]]
|
||||||
tags:
|
tags:
|
||||||
@@ -27,7 +24,7 @@ services:
|
|||||||
|
|
||||||
core.captcha.plugins.gd_wave:
|
core.captcha.plugins.gd_wave:
|
||||||
class: phpbb\captcha\plugins\gd_wave
|
class: phpbb\captcha\plugins\gd_wave
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
calls:
|
calls:
|
||||||
- [set_name, [core.captcha.plugins.gd_wave]]
|
- [set_name, [core.captcha.plugins.gd_wave]]
|
||||||
tags:
|
tags:
|
||||||
@@ -35,7 +32,7 @@ services:
|
|||||||
|
|
||||||
core.captcha.plugins.nogd:
|
core.captcha.plugins.nogd:
|
||||||
class: phpbb\captcha\plugins\nogd
|
class: phpbb\captcha\plugins\nogd
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
calls:
|
calls:
|
||||||
- [set_name, [core.captcha.plugins.nogd]]
|
- [set_name, [core.captcha.plugins.nogd]]
|
||||||
tags:
|
tags:
|
||||||
@@ -43,7 +40,7 @@ services:
|
|||||||
|
|
||||||
core.captcha.plugins.qa:
|
core.captcha.plugins.qa:
|
||||||
class: phpbb\captcha\plugins\qa
|
class: phpbb\captcha\plugins\qa
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- %tables.captcha_qa_questions%
|
- %tables.captcha_qa_questions%
|
||||||
- %tables.captcha_qa_answers%
|
- %tables.captcha_qa_answers%
|
||||||
@@ -55,7 +52,7 @@ services:
|
|||||||
|
|
||||||
core.captcha.plugins.recaptcha:
|
core.captcha.plugins.recaptcha:
|
||||||
class: phpbb\captcha\plugins\recaptcha
|
class: phpbb\captcha\plugins\recaptcha
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
calls:
|
calls:
|
||||||
- [set_name, [core.captcha.plugins.recaptcha]]
|
- [set_name, [core.captcha.plugins.recaptcha]]
|
||||||
tags:
|
tags:
|
||||||
|
71
phpBB/config/content.yml
Normal file
71
phpBB/config/content.yml
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
services:
|
||||||
|
content.visibility:
|
||||||
|
class: phpbb\content_visibility
|
||||||
|
arguments:
|
||||||
|
- @auth
|
||||||
|
- @config
|
||||||
|
- @dbal.conn
|
||||||
|
- @user
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
- %tables.forums%
|
||||||
|
- %tables.posts%
|
||||||
|
- %tables.topics%
|
||||||
|
- %tables.users%
|
||||||
|
|
||||||
|
groupposition.legend:
|
||||||
|
class: phpbb\groupposition\legend
|
||||||
|
arguments:
|
||||||
|
- @dbal.conn
|
||||||
|
- @user
|
||||||
|
|
||||||
|
groupposition.teampage:
|
||||||
|
class: phpbb\groupposition\teampage
|
||||||
|
arguments:
|
||||||
|
- @dbal.conn
|
||||||
|
- @user
|
||||||
|
- @cache.driver
|
||||||
|
|
||||||
|
message.form.admin:
|
||||||
|
class: phpbb\message\admin_form
|
||||||
|
arguments:
|
||||||
|
- @auth
|
||||||
|
- @config
|
||||||
|
- @config_text
|
||||||
|
- @dbal.conn
|
||||||
|
- @user
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
|
||||||
|
message.form.topic:
|
||||||
|
class: phpbb\message\topic_form
|
||||||
|
arguments:
|
||||||
|
- @auth
|
||||||
|
- @config
|
||||||
|
- @dbal.conn
|
||||||
|
- @user
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
|
||||||
|
message.form.user:
|
||||||
|
class: phpbb\message\user_form
|
||||||
|
arguments:
|
||||||
|
- @auth
|
||||||
|
- @config
|
||||||
|
- @dbal.conn
|
||||||
|
- @user
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
|
||||||
|
pagination:
|
||||||
|
class: phpbb\pagination
|
||||||
|
arguments:
|
||||||
|
- @template
|
||||||
|
- @user
|
||||||
|
- @controller.helper
|
||||||
|
- @dispatcher
|
||||||
|
|
||||||
|
viewonline_helper:
|
||||||
|
class: phpbb\viewonline_helper
|
||||||
|
arguments:
|
||||||
|
- @filesystem
|
@@ -1,4 +1,26 @@
|
|||||||
services:
|
services:
|
||||||
|
cron.manager:
|
||||||
|
class: phpbb\cron\manager
|
||||||
|
arguments:
|
||||||
|
- @cron.task_collection
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
|
||||||
|
cron.lock_db:
|
||||||
|
class: phpbb\lock\db
|
||||||
|
arguments:
|
||||||
|
- cron_lock
|
||||||
|
- @config
|
||||||
|
- @dbal.conn
|
||||||
|
|
||||||
|
# ----- Cron tasks -----
|
||||||
|
cron.task_collection:
|
||||||
|
class: phpbb\di\service_collection
|
||||||
|
arguments:
|
||||||
|
- @service_container
|
||||||
|
tags:
|
||||||
|
- { name: service_collection, tag: cron.task }
|
||||||
|
|
||||||
cron.task.core.prune_all_forums:
|
cron.task.core.prune_all_forums:
|
||||||
class: phpbb\cron\task\core\prune_all_forums
|
class: phpbb\cron\task\core\prune_all_forums
|
||||||
arguments:
|
arguments:
|
@@ -1,4 +1,20 @@
|
|||||||
services:
|
services:
|
||||||
|
dbal.conn:
|
||||||
|
class: phpbb\db\driver\factory
|
||||||
|
arguments:
|
||||||
|
- @service_container
|
||||||
|
|
||||||
|
dbal.conn.driver:
|
||||||
|
class: %dbal.driver.class%
|
||||||
|
calls:
|
||||||
|
- [sql_connect, [%dbal.dbhost%, %dbal.dbuser%, %dbal.dbpasswd%, %dbal.dbname%, %dbal.dbport%, false, %dbal.new_link%]]
|
||||||
|
|
||||||
|
dbal.tools:
|
||||||
|
class: phpbb\db\tools
|
||||||
|
arguments:
|
||||||
|
- @dbal.conn
|
||||||
|
|
||||||
|
# ----- Migrator -----
|
||||||
migrator:
|
migrator:
|
||||||
class: phpbb\db\migrator
|
class: phpbb\db\migrator
|
||||||
arguments:
|
arguments:
|
||||||
@@ -15,6 +31,7 @@ services:
|
|||||||
migrator.helper:
|
migrator.helper:
|
||||||
class: phpbb\db\migration\helper
|
class: phpbb\db\migration\helper
|
||||||
|
|
||||||
|
# ----- Migrator's tools -----
|
||||||
migrator.tool_collection:
|
migrator.tool_collection:
|
||||||
class: phpbb\di\service_collection
|
class: phpbb\di\service_collection
|
||||||
arguments:
|
arguments:
|
34
phpBB/config/event.yml
Normal file
34
phpBB/config/event.yml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
services:
|
||||||
|
dispatcher:
|
||||||
|
class: phpbb\event\dispatcher
|
||||||
|
arguments:
|
||||||
|
- @service_container
|
||||||
|
|
||||||
|
hook_finder:
|
||||||
|
class: phpbb\hook\finder
|
||||||
|
arguments:
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
- @cache.driver
|
||||||
|
|
||||||
|
kernel_request_subscriber:
|
||||||
|
class: phpbb\event\kernel_request_subscriber
|
||||||
|
arguments:
|
||||||
|
- @ext.manager
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
tags:
|
||||||
|
- { name: kernel.event_subscriber }
|
||||||
|
|
||||||
|
kernel_exception_subscriber:
|
||||||
|
class: phpbb\event\kernel_exception_subscriber
|
||||||
|
arguments:
|
||||||
|
- @template
|
||||||
|
- @user
|
||||||
|
tags:
|
||||||
|
- { name: kernel.event_subscriber }
|
||||||
|
|
||||||
|
kernel_terminate_subscriber:
|
||||||
|
class: phpbb\event\kernel_terminate_subscriber
|
||||||
|
tags:
|
||||||
|
- { name: kernel.event_subscriber }
|
@@ -1,11 +1,11 @@
|
|||||||
parameters:
|
|
||||||
mimetype.guesser.priority.lowest: -2
|
|
||||||
mimetype.guesser.priority.low: -1
|
|
||||||
mimetype.guesser.priority.default: 0
|
|
||||||
mimetype.guesser.priority.high: 1
|
|
||||||
mimetype.guesser.priority.highest: 2
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
mimetype.guesser_collection:
|
||||||
|
class: phpbb\di\service_collection
|
||||||
|
arguments:
|
||||||
|
- @service_container
|
||||||
|
tags:
|
||||||
|
- { name: service_collection, tag: mimetype.guessers }
|
||||||
|
|
||||||
mimetype.fileinfo_mimetype_guesser:
|
mimetype.fileinfo_mimetype_guesser:
|
||||||
class: Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser
|
class: Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser
|
||||||
tags:
|
tags:
|
||||||
@@ -30,13 +30,6 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
- { name: mimetype.guessers }
|
- { name: mimetype.guessers }
|
||||||
|
|
||||||
mimetype.guesser_collection:
|
|
||||||
class: phpbb\di\service_collection
|
|
||||||
arguments:
|
|
||||||
- @service_container
|
|
||||||
tags:
|
|
||||||
- { name: service_collection, tag: mimetype.guessers }
|
|
||||||
|
|
||||||
mimetype.guesser:
|
mimetype.guesser:
|
||||||
class: phpbb\mimetype\guesser
|
class: phpbb\mimetype\guesser
|
||||||
arguments:
|
arguments:
|
@@ -1,4 +1,23 @@
|
|||||||
services:
|
services:
|
||||||
|
notification_manager:
|
||||||
|
class: phpbb\notification\manager
|
||||||
|
arguments:
|
||||||
|
- @notification.type_collection
|
||||||
|
- @notification.method_collection
|
||||||
|
- @service_container
|
||||||
|
- @user_loader
|
||||||
|
- @config
|
||||||
|
- @dbal.conn
|
||||||
|
- @cache
|
||||||
|
- @user
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
- %tables.notification_types%
|
||||||
|
- %tables.notifications%
|
||||||
|
- %tables.user_notifications%
|
||||||
|
|
||||||
|
# ----- Notification's types -----
|
||||||
|
# Scope MUST be prototype for all the plugins to work.
|
||||||
notification.type_collection:
|
notification.type_collection:
|
||||||
class: phpbb\di\service_collection
|
class: phpbb\di\service_collection
|
||||||
arguments:
|
arguments:
|
||||||
@@ -6,16 +25,9 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
- { name: service_collection, tag: notification.type }
|
- { name: service_collection, tag: notification.type }
|
||||||
|
|
||||||
notification.method_collection:
|
|
||||||
class: phpbb\di\service_collection
|
|
||||||
arguments:
|
|
||||||
- @service_container
|
|
||||||
tags:
|
|
||||||
- { name: service_collection, tag: notification.method }
|
|
||||||
|
|
||||||
notification.type.approve_post:
|
notification.type.approve_post:
|
||||||
class: phpbb\notification\type\approve_post
|
class: phpbb\notification\type\approve_post
|
||||||
scope: prototype # scope MUST be prototype for this to work! # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -33,7 +45,7 @@ services:
|
|||||||
|
|
||||||
notification.type.approve_topic:
|
notification.type.approve_topic:
|
||||||
class: phpbb\notification\type\approve_topic
|
class: phpbb\notification\type\approve_topic
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -51,7 +63,7 @@ services:
|
|||||||
|
|
||||||
notification.type.bookmark:
|
notification.type.bookmark:
|
||||||
class: phpbb\notification\type\bookmark
|
class: phpbb\notification\type\bookmark
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -69,7 +81,7 @@ services:
|
|||||||
|
|
||||||
notification.type.disapprove_post:
|
notification.type.disapprove_post:
|
||||||
class: phpbb\notification\type\disapprove_post
|
class: phpbb\notification\type\disapprove_post
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -87,7 +99,7 @@ services:
|
|||||||
|
|
||||||
notification.type.disapprove_topic:
|
notification.type.disapprove_topic:
|
||||||
class: phpbb\notification\type\disapprove_topic
|
class: phpbb\notification\type\disapprove_topic
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -105,7 +117,7 @@ services:
|
|||||||
|
|
||||||
notification.type.group_request:
|
notification.type.group_request:
|
||||||
class: phpbb\notification\type\group_request
|
class: phpbb\notification\type\group_request
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -123,7 +135,7 @@ services:
|
|||||||
|
|
||||||
notification.type.group_request_approved:
|
notification.type.group_request_approved:
|
||||||
class: phpbb\notification\type\group_request_approved
|
class: phpbb\notification\type\group_request_approved
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -141,7 +153,7 @@ services:
|
|||||||
|
|
||||||
notification.type.pm:
|
notification.type.pm:
|
||||||
class: phpbb\notification\type\pm
|
class: phpbb\notification\type\pm
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -159,7 +171,7 @@ services:
|
|||||||
|
|
||||||
notification.type.post:
|
notification.type.post:
|
||||||
class: phpbb\notification\type\post
|
class: phpbb\notification\type\post
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -177,7 +189,7 @@ services:
|
|||||||
|
|
||||||
notification.type.post_in_queue:
|
notification.type.post_in_queue:
|
||||||
class: phpbb\notification\type\post_in_queue
|
class: phpbb\notification\type\post_in_queue
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -195,7 +207,7 @@ services:
|
|||||||
|
|
||||||
notification.type.quote:
|
notification.type.quote:
|
||||||
class: phpbb\notification\type\quote
|
class: phpbb\notification\type\quote
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -213,7 +225,7 @@ services:
|
|||||||
|
|
||||||
notification.type.report_pm:
|
notification.type.report_pm:
|
||||||
class: phpbb\notification\type\report_pm
|
class: phpbb\notification\type\report_pm
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -231,7 +243,7 @@ services:
|
|||||||
|
|
||||||
notification.type.report_pm_closed:
|
notification.type.report_pm_closed:
|
||||||
class: phpbb\notification\type\report_pm_closed
|
class: phpbb\notification\type\report_pm_closed
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -249,7 +261,7 @@ services:
|
|||||||
|
|
||||||
notification.type.report_post:
|
notification.type.report_post:
|
||||||
class: phpbb\notification\type\report_post
|
class: phpbb\notification\type\report_post
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -267,7 +279,7 @@ services:
|
|||||||
|
|
||||||
notification.type.report_post_closed:
|
notification.type.report_post_closed:
|
||||||
class: phpbb\notification\type\report_post_closed
|
class: phpbb\notification\type\report_post_closed
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -285,7 +297,7 @@ services:
|
|||||||
|
|
||||||
notification.type.topic:
|
notification.type.topic:
|
||||||
class: phpbb\notification\type\topic
|
class: phpbb\notification\type\topic
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -303,7 +315,7 @@ services:
|
|||||||
|
|
||||||
notification.type.topic_in_queue:
|
notification.type.topic_in_queue:
|
||||||
class: phpbb\notification\type\topic_in_queue
|
class: phpbb\notification\type\topic_in_queue
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -321,7 +333,7 @@ services:
|
|||||||
|
|
||||||
notification.type.admin_activate_user:
|
notification.type.admin_activate_user:
|
||||||
class: phpbb\notification\type\admin_activate_user
|
class: phpbb\notification\type\admin_activate_user
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -336,10 +348,19 @@ services:
|
|||||||
- %tables.user_notifications%
|
- %tables.user_notifications%
|
||||||
tags:
|
tags:
|
||||||
- { name: notification.type }
|
- { name: notification.type }
|
||||||
|
|
||||||
|
# ----- Notification's methods -----
|
||||||
|
# Scope MUST be prototype for all the plugins to work.
|
||||||
|
notification.method_collection:
|
||||||
|
class: phpbb\di\service_collection
|
||||||
|
arguments:
|
||||||
|
- @service_container
|
||||||
|
tags:
|
||||||
|
- { name: service_collection, tag: notification.method }
|
||||||
|
|
||||||
notification.method.email:
|
notification.method.email:
|
||||||
class: phpbb\notification\method\email
|
class: phpbb\notification\method\email
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
@@ -354,7 +375,7 @@ services:
|
|||||||
|
|
||||||
notification.method.jabber:
|
notification.method.jabber:
|
||||||
class: phpbb\notification\method\jabber
|
class: phpbb\notification\method\jabber
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
- @dbal.conn
|
- @dbal.conn
|
@@ -1,3 +1,20 @@
|
|||||||
parameters:
|
parameters:
|
||||||
|
# Disable the usage of the super globals (_GET, _POST, _SERVER...)
|
||||||
core.disable_super_globals: true
|
core.disable_super_globals: true
|
||||||
|
|
||||||
|
# Datetime class to use
|
||||||
datetime.class: \phpbb\datetime
|
datetime.class: \phpbb\datetime
|
||||||
|
|
||||||
|
# Mimetype guesser priorities
|
||||||
|
mimetype.guesser.priority.lowest: -2
|
||||||
|
mimetype.guesser.priority.low: -1
|
||||||
|
mimetype.guesser.priority.default: 0
|
||||||
|
mimetype.guesser.priority.high: 1
|
||||||
|
mimetype.guesser.priority.highest: 2
|
||||||
|
|
||||||
|
# List of default password driver types
|
||||||
|
passwords.algorithms:
|
||||||
|
- passwords.driver.bcrypt_2y
|
||||||
|
- passwords.driver.bcrypt
|
||||||
|
- passwords.driver.salted_md5
|
||||||
|
- passwords.driver.phpass
|
||||||
|
@@ -1,11 +1,29 @@
|
|||||||
parameters:
|
|
||||||
passwords.algorithms:
|
|
||||||
- passwords.driver.bcrypt_2y
|
|
||||||
- passwords.driver.bcrypt
|
|
||||||
- passwords.driver.salted_md5
|
|
||||||
- passwords.driver.phpass
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
# ----- Password management -----
|
||||||
|
passwords.manager:
|
||||||
|
class: phpbb\passwords\manager
|
||||||
|
arguments:
|
||||||
|
- @config
|
||||||
|
- @passwords.driver_collection
|
||||||
|
- @passwords.helper
|
||||||
|
- %passwords.algorithms%
|
||||||
|
|
||||||
|
passwords.helper:
|
||||||
|
class: phpbb\passwords\helper
|
||||||
|
|
||||||
|
passwords.driver_helper:
|
||||||
|
class: phpbb\passwords\driver\helper
|
||||||
|
arguments:
|
||||||
|
- @config
|
||||||
|
|
||||||
|
# ----- Password's drivers -----
|
||||||
|
passwords.driver_collection:
|
||||||
|
class: phpbb\di\service_collection
|
||||||
|
arguments:
|
||||||
|
- @service_container
|
||||||
|
tags:
|
||||||
|
- { name: service_collection, tag: passwords.driver }
|
||||||
|
|
||||||
passwords.driver.bcrypt:
|
passwords.driver.bcrypt:
|
||||||
class: phpbb\passwords\driver\bcrypt
|
class: phpbb\passwords\driver\bcrypt
|
||||||
arguments:
|
arguments:
|
||||||
@@ -83,6 +101,7 @@ services:
|
|||||||
arguments:
|
arguments:
|
||||||
- @request
|
- @request
|
||||||
- @passwords.driver.salted_md5
|
- @passwords.driver.salted_md5
|
||||||
|
- @passwords.driver_helper
|
||||||
- %core.root_path%
|
- %core.root_path%
|
||||||
- %core.php_ext%
|
- %core.php_ext%
|
||||||
tags:
|
tags:
|
||||||
@@ -103,26 +122,3 @@ services:
|
|||||||
- @passwords.driver_helper
|
- @passwords.driver_helper
|
||||||
tags:
|
tags:
|
||||||
- { name: passwords.driver }
|
- { name: passwords.driver }
|
||||||
|
|
||||||
passwords.driver_collection:
|
|
||||||
class: phpbb\di\service_collection
|
|
||||||
arguments:
|
|
||||||
- @service_container
|
|
||||||
tags:
|
|
||||||
- { name: service_collection, tag: passwords.driver }
|
|
||||||
|
|
||||||
passwords.driver_helper:
|
|
||||||
class: phpbb\passwords\driver\helper
|
|
||||||
arguments:
|
|
||||||
- @config
|
|
||||||
|
|
||||||
passwords.manager:
|
|
||||||
class: phpbb\passwords\manager
|
|
||||||
arguments:
|
|
||||||
- @config
|
|
||||||
- @passwords.driver_collection
|
|
||||||
- @passwords.helper
|
|
||||||
- %passwords.algorithms%
|
|
||||||
|
|
||||||
passwords.helper:
|
|
||||||
class: phpbb\passwords\helper
|
|
@@ -19,6 +19,7 @@ services:
|
|||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
- %tables.profile_fields_options_language%
|
- %tables.profile_fields_options_language%
|
||||||
|
|
||||||
|
# ----- Profile fields types -----
|
||||||
profilefields.type_collection:
|
profilefields.type_collection:
|
||||||
class: phpbb\di\service_collection
|
class: phpbb\di\service_collection
|
||||||
arguments:
|
arguments:
|
@@ -1,34 +1,23 @@
|
|||||||
imports:
|
imports:
|
||||||
- { resource: tables.yml }
|
- { resource: auth.yml }
|
||||||
- { resource: cron_tasks.yml }
|
- { resource: avatar.yml }
|
||||||
- { resource: notifications.yml }
|
|
||||||
- { resource: migrator.yml }
|
|
||||||
- { resource: avatars.yml }
|
|
||||||
- { resource: feed.yml }
|
|
||||||
- { resource: auth_providers.yml }
|
|
||||||
- { resource: console.yml }
|
|
||||||
- { resource: mimetype_guessers.yml }
|
|
||||||
- { resource: passwords.yml }
|
|
||||||
- { resource: profilefields.yml }
|
|
||||||
- { resource: captcha.yml }
|
- { resource: captcha.yml }
|
||||||
|
- { resource: console.yml }
|
||||||
|
- { resource: content.yml }
|
||||||
|
- { resource: cron.yml }
|
||||||
|
- { resource: db.yml }
|
||||||
|
- { resource: event.yml }
|
||||||
|
- { resource: feed.yml }
|
||||||
|
- { resource: mimetype_guesser.yml }
|
||||||
|
- { resource: notification.yml }
|
||||||
|
- { resource: password.yml }
|
||||||
|
- { resource: profilefield.yml }
|
||||||
|
- { resource: user.yml }
|
||||||
|
|
||||||
|
- { resource: tables.yml }
|
||||||
- { resource: parameters.yml }
|
- { resource: parameters.yml }
|
||||||
|
|
||||||
services:
|
services:
|
||||||
acl.permissions:
|
|
||||||
class: phpbb\permissions
|
|
||||||
arguments:
|
|
||||||
- @dispatcher
|
|
||||||
- @user
|
|
||||||
|
|
||||||
auth:
|
|
||||||
class: phpbb\auth\auth
|
|
||||||
|
|
||||||
avatar.manager:
|
|
||||||
class: phpbb\avatar\manager
|
|
||||||
arguments:
|
|
||||||
- @config
|
|
||||||
- @avatar.driver_collection
|
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
class: phpbb\cache\service
|
class: phpbb\cache\service
|
||||||
arguments:
|
arguments:
|
||||||
@@ -77,20 +66,6 @@ services:
|
|||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
- %tables.config_text%
|
- %tables.config_text%
|
||||||
|
|
||||||
content.visibility:
|
|
||||||
class: phpbb\content_visibility
|
|
||||||
arguments:
|
|
||||||
- @auth
|
|
||||||
- @config
|
|
||||||
- @dbal.conn
|
|
||||||
- @user
|
|
||||||
- %core.root_path%
|
|
||||||
- %core.php_ext%
|
|
||||||
- %tables.forums%
|
|
||||||
- %tables.posts%
|
|
||||||
- %tables.topics%
|
|
||||||
- %tables.users%
|
|
||||||
|
|
||||||
controller.helper:
|
controller.helper:
|
||||||
class: phpbb\controller\helper
|
class: phpbb\controller\helper
|
||||||
arguments:
|
arguments:
|
||||||
@@ -117,47 +92,6 @@ services:
|
|||||||
calls:
|
calls:
|
||||||
- [find, [%core.root_path%]]
|
- [find, [%core.root_path%]]
|
||||||
|
|
||||||
cron.task_collection:
|
|
||||||
class: phpbb\di\service_collection
|
|
||||||
arguments:
|
|
||||||
- @service_container
|
|
||||||
tags:
|
|
||||||
- { name: service_collection, tag: cron.task }
|
|
||||||
|
|
||||||
cron.manager:
|
|
||||||
class: phpbb\cron\manager
|
|
||||||
arguments:
|
|
||||||
- @cron.task_collection
|
|
||||||
- %core.root_path%
|
|
||||||
- %core.php_ext%
|
|
||||||
|
|
||||||
cron.lock_db:
|
|
||||||
class: phpbb\lock\db
|
|
||||||
arguments:
|
|
||||||
- cron_lock
|
|
||||||
- @config
|
|
||||||
- @dbal.conn
|
|
||||||
|
|
||||||
dispatcher:
|
|
||||||
class: phpbb\event\dispatcher
|
|
||||||
arguments:
|
|
||||||
- @service_container
|
|
||||||
|
|
||||||
dbal.conn:
|
|
||||||
class: phpbb\db\driver\factory
|
|
||||||
arguments:
|
|
||||||
- @service_container
|
|
||||||
|
|
||||||
dbal.conn.driver:
|
|
||||||
class: %dbal.driver.class%
|
|
||||||
calls:
|
|
||||||
- [sql_connect, [%dbal.dbhost%, %dbal.dbuser%, %dbal.dbpasswd%, %dbal.dbname%, %dbal.dbport%, false, %dbal.new_link%]]
|
|
||||||
|
|
||||||
dbal.tools:
|
|
||||||
class: phpbb\db\tools
|
|
||||||
arguments:
|
|
||||||
- @dbal.conn
|
|
||||||
|
|
||||||
ext.manager:
|
ext.manager:
|
||||||
class: phpbb\extension\manager
|
class: phpbb\extension\manager
|
||||||
arguments:
|
arguments:
|
||||||
@@ -174,54 +108,12 @@ services:
|
|||||||
filesystem:
|
filesystem:
|
||||||
class: phpbb\filesystem
|
class: phpbb\filesystem
|
||||||
|
|
||||||
groupposition.legend:
|
|
||||||
class: phpbb\groupposition\legend
|
|
||||||
arguments:
|
|
||||||
- @dbal.conn
|
|
||||||
- @user
|
|
||||||
|
|
||||||
groupposition.teampage:
|
|
||||||
class: phpbb\groupposition\teampage
|
|
||||||
arguments:
|
|
||||||
- @dbal.conn
|
|
||||||
- @user
|
|
||||||
- @cache.driver
|
|
||||||
|
|
||||||
http_kernel:
|
http_kernel:
|
||||||
class: Symfony\Component\HttpKernel\HttpKernel
|
class: Symfony\Component\HttpKernel\HttpKernel
|
||||||
arguments:
|
arguments:
|
||||||
- @dispatcher
|
- @dispatcher
|
||||||
- @controller.resolver
|
- @controller.resolver
|
||||||
|
|
||||||
hook_finder:
|
|
||||||
class: phpbb\hook\finder
|
|
||||||
arguments:
|
|
||||||
- %core.root_path%
|
|
||||||
- %core.php_ext%
|
|
||||||
- @cache.driver
|
|
||||||
|
|
||||||
kernel_request_subscriber:
|
|
||||||
class: phpbb\event\kernel_request_subscriber
|
|
||||||
arguments:
|
|
||||||
- @ext.manager
|
|
||||||
- %core.root_path%
|
|
||||||
- %core.php_ext%
|
|
||||||
tags:
|
|
||||||
- { name: kernel.event_subscriber }
|
|
||||||
|
|
||||||
kernel_exception_subscriber:
|
|
||||||
class: phpbb\event\kernel_exception_subscriber
|
|
||||||
arguments:
|
|
||||||
- @template
|
|
||||||
- @user
|
|
||||||
tags:
|
|
||||||
- { name: kernel.event_subscriber }
|
|
||||||
|
|
||||||
kernel_terminate_subscriber:
|
|
||||||
class: phpbb\event\kernel_terminate_subscriber
|
|
||||||
tags:
|
|
||||||
- { name: kernel.event_subscriber }
|
|
||||||
|
|
||||||
log:
|
log:
|
||||||
class: phpbb\log\log
|
class: phpbb\log\log
|
||||||
arguments:
|
arguments:
|
||||||
@@ -234,61 +126,6 @@ services:
|
|||||||
- %core.php_ext%
|
- %core.php_ext%
|
||||||
- %tables.log%
|
- %tables.log%
|
||||||
|
|
||||||
message.form.admin:
|
|
||||||
class: phpbb\message\admin_form
|
|
||||||
arguments:
|
|
||||||
- @auth
|
|
||||||
- @config
|
|
||||||
- @config_text
|
|
||||||
- @dbal.conn
|
|
||||||
- @user
|
|
||||||
- %core.root_path%
|
|
||||||
- %core.php_ext%
|
|
||||||
|
|
||||||
message.form.topic:
|
|
||||||
class: phpbb\message\topic_form
|
|
||||||
arguments:
|
|
||||||
- @auth
|
|
||||||
- @config
|
|
||||||
- @dbal.conn
|
|
||||||
- @user
|
|
||||||
- %core.root_path%
|
|
||||||
- %core.php_ext%
|
|
||||||
|
|
||||||
message.form.user:
|
|
||||||
class: phpbb\message\user_form
|
|
||||||
arguments:
|
|
||||||
- @auth
|
|
||||||
- @config
|
|
||||||
- @dbal.conn
|
|
||||||
- @user
|
|
||||||
- %core.root_path%
|
|
||||||
- %core.php_ext%
|
|
||||||
|
|
||||||
notification_manager:
|
|
||||||
class: phpbb\notification\manager
|
|
||||||
arguments:
|
|
||||||
- @notification.type_collection
|
|
||||||
- @notification.method_collection
|
|
||||||
- @service_container
|
|
||||||
- @user_loader
|
|
||||||
- @config
|
|
||||||
- @dbal.conn
|
|
||||||
- @cache
|
|
||||||
- @user
|
|
||||||
- %core.root_path%
|
|
||||||
- %core.php_ext%
|
|
||||||
- %tables.notification_types%
|
|
||||||
- %tables.notifications%
|
|
||||||
- %tables.user_notifications%
|
|
||||||
|
|
||||||
pagination:
|
|
||||||
class: phpbb\pagination
|
|
||||||
arguments:
|
|
||||||
- @template
|
|
||||||
- @user
|
|
||||||
- @controller.helper
|
|
||||||
|
|
||||||
path_helper:
|
path_helper:
|
||||||
class: phpbb\path_helper
|
class: phpbb\path_helper
|
||||||
arguments:
|
arguments:
|
||||||
@@ -335,19 +172,6 @@ services:
|
|||||||
template_context:
|
template_context:
|
||||||
class: phpbb\template\context
|
class: phpbb\template\context
|
||||||
|
|
||||||
user:
|
|
||||||
class: phpbb\user
|
|
||||||
arguments:
|
|
||||||
- %datetime.class%
|
|
||||||
|
|
||||||
user_loader:
|
|
||||||
class: phpbb\user_loader
|
|
||||||
arguments:
|
|
||||||
- @dbal.conn
|
|
||||||
- %core.root_path%
|
|
||||||
- %core.php_ext%
|
|
||||||
- %tables.users%
|
|
||||||
|
|
||||||
version_helper:
|
version_helper:
|
||||||
class: phpbb\version_helper
|
class: phpbb\version_helper
|
||||||
scope: prototype
|
scope: prototype
|
||||||
@@ -355,8 +179,3 @@ services:
|
|||||||
- @cache
|
- @cache
|
||||||
- @config
|
- @config
|
||||||
- @user
|
- @user
|
||||||
|
|
||||||
viewonline_helper:
|
|
||||||
class: phpbb\viewonline_helper
|
|
||||||
arguments:
|
|
||||||
- @filesystem
|
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
parameters:
|
parameters:
|
||||||
tables.auth_provider_oauth_token_storage: %core.table_prefix%oauth_tokens
|
tables.auth_provider_oauth_token_storage: %core.table_prefix%oauth_tokens
|
||||||
tables.auth_provider_oauth_account_assoc: %core.table_prefix%oauth_accounts
|
tables.auth_provider_oauth_account_assoc: %core.table_prefix%oauth_accounts
|
||||||
|
tables.captcha_qa_questions: %core.table_prefix%captcha_questions
|
||||||
|
tables.captcha_qa_answers: %core.table_prefix%captcha_answers
|
||||||
|
tables.captcha_qa_confirm: %core.table_prefix%qa_confirm
|
||||||
tables.config: %core.table_prefix%config
|
tables.config: %core.table_prefix%config
|
||||||
tables.config_text: %core.table_prefix%config_text
|
tables.config_text: %core.table_prefix%config_text
|
||||||
tables.ext: %core.table_prefix%ext
|
tables.ext: %core.table_prefix%ext
|
||||||
|
19
phpBB/config/user.yml
Normal file
19
phpBB/config/user.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
services:
|
||||||
|
acl.permissions:
|
||||||
|
class: phpbb\permissions
|
||||||
|
arguments:
|
||||||
|
- @dispatcher
|
||||||
|
- @user
|
||||||
|
|
||||||
|
user:
|
||||||
|
class: phpbb\user
|
||||||
|
arguments:
|
||||||
|
- %datetime.class%
|
||||||
|
|
||||||
|
user_loader:
|
||||||
|
class: phpbb\user_loader
|
||||||
|
arguments:
|
||||||
|
- @dbal.conn
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
- %tables.users%
|
@@ -57,4 +57,4 @@ $fp = fopen($schema_path . 'schema.json', 'wb');
|
|||||||
fwrite($fp, json_encode($schema_data, JSON_PRETTY_PRINT));
|
fwrite($fp, json_encode($schema_data, JSON_PRETTY_PRINT));
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
|
|
||||||
echo 'done';
|
echo 'Successfully created schema file';
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="keywords" content="" />
|
<meta name="keywords" content="" />
|
||||||
<meta name="description" content="phpBB 3.1.x Changelog" />
|
<meta name="description" content="phpBB 3.1.x Changelog" />
|
||||||
<title>phpBB3 • Changelog</title>
|
<title>phpBB • Changelog</title>
|
||||||
|
|
||||||
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
|
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
|
||||||
|
|
||||||
@@ -46,6 +46,8 @@
|
|||||||
<ol>
|
<ol>
|
||||||
<li><a href="#changelog">Changelog</a>
|
<li><a href="#changelog">Changelog</a>
|
||||||
<ol style="list-style-type: lower-roman;">
|
<ol style="list-style-type: lower-roman;">
|
||||||
|
<li><a href="#v310RC5">Changes since 3.1.0-RC5</a></li>
|
||||||
|
<li><a href="#v310RC4">Changes since 3.1.0-RC4</a></li>
|
||||||
<li><a href="#v310RC3">Changes since 3.1.0-RC3</a></li>
|
<li><a href="#v310RC3">Changes since 3.1.0-RC3</a></li>
|
||||||
<li><a href="#v310RC2">Changes since 3.1.0-RC2</a></li>
|
<li><a href="#v310RC2">Changes since 3.1.0-RC2</a></li>
|
||||||
<li><a href="#v310RC1">Changes since 3.1.0-RC1</a></li>
|
<li><a href="#v310RC1">Changes since 3.1.0-RC1</a></li>
|
||||||
@@ -97,7 +99,111 @@
|
|||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<a name="v310RC3"></a><h3>1.i. Changes since 3.1.0-RC3</h3>
|
<a name="v310RC5"></a><h3>1.i. Changes since 3.1.0-RC5</h3>
|
||||||
|
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12530">PHPBB3-12530</a>] - Visual confirmation is breaking layout in prosilver's mobile mode</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12568">PHPBB3-12568</a>] - docs/README.html references MODs instead of extensions</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13124">PHPBB3-13124</a>] - PHP event extractor too strict on doc blocks</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13138">PHPBB3-13138</a>] - Banned users cause infinite recursion</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13140">PHPBB3-13140</a>] - Header links don't re-appear on window size increase</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13161">PHPBB3-13161</a>] - PHP Warnings issued from phpbb database test case</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13163">PHPBB3-13163</a>] - Header Navbar Responsiveness Broken</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13164">PHPBB3-13164</a>] - Data sent to core.submit_post_end event does not include fresh post_visibility</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13168">PHPBB3-13168</a>] - Warning displayed in PHP 5.6 for mbstring.http_input</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13169">PHPBB3-13169</a>] - Responsive forms not displaying correctly in RTL</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13171">PHPBB3-13171</a>] - Can not delete posts and soft delete topics in MCP topic view</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13174">PHPBB3-13174</a>] - Minor HTML error in ucp_pm_viewmessage.html (needs closing </div>)</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13177">PHPBB3-13177</a>] - Post count-based ranks do not display in viewtopic</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13181">PHPBB3-13181</a>] - Sphinx config template should use place holders for database credentials</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13186">PHPBB3-13186</a>] - Do not link post count to author search if search disabled</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13187">PHPBB3-13187</a>] - INSTALL.html is not valid HTML</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13188">PHPBB3-13188</a>] - Sphinx index() function triggers slow queries that time out replies</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13190">PHPBB3-13190</a>] - phpbb_session_login_keys_test::test_reset_keys fails on develop-ascraeus</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13194">PHPBB3-13194</a>] - BBCode isn't parsed when issuing a warning for a post</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13203">PHPBB3-13203</a>] - Use constant time comparison method for comparing password hashes</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12796">PHPBB3-12796</a>] - View own Profile should have an edit button</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12799">PHPBB3-12799</a>] - Place the events for f_brunoais_read_other</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13041">PHPBB3-13041</a>] - help_faq.php language file needs to be revised</li>
|
||||||
|
</ul>
|
||||||
|
<h4>New Feature</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13205">PHPBB3-13205</a>] - Add mark all PMs read button</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<a name="v310RC4"></a><h3>1.ii. Changes since 3.1.0-RC4</h3>
|
||||||
|
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10729">PHPBB3-10729</a>] - Post editor information is not updated when user being deleted with posts</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11224">PHPBB3-11224</a>] - SQL cache destroy does not destroy queries to tables joined</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12368">PHPBB3-12368</a>] - Updating database fails in upgrade from 3.0 when trying twice without purging the cache</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12489">PHPBB3-12489</a>] - Description for Contact link in custom profile fields</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12657">PHPBB3-12657</a>] - Add a test file for cli command cache:purge</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12858">PHPBB3-12858</a>] - 'GMT' is hard coded and not pulled from language files</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12889">PHPBB3-12889</a>] - multi-select element in unban email-adresses not limited in width</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13011">PHPBB3-13011</a>] - Javascript bug when selecting first one or two characters of a post</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13027">PHPBB3-13027</a>] - PM folder full percentage could be a bit more accurate</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13033">PHPBB3-13033</a>] - Duplicate entry SQL error thrown when running notifications_use_full_name migration</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13045">PHPBB3-13045</a>] - Pragma header not specified as response header by RFC2616</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13048">PHPBB3-13048</a>] - AJAX requests are being stored to session_page</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13055">PHPBB3-13055</a>] - String profile fields validation limits content to latin chars only</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13070">PHPBB3-13070</a>] - Wrong hook name is registered for array(template, display)</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13071">PHPBB3-13071</a>] - total_match_count is used before core.search_get_posts_data event</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13080">PHPBB3-13080</a>] - Responsive design - language variable to long</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13082">PHPBB3-13082</a>] - Search box does not displayed proper in admin cp when no logs listed</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13085">PHPBB3-13085</a>] - Fix typo in oauth.php</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13086">PHPBB3-13086</a>] - Update ACP_MASS_EMAIL_EXPLAIN language key</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13087">PHPBB3-13087</a>] - WLM link is empty in viewtopic</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13097">PHPBB3-13097</a>] - Fix missing unit type in forms.css</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13104">PHPBB3-13104</a>] - Responsive tabs display bug in IE11</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13105">PHPBB3-13105</a>] - Future dates are displayed as "Tomorrow" with relative date format</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13111">PHPBB3-13111</a>] - Debug output when editing DropDown Custom Fields with multiple languages</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13113">PHPBB3-13113</a>] - The routes are not always generated for the good app.php file</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13116">PHPBB3-13116</a>] - Topic and post approval notifications got interchanged</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13117">PHPBB3-13117</a>] - Installation fails on MySQL 5.7 because auto_increment columns can be NULL</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13118">PHPBB3-13118</a>] - datetime.class parameter not used in user class</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13120">PHPBB3-13120</a>] - phpbb_load_extensions_autoloaders() doesn't work very well with the extensions behind a symlink</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13121">PHPBB3-13121</a>] - Customise Purge Cache always returns user to Styles page</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13125">PHPBB3-13125</a>] - Uploaded avatars are not displayed in IE <= 7</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12408">PHPBB3-12408</a>] - Add quick setting for "default guest style" to ACP board settings</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12985">PHPBB3-12985</a>] - Add event to modify the redirect after a successful login</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12993">PHPBB3-12993</a>] - Add event to get_user_rank() function</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13025">PHPBB3-13025</a>] - Add template events for buttons on viewforum and viewtopic</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13059">PHPBB3-13059</a>] - Add core event to generate_page_link() to allow modifying pagination URLs</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13072">PHPBB3-13072</a>] - Add total_match_count to core.search_get_topic_data event</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13077">PHPBB3-13077</a>] - Change module order in Customise tab for better usability</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13094">PHPBB3-13094</a>] - Remove the search box if there are no new posts to search for</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13107">PHPBB3-13107</a>] - Add template events to forum row in forumlist_body.html</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13108">PHPBB3-13108</a>] - Add core event to the parse_attachments() function to allow modifying files info</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13110">PHPBB3-13110</a>] - Add core event to the page_footer() function to allow handling overall output</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13122">PHPBB3-13122</a>] - phpbb_wrapper_gmgetdate_test intermittently fails</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13134">PHPBB3-13134</a>] - Add core event to the root of the function display_forums()</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13137">PHPBB3-13137</a>] - Remove schema.json from repository</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Sub-task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12929">PHPBB3-12929</a>] - Add an event when getting the information for PM composal</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12930">PHPBB3-12930</a>] - Add an event to the query getting the post for quoting in a PM</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10794">PHPBB3-10794</a>] - Make schema available at runtime</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12987">PHPBB3-12987</a>] - Cleanup the services.yml file</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13106">PHPBB3-13106</a>] - Remove the \phpbb\di\pass\kernel_pass class</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13119">PHPBB3-13119</a>] - Add events to mcp and acp ban modules</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13123">PHPBB3-13123</a>] - Add events to allow post blocking and post pre/past processing</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v310RC3"></a><h3>1.iii. Changes since 3.1.0-RC3</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -187,7 +293,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<a name="v310RC2"></a><h3>1.ii. Changes since 3.1.0-RC2</h3>
|
<a name="v310RC2"></a><h3>1.iv. Changes since 3.1.0-RC2</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -311,7 +417,7 @@
|
|||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12948">PHPBB3-12948</a>] - Remove Travis CI "broken opcache on PHP 5.5.7 and 5.5.8" workaround.</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12948">PHPBB3-12948</a>] - Remove Travis CI "broken opcache on PHP 5.5.7 and 5.5.8" workaround.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v310RC1"></a><h3>1.iii. Changes since 3.1.0-RC1</h3>
|
<a name="v310RC1"></a><h3>1.v. Changes since 3.1.0-RC1</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -382,7 +488,7 @@
|
|||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12829">PHPBB3-12829</a>] - Remove check for pgsql 8.3/8.2</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12829">PHPBB3-12829</a>] - Remove check for pgsql 8.3/8.2</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v310b4"></a><h3>1.iv. Changes since 3.1.0-b4</h3>
|
<a name="v310b4"></a><h3>1.vi. Changes since 3.1.0-b4</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -502,7 +608,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<a name="v310b3"></a><h3>1.v. Changes since 3.1.0-b3</h3>
|
<a name="v310b3"></a><h3>1.vii. Changes since 3.1.0-b3</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -609,7 +715,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<a name="v310b2"></a><h3>1.vi. Changes since 3.1.0-b2</h3>
|
<a name="v310b2"></a><h3>1.viii. Changes since 3.1.0-b2</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -774,7 +880,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<a name="v310b1"></a><h3>1.vii. Changes since 3.1.0-b1</h3>
|
<a name="v310b1"></a><h3>1.ix. Changes since 3.1.0-b1</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -842,7 +948,7 @@
|
|||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12302">PHPBB3-12302</a>] - Upgrade composer.phar to 1.0.0-alpha8</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12302">PHPBB3-12302</a>] - Upgrade composer.phar to 1.0.0-alpha8</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v310a3"></a><h3>1.viii. Changes since 3.1.0-a3</h3>
|
<a name="v310a3"></a><h3>1.x. Changes since 3.1.0-a3</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -989,7 +1095,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<a name="v310a2"></a><h3>1.ix. Changes since 3.1.0-a2</h3>
|
<a name="v310a2"></a><h3>1.xi. Changes since 3.1.0-a2</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -1097,7 +1203,7 @@
|
|||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12147">PHPBB3-12147</a>] - Remove Travis CI notification configuration</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12147">PHPBB3-12147</a>] - Remove Travis CI notification configuration</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v310a1"></a><h3>1.x. Changes since 3.1.0-a1</h3>
|
<a name="v310a1"></a><h3>1.xii. Changes since 3.1.0-a1</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -1173,7 +1279,7 @@
|
|||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11998">PHPBB3-11998</a>] - Add console / command line client environment </li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11998">PHPBB3-11998</a>] - Add console / command line client environment </li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30x"></a><h3>1.xi. Changes since 3.0.x</h3>
|
<a name="v30x"></a><h3>1.xiii. Changes since 3.0.x</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -1854,7 +1960,7 @@
|
|||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11913">PHPBB3-11913</a>] - Apply reorganisation of download.phpbb.com to build_announcement.php</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11913">PHPBB3-11913</a>] - Apply reorganisation of download.phpbb.com to build_announcement.php</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v3011"></a><h3>1.xii. Changes since 3.0.11</h3>
|
<a name="v3011"></a><h3>1.xiv. Changes since 3.0.11</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -2009,7 +2115,7 @@
|
|||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11753">PHPBB3-11753</a>] - Upgrade mysql_upgrader.php schema data.</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11753">PHPBB3-11753</a>] - Upgrade mysql_upgrader.php schema data.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v3010"></a><h3>1.xiii. Changes since 3.0.10</h3>
|
<a name="v3010"></a><h3>1.xv. Changes since 3.0.10</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -2134,7 +2240,7 @@
|
|||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10909">PHPBB3-10909</a>] - Update Travis Test Configuration: Travis no longer supports PHP 5.3.2</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10909">PHPBB3-10909</a>] - Update Travis Test Configuration: Travis no longer supports PHP 5.3.2</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v309"></a><h3>1.xiv. Changes since 3.0.9</h3>
|
<a name="v309"></a><h3>1.xvi. Changes since 3.0.9</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -2270,7 +2376,7 @@
|
|||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10480">PHPBB3-10480</a>] - Automate changelog building</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10480">PHPBB3-10480</a>] - Automate changelog building</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v308"></a><h3>1.xv. Changes since 3.0.8</h3>
|
<a name="v308"></a><h3>1.xvii. Changes since 3.0.8</h3>
|
||||||
|
|
||||||
<h4> Bug
|
<h4> Bug
|
||||||
</h4>
|
</h4>
|
||||||
@@ -2638,7 +2744,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<a name="v307-PL1"></a><h3>1.xvi. Changes since 3.0.7-PL1</h3>
|
<a name="v307-PL1"></a><h3>1.xviii. Changes since 3.0.7-PL1</h3>
|
||||||
<h4> Security
|
<h4> Security
|
||||||
</h4>
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -3096,13 +3202,13 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<a name="v307"></a><h3>1.xvii. Changes since 3.0.7</h3>
|
<a name="v307"></a><h3>1.xix. Changes since 3.0.7</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Sec] Do not expose forum content of forums with ACL entries but no actual permission in ATOM Feeds. (Bug #58595)</li>
|
<li>[Sec] Do not expose forum content of forums with ACL entries but no actual permission in ATOM Feeds. (Bug #58595)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v306"></a><h3>1.xviii. Changes since 3.0.6</h3>
|
<a name="v306"></a><h3>1.xx. Changes since 3.0.6</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Allow ban reason and length to be selected and copied in ACP and subsilver2 MCP. (Bug #51095)</li>
|
<li>[Fix] Allow ban reason and length to be selected and copied in ACP and subsilver2 MCP. (Bug #51095)</li>
|
||||||
@@ -3206,7 +3312,7 @@
|
|||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v305"></a><h3>1.xix. Changes since 3.0.5</h3>
|
<a name="v305"></a><h3>1.xxi. Changes since 3.0.5</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Allow whitespaces in avatar gallery names. (Bug #44955)</li>
|
<li>[Fix] Allow whitespaces in avatar gallery names. (Bug #44955)</li>
|
||||||
@@ -3428,7 +3534,7 @@
|
|||||||
<li>[Feature] Send anonymous statistical information to phpBB on installation and update (optional).</li>
|
<li>[Feature] Send anonymous statistical information to phpBB on installation and update (optional).</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v304"></a><h3>1.xx. Changes since 3.0.4</h3>
|
<a name="v304"></a><h3>1.xxii. Changes since 3.0.4</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Delete user entry from ban list table upon user deletion (Bug #40015 - Patch by TerraFrost)</li>
|
<li>[Fix] Delete user entry from ban list table upon user deletion (Bug #40015 - Patch by TerraFrost)</li>
|
||||||
@@ -3517,7 +3623,7 @@
|
|||||||
<li>[Sec] Only use forum id supplied for posting if global announcement detected. (Reported by nickvergessen)</li>
|
<li>[Sec] Only use forum id supplied for posting if global announcement detected. (Reported by nickvergessen)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v303"></a><h3>1.xxi. Changes since 3.0.3</h3>
|
<a name="v303"></a><h3>1.xxiii. Changes since 3.0.3</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Allow mixed-case template directories to be inherited (Bug #36725)</li>
|
<li>[Fix] Allow mixed-case template directories to be inherited (Bug #36725)</li>
|
||||||
@@ -3549,7 +3655,7 @@
|
|||||||
<li>[Sec] Ask for forum password if post within passworded forum quoted in private message. (Reported by nickvergessen)</li>
|
<li>[Sec] Ask for forum password if post within passworded forum quoted in private message. (Reported by nickvergessen)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v302"></a><h3>1.xxii. Changes since 3.0.2</h3>
|
<a name="v302"></a><h3>1.xxiv. Changes since 3.0.2</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Correctly set topic starter if first post in topic removed (Bug #30575 - Patch by blueray2048)</li>
|
<li>[Fix] Correctly set topic starter if first post in topic removed (Bug #30575 - Patch by blueray2048)</li>
|
||||||
@@ -3648,7 +3754,7 @@
|
|||||||
<li>[Sec Precaution] Stricter validation of the HTTP_HOST header (Thanks to Techie-Micheal et al for pointing out possible issues in derived code)</li>
|
<li>[Sec Precaution] Stricter validation of the HTTP_HOST header (Thanks to Techie-Micheal et al for pointing out possible issues in derived code)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v301"></a><h3>1.xxiii. Changes since 3.0.1</h3>
|
<a name="v301"></a><h3>1.xxv. Changes since 3.0.1</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Ability to set permissions on non-mysql dbms (Bug #24955)</li>
|
<li>[Fix] Ability to set permissions on non-mysql dbms (Bug #24955)</li>
|
||||||
@@ -3696,7 +3802,7 @@
|
|||||||
<li>[Sec] Only allow urls gone through redirect() being used within login_box(). (thanks nookieman)</li>
|
<li>[Sec] Only allow urls gone through redirect() being used within login_box(). (thanks nookieman)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v300"></a><h3>1.xxiv. Changes since 3.0.0</h3>
|
<a name="v300"></a><h3>1.xxvi. Changes since 3.0.0</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Change] Validate birthdays (Bug #15004)</li>
|
<li>[Change] Validate birthdays (Bug #15004)</li>
|
||||||
@@ -3767,7 +3873,7 @@
|
|||||||
<li>[Fix] Find and display colliding usernames correctly when converting from one database to another (Bug #23925)</li>
|
<li>[Fix] Find and display colliding usernames correctly when converting from one database to another (Bug #23925)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc8"></a><h3>1.xxv. Changes since 3.0.RC8</h3>
|
<a name="v30rc8"></a><h3>1.xxvii. Changes since 3.0.RC8</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Cleaned usernames contain only single spaces, so "a_name" and "a__name" are treated as the same name (Bug #15634)</li>
|
<li>[Fix] Cleaned usernames contain only single spaces, so "a_name" and "a__name" are treated as the same name (Bug #15634)</li>
|
||||||
@@ -3776,7 +3882,7 @@
|
|||||||
<li>[Fix] Call garbage_collection() within database updater to correctly close connections (affects Oracle for example)</li>
|
<li>[Fix] Call garbage_collection() within database updater to correctly close connections (affects Oracle for example)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc7"></a><h3>1.xxvi. Changes since 3.0.RC7</h3>
|
<a name="v30rc7"></a><h3>1.xxviii. Changes since 3.0.RC7</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Fixed MSSQL related bug in the update system</li>
|
<li>[Fix] Fixed MSSQL related bug in the update system</li>
|
||||||
@@ -3811,7 +3917,7 @@
|
|||||||
<li>[Fix] No duplication of active topics (Bug #15474)</li>
|
<li>[Fix] No duplication of active topics (Bug #15474)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc6"></a><h3>1.xxvii. Changes since 3.0.RC6</h3>
|
<a name="v30rc6"></a><h3>1.xxix. Changes since 3.0.RC6</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Submitting language changes using acp_language (Bug #14736)</li>
|
<li>[Fix] Submitting language changes using acp_language (Bug #14736)</li>
|
||||||
@@ -3821,7 +3927,7 @@
|
|||||||
<li>[Fix] Able to request new password (Bug #14743)</li>
|
<li>[Fix] Able to request new password (Bug #14743)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc5"></a><h3>1.xxviii. Changes since 3.0.RC5</h3>
|
<a name="v30rc5"></a><h3>1.xxx. Changes since 3.0.RC5</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Feature] Removing constant PHPBB_EMBEDDED in favor of using an exit_handler(); the constant was meant to achive this more or less.</li>
|
<li>[Feature] Removing constant PHPBB_EMBEDDED in favor of using an exit_handler(); the constant was meant to achive this more or less.</li>
|
||||||
@@ -3884,7 +3990,7 @@
|
|||||||
<li>[Sec] New password hashing mechanism for storing passwords (#i42)</li>
|
<li>[Sec] New password hashing mechanism for storing passwords (#i42)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc4"></a><h3>1.xxix. Changes since 3.0.RC4</h3>
|
<a name="v30rc4"></a><h3>1.xxxi. Changes since 3.0.RC4</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] MySQL, PostgreSQL and SQLite related database fixes (Bug #13862)</li>
|
<li>[Fix] MySQL, PostgreSQL and SQLite related database fixes (Bug #13862)</li>
|
||||||
@@ -3935,7 +4041,7 @@
|
|||||||
<li>[Fix] odbc_autocommit causing existing result sets to be dropped (Bug #14182)</li>
|
<li>[Fix] odbc_autocommit causing existing result sets to be dropped (Bug #14182)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc3"></a><h3>1.xxx. Changes since 3.0.RC3</h3>
|
<a name="v30rc3"></a><h3>1.xxxii. Changes since 3.0.RC3</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Fixing some subsilver2 and prosilver style issues</li>
|
<li>[Fix] Fixing some subsilver2 and prosilver style issues</li>
|
||||||
@@ -4044,7 +4150,7 @@
|
|||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc2"></a><h3>1.xxxi. Changes since 3.0.RC2</h3>
|
<a name="v30rc2"></a><h3>1.xxxiii. Changes since 3.0.RC2</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Re-allow searching within the memberlist</li>
|
<li>[Fix] Re-allow searching within the memberlist</li>
|
||||||
@@ -4090,7 +4196,7 @@
|
|||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc1"></a><h3>1.xxxii. Changes since 3.0.RC1</h3>
|
<a name="v30rc1"></a><h3>1.xxxiv. Changes since 3.0.RC1</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] (X)HTML issues within the templates (Bug #11255, #11255)</li>
|
<li>[Fix] (X)HTML issues within the templates (Bug #11255, #11255)</li>
|
||||||
|
@@ -24,7 +24,6 @@ phpBB Lead Developer: naderman (Nils Adermann)
|
|||||||
|
|
||||||
phpBB Developers: bantu (Andreas Fischer)
|
phpBB Developers: bantu (Andreas Fischer)
|
||||||
dhruv.goel92 (Dhruv Goel)
|
dhruv.goel92 (Dhruv Goel)
|
||||||
EXreaction (Nathan Guse)
|
|
||||||
marc1706 (Marc Alexander)
|
marc1706 (Marc Alexander)
|
||||||
nickvergessen (Joas Schilling)
|
nickvergessen (Joas Schilling)
|
||||||
nicofuma (Tristan Darricau)
|
nicofuma (Tristan Darricau)
|
||||||
@@ -53,6 +52,7 @@ phpBB Developers: A_Jelly_Doughnut (Josh Woody) [01/2010 - 11/2010]
|
|||||||
ckwalsh (Cullen Walsh) [01/2010 - 07/2011]
|
ckwalsh (Cullen Walsh) [01/2010 - 07/2011]
|
||||||
DavidMJ (David M.) [12/2005 - 08/2009]
|
DavidMJ (David M.) [12/2005 - 08/2009]
|
||||||
dhn (Dominik Dröscher) [05/2007 - 01/2011]
|
dhn (Dominik Dröscher) [05/2007 - 01/2011]
|
||||||
|
EXreaction (Nathan Guse) [07/2012 - 05/2014]
|
||||||
GrahamJE (Graham Eames) [09/2005 - 11/2006]
|
GrahamJE (Graham Eames) [09/2005 - 11/2006]
|
||||||
igorw (Igor Wiedler) [08/2010 - 02/2013]
|
igorw (Igor Wiedler) [08/2010 - 02/2013]
|
||||||
imkingdavid (David King) [11/2012 - 06/2014]
|
imkingdavid (David King) [11/2012 - 06/2014]
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="keywords" content="" />
|
<meta name="keywords" content="" />
|
||||||
<meta name="description" content="phpBB 3.1.x frequently asked questions" />
|
<meta name="description" content="phpBB 3.1.x frequently asked questions" />
|
||||||
<title>phpBB3 • FAQ</title>
|
<title>phpBB • FAQ</title>
|
||||||
|
|
||||||
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
|
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
<!-- BEGIN DOCUMENT -->
|
<!-- BEGIN DOCUMENT -->
|
||||||
|
|
||||||
<p>This is a very basic Frequently Asked Questions (FAQ) page which attempts to answer some of the more commonly asked questions. It is by no means exhaustive and should be used in combination with the 'built-in' User FAQ within phpBB3, the community forums and our IRC channel (see <a href="README.html">README</a> for details).</p>
|
<p>This is a very basic Frequently Asked Questions (FAQ) page which attempts to answer some of the more commonly asked questions. It is by no means exhaustive and should be used in combination with the 'built-in' User FAQ within phpBB, the community forums and our IRC channel (see <a href="README.html">README</a> for details).</p>
|
||||||
|
|
||||||
<h1>FAQ</h1>
|
<h1>FAQ</h1>
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<p>Simple answer, no we will not. We are not being difficult when we say this we are actually trying to help you. phpBB has a reputation for being easy to install, that reputation is we believe well deserved. It is a simple process of unarchiving a single file, uploading the resulting directory/files to their intended location and entering some data in a web based form. The sequence of events, what to type where, etc. is covered in detail in the accompanying <a href="INSTALL.html">INSTALL.html</a> documentation. If you cannot install phpBB3 the chances are you will be unable to administer or update it.</p>
|
<p>Simple answer, no we will not. We are not being difficult when we say this we are actually trying to help you. phpBB has a reputation for being easy to install, that reputation is we believe well deserved. It is a simple process of unarchiving a single file, uploading the resulting directory/files to their intended location and entering some data in a web based form. The sequence of events, what to type where, etc. is covered in detail in the accompanying <a href="INSTALL.html">INSTALL.html</a> documentation. If you cannot install phpBB the chances are you will be unable to administer or update it.</p>
|
||||||
|
|
||||||
<p>There are people, companies (unrelated to your hosting provider), etc. that will install your forum, either for free or for a payment. We do not recommend you make use of these offers. Unless the service is provided by your hosting company you will have to divulge passwords and other sensitive details. If you did not know how to use an ATM would you give a passer-by your bank card and PIN and ask them to show you what to do? No, probably not! The same applies to your hosting account details!</p>
|
<p>There are people, companies (unrelated to your hosting provider), etc. that will install your forum, either for free or for a payment. We do not recommend you make use of these offers. Unless the service is provided by your hosting company you will have to divulge passwords and other sensitive details. If you did not know how to use an ATM would you give a passer-by your bank card and PIN and ask them to show you what to do? No, probably not! The same applies to your hosting account details!</p>
|
||||||
|
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="keywords" content="" />
|
<meta name="keywords" content="" />
|
||||||
<meta name="description" content="phpBB 3.1.x Installation, updating and conversion informations" />
|
<meta name="description" content="phpBB 3.1.x Installation, updating and conversion informations" />
|
||||||
<title>phpBB3 • Install</title>
|
<title>phpBB • Install</title>
|
||||||
|
|
||||||
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
|
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
<p>This document will walk you through the basics on installing, updating and converting the forum software.</p>
|
<p>This document will walk you through the basics on installing, updating and converting the forum software.</p>
|
||||||
|
|
||||||
<p>A basic overview of running phpBB3 can be found in the accompanying <a href="README.html">README</a> file. Please ensure you read that document in addition to this! For more detailed information on using, installing, updating and converting phpBB3 you should read <a href="https://www.phpbb.com/support/documentation/3.0/">the documentation</a> available online.</p>
|
<p>A basic overview of running phpBB can be found in the accompanying <a href="README.html">README</a> file. Please ensure you read that document in addition to this! For more detailed information on using, installing, updating and converting phpBB you should read <a href="https://www.phpbb.com/support/documentation/3.0/">the documentation</a> available online.</p>
|
||||||
|
|
||||||
<h1>Install</h1>
|
<h1>Install</h1>
|
||||||
|
|
||||||
@@ -142,10 +142,11 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><strong>PHP 5.3.3+</strong> with support for the database you intend to use.</li>
|
<li><strong>PHP 5.3.3+</strong> with support for the database you intend to use.</li>
|
||||||
<li>The following PHP modules are required:</li>
|
<li>The following PHP modules are required:
|
||||||
<ul>
|
<ul>
|
||||||
<li>json</li>
|
<li>json</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</li>
|
||||||
<li>getimagesize() function must be enabled.</li>
|
<li>getimagesize() function must be enabled.</li>
|
||||||
<li>Presence of the following modules within PHP will provide access to additional features, but they are not required:
|
<li>Presence of the following modules within PHP will provide access to additional features, but they are not required:
|
||||||
<ul>
|
<ul>
|
||||||
@@ -176,23 +177,23 @@
|
|||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<p>Installation of phpBB3 will vary according to your server and database. If you have <em>shell access</em> to your account (via telnet or ssh for example) you may want to upload the entire phpBB3 archive (in binary mode!) to a directory on your host and unarchive it there.</p>
|
<p>Installation of phpBB will vary according to your server and database. If you have <em>shell access</em> to your account (via telnet or ssh for example) you may want to upload the entire phpBB archive (in binary mode!) to a directory on your host and unarchive it there.</p>
|
||||||
|
|
||||||
<p>If you do not have shell access or do not wish to use it, you will need to decompress the phpBB3 archive to a local directory on your system using your favourite compression program, e.g. winzip, rar, zip, etc. From there you must FTP <strong>ALL</strong> the files it contains (being sure to retain the directory structure and filenames) to your host. Please ensure that the cases of filenames are retained, do <strong>NOT</strong> force filenames to all lower or upper case as doing so will cause errors later.</p>
|
<p>If you do not have shell access or do not wish to use it, you will need to decompress the phpBB archive to a local directory on your system using your favourite compression program, e.g. winzip, rar, zip, etc. From there you must FTP <strong>ALL</strong> the files it contains (being sure to retain the directory structure and filenames) to your host. Please ensure that the cases of filenames are retained, do <strong>NOT</strong> force filenames to all lower or upper case as doing so will cause errors later.</p>
|
||||||
|
|
||||||
<p>All .php, .sql, .cfg, .css, .js, .html, .htaccess and .txt files should be uploaded in <strong>ASCII</strong> mode, while all graphics should be uploaded in <strong>BINARY</strong> mode. If you are unfamiliar with what this means please refer to your FTP client documentation. In most cases this is all handled transparantly by your ftp client, but if you encounter problems later you should be sure the files were uploaded correctly as described here.</p>
|
<p>All .php, .sql, .cfg, .css, .js, .html, .htaccess and .txt files should be uploaded in <strong>ASCII</strong> mode, while all graphics should be uploaded in <strong>BINARY</strong> mode. If you are unfamiliar with what this means please refer to your FTP client documentation. In most cases this is all handled transparantly by your ftp client, but if you encounter problems later you should be sure the files were uploaded correctly as described here.</p>
|
||||||
|
|
||||||
<p>phpBB3 comes supplied with British English as its standard language. However, a number of separate packs for different languages are available. If you are not a native English speaker you may wish to install one or more of these packages before continuing. The installation process below will allow you to select a default language from those available (you can, of course, change this default at a later stage). For more details on language packs, where to obtain them and how to install them please see the <a href="README.html#i18n">README</a>.</p>
|
<p>phpBB comes supplied with British English as its standard language. However, a number of separate packs for different languages are available. If you are not a native English speaker you may wish to install one or more of these packages before continuing. The installation process below will allow you to select a default language from those available (you can, of course, change this default at a later stage). For more details on language packs, where to obtain them and how to install them please see the <a href="README.html#i18n">README</a>.</p>
|
||||||
|
|
||||||
<p>Once all the files have been uploaded to your site, you should point your browser at this location with the addition of <code>/install/</code>. For example, if your domain name is <code>www.example.com</code> and you placed the phpBB3 files in the directory <code>/phpBB3</code> off your web root you would enter <code>http://www.example.com/phpBB3/install/</code> or (alternatively) <code>http://www.example.com/phpBB3/install/index.php</code> into your browser. When you have done this, you should see the <strong><em>phpBB3 Introduction</em></strong> screen appear.</p>
|
<p>Once all the files have been uploaded to your site, you should point your browser at this location with the addition of <code>/install/</code>. For example, if your domain name is <code>www.example.com</code> and you placed the phpBB files in the directory <code>/phpBB3</code> off your web root you would enter <code>http://www.example.com/phpBB3/install/</code> or (alternatively) <code>http://www.example.com/phpBB3/install/index.php</code> into your browser. When you have done this, you should see the <strong><em>phpBB Introduction</em></strong> screen appear.</p>
|
||||||
|
|
||||||
<h4>Introduction:</h4>
|
<h4>Introduction:</h4>
|
||||||
|
|
||||||
<p>The initial screen gives you a short introduction into phpBB. It allows you to read the license phpBB3 is released under (General Public License v2) and provides information about how you can receive support. To start the installation, use the <strong><em>INSTALL</em></strong> tab.</p>
|
<p>The initial screen gives you a short introduction into phpBB. It allows you to read the license phpBB is released under (General Public License v2) and provides information about how you can receive support. To start the installation, use the <strong><em>INSTALL</em></strong> tab.</p>
|
||||||
|
|
||||||
<h4>Requirements</h4>
|
<h4>Requirements</h4>
|
||||||
|
|
||||||
<p>The first page you will see after starting the installation is the Requirements list. phpBB3 automatically checks whether everything that it needs to run properly is installed on your server. You need to have at least the minimum PHP version installed, and at least one database available to continue the installation. Also important, is that all shown folders are available and have the correct permissions. Please see the description of each section to find out whether they are optional or required for phpBB3 to run. If everything is in order, you can continue the installation with <em>Start Install</em>.</p>
|
<p>The first page you will see after starting the installation is the Requirements list. phpBB automatically checks whether everything that it needs to run properly is installed on your server. You need to have at least the minimum PHP version installed, and at least one database available to continue the installation. Also important, is that all shown folders are available and have the correct permissions. Please see the description of each section to find out whether they are optional or required for phpBB to run. If everything is in order, you can continue the installation with <em>Start Install</em>.</p>
|
||||||
|
|
||||||
<h4>Database settings</h4>
|
<h4>Database settings</h4>
|
||||||
|
|
||||||
@@ -212,7 +213,7 @@
|
|||||||
|
|
||||||
<p>You don't need to change the Prefix for tables in database setting, unless you plan on using multipe phpBB installations on one database. In this case, you can use a different prefix for each installation to make it work.</p>
|
<p>You don't need to change the Prefix for tables in database setting, unless you plan on using multipe phpBB installations on one database. In this case, you can use a different prefix for each installation to make it work.</p>
|
||||||
|
|
||||||
<p>After you entered your details, you can continue with the <em>Proceed to next step</em> button. Now phpBB3 will check whether the data you entered will lead to a successful database connection and whether tables with the same prefix already exist.</p>
|
<p>After you entered your details, you can continue with the <em>Proceed to next step</em> button. Now phpBB will check whether the data you entered will lead to a successful database connection and whether tables with the same prefix already exist.</p>
|
||||||
|
|
||||||
<p>A <em>Could not connect to the database</em> error means that you didn't enter the database data correctly and it is not possible for phpBB to connect. Make sure that everything you entered is in order and try again. Again, if you are unsure about your database settings, please contact your host.</p>
|
<p>A <em>Could not connect to the database</em> error means that you didn't enter the database data correctly and it is not possible for phpBB to connect. Make sure that everything you entered is in order and try again. Again, if you are unsure about your database settings, please contact your host.</p>
|
||||||
|
|
||||||
@@ -222,7 +223,7 @@
|
|||||||
|
|
||||||
<h4>Administrator details</h4>
|
<h4>Administrator details</h4>
|
||||||
|
|
||||||
<p>Now you have to create your administration user. This user will have full administration access and he/she will be the first user on your forum. All fields on this page are required. You can also set the default language of your forum on this page. In a vanilla phpBB3 installation, we only include British English. You can download further languages from <a href="https://www.phpbb.com/">www.phpbb.com</a>, and add them before installing or later.</p>
|
<p>Now you have to create your administration user. This user will have full administration access and he/she will be the first user on your forum. All fields on this page are required. You can also set the default language of your forum on this page. In a vanilla phpBB installation, we only include British English. You can download further languages from <a href="https://www.phpbb.com/">www.phpbb.com</a>, and add them before installing or later.</p>
|
||||||
|
|
||||||
<h4>Configuration file</h4>
|
<h4>Configuration file</h4>
|
||||||
|
|
||||||
@@ -236,7 +237,7 @@
|
|||||||
|
|
||||||
<p>If the installation was successful, you can now use the <em>Login</em> button to visit the Administration Control Panel. Congratulations, you have installed phpBB successfully. But there is still work ahead!</p>
|
<p>If the installation was successful, you can now use the <em>Login</em> button to visit the Administration Control Panel. Congratulations, you have installed phpBB successfully. But there is still work ahead!</p>
|
||||||
|
|
||||||
<p>If you are unable to get phpBB3 installed even after reading this guide, please look at the support section of the installer's introduction page to find out where you can ask for further assistance.</p>
|
<p>If you are unable to get phpBB installed even after reading this guide, please look at the support section of the installer's introduction page to find out where you can ask for further assistance.</p>
|
||||||
|
|
||||||
<p>At this point if you are converting from phpBB 2.0.x, you should refer to the <a href="#convert">conversion steps</a> for further information. If not, you should remove the install directory from your server as you will only be able to access the Administration Control Panel whilst it is present.</p>
|
<p>At this point if you are converting from phpBB 2.0.x, you should refer to the <a href="#convert">conversion steps</a> for further information. If not, you should remove the install directory from your server as you will only be able to access the Administration Control Panel whilst it is present.</p>
|
||||||
|
|
||||||
@@ -256,15 +257,15 @@
|
|||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<p>If you are currently using a stable release of phpBB3, updating to this version is straightforward. You would have downloaded one of four packages and your choice determines what you need to do. <strong>Note</strong>: Before updating, we heavily recommend you do a <em>full backup of your database and existing phpBB3 files</em>! If you are unsure how to achieve this please ask your hosting provider for advice.</p>
|
<p>If you are currently using a stable release of phpBB, updating to this version is straightforward. You would have downloaded one of four packages and your choice determines what you need to do. <strong>Note</strong>: Before updating, we heavily recommend you do a <em>full backup of your database and existing phpBB files</em>! If you are unsure how to achieve this please ask your hosting provider for advice.</p>
|
||||||
|
|
||||||
<p><strong>Please make sure you update your phpBB3 source files too, even if you run the <code>database_update.php</code> file.</strong></p>
|
<p><strong>Please make sure you update your phpBB source files too, even if you run the <code>database_update.php</code> file.</strong></p>
|
||||||
|
|
||||||
<a name="update_full"></a><h3>4.i. Full package</h3>
|
<a name="update_full"></a><h3>4.i. Full package</h3>
|
||||||
|
|
||||||
<p>The full package is normally meant for new installations only, but if you want to replace all source files, this package comes in handy.</p>
|
<p>The full package is normally meant for new installations only, but if you want to replace all source files, this package comes in handy.</p>
|
||||||
|
|
||||||
<p>First, you should make a copy of your existing <code>config.php</code> file; keep it in a safe place! Next, delete all the existing phpBB3 files, you may want to leave your <code>files/</code> and <code>images/</code> directorie in place. You can leave alternative styles in place too. With this complete, you can upload the new phpBB files (see <a href="#install">New installation</a> for details if necessary). Once complete, copy back your saved <code>config.php</code>, replacing the new one. Another method is to just <strong>replace</strong> the existing files with the files from the full package - though make sure you do <strong>not</strong> overwrite your config.php file.</p>
|
<p>First, you should make a copy of your existing <code>config.php</code> file; keep it in a safe place! Next, delete all the existing phpBB files, you may want to leave your <code>files/</code> and <code>images/</code> directories in place. You can leave alternative styles in place too. With this complete, you can upload the new phpBB files (see <a href="#install">New installation</a> for details if necessary). Once complete, copy back your saved <code>config.php</code>, replacing the new one. Another method is to just <strong>replace</strong> the existing files with the files from the full package - though make sure you do <strong>not</strong> overwrite your config.php file.</p>
|
||||||
|
|
||||||
<p>You should now run <code>install/database_update.php</code> which, depending on your previous version, will make a number of database changes. You may receive <em>FAILURES</em> during this procedure. They should not be a cause for concern unless you see an actual <em>ERROR</em>, in which case the script will stop (in this case you should seek help via our forums or bug tracker).</p>
|
<p>You should now run <code>install/database_update.php</code> which, depending on your previous version, will make a number of database changes. You may receive <em>FAILURES</em> during this procedure. They should not be a cause for concern unless you see an actual <em>ERROR</em>, in which case the script will stop (in this case you should seek help via our forums or bug tracker).</p>
|
||||||
|
|
||||||
@@ -303,7 +304,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>Go to the <a href="https://www.phpbb.com/downloads/">downloads page</a> and download the latest update package listed there, matching your current version.</li>
|
<li>Go to the <a href="https://www.phpbb.com/downloads/">downloads page</a> and download the latest update package listed there, matching your current version.</li>
|
||||||
<li>Upload the uncompressed archive contents to your phpBB installation - only the install folder is required. Upload the whole install folder, retaining the file structure.</li>
|
<li>Upload the uncompressed archive contents to your phpBB installation - only the install folder is required. Upload the whole install folder, retaining the file structure.</li>
|
||||||
<li>After the install folder is present, phpBB3 will go offline automatically.</li>
|
<li>After the install folder is present, phpBB will go offline automatically.</li>
|
||||||
<li>Point your browser to the install directory, for example <code>http://www.example.com/phpBB3/install/</code></li>
|
<li>Point your browser to the install directory, for example <code>http://www.example.com/phpBB3/install/</code></li>
|
||||||
<li>Choose the "Update" Tab and follow the instructions</li>
|
<li>Choose the "Update" Tab and follow the instructions</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -429,13 +430,13 @@
|
|||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<p>Once you have successfully installed phpBB3 you <strong>MUST</strong> ensure you remove the entire <code>install/</code> directory. Leaving the install directory in place is a <em>very serious potential security issue</em> which may lead to deletion or alteration of files, etc. Please note that until this directory is removed, phpBB will not operate and a warning message will be displayed. Beyond this <strong>essential</strong> deletion, you may also wish to delete the docs/ directory if you wish.</p>
|
<p>Once you have successfully installed phpBB you <strong>MUST</strong> ensure you remove the entire <code>install/</code> directory. Leaving the install directory in place is a <em>very serious potential security issue</em> which may lead to deletion or alteration of files, etc. Please note that until this directory is removed, phpBB will not operate and a warning message will be displayed. Beyond this <strong>essential</strong> deletion, you may also wish to delete the docs/ directory if you wish.</p>
|
||||||
|
|
||||||
<p>With these directories deleted, you should proceed to the administration panel. Depending on how the installation completed, you may have been directed there automatically. If not, login as the administrator you specified during install/conversion and click the <strong>Administration Control Panel</strong> link at the bottom of any page. Ensure that details specified on the <strong>General</strong> tab are correct!</p>
|
<p>With these directories deleted, you should proceed to the administration panel. Depending on how the installation completed, you may have been directed there automatically. If not, login as the administrator you specified during install/conversion and click the <strong>Administration Control Panel</strong> link at the bottom of any page. Ensure that details specified on the <strong>General</strong> tab are correct!</p>
|
||||||
|
|
||||||
<a name="avatars"></a><h3>6.i. Uploadable avatars</h3>
|
<a name="avatars"></a><h3>6.i. Uploadable avatars</h3>
|
||||||
|
|
||||||
<p>phpBB3 supports several methods for allowing users to select their own <em>avatar</em> (an avatar is a small image generally unique to a user and displayed just below their username in posts).</p>
|
<p>phpBB supports several methods for allowing users to select their own <em>avatar</em> (an avatar is a small image generally unique to a user and displayed just below their username in posts).</p>
|
||||||
|
|
||||||
<p>Two of these options allow users to upload an avatar from their machine or a remote location (via a URL). If you wish to enable this function you should first ensure the correct path for uploadable avatars is set in <strong>Administration Control Panel -> General -> Board Configuration -> Avatar settings</strong>. By default this is <code>images/avatars/uploads</code>, but you can set it to whatever you like, just ensure the configuration setting is updated. You must also ensure this directory can be written to by the webserver. Usually this means you have to alter its permissions to allow anyone to read and write to it. Exactly how you should do this depends on your FTP client or server operating system.</p>
|
<p>Two of these options allow users to upload an avatar from their machine or a remote location (via a URL). If you wish to enable this function you should first ensure the correct path for uploadable avatars is set in <strong>Administration Control Panel -> General -> Board Configuration -> Avatar settings</strong>. By default this is <code>images/avatars/uploads</code>, but you can set it to whatever you like, just ensure the configuration setting is updated. You must also ensure this directory can be written to by the webserver. Usually this means you have to alter its permissions to allow anyone to read and write to it. Exactly how you should do this depends on your FTP client or server operating system.</p>
|
||||||
|
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="keywords" content="" />
|
<meta name="keywords" content="" />
|
||||||
<meta name="description" content="phpBB 3.1.x Readme" />
|
<meta name="description" content="phpBB 3.1.x Readme" />
|
||||||
<title>phpBB3 • Readme</title>
|
<title>phpBB • Readme</title>
|
||||||
|
|
||||||
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
|
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
<!-- BEGIN DOCUMENT -->
|
<!-- BEGIN DOCUMENT -->
|
||||||
|
|
||||||
<p>Thank you for downloading phpBB3. This README will guide you through the basics of installation and operation of phpBB3. Please ensure you read this and the accompanying documentation fully <strong>before</strong> proceeding with the installation.</p>
|
<p>Thank you for downloading phpBB. This README will guide you through the basics of installation and operation of phpBB. Please ensure you read this and the accompanying documentation fully <strong>before</strong> proceeding with the installation.</p>
|
||||||
|
|
||||||
<h1>Readme</h1>
|
<h1>Readme</h1>
|
||||||
|
|
||||||
@@ -44,15 +44,15 @@
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#install">Installing phpBB3</a></li>
|
<li><a href="#install">Installing phpBB</a></li>
|
||||||
<li><a href="#run">Running phpBB3</a>
|
<li><a href="#run">Running phpBB</a>
|
||||||
<ol style="list-style-type: lower-roman;">
|
<ol style="list-style-type: lower-roman;">
|
||||||
<li><a href="#i18n">Languages (Internationalisation - i18n)</a></li>
|
<li><a href="#i18n">Languages (Internationalisation - i18n)</a></li>
|
||||||
<li><a href="#styles">Styles</a></li>
|
<li><a href="#styles">Styles</a></li>
|
||||||
<li><a href="#mods">Modifications</a></li>
|
<li><a href="#extensions">Extensions</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#help">Getting help with phpBB3</a>
|
<li><a href="#help">Getting help with phpBB</a>
|
||||||
<ol style="list-style-type: lower-roman;">
|
<ol style="list-style-type: lower-roman;">
|
||||||
<li><a href="#docs">Documentation</a></li>
|
<li><a href="#docs">Documentation</a></li>
|
||||||
<li><a href="#kb">Knowledge Base</a></li>
|
<li><a href="#kb">Knowledge Base</a></li>
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<a name="install"></a><h2>1. Installing phpBB3</h2>
|
<a name="install"></a><h2>1. Installing phpBB</h2>
|
||||||
|
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<div class="inner"><span class="corners-top"><span></span></span>
|
<div class="inner"><span class="corners-top"><span></span></span>
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<a name="run"></a><h2>2. Running phpBB3</h2>
|
<a name="run"></a><h2>2. Running phpBB</h2>
|
||||||
|
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<div class="inner"><span class="corners-top"><span></span></span>
|
<div class="inner"><span class="corners-top"><span></span></span>
|
||||||
@@ -132,31 +132,31 @@
|
|||||||
|
|
||||||
<p>This is the <em>official</em> location for all supported language sets. If you download a package from a 3rd party site you do so with the understanding that we cannot offer support. Please do not ask for support if you download a language pack from a 3rd party site.</p>
|
<p>This is the <em>official</em> location for all supported language sets. If you download a package from a 3rd party site you do so with the understanding that we cannot offer support. Please do not ask for support if you download a language pack from a 3rd party site.</p>
|
||||||
|
|
||||||
<p>Installation of these packages is straightforward: simply download the required language pack, uncompress (unzip) it and via FTP transfer the included <code>language</code> and <code>styles</code> folders to the root of your board installation. The language can then be installed via the Administration Control Panel of your board: <code>System tab -> General Tasks -> Language packs</code>. A more detailed description of the process is in the Knowledge Base article, <a href="https://www.phpbb.com/kb/article/how-to-install-a-language-pack/">How to Install a Language Pack</a>.</p>
|
<p>Installation of these packages is straightforward: simply download the required language pack, uncompress (unzip) it and via FTP transfer the included <code>language</code> and <code>styles</code> folders to the root of your board installation. The language can then be installed via the Administration Control Panel of your board: <code>Customise tab -> Language management -> Language packs</code>. A more detailed description of the process is in the Knowledge Base article, <a href="https://www.phpbb.com/kb/article/how-to-install-a-language-pack/">How to Install a Language Pack</a>.</p>
|
||||||
|
|
||||||
<p>If your language is not available, please visit our <a href="https://www.phpbb.com/community/viewforum.php?f=66">[3.0.x] Translations</a> forum where you will find topics on translations in progress. Should you wish to volunteer to translate a language not currently available or assist in maintaining an existing language pack, you can <a href="https://www.phpbb.com/languages/apply.php">Apply to become a translator</a>.</p>
|
<p>If your language is not available, please visit our <a href="https://www.phpbb.com/community/viewforum.php?f=66">[3.0.x] Translations</a> forum where you will find topics on translations in progress. Should you wish to volunteer to translate a language not currently available or assist in maintaining an existing language pack, you can <a href="https://www.phpbb.com/languages/apply.php">Apply to become a translator</a>.</p>
|
||||||
|
|
||||||
<a name="styles"></a><h3>2.ii. Styles</h3>
|
<a name="styles"></a><h3>2.ii. Styles</h3>
|
||||||
|
|
||||||
<p>Although we are rather proud of the included styles, we realise that they may not be to everyone's taste. Therefore, phpBB3 allows styles to be switched with relative ease. First, you need to locate and download a style you like. You can find them listed in the <a href="https://www.phpbb.com/customise/db/styles-2/">Styles</a> section of our <a href="https://www.phpbb.com/customise/db/">Customisation Database</a>.</p>
|
<p>Although we are rather proud of the included styles, we realise that they may not be to everyone's taste. Therefore, phpBB allows styles to be switched with relative ease. First, you need to locate and download a style you like. You can find them listed in the <a href="https://www.phpbb.com/customise/db/styles-2/">Styles</a> section of our <a href="https://www.phpbb.com/customise/db/">Customisation Database</a>.</p>
|
||||||
|
|
||||||
<p>For more information about styles, please see: <a href="https://www.phpbb.com/styles/">https://www.phpbb.com/styles/</a></p>
|
<p>For more information about styles, please see: <a href="https://www.phpbb.com/styles/">https://www.phpbb.com/styles/</a></p>
|
||||||
|
|
||||||
<p><strong>Please note</strong> that 3rd party styles downloaded for versions of phpBB2 will <strong>not</strong> work in phpBB3. It is also important to ensure that the style is updated to match the current version of the phpBB software you are using.</p>
|
<p><strong>Please note</strong> that 3rd party styles downloaded for versions of phpBB2 will <strong>not</strong> work in phpBB3. It is also important to ensure that the style is updated to match the current version of the phpBB software you are using.</p>
|
||||||
|
|
||||||
<p>Once you have downloaded a style, the usual next step is to unarchive (or upload the unarchived contents of) the package into your <code>styles/</code> directory. You then need to visit <code>Administration Control Panel -> Styles tab</code> where you should see the new style available. Click "Install" to install the style.</p>
|
<p>Once you have downloaded a style, the usual next step is to unarchive (or upload the unarchived contents of) the package into your <code>styles/</code> directory. You then need to visit <code>Administration Control Panel -> Customise tab -> Style management -> Install Styles</code> where you should see the new style available. Click "Install style" to install the style.</p>
|
||||||
|
|
||||||
<p><strong>Please note</strong> that to improve efficiency, the software caches certain data. For this reason, if you create your own style or modify existing ones, please remember to "Refresh" the appropriate style components <code>Administration Control Panel -> Styles tab -> Style Components</code> screen. You may also need to reload the page you have changed in your web browser to overcome browser caching. If the changed components are not refreshed you will not see your changes taking effect.</p>
|
<p><strong>Please note</strong> that to improve efficiency, the software caches certain data. For this reason, if you create your own style or modify existing ones, please remember to purge the board cache by clicking the <code>Run now</code> button next to the <code>Purge the cache</code> option in the index page of the Administration Control Panel. You may also need to reload the page you have changed in your web browser to overcome browser caching. If the cache is not purged, you will not see your changes taking effect.</p>
|
||||||
|
|
||||||
<a name="mods"></a><h3>2.iii. Modifications</h3>
|
<a name="extensions"></a><h3>2.iii. Extensions</h3>
|
||||||
|
|
||||||
<p>We are proud to have a thriving modifications community. These third party modifications to the standard phpBB software, known as <strong>MODs</strong>, extend its capabilities still further. You can browse through many of the MODs in the <a href="https://www.phpbb.com/customise/db/modifications-1/">Modifications</a> section of our <a href="https://www.phpbb.com/customise/db/">Customisation Database</a>.</p>
|
<p>We are proud to have a thriving extensions community. These third party extensions to the standard phpBB software, extend its capabilities still further. You can browse through many of the extensions in the <a href="https://www.phpbb.com/customise/db/extensions-27/">Extensions</a> section of our <a href="https://www.phpbb.com/customise/db/">Customisation Database</a>.</p>
|
||||||
|
|
||||||
<p>For more information about MODs, please see: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a></p>
|
<p>For more information about extensions, please see: <a href="https://www.phpbb.com/extensions">https://www.phpbb.com/extensions</a></p>
|
||||||
|
|
||||||
<p><strong>Please remember</strong> that any bugs or other issues that occur after you have added any modification should <strong>NOT</strong> be reported to the bug tracker (see below). First remove the MOD and see if the problem is resolved. Any support for a MOD should only be sought in the "Discussion/Support" forum for that MOD.</p>
|
<p><strong>Please remember</strong> that any bugs or other issues that occur after you have added any extension should <strong>NOT</strong> be reported to the bug tracker (see below). First disable the extension and see if the problem is resolved. Any support for an extension should only be sought in the "Discussion/Support" forum for that extension.</p>
|
||||||
|
|
||||||
<p>Also remember that any modifications, particularly those which modify the database in any way, may render upgrading your forum to future versions more difficult. With all this said, many users have and continue to utilise many of the MODs already available with great success.</p>
|
<p>Also remember that any extensions which modify the database in any way, may render upgrading your forum to future versions more difficult.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -167,16 +167,16 @@
|
|||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<a name="help"></a><h2>3. Getting help with phpBB3</h2>
|
<a name="help"></a><h2>3. Getting help with phpBB</h2>
|
||||||
|
|
||||||
<div class="paragraph">
|
<div class="paragraph">
|
||||||
<div class="inner"><span class="corners-top"><span></span></span>
|
<div class="inner"><span class="corners-top"><span></span></span>
|
||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<p>phpBB3 can sometimes seem a little daunting to new users, particularly with regards to the permission system. The first thing you should do is check the <a href="FAQ.html">FAQ</a>, which covers a few basic getting started questions. If you need additional help there are several places you can find it.</p>
|
<p>phpBB can sometimes seem a little daunting to new users, particularly with regards to the permission system. The first thing you should do is check the <a href="FAQ.html">FAQ</a>, which covers a few basic getting started questions. If you need additional help there are several places you can find it.</p>
|
||||||
|
|
||||||
<a name="docs"></a><h3>3.i. phpBB3 Documentation</h3>
|
<a name="docs"></a><h3>3.i. phpBB Documentation</h3>
|
||||||
|
|
||||||
<p>Comprehensive documentation is now available on the phpBB website:</p>
|
<p>Comprehensive documentation is now available on the phpBB website:</p>
|
||||||
|
|
||||||
@@ -244,16 +244,16 @@
|
|||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<p>The phpBB Limited uses a bug tracking system to store, list and manage all reported bugs, it can be found at the location listed below. Please <strong>DO NOT</strong> post bug reports to our forums. In addition please <strong>DO NOT</strong> use the bug tracker for support requests. Posting such a request will only see you directed to the support forums (while taking time away from working on real bugs).</p>
|
<p>The phpBB developers use a bug tracking system to store, list and manage all reported bugs, it can be found at the location listed below. Please <strong>DO NOT</strong> post bug reports to our forums. In addition please <strong>DO NOT</strong> use the bug tracker for support requests. Posting such a request will only see you directed to the support forums (while taking time away from working on real bugs).</p>
|
||||||
|
|
||||||
<p><a href="http://tracker.phpbb.com/browse/PHPBB3">http://tracker.phpbb.com/browse/PHPBB3</a></p>
|
<p><a href="http://tracker.phpbb.com/browse/PHPBB3">http://tracker.phpbb.com/browse/PHPBB3</a></p>
|
||||||
|
|
||||||
<p>While we very much appreciate receiving bug reports (the more reports the more stable phpBB will be) we ask you carry out a few steps before adding new entries:</p>
|
<p>While we very much appreciate receiving bug reports (the more reports the more stable phpBB will be) we ask you carry out a few steps before adding new entries:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>First, determine if your bug is reproduceable; how to determine this depends on the bug in question. Only if the bug is reproduceable is it likely to be a problem with phpBB3 (or in some way connected). If something cannot be reproduced it may turn out to have been your hosting provider working on something, a user doing something silly, etc. Bug reports for non-reproduceable events can slow down our attempts to fix real, reproduceable issues<br /><br /></li>
|
<li>First, determine if your bug is reproduceable; how to determine this depends on the bug in question. Only if the bug is reproduceable is it likely to be a problem with phpBB (or in some way connected). If something cannot be reproduced it may turn out to have been your hosting provider working on something, a user doing something silly, etc. Bug reports for non-reproduceable events can slow down our attempts to fix real, reproduceable issues<br /><br /></li>
|
||||||
<li>Next, please read or search through the existing bug reports to see if <em>your</em> bug (or one very similar to it) is already listed. If it is please add to that existing bug rather than creating a new duplicate entry (all this does is slow us down).<br /><br /></li>
|
<li>Next, please read or search through the existing bug reports to see if <em>your</em> bug (or one very similar to it) is already listed. If it is please add to that existing bug rather than creating a new duplicate entry (all this does is slow us down).<br /><br /></li>
|
||||||
<li>Check the forums (use search!) to see if people have discussed anything that sounds similar to what you are seeing. However, as noted above please <strong>DO NOT</strong> post your particular bug to the forum unless it's non-reproduceable or you are sure it’s related to something you have done rather than phpBB3<br /><br /></li>
|
<li>Check the forums (use search!) to see if people have discussed anything that sounds similar to what you are seeing. However, as noted above please <strong>DO NOT</strong> post your particular bug to the forum unless it's non-reproduceable or you are sure it’s related to something you have done rather than phpBB<br /><br /></li>
|
||||||
<li>If no existing bug exists then please feel free to add it</li>
|
<li>If no existing bug exists then please feel free to add it</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@@ -267,7 +267,7 @@
|
|||||||
|
|
||||||
<p>The relevant database type/version is listed within the administration control panel.</p>
|
<p>The relevant database type/version is listed within the administration control panel.</p>
|
||||||
|
|
||||||
<p>Please be as detailed as you can in your report, and if possible, list the steps required to duplicate the problem. If you have a patch that fixes the issue, please attach it to the ticket or submit a pull request to our repository <a href="https://github.com/phpbb/phpbb3">on GitHub</a>.</p>
|
<p>Please be as detailed as you can in your report, and if possible, list the steps required to duplicate the problem. If you have a patch that fixes the issue, please attach it to the ticket or submit a pull request to our repository <a href="https://github.com/phpbb/phpbb">on GitHub</a>.</p>
|
||||||
|
|
||||||
<p>If you create a patch, it is very much appreciated (but not required) if you follow the phpBB coding guidelines. Please note that the coding guidelines are somewhat different between different versions of phpBB. For phpBB 3.1.x the coding guidelines may be found here: <a href="http://area51.phpbb.com/docs/31x/coding-guidelines.html">http://area51.phpbb.com/docs/31x/coding-guidelines.html</a></p>
|
<p>If you create a patch, it is very much appreciated (but not required) if you follow the phpBB coding guidelines. Please note that the coding guidelines are somewhat different between different versions of phpBB. For phpBB 3.1.x the coding guidelines may be found here: <a href="http://area51.phpbb.com/docs/31x/coding-guidelines.html">http://area51.phpbb.com/docs/31x/coding-guidelines.html</a></p>
|
||||||
|
|
||||||
@@ -321,7 +321,7 @@
|
|||||||
|
|
||||||
<p>phpBB 3.1.x takes advantage of new features added in PHP 5.3. We recommend that you upgrade to the latest stable release of PHP5 to run phpBB. The minimum version required is PHP 5.3.3.</p>
|
<p>phpBB 3.1.x takes advantage of new features added in PHP 5.3. We recommend that you upgrade to the latest stable release of PHP5 to run phpBB. The minimum version required is PHP 5.3.3.</p>
|
||||||
|
|
||||||
<p>Please remember that running any application on a development (unstable, e.g. a beta release) version of PHP can lead to strange/unexpected results which may appear to be bugs in the application. Therefore, we recommend you upgrade to the newest stable version of PHP before running phpBB3. If you are running a development version of PHP please check any bugs you find on a system running a stable release before submitting.</p>
|
<p>Please remember that running any application on a development (unstable, e.g. a beta release) version of PHP can lead to strange/unexpected results which may appear to be bugs in the application. Therefore, we recommend you upgrade to the newest stable version of PHP before running phpBB. If you are running a development version of PHP please check any bugs you find on a system running a stable release before submitting.</p>
|
||||||
|
|
||||||
<p>This board has been developed and tested under Linux and Windows (amongst others) running Apache using MySQL 3.23, 4.x, 5.x, MariaDB 5.x, MSSQL Server 2000, PostgreSQL 8.x, Oracle 8, SQLite 2 and SQLite 3. Versions of PHP used range from 5.3.x to 5.4.x without problem.</p>
|
<p>This board has been developed and tested under Linux and Windows (amongst others) running Apache using MySQL 3.23, 4.x, 5.x, MariaDB 5.x, MSSQL Server 2000, PostgreSQL 8.x, Oracle 8, SQLite 2 and SQLite 3. Versions of PHP used range from 5.3.x to 5.4.x without problem.</p>
|
||||||
|
|
||||||
|
@@ -224,6 +224,38 @@ forumlist_body_category_header_before
|
|||||||
* Since: 3.1.0-a4
|
* Since: 3.1.0-a4
|
||||||
* Purpose: Add content before the header of the category on the forum list.
|
* Purpose: Add content before the header of the category on the forum list.
|
||||||
|
|
||||||
|
forumlist_body_forum_row_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/forumlist_body.html
|
||||||
|
+ styles/subsilver2/template/forumlist_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add content after the forum list item.
|
||||||
|
|
||||||
|
forumlist_body_forum_row_append
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/forumlist_body.html
|
||||||
|
+ styles/subsilver2/template/forumlist_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add content at the start of the forum list item.
|
||||||
|
|
||||||
|
forumlist_body_forum_row_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/forumlist_body.html
|
||||||
|
+ styles/subsilver2/template/forumlist_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add content before the forum list item.
|
||||||
|
|
||||||
|
forumlist_body_forum_row_prepend
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/forumlist_body.html
|
||||||
|
+ styles/subsilver2/template/forumlist_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add content at the end of the forum list item.
|
||||||
|
|
||||||
forumlist_body_last_post_title_prepend
|
forumlist_body_last_post_title_prepend
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
@@ -1123,6 +1155,70 @@ ucp_friend_list_after
|
|||||||
* Since: 3.1.0-a4
|
* Since: 3.1.0-a4
|
||||||
* Purpose: Add optional elements after list of friends in UCP
|
* Purpose: Add optional elements after list of friends in UCP
|
||||||
|
|
||||||
|
viewforum_buttons_bottom_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewforum_body.html
|
||||||
|
+ styles/subsilver2/template/viewforum_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add buttons before New Topic button on the bottom of the topic's list
|
||||||
|
|
||||||
|
viewforum_buttons_bottom_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewforum_body.html
|
||||||
|
+ styles/subsilver2/template/viewforum_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add buttons after New Topic button on the bottom of the topic's list
|
||||||
|
|
||||||
|
viewforum_buttons_top_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewforum_body.html
|
||||||
|
+ styles/subsilver2/template/viewforum_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add buttons before New Topic button on the top of the topic's list
|
||||||
|
|
||||||
|
viewforum_buttons_top_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewforum_body.html
|
||||||
|
+ styles/subsilver2/template/viewforum_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add buttons after New Topic button on the top of the topic's list
|
||||||
|
|
||||||
|
viewtopic_buttons_bottom_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
|
+ styles/subsilver2/template/viewtopic_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add buttons before Post Reply button on the bottom of the posts's list
|
||||||
|
|
||||||
|
viewtopic_buttons_bottom_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
|
+ styles/subsilver2/template/viewtopic_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add buttons after Post Reply button on the bottom of the posts's list
|
||||||
|
|
||||||
|
viewtopic_buttons_top_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
|
+ styles/subsilver2/template/viewtopic_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add buttons before Post Reply button on the top of the posts's list
|
||||||
|
|
||||||
|
viewtopic_buttons_top_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
|
+ styles/subsilver2/template/viewtopic_body.html
|
||||||
|
* Since: 3.1.0-RC5
|
||||||
|
* Purpose: Add buttons after Post Reply button on the top of the posts's list
|
||||||
|
|
||||||
viewforum_forum_name_append
|
viewforum_forum_name_append
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
|
@@ -165,7 +165,6 @@ if (defined('DEBUG') && request_var('explain', 0) && $auth->acl_get('a_'))
|
|||||||
header('Content-type: text/html; charset=UTF-8');
|
header('Content-type: text/html; charset=UTF-8');
|
||||||
header('Cache-Control: private, no-cache="set-cookie"');
|
header('Cache-Control: private, no-cache="set-cookie"');
|
||||||
header('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
|
header('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
|
||||||
header('Pragma: no-cache');
|
|
||||||
|
|
||||||
$mtime = explode(' ', microtime());
|
$mtime = explode(' ', microtime());
|
||||||
$totaltime = $mtime[0] + $mtime[1] - $starttime;
|
$totaltime = $mtime[0] + $mtime[1] - $starttime;
|
||||||
|
@@ -25,14 +25,13 @@ class acp_ban
|
|||||||
|
|
||||||
function main($id, $mode)
|
function main($id, $mode)
|
||||||
{
|
{
|
||||||
global $config, $db, $user, $auth, $template, $cache;
|
global $user, $template, $request, $phpbb_dispatcher;
|
||||||
global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix;
|
global $phpbb_root_path, $phpEx;
|
||||||
|
|
||||||
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
|
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
|
||||||
|
|
||||||
$bansubmit = (isset($_POST['bansubmit'])) ? true : false;
|
$bansubmit = $request->is_set_post('bansubmit');
|
||||||
$unbansubmit = (isset($_POST['unbansubmit'])) ? true : false;
|
$unbansubmit = $request->is_set_post('unbansubmit');
|
||||||
$current_time = time();
|
|
||||||
|
|
||||||
$user->add_lang(array('acp/ban', 'acp/users'));
|
$user->add_lang(array('acp/ban', 'acp/users'));
|
||||||
$this->tpl_name = 'acp_ban';
|
$this->tpl_name = 'acp_ban';
|
||||||
@@ -48,23 +47,79 @@ class acp_ban
|
|||||||
if ($bansubmit)
|
if ($bansubmit)
|
||||||
{
|
{
|
||||||
// Grab the list of entries
|
// Grab the list of entries
|
||||||
$ban = utf8_normalize_nfc(request_var('ban', '', true));
|
$ban = $request->variable('ban', '', true);
|
||||||
$ban_len = request_var('banlength', 0);
|
$ban_length = $request->variable('banlength', 0);
|
||||||
$ban_len_other = request_var('banlengthother', '');
|
$ban_length_other = $request->variable('banlengthother', '');
|
||||||
$ban_exclude = request_var('banexclude', 0);
|
$ban_exclude = $request->variable('banexclude', 0);
|
||||||
$ban_reason = utf8_normalize_nfc(request_var('banreason', '', true));
|
$ban_reason = $request->variable('banreason', '', true);
|
||||||
$ban_give_reason = utf8_normalize_nfc(request_var('bangivereason', '', true));
|
$ban_give_reason = $request->variable('bangivereason', '', true);
|
||||||
|
|
||||||
if ($ban)
|
if ($ban)
|
||||||
{
|
{
|
||||||
user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reason, $ban_give_reason);
|
$abort_ban = false;
|
||||||
|
/**
|
||||||
|
* Use this event to modify the ban details before the ban is performed
|
||||||
|
*
|
||||||
|
* @event core.acp_ban_before
|
||||||
|
* @var string mode One of the following: user, ip, email
|
||||||
|
* @var string ban Either string or array with usernames, ips or email addresses
|
||||||
|
* @var int ban_length Ban length in minutes
|
||||||
|
* @var string ban_length_other Ban length as a date (YYYY-MM-DD)
|
||||||
|
* @var bool ban_exclude Are we banning or excluding from another ban
|
||||||
|
* @var string ban_reason Ban reason displayed to moderators
|
||||||
|
* @var string ban_give_reason Ban reason displayed to the banned user
|
||||||
|
* @var mixed abort_ban Either false, or an error message that is displayed to the user.
|
||||||
|
* If a string is given the bans are not issued.
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array(
|
||||||
|
'mode',
|
||||||
|
'ban',
|
||||||
|
'ban_length',
|
||||||
|
'ban_length_other',
|
||||||
|
'ban_exclude',
|
||||||
|
'ban_reason',
|
||||||
|
'ban_give_reason',
|
||||||
|
'abort_ban',
|
||||||
|
);
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.acp_ban_before', compact($vars)));
|
||||||
|
|
||||||
|
if ($abort_ban)
|
||||||
|
{
|
||||||
|
trigger_error($abort_ban . adm_back_link($this->u_action));
|
||||||
|
}
|
||||||
|
user_ban($mode, $ban, $ban_length, $ban_length_other, $ban_exclude, $ban_reason, $ban_give_reason);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this event to perform actions after the ban has been performed
|
||||||
|
*
|
||||||
|
* @event core.acp_ban_after
|
||||||
|
* @var string mode One of the following: user, ip, email
|
||||||
|
* @var string ban Either string or array with usernames, ips or email addresses
|
||||||
|
* @var int ban_length Ban length in minutes
|
||||||
|
* @var string ban_length_other Ban length as a date (YYYY-MM-DD)
|
||||||
|
* @var bool ban_exclude Are we banning or excluding from another ban
|
||||||
|
* @var string ban_reason Ban reason displayed to moderators
|
||||||
|
* @var string ban_give_reason Ban reason displayed to the banned user
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array(
|
||||||
|
'mode',
|
||||||
|
'ban',
|
||||||
|
'ban_length',
|
||||||
|
'ban_length_other',
|
||||||
|
'ban_exclude',
|
||||||
|
'ban_reason',
|
||||||
|
'ban_give_reason',
|
||||||
|
);
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.acp_ban_after', compact($vars)));
|
||||||
|
|
||||||
trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . adm_back_link($this->u_action));
|
trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . adm_back_link($this->u_action));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($unbansubmit)
|
else if ($unbansubmit)
|
||||||
{
|
{
|
||||||
$ban = request_var('unban', array(''));
|
$ban = $request->variable('unban', array(''));
|
||||||
|
|
||||||
if ($ban)
|
if ($ban)
|
||||||
{
|
{
|
||||||
|
@@ -65,13 +65,16 @@ class acp_board
|
|||||||
'default_lang' => array('lang' => 'DEFAULT_LANGUAGE', 'validate' => 'lang', 'type' => 'select', 'function' => 'language_select', 'params' => array('{CONFIG_VALUE}'), 'explain' => false),
|
'default_lang' => array('lang' => 'DEFAULT_LANGUAGE', 'validate' => 'lang', 'type' => 'select', 'function' => 'language_select', 'params' => array('{CONFIG_VALUE}'), 'explain' => false),
|
||||||
'default_dateformat' => array('lang' => 'DEFAULT_DATE_FORMAT', 'validate' => 'string', 'type' => 'custom', 'method' => 'dateformat_select', 'explain' => true),
|
'default_dateformat' => array('lang' => 'DEFAULT_DATE_FORMAT', 'validate' => 'string', 'type' => 'custom', 'method' => 'dateformat_select', 'explain' => true),
|
||||||
'board_timezone' => array('lang' => 'SYSTEM_TIMEZONE', 'validate' => 'timezone', 'type' => 'custom', 'method' => 'timezone_select', 'explain' => true),
|
'board_timezone' => array('lang' => 'SYSTEM_TIMEZONE', 'validate' => 'timezone', 'type' => 'custom', 'method' => 'timezone_select', 'explain' => true),
|
||||||
'default_style' => array('lang' => 'DEFAULT_STYLE', 'validate' => 'int', 'type' => 'select', 'function' => 'style_select', 'params' => array('{CONFIG_VALUE}', false), 'explain' => false),
|
|
||||||
|
'legend2' => 'BOARD_STYLE',
|
||||||
|
'default_style' => array('lang' => 'DEFAULT_STYLE', 'validate' => 'int', 'type' => 'select', 'function' => 'style_select', 'params' => array('{CONFIG_VALUE}', false), 'explain' => true),
|
||||||
|
'guest_style' => array('lang' => 'GUEST_STYLE', 'validate' => 'int', 'type' => 'select', 'function' => 'style_select', 'params' => array($this->guest_style_get(), false), 'explain' => true),
|
||||||
'override_user_style' => array('lang' => 'OVERRIDE_STYLE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
'override_user_style' => array('lang' => 'OVERRIDE_STYLE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
||||||
|
|
||||||
'legend2' => 'WARNINGS',
|
'legend3' => 'WARNINGS',
|
||||||
'warnings_expire_days' => array('lang' => 'WARNINGS_EXPIRE', 'validate' => 'int:0:9999', 'type' => 'number:0:9999', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
|
'warnings_expire_days' => array('lang' => 'WARNINGS_EXPIRE', 'validate' => 'int:0:9999', 'type' => 'number:0:9999', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
|
||||||
|
|
||||||
'legend3' => 'ACP_SUBMIT_CHANGES',
|
'legend4' => 'ACP_SUBMIT_CHANGES',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@@ -509,6 +512,14 @@ class acp_board
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($config_name == 'guest_style')
|
||||||
|
{
|
||||||
|
if (isset($cfg_array[$config_name])) {
|
||||||
|
$this->guest_style_set($cfg_array[$config_name]);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$this->new_config[$config_name] = $config_value = $cfg_array[$config_name];
|
$this->new_config[$config_name] = $config_value = $cfg_array[$config_name];
|
||||||
|
|
||||||
if ($config_name == 'email_function_name')
|
if ($config_name == 'email_function_name')
|
||||||
@@ -904,12 +915,44 @@ class acp_board
|
|||||||
*/
|
*/
|
||||||
function timezone_select($value, $key)
|
function timezone_select($value, $key)
|
||||||
{
|
{
|
||||||
global $user;
|
global $template, $user;
|
||||||
|
|
||||||
$timezone_select = phpbb_timezone_select($user, $value, true);
|
$timezone_select = phpbb_timezone_select($template, $user, $value, true);
|
||||||
$timezone_select['tz_select'];
|
|
||||||
|
|
||||||
return '<select name="config[' . $key . ']" id="' . $key . '">' . $timezone_select['tz_select'] . '</select>';
|
return '<select name="config[' . $key . ']" id="' . $key . '">' . $timezone_select . '</select>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get guest style
|
||||||
|
*/
|
||||||
|
public function guest_style_get()
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$sql = 'SELECT user_style
|
||||||
|
FROM ' . USERS_TABLE . '
|
||||||
|
WHERE user_id = ' . ANONYMOUS;
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
$style = (int) $db->sql_fetchfield('user_style');
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
return $style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set guest style
|
||||||
|
*
|
||||||
|
* @param int $style_id The style ID
|
||||||
|
*/
|
||||||
|
public function guest_style_set($style_id)
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . USERS_TABLE . '
|
||||||
|
SET user_style = ' . (int) $style_id . '
|
||||||
|
WHERE user_id = ' . ANONYMOUS;
|
||||||
|
$db->sql_query($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -269,7 +269,7 @@ class acp_database
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
header('Pragma: no-cache');
|
header('Cache-Control: private, no-cache');
|
||||||
header("Content-Type: $mimetype; name=\"$name\"");
|
header("Content-Type: $mimetype; name=\"$name\"");
|
||||||
header("Content-disposition: attachment; filename=$name");
|
header("Content-disposition: attachment; filename=$name");
|
||||||
|
|
||||||
@@ -510,7 +510,7 @@ class base_extractor
|
|||||||
if ($download == true)
|
if ($download == true)
|
||||||
{
|
{
|
||||||
$name = $filename . $ext;
|
$name = $filename . $ext;
|
||||||
header('Pragma: no-cache');
|
header('Cache-Control: private, no-cache');
|
||||||
header("Content-Type: $mimetype; name=\"$name\"");
|
header("Content-Type: $mimetype; name=\"$name\"");
|
||||||
header("Content-disposition: attachment; filename=$name");
|
header("Content-disposition: attachment; filename=$name");
|
||||||
|
|
||||||
|
@@ -737,7 +737,7 @@ class acp_icons
|
|||||||
{
|
{
|
||||||
garbage_collection();
|
garbage_collection();
|
||||||
|
|
||||||
header('Pragma: public');
|
header('Cache-Control: public');
|
||||||
|
|
||||||
// Send out the Headers
|
// Send out the Headers
|
||||||
header('Content-Type: text/x-delimtext; name="' . $mode . '.pak"');
|
header('Content-Type: text/x-delimtext; name="' . $mode . '.pak"');
|
||||||
|
@@ -655,8 +655,8 @@ class acp_main
|
|||||||
'S_MBSTRING_LOADED' => true,
|
'S_MBSTRING_LOADED' => true,
|
||||||
'S_MBSTRING_FUNC_OVERLOAD_FAIL' => (intval(@ini_get('mbstring.func_overload')) & (MB_OVERLOAD_MAIL | MB_OVERLOAD_STRING)),
|
'S_MBSTRING_FUNC_OVERLOAD_FAIL' => (intval(@ini_get('mbstring.func_overload')) & (MB_OVERLOAD_MAIL | MB_OVERLOAD_STRING)),
|
||||||
'S_MBSTRING_ENCODING_TRANSLATION_FAIL' => (@ini_get('mbstring.encoding_translation') != 0),
|
'S_MBSTRING_ENCODING_TRANSLATION_FAIL' => (@ini_get('mbstring.encoding_translation') != 0),
|
||||||
'S_MBSTRING_HTTP_INPUT_FAIL' => (@ini_get('mbstring.http_input') != 'pass'),
|
'S_MBSTRING_HTTP_INPUT_FAIL' => !in_array(@ini_get('mbstring.http_input'), array('pass', '')),
|
||||||
'S_MBSTRING_HTTP_OUTPUT_FAIL' => (@ini_get('mbstring.http_output') != 'pass'),
|
'S_MBSTRING_HTTP_OUTPUT_FAIL' => !in_array(@ini_get('mbstring.http_output'), array('pass', '')),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -70,11 +70,6 @@ class acp_styles
|
|||||||
$action = $this->request->variable('action', '');
|
$action = $this->request->variable('action', '');
|
||||||
$post_actions = array('install', 'activate', 'deactivate', 'uninstall');
|
$post_actions = array('install', 'activate', 'deactivate', 'uninstall');
|
||||||
|
|
||||||
if ($action && in_array($action, $post_actions) && !check_link_hash($request->variable('hash', ''), $action))
|
|
||||||
{
|
|
||||||
trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($post_actions as $key)
|
foreach ($post_actions as $key)
|
||||||
{
|
{
|
||||||
if ($this->request->is_set_post($key))
|
if ($this->request->is_set_post($key))
|
||||||
@@ -83,6 +78,18 @@ class acp_styles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The uninstall action uses confirm_box() to verify the validity of the request,
|
||||||
|
// so there is no need to check for a valid token here.
|
||||||
|
if (in_array($action, $post_actions) && $action != 'uninstall')
|
||||||
|
{
|
||||||
|
$is_valid_request = check_link_hash($request->variable('hash', ''), $action) || check_form_key('styles_management');
|
||||||
|
|
||||||
|
if (!$is_valid_request)
|
||||||
|
{
|
||||||
|
trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($action != '')
|
if ($action != '')
|
||||||
{
|
{
|
||||||
$this->s_hidden_fields['action'] = $action;
|
$this->s_hidden_fields['action'] = $action;
|
||||||
@@ -122,6 +129,8 @@ class acp_styles
|
|||||||
*/
|
*/
|
||||||
protected function frontend()
|
protected function frontend()
|
||||||
{
|
{
|
||||||
|
add_form_key('styles_management');
|
||||||
|
|
||||||
// Check mode
|
// Check mode
|
||||||
switch ($this->mode)
|
switch ($this->mode)
|
||||||
{
|
{
|
||||||
@@ -133,32 +142,10 @@ class acp_styles
|
|||||||
$this->welcome_message('INSTALL_STYLES', 'INSTALL_STYLES_EXPLAIN');
|
$this->welcome_message('INSTALL_STYLES', 'INSTALL_STYLES_EXPLAIN');
|
||||||
$this->show_available();
|
$this->show_available();
|
||||||
return;
|
return;
|
||||||
case 'cache':
|
|
||||||
$this->action_cache();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
trigger_error($this->user->lang['NO_MODE'] . adm_back_link($this->u_action), E_USER_WARNING);
|
trigger_error($this->user->lang['NO_MODE'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Purge cache
|
|
||||||
*/
|
|
||||||
protected function action_cache()
|
|
||||||
{
|
|
||||||
global $db, $cache, $auth;
|
|
||||||
|
|
||||||
$this->config->increment('assets_version', 1);
|
|
||||||
$this->cache->purge();
|
|
||||||
|
|
||||||
// Clear permissions
|
|
||||||
$this->auth->acl_clear_prefetch();
|
|
||||||
phpbb_cache_moderators($db, $cache, $auth);
|
|
||||||
|
|
||||||
add_log('admin', 'LOG_PURGE_CACHE');
|
|
||||||
|
|
||||||
trigger_error($this->user->lang['PURGED_CACHE'] . adm_back_link($this->u_base_action), E_USER_NOTICE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Install style(s)
|
* Install style(s)
|
||||||
*/
|
*/
|
||||||
|
@@ -1661,7 +1661,7 @@ class acp_users
|
|||||||
${'s_sort_' . $sort_option . '_dir'} .= '</select>';
|
${'s_sort_' . $sort_option . '_dir'} .= '</select>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$timezone_selects = phpbb_timezone_select($user, $data['tz'], true);
|
phpbb_timezone_select($template, $user, $data['tz'], true);
|
||||||
$user_prefs_data = array(
|
$user_prefs_data = array(
|
||||||
'S_PREFS' => true,
|
'S_PREFS' => true,
|
||||||
'S_JABBER_DISABLED' => ($config['jab_enable'] && $user_row['user_jabber'] && @extension_loaded('xml')) ? false : true,
|
'S_JABBER_DISABLED' => ($config['jab_enable'] && $user_row['user_jabber'] && @extension_loaded('xml')) ? false : true,
|
||||||
@@ -1700,8 +1700,6 @@ class acp_users
|
|||||||
|
|
||||||
'S_LANG_OPTIONS' => language_select($data['lang']),
|
'S_LANG_OPTIONS' => language_select($data['lang']),
|
||||||
'S_STYLE_OPTIONS' => style_select($data['style']),
|
'S_STYLE_OPTIONS' => style_select($data['style']),
|
||||||
'S_TZ_OPTIONS' => $timezone_selects['tz_select'],
|
|
||||||
'S_TZ_DATE_OPTIONS' => $timezone_selects['tz_dates'],
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -22,7 +22,6 @@ class acp_styles_info
|
|||||||
'modes' => array(
|
'modes' => array(
|
||||||
'style' => array('title' => 'ACP_STYLES', 'auth' => 'acl_a_styles', 'cat' => array('ACP_STYLE_MANAGEMENT')),
|
'style' => array('title' => 'ACP_STYLES', 'auth' => 'acl_a_styles', 'cat' => array('ACP_STYLE_MANAGEMENT')),
|
||||||
'install' => array('title' => 'ACP_STYLES_INSTALL', 'auth' => 'acl_a_styles', 'cat' => array('ACP_STYLE_MANAGEMENT')),
|
'install' => array('title' => 'ACP_STYLES_INSTALL', 'auth' => 'acl_a_styles', 'cat' => array('ACP_STYLE_MANAGEMENT')),
|
||||||
'cache' => array('title' => 'ACP_STYLES_CACHE', 'auth' => 'acl_a_styles', 'cat' => array('ACP_STYLE_MANAGEMENT')),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,7 @@ if (!defined('IN_PHPBB'))
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// phpBB Version
|
// phpBB Version
|
||||||
define('PHPBB_VERSION', '3.1.0-RC4');
|
define('PHPBB_VERSION', '3.1.0-RC6');
|
||||||
|
|
||||||
// QA-related
|
// QA-related
|
||||||
// define('PHPBB_QA', 1);
|
// define('PHPBB_QA', 1);
|
||||||
|
@@ -31,7 +31,7 @@ function phpbb_load_extensions_autoloaders($phpbb_root_path)
|
|||||||
new \phpbb\recursive_dot_prefix_filter_iterator(
|
new \phpbb\recursive_dot_prefix_filter_iterator(
|
||||||
new \RecursiveDirectoryIterator(
|
new \RecursiveDirectoryIterator(
|
||||||
$phpbb_root_path . 'ext/',
|
$phpbb_root_path . 'ext/',
|
||||||
\FilesystemIterator::SKIP_DOTS
|
\FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
\RecursiveIteratorIterator::SELF_FIRST
|
\RecursiveIteratorIterator::SELF_FIRST
|
||||||
@@ -937,14 +937,20 @@ function style_select($default = '', $all = false)
|
|||||||
* Format the timezone offset with hours and minutes
|
* Format the timezone offset with hours and minutes
|
||||||
*
|
*
|
||||||
* @param int $tz_offset Timezone offset in seconds
|
* @param int $tz_offset Timezone offset in seconds
|
||||||
|
* @param bool $show_null Whether null offsets should be shown
|
||||||
* @return string Normalized offset string: -7200 => -02:00
|
* @return string Normalized offset string: -7200 => -02:00
|
||||||
* 16200 => +04:30
|
* 16200 => +04:30
|
||||||
*/
|
*/
|
||||||
function phpbb_format_timezone_offset($tz_offset)
|
function phpbb_format_timezone_offset($tz_offset, $show_null = false)
|
||||||
{
|
{
|
||||||
$sign = ($tz_offset < 0) ? '-' : '+';
|
$sign = ($tz_offset < 0) ? '-' : '+';
|
||||||
$time_offset = abs($tz_offset);
|
$time_offset = abs($tz_offset);
|
||||||
|
|
||||||
|
if ($time_offset == 0 && $show_null == false)
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
$offset_seconds = $time_offset % 3600;
|
$offset_seconds = $time_offset % 3600;
|
||||||
$offset_minutes = $offset_seconds / 60;
|
$offset_minutes = $offset_seconds / 60;
|
||||||
$offset_hours = ($time_offset - $offset_seconds) / 3600;
|
$offset_hours = ($time_offset - $offset_seconds) / 3600;
|
||||||
@@ -1040,13 +1046,14 @@ function phpbb_get_timezone_identifiers($selected_timezone)
|
|||||||
/**
|
/**
|
||||||
* Options to pick a timezone and date/time
|
* Options to pick a timezone and date/time
|
||||||
*
|
*
|
||||||
|
* @param \phpbb\template\template $template phpBB template object
|
||||||
* @param \phpbb\user $user Object of the current user
|
* @param \phpbb\user $user Object of the current user
|
||||||
* @param string $default A timezone to select
|
* @param string $default A timezone to select
|
||||||
* @param boolean $truncate Shall we truncate the options text
|
* @param boolean $truncate Shall we truncate the options text
|
||||||
*
|
*
|
||||||
* @return array Returns an array, also containing the options for the time selector.
|
* @return array Returns an array containing the options for the time selector.
|
||||||
*/
|
*/
|
||||||
function phpbb_timezone_select($user, $default = '', $truncate = false)
|
function phpbb_timezone_select($template, $user, $default = '', $truncate = false)
|
||||||
{
|
{
|
||||||
static $timezones;
|
static $timezones;
|
||||||
|
|
||||||
@@ -1062,15 +1069,15 @@ function phpbb_timezone_select($user, $default = '', $truncate = false)
|
|||||||
$dt = $user->create_datetime('now', $tz);
|
$dt = $user->create_datetime('now', $tz);
|
||||||
$offset = $dt->getOffset();
|
$offset = $dt->getOffset();
|
||||||
$current_time = $dt->format($user->lang['DATETIME_FORMAT'], true);
|
$current_time = $dt->format($user->lang['DATETIME_FORMAT'], true);
|
||||||
$offset_string = phpbb_format_timezone_offset($offset);
|
$offset_string = phpbb_format_timezone_offset($offset, true);
|
||||||
$timezones['GMT' . $offset_string . ' - ' . $timezone] = array(
|
$timezones['UTC' . $offset_string . ' - ' . $timezone] = array(
|
||||||
'tz' => $timezone,
|
'tz' => $timezone,
|
||||||
'offset' => 'GMT' . $offset_string,
|
'offset' => $offset_string,
|
||||||
'current' => $current_time,
|
'current' => $current_time,
|
||||||
);
|
);
|
||||||
if ($timezone === $default)
|
if ($timezone === $default)
|
||||||
{
|
{
|
||||||
$default_offset = 'GMT' . $offset_string;
|
$default_offset = 'UTC' . $offset_string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unset($unsorted_timezones);
|
unset($unsorted_timezones);
|
||||||
@@ -1078,18 +1085,27 @@ function phpbb_timezone_select($user, $default = '', $truncate = false)
|
|||||||
uksort($timezones, 'phpbb_tz_select_compare');
|
uksort($timezones, 'phpbb_tz_select_compare');
|
||||||
}
|
}
|
||||||
|
|
||||||
$tz_select = $tz_dates = $opt_group = '';
|
$tz_select = $opt_group = '';
|
||||||
|
|
||||||
foreach ($timezones as $timezone)
|
foreach ($timezones as $key => $timezone)
|
||||||
{
|
{
|
||||||
if ($opt_group != $timezone['offset'])
|
if ($opt_group != $timezone['offset'])
|
||||||
{
|
{
|
||||||
|
// Generate tz_select for backwards compatibility
|
||||||
$tz_select .= ($opt_group) ? '</optgroup>' : '';
|
$tz_select .= ($opt_group) ? '</optgroup>' : '';
|
||||||
$tz_select .= '<optgroup label="' . $timezone['offset'] . ' - ' . $timezone['current'] . '">';
|
$tz_select .= '<optgroup label="' . $user->lang(array('timezones', 'UTC_OFFSET_CURRENT'), $timezone['offset'], $timezone['current']) . '">';
|
||||||
$opt_group = $timezone['offset'];
|
$opt_group = $timezone['offset'];
|
||||||
|
$template->assign_block_vars('timezone_select', array(
|
||||||
|
'LABEL' => $user->lang(array('timezones', 'UTC_OFFSET_CURRENT'), $timezone['offset'], $timezone['current']),
|
||||||
|
'VALUE' => $key . ' - ' . $timezone['current'],
|
||||||
|
));
|
||||||
|
|
||||||
$selected = ($default_offset == $timezone['offset']) ? ' selected="selected"' : '';
|
$selected = (!empty($default_offset) && strpos($key, $default_offset) !== false) ? ' selected="selected"' : '';
|
||||||
$tz_dates .= '<option value="' . $timezone['offset'] . ' - ' . $timezone['current'] . '"' . $selected . '>' . $timezone['offset'] . ' - ' . $timezone['current'] . '</option>';
|
$template->assign_block_vars('timezone_date', array(
|
||||||
|
'VALUE' => $key . ' - ' . $timezone['current'],
|
||||||
|
'SELECTED' => !empty($selected),
|
||||||
|
'TITLE' => $user->lang(array('timezones', 'UTC_OFFSET_CURRENT'), $timezone['offset'], $timezone['current']),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
$label = $timezone['tz'];
|
$label = $timezone['tz'];
|
||||||
@@ -1097,22 +1113,26 @@ function phpbb_timezone_select($user, $default = '', $truncate = false)
|
|||||||
{
|
{
|
||||||
$label = $user->lang['timezones'][$label];
|
$label = $user->lang['timezones'][$label];
|
||||||
}
|
}
|
||||||
$title = $timezone['offset'] . ' - ' . $label;
|
$title = $user->lang(array('timezones', 'UTC_OFFSET_CURRENT'), $timezone['offset'], $label);
|
||||||
|
|
||||||
if ($truncate)
|
if ($truncate)
|
||||||
{
|
{
|
||||||
$label = truncate_string($label, 50, 255, false, '...');
|
$label = truncate_string($label, 50, 255, false, '...');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Also generate timezone_select for backwards compatibility
|
||||||
$selected = ($timezone['tz'] === $default) ? ' selected="selected"' : '';
|
$selected = ($timezone['tz'] === $default) ? ' selected="selected"' : '';
|
||||||
$tz_select .= '<option title="' . $title . '" value="' . $timezone['tz'] . '"' . $selected . '>' . $label . '</option>';
|
$tz_select .= '<option title="' . $title . '" value="' . $timezone['tz'] . '"' . $selected . '>' . $label . '</option>';
|
||||||
|
$template->assign_block_vars('timezone_select.timezone_options', array(
|
||||||
|
'TITLE' => $title,
|
||||||
|
'VALUE' => $timezone['tz'],
|
||||||
|
'SELECTED' => !empty($selected),
|
||||||
|
'LABEL' => $label,
|
||||||
|
));
|
||||||
}
|
}
|
||||||
$tz_select .= '</optgroup>';
|
$tz_select .= '</optgroup>';
|
||||||
|
|
||||||
return array(
|
return $tz_select;
|
||||||
'tz_select' => $tz_select,
|
|
||||||
'tz_dates' => $tz_dates,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Functions handling topic/post tracking/marking
|
// Functions handling topic/post tracking/marking
|
||||||
@@ -2748,7 +2768,7 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo
|
|||||||
function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = false, $s_display = true)
|
function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = false, $s_display = true)
|
||||||
{
|
{
|
||||||
global $db, $user, $template, $auth, $phpEx, $phpbb_root_path, $config;
|
global $db, $user, $template, $auth, $phpEx, $phpbb_root_path, $config;
|
||||||
global $request, $phpbb_container;
|
global $request, $phpbb_container, $phpbb_dispatcher;
|
||||||
|
|
||||||
$err = '';
|
$err = '';
|
||||||
|
|
||||||
@@ -2834,6 +2854,18 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
|
|||||||
{
|
{
|
||||||
$redirect = request_var('redirect', "{$phpbb_root_path}index.$phpEx");
|
$redirect = request_var('redirect', "{$phpbb_root_path}index.$phpEx");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This event allows an extension to modify the redirection when a user successfully logs in
|
||||||
|
*
|
||||||
|
* @event core.login_box_redirect
|
||||||
|
* @var string redirect Redirect string
|
||||||
|
* @var boolean admin Is admin?
|
||||||
|
* @var bool return If true, do not redirect but return the sanitized URL.
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array('redirect', 'admin', 'return');
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.login_box_redirect', compact($vars)));
|
||||||
|
|
||||||
// append/replace SID (may change during the session for AOL users)
|
// append/replace SID (may change during the session for AOL users)
|
||||||
$redirect = reapply_sid($redirect);
|
$redirect = reapply_sid($redirect);
|
||||||
|
|
||||||
@@ -4903,7 +4935,7 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
|
|||||||
}
|
}
|
||||||
|
|
||||||
$dt = $user->create_datetime();
|
$dt = $user->create_datetime();
|
||||||
$timezone_offset = 'GMT' . phpbb_format_timezone_offset($dt->getOffset());
|
$timezone_offset = $user->lang(array('timezones', 'UTC_OFFSET'), phpbb_format_timezone_offset($dt->getOffset()));
|
||||||
$timezone_name = $user->timezone->getName();
|
$timezone_name = $user->timezone->getName();
|
||||||
if (isset($user->lang['timezones'][$timezone_name]))
|
if (isset($user->lang['timezones'][$timezone_name]))
|
||||||
{
|
{
|
||||||
@@ -5068,7 +5100,6 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
|
|||||||
'Content-type' => 'text/html; charset=UTF-8',
|
'Content-type' => 'text/html; charset=UTF-8',
|
||||||
'Cache-Control' => 'private, no-cache="set-cookie"',
|
'Cache-Control' => 'private, no-cache="set-cookie"',
|
||||||
'Expires' => gmdate('D, d M Y H:i:s', time()) . ' GMT',
|
'Expires' => gmdate('D, d M Y H:i:s', time()) . ' GMT',
|
||||||
'Pragma' => 'no-cache',
|
|
||||||
);
|
);
|
||||||
if (!empty($user->data['is_bot']))
|
if (!empty($user->data['is_bot']))
|
||||||
{
|
{
|
||||||
@@ -5259,6 +5290,18 @@ function page_footer($run_cron = true, $display_template = true, $exit_handler =
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute code and/or modify output before displaying the template.
|
||||||
|
*
|
||||||
|
* @event core.page_footer_after
|
||||||
|
* @var bool display_template Whether or not to display the template
|
||||||
|
* @var bool exit_handler Whether or not to run the exit_handler()
|
||||||
|
*
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array('display_template', 'exit_handler');
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.page_footer_after', compact($vars)));
|
||||||
|
|
||||||
if ($display_template)
|
if ($display_template)
|
||||||
{
|
{
|
||||||
$template->display('body');
|
$template->display('body');
|
||||||
|
@@ -113,7 +113,6 @@ function adm_page_header($page_title)
|
|||||||
'Content-type' => 'text/html; charset=UTF-8',
|
'Content-type' => 'text/html; charset=UTF-8',
|
||||||
'Cache-Control' => 'private, no-cache="set-cookie"',
|
'Cache-Control' => 'private, no-cache="set-cookie"',
|
||||||
'Expires' => gmdate('D, d M Y H:i:s', time()) . ' GMT',
|
'Expires' => gmdate('D, d M Y H:i:s', time()) . ' GMT',
|
||||||
'Pragma' => 'no-cache',
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -133,10 +133,9 @@ function phpbb_clean_path($path)
|
|||||||
*/
|
*/
|
||||||
function tz_select($default = '', $truncate = false)
|
function tz_select($default = '', $truncate = false)
|
||||||
{
|
{
|
||||||
global $user;
|
global $template, $user;
|
||||||
|
|
||||||
$timezone_select = phpbb_timezone_select($user, $default, $truncate);
|
return phpbb_timezone_select($template, $user, $default, $truncate);
|
||||||
return $timezone_select['tz_select'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -166,3 +165,30 @@ function update_foes($group_id = false, $user_id = false)
|
|||||||
global $db, $auth;
|
global $db, $auth;
|
||||||
return phpbb_update_foes($db, $auth, $group_id, $user_id);
|
return phpbb_update_foes($db, $auth, $group_id, $user_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get user rank title and image
|
||||||
|
*
|
||||||
|
* @param int $user_rank the current stored users rank id
|
||||||
|
* @param int $user_posts the users number of posts
|
||||||
|
* @param string &$rank_title the rank title will be stored here after execution
|
||||||
|
* @param string &$rank_img the rank image as full img tag is stored here after execution
|
||||||
|
* @param string &$rank_img_src the rank image source is stored here after execution
|
||||||
|
*
|
||||||
|
* @deprecated 3.1.0-RC5 (To be removed: 3.3.0)
|
||||||
|
*
|
||||||
|
* Note: since we do not want to break backwards-compatibility, this function will only properly assign ranks to guests if you call it for them with user_posts == false
|
||||||
|
*/
|
||||||
|
function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank_img_src)
|
||||||
|
{
|
||||||
|
global $phpbb_root_path, $phpEx;
|
||||||
|
if (!function_exists('phpbb_get_user_rank'))
|
||||||
|
{
|
||||||
|
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
||||||
|
}
|
||||||
|
|
||||||
|
$rank_data = phpbb_get_user_rank(array('user_rank' => $user_rank), $user_posts);
|
||||||
|
$rank_title = $rank_data['title'];
|
||||||
|
$rank_img = $rank_data['img'];
|
||||||
|
$rank_img_src = $rank_data['img_src'];
|
||||||
|
}
|
||||||
|
@@ -509,7 +509,7 @@ class compress_zip extends compress
|
|||||||
|
|
||||||
$mimetype = 'application/zip';
|
$mimetype = 'application/zip';
|
||||||
|
|
||||||
header('Pragma: no-cache');
|
header('Cache-Control: private, no-cache');
|
||||||
header("Content-Type: $mimetype; name=\"$download_name.zip\"");
|
header("Content-Type: $mimetype; name=\"$download_name.zip\"");
|
||||||
header("Content-disposition: attachment; filename=$download_name.zip");
|
header("Content-disposition: attachment; filename=$download_name.zip");
|
||||||
|
|
||||||
@@ -757,7 +757,7 @@ class compress_tar extends compress
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
header('Pragma: no-cache');
|
header('Cache-Control: private, no-cache');
|
||||||
header("Content-Type: $mimetype; name=\"$download_name$this->type\"");
|
header("Content-Type: $mimetype; name=\"$download_name$this->type\"");
|
||||||
header("Content-disposition: attachment; filename=$download_name$this->type");
|
header("Content-disposition: attachment; filename=$download_name$this->type");
|
||||||
|
|
||||||
|
@@ -912,7 +912,7 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
global $template, $cache, $user;
|
global $template, $cache, $user, $phpbb_dispatcher;
|
||||||
global $extensions, $config, $phpbb_root_path, $phpEx;
|
global $extensions, $config, $phpbb_root_path, $phpEx;
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -1187,6 +1187,34 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count,
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this event to modify the attachment template data.
|
||||||
|
*
|
||||||
|
* This event is triggered once per attachment.
|
||||||
|
*
|
||||||
|
* @event core.parse_attachments_modify_template_data
|
||||||
|
* @var array attachment Array with attachment data
|
||||||
|
* @var array block_array Template data of the attachment
|
||||||
|
* @var int display_cat Attachment category data
|
||||||
|
* @var string download_link Attachment download link
|
||||||
|
* @var array extensions Array with attachment extensions data
|
||||||
|
* @var mixed forum_id The forum id the attachments are displayed in (false if in private message)
|
||||||
|
* @var bool preview Flag indicating if we are in post preview mode
|
||||||
|
* @var array update_count Array with attachment ids to update download count
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array(
|
||||||
|
'attachment',
|
||||||
|
'block_array',
|
||||||
|
'display_cat',
|
||||||
|
'download_link',
|
||||||
|
'extensions',
|
||||||
|
'forum_id',
|
||||||
|
'preview',
|
||||||
|
'update_count',
|
||||||
|
);
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.parse_attachments_modify_template_data', compact($vars)));
|
||||||
|
|
||||||
$template->assign_block_vars('_file', $block_array);
|
$template->assign_block_vars('_file', $block_array);
|
||||||
|
|
||||||
$compiled_attachments[] = $template->assign_display('attachment_tpl');
|
$compiled_attachments[] = $template->assign_display('attachment_tpl');
|
||||||
|
@@ -649,6 +649,28 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
|
|||||||
'UNAPPROVED_POST_IMG' => $user->img('icon_topic_unapproved', 'POSTS_UNAPPROVED_FORUM'),
|
'UNAPPROVED_POST_IMG' => $user->img('icon_topic_unapproved', 'POSTS_UNAPPROVED_FORUM'),
|
||||||
));
|
));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event to perform additional actions after the forum list has been generated
|
||||||
|
*
|
||||||
|
* @event core.display_forums_after
|
||||||
|
* @var array active_forum_ary Array with forum data to display active topics
|
||||||
|
* @var bool display_moderators Flag indicating if we display forum moderators
|
||||||
|
* @var array forum_moderators Array with forum moderators list
|
||||||
|
* @var array forum_rows Data array of all forums we display
|
||||||
|
* @var bool return_moderators Flag indicating if moderators list should be returned
|
||||||
|
* @var array root_data Array with the root forum data
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array(
|
||||||
|
'active_forum_ary',
|
||||||
|
'display_moderators',
|
||||||
|
'forum_moderators',
|
||||||
|
'forum_rows',
|
||||||
|
'return_moderators',
|
||||||
|
'root_data',
|
||||||
|
);
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.display_forums_after', compact($vars)));
|
||||||
|
|
||||||
if ($return_moderators)
|
if ($return_moderators)
|
||||||
{
|
{
|
||||||
return array($active_forum_ary, $forum_moderators);
|
return array($active_forum_ary, $forum_moderators);
|
||||||
@@ -1402,17 +1424,34 @@ function watch_topic_forum($mode, &$s_watching, $user_id, $forum_id, $topic_id,
|
|||||||
/**
|
/**
|
||||||
* Get user rank title and image
|
* Get user rank title and image
|
||||||
*
|
*
|
||||||
* @param int $user_rank the current stored users rank id
|
* @param array $user_data the current stored users data
|
||||||
* @param int $user_posts the users number of posts
|
* @param int $user_posts the users number of posts
|
||||||
* @param string &$rank_title the rank title will be stored here after execution
|
*
|
||||||
* @param string &$rank_img the rank image as full img tag is stored here after execution
|
* @return array An associative array containing the rank title (title), the rank image source (img) and the rank image as full img tag (img)
|
||||||
* @param string &$rank_img_src the rank image source is stored here after execution
|
|
||||||
*
|
*
|
||||||
* Note: since we do not want to break backwards-compatibility, this function will only properly assign ranks to guests if you call it for them with user_posts == false
|
* Note: since we do not want to break backwards-compatibility, this function will only properly assign ranks to guests if you call it for them with user_posts == false
|
||||||
*/
|
*/
|
||||||
function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank_img_src)
|
function phpbb_get_user_rank($user_data, $user_posts)
|
||||||
{
|
{
|
||||||
global $ranks, $config, $phpbb_root_path, $phpbb_path_helper;
|
global $ranks, $config, $phpbb_root_path, $phpbb_path_helper, $phpbb_dispatcher;
|
||||||
|
|
||||||
|
$user_rank_data = array(
|
||||||
|
'title' => null,
|
||||||
|
'img' => null,
|
||||||
|
'img_src' => null,
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Preparing a user's rank before displaying
|
||||||
|
*
|
||||||
|
* @event core.modify_user_rank
|
||||||
|
* @var array user_data Array with user's data
|
||||||
|
* @var int user_posts User_posts to change
|
||||||
|
* @since 3.1.0-RC4
|
||||||
|
*/
|
||||||
|
|
||||||
|
$vars = array('user_data', 'user_posts');
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.modify_user_rank', compact($vars)));
|
||||||
|
|
||||||
if (empty($ranks))
|
if (empty($ranks))
|
||||||
{
|
{
|
||||||
@@ -1420,11 +1459,14 @@ function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank
|
|||||||
$ranks = $cache->obtain_ranks();
|
$ranks = $cache->obtain_ranks();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($user_rank))
|
if (!empty($user_data['user_rank']))
|
||||||
{
|
{
|
||||||
$rank_title = (isset($ranks['special'][$user_rank]['rank_title'])) ? $ranks['special'][$user_rank]['rank_title'] : '';
|
|
||||||
$rank_img_src = (!empty($ranks['special'][$user_rank]['rank_image'])) ? $phpbb_path_helper->update_web_root_path($phpbb_root_path . $config['ranks_path'] . '/' . $ranks['special'][$user_rank]['rank_image']) : '';
|
$user_rank_data['title'] = (isset($ranks['special'][$user_data['user_rank']]['rank_title'])) ? $ranks['special'][$user_data['user_rank']]['rank_title'] : '';
|
||||||
$rank_img = (!empty($ranks['special'][$user_rank]['rank_image'])) ? '<img src="' . $rank_img_src . '" alt="' . $ranks['special'][$user_rank]['rank_title'] . '" title="' . $ranks['special'][$user_rank]['rank_title'] . '" />' : '';
|
|
||||||
|
$user_rank_data['img_src'] = (!empty($ranks['special'][$user_data['user_rank']]['rank_image'])) ? $phpbb_path_helper->update_web_root_path($phpbb_root_path . $config['ranks_path'] . '/' . $ranks['special'][$user_data['user_rank']]['rank_image']) : '';
|
||||||
|
|
||||||
|
$user_rank_data['img'] = (!empty($ranks['special'][$user_data['user_rank']]['rank_image'])) ? '<img src="' . $user_rank_data['img_src'] . '" alt="' . $ranks['special'][$user_data['user_rank']]['rank_title'] . '" title="' . $ranks['special'][$user_data['user_rank']]['rank_title'] . '" />' : '';
|
||||||
}
|
}
|
||||||
else if ($user_posts !== false)
|
else if ($user_posts !== false)
|
||||||
{
|
{
|
||||||
@@ -1434,14 +1476,16 @@ function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank
|
|||||||
{
|
{
|
||||||
if ($user_posts >= $rank['rank_min'])
|
if ($user_posts >= $rank['rank_min'])
|
||||||
{
|
{
|
||||||
$rank_title = $rank['rank_title'];
|
$user_rank_data['title'] = $rank['rank_title'];
|
||||||
$rank_img_src = (!empty($rank['rank_image'])) ? $phpbb_path_helper->update_web_root_path($phpbb_root_path . $config['ranks_path'] . '/' . $rank['rank_image']) : '';
|
$user_rank_data['img_src'] = (!empty($rank['rank_image'])) ? $phpbb_path_helper->update_web_root_path($phpbb_root_path . $config['ranks_path'] . '/' . $rank['rank_image']) : '';
|
||||||
$rank_img = (!empty($rank['rank_image'])) ? '<img src="' . $rank_img_src . '" alt="' . $rank['rank_title'] . '" title="' . $rank['rank_title'] . '" />' : '';
|
$user_rank_data['img'] = (!empty($rank['rank_image'])) ? '<img src="' . $user_rank_data['img_src'] . '" alt="' . $rank['rank_title'] . '" title="' . $rank['rank_title'] . '" />' : '';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $user_rank_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1454,8 +1498,7 @@ function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabl
|
|||||||
$username = $data['username'];
|
$username = $data['username'];
|
||||||
$user_id = $data['user_id'];
|
$user_id = $data['user_id'];
|
||||||
|
|
||||||
$rank_title = $rank_img = $rank_img_src = '';
|
$user_rank_data = phpbb_get_user_rank($data, (($user_id == ANONYMOUS) ? false : $data['user_posts']));
|
||||||
get_user_rank($data['user_rank'], (($user_id == ANONYMOUS) ? false : $data['user_posts']), $rank_title, $rank_img, $rank_img_src);
|
|
||||||
|
|
||||||
if ((!empty($data['user_allow_viewemail']) && $auth->acl_get('u_sendemail')) || $auth->acl_get('a_user'))
|
if ((!empty($data['user_allow_viewemail']) && $auth->acl_get('u_sendemail')) || $auth->acl_get('a_user'))
|
||||||
{
|
{
|
||||||
@@ -1536,7 +1579,7 @@ function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabl
|
|||||||
// Dump it out to the template
|
// Dump it out to the template
|
||||||
$template_data = array(
|
$template_data = array(
|
||||||
'AGE' => $age,
|
'AGE' => $age,
|
||||||
'RANK_TITLE' => $rank_title,
|
'RANK_TITLE' => $user_rank_data['title'],
|
||||||
'JOINED' => $user->format_date($data['user_regdate']),
|
'JOINED' => $user->format_date($data['user_regdate']),
|
||||||
'LAST_ACTIVE' => (empty($last_active)) ? ' - ' : $user->format_date($last_active),
|
'LAST_ACTIVE' => (empty($last_active)) ? ' - ' : $user->format_date($last_active),
|
||||||
'POSTS' => ($data['user_posts']) ? $data['user_posts'] : 0,
|
'POSTS' => ($data['user_posts']) ? $data['user_posts'] : 0,
|
||||||
@@ -1552,8 +1595,8 @@ function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabl
|
|||||||
'AVATAR_IMG' => phpbb_get_user_avatar($data),
|
'AVATAR_IMG' => phpbb_get_user_avatar($data),
|
||||||
'ONLINE_IMG' => (!$config['load_onlinetrack']) ? '' : (($online) ? $user->img('icon_user_online', 'ONLINE') : $user->img('icon_user_offline', 'OFFLINE')),
|
'ONLINE_IMG' => (!$config['load_onlinetrack']) ? '' : (($online) ? $user->img('icon_user_online', 'ONLINE') : $user->img('icon_user_offline', 'OFFLINE')),
|
||||||
'S_ONLINE' => ($config['load_onlinetrack'] && $online) ? true : false,
|
'S_ONLINE' => ($config['load_onlinetrack'] && $online) ? true : false,
|
||||||
'RANK_IMG' => $rank_img,
|
'RANK_IMG' => $user_rank_data['img'],
|
||||||
'RANK_IMG_SRC' => $rank_img_src,
|
'RANK_IMG_SRC' => $user_rank_data['img_src'],
|
||||||
'S_JABBER_ENABLED' => ($config['jab_enable']) ? true : false,
|
'S_JABBER_ENABLED' => ($config['jab_enable']) ? true : false,
|
||||||
|
|
||||||
'S_WARNINGS' => ($auth->acl_getf_global('m_') || $auth->acl_get('m_warn')) ? true : false,
|
'S_WARNINGS' => ($auth->acl_getf_global('m_') || $auth->acl_get('m_warn')) ? true : false,
|
||||||
|
@@ -45,12 +45,12 @@ function send_avatar_to_browser($file, $browser)
|
|||||||
|
|
||||||
if ((@file_exists($file_path) && @is_readable($file_path)) && !headers_sent())
|
if ((@file_exists($file_path) && @is_readable($file_path)) && !headers_sent())
|
||||||
{
|
{
|
||||||
header('Pragma: public');
|
header('Cache-Control: public');
|
||||||
|
|
||||||
$image_data = @getimagesize($file_path);
|
$image_data = @getimagesize($file_path);
|
||||||
header('Content-Type: ' . image_type_to_mime_type($image_data[2]));
|
header('Content-Type: ' . image_type_to_mime_type($image_data[2]));
|
||||||
|
|
||||||
if ((strpos(strtolower($user->browser), 'msie') !== false) && !phpbb_is_greater_ie_version($browser, 7))
|
if ((strpos(strtolower($browser), 'msie') !== false) && !phpbb_is_greater_ie_version($browser, 7))
|
||||||
{
|
{
|
||||||
header('Content-Disposition: attachment; ' . header_filename($file));
|
header('Content-Disposition: attachment; ' . header_filename($file));
|
||||||
|
|
||||||
@@ -175,7 +175,7 @@ function send_file_to_browser($attachment, $upload_dir, $category)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Now the tricky part... let's dance
|
// Now the tricky part... let's dance
|
||||||
header('Pragma: public');
|
header('Cache-Control: public');
|
||||||
|
|
||||||
// Send out the Headers. Do not set Content-Disposition to inline please, it is a security measure for users using the Internet Explorer.
|
// Send out the Headers. Do not set Content-Disposition to inline please, it is a security measure for users using the Internet Explorer.
|
||||||
header('Content-Type: ' . $attachment['mimetype']);
|
header('Content-Type: ' . $attachment['mimetype']);
|
||||||
@@ -420,7 +420,7 @@ function set_modified_headers($stamp, $browser)
|
|||||||
{
|
{
|
||||||
send_status_line(304, 'Not Modified');
|
send_status_line(304, 'Not Modified');
|
||||||
// seems that we need those too ... browsers
|
// seems that we need those too ... browsers
|
||||||
header('Pragma: public');
|
header('Cache-Control: public');
|
||||||
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 31536000) . ' GMT');
|
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 31536000) . ' GMT');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -2384,6 +2384,7 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
|
|||||||
* @var int topic_type Variable containing topic type value
|
* @var int topic_type Variable containing topic type value
|
||||||
* @var array poll Array with the poll data for the post
|
* @var array poll Array with the poll data for the post
|
||||||
* @var array data Array with the data for the post
|
* @var array data Array with the data for the post
|
||||||
|
* @var int post_visibility Variable containing up to date post visibility
|
||||||
* @var bool update_message Flag indicating if the post will be updated
|
* @var bool update_message Flag indicating if the post will be updated
|
||||||
* @var bool update_search_index Flag indicating if the search index will be updated
|
* @var bool update_search_index Flag indicating if the search index will be updated
|
||||||
* @var string url The "Return to topic" URL
|
* @var string url The "Return to topic" URL
|
||||||
@@ -2399,6 +2400,7 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
|
|||||||
'topic_type',
|
'topic_type',
|
||||||
'poll',
|
'poll',
|
||||||
'data',
|
'data',
|
||||||
|
'post_visibility',
|
||||||
'update_message',
|
'update_message',
|
||||||
'update_search_index',
|
'update_search_index',
|
||||||
'url',
|
'url',
|
||||||
|
@@ -914,6 +914,24 @@ function update_unread_status($unread, $msg_id, $user_id, $folder_id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function mark_folder_read($user_id, $folder_id)
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$sql = 'SELECT msg_id
|
||||||
|
FROM ' . PRIVMSGS_TO_TABLE . '
|
||||||
|
WHERE folder_id = ' . ((int) $folder_id) . '
|
||||||
|
AND user_id = ' . ((int) $user_id) . '
|
||||||
|
AND pm_unread = 1';
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
while ($row = $db->sql_fetchrow($result))
|
||||||
|
{
|
||||||
|
update_unread_status(true, $row['msg_id'], $user_id, $folder_id);
|
||||||
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle all actions possible with marked messages
|
* Handle all actions possible with marked messages
|
||||||
*/
|
*/
|
||||||
@@ -1573,7 +1591,7 @@ function get_folder_status($folder_id, $folder)
|
|||||||
'cur' => $folder['num_messages'],
|
'cur' => $folder['num_messages'],
|
||||||
'remaining' => ($user->data['message_limit']) ? $user->data['message_limit'] - $folder['num_messages'] : 0,
|
'remaining' => ($user->data['message_limit']) ? $user->data['message_limit'] - $folder['num_messages'] : 0,
|
||||||
'max' => $user->data['message_limit'],
|
'max' => $user->data['message_limit'],
|
||||||
'percent' => ($user->data['message_limit']) ? (($user->data['message_limit'] > 0) ? round(($folder['num_messages'] / $user->data['message_limit']) * 100) : 100) : 0,
|
'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']), $return['cur'], $return['percent']);
|
||||||
|
@@ -363,12 +363,16 @@ function user_add($user_row, $cp_data = false)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove User
|
* Remove User
|
||||||
* @param $mode Either 'retain' or 'remove'
|
*
|
||||||
*/
|
* @param string $mode Either 'retain' or 'remove'
|
||||||
|
* @param mixed $user_ids Either an array of integers or an integer
|
||||||
|
* @param bool $retain_username
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
function user_delete($mode, $user_ids, $retain_username = true)
|
function user_delete($mode, $user_ids, $retain_username = true)
|
||||||
{
|
{
|
||||||
global $cache, $config, $db, $user, $auth, $phpbb_dispatcher;
|
global $cache, $config, $db, $user, $phpbb_dispatcher;
|
||||||
global $phpbb_root_path, $phpEx;
|
global $phpbb_root_path, $phpEx;
|
||||||
|
|
||||||
$db->sql_transaction('begin');
|
$db->sql_transaction('begin');
|
||||||
@@ -555,11 +559,6 @@ function user_delete($mode, $user_ids, $retain_username = true)
|
|||||||
WHERE ' . $db->sql_in_set('poster_id', $user_ids);
|
WHERE ' . $db->sql_in_set('poster_id', $user_ids);
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
|
|
||||||
$sql = 'UPDATE ' . POSTS_TABLE . '
|
|
||||||
SET post_edit_user = ' . ANONYMOUS . '
|
|
||||||
WHERE ' . $db->sql_in_set('post_edit_user', $user_ids);
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
$sql = 'UPDATE ' . USERS_TABLE . '
|
$sql = 'UPDATE ' . USERS_TABLE . '
|
||||||
SET user_posts = user_posts + ' . $added_guest_posts . '
|
SET user_posts = user_posts + ' . $added_guest_posts . '
|
||||||
WHERE user_id = ' . ANONYMOUS;
|
WHERE user_id = ' . ANONYMOUS;
|
||||||
@@ -589,6 +588,30 @@ function user_delete($mode, $user_ids, $retain_username = true)
|
|||||||
|
|
||||||
$cache->destroy('sql', MODERATOR_CACHE_TABLE);
|
$cache->destroy('sql', MODERATOR_CACHE_TABLE);
|
||||||
|
|
||||||
|
// Change user_id to anonymous for posts edited by this user
|
||||||
|
$sql = 'UPDATE ' . POSTS_TABLE . '
|
||||||
|
SET post_edit_user = ' . ANONYMOUS . '
|
||||||
|
WHERE ' . $db->sql_in_set('post_edit_user', $user_ids);
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
|
// Change user_id to anonymous for pms edited by this user
|
||||||
|
$sql = 'UPDATE ' . PRIVMSGS_TABLE . '
|
||||||
|
SET message_edit_user = ' . ANONYMOUS . '
|
||||||
|
WHERE ' . $db->sql_in_set('message_edit_user', $user_ids);
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
|
// Change user_id to anonymous for posts deleted by this user
|
||||||
|
$sql = 'UPDATE ' . POSTS_TABLE . '
|
||||||
|
SET post_delete_user = ' . ANONYMOUS . '
|
||||||
|
WHERE ' . $db->sql_in_set('post_delete_user', $user_ids);
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
|
// Change user_id to anonymous for topics deleted by this user
|
||||||
|
$sql = 'UPDATE ' . TOPICS_TABLE . '
|
||||||
|
SET topic_delete_user = ' . ANONYMOUS . '
|
||||||
|
WHERE ' . $db->sql_in_set('topic_delete_user', $user_ids);
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
// Delete user log entries about this user
|
// Delete user log entries about this user
|
||||||
$sql = 'DELETE FROM ' . LOG_TABLE . '
|
$sql = 'DELETE FROM ' . LOG_TABLE . '
|
||||||
WHERE ' . $db->sql_in_set('reportee_id', $user_ids);
|
WHERE ' . $db->sql_in_set('reportee_id', $user_ids);
|
||||||
|
@@ -25,7 +25,7 @@ class mcp_ban
|
|||||||
|
|
||||||
function main($id, $mode)
|
function main($id, $mode)
|
||||||
{
|
{
|
||||||
global $config, $db, $user, $auth, $template, $cache;
|
global $db, $user, $auth, $template, $request, $phpbb_dispatcher;
|
||||||
global $phpbb_root_path, $phpEx;
|
global $phpbb_root_path, $phpEx;
|
||||||
|
|
||||||
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
|
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
|
||||||
@@ -33,55 +33,133 @@ class mcp_ban
|
|||||||
// Include the admin banning interface...
|
// Include the admin banning interface...
|
||||||
include($phpbb_root_path . 'includes/acp/acp_ban.' . $phpEx);
|
include($phpbb_root_path . 'includes/acp/acp_ban.' . $phpEx);
|
||||||
|
|
||||||
$bansubmit = (isset($_POST['bansubmit'])) ? true : false;
|
$bansubmit = $request->is_set_post('bansubmit');
|
||||||
$unbansubmit = (isset($_POST['unbansubmit'])) ? true : false;
|
$unbansubmit = $request->is_set_post('unbansubmit');
|
||||||
$current_time = time();
|
|
||||||
|
|
||||||
$user->add_lang(array('acp/ban', 'acp/users'));
|
$user->add_lang(array('acp/ban', 'acp/users'));
|
||||||
$this->tpl_name = 'mcp_ban';
|
$this->tpl_name = 'mcp_ban';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this event to pass perform actions when a ban is issued or revoked
|
||||||
|
*
|
||||||
|
* @event core.mcp_ban_main
|
||||||
|
* @var bool bansubmit True if a ban is issued
|
||||||
|
* @var bool unbansubmit True if a ban is removed
|
||||||
|
* @var string mode Mode of the ban that is being worked on
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array(
|
||||||
|
'bansubmit',
|
||||||
|
'unbansubmit',
|
||||||
|
'mode',
|
||||||
|
);
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.mcp_ban_main', compact($vars)));
|
||||||
|
|
||||||
// Ban submitted?
|
// Ban submitted?
|
||||||
if ($bansubmit)
|
if ($bansubmit)
|
||||||
{
|
{
|
||||||
// Grab the list of entries
|
// Grab the list of entries
|
||||||
$ban = request_var('ban', '', ($mode === 'user') ? true : false);
|
$ban = $request->variable('ban', '', $mode === 'user');
|
||||||
|
$ban_length = $request->variable('banlength', 0);
|
||||||
if ($mode === 'user')
|
$ban_length_other = $request->variable('banlengthother', '');
|
||||||
{
|
$ban_exclude = $request->variable('banexclude', 0);
|
||||||
$ban = utf8_normalize_nfc($ban);
|
$ban_reason = $request->variable('banreason', '', true);
|
||||||
}
|
$ban_give_reason = $request->variable('bangivereason', '', true);
|
||||||
|
|
||||||
$ban_len = request_var('banlength', 0);
|
|
||||||
$ban_len_other = request_var('banlengthother', '');
|
|
||||||
$ban_exclude = request_var('banexclude', 0);
|
|
||||||
$ban_reason = utf8_normalize_nfc(request_var('banreason', '', true));
|
|
||||||
$ban_give_reason = utf8_normalize_nfc(request_var('bangivereason', '', true));
|
|
||||||
|
|
||||||
if ($ban)
|
if ($ban)
|
||||||
{
|
{
|
||||||
if (confirm_box(true))
|
if (confirm_box(true))
|
||||||
{
|
{
|
||||||
user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reason, $ban_give_reason);
|
$abort_ban = false;
|
||||||
|
/**
|
||||||
|
* Use this event to modify the ban details before the ban is performed
|
||||||
|
*
|
||||||
|
* @event core.mcp_ban_before
|
||||||
|
* @var string mode One of the following: user, ip, email
|
||||||
|
* @var string ban Either string or array with usernames, ips or email addresses
|
||||||
|
* @var int ban_length Ban length in minutes
|
||||||
|
* @var string ban_length_other Ban length as a date (YYYY-MM-DD)
|
||||||
|
* @var bool ban_exclude Are we banning or excluding from another ban
|
||||||
|
* @var string ban_reason Ban reason displayed to moderators
|
||||||
|
* @var string ban_give_reason Ban reason displayed to the banned user
|
||||||
|
* @var mixed abort_ban Either false, or an error message that is displayed to the user.
|
||||||
|
* If a string is given the bans are not issued.
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array(
|
||||||
|
'mode',
|
||||||
|
'ban',
|
||||||
|
'ban_length',
|
||||||
|
'ban_length_other',
|
||||||
|
'ban_exclude',
|
||||||
|
'ban_reason',
|
||||||
|
'ban_give_reason',
|
||||||
|
'abort_ban',
|
||||||
|
);
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.mcp_ban_before', compact($vars)));
|
||||||
|
|
||||||
|
if ($abort_ban)
|
||||||
|
{
|
||||||
|
trigger_error($abort_ban);
|
||||||
|
}
|
||||||
|
user_ban($mode, $ban, $ban_length, $ban_length_other, $ban_exclude, $ban_reason, $ban_give_reason);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this event to perform actions after the ban has been performed
|
||||||
|
*
|
||||||
|
* @event core.mcp_ban_after
|
||||||
|
* @var string mode One of the following: user, ip, email
|
||||||
|
* @var string ban Either string or array with usernames, ips or email addresses
|
||||||
|
* @var int ban_length Ban length in minutes
|
||||||
|
* @var string ban_length_other Ban length as a date (YYYY-MM-DD)
|
||||||
|
* @var bool ban_exclude Are we banning or excluding from another ban
|
||||||
|
* @var string ban_reason Ban reason displayed to moderators
|
||||||
|
* @var string ban_give_reason Ban reason displayed to the banned user
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array(
|
||||||
|
'mode',
|
||||||
|
'ban',
|
||||||
|
'ban_length',
|
||||||
|
'ban_length_other',
|
||||||
|
'ban_exclude',
|
||||||
|
'ban_reason',
|
||||||
|
'ban_give_reason',
|
||||||
|
);
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.mcp_ban_after', compact($vars)));
|
||||||
|
|
||||||
trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . '<br /><br /><a href="' . $this->u_action . '">« ' . $user->lang['BACK_TO_PREV'] . '</a>');
|
trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . '<br /><br /><a href="' . $this->u_action . '">« ' . $user->lang['BACK_TO_PREV'] . '</a>');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
|
$hidden_fields = array(
|
||||||
'mode' => $mode,
|
'mode' => $mode,
|
||||||
'ban' => $ban,
|
'ban' => $ban,
|
||||||
'bansubmit' => true,
|
'bansubmit' => true,
|
||||||
'banlength' => $ban_len,
|
'banlength' => $ban_length,
|
||||||
'banlengthother' => $ban_len_other,
|
'banlengthother' => $ban_length_other,
|
||||||
'banexclude' => $ban_exclude,
|
'banexclude' => $ban_exclude,
|
||||||
'banreason' => $ban_reason,
|
'banreason' => $ban_reason,
|
||||||
'bangivereason' => $ban_give_reason)));
|
'bangivereason' => $ban_give_reason,
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this event to pass data from the ban form to the confirmation screen
|
||||||
|
*
|
||||||
|
* @event core.mcp_ban_confirm
|
||||||
|
* @var array hidden_fields Hidden fields that are passed through the confirm screen
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array('hidden_fields');
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.mcp_ban_confirm', compact($vars)));
|
||||||
|
|
||||||
|
confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields($hidden_fields));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($unbansubmit)
|
else if ($unbansubmit)
|
||||||
{
|
{
|
||||||
$ban = request_var('unban', array(''));
|
$ban = $request->variable('unban', array(''));
|
||||||
|
|
||||||
if ($ban)
|
if ($ban)
|
||||||
{
|
{
|
||||||
@@ -157,9 +235,9 @@ class mcp_ban
|
|||||||
}
|
}
|
||||||
|
|
||||||
// As a "service" we will check if any post id is specified and populate the username of the poster id if given
|
// As a "service" we will check if any post id is specified and populate the username of the poster id if given
|
||||||
$post_id = request_var('p', 0);
|
$post_id = $request->variable('p', 0);
|
||||||
$user_id = request_var('u', 0);
|
$user_id = $request->variable('u', 0);
|
||||||
$username = $pre_fill = false;
|
$pre_fill = false;
|
||||||
|
|
||||||
if ($user_id && $user_id <> ANONYMOUS)
|
if ($user_id && $user_id <> ANONYMOUS)
|
||||||
{
|
{
|
||||||
|
@@ -754,7 +754,8 @@ function mcp_delete_topic($topic_ids, $is_soft = false, $soft_delete_reason = ''
|
|||||||
{
|
{
|
||||||
global $auth, $user, $db, $phpEx, $phpbb_root_path, $request, $phpbb_container;
|
global $auth, $user, $db, $phpEx, $phpbb_root_path, $request, $phpbb_container;
|
||||||
|
|
||||||
if (!phpbb_check_ids($topic_ids, TOPICS_TABLE, 'topic_id', array('m_delete')))
|
$check_permission = ($is_soft) ? 'm_softdelete' : 'm_delete';
|
||||||
|
if (!phpbb_check_ids($topic_ids, TOPICS_TABLE, 'topic_id', array($check_permission)))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -882,7 +883,8 @@ function mcp_delete_post($post_ids, $is_soft = false, $soft_delete_reason = '',
|
|||||||
{
|
{
|
||||||
global $auth, $user, $db, $phpEx, $phpbb_root_path, $request, $phpbb_container;
|
global $auth, $user, $db, $phpEx, $phpbb_root_path, $request, $phpbb_container;
|
||||||
|
|
||||||
if (!phpbb_check_ids($post_ids, POSTS_TABLE, 'post_id', array('m_softdelete')))
|
$check_permission = ($is_soft) ? 'm_softdelete' : 'm_delete';
|
||||||
|
if (!phpbb_check_ids($post_ids, POSTS_TABLE, 'post_id', array($check_permission)))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -745,11 +745,11 @@ class mcp_queue
|
|||||||
|
|
||||||
if (!$post_data['topic_posts_approved'])
|
if (!$post_data['topic_posts_approved'])
|
||||||
{
|
{
|
||||||
$phpbb_notifications->add_notifications('notification.type.approve_post', $post_data);
|
$phpbb_notifications->add_notifications('notification.type.approve_topic', $post_data);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$phpbb_notifications->add_notifications('notification.type.approve_topic', $post_data);
|
$phpbb_notifications->add_notifications('notification.type.approve_post', $post_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -332,16 +332,16 @@ class mcp_warn
|
|||||||
|
|
||||||
// We want to make the message available here as a reminder
|
// We want to make the message available here as a reminder
|
||||||
// Parse the message and subject
|
// Parse the message and subject
|
||||||
$parse_flags = OPTION_FLAG_SMILIES | ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0);
|
$parse_flags = OPTION_FLAG_SMILIES | ($user_row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0);
|
||||||
$message = generate_text_for_display($user_row['post_text'], $user_row['bbcode_uid'], $user_row['bbcode_bitfield'], $parse_flags, true);
|
$message = generate_text_for_display($user_row['post_text'], $user_row['bbcode_uid'], $user_row['bbcode_bitfield'], $parse_flags, true);
|
||||||
|
|
||||||
// Generate the appropriate user information for the user we are looking at
|
// Generate the appropriate user information for the user we are looking at
|
||||||
if (!function_exists('get_user_rank'))
|
if (!function_exists('phpbb_get_user_rank'))
|
||||||
{
|
{
|
||||||
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
||||||
}
|
}
|
||||||
|
|
||||||
get_user_rank($user_row['user_rank'], $user_row['user_posts'], $rank_title, $rank_img, $rank_img_src);
|
$user_rank_data = phpbb_get_user_rank($user_row, $user_row['user_posts']);
|
||||||
$avatar_img = phpbb_get_user_avatar($user_row);
|
$avatar_img = phpbb_get_user_avatar($user_row);
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
@@ -350,13 +350,13 @@ class mcp_warn
|
|||||||
'POST' => $message,
|
'POST' => $message,
|
||||||
'USERNAME' => $user_row['username'],
|
'USERNAME' => $user_row['username'],
|
||||||
'USER_COLOR' => (!empty($user_row['user_colour'])) ? $user_row['user_colour'] : '',
|
'USER_COLOR' => (!empty($user_row['user_colour'])) ? $user_row['user_colour'] : '',
|
||||||
'RANK_TITLE' => $rank_title,
|
'RANK_TITLE' => $user_rank_data['title'],
|
||||||
'JOINED' => $user->format_date($user_row['user_regdate']),
|
'JOINED' => $user->format_date($user_row['user_regdate']),
|
||||||
'POSTS' => ($user_row['user_posts']) ? $user_row['user_posts'] : 0,
|
'POSTS' => ($user_row['user_posts']) ? $user_row['user_posts'] : 0,
|
||||||
'WARNINGS' => ($user_row['user_warnings']) ? $user_row['user_warnings'] : 0,
|
'WARNINGS' => ($user_row['user_warnings']) ? $user_row['user_warnings'] : 0,
|
||||||
|
|
||||||
'AVATAR_IMG' => $avatar_img,
|
'AVATAR_IMG' => $avatar_img,
|
||||||
'RANK_IMG' => $rank_img,
|
'RANK_IMG' => $user_rank_data['img'],
|
||||||
|
|
||||||
'L_WARNING_POST_DEFAULT' => sprintf($user->lang['WARNING_POST_DEFAULT'], generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&p=$post_id#p$post_id"),
|
'L_WARNING_POST_DEFAULT' => sprintf($user->lang['WARNING_POST_DEFAULT'], generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&p=$post_id#p$post_id"),
|
||||||
|
|
||||||
@@ -486,18 +486,18 @@ class mcp_warn
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Generate the appropriate user information for the user we are looking at
|
// Generate the appropriate user information for the user we are looking at
|
||||||
if (!function_exists('get_user_rank'))
|
if (!function_exists('phpbb_get_user_rank'))
|
||||||
{
|
{
|
||||||
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
||||||
}
|
}
|
||||||
get_user_rank($user_row['user_rank'], $user_row['user_posts'], $rank_title, $rank_img, $rank_img_src);
|
$user_rank_data = phpbb_get_user_rank($user_row, $user_row['user_posts']);
|
||||||
$avatar_img = phpbb_get_user_avatar($user_row);
|
$avatar_img = phpbb_get_user_avatar($user_row);
|
||||||
|
|
||||||
// OK, they didn't submit a warning so lets build the page for them to do so
|
// OK, they didn't submit a warning so lets build the page for them to do so
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'U_POST_ACTION' => $this->u_action,
|
'U_POST_ACTION' => $this->u_action,
|
||||||
|
|
||||||
'RANK_TITLE' => $rank_title,
|
'RANK_TITLE' => $user_rank_data['title'],
|
||||||
'JOINED' => $user->format_date($user_row['user_regdate']),
|
'JOINED' => $user->format_date($user_row['user_regdate']),
|
||||||
'POSTS' => ($user_row['user_posts']) ? $user_row['user_posts'] : 0,
|
'POSTS' => ($user_row['user_posts']) ? $user_row['user_posts'] : 0,
|
||||||
'WARNINGS' => ($user_row['user_warnings']) ? $user_row['user_warnings'] : 0,
|
'WARNINGS' => ($user_row['user_warnings']) ? $user_row['user_warnings'] : 0,
|
||||||
@@ -508,7 +508,7 @@ class mcp_warn
|
|||||||
'U_PROFILE' => get_username_string('profile', $user_row['user_id'], $user_row['username'], $user_row['user_colour']),
|
'U_PROFILE' => get_username_string('profile', $user_row['user_id'], $user_row['username'], $user_row['user_colour']),
|
||||||
|
|
||||||
'AVATAR_IMG' => $avatar_img,
|
'AVATAR_IMG' => $avatar_img,
|
||||||
'RANK_IMG' => $rank_img,
|
'RANK_IMG' => $user_rank_data['img'],
|
||||||
|
|
||||||
'S_CAN_NOTIFY' => $s_can_notify,
|
'S_CAN_NOTIFY' => $s_can_notify,
|
||||||
));
|
));
|
||||||
|
@@ -95,35 +95,25 @@ class ucp_notifications
|
|||||||
case 'notification_list':
|
case 'notification_list':
|
||||||
default:
|
default:
|
||||||
// Mark all items read
|
// Mark all items read
|
||||||
if ($request->variable('mark', '') == 'all' && (confirm_box(true) || check_link_hash($request->variable('token', ''), 'mark_all_notifications_read')))
|
if ($request->variable('mark', '') == 'all' && check_link_hash($request->variable('token', ''), 'mark_all_notifications_read'))
|
||||||
{
|
{
|
||||||
if (confirm_box(true))
|
$phpbb_notifications->mark_notifications_read(false, false, $user->data['user_id'], $form_time);
|
||||||
|
|
||||||
|
meta_refresh(3, $this->u_action);
|
||||||
|
$message = $user->lang['NOTIFICATIONS_MARK_ALL_READ_SUCCESS'];
|
||||||
|
|
||||||
|
if ($request->is_ajax())
|
||||||
{
|
{
|
||||||
$phpbb_notifications->mark_notifications_read(false, false, $user->data['user_id'], $form_time);
|
$json_response = new \phpbb\json_response();
|
||||||
|
$json_response->send(array(
|
||||||
meta_refresh(3, $this->u_action);
|
'MESSAGE_TITLE' => $user->lang['INFORMATION'],
|
||||||
$message = $user->lang['NOTIFICATIONS_MARK_ALL_READ_SUCCESS'];
|
'MESSAGE_TEXT' => $message,
|
||||||
|
'success' => true,
|
||||||
if ($request->is_ajax())
|
));
|
||||||
{
|
|
||||||
$json_response = new \phpbb\json_response();
|
|
||||||
$json_response->send(array(
|
|
||||||
'MESSAGE_TITLE' => $user->lang['INFORMATION'],
|
|
||||||
'MESSAGE_TEXT' => $message,
|
|
||||||
'success' => true,
|
|
||||||
));
|
|
||||||
}
|
|
||||||
$message .= '<br /><br />' . $user->lang('RETURN_UCP', '<a href="' . $this->u_action . '">', '</a>');
|
|
||||||
|
|
||||||
trigger_error($message);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
confirm_box(false, 'NOTIFICATIONS_MARK_ALL_READ', build_hidden_fields(array(
|
|
||||||
'mark' => 'all',
|
|
||||||
'form_time' => $form_time,
|
|
||||||
)));
|
|
||||||
}
|
}
|
||||||
|
$message .= '<br /><br />' . $user->lang('RETURN_UCP', '<a href="' . $this->u_action . '">', '</a>');
|
||||||
|
|
||||||
|
trigger_error($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mark specific notifications read
|
// Mark specific notifications read
|
||||||
|
@@ -45,7 +45,7 @@ class ucp_pm
|
|||||||
|
|
||||||
function main($id, $mode)
|
function main($id, $mode)
|
||||||
{
|
{
|
||||||
global $user, $template, $phpbb_root_path, $auth, $phpEx, $db, $config;
|
global $user, $template, $phpbb_root_path, $auth, $phpEx, $db, $config, $request;
|
||||||
|
|
||||||
if (!$user->data['is_registered'])
|
if (!$user->data['is_registered'])
|
||||||
{
|
{
|
||||||
@@ -246,6 +246,27 @@ class ucp_pm
|
|||||||
$folder_id = (int) $row['folder_id'];
|
$folder_id = (int) $row['folder_id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($request->variable('mark', '') == 'all' && check_link_hash($request->variable('token', ''), 'mark_all_pms_read'))
|
||||||
|
{
|
||||||
|
mark_folder_read($user->data['user_id'], $folder_id);
|
||||||
|
|
||||||
|
meta_refresh(3, $this->u_action);
|
||||||
|
$message = $user->lang['PM_MARK_ALL_READ_SUCCESS'];
|
||||||
|
|
||||||
|
if ($request->is_ajax())
|
||||||
|
{
|
||||||
|
$json_response = new \phpbb\json_response();
|
||||||
|
$json_response->send(array(
|
||||||
|
'MESSAGE_TITLE' => $user->lang['INFORMATION'],
|
||||||
|
'MESSAGE_TEXT' => $message,
|
||||||
|
'success' => true,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
$message .= '<br /><br />' . $user->lang('RETURN_UCP', '<a href="' . $this->u_action . '">', '</a>');
|
||||||
|
|
||||||
|
trigger_error($message);
|
||||||
|
}
|
||||||
|
|
||||||
$message_row = array();
|
$message_row = array();
|
||||||
if ($action == 'view_message' && $msg_id)
|
if ($action == 'view_message' && $msg_id)
|
||||||
{
|
{
|
||||||
@@ -332,6 +353,7 @@ class ucp_pm
|
|||||||
'U_SENTBOX' => $this->u_action . '&folder=sentbox',
|
'U_SENTBOX' => $this->u_action . '&folder=sentbox',
|
||||||
'U_CREATE_FOLDER' => $this->u_action . '&mode=options',
|
'U_CREATE_FOLDER' => $this->u_action . '&mode=options',
|
||||||
'U_CURRENT_FOLDER' => $this->u_action . '&folder=' . $folder_id,
|
'U_CURRENT_FOLDER' => $this->u_action . '&folder=' . $folder_id,
|
||||||
|
'U_MARK_ALL' => $this->u_action . '&folder=' . $folder_id . '&mark=all&token=' . generate_link_hash('mark_all_pms_read'),
|
||||||
|
|
||||||
'S_IN_INBOX' => ($folder_id == PRIVMSGS_INBOX) ? true : false,
|
'S_IN_INBOX' => ($folder_id == PRIVMSGS_INBOX) ? true : false,
|
||||||
'S_IN_OUTBOX' => ($folder_id == PRIVMSGS_OUTBOX) ? true : false,
|
'S_IN_OUTBOX' => ($folder_id == PRIVMSGS_OUTBOX) ? true : false,
|
||||||
|
@@ -27,8 +27,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
|
|||||||
{
|
{
|
||||||
global $template, $db, $auth, $user, $cache;
|
global $template, $db, $auth, $user, $cache;
|
||||||
global $phpbb_root_path, $phpEx, $config;
|
global $phpbb_root_path, $phpEx, $config;
|
||||||
global $request;
|
global $request, $phpbb_dispatcher, $phpbb_container;
|
||||||
global $phpbb_container;
|
|
||||||
|
|
||||||
// Damn php and globals - i know, this is horrible
|
// Damn php and globals - i know, this is horrible
|
||||||
// Needed for handle_message_list_actions()
|
// Needed for handle_message_list_actions()
|
||||||
@@ -233,6 +232,42 @@ function compose_pm($id, $mode, $action, $user_folders = array())
|
|||||||
|
|
||||||
if ($sql)
|
if ($sql)
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Alter sql query to get message for user to write the PM
|
||||||
|
*
|
||||||
|
* @event core.ucp_pm_compose_compose_pm_basic_info_query_before
|
||||||
|
* @var string sql String with the query to be executed
|
||||||
|
* @var array forum_list List of forums that contain the posts
|
||||||
|
* @var int visibility_const Integer with one of the possible ITEM_* constant values
|
||||||
|
* @var int msg_id topic_id in the page request
|
||||||
|
* @var int to_user_id The id of whom the message is to
|
||||||
|
* @var int to_group_id The id of the group whom the message is to
|
||||||
|
* @var bool submit Whether the user is sending the PM or not
|
||||||
|
* @var bool preview Whether the user is previewing the PM or not
|
||||||
|
* @var string action One of: post, reply, quote, forward, quotepost, edit, delete, smilies
|
||||||
|
* @var bool delete Whether the user is deleting the PM
|
||||||
|
* @var int reply_to_all Value of reply_to_all request variable.
|
||||||
|
* @var string limit_time_sql String with the SQL code to limit the time interval of the post (Note: May be empty string)
|
||||||
|
* @var string sort_order_sql String with the ORDER BY SQL code used in this query
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array(
|
||||||
|
'sql',
|
||||||
|
'forum_list',
|
||||||
|
'visibility_const',
|
||||||
|
'msg_id',
|
||||||
|
'to_user_id',
|
||||||
|
'to_group_id',
|
||||||
|
'submit',
|
||||||
|
'preview',
|
||||||
|
'action',
|
||||||
|
'delete',
|
||||||
|
'reply_to_all',
|
||||||
|
'limit_time_sql',
|
||||||
|
'sort_order_sql',
|
||||||
|
);
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.ucp_pm_compose_compose_pm_basic_info_query_before', compact($vars)));
|
||||||
|
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
$post = $db->sql_fetchrow($result);
|
$post = $db->sql_fetchrow($result);
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
@@ -267,6 +302,40 @@ function compose_pm($id, $mode, $action, $user_folders = array())
|
|||||||
trigger_error('NOT_AUTHORISED');
|
trigger_error('NOT_AUTHORISED');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the result of querying for the post to be quoted in the pm message
|
||||||
|
*
|
||||||
|
* @event core.ucp_pm_compose_quotepost_query_after
|
||||||
|
* @var string sql The original SQL used in the query
|
||||||
|
* @var array post Associative array with the data of the quoted post
|
||||||
|
* @var array msg_id The post_id that was searched to get the message for quoting
|
||||||
|
* @var int visibility_const Visibility of the quoted post (one of the possible ITEM_* constant values)
|
||||||
|
* @var int topic_id Topic ID of the quoted post
|
||||||
|
* @var int to_user_id Users the message is sent to
|
||||||
|
* @var int to_group_id Groups the message is sent to
|
||||||
|
* @var bool submit Whether the user is sending the PM or not
|
||||||
|
* @var bool preview Whether the user is previewing the PM or not
|
||||||
|
* @var string action One of: post, reply, quote, forward, quotepost, edit, delete, smilies
|
||||||
|
* @var bool delete If deleting message
|
||||||
|
* @var int reply_to_all Value of reply_to_all request variable.
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array(
|
||||||
|
'sql',
|
||||||
|
'post',
|
||||||
|
'msg_id',
|
||||||
|
'visibility_const',
|
||||||
|
'topic_id',
|
||||||
|
'to_user_id',
|
||||||
|
'to_group_id',
|
||||||
|
'submit',
|
||||||
|
'preview',
|
||||||
|
'action',
|
||||||
|
'delete',
|
||||||
|
'reply_to_all',
|
||||||
|
);
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.ucp_pm_compose_quotepost_query_after', compact($vars)));
|
||||||
|
|
||||||
// Passworded forum?
|
// Passworded forum?
|
||||||
if ($post['forum_id'])
|
if ($post['forum_id'])
|
||||||
{
|
{
|
||||||
|
@@ -383,7 +383,7 @@ function view_folder($id, $mode, $folder_id, $folder)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
header('Pragma: no-cache');
|
header('Cache-Control: private, no-cache');
|
||||||
header("Content-Type: $mimetype; name=\"data.$filetype\"");
|
header("Content-Type: $mimetype; name=\"data.$filetype\"");
|
||||||
header("Content-disposition: attachment; filename=data.$filetype");
|
header("Content-disposition: attachment; filename=data.$filetype");
|
||||||
echo $string;
|
echo $string;
|
||||||
|
@@ -403,12 +403,15 @@ function get_user_information($user_id, $user_row)
|
|||||||
|
|
||||||
$user_row['avatar'] = ($user->optionget('viewavatars')) ? phpbb_get_user_avatar($user_row) : '';
|
$user_row['avatar'] = ($user->optionget('viewavatars')) ? phpbb_get_user_avatar($user_row) : '';
|
||||||
|
|
||||||
if (!function_exists('get_user_rank'))
|
if (!function_exists('phpbb_get_user_rank'))
|
||||||
{
|
{
|
||||||
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
||||||
}
|
}
|
||||||
|
|
||||||
get_user_rank($user_row['user_rank'], $user_row['user_posts'], $user_row['rank_title'], $user_row['rank_image'], $user_row['rank_image_src']);
|
$user_rank_data = phpbb_get_user_rank($user_row, $user_row['user_posts']);
|
||||||
|
$user_row['rank_title'] = $user_rank_data['title'];
|
||||||
|
$user_row['rank_image'] = $user_rank_data['img'];
|
||||||
|
$user_row['rank_image_src'] = $user_rank_data['img_src'];
|
||||||
|
|
||||||
if ((!empty($user_row['user_allow_viewemail']) && $auth->acl_get('u_sendemail')) || $auth->acl_get('a_email'))
|
if ((!empty($user_row['user_allow_viewemail']) && $auth->acl_get('u_sendemail')) || $auth->acl_get('a_email'))
|
||||||
{
|
{
|
||||||
|
@@ -154,7 +154,7 @@ class ucp_prefs
|
|||||||
}
|
}
|
||||||
$dateformat_options .= '>' . $user->lang['CUSTOM_DATEFORMAT'] . '</option>';
|
$dateformat_options .= '>' . $user->lang['CUSTOM_DATEFORMAT'] . '</option>';
|
||||||
|
|
||||||
$timezone_selects = phpbb_timezone_select($user, $data['tz'], true);
|
phpbb_timezone_select($template, $user, $data['tz'], true);
|
||||||
|
|
||||||
// check if there are any user-selectable languages
|
// check if there are any user-selectable languages
|
||||||
$sql = 'SELECT COUNT(lang_id) as languages_count
|
$sql = 'SELECT COUNT(lang_id) as languages_count
|
||||||
@@ -208,8 +208,6 @@ class ucp_prefs
|
|||||||
|
|
||||||
'S_LANG_OPTIONS' => language_select($data['lang']),
|
'S_LANG_OPTIONS' => language_select($data['lang']),
|
||||||
'S_STYLE_OPTIONS' => ($config['override_user_style']) ? '' : style_select($data['user_style']),
|
'S_STYLE_OPTIONS' => ($config['override_user_style']) ? '' : style_select($data['user_style']),
|
||||||
'S_TZ_OPTIONS' => $timezone_selects['tz_select'],
|
|
||||||
'S_TZ_DATE_OPTIONS' => $timezone_selects['tz_dates'],
|
|
||||||
'S_CAN_HIDE_ONLINE' => ($auth->acl_get('u_hideonline')) ? true : false,
|
'S_CAN_HIDE_ONLINE' => ($auth->acl_get('u_hideonline')) ? true : false,
|
||||||
'S_SELECT_NOTIFY' => ($config['jab_enable'] && $user->data['user_jabber'] && @extension_loaded('xml')) ? true : false)
|
'S_SELECT_NOTIFY' => ($config['jab_enable'] && $user->data['user_jabber'] && @extension_loaded('xml')) ? true : false)
|
||||||
);
|
);
|
||||||
|
@@ -655,9 +655,14 @@ class ucp_profile
|
|||||||
{
|
{
|
||||||
if (!empty($keys))
|
if (!empty($keys))
|
||||||
{
|
{
|
||||||
|
foreach ($keys as $key => $id)
|
||||||
|
{
|
||||||
|
$keys[$key] = $db->sql_like_expression($id . $db->get_any_char());
|
||||||
|
}
|
||||||
|
$sql_where = '(key_id ' . implode(' OR key_id ', $keys) . ')';
|
||||||
$sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '
|
$sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '
|
||||||
WHERE user_id = ' . (int) $user->data['user_id'] . '
|
WHERE user_id = ' . (int) $user->data['user_id'] . '
|
||||||
AND ' . $db->sql_in_set('key_id', $keys) ;
|
AND ' . $sql_where ;
|
||||||
|
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
|
|
||||||
@@ -681,7 +686,7 @@ class ucp_profile
|
|||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$template->assign_block_vars('sessions', array(
|
$template->assign_block_vars('sessions', array(
|
||||||
'KEY' => $row['key_id'],
|
'KEY' => substr($row['key_id'], 0, 8),
|
||||||
'IP' => $row['last_ip'],
|
'IP' => $row['last_ip'],
|
||||||
'LOGIN_TIME' => $user->format_date($row['last_login']),
|
'LOGIN_TIME' => $user->format_date($row['last_login']),
|
||||||
));
|
));
|
||||||
|
@@ -452,7 +452,7 @@ class ucp_register
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$timezone_selects = phpbb_timezone_select($user, $data['tz'], true);
|
$timezone_selects = phpbb_timezone_select($template, $user, $data['tz'], true);
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
|
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
|
||||||
'USERNAME' => $data['username'],
|
'USERNAME' => $data['username'],
|
||||||
@@ -465,8 +465,6 @@ class ucp_register
|
|||||||
'L_PASSWORD_EXPLAIN' => $user->lang($config['pass_complex'] . '_EXPLAIN', $user->lang('CHARACTERS', (int) $config['min_pass_chars']), $user->lang('CHARACTERS', (int) $config['max_pass_chars'])),
|
'L_PASSWORD_EXPLAIN' => $user->lang($config['pass_complex'] . '_EXPLAIN', $user->lang('CHARACTERS', (int) $config['min_pass_chars']), $user->lang('CHARACTERS', (int) $config['max_pass_chars'])),
|
||||||
|
|
||||||
'S_LANG_OPTIONS' => language_select($data['lang']),
|
'S_LANG_OPTIONS' => language_select($data['lang']),
|
||||||
'S_TZ_OPTIONS' => $timezone_selects['tz_select'],
|
|
||||||
'S_TZ_DATE_OPTIONS' => $timezone_selects['tz_dates'],
|
|
||||||
'S_TZ_PRESELECT' => !$submit,
|
'S_TZ_PRESELECT' => !$submit,
|
||||||
'S_CONFIRM_REFRESH' => ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false,
|
'S_CONFIRM_REFRESH' => ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false,
|
||||||
'S_REGISTRATION' => true,
|
'S_REGISTRATION' => true,
|
||||||
|
@@ -38,7 +38,7 @@ $dbms = $phpbb_config_php_file->convert_30_dbms_to_31($dbms);
|
|||||||
$convertor_data = array(
|
$convertor_data = array(
|
||||||
'forum_name' => 'phpBB 2.0.x',
|
'forum_name' => 'phpBB 2.0.x',
|
||||||
'version' => '1.0.3',
|
'version' => '1.0.3',
|
||||||
'phpbb_version' => '3.1.0-RC4',
|
'phpbb_version' => '3.1.0-RC6',
|
||||||
'author' => '<a href="https://www.phpbb.com/">phpBB Limited</a>',
|
'author' => '<a href="https://www.phpbb.com/">phpBB Limited</a>',
|
||||||
'dbms' => $dbms,
|
'dbms' => $dbms,
|
||||||
'dbhost' => $dbhost,
|
'dbhost' => $dbhost,
|
||||||
|
@@ -446,7 +446,6 @@ class module
|
|||||||
header('Content-type: text/html; charset=UTF-8');
|
header('Content-type: text/html; charset=UTF-8');
|
||||||
header('Cache-Control: private, no-cache="set-cookie"');
|
header('Cache-Control: private, no-cache="set-cookie"');
|
||||||
header('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
|
header('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
|
||||||
header('Pragma: no-cache');
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -1175,8 +1175,31 @@ class install_install extends module
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ok we have the db info go ahead and work on building the table
|
// Ok we have the db info go ahead and work on building the table
|
||||||
$db_table_schema = @file_get_contents('schemas/schema.json');
|
if (file_exists('schemas/schema.json'))
|
||||||
$db_table_schema = json_decode($db_table_schema, true);
|
{
|
||||||
|
$db_table_schema = @file_get_contents('schemas/schema.json');
|
||||||
|
$db_table_schema = json_decode($db_table_schema, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
global $phpbb_root_path, $phpEx, $table_prefix;
|
||||||
|
$table_prefix = 'phpbb_';
|
||||||
|
|
||||||
|
if (!defined('CONFIG_TABLE'))
|
||||||
|
{
|
||||||
|
// We need to include the constants file for the table constants
|
||||||
|
// when we generate the schema from the migration files.
|
||||||
|
include($phpbb_root_path . 'includes/constants.' . $phpEx);
|
||||||
|
}
|
||||||
|
|
||||||
|
$finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx);
|
||||||
|
$classes = $finder->core_path('phpbb/db/migration/data/')
|
||||||
|
->get_classes();
|
||||||
|
|
||||||
|
$sqlite_db = new \phpbb\db\driver\sqlite();
|
||||||
|
$schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $sqlite_db, new \phpbb\db\tools($sqlite_db, true), $phpbb_root_path, $phpEx, $table_prefix);
|
||||||
|
$db_table_schema = $schema_generator->get_schema();
|
||||||
|
}
|
||||||
|
|
||||||
if (!defined('CONFIG_TABLE'))
|
if (!defined('CONFIG_TABLE'))
|
||||||
{
|
{
|
||||||
@@ -1654,6 +1677,19 @@ class install_install extends module
|
|||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$_module->move_module_by($row, 'move_up', 5);
|
$_module->move_module_by($row, 'move_up', 5);
|
||||||
|
|
||||||
|
// Move extension management module 1 up...
|
||||||
|
$sql = 'SELECT *
|
||||||
|
FROM ' . MODULES_TABLE . "
|
||||||
|
WHERE module_langname = 'ACP_EXTENSION_MANAGEMENT'
|
||||||
|
AND module_class = 'acp'
|
||||||
|
AND module_mode = ''
|
||||||
|
AND module_basename = ''";
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
$row = $db->sql_fetchrow($result);
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
$_module->move_module_by($row, 'move_up', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($module_class == 'mcp')
|
if ($module_class == 'mcp')
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -273,7 +273,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_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 ('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 ('use_system_cron', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.1.0-RC4');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.1.0-RC6');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90');
|
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');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400');
|
||||||
|
|
||||||
|
@@ -41,17 +41,21 @@ $lang = array_merge($lang, array(
|
|||||||
'ACP_BOARD_SETTINGS_EXPLAIN' => 'Here you can determine the basic operation of your board, give it a fitting name and description, and among other settings adjust the default values for timezone and language.',
|
'ACP_BOARD_SETTINGS_EXPLAIN' => 'Here you can determine the basic operation of your board, give it a fitting name and description, and among other settings adjust the default values for timezone and language.',
|
||||||
'BOARD_INDEX_TEXT' => 'Board index text',
|
'BOARD_INDEX_TEXT' => 'Board index text',
|
||||||
'BOARD_INDEX_TEXT_EXPLAIN' => 'This text is displayed as the board index in the board’s breadcrumbs. If not specified, it will default to “Board index”.',
|
'BOARD_INDEX_TEXT_EXPLAIN' => 'This text is displayed as the board index in the board’s breadcrumbs. If not specified, it will default to “Board index”.',
|
||||||
|
'BOARD_STYLE' => 'Board style',
|
||||||
'CUSTOM_DATEFORMAT' => 'Custom…',
|
'CUSTOM_DATEFORMAT' => 'Custom…',
|
||||||
'DEFAULT_DATE_FORMAT' => 'Date format',
|
'DEFAULT_DATE_FORMAT' => 'Date format',
|
||||||
'DEFAULT_DATE_FORMAT_EXPLAIN' => 'The date format is the same as the PHP <code>date</code> function.',
|
'DEFAULT_DATE_FORMAT_EXPLAIN' => 'The date format is the same as the PHP <code>date</code> function.',
|
||||||
'DEFAULT_LANGUAGE' => 'Default language',
|
'DEFAULT_LANGUAGE' => 'Default language',
|
||||||
'DEFAULT_STYLE' => 'Default style',
|
'DEFAULT_STYLE' => 'Default style',
|
||||||
|
'DEFAULT_STYLE_EXPLAIN' => 'The default style for new users.',
|
||||||
'DISABLE_BOARD' => 'Disable board',
|
'DISABLE_BOARD' => 'Disable board',
|
||||||
'DISABLE_BOARD_EXPLAIN' => 'This will make the board unavailable to users who are neither administrators nor moderators. You can also enter a short (255 character) message to display if you wish.',
|
'DISABLE_BOARD_EXPLAIN' => 'This will make the board unavailable to users who are neither administrators nor moderators. You can also enter a short (255 character) message to display if you wish.',
|
||||||
'DISPLAY_LAST_SUBJECT' => 'Display subject of last added post on forum list',
|
'DISPLAY_LAST_SUBJECT' => 'Display subject of last added post on forum list',
|
||||||
'DISPLAY_LAST_SUBJECT_EXPLAIN' => 'The subject of the last added post will be displayed in the forum list with a hyperlink to the post. Subjects from password protected forums and forums in which user doesn’t have read access are not shown.',
|
'DISPLAY_LAST_SUBJECT_EXPLAIN' => 'The subject of the last added post will be displayed in the forum list with a hyperlink to the post. Subjects from password protected forums and forums in which user doesn’t have read access are not shown.',
|
||||||
|
'GUEST_STYLE' => 'Guest style',
|
||||||
|
'GUEST_STYLE_EXPLAIN' => 'The board style for guests.',
|
||||||
'OVERRIDE_STYLE' => 'Override user style',
|
'OVERRIDE_STYLE' => 'Override user style',
|
||||||
'OVERRIDE_STYLE_EXPLAIN' => 'Replaces user’s style with the default.',
|
'OVERRIDE_STYLE_EXPLAIN' => 'Replaces user’s (and guest’s) style with the style as defined under "Default style".',
|
||||||
'SITE_DESC' => 'Site description',
|
'SITE_DESC' => 'Site description',
|
||||||
'SITE_HOME_TEXT' => 'Main website text',
|
'SITE_HOME_TEXT' => 'Main website text',
|
||||||
'SITE_HOME_TEXT_EXPLAIN' => 'This text will be displayed as a link to your website homepage in the board’s breadcrumbs. If not specified, it will default to “Home”.',
|
'SITE_HOME_TEXT_EXPLAIN' => 'This text will be displayed as a link to your website homepage in the board’s breadcrumbs. If not specified, it will default to “Home”.',
|
||||||
|
@@ -38,7 +38,7 @@ if (empty($lang) || !is_array($lang))
|
|||||||
|
|
||||||
// Email settings
|
// Email settings
|
||||||
$lang = array_merge($lang, array(
|
$lang = array_merge($lang, array(
|
||||||
'ACP_MASS_EMAIL_EXPLAIN' => 'Here you can email a message to either all of your users or all users of a specific group <strong>having the option to receive mass emails enabled</strong>. To achieve this an email will be sent out to the administrative email address supplied, with a blind carbon copy sent to all recipients. The default setting is to only include 50 recipients in such an email, for more recipients more emails will be sent. If you are emailing a large group of people please be patient after submitting and do not stop the page halfway through. It is normal for a mass emailing to take a long time, you will be notified when the script has completed.',
|
'ACP_MASS_EMAIL_EXPLAIN' => 'Here you can email a message to either all of your users or all users of a specific group <strong>having the option to receive mass emails enabled</strong>. To achieve this an email will be sent out to the administrative email address supplied, with a blind carbon copy sent to all recipients. The default setting is to only include 20 recipients in such an email, for more recipients more emails will be sent. If you are emailing a large group of people please be patient after submitting and do not stop the page halfway through. It is normal for a mass emailing to take a long time, you will be notified when the script has completed.',
|
||||||
'ALL_USERS' => 'All users',
|
'ALL_USERS' => 'All users',
|
||||||
|
|
||||||
'COMPOSE' => 'Compose',
|
'COMPOSE' => 'Compose',
|
||||||
|
@@ -99,7 +99,7 @@ $lang = array_merge($lang, array(
|
|||||||
'FIELD_IDENT_EXPLAIN' => 'The field identification is a name to identify the profile field within the database and the templates.',
|
'FIELD_IDENT_EXPLAIN' => 'The field identification is a name to identify the profile field within the database and the templates.',
|
||||||
'FIELD_INT' => 'Numbers',
|
'FIELD_INT' => 'Numbers',
|
||||||
'FIELD_IS_CONTACT' => 'Display field as a contact field',
|
'FIELD_IS_CONTACT' => 'Display field as a contact field',
|
||||||
'FIELD_IS_CONTACT_EXPLAIN' => 'Contact fields are displayed within the contact section of the user profile and are displayed differently in the mini profile next to posts and private messages.',
|
'FIELD_IS_CONTACT_EXPLAIN' => 'Contact fields are displayed within the contact section of the user profile and are displayed differently in the mini profile next to posts and private messages. You can use <samp>%s</samp> as a placeholder variable which will be replaced by a value provided by the user.',
|
||||||
'FIELD_LENGTH' => 'Length of input box',
|
'FIELD_LENGTH' => 'Length of input box',
|
||||||
'FIELD_NOT_FOUND' => 'Profile field not found.',
|
'FIELD_NOT_FOUND' => 'Profile field not found.',
|
||||||
'FIELD_STRING' => 'Single text field',
|
'FIELD_STRING' => 'Single text field',
|
||||||
@@ -119,6 +119,12 @@ $lang = array_merge($lang, array(
|
|||||||
|
|
||||||
'LANG_SPECIFIC_OPTIONS' => 'Language specific options [<strong>%s</strong>]',
|
'LANG_SPECIFIC_OPTIONS' => 'Language specific options [<strong>%s</strong>]',
|
||||||
|
|
||||||
|
'LETTER_NUM_DOTS' => 'Any letters, numbers and dots (periods)',
|
||||||
|
'LETTER_NUM_ONLY' => 'Any letters and numbers',
|
||||||
|
'LETTER_NUM_PUNCTUATION' => 'Any letters, numbers, comma, dots, underscores and dashes beginning with any letter',
|
||||||
|
'LETTER_NUM_SPACERS' => 'Any letters, numbers and spacers',
|
||||||
|
'LETTER_NUM_UNDERSCORE' => 'Any letters, numbers and underscores',
|
||||||
|
|
||||||
'MAX_FIELD_CHARS' => 'Maximum number of characters',
|
'MAX_FIELD_CHARS' => 'Maximum number of characters',
|
||||||
'MAX_FIELD_NUMBER' => 'Highest allowed number',
|
'MAX_FIELD_NUMBER' => 'Highest allowed number',
|
||||||
'MIN_FIELD_CHARS' => 'Minimum number of characters',
|
'MIN_FIELD_CHARS' => 'Minimum number of characters',
|
||||||
|
@@ -83,7 +83,7 @@ $lang = array_merge($lang, array(
|
|||||||
'FULLTEXT_SPHINX_PORT_EXPLAIN' => 'Port on which the sphinx search daemon (searchd) listens. Leave empty to use the default Sphinx API port 9312',
|
'FULLTEXT_SPHINX_PORT_EXPLAIN' => 'Port on which the sphinx search daemon (searchd) listens. Leave empty to use the default Sphinx API port 9312',
|
||||||
'FULLTEXT_SPHINX_WRONG_DATABASE' => 'The sphinx search for phpBB supports MySQL and PostgreSQL only.',
|
'FULLTEXT_SPHINX_WRONG_DATABASE' => 'The sphinx search for phpBB supports MySQL and PostgreSQL only.',
|
||||||
'FULLTEXT_SPHINX_CONFIG_FILE' => 'Sphinx config file',
|
'FULLTEXT_SPHINX_CONFIG_FILE' => 'Sphinx config file',
|
||||||
'FULLTEXT_SPHINX_CONFIG_FILE_EXPLAIN' => 'The generated content of the sphinx config file. This data needs to be pasted into the sphinx.conf which is used by sphinx search daemon.',
|
'FULLTEXT_SPHINX_CONFIG_FILE_EXPLAIN' => 'The generated content of the sphinx config file. This data needs to be pasted into the sphinx.conf which is used by sphinx search daemon. Replace the [dbuser] and [dbpassword] placeholders with your database credentials.',
|
||||||
'FULLTEXT_SPHINX_NO_CONFIG_DATA' => 'The sphinx data and config directory paths are not defined. Please define them to generate the config file.',
|
'FULLTEXT_SPHINX_NO_CONFIG_DATA' => 'The sphinx data and config directory paths are not defined. Please define them to generate the config file.',
|
||||||
|
|
||||||
'GENERAL_SEARCH_SETTINGS' => 'General search settings',
|
'GENERAL_SEARCH_SETTINGS' => 'General search settings',
|
||||||
|
@@ -937,32 +937,34 @@ $lang = array_merge($lang, array(
|
|||||||
// Timezones can be translated. We use this for the Etc/GMT timezones here,
|
// Timezones can be translated. We use this for the Etc/GMT timezones here,
|
||||||
// because they are named invers to their offset.
|
// because they are named invers to their offset.
|
||||||
'timezones' => array(
|
'timezones' => array(
|
||||||
'UTC' => 'UTC',
|
'UTC' => 'UTC',
|
||||||
|
'UTC_OFFSET' => 'UTC%1$s',
|
||||||
|
'UTC_OFFSET_CURRENT' => 'UTC%1$s - %2$s',
|
||||||
|
|
||||||
'Etc/GMT-12' => 'GMT+12',
|
'Etc/GMT-12' => 'UTC+12',
|
||||||
'Etc/GMT-11' => 'GMT+11',
|
'Etc/GMT-11' => 'UTC+11',
|
||||||
'Etc/GMT-10' => 'GMT+10',
|
'Etc/GMT-10' => 'UTC+10',
|
||||||
'Etc/GMT-9' => 'GMT+9',
|
'Etc/GMT-9' => 'UTC+9',
|
||||||
'Etc/GMT-8' => 'GMT+8',
|
'Etc/GMT-8' => 'UTC+8',
|
||||||
'Etc/GMT-7' => 'GMT+7',
|
'Etc/GMT-7' => 'UTC+7',
|
||||||
'Etc/GMT-6' => 'GMT+6',
|
'Etc/GMT-6' => 'UTC+6',
|
||||||
'Etc/GMT-5' => 'GMT+5',
|
'Etc/GMT-5' => 'UTC+5',
|
||||||
'Etc/GMT-4' => 'GMT+4',
|
'Etc/GMT-4' => 'UTC+4',
|
||||||
'Etc/GMT-3' => 'GMT+3',
|
'Etc/GMT-3' => 'UTC+3',
|
||||||
'Etc/GMT-2' => 'GMT+2',
|
'Etc/GMT-2' => 'UTC+2',
|
||||||
'Etc/GMT-1' => 'GMT+1',
|
'Etc/GMT-1' => 'UTC+1',
|
||||||
'Etc/GMT+1' => 'GMT-1',
|
'Etc/GMT+1' => 'UTC-1',
|
||||||
'Etc/GMT+2' => 'GMT-2',
|
'Etc/GMT+2' => 'UTC-2',
|
||||||
'Etc/GMT+3' => 'GMT-3',
|
'Etc/GMT+3' => 'UTC-3',
|
||||||
'Etc/GMT+4' => 'GMT-4',
|
'Etc/GMT+4' => 'UTC-4',
|
||||||
'Etc/GMT+5' => 'GMT-5',
|
'Etc/GMT+5' => 'UTC-5',
|
||||||
'Etc/GMT+6' => 'GMT-6',
|
'Etc/GMT+6' => 'UTC-6',
|
||||||
'Etc/GMT+7' => 'GMT-7',
|
'Etc/GMT+7' => 'UTC-7',
|
||||||
'Etc/GMT+8' => 'GMT-8',
|
'Etc/GMT+8' => 'UTC-8',
|
||||||
'Etc/GMT+9' => 'GMT-9',
|
'Etc/GMT+9' => 'UTC-9',
|
||||||
'Etc/GMT+10' => 'GMT-10',
|
'Etc/GMT+10' => 'UTC-10',
|
||||||
'Etc/GMT+11' => 'GMT-11',
|
'Etc/GMT+11' => 'UTC-11',
|
||||||
'Etc/GMT+12' => 'GMT-12',
|
'Etc/GMT+12' => 'UTC-12',
|
||||||
|
|
||||||
'Africa/Abidjan' => 'Africa/Abidjan',
|
'Africa/Abidjan' => 'Africa/Abidjan',
|
||||||
'Africa/Accra' => 'Africa/Accra',
|
'Africa/Accra' => 'Africa/Accra',
|
||||||
|
@@ -36,44 +36,40 @@ $help = array(
|
|||||||
1 => 'Login and Registration Issues'
|
1 => 'Login and Registration Issues'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'Why can’t I login?',
|
0 => 'Why do I need to register?',
|
||||||
1 => 'There are several reasons why this could occur. First, ensure your username and password are correct. If they are, contact the board owner to make sure you haven’t been banned. It is also possible the website owner has a configuration error on their end, and they would need to fix it.'
|
|
||||||
),
|
|
||||||
array(
|
|
||||||
0 => 'Why do I need to register at all?',
|
|
||||||
1 => 'You may not have to, it is up to the administrator of the board as to whether you need to register in order to post messages. However; registration will give you access to additional features not available to guest users such as definable avatar images, private messaging, emailing of fellow users, usergroup subscription, etc. It only takes a few moments to register so it is recommended you do so.'
|
1 => 'You may not have to, it is up to the administrator of the board as to whether you need to register in order to post messages. However; registration will give you access to additional features not available to guest users such as definable avatar images, private messaging, emailing of fellow users, usergroup subscription, etc. It only takes a few moments to register so it is recommended you do so.'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'Why do I get logged off automatically?',
|
0 => 'What is COPPA?',
|
||||||
1 => 'If you do not check the <em>Remember me</em> box when you login, the board will only keep you logged in for a preset time. This prevents misuse of your account by anyone else. To stay logged in, check the box during login. This is not recommended if you access the board from a shared computer, e.g. library, internet cafe, university computer lab, etc. If you do not see this checkbox, it means the board administrator has disabled this feature.'
|
1 => 'COPPA, or the Children’s Online Privacy Protection Act of 1998, is a law in the United States requiring websites which can potentially collect information from minors under the age of 13 to have written parental consent or some other method of legal guardian acknowledgment, allowing the collection of personally identifiable information from a minor under the age of 13. If you are unsure if this applies to you as someone trying to register or to the website you are trying to register on, contact legal counsel for assistance. Please note that phpBB Limited and the owner’s of this board cannot provide legal advice and is not a point of contact for legal concerns of any kind, except as outlined in question “Who do I contact about abusive and/or legal matters related to this board?”.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'How do I prevent my username appearing in the online user listings?',
|
0 => 'Why can’t I register?',
|
||||||
1 => 'Within your User Control Panel, under “Board preferences”, you will find the option <em>Hide your online status</em>. Enable this option with <samp>Yes</samp> and you will only appear to the administrators, moderators and yourself. You will be counted as a hidden user.'
|
1 => 'It is possible a board administrator has disabled registration to prevent new visitors from signing up. A board administrator could have also banned your IP address or disallowed the username you are attempting to register. Contact a board administrator for assistance.',
|
||||||
),
|
|
||||||
array(
|
|
||||||
0 => 'I’ve lost my password!',
|
|
||||||
1 => 'Don’t panic! While your password cannot be retrieved, it can easily be reset. Visit the login page and click <em>I’ve forgotten my password</em>. Follow the instructions and you should be able to log in again shortly.'
|
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'I registered but cannot login!',
|
0 => 'I registered but cannot login!',
|
||||||
1 => 'First, check your username and password. If they are correct, then one of two things may have happened. If COPPA support is enabled and you specified being under 13 years old during registration, you will have to follow the instructions you received. Some boards will also require new registrations to be activated, either by yourself or by an administrator before you can logon; this information was present during registration. If you were sent an email, follow the instructions. If you did not receive an email, you may have provided an incorrect email address or the email may have been picked up by a spam filer. If you are sure the email address you provided is correct, try contacting an administrator.'
|
1 => 'First, check your username and password. If they are correct, then one of two things may have happened. If COPPA support is enabled and you specified being under 13 years old during registration, you will have to follow the instructions you received. Some boards will also require new registrations to be activated, either by yourself or by an administrator before you can logon; this information was present during registration. If you were sent an email, follow the instructions. If you did not receive an email, you may have provided an incorrect email address or the email may have been picked up by a spam filer. If you are sure the email address you provided is correct, try contacting an administrator.'
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
0 => 'Why can’t I login?',
|
||||||
|
1 => 'There are several reasons why this could occur. First, ensure your username and password are correct. If they are, contact a board administrator to make sure you haven’t been banned. It is also possible the website owner has a configuration error on their end, and they would need to fix it.',
|
||||||
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'I registered in the past but cannot login any more?!',
|
0 => 'I registered in the past but cannot login any more?!',
|
||||||
1 => 'It is possible an administrator has deactivated or deleted your account for some reason. Also, many boards periodically remove users who have not posted for a long time to reduce the size of the database. If this has happened, try registering again and being more involved in discussions.'
|
1 => 'It is possible an administrator has deactivated or deleted your account for some reason. Also, many boards periodically remove users who have not posted for a long time to reduce the size of the database. If this has happened, try registering again and being more involved in discussions.'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'What is COPPA?',
|
0 => 'I’ve lost my password!',
|
||||||
1 => 'COPPA, or the Child Online Privacy and Protection Act of 1998, is a law in the United States requiring websites which can potentially collect information from minors under the age of 13 to have written parental consent or some other method of legal guardian acknowledgment, allowing the collection of personally identifiable information from a minor under the age of 13. If you are unsure if this applies to you as someone trying to register or to the website you are trying to register on, contact legal counsel for assistance. Please note that the phpBB Limited cannot provide legal advice and is not a point of contact for legal concerns of any kind, except as outlined below.',
|
1 => 'Don’t panic! While your password cannot be retrieved, it can easily be reset. Visit the login page and click <em>I forgot my password</em>. Follow the instructions and you should be able to log in again shortly.<br />However, if you are not able to reset your password, contact a board administrator.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'Why can’t I register?',
|
0 => 'Why do I get logged off automatically?',
|
||||||
1 => 'It is possible the website owner has banned your IP address or disallowed the username you are attempting to register. The website owner could have also disabled registration to prevent new visitors from signing up. Contact a board administrator for assistance.',
|
1 => 'If you do not check the <em>Remember me</em> box when you login, the board will only keep you logged in for a preset time. This prevents misuse of your account by anyone else. To stay logged in, check the <em>Remember me</em> box during login. This is not recommended if you access the board from a shared computer, e.g. library, internet cafe, university computer lab, etc. If you do not see this checkbox, it means a board administrator has disabled this feature.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'What does the “Delete all board cookies” do?',
|
0 => 'What does the “Delete all board cookies” do?',
|
||||||
1 => '“Delete all board cookies” deletes the cookies created by phpBB which keep you authenticated and logged into the board. It also provides functions such as read tracking if they have been enabled by the board owner. If you are having login or logout problems, deleting board cookies may help.',
|
1 => '“Delete all board cookies” deletes the cookies created by phpBB which keep you authenticated and logged into the board. Cookies also provide functions such as read tracking if they have been enabled by a board administrator. If you are having login or logout problems, deleting board cookies may help.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => '--',
|
0 => '--',
|
||||||
@@ -81,7 +77,11 @@ $help = array(
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'How do I change my settings?',
|
0 => 'How do I change my settings?',
|
||||||
1 => 'If you are a registered user, all your settings are stored in the board database. To alter them, visit your User Control Panel; a link can usually be found at the top of board pages. This system will allow you to change all your settings and preferences.'
|
1 => 'If you are a registered user, all your settings are stored in the board database. To alter them, visit your User Control Panel; a link can usually be found by clicking on your username at the top of board pages. This system will allow you to change all your settings and preferences.',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
0 => 'How do I prevent my username appearing in the online user listings?',
|
||||||
|
1 => 'Within your User Control Panel, under “Board preferences”, you will find the option <em>Hide your online status</em>. Enable this option and you will only appear to the administrators, moderators and yourself. You will be counted as a hidden user.'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'The times are not correct!',
|
0 => 'The times are not correct!',
|
||||||
@@ -93,11 +93,15 @@ $help = array(
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'My language is not in the list!',
|
0 => 'My language is not in the list!',
|
||||||
1 => 'Either the administrator has not installed your language or nobody has translated this board into your language. Try asking the board administrator if they can install the language pack you need. If the language pack does not exist, feel free to create a new translation. More information can be found at the phpBB website (see link at the bottom of board pages).'
|
1 => 'Either the administrator has not installed your language or nobody has translated this board into your language. Try asking a board administrator if they can install the language pack you need. If the language pack does not exist, feel free to create a new translation. More information can be found at the <a href="https://www.phpbb.com/">phpBB</a>® website.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'How do I show an image along with my username?',
|
0 => 'What are the images next to my username?',
|
||||||
1 => 'There are two images which may appear along with a username when viewing posts. One of them may be an image associated with your rank, generally in the form of stars, blocks or dots, indicating how many posts you have made or your status on the board. Another, usually a larger image, is known as an avatar and is generally unique or personal to each user. It is up to the board administrator to enable avatars and to choose the way in which avatars can be made available. If you are unable to use avatars, contact a board administrator and ask them for their reasons.'
|
1 => 'There are two images which may appear along with a username when viewing posts. One of them may be an image associated with your rank, generally in the form of stars, blocks or dots, indicating how many posts you have made or your status on the board. Another, usually larger, image is known as an avatar and is generally unique or personal to each user.',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
0 => 'How do I display an avatar?',
|
||||||
|
1 => 'Within your User Control Panel, under “Profile” you can add an avatar by using one of the four following methods: Gravatar, Gallery, Remote or Upload. It is up to the board administrator to enable avatars and to choose the way in which avatars can be made available. If you are unable to use avatars, contact a board administrator.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'What is my rank and how do I change it?',
|
0 => 'What is my rank and how do I change it?',
|
||||||
@@ -112,8 +116,8 @@ $help = array(
|
|||||||
1 => 'Posting Issues'
|
1 => 'Posting Issues'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'How do I post a topic in a forum?',
|
0 => 'How do I create a new topic or post a reply?',
|
||||||
1 => 'To post a new topic in a forum, click the relevant button on either the forum or topic screens. You may need to register before you can post a message. A list of your permissions in each forum is available at the bottom of the forum and topic screens. Example: You can post new topics, You can vote in polls, etc.'
|
1 => 'To post a new topic in a forum, click "New Topic". To post a reply to a topic, click "Post Reply". You may need to register before you can post a message. A list of your permissions in each forum is available at the bottom of the forum and topic screens. Example: You can post new topics, You can post attachments, etc.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'How do I edit or delete a post?',
|
0 => 'How do I edit or delete a post?',
|
||||||
@@ -282,7 +286,7 @@ $help = array(
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'Why does my search return no results?',
|
0 => 'Why does my search return no results?',
|
||||||
1 => 'Your search was probably too vague and included many common terms which are not indexed by phpBB3. Be more specific and use the options available within Advanced search.'
|
1 => 'Your search was probably too vague and included many common terms which are not indexed by phpBB. Be more specific and use the options available within Advanced search.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'Why does my search return a blank page!?',
|
0 => 'Why does my search return a blank page!?',
|
||||||
@@ -294,19 +298,23 @@ $help = array(
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'How can I find my own posts and topics?',
|
0 => 'How can I find my own posts and topics?',
|
||||||
1 => 'Your own posts can be retrieved either by clicking the “Search user’s posts” within the User Control Panel or via your own profile page. To search for your topics, use the Advanced search page and fill in the various options appropriately.'
|
1 => 'Your own posts can be retrieved either by clicking the “Show your posts” link within the User Control Panel or by clicking the “Search user’s posts” link via your own profile page or by clicking the “Quick links” menu at the top of the board. To search for your topics, use the Advanced search page and fill in the various options appropriately.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => '--',
|
0 => '--',
|
||||||
1 => 'Topic Subscriptions and Bookmarks'
|
1 => 'Subscriptions and Bookmarks',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'What is the difference between bookmarking and subscribing?',
|
0 => 'What is the difference between bookmarking and subscribing?',
|
||||||
1 => 'Bookmarking in phpBB3 is much like bookmarking in your web browser. You aren’t alerted when there’s an update, but you can come back to the topic later. Subscribing, however, will notify you when there is an update to the topic or forum on the board via your preferred method or methods.'
|
1 => 'In phpBB 3.0, bookmarking topics worked much like bookmarking in a web browser. You were not alerted when there was an update. As of phpBB 3.1, bookmarking is more like subscribing to a topic. You can be notified when a bookmarked topic is updated. Subscribing, however, will notify you when there is an update to a topic or forum on the board. Notification options for bookmarks and subscriptions can be configured in the User Control Panel, under “Board preferences”.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'How do I subscribe to specific forums or topics?',
|
0 => 'How do I bookmark or subscribe to specific topics?',
|
||||||
1 => 'To subscribe to a specific forum, click the “Subscribe forum” link upon entering the forum. To subscribe to a topic, reply to the topic with the subscribe checkbox checked or click the “Subscribe topic” link within the topic itself.'
|
1 => 'You can bookmark or subscribe to a specific topic by clicking the appropriate link in the “Topic tools” menu, conveniently located near the top and bottom of a topic discussion.<br />Replying to a topic with the “Notify me when a reply is posted” option checked will also subscribe you to the topic.',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
0 => 'How do I subscribe to specific forums?',
|
||||||
|
1 => 'To subscribe to a specific forum, click the “Subscribe forum” link, at the bottom of page, upon entering the forum.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'How do I remove my subscriptions?',
|
0 => 'How do I remove my subscriptions?',
|
||||||
@@ -326,11 +334,11 @@ $help = array(
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => '--',
|
0 => '--',
|
||||||
1 => 'phpBB 3 Issues'
|
1 => 'phpBB Issues',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'Who wrote this bulletin board?',
|
0 => 'Who wrote this bulletin board?',
|
||||||
1 => 'This software (in its unmodified form) is produced, released and is copyright <a href="https://www.phpbb.com/">phpBB Limited</a>. It is made available under the GNU General Public License and may be freely distributed. See the link for more details.'
|
1 => 'This software (in its unmodified form) is produced, released and is copyright <a href="https://www.phpbb.com/">phpBB Limited</a>. It is made available under the GNU General Public License, version 2 (GPL-2.0) and may be freely distributed. See <a href="https://www.phpbb.com/about/">About phpBB</a> for more details.',
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
0 => 'Why isn’t X feature available?',
|
0 => 'Why isn’t X feature available?',
|
||||||
@@ -340,4 +348,8 @@ $help = array(
|
|||||||
0 => 'Who do I contact about abusive and/or legal matters related to this board?',
|
0 => 'Who do I contact about abusive and/or legal matters related to this board?',
|
||||||
1 => 'Any of the administrators listed on the “The team” page should be an appropriate point of contact for your complaints. If this still gets no response then you should contact the owner of the domain (do a <a href="http://www.google.com/search?q=whois">whois lookup</a>) or, if this is running on a free service (e.g. Yahoo!, free.fr, f2s.com, etc.), the management or abuse department of that service. Please note that the phpBB Limited has <strong>absolutely no jurisdiction</strong> and cannot in any way be held liable over how, where or by whom this board is used. Do not contact the phpBB Limited in relation to any legal (cease and desist, liable, defamatory comment, etc.) matter <strong>not directly related</strong> to the phpBB.com website or the discrete software of phpBB itself. If you do email phpBB Limited <strong>about any third party</strong> use of this software then you should expect a terse response or no response at all.'
|
1 => 'Any of the administrators listed on the “The team” page should be an appropriate point of contact for your complaints. If this still gets no response then you should contact the owner of the domain (do a <a href="http://www.google.com/search?q=whois">whois lookup</a>) or, if this is running on a free service (e.g. Yahoo!, free.fr, f2s.com, etc.), the management or abuse department of that service. Please note that the phpBB Limited has <strong>absolutely no jurisdiction</strong> and cannot in any way be held liable over how, where or by whom this board is used. Do not contact the phpBB Limited in relation to any legal (cease and desist, liable, defamatory comment, etc.) matter <strong>not directly related</strong> to the phpBB.com website or the discrete software of phpBB itself. If you do email phpBB Limited <strong>about any third party</strong> use of this software then you should expect a terse response or no response at all.'
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
0 => 'How do I contact a board administrator?',
|
||||||
|
1 => 'All users of the board can use the “Contact us” form, if the option was enabled by the board administrator.<br />Members of the board can also use the “The team” link.',
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
@@ -54,6 +54,8 @@ $lang = array_merge($lang, array(
|
|||||||
'DEST_LANG' => 'Language',
|
'DEST_LANG' => 'Language',
|
||||||
'DEST_LANG_EXPLAIN' => 'Select an appropriate language (if available) for the recipient of this message.',
|
'DEST_LANG_EXPLAIN' => 'Select an appropriate language (if available) for the recipient of this message.',
|
||||||
|
|
||||||
|
'EDIT_PROFILE' => 'Edit profile',
|
||||||
|
|
||||||
'EMAIL_BODY_EXPLAIN' => 'This message will be sent as plain text, do not include any HTML or BBCode. The return address for this message will be set to your email address.',
|
'EMAIL_BODY_EXPLAIN' => 'This message will be sent as plain text, do not include any HTML or BBCode. The return address for this message will be set to your email address.',
|
||||||
'EMAIL_DISABLED' => 'Sorry but all email related functions have been disabled.',
|
'EMAIL_DISABLED' => 'Sorry but all email related functions have been disabled.',
|
||||||
'EMAIL_SENT' => 'The email has been sent.',
|
'EMAIL_SENT' => 'The email has been sent.',
|
||||||
|
@@ -214,6 +214,11 @@ $lang = array_merge($lang, array(
|
|||||||
'FIELD_INVALID_CHARS_ALPHA_PUNCTUATION' => 'The field “%s” has invalid characters, only alphanumeric or _,-. characters are allowed and the first character must be alphabetic.',
|
'FIELD_INVALID_CHARS_ALPHA_PUNCTUATION' => 'The field “%s” has invalid characters, only alphanumeric or _,-. characters are allowed and the first character must be alphabetic.',
|
||||||
'FIELD_INVALID_CHARS_ALPHA_SPACERS' => 'The field “%s” has invalid characters, only alphanumeric, space or -+_[] characters are allowed.',
|
'FIELD_INVALID_CHARS_ALPHA_SPACERS' => 'The field “%s” has invalid characters, only alphanumeric, space or -+_[] characters are allowed.',
|
||||||
'FIELD_INVALID_CHARS_ALPHA_UNDERSCORE' => 'The field “%s” has invalid characters, only alphanumeric or _ characters are allowed.',
|
'FIELD_INVALID_CHARS_ALPHA_UNDERSCORE' => 'The field “%s” has invalid characters, only alphanumeric or _ characters are allowed.',
|
||||||
|
'FIELD_INVALID_CHARS_LETTER_NUM_DOTS' => 'The field “%s” has invalid characters, only letter, number or . characters are allowed.',
|
||||||
|
'FIELD_INVALID_CHARS_LETTER_NUM_ONLY' => 'The field “%s” has invalid characters, only letter and number characters are allowed.',
|
||||||
|
'FIELD_INVALID_CHARS_LETTER_NUM_PUNCTUATION' => 'The field “%s” has invalid characters, only letter, number or _,-. characters are allowed and the first character must be alphabetic.',
|
||||||
|
'FIELD_INVALID_CHARS_LETTER_NUM_SPACERS' => 'The field “%s” has invalid characters, only letter, number, space or -+_[] characters are allowed.',
|
||||||
|
'FIELD_INVALID_CHARS_LETTER_NUM_UNDERSCORE' => 'The field “%s” has invalid characters, only letter, number or _ characters are allowed.',
|
||||||
'FIELD_INVALID_DATE' => 'The field “%s” has an invalid date.',
|
'FIELD_INVALID_DATE' => 'The field “%s” has an invalid date.',
|
||||||
'FIELD_INVALID_URL' => 'The field “%s” has an invalid url.',
|
'FIELD_INVALID_URL' => 'The field “%s” has an invalid url.',
|
||||||
'FIELD_INVALID_VALUE' => 'The field “%s” has an invalid value.',
|
'FIELD_INVALID_VALUE' => 'The field “%s” has an invalid value.',
|
||||||
@@ -412,6 +417,8 @@ $lang = array_merge($lang, array(
|
|||||||
'PM_FROM_REMOVED_AUTHOR' => 'This message was sent by a user no longer registered.',
|
'PM_FROM_REMOVED_AUTHOR' => 'This message was sent by a user no longer registered.',
|
||||||
'PM_ICON' => 'PM icon',
|
'PM_ICON' => 'PM icon',
|
||||||
'PM_INBOX' => 'Inbox',
|
'PM_INBOX' => 'Inbox',
|
||||||
|
'PM_MARK_ALL_READ' => 'Mark all messages read',
|
||||||
|
'PM_MARK_ALL_READ_SUCCESS' => 'All private messages in this folder have been marked read',
|
||||||
'PM_NO_USERS' => 'The requested users to be added do not exist.',
|
'PM_NO_USERS' => 'The requested users to be added do not exist.',
|
||||||
'PM_OUTBOX' => 'Outbox',
|
'PM_OUTBOX' => 'Outbox',
|
||||||
'PM_SENTBOX' => 'Sent messages',
|
'PM_SENTBOX' => 'Sent messages',
|
||||||
@@ -584,6 +591,7 @@ $lang = array_merge($lang, array(
|
|||||||
),
|
),
|
||||||
'VIEW_PREVIOUS_HISTORY' => 'Previous PM in history',
|
'VIEW_PREVIOUS_HISTORY' => 'Previous PM in history',
|
||||||
'VIEW_PREVIOUS_PM' => 'Previous PM',
|
'VIEW_PREVIOUS_PM' => 'Previous PM',
|
||||||
|
'VIEW_PROFILE' => 'View profile',
|
||||||
'VIEW_SIGS' => 'Display signatures',
|
'VIEW_SIGS' => 'Display signatures',
|
||||||
'VIEW_SMILIES' => 'Display smilies as images',
|
'VIEW_SMILIES' => 'Display smilies as images',
|
||||||
'VIEW_TOPICS_DAYS' => 'Display topics from previous days',
|
'VIEW_TOPICS_DAYS' => 'Display topics from previous days',
|
||||||
|
@@ -283,21 +283,20 @@ switch ($mode)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$rank_title = $rank_img = $rank_img_src = '';
|
$user_rank_data = phpbb_get_user_rank($row, (($row['user_id'] == ANONYMOUS) ? false : $row['user_posts']));
|
||||||
get_user_rank($row['user_rank'], (($row['user_id'] == ANONYMOUS) ? false : $row['user_posts']), $rank_title, $rank_img, $rank_img_src);
|
|
||||||
|
|
||||||
$template->assign_block_vars('group.user', array(
|
$template->assign_block_vars('group.user', array(
|
||||||
'USER_ID' => $row['user_id'],
|
'USER_ID' => $row['user_id'],
|
||||||
'FORUMS' => $row['forums'],
|
'FORUMS' => $row['forums'],
|
||||||
'FORUM_OPTIONS' => (isset($row['forums_options'])) ? true : false,
|
'FORUM_OPTIONS' => (isset($row['forums_options'])) ? true : false,
|
||||||
'RANK_TITLE' => $rank_title,
|
'RANK_TITLE' => $user_rank_data['title'],
|
||||||
|
|
||||||
'GROUP_NAME' => $groups_ary[$row['default_group']]['group_name'],
|
'GROUP_NAME' => $groups_ary[$row['default_group']]['group_name'],
|
||||||
'GROUP_COLOR' => $groups_ary[$row['default_group']]['group_colour'],
|
'GROUP_COLOR' => $groups_ary[$row['default_group']]['group_colour'],
|
||||||
'U_GROUP' => $groups_ary[$row['default_group']]['u_group'],
|
'U_GROUP' => $groups_ary[$row['default_group']]['u_group'],
|
||||||
|
|
||||||
'RANK_IMG' => $rank_img,
|
'RANK_IMG' => $user_rank_data['img'],
|
||||||
'RANK_IMG_SRC' => $rank_img_src,
|
'RANK_IMG_SRC' => $user_rank_data['img_src'],
|
||||||
|
|
||||||
'U_PM' => ($config['allow_privmsg'] && $auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose&u=' . $row['user_id']) : '',
|
'U_PM' => ($config['allow_privmsg'] && $auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose&u=' . $row['user_id']) : '',
|
||||||
|
|
||||||
@@ -682,6 +681,7 @@ switch ($mode)
|
|||||||
'U_MCP_QUEUE' => ($auth->acl_getf_global('m_approve')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue', true, $user->session_id) : '',
|
'U_MCP_QUEUE' => ($auth->acl_getf_global('m_approve')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue', true, $user->session_id) : '',
|
||||||
|
|
||||||
'U_SWITCH_PERMISSIONS' => ($auth->acl_get('a_switchperm') && $user->data['user_id'] != $user_id) ? append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=switch_perm&u={$user_id}&hash=" . generate_link_hash('switchperm')) : '',
|
'U_SWITCH_PERMISSIONS' => ($auth->acl_get('a_switchperm') && $user->data['user_id'] != $user_id) ? append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=switch_perm&u={$user_id}&hash=" . generate_link_hash('switchperm')) : '',
|
||||||
|
'U_EDIT_SELF' => ($user_id == $user->data['user_id']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=ucp_profile&mode=profile_info') : '',
|
||||||
|
|
||||||
'S_USER_NOTES' => ($user_notes_enabled) ? true : false,
|
'S_USER_NOTES' => ($user_notes_enabled) ? true : false,
|
||||||
'S_WARN_USER' => ($warn_user_enabled) ? true : false,
|
'S_WARN_USER' => ($warn_user_enabled) ? true : false,
|
||||||
@@ -1080,10 +1080,14 @@ switch ($mode)
|
|||||||
$avatar_img = phpbb_get_group_avatar($group_row);
|
$avatar_img = phpbb_get_group_avatar($group_row);
|
||||||
|
|
||||||
// ... same for group rank
|
// ... same for group rank
|
||||||
$rank_title = $rank_img = $rank_img_src = '';
|
$user_rank_data = array(
|
||||||
|
'title' => null,
|
||||||
|
'img' => null,
|
||||||
|
'img_src' => null,
|
||||||
|
);
|
||||||
if ($group_row['group_rank'])
|
if ($group_row['group_rank'])
|
||||||
{
|
{
|
||||||
get_user_rank($group_row['group_rank'], false, $rank_title, $rank_img, $rank_img_src);
|
$user_rank_data = phpbb_get_user_rank($group_row, false);
|
||||||
|
|
||||||
if ($rank_img)
|
if ($rank_img)
|
||||||
{
|
{
|
||||||
@@ -1096,11 +1100,11 @@ switch ($mode)
|
|||||||
'GROUP_NAME' => ($group_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group_row['group_name']] : $group_row['group_name'],
|
'GROUP_NAME' => ($group_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group_row['group_name']] : $group_row['group_name'],
|
||||||
'GROUP_COLOR' => $group_row['group_colour'],
|
'GROUP_COLOR' => $group_row['group_colour'],
|
||||||
'GROUP_TYPE' => $user->lang['GROUP_IS_' . $group_row['l_group_type']],
|
'GROUP_TYPE' => $user->lang['GROUP_IS_' . $group_row['l_group_type']],
|
||||||
'GROUP_RANK' => $rank_title,
|
'GROUP_RANK' => $user_rank_data['title'],
|
||||||
|
|
||||||
'AVATAR_IMG' => $avatar_img,
|
'AVATAR_IMG' => $avatar_img,
|
||||||
'RANK_IMG' => $rank_img,
|
'RANK_IMG' => $user_rank_data['img'],
|
||||||
'RANK_IMG_SRC' => $rank_img_src,
|
'RANK_IMG_SRC' => $user_rank_data['img_src'],
|
||||||
|
|
||||||
'U_PM' => ($auth->acl_get('u_sendpm') && $auth->acl_get('u_masspm_group') && $group_row['group_receive_pm'] && $config['allow_privmsg'] && $config['allow_mass_pm']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose&g=' . $group_id) : '',)
|
'U_PM' => ($auth->acl_get('u_sendpm') && $auth->acl_get('u_masspm_group') && $group_row['group_receive_pm'] && $config['allow_privmsg'] && $config['allow_mass_pm']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose&g=' . $group_id) : '',)
|
||||||
);
|
);
|
||||||
|
@@ -105,7 +105,7 @@ class oauth extends \phpbb\auth\provider\base
|
|||||||
protected $phpbb_root_path;
|
protected $phpbb_root_path;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHP extenstion
|
* PHP file extension
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
|
16
phpBB/phpbb/cache/driver/memory.php
vendored
16
phpBB/phpbb/cache/driver/memory.php
vendored
@@ -208,12 +208,24 @@ abstract class memory extends \phpbb\cache\driver\base
|
|||||||
// determine which tables this query belongs to
|
// determine which tables this query belongs to
|
||||||
// Some queries use backticks, namely the get_database_size() query
|
// Some queries use backticks, namely the get_database_size() query
|
||||||
// don't check for conformity, the SQL would error and not reach here.
|
// don't check for conformity, the SQL would error and not reach here.
|
||||||
if (!preg_match('/FROM \\(?(`?\\w+`?(?: \\w+)?(?:, ?`?\\w+`?(?: \\w+)?)*)\\)?/', $query, $regs))
|
if (!preg_match_all('/(?:FROM \\(?(`?\\w+`?(?: \\w+)?(?:, ?`?\\w+`?(?: \\w+)?)*)\\)?)|(?:JOIN (`?\\w+`?(?: \\w+)?))/', $query, $regs, PREG_SET_ORDER))
|
||||||
{
|
{
|
||||||
// Bail out if the match fails.
|
// Bail out if the match fails.
|
||||||
return $query_result;
|
return $query_result;
|
||||||
}
|
}
|
||||||
$tables = array_map('trim', explode(',', $regs[1]));
|
|
||||||
|
$tables = array();
|
||||||
|
foreach ($regs as $match)
|
||||||
|
{
|
||||||
|
if ($match[0][0] == 'F')
|
||||||
|
{
|
||||||
|
$tables = array_merge($tables, array_map('trim', explode(',', $match[1])));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$tables[] = $match[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($tables as $table_name)
|
foreach ($tables as $table_name)
|
||||||
{
|
{
|
||||||
|
4
phpBB/phpbb/console/command/cache/purge.php
vendored
4
phpBB/phpbb/console/command/cache/purge.php
vendored
@@ -26,7 +26,7 @@ class purge extends \phpbb\console\command\command
|
|||||||
/** @var \phpbb\auth\auth */
|
/** @var \phpbb\auth\auth */
|
||||||
protected $auth;
|
protected $auth;
|
||||||
|
|
||||||
/** @var \phpbb\log\log */
|
/** @var \phpbb\log\log_interface */
|
||||||
protected $log;
|
protected $log;
|
||||||
|
|
||||||
/** @var \phpbb\config\config */
|
/** @var \phpbb\config\config */
|
||||||
@@ -42,7 +42,7 @@ class purge extends \phpbb\console\command\command
|
|||||||
* @param \phpbb\log\log $log Logger instance
|
* @param \phpbb\log\log $log Logger instance
|
||||||
* @param \phpbb\config\config $config Config instance
|
* @param \phpbb\config\config $config Config instance
|
||||||
*/
|
*/
|
||||||
public function __construct(\phpbb\user $user, \phpbb\cache\driver\driver_interface $cache, \phpbb\db\driver\driver_interface $db, \phpbb\auth\auth $auth, \phpbb\log\log $log, \phpbb\config\config $config)
|
public function __construct(\phpbb\user $user, \phpbb\cache\driver\driver_interface $cache, \phpbb\db\driver\driver_interface $db, \phpbb\auth\auth $auth, \phpbb\log\log_interface $log, \phpbb\config\config $config)
|
||||||
{
|
{
|
||||||
$this->cache = $cache;
|
$this->cache = $cache;
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
|
@@ -55,6 +55,8 @@ class migrate extends \phpbb\console\command\command
|
|||||||
{
|
{
|
||||||
$this->migrator->create_migrations_table();
|
$this->migrator->create_migrations_table();
|
||||||
|
|
||||||
|
$this->cache->purge();
|
||||||
|
|
||||||
$this->load_migrations();
|
$this->load_migrations();
|
||||||
$orig_version = $this->config['version'];
|
$orig_version = $this->config['version'];
|
||||||
while (!$this->migrator->finished())
|
while (!$this->migrator->finished())
|
||||||
|
@@ -140,14 +140,17 @@ class helper
|
|||||||
// If enable_mod_rewrite is false we need to replace the current front-end by app.php, otherwise we need to remove it.
|
// If enable_mod_rewrite is false we need to replace the current front-end by app.php, otherwise we need to remove it.
|
||||||
$base_url = str_replace('/' . $page_name, empty($this->config['enable_mod_rewrite']) ? '/app.' . $this->php_ext : '', $base_url);
|
$base_url = str_replace('/' . $page_name, empty($this->config['enable_mod_rewrite']) ? '/app.' . $this->php_ext : '', $base_url);
|
||||||
|
|
||||||
// We need to update the base url to move to the directory of the app.php file
|
// We need to update the base url to move to the directory of the app.php file if the current script is not app.php
|
||||||
if (empty($this->config['enable_mod_rewrite']))
|
if ($page_name !== 'app.php')
|
||||||
{
|
{
|
||||||
$base_url = str_replace('/app.' . $this->php_ext, '/' . $this->phpbb_root_path . 'app.' . $this->php_ext, $base_url);
|
if (empty($this->config['enable_mod_rewrite']))
|
||||||
}
|
{
|
||||||
else
|
$base_url = str_replace('/app.' . $this->php_ext, '/' . $this->phpbb_root_path . 'app.' . $this->php_ext, $base_url);
|
||||||
{
|
}
|
||||||
$base_url .= preg_replace(get_preg_expression('path_remove_dot_trailing_slash'), '$2', $this->phpbb_root_path);
|
else
|
||||||
|
{
|
||||||
|
$base_url .= preg_replace(get_preg_expression('path_remove_dot_trailing_slash'), '$2', $this->phpbb_root_path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$base_url = $this->filesystem->clean_path($base_url);
|
$base_url = $this->filesystem->clean_path($base_url);
|
||||||
|
@@ -91,25 +91,28 @@ class datetime extends \DateTime
|
|||||||
|
|
||||||
$midnight = $midnight->getTimestamp();
|
$midnight = $midnight->getTimestamp();
|
||||||
|
|
||||||
$day = false;
|
if ($timestamp <= $midnight + 2 * 86400)
|
||||||
|
{
|
||||||
|
$day = false;
|
||||||
|
|
||||||
if ($timestamp > $midnight + 86400)
|
if ($timestamp > $midnight + 86400)
|
||||||
{
|
{
|
||||||
$day = 'TOMORROW';
|
$day = 'TOMORROW';
|
||||||
}
|
}
|
||||||
else if ($timestamp > $midnight)
|
else if ($timestamp > $midnight)
|
||||||
{
|
{
|
||||||
$day = 'TODAY';
|
$day = 'TODAY';
|
||||||
}
|
}
|
||||||
else if ($timestamp > $midnight - 86400)
|
else if ($timestamp > $midnight - 86400)
|
||||||
{
|
{
|
||||||
$day = 'YESTERDAY';
|
$day = 'YESTERDAY';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($day !== false)
|
if ($day !== false)
|
||||||
{
|
{
|
||||||
// Format using the short formatting and finally swap out the relative token placeholder with the correct value
|
// Format using the short formatting and finally swap out the relative token placeholder with the correct value
|
||||||
return str_replace(self::RELATIVE_WRAPPER . self::RELATIVE_WRAPPER, $this->user->lang['datetime'][$day], strtr(parent::format($format['format_short']), $format['lang']));
|
return str_replace(self::RELATIVE_WRAPPER . self::RELATIVE_WRAPPER, $this->user->lang['datetime'][$day], strtr(parent::format($format['format_short']), $format['lang']));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -92,10 +92,41 @@ class notifications_use_full_name extends \phpbb\db\migration\migration
|
|||||||
|
|
||||||
foreach ($this->notification_types as $notification_type)
|
foreach ($this->notification_types as $notification_type)
|
||||||
{
|
{
|
||||||
$sql = 'UPDATE ' . NOTIFICATION_TYPES_TABLE . "
|
$sql = 'SELECT notification_type_id
|
||||||
SET notification_type_name = 'notification.type.{$notification_type}'
|
FROM ' . NOTIFICATION_TYPES_TABLE . "
|
||||||
WHERE notification_type_name = '{$notification_type}'";
|
WHERE notification_type_name = 'notification.type.{$notification_type}'";
|
||||||
$this->db->sql_query($sql);
|
$result = $this->db->sql_query($sql);
|
||||||
|
$new_type_id = (int) $this->db->sql_fetchfield('notification_type_id');
|
||||||
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
|
if ($new_type_id)
|
||||||
|
{
|
||||||
|
// New type name already exists,
|
||||||
|
// so we delete the old type and update the type id of existing entries.
|
||||||
|
$sql = 'SELECT notification_type_id
|
||||||
|
FROM ' . NOTIFICATION_TYPES_TABLE . "
|
||||||
|
WHERE notification_type_name = '{$notification_type}'";
|
||||||
|
$result = $this->db->sql_query($sql);
|
||||||
|
$old_type_id = (int) $this->db->sql_fetchfield('notification_type_id');
|
||||||
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . NOTIFICATIONS_TABLE . '
|
||||||
|
SET notification_type_id = ' . (int) $new_type_id . '
|
||||||
|
WHERE notification_type_id = ' . (int) $old_type_id;
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
|
||||||
|
$sql = 'DELETE FROM ' . NOTIFICATION_TYPES_TABLE . "
|
||||||
|
WHERE notification_type_name = '{$notification_type}'";
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Otherwise we just update the name
|
||||||
|
$sql = 'UPDATE ' . NOTIFICATION_TYPES_TABLE . "
|
||||||
|
SET notification_type_name = 'notification.type.{$notification_type}'
|
||||||
|
WHERE notification_type_name = '{$notification_type}'";
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'UPDATE ' . USER_NOTIFICATIONS_TABLE . "
|
$sql = 'UPDATE ' . USER_NOTIFICATIONS_TABLE . "
|
||||||
SET item_type = 'notification.type.{$notification_type}'
|
SET item_type = 'notification.type.{$notification_type}'
|
||||||
@@ -108,10 +139,41 @@ class notifications_use_full_name extends \phpbb\db\migration\migration
|
|||||||
{
|
{
|
||||||
foreach ($this->notification_types as $notification_type)
|
foreach ($this->notification_types as $notification_type)
|
||||||
{
|
{
|
||||||
$sql = 'UPDATE ' . NOTIFICATION_TYPES_TABLE . "
|
$sql = 'SELECT notification_type_id
|
||||||
SET notification_type_name = '{$notification_type}'
|
FROM ' . NOTIFICATION_TYPES_TABLE . "
|
||||||
WHERE notification_type_name = 'notification.type.{$notification_type}'";
|
WHERE notification_type_name = '{$notification_type}'";
|
||||||
$this->db->sql_query($sql);
|
$result = $this->db->sql_query($sql);
|
||||||
|
$new_type_id = (int) $this->db->sql_fetchfield('notification_type_id');
|
||||||
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
|
if ($new_type_id)
|
||||||
|
{
|
||||||
|
// New type name already exists,
|
||||||
|
// so we delete the old type and update the type id of existing entries.
|
||||||
|
$sql = 'SELECT notification_type_id
|
||||||
|
FROM ' . NOTIFICATION_TYPES_TABLE . "
|
||||||
|
WHERE notification_type_name = 'notification.type.{$notification_type}'";
|
||||||
|
$result = $this->db->sql_query($sql);
|
||||||
|
$old_type_id = (int) $this->db->sql_fetchfield('notification_type_id');
|
||||||
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . NOTIFICATIONS_TABLE . '
|
||||||
|
SET notification_type_id = ' . (int) $new_type_id . '
|
||||||
|
WHERE notification_type_id = ' . (int) $old_type_id;
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
|
||||||
|
$sql = 'DELETE FROM ' . NOTIFICATION_TYPES_TABLE . "
|
||||||
|
WHERE notification_type_name = 'notification.type.{$notification_type}'";
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Otherwise we just update the name
|
||||||
|
$sql = 'UPDATE ' . NOTIFICATION_TYPES_TABLE . "
|
||||||
|
SET notification_type_name = '{$notification_type}'
|
||||||
|
WHERE notification_type_name = 'notification.type.{$notification_type}'";
|
||||||
|
$this->db->sql_query($sql);
|
||||||
|
}
|
||||||
|
|
||||||
$sql = 'UPDATE ' . USER_NOTIFICATIONS_TABLE . "
|
$sql = 'UPDATE ' . USER_NOTIFICATIONS_TABLE . "
|
||||||
SET item_type = '{$notification_type}'
|
SET item_type = '{$notification_type}'
|
||||||
|
@@ -0,0 +1,90 @@
|
|||||||
|
<?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\v310;
|
||||||
|
|
||||||
|
class profilefield_field_validation_length extends \phpbb\db\migration\migration
|
||||||
|
{
|
||||||
|
protected $validation_options_old = array(
|
||||||
|
'ALPHA_SPACERS' => '[\w_\+\. \-\[\]]+',
|
||||||
|
);
|
||||||
|
|
||||||
|
protected $validation_options_new = array(
|
||||||
|
'ALPHA_SPACERS' => '[\w\x20_+\-\[\]]+',
|
||||||
|
);
|
||||||
|
|
||||||
|
static public function depends_on()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
'\phpbb\db\migration\data\v310\rc3',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update_schema()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
'change_columns' => array(
|
||||||
|
$this->table_prefix . 'profile_fields' => array(
|
||||||
|
'field_validation' => array('VCHAR_UNI:64', ''),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function revert_schema()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
'change_columns' => array(
|
||||||
|
$this->table_prefix . 'profile_fields' => array(
|
||||||
|
'field_validation' => array('VCHAR_UNI:20', ''),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('custom', array(array($this, 'update_profile_fields_validation'))),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function revert_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('custom', array(array($this, 'revert_profile_fields_validation'))),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update_profile_fields_validation()
|
||||||
|
{
|
||||||
|
foreach ($this->validation_options_new as $validation_type => $regex)
|
||||||
|
{
|
||||||
|
$sql = 'UPDATE ' . $this->table_prefix . "profile_fields
|
||||||
|
SET field_validation = '" . $this->db->sql_escape($this->validation_options_new[$validation_type]) . "'
|
||||||
|
WHERE field_validation = '" . $this->db->sql_escape($this->validation_options_old[$validation_type]) . "'";
|
||||||
|
$this->sql_query($sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function revert_profile_fields_validation()
|
||||||
|
{
|
||||||
|
foreach ($this->validation_options_new as $validation_type => $regex)
|
||||||
|
{
|
||||||
|
$sql = 'UPDATE ' . $this->table_prefix . "profile_fields
|
||||||
|
SET field_validation = '" . $this->db->sql_escape($this->validation_options_old[$validation_type]) . "'
|
||||||
|
WHERE field_validation = '" . $this->db->sql_escape($this->validation_options_new[$validation_type]) . "'";
|
||||||
|
$this->sql_query($sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
phpBB/phpbb/db/migration/data/v310/rc5.php
Normal file
33
phpBB/phpbb/db/migration/data/v310/rc5.php
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?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\v310;
|
||||||
|
|
||||||
|
class rc5 extends \phpbb\db\migration\migration
|
||||||
|
{
|
||||||
|
static public function depends_on()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
'\phpbb\db\migration\data\v310\rc4',
|
||||||
|
'\phpbb\db\migration\data\v310\profilefield_field_validation_length',
|
||||||
|
'\phpbb\db\migration\data\v310\remove_acp_styles_cache',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('config.update', array('version', '3.1.0-RC5')),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
31
phpBB/phpbb/db/migration/data/v310/rc6.php
Normal file
31
phpBB/phpbb/db/migration/data/v310/rc6.php
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?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\v310;
|
||||||
|
|
||||||
|
class rc6 extends \phpbb\db\migration\migration
|
||||||
|
{
|
||||||
|
static public function depends_on()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
'\phpbb\db\migration\data\v310\rc5',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('config.update', array('version', '3.1.0-RC6')),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,51 @@
|
|||||||
|
<?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\v310;
|
||||||
|
|
||||||
|
class remove_acp_styles_cache extends \phpbb\db\migration\migration
|
||||||
|
{
|
||||||
|
public function effectively_installed()
|
||||||
|
{
|
||||||
|
$sql = 'SELECT module_id
|
||||||
|
FROM ' . MODULES_TABLE . "
|
||||||
|
WHERE module_class = 'acp'
|
||||||
|
AND module_langname = 'ACP_STYLES_CACHE'";
|
||||||
|
$result = $this->db->sql_query($sql);
|
||||||
|
$module_id = $this->db->sql_fetchfield('module_id');
|
||||||
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
|
return !$module_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
static public function depends_on()
|
||||||
|
{
|
||||||
|
return array('\phpbb\db\migration\data\v310\rc4');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('module.remove', array(
|
||||||
|
'acp',
|
||||||
|
'ACP_STYLE_MANAGEMENT',
|
||||||
|
array(
|
||||||
|
'module_basename' => 'acp_styles',
|
||||||
|
'module_langname' => 'ACP_STYLES_CACHE',
|
||||||
|
'module_mode' => 'cache',
|
||||||
|
'module_auth' => 'acl_a_styles',
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@@ -1512,7 +1512,7 @@ class tools
|
|||||||
$sql .= (strpos($column_data[1], '0x') === 0) ? "DEFAULT {$column_data[1]} " : "DEFAULT '{$column_data[1]}' ";
|
$sql .= (strpos($column_data[1], '0x') === 0) ? "DEFAULT {$column_data[1]} " : "DEFAULT '{$column_data[1]}' ";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_null($column_data[1]))
|
if (!is_null($column_data[1]) || (isset($column_data[2]) && $column_data[2] == 'auto_increment'))
|
||||||
{
|
{
|
||||||
$sql .= 'NOT NULL';
|
$sql .= 'NOT NULL';
|
||||||
}
|
}
|
||||||
|
@@ -1,67 +0,0 @@
|
|||||||
<?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\di\pass;
|
|
||||||
|
|
||||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
|
||||||
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
|
|
||||||
|
|
||||||
class kernel_pass implements CompilerPassInterface
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Modify the container before it is passed to the rest of the code
|
|
||||||
*
|
|
||||||
* @param ContainerBuilder $container ContainerBuilder object
|
|
||||||
* @return null
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function process(ContainerBuilder $container)
|
|
||||||
{
|
|
||||||
$definition = $container->getDefinition('dispatcher');
|
|
||||||
|
|
||||||
foreach ($container->findTaggedServiceIds('kernel.event_listener') as $id => $events)
|
|
||||||
{
|
|
||||||
foreach ($events as $event)
|
|
||||||
{
|
|
||||||
$priority = isset($event['priority']) ? $event['priority'] : 0;
|
|
||||||
|
|
||||||
if (!isset($event['event']))
|
|
||||||
{
|
|
||||||
throw new \InvalidArgumentException(sprintf('Service "%1$s" must define the "event" attribute on "kernel.event_listener" tags.', $id));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($event['method']))
|
|
||||||
{
|
|
||||||
throw new \InvalidArgumentException(sprintf('Service "%1$s" must define the "method" attribute on "kernel.event_listener" tags.', $id));
|
|
||||||
}
|
|
||||||
|
|
||||||
$definition->addMethodCall('addListenerService', array($event['event'], array($id, $event['method']), $priority));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($container->findTaggedServiceIds('kernel.event_subscriber') as $id => $attributes)
|
|
||||||
{
|
|
||||||
// We must assume that the class value has been correctly filled, even if the service is created by a factory
|
|
||||||
$class = $container->getDefinition($id)->getClass();
|
|
||||||
|
|
||||||
$refClass = new \ReflectionClass($class);
|
|
||||||
$interface = 'Symfony\Component\EventDispatcher\EventSubscriberInterface';
|
|
||||||
if (!$refClass->implementsInterface($interface))
|
|
||||||
{
|
|
||||||
throw new \InvalidArgumentException(sprintf('Service "%1$s" must implement interface "%2$s".', $id, $interface));
|
|
||||||
}
|
|
||||||
|
|
||||||
$definition->addMethodCall('addSubscriberService', array($id, $class));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -253,7 +253,7 @@ class php_exporter
|
|||||||
public function get_event_name($event_line, $is_dispatch)
|
public function get_event_name($event_line, $is_dispatch)
|
||||||
{
|
{
|
||||||
$event_text_line = $this->file_lines[$event_line];
|
$event_text_line = $this->file_lines[$event_line];
|
||||||
$event_text_line = ltrim($event_text_line, "\t");
|
$event_text_line = ltrim($event_text_line, "\t ");
|
||||||
|
|
||||||
if ($is_dispatch)
|
if ($is_dispatch)
|
||||||
{
|
{
|
||||||
@@ -389,7 +389,7 @@ class php_exporter
|
|||||||
$found_comment_end = false;
|
$found_comment_end = false;
|
||||||
while (ltrim($this->file_lines[$this->current_event_line - $current_doc_line], "\t") !== '/**')
|
while (ltrim($this->file_lines[$this->current_event_line - $current_doc_line], "\t") !== '/**')
|
||||||
{
|
{
|
||||||
if (ltrim($this->file_lines[$this->current_event_line - $current_doc_line], "\t") === '*/')
|
if (ltrim($this->file_lines[$this->current_event_line - $current_doc_line], "\t ") === '*/')
|
||||||
{
|
{
|
||||||
$found_comment_end = true;
|
$found_comment_end = true;
|
||||||
}
|
}
|
||||||
@@ -471,7 +471,7 @@ class php_exporter
|
|||||||
{
|
{
|
||||||
$find_tag_line = 0;
|
$find_tag_line = 0;
|
||||||
$found_comment_end = false;
|
$found_comment_end = false;
|
||||||
while (strpos(ltrim($this->file_lines[$this->current_event_line - $find_tag_line], "\t"), '* @' . $find_tag . ' ') !== 0)
|
while (strpos(ltrim($this->file_lines[$this->current_event_line - $find_tag_line], "\t "), '* @' . $find_tag . ' ') !== 0)
|
||||||
{
|
{
|
||||||
if ($found_comment_end && ltrim($this->file_lines[$this->current_event_line - $find_tag_line], "\t") === '/**')
|
if ($found_comment_end && ltrim($this->file_lines[$this->current_event_line - $find_tag_line], "\t") === '/**')
|
||||||
{
|
{
|
||||||
@@ -482,7 +482,7 @@ class php_exporter
|
|||||||
|
|
||||||
foreach ($disallowed_tags as $disallowed_tag)
|
foreach ($disallowed_tags as $disallowed_tag)
|
||||||
{
|
{
|
||||||
if ($found_comment_end && strpos(ltrim($this->file_lines[$this->current_event_line - $find_tag_line], "\t"), '* @' . $disallowed_tag) === 0)
|
if ($found_comment_end && strpos(ltrim($this->file_lines[$this->current_event_line - $find_tag_line], "\t "), '* @' . $disallowed_tag) === 0)
|
||||||
{
|
{
|
||||||
// Found @var after the @since
|
// Found @var after the @since
|
||||||
throw new \LogicException("Found '@{$disallowed_tag}' information after '@{$find_tag}' for event "
|
throw new \LogicException("Found '@{$disallowed_tag}' information after '@{$find_tag}' for event "
|
||||||
@@ -490,7 +490,7 @@ class php_exporter
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ltrim($this->file_lines[$this->current_event_line - $find_tag_line], "\t") === '*/')
|
if (ltrim($this->file_lines[$this->current_event_line - $find_tag_line], "\t ") === '*/')
|
||||||
{
|
{
|
||||||
$found_comment_end = true;
|
$found_comment_end = true;
|
||||||
}
|
}
|
||||||
@@ -550,7 +550,7 @@ class php_exporter
|
|||||||
public function validate_since($line)
|
public function validate_since($line)
|
||||||
{
|
{
|
||||||
$match = array();
|
$match = array();
|
||||||
preg_match('#^\* @since (\d+\.\d+\.\d+(?:-(?:a|b|RC|pl)\d+)?)$#', ltrim($line, "\t"), $match);
|
preg_match('#^\* @since (\d+\.\d+\.\d+(?:-(?:a|b|RC|pl)\d+)?)$#', ltrim($line, "\t "), $match);
|
||||||
if (!isset($match[1]))
|
if (!isset($match[1]))
|
||||||
{
|
{
|
||||||
throw new \LogicException("Invalid '@since' information for event "
|
throw new \LogicException("Invalid '@since' information for event "
|
||||||
@@ -570,7 +570,7 @@ class php_exporter
|
|||||||
*/
|
*/
|
||||||
public function validate_event($event_name, $line)
|
public function validate_event($event_name, $line)
|
||||||
{
|
{
|
||||||
$event = substr(ltrim($line, "\t"), strlen('* @event '));
|
$event = substr(ltrim($line, "\t "), strlen('* @event '));
|
||||||
|
|
||||||
if ($event !== trim($event))
|
if ($event !== trim($event))
|
||||||
{
|
{
|
||||||
|
@@ -21,18 +21,26 @@ class pagination
|
|||||||
/** @var \phpbb\user */
|
/** @var \phpbb\user */
|
||||||
protected $user;
|
protected $user;
|
||||||
|
|
||||||
|
/** @var \phpbb\controller\helper */
|
||||||
|
protected $helper;
|
||||||
|
|
||||||
|
/** @var \phpbb\event\dispatcher_interface */
|
||||||
|
protected $phpbb_dispatcher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param \phpbb\template\template $template
|
* @param \phpbb\template\template $template
|
||||||
* @param \phpbb\user $user
|
* @param \phpbb\user $user
|
||||||
* @param \phpbb\controller\helper $helper
|
* @param \phpbb\controller\helper $helper
|
||||||
|
* @param \phpbb\event\dispatcher_interface $phpbb_dispatcher
|
||||||
*/
|
*/
|
||||||
public function __construct(\phpbb\template\template $template, \phpbb\user $user, \phpbb\controller\helper $helper)
|
public function __construct(\phpbb\template\template $template, \phpbb\user $user, \phpbb\controller\helper $helper, \phpbb\event\dispatcher_interface $phpbb_dispatcher)
|
||||||
{
|
{
|
||||||
$this->template = $template;
|
$this->template = $template;
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
$this->helper = $helper;
|
$this->helper = $helper;
|
||||||
|
$this->phpbb_dispatcher = $phpbb_dispatcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,6 +58,36 @@ class pagination
|
|||||||
*/
|
*/
|
||||||
protected function generate_page_link($base_url, $on_page, $start_name, $per_page)
|
protected function generate_page_link($base_url, $on_page, $start_name, $per_page)
|
||||||
{
|
{
|
||||||
|
// A listener can set this variable to the new pagination URL
|
||||||
|
// to override the generate_page_link() function generated value
|
||||||
|
$generate_page_link_override = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute code and/or override generate_page_link()
|
||||||
|
*
|
||||||
|
* To override the generate_page_link() function generated value
|
||||||
|
* set $generate_page_link_override to the new URL value
|
||||||
|
*
|
||||||
|
* @event core.pagination_generate_page_link
|
||||||
|
* @var string base_url is url prepended to all links generated within the function
|
||||||
|
* If you use page numbers inside your controller route, base_url should contains a placeholder (%d)
|
||||||
|
* for the page. Also be sure to specify the pagination path information into the start_name argument
|
||||||
|
* @var string on_page is the page for which we want to generate the link
|
||||||
|
* @var string start_name is the name of the parameter containing the first item of the given page (example: start=20)
|
||||||
|
* If you use page numbers inside your controller route, start name should be the string
|
||||||
|
* that should be removed for the first page (example: /page/%d)
|
||||||
|
* @var int per_page the number of items, posts, etc. to display per page, used to determine the number of pages to produce
|
||||||
|
* @var bool|string generate_page_link_override Shall we return custom pagination link (string URL) or not (false)
|
||||||
|
* @since 3.1.0-RC5
|
||||||
|
*/
|
||||||
|
$vars = array('base_url', 'on_page', 'start_name', 'per_page', 'generate_page_link_override');
|
||||||
|
extract($this->phpbb_dispatcher->trigger_event('core.pagination_generate_page_link', compact($vars)));
|
||||||
|
|
||||||
|
if ($generate_page_link_override)
|
||||||
|
{
|
||||||
|
return $generate_page_link_override;
|
||||||
|
}
|
||||||
|
|
||||||
if (!is_string($base_url))
|
if (!is_string($base_url))
|
||||||
{
|
{
|
||||||
if (is_array($base_url['routes']))
|
if (is_array($base_url['routes']))
|
||||||
|
@@ -68,7 +68,7 @@ class bcrypt extends base
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($hash == $this->hash($password, $salt))
|
if ($this->helper->string_compare($hash, $this->hash($password, $salt)))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -78,7 +78,7 @@ class bcrypt_wcf2 extends base
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Works for standard WCF 2.x, i.e. WBB4 and similar
|
// Works for standard WCF 2.x, i.e. WBB4 and similar
|
||||||
return $hash === $this->bcrypt->hash($this->bcrypt->hash($password, $salt), $salt);
|
return $this->helper->string_compare($hash, $this->bcrypt->hash($this->bcrypt->hash($password, $salt), $salt));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -142,4 +142,24 @@ class helper
|
|||||||
}
|
}
|
||||||
return $random;
|
return $random;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compare two strings byte by byte
|
||||||
|
*
|
||||||
|
* @param string $string_a The first string
|
||||||
|
* @param string $string_b The second string
|
||||||
|
*
|
||||||
|
* @return bool True if strings are the same, false if not
|
||||||
|
*/
|
||||||
|
public function string_compare($string_a, $string_b)
|
||||||
|
{
|
||||||
|
$difference = strlen($string_a) != strlen($string_b);
|
||||||
|
|
||||||
|
for ($i = 0; $i < strlen($string_a) && $i < strlen($string_b); $i++)
|
||||||
|
{
|
||||||
|
$difference |= $string_a[$i] != $string_b[$i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $difference === 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -54,7 +54,7 @@ class md5_mybb extends base
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Works for myBB 1.1.x, 1.2.x, 1.4.x, 1.6.x
|
// Works for myBB 1.1.x, 1.2.x, 1.4.x, 1.6.x
|
||||||
return $hash === md5(md5($user_row['user_passwd_salt']) . md5($password));
|
return $this->helper->string_compare($hash, md5(md5($user_row['user_passwd_salt']) . md5($password)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,9 @@ class md5_phpbb2 extends base
|
|||||||
/** @var \phpbb\passwords\driver\salted_md5 */
|
/** @var \phpbb\passwords\driver\salted_md5 */
|
||||||
protected $salted_md5;
|
protected $salted_md5;
|
||||||
|
|
||||||
|
/** @var \phpbb\passwords\driver\helper */
|
||||||
|
protected $helper;
|
||||||
|
|
||||||
/** @var string phpBB root path */
|
/** @var string phpBB root path */
|
||||||
protected $phpbb_root_path;
|
protected $phpbb_root_path;
|
||||||
|
|
||||||
@@ -34,13 +37,15 @@ class md5_phpbb2 extends base
|
|||||||
*
|
*
|
||||||
* @param \phpbb\request\request $request phpBB request object
|
* @param \phpbb\request\request $request phpBB request object
|
||||||
* @param \phpbb\passwords\driver\salted_md5 $salted_md5 Salted md5 driver
|
* @param \phpbb\passwords\driver\salted_md5 $salted_md5 Salted md5 driver
|
||||||
|
* @param \phpbb\passwords\driver\helper $helper Driver helper
|
||||||
* @param string $phpbb_root_path phpBB root path
|
* @param string $phpbb_root_path phpBB root path
|
||||||
* @param string $php_ext PHP file extension
|
* @param string $php_ext PHP file extension
|
||||||
*/
|
*/
|
||||||
public function __construct($request, \phpbb\passwords\driver\salted_md5 $salted_md5, $phpbb_root_path, $php_ext)
|
public function __construct($request, salted_md5 $salted_md5, helper $helper, $phpbb_root_path, $php_ext)
|
||||||
{
|
{
|
||||||
$this->request = $request;
|
$this->request = $request;
|
||||||
$this->salted_md5 = $salted_md5;
|
$this->salted_md5 = $salted_md5;
|
||||||
|
$this->helper = $helper;
|
||||||
$this->phpbb_root_path = $phpbb_root_path;
|
$this->phpbb_root_path = $phpbb_root_path;
|
||||||
$this->php_ext = $php_ext;
|
$this->php_ext = $php_ext;
|
||||||
}
|
}
|
||||||
@@ -105,7 +110,7 @@ class md5_phpbb2 extends base
|
|||||||
include($this->phpbb_root_path . 'includes/utf/data/recode_basic.' . $this->php_ext);
|
include($this->phpbb_root_path . 'includes/utf/data/recode_basic.' . $this->php_ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (md5($password_old_format) === $hash || md5(\utf8_to_cp1252($password_old_format)) === $hash
|
if ($this->helper->string_compare(md5($password_old_format), $hash) || $this->helper->string_compare(md5(\utf8_to_cp1252($password_old_format)), $hash)
|
||||||
|| $this->salted_md5->check(md5($password_old_format), $hash) === true
|
|| $this->salted_md5->check(md5($password_old_format), $hash) === true
|
||||||
|| $this->salted_md5->check(md5(\utf8_to_cp1252($password_old_format)), $hash) === true)
|
|| $this->salted_md5->check(md5(\utf8_to_cp1252($password_old_format)), $hash) === true)
|
||||||
{
|
{
|
||||||
|
@@ -54,7 +54,7 @@ class md5_vb extends base
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Works for vB 3.8.x, 4.x.x, 5.0.x
|
// Works for vB 3.8.x, 4.x.x, 5.0.x
|
||||||
return $hash === md5(md5($password) . $user_row['user_passwd_salt']);
|
return $this->helper->string_compare($hash, md5(md5($password) . $user_row['user_passwd_salt']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -107,7 +107,7 @@ class salted_md5 extends base
|
|||||||
return md5($password) === $hash;
|
return md5($password) === $hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $hash === $this->hash($password, $hash);
|
return $this->helper->string_compare($hash, $this->hash($password, $hash));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -47,6 +47,6 @@ class sha1 extends base
|
|||||||
*/
|
*/
|
||||||
public function check($password, $hash, $user_row = array())
|
public function check($password, $hash, $user_row = array())
|
||||||
{
|
{
|
||||||
return (strlen($hash) == 40) ? $hash === sha1($password) : false;
|
return (strlen($hash) == 40) ? $this->helper->string_compare($hash, sha1($password)) : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -46,6 +46,6 @@ class sha1_smf extends base
|
|||||||
*/
|
*/
|
||||||
public function check($password, $hash, $user_row = array())
|
public function check($password, $hash, $user_row = array())
|
||||||
{
|
{
|
||||||
return (strlen($hash) == 40) ? $hash === $this->hash($password, $user_row) : false;
|
return (strlen($hash) == 40) ? $this->helper->string_compare($hash, $this->hash($password, $user_row)) : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user