mirror of
https://github.com/phpbb/phpbb.git
synced 2025-09-14 10:02:07 +02:00
Compare commits
423 Commits
release-3.
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
|
e8c6a3aa0a | ||
|
7cbb049572 | ||
|
6145f46bd1 | ||
|
2eb8a97f47 | ||
|
1f42da7ba5 | ||
|
83f737a30a | ||
|
79d6d53296 | ||
|
6764bea40c | ||
|
6a73188e6a | ||
|
8d3716ab91 | ||
|
cff2895599 | ||
|
516670225d | ||
|
256730c76a | ||
|
cddf80c2e6 | ||
|
d316927225 | ||
|
ef1e163180 | ||
|
cf2b96def7 | ||
|
a9beed3ad0 | ||
|
9d88238f89 | ||
|
b2141fd1a8 | ||
|
ff8b5058e0 | ||
|
82649b37e4 | ||
|
08acf2acba | ||
|
4fdbd6217d | ||
|
b63c61d099 | ||
|
72248cab45 | ||
|
73073ac8c3 | ||
|
50227dbc75 | ||
|
0a512b2695 | ||
|
80db259ab9 | ||
|
e30518461c | ||
|
9bea18b5db | ||
|
be5ea21706 | ||
|
191b80a750 | ||
|
c103c42857 | ||
|
dcf90a8d8b | ||
|
a8fb33218c | ||
|
e578450077 | ||
|
7a8455baa7 | ||
|
548357e14c | ||
|
2576993564 | ||
|
3e88ea9c06 | ||
|
7e6371ea8e | ||
|
283a039647 | ||
|
c3fd07a5f0 | ||
|
1a68504174 | ||
|
3bafbc81ef | ||
|
06507f9fa6 | ||
|
90cefcf0f4 | ||
|
7a28b7514a | ||
|
2a95f545c3 | ||
|
94d2be725a | ||
|
e7262e2d39 | ||
|
40a00bd4e5 | ||
|
9c34594bc3 | ||
|
bf37cdf878 | ||
|
961ffee684 | ||
|
734972cc3d | ||
|
03348087d8 | ||
|
f57f09f814 | ||
|
3572f4c92e | ||
|
c7bbcd7b84 | ||
|
1629e6aaf3 | ||
|
c0f3463819 | ||
|
c3b30144e3 | ||
|
aa3c5286cd | ||
|
8e1102b1da | ||
|
ef226138c8 | ||
|
43c16ca4c3 | ||
|
e9b7cb1324 | ||
|
6eda942a7f | ||
|
c941041963 | ||
|
829a8ac15a | ||
|
39c4590f01 | ||
|
ead261e6db | ||
|
877188c114 | ||
|
29bb1ab72d | ||
|
4cdec74e94 | ||
|
1b01667c7b | ||
|
fdcedb262f | ||
|
1b0b78dabc | ||
|
4614cc972f | ||
|
68645d38ef | ||
|
ed378a2ec3 | ||
|
4c257d47a6 | ||
|
96bdcedacd | ||
|
d713ce94ff | ||
|
560bee1be4 | ||
|
336f5b49a7 | ||
|
972255247b | ||
|
f41c7bd2b1 | ||
|
9163cc2864 | ||
|
d89b75bd36 | ||
|
58dfff38fa | ||
|
c4ef83e4d2 | ||
|
e7043dc044 | ||
|
5ee6c216e5 | ||
|
15e22af266 | ||
|
45a3e4d04f | ||
|
2ae17d6caf | ||
|
ebbedf29e0 | ||
|
4e8981ee37 | ||
|
901f36e982 | ||
|
9ad5c577f5 | ||
|
c53eae7abc | ||
|
cdc7f1722d | ||
|
12f5c0405e | ||
|
7bf8006b67 | ||
|
68eba86309 | ||
|
a319d58d03 | ||
|
d0f5b39f11 | ||
|
f929db6190 | ||
|
02469d4691 | ||
|
d747ac146e | ||
|
5754cbfec4 | ||
|
6d2acb5ba3 | ||
|
bffd963c50 | ||
|
663e3bc642 | ||
|
4070d1e06f | ||
|
5cdbef860d | ||
|
e8762ce3cb | ||
|
8769e765a2 | ||
|
a2f517fb38 | ||
|
5ba5128ae6 | ||
|
753d6dfcae | ||
|
3281826a51 | ||
|
2505aaa9d6 | ||
|
9dad16c5a6 | ||
|
a895640245 | ||
|
bd91925fe7 | ||
|
ccdf8e7ee1 | ||
|
28ba2d4494 | ||
|
79a8d48c3c | ||
|
d603d66eaa | ||
|
0a9c049f76 | ||
|
83b56f7855 | ||
|
2653b98e09 | ||
|
5b61ac06cb | ||
|
1819b64046 | ||
|
01d5667388 | ||
|
91045879df | ||
|
3f4cf72872 | ||
|
ada90d3b0a | ||
|
621b958b1c | ||
|
1641fd18c1 | ||
|
2b90591a31 | ||
|
e81bf76dea | ||
|
afb69d7cd2 | ||
|
4b789c0418 | ||
|
ed0f151d86 | ||
|
aee3eec439 | ||
|
13f365916c | ||
|
6291bfaca9 | ||
|
16f9b4630c | ||
|
91f1116e04 | ||
|
8a9429efa4 | ||
|
f9b6086302 | ||
|
65113f222e | ||
|
14e8113fcf | ||
|
48283d7c62 | ||
|
c9ffef2c57 | ||
|
3f5a873e4c | ||
|
ff9632261e | ||
|
842d6f7815 | ||
|
bfc09e2b39 | ||
|
dfc2168d31 | ||
|
2387fdd599 | ||
|
7a1cf2a280 | ||
|
a643d04b05 | ||
|
9fc01a42e6 | ||
|
27df46040f | ||
|
b22fbc91d1 | ||
|
a5f1ff8563 | ||
|
00dcbb3992 | ||
|
4205450c9d | ||
|
0647eea742 | ||
|
0b1ed8dbbb | ||
|
1a5fbd4bd0 | ||
|
39de59e65f | ||
|
b8dd3ef43a | ||
|
4fa47d301f | ||
|
a9242bbf7b | ||
|
28705b54a5 | ||
|
478c90cb00 | ||
|
fae305073a | ||
|
9a5f420ce8 | ||
|
c44a01fd9d | ||
|
99196a42f2 | ||
|
3278ff03e7 | ||
|
7830ac2c9a | ||
|
0ca32c41b5 | ||
|
5a9e9029e8 | ||
|
a9090ecb0e | ||
|
2bfbc07b7d | ||
|
386d31ec63 | ||
|
5442a25967 | ||
|
4a14eb8488 | ||
|
7d5a853b21 | ||
|
a7950bd8ce | ||
|
50737da051 | ||
|
465eabbc65 | ||
|
5e96738ca1 | ||
|
1600d82b77 | ||
|
4db229ff6c | ||
|
1f962dacaf | ||
|
fac6e5206f | ||
|
9ef5b126ec | ||
|
dedfb317f2 | ||
|
640070e133 | ||
|
ebe5eb8342 | ||
|
18a4505b23 | ||
|
c3bc504b70 | ||
|
9f3ee58595 | ||
|
2a7c514cd0 | ||
|
7f9ba9849b | ||
|
3eb6f7176a | ||
|
6774c5077d | ||
|
e873ed6944 | ||
|
8d98981012 | ||
|
9b94eaa0e4 | ||
|
f29ebb1846 | ||
|
2168cb7f8e | ||
|
28f0c3457c | ||
|
53a9131db6 | ||
|
4212c304ab | ||
|
f6cc30cbfe | ||
|
23be4d8af2 | ||
|
0ff4a6b6a4 | ||
|
826b338275 | ||
|
d2ecbfcc1b | ||
|
a9b6a537c5 | ||
|
3a23068d89 | ||
|
7e2c8f1885 | ||
|
dcb6154be7 | ||
|
51c243f76b | ||
|
1721965c38 | ||
|
d817da6049 | ||
|
2e3f89444a | ||
|
244d171cb0 | ||
|
a5790597ca | ||
|
ed21921c58 | ||
|
a4fac6da2a | ||
|
78bf53587a | ||
|
2a6e8f3668 | ||
|
1bb4e3621e | ||
|
d8bcf479bf | ||
|
200bcae2ae | ||
|
c36892f2fa | ||
|
a66ec6eccf | ||
|
c5ef29a6f1 | ||
|
56c2caf6c0 | ||
|
d9ad14e4c5 | ||
|
c003611f05 | ||
|
8f396673fe | ||
|
a18c59317f | ||
|
827f11cf83 | ||
|
1e0cda3e8a | ||
|
10d4093561 | ||
|
dc097221d8 | ||
|
8a8428d002 | ||
|
5b3b0edd80 | ||
|
00c2efca60 | ||
|
f77142c0b6 | ||
|
15a0013193 | ||
|
4dc8841e33 | ||
|
933938a1d8 | ||
|
0f7d08c121 | ||
|
46c79bbe90 | ||
|
04450e1fae | ||
|
eca4726f3c | ||
|
0194c78d19 | ||
|
e610b23916 | ||
|
1c61fd54d4 | ||
|
d8e7f865d8 | ||
|
a03470ac75 | ||
|
f1874ec416 | ||
|
a92ce812e7 | ||
|
67d58aa7b8 | ||
|
681836a84d | ||
|
365c99a787 | ||
|
5c2ef741a6 | ||
|
04fbbbe1ed | ||
|
36d2ed3121 | ||
|
cc212f680d | ||
|
186c5f4f83 | ||
|
48bdab88de | ||
|
17b8e93a53 | ||
|
dad531e4b2 | ||
|
58678ff21c | ||
|
3e278bcf0a | ||
|
215fad420f | ||
|
ebbc730c73 | ||
|
b0fe454163 | ||
|
5dd11735fb | ||
|
eef7a4dbf4 | ||
|
d142bebdd6 | ||
|
2337d9dd27 | ||
|
4c5c289f75 | ||
|
2c28138329 | ||
|
18fea1b286 | ||
|
9288a50bcf | ||
|
6a90172e1a | ||
|
ad8363ae57 | ||
|
1f25f710ea | ||
|
f22bd4e511 | ||
|
795ce6ccf1 | ||
|
b0bedce662 | ||
|
8058967e7f | ||
|
8a6c82a0ef | ||
|
0e84856a45 | ||
|
9bcf8df5d0 | ||
|
b758c098d3 | ||
|
5917a8e72e | ||
|
693664f278 | ||
|
a9df243772 | ||
|
2c813e6e5e | ||
|
61e0247f22 | ||
|
0a983d219a | ||
|
5d0f02ce7f | ||
|
0e49dc4409 | ||
|
98ea7252d3 | ||
|
0251a02896 | ||
|
5e84d47a03 | ||
|
6c814ef641 | ||
|
a01e3a0ffa | ||
|
7c45ed0733 | ||
|
a0fa396901 | ||
|
05ccbc512d | ||
|
00bf1ef8b8 | ||
|
dd115d1896 | ||
|
10004c4032 | ||
|
9fcd0b116b | ||
|
0f8790dd2e | ||
|
0c1e7c2f9c | ||
|
d461ee4f5c | ||
|
e6e87ab214 | ||
|
9d7b6260bd | ||
|
a1b7a5aedc | ||
|
c00e45d30e | ||
|
f55a61d067 | ||
|
62a2619300 | ||
|
b77856a903 | ||
|
3d7d0c40b8 | ||
|
f1772ce7e5 | ||
|
1e10664739 | ||
|
4e717c1725 | ||
|
5fc3177395 | ||
|
cc941e6e05 | ||
|
8c5d6efad5 | ||
|
293a42e7c5 | ||
|
e5344ae135 | ||
|
f53a27e891 | ||
|
ad23b2330c | ||
|
83fd8e88d6 | ||
|
0e6bcd166c | ||
|
65ce507dda | ||
|
43ffffca5f | ||
|
7b0452e53a | ||
|
07b8c0663d | ||
|
b17f9fc81c | ||
|
0ca4484525 | ||
|
e905c6226d | ||
|
97c6cce687 | ||
|
a84f77bf25 | ||
|
fe31060fca | ||
|
637b02690d | ||
|
b324cf1907 | ||
|
f32b4c0547 | ||
|
d373428180 | ||
|
6fe084a2fd | ||
|
d17a8ab523 | ||
|
8f7aba6582 | ||
|
df4a620ba1 | ||
|
50761104ba | ||
|
0102fa3f2d | ||
|
72bdbf52cc | ||
|
f259a451bb | ||
|
40bd4c8b72 | ||
|
276d48ed4f | ||
|
af99569432 | ||
|
a21d1680d2 | ||
|
47f70a4cfd | ||
|
e8f29d9fb6 | ||
|
119d0e60e8 | ||
|
db1b73a3f4 | ||
|
b6cf2d7284 | ||
|
37b2791837 | ||
|
f249c52af6 | ||
|
294f926bfc | ||
|
68996e527e | ||
|
d17257c346 | ||
|
c5c2f7f7d0 | ||
|
811f1573de | ||
|
ec00fc85e0 | ||
|
c485312d38 | ||
|
269e958532 | ||
|
9d1d8813fe | ||
|
4b4584bcd4 | ||
|
dcc80f4709 | ||
|
9eedf29021 | ||
|
8d1eee0e01 | ||
|
1f0b6c8123 | ||
|
f872af464e | ||
|
9a7f2c08f6 | ||
|
accf8f8625 | ||
|
c3370201ba | ||
|
05fec8c642 | ||
|
3479f95090 | ||
|
b39b3da5af | ||
|
575468931f | ||
|
5f052ec8dc | ||
|
e030f0ca09 | ||
|
8e8fac17ff | ||
|
c9541e0795 | ||
|
f3c2c497d8 | ||
|
805b084607 | ||
|
74ec6f4e9a | ||
|
7705017f63 | ||
|
c99386e155 | ||
|
685449bfe3 | ||
|
be5a40f6a9 | ||
|
aca6e64669 | ||
|
9a5de3fc1e |
2
CONTRIBUTING.md → .github/CONTRIBUTING.md
vendored
2
CONTRIBUTING.md → .github/CONTRIBUTING.md
vendored
@@ -2,5 +2,5 @@
|
||||
|
||||
1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register)
|
||||
2. [Create a ticket (unless there already is one)](http://tracker.phpbb.com/secure/CreateIssue!default.jspa)
|
||||
3. Read our [Coding guidelines](https://wiki.phpbb.com/Coding_guidelines) and [Git Contribution Guidelines](http://wiki.phpbb.com/Git); if you're new to git, also read [the introduction guide](http://wiki.phpbb.com/display/DEV/Working+with+Git)
|
||||
3. Read our [Coding guidelines](https://wiki.phpbb.com/Coding_guidelines) and [Git Contribution Guidelines](http://wiki.phpbb.com/Git)
|
||||
4. Send us a pull request
|
10
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
10
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
Checklist:
|
||||
|
||||
- [ ] Correct branch: master for new features; 3.2.x, 3.1.x for fixes
|
||||
- [ ] Tests pass
|
||||
- [ ] Code follows coding guidelines: [master / 3.2.x](https://area51.phpbb.com/docs/master/coding-guidelines.html), [3.1.x](https://area51.phpbb.com/docs/31x/coding-guidelines.html)
|
||||
- [ ] Commit follows commit message [format](https://wiki.phpbb.com/Git#Commit_Messages)
|
||||
|
||||
Tracker ticket (set the ticket ID to **your ticket ID**):
|
||||
|
||||
https://tracker.phpbb.com/browse/PHPBB3-12345
|
12
README.md
12
README.md
@@ -2,34 +2,34 @@
|
||||
|
||||
## ABOUT
|
||||
|
||||
phpBB is a free bulletin board written in PHP.
|
||||
phpBB is a free open-source bulletin board written in PHP.
|
||||
|
||||
## COMMUNITY
|
||||
|
||||
Find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the development on [area51](http://area51.phpbb.com/phpBB/index.php).
|
||||
Get your copy of phpBB, find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the development on [area51](http://area51.phpbb.com/phpBB/index.php).
|
||||
|
||||
## INSTALLING DEPENDENCIES
|
||||
|
||||
To be able to run an installation from the repo (and not from a pre-built package) you need to run the following commands to install phpBB's dependencies.
|
||||
|
||||
cd phpBB
|
||||
php ../composer.phar install --dev
|
||||
php ../composer.phar install
|
||||
|
||||
|
||||
## CONTRIBUTE
|
||||
|
||||
1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register)
|
||||
2. [Create a ticket (unless there already is one)](http://tracker.phpbb.com/secure/CreateIssue!default.jspa)
|
||||
3. [Read our Git Contribution Guidelines](http://wiki.phpbb.com/Git); if you're new to git, also read [the introduction guide](http://wiki.phpbb.com/display/DEV/Working+with+Git)
|
||||
3. Read our [Coding guidelines](https://wiki.phpbb.com/Coding_guidelines) and [Git Contribution Guidelines](http://wiki.phpbb.com/Git)
|
||||
4. Send us a pull request
|
||||
|
||||
## AUTOMATED TESTING
|
||||
|
||||
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](http://bamboo.phpbb.com) or check our travis build below:
|
||||
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](http://bamboo.phpbb.com) or check our travis builds below:
|
||||
|
||||
* [](http://travis-ci.org/phpbb/phpbb) **master** - Latest development version
|
||||
* [](http://travis-ci.org/phpbb/phpbb) **3.2.x** - Development of version 3.2.x
|
||||
* [](http://travis-ci.org/phpbb/phpbb) **3.1.x** - Development of version 3.1.x
|
||||
* [](http://travis-ci.org/phpbb/phpbb) **3.0.x** - Development of version 3.0.x
|
||||
|
||||
## LICENSE
|
||||
|
||||
|
@@ -2,9 +2,9 @@
|
||||
|
||||
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
||||
<!-- a few settings for the build -->
|
||||
<property name="newversion" value="3.2.0-b2" />
|
||||
<property name="prevversion" value="3.2.0-b1" />
|
||||
<property name="olderversions" value="3.0.14, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1, 3.1.8, 3.2.0-a1, 3.2.0-a2" />
|
||||
<property name="newversion" value="3.2.0-RC1" />
|
||||
<property name="prevversion" value="3.2.0-b2" />
|
||||
<property name="olderversions" value="3.0.14, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1, 3.1.8, 3.1.9, 3.2.0-a1, 3.2.0-a2, 3.2.0-b1" />
|
||||
<!-- no configuration should be needed beyond this point -->
|
||||
|
||||
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
||||
@@ -443,6 +443,13 @@
|
||||
<delete file="${dir}/vendor/symfony/http-kernel/README.md" />
|
||||
<delete file="${dir}/vendor/symfony/http-kernel/phpunit.xml.dist" />
|
||||
|
||||
<delete dir="${dir}/vendor/symfony/proxy-manager-bridge/.git" />
|
||||
<delete dir="${dir}/vendor/symfony/proxy-manager-bridge/Tests" />
|
||||
<delete file="${dir}/vendor/symfony/proxy-manager-bridge/.gitignore" />
|
||||
<delete file="${dir}/vendor/symfony/proxy-manager-bridge/CHANGELOG.md" />
|
||||
<delete file="${dir}/vendor/symfony/proxy-manager-bridge/README.md" />
|
||||
<delete file="${dir}/vendor/symfony/proxy-manager-bridge/phpunit.xml.dist" />
|
||||
|
||||
<delete dir="${dir}/vendor/symfony/routing/.git" />
|
||||
<delete dir="${dir}/vendor/symfony/routing/Tests" />
|
||||
<delete file="${dir}/vendor/symfony/routing/.gitignore" />
|
||||
@@ -473,6 +480,15 @@
|
||||
<delete file="${dir}/vendor/twig/twig/CHANGELOG" />
|
||||
<delete file="${dir}/vendor/twig/twig/phpunit.xml.dist" />
|
||||
<delete file="${dir}/vendor/twig/twig/README.rst" />
|
||||
|
||||
<delete file="${dir}/vendor/zendframework/zend-code/CONTRIBUTING.md" />
|
||||
<delete file="${dir}/vendor/zendframework/zend-code/README.md" />
|
||||
|
||||
<delete file="${dir}/vendor/zendframework/zend-eventmanager/CONTRIBUTING.md" />
|
||||
<delete file="${dir}/vendor/zendframework/zend-eventmanager/README.md" />
|
||||
|
||||
<delete file="${dir}/vendor/zendframework/zend-stdlib/CONTRIBUTING.md" />
|
||||
<delete file="${dir}/vendor/zendframework/zend-stdlib/README.md" />
|
||||
</target>
|
||||
|
||||
<target name="clean-diff-dir">
|
||||
|
@@ -134,53 +134,19 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
||||
}
|
||||
}
|
||||
|
||||
$old_docblock = $stackPtr;
|
||||
while (($docblock = $phpcsFile->findNext(T_DOC_COMMENT_CLOSE_TAG, ($old_docblock + 1))) !== false)
|
||||
{
|
||||
$old_docblock = $docblock;
|
||||
$ok = $this->checkDocblock($phpcsFile, $docblock, $tokens, $class_name_full, $class_name_short) ? true : $ok;
|
||||
}
|
||||
|
||||
// Checks in type hinting
|
||||
$old_function_declaration = $stackPtr;
|
||||
while (($function_declaration = $phpcsFile->findNext(T_FUNCTION, ($old_function_declaration + 1))) !== false)
|
||||
{
|
||||
$old_function_declaration = $function_declaration;
|
||||
|
||||
// Check docblocks
|
||||
$find = array(
|
||||
T_COMMENT,
|
||||
T_DOC_COMMENT_CLOSE_TAG,
|
||||
T_DOC_COMMENT,
|
||||
T_CLASS,
|
||||
T_FUNCTION,
|
||||
T_OPEN_TAG,
|
||||
);
|
||||
|
||||
$comment_end = $phpcsFile->findPrevious($find, ($function_declaration - 1));
|
||||
if ($comment_end !== false)
|
||||
{
|
||||
if ($tokens[$comment_end]['code'] === T_DOC_COMMENT_CLOSE_TAG)
|
||||
{
|
||||
$comment_start = $tokens[$comment_end]['comment_opener'];
|
||||
foreach ($tokens[$comment_start]['comment_tags'] as $tag) {
|
||||
if ($tokens[$tag]['content'] !== '@param' && $tokens[$tag]['content'] !== '@return' && $tokens[$tag]['content'] !== '@throws') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$classes = $tokens[($tag + 2)]['content'];
|
||||
$space = strpos($classes, ' ');
|
||||
if ($space !== false) {
|
||||
$classes = substr($classes, 0, $space);
|
||||
}
|
||||
|
||||
$tab = strpos($classes, "\t");
|
||||
if ($tab !== false) {
|
||||
$classes = substr($classes, 0, $tab);
|
||||
}
|
||||
|
||||
$classes = explode('|', str_replace('[]', '', $classes));
|
||||
foreach ($classes as $class)
|
||||
{
|
||||
$ok = $this->check($phpcsFile, $class, $class_name_full, $class_name_short, $tokens[$tag + 2]['line']) ? true : $ok;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check type hint
|
||||
$params = $phpcsFile->getMethodParameters($function_declaration);
|
||||
foreach ($params as $param)
|
||||
@@ -239,4 +205,49 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PHP_CodeSniffer_File $phpcsFile
|
||||
* @param int $field
|
||||
* @param array $tokens
|
||||
* @param string $class_name_full
|
||||
* @param string $class_name_short
|
||||
* @param bool $ok
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function checkDocblock(PHP_CodeSniffer_File $phpcsFile, $comment_end, $tokens, $class_name_full, $class_name_short)
|
||||
{
|
||||
$ok = false;
|
||||
|
||||
$comment_start = $tokens[$comment_end]['comment_opener'];
|
||||
foreach ($tokens[$comment_start]['comment_tags'] as $tag)
|
||||
{
|
||||
if (!in_array($tokens[$tag]['content'], array('@param', '@var', '@return', '@throws'), true))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$classes = $tokens[($tag + 2)]['content'];
|
||||
$space = strpos($classes, ' ');
|
||||
if ($space !== false)
|
||||
{
|
||||
$classes = substr($classes, 0, $space);
|
||||
}
|
||||
|
||||
$tab = strpos($classes, "\t");
|
||||
if ($tab !== false)
|
||||
{
|
||||
$classes = substr($classes, 0, $tab);
|
||||
}
|
||||
|
||||
$classes = explode('|', str_replace('[]', '', $classes));
|
||||
foreach ($classes as $class)
|
||||
{
|
||||
$ok = $this->check($phpcsFile, $class, $class_name_full, $class_name_short, $tokens[$tag + 2]['line']) ? true : $ok;
|
||||
}
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
}
|
||||
|
BIN
composer.phar
BIN
composer.phar
Binary file not shown.
@@ -196,7 +196,7 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="extgroup_filesize">{L_MAX_EXTGROUP_FILESIZE}{L_COLON}</label></dt>
|
||||
<dd><input type="number" id="extgroup_filesize" size="3" maxlength="15" name="max_filesize" value="{EXTGROUP_FILESIZE}" /> <select name="size_select">{S_EXT_GROUP_SIZE_OPTIONS}</select></dd>
|
||||
<dd><input type="number" id="extgroup_filesize" min="0" max="999999999999999" step="any" name="max_filesize" value="{EXTGROUP_FILESIZE}" /> <select name="size_select">{S_EXT_GROUP_SIZE_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="assigned_extensions">{L_ASSIGNED_EXTENSIONS}{L_COLON}</label></dt>
|
||||
@@ -346,7 +346,7 @@
|
||||
<td><a href="{orphan.U_FILE}">{orphan.REAL_FILENAME}</a></td>
|
||||
<td>{orphan.FILETIME}</td>
|
||||
<td>{orphan.FILESIZE}</td>
|
||||
<td><strong>{L_ATTACH_ID}{L_COLON} </strong><input type="number" name="post_id[{orphan.ATTACH_ID}]" maxlength="10" value="{orphan.POST_ID}" style="width: 75%;" /></td>
|
||||
<td><strong>{L_ATTACH_ID}{L_COLON} </strong><input type="number" min="0" max="9999999999" name="post_id[{orphan.ATTACH_ID}]" value="{orphan.POST_ID}" style="width: 75%;" /></td>
|
||||
<td><input type="checkbox" class="radio" name="add[{orphan.ATTACH_ID}]" /></td>
|
||||
<td><input type="checkbox" class="radio" name="delete[{orphan.ATTACH_ID}]" /></td>
|
||||
</tr>
|
||||
|
@@ -5,7 +5,7 @@
|
||||
<dl>
|
||||
<dt><label for="avatar_gravatar_width">{L_GRAVATAR_AVATAR_SIZE}{L_COLON}</label><br /><span>{L_GRAVATAR_AVATAR_SIZE_EXPLAIN}</span></dt>
|
||||
<dd>
|
||||
<input type="number" name="avatar_gravatar_width" id="avatar_gravatar_width" size="3" value="{AVATAR_GRAVATAR_WIDTH}" class="inputbox autowidth" /> {L_PIXEL} ×
|
||||
<input type="number" name="avatar_gravatar_height" id="avatar_gravatar_height" size="3" value="{AVATAR_GRAVATAR_HEIGHT}" class="inputbox autowidth" /> {L_PIXEL}
|
||||
<input type="number" name="avatar_gravatar_width" id="avatar_gravatar_width" min="{AVATAR_MIN_WIDTH}" max="{AVATAR_MAX_WIDTH}" value="{AVATAR_GRAVATAR_WIDTH}" class="inputbox autowidth" /> {L_PIXEL} ×
|
||||
<input type="number" name="avatar_gravatar_height" id="avatar_gravatar_height" min="{AVATAR_MIN_HEIGHT}" max="{AVATAR_MAX_HEIGHT}" value="{AVATAR_GRAVATAR_HEIGHT}" class="inputbox autowidth" /> {L_PIXEL}
|
||||
</dd>
|
||||
</dl>
|
||||
|
@@ -5,7 +5,7 @@
|
||||
<dl>
|
||||
<dt><label for="avatar_remote_width">{L_LINK_REMOTE_SIZE}{L_COLON}</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></dt>
|
||||
<dd>
|
||||
<input type="number" name="avatar_remote_width" id="avatar_remote_width" size="3" value="{AVATAR_REMOTE_WIDTH}" class="inputbox autowidth" /> {L_PIXEL} ×
|
||||
<input type="number" name="avatar_remote_height" id="avatar_remote_height" size="3" value="{AVATAR_REMOTE_HEIGHT}" class="inputbox autowidth" /> {L_PIXEL}
|
||||
<input type="number" name="avatar_remote_width" id="avatar_remote_width" min="{AVATAR_MIN_WIDTH}" max="{AVATAR_MAX_WIDTH}" value="{AVATAR_REMOTE_WIDTH}" class="inputbox autowidth" /> {L_PIXEL} ×
|
||||
<input type="number" name="avatar_remote_height" id="avatar_remote_height" min="{AVATAR_MIN_HEIGHT}" max="{AVATAR_MAX_HEIGHT}" value="{AVATAR_REMOTE_HEIGHT}" class="inputbox autowidth" /> {L_PIXEL}
|
||||
</dd>
|
||||
</dl>
|
||||
|
@@ -27,11 +27,11 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="max_reg_attempts">{L_REG_LIMIT}{L_COLON}</label><br /><span>{L_REG_LIMIT_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_reg_attempts" type="number" size="4" maxlength="4" min="0" max="9999" name="max_reg_attempts" value="{REG_LIMIT}" /></dd>
|
||||
<dd><input id="max_reg_attempts" type="number" min="0" max="9999" name="max_reg_attempts" value="{REG_LIMIT}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="max_login_attempts">{L_MAX_LOGIN_ATTEMPTS}{L_COLON}</label><br /><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_login_attempts" type="number" size="4" maxlength="4" min="0" max="9999" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></dd>
|
||||
<dd><input id="max_login_attempts" type="number" min="0" max="9999" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="enable_post_confirm">{L_VISUAL_CONFIRM_POST}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_POST_EXPLAIN}</span></dt>
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<legend>{L_RESTORE_OPTIONS}</legend>
|
||||
<dl>
|
||||
<dt><label for="file">{L_SELECT_FILE}{L_COLON}</label></dt>
|
||||
<dd><select id="file" name="file" size="10"><!-- BEGIN files --><option value="{files.FILE}"<!-- IF files.S_LAST_ROW --> selected="selected"<!-- ENDIF -->>{files.NAME}</option><!-- END files --></select></dd>
|
||||
<dd><select id="file" name="file" size="10"><!-- BEGIN files --><option value="{files.FILE}"<!-- IF files.S_FIRST_ROW --> selected="selected"<!-- ENDIF -->>{files.NAME}</option><!-- END files --></select></dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
|
@@ -242,7 +242,7 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="topics_per_page">{L_FORUM_TOPICS_PAGE}{L_COLON}</label><br /><span>{L_FORUM_TOPICS_PAGE_EXPLAIN}</span></dt>
|
||||
<dd><input type="number" id="topics_per_page" name="topics_per_page" value="{TOPICS_PER_PAGE}" size="4" maxlength="4" min="0" max="9999" /></dd>
|
||||
<dd><input type="number" id="topics_per_page" name="topics_per_page" value="{TOPICS_PER_PAGE}" min="0" max="9999" /></dd>
|
||||
</dl>
|
||||
<!-- EVENT acp_forums_normal_settings_append -->
|
||||
</fieldset>
|
||||
@@ -257,15 +257,15 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_freq">{L_AUTO_PRUNE_FREQ}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_FREQ_EXPLAIN}</span></dt>
|
||||
<dd><input type="number" id="prune_freq" name="prune_freq" value="{PRUNE_FREQ}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
|
||||
<dd><input type="number" id="prune_freq" name="prune_freq" value="{PRUNE_FREQ}" min="0" max="9999" /> {L_DAYS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_days">{L_AUTO_PRUNE_DAYS}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_DAYS_EXPLAIN}</span></dt>
|
||||
<dd><input type="number" id="prune_days" name="prune_days" value="{PRUNE_DAYS}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
|
||||
<dd><input type="number" id="prune_days" name="prune_days" value="{PRUNE_DAYS}" min="0" max="9999" /> {L_DAYS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_viewed">{L_AUTO_PRUNE_VIEWED}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_VIEWED_EXPLAIN}</span></dt>
|
||||
<dd><input type="number" id="prune_viewed" name="prune_viewed" value="{PRUNE_VIEWED}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
|
||||
<dd><input type="number" id="prune_viewed" name="prune_viewed" value="{PRUNE_VIEWED}" min="0" max="9999" /> {L_DAYS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_old_polls">{L_PRUNE_OLD_POLLS}{L_COLON}</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
|
||||
@@ -289,11 +289,11 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_shadow_freq">{L_AUTO_PRUNE_SHADOW_FREQ}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_SHADOW_FREQ_EXPLAIN}</span></dt>
|
||||
<dd><input type="number" id="prune_shadow_freq" name="prune_shadow_freq" value="{PRUNE_SHADOW_FREQ}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
|
||||
<dd><input type="number" id="prune_shadow_freq" name="prune_shadow_freq" value="{PRUNE_SHADOW_FREQ}" min="0" max="9999" /> {L_DAYS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_shadow_days">{L_AUTO_PRUNE_SHADOW_DAYS}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_SHADOW_DAYS_EXPLAIN}</span></dt>
|
||||
<dd><input type="number" id="prune_shadow_days" name="prune_shadow_days" value="{PRUNE_SHADOW_DAYS}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
|
||||
<dd><input type="number" id="prune_shadow_days" name="prune_shadow_days" value="{PRUNE_SHADOW_DAYS}" min="0" max="9999" /> {L_DAYS}</dd>
|
||||
</dl>
|
||||
<!-- EVENT acp_forums_prune_settings_append -->
|
||||
</fieldset>
|
||||
|
@@ -86,11 +86,11 @@
|
||||
<legend>{L_GROUP_SETTINGS_SAVE}</legend>
|
||||
<dl>
|
||||
<dt><label for="group_message_limit">{L_GROUP_MESSAGE_LIMIT}{L_COLON}</label><br /><span>{L_GROUP_MESSAGE_LIMIT_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_message_limit" type="number" id="group_message_limit" maxlength="4" size="4" min="0" max="9999" value="{GROUP_MESSAGE_LIMIT}" /></dd>
|
||||
<dd><input name="group_message_limit" type="number" id="group_message_limit" min="0" max="9999" value="{GROUP_MESSAGE_LIMIT}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_max_recipients">{L_GROUP_MAX_RECIPIENTS}{L_COLON}</label><br /><span>{L_GROUP_MAX_RECIPIENTS_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_max_recipients" type="number" id="group_max_recipients" maxlength="10" size="4" value="{GROUP_MAX_RECIPIENTS}" /></dd>
|
||||
<dd><input name="group_max_recipients" type="number" id="group_max_recipients" min="0" max="9999" value="{GROUP_MAX_RECIPIENTS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_colour">{L_GROUP_COLOR}{L_COLON}</label><br /><span>{L_GROUP_COLOR_EXPLAIN}</span></dt>
|
||||
|
@@ -111,8 +111,8 @@
|
||||
<td><input class="text post" type="text" name="code[{items.IMG}]" value="{items.CODE}" size="10" maxlength="50" /></td>
|
||||
<td><input class="text post" type="text" name="emotion[{items.IMG}]" value="{items.EMOTION}" size="10" maxlength="50" /></td>
|
||||
<!-- ENDIF -->
|
||||
<td><input class="text post" type="number" size="3" name="width[{items.IMG}]" value="{items.WIDTH}" /></td>
|
||||
<td><input class="text post" type="number" size="3" name="height[{items.IMG}]" value="{items.HEIGHT}" /></td>
|
||||
<td><input class="text post" type="number" min="0" max="999" name="width[{items.IMG}]" value="{items.WIDTH}" /></td>
|
||||
<td><input class="text post" type="number" min="0" max="999" name="height[{items.IMG}]" value="{items.HEIGHT}" /></td>
|
||||
<!-- IF not S_SMILIES -->
|
||||
<td><input class="text post" type="text" name="alt[{items.IMG}]" value="{items.ALT}" size="10" maxlength="50" /></td>
|
||||
<!-- ENDIF -->
|
||||
@@ -142,8 +142,8 @@
|
||||
<td style="vertical-align: top;"><img src="{IMG_SRC}" id="add_image_src" alt="" title="" /></td>
|
||||
<td><input class="text post" type="text" name="add_code" id="add_code" value="{CODE}" size="10" maxlength="50" /></td>
|
||||
<td><input class="text post" type="text" name="add_emotion" id="add_emotion" value="{EMOTION}" size="10" maxlength="50" /></td>
|
||||
<td><input class="text post" type="number" size="3" name="add_width" id="add_width" value="{WIDTH}" /></td>
|
||||
<td><input class="text post" type="number" size="3" name="add_height" id="add_height" value="{HEIGHT}" /></td>
|
||||
<td><input class="text post" type="number" min="0" max="999" name="add_width" id="add_width" value="{WIDTH}" /></td>
|
||||
<td><input class="text post" type="number" min="0" max="999" name="add_height" id="add_height" value="{HEIGHT}" /></td>
|
||||
<td><input type="checkbox" class="radio" name="add_display_on_posting" checked="checked" onclick="toggle_select('add', this.checked, 'add_order');"/></td>
|
||||
<td><select id="order_add_order" name="add_order">
|
||||
<optgroup id="order_disp_add_order" label="{L_DISPLAY_POSTING}">{S_ADD_ORDER_LIST_DISPLAY}</optgroup>
|
||||
|
@@ -52,7 +52,7 @@
|
||||
</table>
|
||||
|
||||
<fieldset class="display-options">
|
||||
{L_DISPLAY_LOG}{L_COLON} {S_LIMIT_DAYS} {L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}<!-- IF .pagination --> {L_USERS_PER_PAGE}{L_COLON} <input class="inputbox autowidth" type="number" name="users_per_page" id="users_per_page" size="3" value="{USERS_PER_PAGE}" /><!-- ENDIF -->
|
||||
{L_DISPLAY_LOG}{L_COLON} {S_LIMIT_DAYS} {L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}<!-- IF .pagination --> {L_USERS_PER_PAGE}{L_COLON} <input class="inputbox autowidth" type="number" name="users_per_page" id="users_per_page" min="0" max="999" value="{USERS_PER_PAGE}" /><!-- ENDIF -->
|
||||
<input class="button2" type="submit" value="{L_GO}" name="sort" />
|
||||
</fieldset>
|
||||
|
||||
|
@@ -31,7 +31,7 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="jab_port">{L_JAB_PORT}{L_COLON}</label><br /><span>{L_JAB_PORT_EXPLAIN}</span></dt>
|
||||
<dd><input type="number" id="jab_port" name="jab_port" value="{JAB_PORT}" maxlength="5" size="5" /></dd>
|
||||
<dd><input type="number" id="jab_port" name="jab_port" value="{JAB_PORT}" min="0" max="99999" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="jab_username">{L_JAB_USERNAME}{L_COLON}</label><br /><span>{L_JAB_USERNAME_EXPLAIN}</span></dt>
|
||||
@@ -50,7 +50,7 @@
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="jab_package_size">{L_JAB_PACKAGE_SIZE}{L_COLON}</label><br /><span>{L_JAB_PACKAGE_SIZE_EXPLAIN}</span></dt>
|
||||
<dd><input type="number" id="jab_package_size" name="jab_package_size" value="{JAB_PACKAGE_SIZE}" maxlength="5" size="5" min="0" max="99999" /></dd>
|
||||
<dd><input type="number" id="jab_package_size" name="jab_package_size" value="{JAB_PACKAGE_SIZE}" min="0" max="99999" /></dd>
|
||||
</dl>
|
||||
|
||||
</fieldset>
|
||||
|
@@ -44,7 +44,7 @@
|
||||
<div id="posts"<!-- IF S_SPECIAL_RANK --> style="display: none;"<!-- ENDIF -->>
|
||||
<dl>
|
||||
<dt><label for="min_posts">{L_RANK_MINIMUM}{L_COLON}</label></dt>
|
||||
<dd><input name="min_posts" type="number" id="min_posts" maxlength="10" value="{MIN_POSTS}" /></dd>
|
||||
<dd><input name="min_posts" type="number" id="min_posts" min="0" max="9999999999" value="{MIN_POSTS}" /></dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
|
@@ -18,11 +18,11 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="search_interval">{L_SEARCH_INTERVAL}{L_COLON}</label><br /><span>{L_SEARCH_INTERVAL_EXPLAIN}</span></dt>
|
||||
<dd><input id="search_interval" type="number" size="4" maxlength="4" min="0" max="9999" name="config[search_interval]" value="{SEARCH_INTERVAL}" /> {L_SECONDS}</dd>
|
||||
<dd><input id="search_interval" type="number" min="0" max="9999" name="config[search_interval]" value="{SEARCH_INTERVAL}" /> {L_SECONDS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="search_anonymous_interval">{L_SEARCH_GUEST_INTERVAL}{L_COLON}</label><br /><span>{L_SEARCH_GUEST_INTERVAL_EXPLAIN}</span></dt>
|
||||
<dd><input id="search_anonymous_interval" type="number" size="4" maxlength="4" min="0" max="9999" name="config[search_anonymous_interval]" value="{SEARCH_GUEST_INTERVAL}" /> {L_SECONDS}</dd>
|
||||
<dd><input id="search_anonymous_interval" type="number" min="0" max="9999" name="config[search_anonymous_interval]" value="{SEARCH_GUEST_INTERVAL}" /> {L_SECONDS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="limit_search_load">{L_LIMIT_SEARCH_LOAD}{L_COLON}</label><br /><span>{L_LIMIT_SEARCH_LOAD_EXPLAIN}</span></dt>
|
||||
@@ -30,15 +30,15 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="min_search_author_chars">{L_MIN_SEARCH_AUTHOR_CHARS}{L_COLON}</label><br /><span>{L_MIN_SEARCH_AUTHOR_CHARS_EXPLAIN}</span></dt>
|
||||
<dd><input id="min_search_author_chars" type="number" size="4" maxlength="4" min="0" max="9999" name="config[min_search_author_chars]" value="{MIN_SEARCH_AUTHOR_CHARS}" /></dd>
|
||||
<dd><input id="min_search_author_chars" type="number" min="0" max="9999" name="config[min_search_author_chars]" value="{MIN_SEARCH_AUTHOR_CHARS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="max_num_search_keywords">{L_MAX_NUM_SEARCH_KEYWORDS}{L_COLON}</label><br /><span>{L_MAX_NUM_SEARCH_KEYWORDS_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_num_search_keywords" type="number" size="4" maxlength="4" min="0" max="9999" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
|
||||
<dd><input id="max_num_search_keywords" type="number" min="0" max="9999" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}{L_COLON}</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
|
||||
<dd><input id="search_store_results" type="number" size="4" maxlength="6" min="0" max="999999" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
|
||||
<dd><input id="search_store_results" type="number" min="0" max="999999" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
@@ -2,6 +2,7 @@
|
||||
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<!-- IF META -->{META}<!-- ENDIF -->
|
||||
<title>{PAGE_TITLE}</title>
|
||||
|
@@ -2,6 +2,7 @@
|
||||
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<!-- IF META -->{META}<!-- ENDIF -->
|
||||
<title>{PAGE_TITLE}</title>
|
||||
|
@@ -2,6 +2,7 @@
|
||||
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<!-- IF META -->{META}<!-- ENDIF -->
|
||||
<title>{PAGE_TITLE}</title>
|
||||
|
@@ -1541,6 +1541,13 @@ phpbb.toggleSelectSettings = function(el) {
|
||||
var $this = $(this),
|
||||
$setting = $($this.data('toggle-setting'));
|
||||
$setting.toggle($this.is(':selected'));
|
||||
|
||||
// Disable any input elements that are not visible right now
|
||||
if ($this.is(':selected')) {
|
||||
$($this.data('toggle-setting') + ' input').prop('disabled', false);
|
||||
} else {
|
||||
$($this.data('toggle-setting') + ' input').prop('disabled', true);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
@@ -414,6 +414,12 @@ function getCaretPosition(txtarea) {
|
||||
if ($('#attach-panel').length) {
|
||||
phpbb.showDragNDrop(textarea);
|
||||
}
|
||||
|
||||
$('textarea').on('keydown', function (e) {
|
||||
if (e.which === 13 && (e.metaKey || e.ctrlKey)) {
|
||||
$(this).closest('form').submit();
|
||||
}
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
|
@@ -68,6 +68,8 @@ $phpbb_container = $phpbb_container_builder->get_container();
|
||||
$phpbb_container->get('request')->enable_super_globals();
|
||||
require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx);
|
||||
|
||||
register_compatibility_globals();
|
||||
|
||||
/* @var $user \phpbb\user */
|
||||
$user = $phpbb_container->get('user');
|
||||
$user->data['user_id'] = ANONYMOUS;
|
||||
|
@@ -43,7 +43,13 @@ if (!defined('PHPBB_INSTALLED'))
|
||||
// available as used by the redirect function
|
||||
$server_name = (!empty($_SERVER['HTTP_HOST'])) ? strtolower($_SERVER['HTTP_HOST']) : ((!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv('SERVER_NAME'));
|
||||
$server_port = (!empty($_SERVER['SERVER_PORT'])) ? (int) $_SERVER['SERVER_PORT'] : (int) getenv('SERVER_PORT');
|
||||
$secure = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 1 : 0;
|
||||
$secure = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 1 : 0;
|
||||
|
||||
if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
|
||||
{
|
||||
$secure = 1;
|
||||
$server_port = 443;
|
||||
}
|
||||
|
||||
$script_name = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
|
||||
if (!$script_name)
|
||||
@@ -128,6 +134,8 @@ $phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver'));
|
||||
|
||||
require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx);
|
||||
|
||||
register_compatibility_globals();
|
||||
|
||||
// Add own hook handler
|
||||
require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
|
||||
$phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('template', 'display')));
|
||||
|
@@ -43,6 +43,7 @@
|
||||
"symfony/finder": "2.8.*",
|
||||
"symfony/http-foundation": "2.8.*",
|
||||
"symfony/http-kernel": "2.8.*",
|
||||
"symfony/proxy-manager-bridge": "2.8.*",
|
||||
"symfony/routing": "2.8.*",
|
||||
"symfony/twig-bridge": "2.8.*",
|
||||
"symfony/yaml": "2.8.*",
|
||||
@@ -64,5 +65,10 @@
|
||||
"branch-alias": {
|
||||
"dev-master": "3.2.x-dev"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "5.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
562
phpBB/composer.lock
generated
562
phpBB/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -161,7 +161,7 @@ services:
|
||||
|
||||
version_helper:
|
||||
class: phpbb\version_helper
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@cache'
|
||||
- '@config'
|
||||
|
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
attachment.delete:
|
||||
class: phpbb\attachment\delete
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@config'
|
||||
- '@dbal.conn'
|
||||
@@ -12,7 +12,7 @@ services:
|
||||
|
||||
attachment.manager:
|
||||
class: phpbb\attachment\manager
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@attachment.delete'
|
||||
- '@attachment.resync'
|
||||
@@ -20,13 +20,13 @@ services:
|
||||
|
||||
attachment.resync:
|
||||
class: phpbb\attachment\resync
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@dbal.conn'
|
||||
|
||||
attachment.upload:
|
||||
class: phpbb\attachment\upload
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@auth'
|
||||
- '@cache'
|
||||
|
@@ -6,7 +6,7 @@ services:
|
||||
- '@captcha.plugins.service_collection'
|
||||
|
||||
# ----- Captcha plugins -----
|
||||
# Scope MUST be prototype for all the plugins to work.
|
||||
# Service MUST NOT be shared for all the plugins to work.
|
||||
captcha.plugins.service_collection:
|
||||
class: phpbb\di\service_collection
|
||||
arguments:
|
||||
@@ -16,7 +16,7 @@ services:
|
||||
|
||||
core.captcha.plugins.gd:
|
||||
class: phpbb\captcha\plugins\gd
|
||||
scope: prototype
|
||||
shared: false
|
||||
calls:
|
||||
- [set_name, [core.captcha.plugins.gd]]
|
||||
tags:
|
||||
@@ -24,7 +24,7 @@ services:
|
||||
|
||||
core.captcha.plugins.gd_wave:
|
||||
class: phpbb\captcha\plugins\gd_wave
|
||||
scope: prototype
|
||||
shared: false
|
||||
calls:
|
||||
- [set_name, [core.captcha.plugins.gd_wave]]
|
||||
tags:
|
||||
@@ -32,7 +32,7 @@ services:
|
||||
|
||||
core.captcha.plugins.nogd:
|
||||
class: phpbb\captcha\plugins\nogd
|
||||
scope: prototype
|
||||
shared: false
|
||||
calls:
|
||||
- [set_name, [core.captcha.plugins.nogd]]
|
||||
tags:
|
||||
@@ -40,7 +40,7 @@ services:
|
||||
|
||||
core.captcha.plugins.qa:
|
||||
class: phpbb\captcha\plugins\qa
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '%tables.captcha_qa_questions%'
|
||||
- '%tables.captcha_qa_answers%'
|
||||
@@ -52,7 +52,7 @@ services:
|
||||
|
||||
core.captcha.plugins.recaptcha:
|
||||
class: phpbb\captcha\plugins\recaptcha
|
||||
scope: prototype
|
||||
shared: false
|
||||
calls:
|
||||
- [set_name, [core.captcha.plugins.recaptcha]]
|
||||
tags:
|
||||
|
@@ -219,3 +219,53 @@ services:
|
||||
- '@user'
|
||||
tags:
|
||||
- { name: console.command }
|
||||
|
||||
console.command.user.activate:
|
||||
class: phpbb\console\command\user\activate
|
||||
arguments:
|
||||
- '@user'
|
||||
- '@dbal.conn'
|
||||
- '@config'
|
||||
- '@language'
|
||||
- '@log'
|
||||
- '@notification_manager'
|
||||
- '@user_loader'
|
||||
- '%core.root_path%'
|
||||
- '%core.php_ext%'
|
||||
tags:
|
||||
- { name: console.command }
|
||||
|
||||
console.command.user.add:
|
||||
class: phpbb\console\command\user\add
|
||||
arguments:
|
||||
- '@user'
|
||||
- '@dbal.conn'
|
||||
- '@config'
|
||||
- '@language'
|
||||
- '@passwords.manager'
|
||||
- '%core.root_path%'
|
||||
- '%core.php_ext%'
|
||||
tags:
|
||||
- { name: console.command }
|
||||
|
||||
console.command.user.delete:
|
||||
class: phpbb\console\command\user\delete
|
||||
arguments:
|
||||
- '@user'
|
||||
- '@dbal.conn'
|
||||
- '@language'
|
||||
- '@log'
|
||||
- '@user_loader'
|
||||
- '%core.root_path%'
|
||||
- '%core.php_ext%'
|
||||
tags:
|
||||
- { name: console.command }
|
||||
|
||||
console.command.user.reclean:
|
||||
class: phpbb\console\command\user\reclean
|
||||
arguments:
|
||||
- '@user'
|
||||
- '@dbal.conn'
|
||||
- '@language'
|
||||
tags:
|
||||
- { name: console.command }
|
||||
|
@@ -75,6 +75,7 @@ services:
|
||||
- '%core.root_path%'
|
||||
- '%core.php_ext%'
|
||||
- '@config'
|
||||
- '%core.cache_dir%'
|
||||
calls:
|
||||
- [set_name, [cron.task.core.queue]]
|
||||
tags:
|
||||
|
@@ -31,10 +31,10 @@ services:
|
||||
factory: ['@dbal.extractor.factory', get]
|
||||
|
||||
# ----- DB Extractors for different drivers -----
|
||||
# Scope MUST be prototype for all the handlers to work correctly.
|
||||
# Service MUST NOT be shared for all the handlers to work correctly.
|
||||
dbal.extractor.extractors.mssql_extractor:
|
||||
class: phpbb\db\extractor\mssql_extractor
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '%core.root_path%'
|
||||
- '@request'
|
||||
@@ -42,7 +42,7 @@ services:
|
||||
|
||||
dbal.extractor.extractors.mysql_extractor:
|
||||
class: phpbb\db\extractor\mysql_extractor
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '%core.root_path%'
|
||||
- '@request'
|
||||
@@ -50,7 +50,7 @@ services:
|
||||
|
||||
dbal.extractor.extractors.oracle_extractor:
|
||||
class: phpbb\db\extractor\oracle_extractor
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '%core.root_path%'
|
||||
- '@request'
|
||||
@@ -58,7 +58,7 @@ services:
|
||||
|
||||
dbal.extractor.extractors.postgres_extractor:
|
||||
class: phpbb\db\extractor\postgres_extractor
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '%core.root_path%'
|
||||
- '@request'
|
||||
@@ -66,7 +66,7 @@ services:
|
||||
|
||||
dbal.extractor.extractors.sqlite3_extractor:
|
||||
class: phpbb\db\extractor\sqlite3_extractor
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '%core.root_path%'
|
||||
- '@request'
|
||||
@@ -74,7 +74,7 @@ services:
|
||||
|
||||
dbal.extractor.extractors.sqlite_extractor:
|
||||
class: phpbb\db\extractor\sqlite_extractor
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '%core.root_path%'
|
||||
- '@request'
|
||||
|
@@ -23,7 +23,7 @@ services:
|
||||
|
||||
feed.forum:
|
||||
class: phpbb\feed\forum
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@feed.helper'
|
||||
- '@config'
|
||||
@@ -36,7 +36,7 @@ services:
|
||||
|
||||
feed.forums:
|
||||
class: phpbb\feed\forums
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@feed.helper'
|
||||
- '@config'
|
||||
@@ -49,7 +49,7 @@ services:
|
||||
|
||||
feed.news:
|
||||
class: phpbb\feed\news
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@feed.helper'
|
||||
- '@config'
|
||||
@@ -62,7 +62,7 @@ services:
|
||||
|
||||
feed.overall:
|
||||
class: phpbb\feed\overall
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@feed.helper'
|
||||
- '@config'
|
||||
@@ -75,7 +75,7 @@ services:
|
||||
|
||||
feed.topic:
|
||||
class: phpbb\feed\topic
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@feed.helper'
|
||||
- '@config'
|
||||
@@ -88,7 +88,7 @@ services:
|
||||
|
||||
feed.topics:
|
||||
class: phpbb\feed\topics
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@feed.helper'
|
||||
- '@config'
|
||||
@@ -101,7 +101,7 @@ services:
|
||||
|
||||
feed.topics_active:
|
||||
class: phpbb\feed\topics_active
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@feed.helper'
|
||||
- '@config'
|
||||
|
@@ -6,7 +6,7 @@ services:
|
||||
|
||||
files.filespec:
|
||||
class: phpbb\files\filespec
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@filesystem'
|
||||
- '@language'
|
||||
@@ -18,7 +18,7 @@ services:
|
||||
|
||||
files.upload:
|
||||
class: phpbb\files\upload
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@filesystem'
|
||||
- '@files.factory'
|
||||
@@ -28,7 +28,7 @@ services:
|
||||
|
||||
files.types.form:
|
||||
class: phpbb\files\types\form
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@files.factory'
|
||||
- '@language'
|
||||
@@ -38,7 +38,7 @@ services:
|
||||
|
||||
files.types.local:
|
||||
class: phpbb\files\types\form
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@files.factory'
|
||||
- '@language'
|
||||
@@ -47,7 +47,7 @@ services:
|
||||
|
||||
files.types.remote:
|
||||
class: phpbb\files\types\remote
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@config'
|
||||
- '@files.factory'
|
||||
|
@@ -15,7 +15,7 @@ services:
|
||||
- '%tables.user_notifications%'
|
||||
|
||||
# ----- Notification's types -----
|
||||
# Scope MUST be prototype for all the plugins to work.
|
||||
# Service MUST NOT be shared for all the plugins to work.
|
||||
notification.type_collection:
|
||||
class: phpbb\di\service_collection
|
||||
arguments:
|
||||
@@ -36,7 +36,7 @@ services:
|
||||
|
||||
notification.type.admin_activate_user:
|
||||
class: phpbb\notification\type\admin_activate_user
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.base
|
||||
calls:
|
||||
- [set_user_loader, ['@user_loader']]
|
||||
@@ -46,42 +46,42 @@ services:
|
||||
|
||||
notification.type.approve_post:
|
||||
class: phpbb\notification\type\approve_post
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.post
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.approve_topic:
|
||||
class: phpbb\notification\type\approve_topic
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.topic
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.bookmark:
|
||||
class: phpbb\notification\type\bookmark
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.post
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.disapprove_post:
|
||||
class: phpbb\notification\type\disapprove_post
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.post
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.disapprove_topic:
|
||||
class: phpbb\notification\type\disapprove_topic
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.topic
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.group_request:
|
||||
class: phpbb\notification\type\group_request
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.base
|
||||
calls:
|
||||
- [set_user_loader, ['@user_loader']]
|
||||
@@ -90,14 +90,14 @@ services:
|
||||
|
||||
notification.type.group_request_approved:
|
||||
class: phpbb\notification\type\group_request_approved
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.base
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.pm:
|
||||
class: phpbb\notification\type\pm
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.base
|
||||
calls:
|
||||
- [set_user_loader, ['@user_loader']]
|
||||
@@ -107,7 +107,7 @@ services:
|
||||
|
||||
notification.type.post:
|
||||
class: phpbb\notification\type\post
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.base
|
||||
calls:
|
||||
- [set_user_loader, ['@user_loader']]
|
||||
@@ -117,14 +117,14 @@ services:
|
||||
|
||||
notification.type.post_in_queue:
|
||||
class: phpbb\notification\type\post_in_queue
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.post
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.quote:
|
||||
class: phpbb\notification\type\quote
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.post
|
||||
calls:
|
||||
- [set_utils, ['@text_formatter.utils']]
|
||||
@@ -133,35 +133,35 @@ services:
|
||||
|
||||
notification.type.report_pm:
|
||||
class: phpbb\notification\type\report_pm
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.pm
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.report_pm_closed:
|
||||
class: phpbb\notification\type\report_pm_closed
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.pm
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.report_post:
|
||||
class: phpbb\notification\type\report_post
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.post
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.report_post_closed:
|
||||
class: phpbb\notification\type\report_post_closed
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.post
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.topic:
|
||||
class: phpbb\notification\type\topic
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.base
|
||||
calls:
|
||||
- [set_user_loader, ['@user_loader']]
|
||||
@@ -171,13 +171,13 @@ services:
|
||||
|
||||
notification.type.topic_in_queue:
|
||||
class: phpbb\notification\type\topic_in_queue
|
||||
scope: prototype
|
||||
shared: false
|
||||
parent: notification.type.topic
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
# ----- Notification's methods -----
|
||||
# Scope MUST be prototype for all the plugins to work.
|
||||
# Service MUST NOT be shared for all the plugins to work.
|
||||
notification.method_collection:
|
||||
class: phpbb\di\service_collection
|
||||
arguments:
|
||||
@@ -187,7 +187,7 @@ services:
|
||||
|
||||
notification.method.board:
|
||||
class: phpbb\notification\method\board
|
||||
scope: prototype # scope MUST be prototype for this to work!
|
||||
shared: false
|
||||
arguments:
|
||||
- '@user_loader'
|
||||
- '@dbal.conn'
|
||||
@@ -201,7 +201,7 @@ services:
|
||||
|
||||
notification.method.email:
|
||||
class: phpbb\notification\method\email
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@user_loader'
|
||||
- '@user'
|
||||
@@ -213,7 +213,7 @@ services:
|
||||
|
||||
notification.method.jabber:
|
||||
class: phpbb\notification\method\jabber
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@user_loader'
|
||||
- '@user'
|
||||
|
@@ -29,10 +29,10 @@ services:
|
||||
- '@user'
|
||||
|
||||
# ----- Report handlers -----
|
||||
# Scope MUST be prototype for all the handlers to work correctly.
|
||||
# Service MUST NOT be shared for all the handlers to work correctly.
|
||||
phpbb.report.handlers.report_handler_pm:
|
||||
class: phpbb\report\report_handler_pm
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@dbal.conn.driver'
|
||||
- '@dispatcher'
|
||||
@@ -43,7 +43,7 @@ services:
|
||||
|
||||
phpbb.report.handlers.report_handler_post:
|
||||
class: phpbb\report\report_handler_post
|
||||
scope: prototype
|
||||
shared: false
|
||||
arguments:
|
||||
- '@dbal.conn.driver'
|
||||
- '@dispatcher'
|
||||
|
@@ -5,9 +5,8 @@ services:
|
||||
- '@service_container'
|
||||
- '@routing.chained_resources_locator'
|
||||
- '@routing.delegated_loader'
|
||||
- '%core.root_path%'
|
||||
- '%core.php_ext%'
|
||||
- '%core.environment%'
|
||||
- '%core.cache_dir%'
|
||||
|
||||
router.listener:
|
||||
class: Symfony\Component\HttpKernel\EventListener\RouterListener
|
||||
|
@@ -1,5 +1,5 @@
|
||||
parameters:
|
||||
text_formatter.cache.dir: '%core.root_path%cache/%core.environment%/'
|
||||
text_formatter.cache.dir: '%core.cache_dir%'
|
||||
text_formatter.cache.parser.key: _text_formatter_parser
|
||||
text_formatter.cache.renderer.key: _text_formatter_renderer
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
parameters:
|
||||
core.template.cache_path: '%core.root_path%cache/%core.environment%/twig/'
|
||||
core.template.cache_path: '%core.cache_dir%twig/'
|
||||
|
||||
services:
|
||||
template.twig.environment:
|
||||
@@ -8,14 +8,16 @@ services:
|
||||
- '@config'
|
||||
- '@filesystem'
|
||||
- '@path_helper'
|
||||
- '@service_container'
|
||||
- '%core.template.cache_path%'
|
||||
- '@ext.manager'
|
||||
- '@template.twig.loader'
|
||||
- []
|
||||
calls:
|
||||
- [setLexer, ['@template.twig.lexer']]
|
||||
|
||||
template.twig.lexer:
|
||||
class: phpbb\template\twig\lexer
|
||||
lazy: true
|
||||
arguments:
|
||||
- '@template.twig.environment'
|
||||
|
||||
|
@@ -12,7 +12,7 @@ services:
|
||||
cache.driver:
|
||||
class: '%cache.driver.class%'
|
||||
arguments:
|
||||
- '%core.root_path%/cache/installer/'
|
||||
- '%core.cache_dir%'
|
||||
|
||||
config:
|
||||
class: phpbb\config\config
|
||||
@@ -81,11 +81,12 @@ services:
|
||||
- '@config'
|
||||
- '@filesystem'
|
||||
- '@path_helper'
|
||||
- '@service_container'
|
||||
- '%core.template.cache_path%'
|
||||
- null
|
||||
- '@template.twig.loader'
|
||||
- []
|
||||
calls:
|
||||
- [setLexer, ['@template.twig.lexer']]
|
||||
|
||||
console.exception_subscriber:
|
||||
class: phpbb\console\exception_subscriber
|
||||
|
@@ -13,7 +13,7 @@ services:
|
||||
|
||||
installer.navigation.main_navigation:
|
||||
class: phpbb\install\helper\navigation\main_navigation
|
||||
scope: prototype
|
||||
shared: false
|
||||
tags:
|
||||
- { name: installer.navigation }
|
||||
|
||||
@@ -21,7 +21,7 @@ services:
|
||||
class: phpbb\install\helper\navigation\install_navigation
|
||||
arguments:
|
||||
- '@installer.helper.install_helper'
|
||||
scope: prototype
|
||||
shared: false
|
||||
tags:
|
||||
- { name: installer.navigation }
|
||||
|
||||
@@ -29,7 +29,7 @@ services:
|
||||
class: phpbb\install\helper\navigation\update_navigation
|
||||
arguments:
|
||||
- '@installer.helper.install_helper'
|
||||
scope: prototype
|
||||
shared: false
|
||||
tags:
|
||||
- { name: installer.navigation }
|
||||
|
||||
@@ -37,6 +37,6 @@ services:
|
||||
class: phpbb\install\helper\navigation\convertor_navigation
|
||||
arguments:
|
||||
- '@installer.helper.install_helper'
|
||||
scope: prototype
|
||||
shared: false
|
||||
tags:
|
||||
- { name: installer.navigation }
|
||||
|
@@ -57,6 +57,18 @@ if ($cron_lock->acquire())
|
||||
$task = $cron->find_task($cron_type);
|
||||
if ($task)
|
||||
{
|
||||
/**
|
||||
* This event enables you to catch the task before it runs
|
||||
*
|
||||
* @event core.cron_run_before
|
||||
* @var \phpbb\cron\task\wrapper task Current Cron task
|
||||
* @since 3.1.8-RC1
|
||||
*/
|
||||
$vars = array(
|
||||
'task',
|
||||
);
|
||||
extract($phpbb_dispatcher->trigger_event('core.cron_run_before', compact($vars)));
|
||||
|
||||
if ($task->is_parametrized())
|
||||
{
|
||||
$task->parse_parameters($request);
|
||||
|
@@ -2,8 +2,9 @@
|
||||
<html dir="ltr" lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="description" content="phpBB 3.1.x Changelog" />
|
||||
<meta name="description" content="phpBB 3.2.x Changelog" />
|
||||
<title>phpBB • Changelog</title>
|
||||
|
||||
<link href="assets/css/stylesheet.css" rel="stylesheet" type="text/css" media="screen" />
|
||||
@@ -20,7 +21,7 @@
|
||||
|
||||
<div id="doc-description">
|
||||
<a href="../index.php" id="logo"><img src="assets/images/site_logo.gif" alt="" /></a>
|
||||
<h1>phpBB 3.1.x Changelog</h1>
|
||||
<h1>phpBB 3.2.x Changelog</h1>
|
||||
<p style="display: none;"><a href="#start_here">Skip</a></p>
|
||||
</div>
|
||||
|
||||
@@ -35,7 +36,7 @@
|
||||
<!-- BEGIN DOCUMENT -->
|
||||
|
||||
<p class="paragraph main-description">
|
||||
This is a non-exhaustive (but still near complete) changelog for phpBB 3.1.x including release candidate versions.
|
||||
This is a non-exhaustive (but still near complete) changelog for phpBB 3.2.x including release candidate versions.
|
||||
Our thanks to all those people who've contributed bug reports and code fixes.
|
||||
</p>
|
||||
|
||||
@@ -49,10 +50,12 @@
|
||||
<ol>
|
||||
<li><a href="#changelog">Changelog</a>
|
||||
<ul>
|
||||
<li><a href="#v320b2">Changes since 3.2.0-b2</a></li>
|
||||
<li><a href="#v320b1">Changes since 3.2.0-b1</a></li>
|
||||
<li><a href="#v320a2">Changes since 3.2.0-a2</a></li>
|
||||
<li><a href="#v320a1">Changes since 3.2.0-a1</a></li>
|
||||
<li><a href="#v31x">Changes since 3.1.x</a></li>
|
||||
<li><a href="#v318">Changes since 3.1.8</a></li>
|
||||
<li><a href="#v317pl1">Changes since 3.1.7-PL1</a></li>
|
||||
<li><a href="#v317">Changes since 3.1.7</a></li>
|
||||
<li><a href="#v316">Changes since 3.1.6</a></li>
|
||||
@@ -119,6 +122,60 @@
|
||||
<div class="inner">
|
||||
|
||||
<div class="content">
|
||||
<a name="v320b2"></a><h3>Changes since 3.2.0-b2</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9435">PHPBB3-9435</a>] - "magic numbers" in message_parser.php/bbcode.php</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13616">PHPBB3-13616</a>] - Pass lexer directly to TWIG environment</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13972">PHPBB3-13972</a>] - 3.1.5 - Waiting time conflict</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14136">PHPBB3-14136</a>] - IE compatibility meta is missing in overall_header.html</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14198">PHPBB3-14198</a>] - Container cache filename doesn't depend on the build options</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14260">PHPBB3-14260</a>] - Right parenthesis breaks (some?) magic URLs</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14318">PHPBB3-14318</a>] - Board Notifications Config Migration Not Working</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14329">PHPBB3-14329</a>] - Updater Cannot remove files</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14381">PHPBB3-14381</a>] - Text Reparser fails with empty sql fields</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14393">PHPBB3-14393</a>] - Update 3.2.0a1 to 3.2.0a2 --> Error: CANNOT_DELETE_FILES </li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14426">PHPBB3-14426</a>] - viewtopic error posts bbcode pregmatch</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14481">PHPBB3-14481</a>] - phpBB does not obey HTTP_X_FORWARDED_PORT header</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14497">PHPBB3-14497</a>] - Update nginx sample config for new installer</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14527">PHPBB3-14527</a>] - Dataloss caused by link shortening</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14528">PHPBB3-14528</a>] - Structured data - breadcrumbs error</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14530">PHPBB3-14530</a>] - Signature parsing inconsistant</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14532">PHPBB3-14532</a>] - Database column default incorrectly escaped on MSSQL</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14550">PHPBB3-14550</a>] - function unique_id()</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14555">PHPBB3-14555</a>] - Inconsistent usage of the cache directory</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14559">PHPBB3-14559</a>] - Attachments' behaviour in quotes</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14562">PHPBB3-14562</a>] - Extension's permissions don't have language fallback</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14564">PHPBB3-14564</a>] - config cookie domain is empty</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14569">PHPBB3-14569</a>] - Add a method for console progress bar initialisation</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14572">PHPBB3-14572</a>] - Quote notifications deleted on edit</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14576">PHPBB3-14576</a>] - Functional Test Framework should include functions.php</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14577">PHPBB3-14577</a>] - Stop using sizeof() inside for() loop</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14589">PHPBB3-14589</a>] - Requirements test showing required text for "yellow/amber" (optional) requirements</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14590">PHPBB3-14590</a>] - Installer gets stuck at sending notification e-mail</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14591">PHPBB3-14591</a>] - Some installation data not being inserted when running under MS SQL Server</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14607">PHPBB3-14607</a>] - Missing Auto Increment in Report Table</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14619">PHPBB3-14619</a>] - docs/ folder need work to change 3.1.x to 3.2.x in readme, install, changelog etc</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14648">PHPBB3-14648</a>] - Users don't receive default notifications if another setting is set.</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14649">PHPBB3-14649</a>] - Missing variable within event</li>
|
||||
</ul>
|
||||
<h4>Improvement</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13502">PHPBB3-13502</a>] - controller resolver should handle callable functions and objects</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14540">PHPBB3-14540</a>] - Adjust class recursive_dot_prefix_filter_iterator to increase performance</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14561">PHPBB3-14561</a>] - Add additional commands for user actions</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14664">PHPBB3-14664</a>] - Fix PHPDoc comment in cron manager</li>
|
||||
</ul>
|
||||
<h4>New Feature</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12684">PHPBB3-12684</a>] - Add a command to add a user from the CLI</li>
|
||||
</ul>
|
||||
<h4>Task</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13969">PHPBB3-13969</a>] - Remove old help_* language files</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14565">PHPBB3-14565</a>] - Updates composer to 1.0.0-b2</li>
|
||||
</ul>
|
||||
|
||||
<a name="v320b1"></a><h3>Changes since 3.2.0-b1</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
@@ -470,6 +527,68 @@
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14265">PHPBB3-14265</a>] - Make all tables available in the container</li>
|
||||
</ul>
|
||||
|
||||
<a name="v318"></a><h3>Changes since 3.1.8</h3>
|
||||
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8058">PHPBB3-8058</a>] - Default style in ACP->Board Settings not observing offset</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13028">PHPBB3-13028</a>] - "View unanswered posts" link should be called instead "View unanswered topics"</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13264">PHPBB3-13264</a>] - Editing an unapproved post as a moderator/admin approves it</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13521">PHPBB3-13521</a>] - Q&A Captcha ACP, required fields error corrupts inputted data</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13630">PHPBB3-13630</a>] - NULL value parsed into $select_single can cause 403 Forbidden on certain restrictive hosting environments for "Find a Member" function within Private Message composition</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13681">PHPBB3-13681</a>] - Email queue shouldn't be cached by opcache</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13683">PHPBB3-13683</a>] - Controller generates urls with absolute path of phpbb's root</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13842">PHPBB3-13842</a>] - Missing rewrite module on IIS7 leads to an error</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13977">PHPBB3-13977</a>] - Fatal error entering UCP if bookmarked topic was deleted</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14132">PHPBB3-14132</a>] - SQL Error when creating a new subject on fresh installation</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14136">PHPBB3-14136</a>] - IE compatibility meta is missing in overall_header.html</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14241">PHPBB3-14241</a>] - Security bug into Spambot control Questions</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14272">PHPBB3-14272</a>] - Use valid html5 input elements in forms</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14290">PHPBB3-14290</a>] - Function set_modified_headers() never sends 304 'Not Modified' header</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14408">PHPBB3-14408</a>] - Remove span corners</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14422">PHPBB3-14422</a>] - Support cmd+enter & ctrl+enter for submitting message</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14437">PHPBB3-14437</a>] - Place Inline Images on Post get scrambled up -- not follow the order you place them in.</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14443">PHPBB3-14443</a>] - jabber notification-template prefix "short" breaks resolution of paths in extensions</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14475">PHPBB3-14475</a>] - Do not log upon automatically removing users form newly registered users group</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14481">PHPBB3-14481</a>] - phpBB does not obey HTTP_X_FORWARDED_PORT header</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14483">PHPBB3-14483</a>] - call to header(arg, arg) function sendHeaders() in Response.php causes Error 500 in app.php generated links</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14496">PHPBB3-14496</a>] - Automatic update relies on cache creating files in cache folder</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14500">PHPBB3-14500</a>] - Duplicate newversion in build.xml</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14514">PHPBB3-14514</a>] - Users get skipped in passwords_convert_p1 migration</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14519">PHPBB3-14519</a>] - Do not query database for unread notifications if all are retrieved</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14532">PHPBB3-14532</a>] - Database column default incorrectly escaped on MSSQL</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14533">PHPBB3-14533</a>] - "U_NOTIFICATION_SETTINGS" doesn't return the correct URL</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14536">PHPBB3-14536</a>] - Force timestamp to be integer in user::format_date()</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14559">PHPBB3-14559</a>] - Attachments' behaviour in quotes</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14562">PHPBB3-14562</a>] - Extension's permissions don't have language fallback</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14570">PHPBB3-14570</a>] - Board versions for 3.2.x can be accidentally downgraded to 3.1.x</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14577">PHPBB3-14577</a>] - Stop using sizeof() inside for() loop</li>
|
||||
</ul>
|
||||
<h4>Improvement</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10356">PHPBB3-10356</a>] - Username search should find all users for administrators instead of NORMALs and FOUNDERs only</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12305">PHPBB3-12305</a>] - Add new event core.viewforum_get_topic_id_sql to control forum topic listing</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14134">PHPBB3-14134</a>] - Send warning notification PM in user's language.</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14316">PHPBB3-14316</a>] - Add memberlist_view.html template events before/after the custom fields and zebra links</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14365">PHPBB3-14365</a>] - Add core event to the function topic_review() </li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14366">PHPBB3-14366</a>] - Add core events to the function decode_message()</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14395">PHPBB3-14395</a>] - Add event core.viewtopic_add_quickmod_option_after</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14471">PHPBB3-14471</a>] - Add filedata var to the core.avatar_driver_upload_move_file_before event</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14486">PHPBB3-14486</a>] - Add an event and fix an event in login_box()</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14508">PHPBB3-14508</a>] - Change language notice on account activation</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14540">PHPBB3-14540</a>] - Adjust class recursive_dot_prefix_filter_iterator to increase performance</li>
|
||||
</ul>
|
||||
<h4>New Feature</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12684">PHPBB3-12684</a>] - Add a command to add a user from the CLI</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14189">PHPBB3-14189</a>] - [PHP] - core.gen_sort_selects_after</li>
|
||||
</ul>
|
||||
<h4>Task</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14538">PHPBB3-14538</a>] - Update composer dependencies</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14565">PHPBB3-14565</a>] - Updates composer to 1.0.0-b2</li>
|
||||
</ul>
|
||||
|
||||
<a name="v317pl1"></a><h3>Changes since 3.1.7-PL1</h3>
|
||||
|
||||
<h4>Bug</h4>
|
||||
|
@@ -2,8 +2,9 @@
|
||||
<html dir="ltr" lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="description" content="phpBB 3.1.x frequently asked questions" />
|
||||
<meta name="description" content="phpBB 3.2.x frequently asked questions" />
|
||||
<title>phpBB • FAQ</title>
|
||||
|
||||
<link href="assets/css/stylesheet.css" rel="stylesheet" type="text/css" media="screen" />
|
||||
@@ -20,8 +21,8 @@
|
||||
|
||||
<div id="doc-description">
|
||||
<a href="../index.php" id="logo"><img src="assets/images/site_logo.gif" alt="" /></a>
|
||||
<h1>phpBB 3.1.x FAQ</h1>
|
||||
<p>phpBB 3.1.x frequently asked questions</p>
|
||||
<h1>phpBB 3.2.x FAQ</h1>
|
||||
<p>phpBB 3.2.x frequently asked questions</p>
|
||||
<p style="display: none;"><a href="#start_here">Skip</a></p>
|
||||
</div>
|
||||
|
||||
|
@@ -2,8 +2,9 @@
|
||||
<html dir="ltr" lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="description" content="phpBB 3.1.x Installation, updating and conversion informations" />
|
||||
<meta name="description" content="phpBB 3.2.x Installation, updating and conversion informations" />
|
||||
<title>phpBB • Install</title>
|
||||
|
||||
<link href="assets/css/stylesheet.css" rel="stylesheet" type="text/css" media="screen" />
|
||||
@@ -20,8 +21,8 @@
|
||||
|
||||
<div id="doc-description">
|
||||
<a href="../index.php" id="logo"><img src="assets/images/site_logo.gif" alt="" /></a>
|
||||
<h1>phpBB 3.1.x Install</h1>
|
||||
<p>phpBB 3.1.x Installation, updating and conversion informations</p>
|
||||
<h1>phpBB 3.2.x Install</h1>
|
||||
<p>phpBB 3.2.x Installation, updating and conversion informations</p>
|
||||
<p style="display: none;"><a href="#start_here">Skip</a></p>
|
||||
</div>
|
||||
|
||||
@@ -132,7 +133,7 @@
|
||||
|
||||
<div class="content">
|
||||
|
||||
<p>phpBB 3.1.x has a few requirements which must be met before you are able to install and use it.</p>
|
||||
<p>phpBB 3.2.x has a few requirements which must be met before you are able to install and use it.</p>
|
||||
|
||||
<ul>
|
||||
<li>A webserver or web hosting account running on any major Operating System with support for PHP</li>
|
||||
@@ -165,7 +166,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>If your server or hosting account does not meet the requirements above then you will be unable to install phpBB 3.1.x.</p>
|
||||
<p>If your server or hosting account does not meet the requirements above then you will be unable to install phpBB 3.2.x.</p>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -256,7 +257,7 @@
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="update"></a><h2>4. Updating from stable releases of phpBB 3.1.x</h2>
|
||||
<a name="update"></a><h2>4. Updating from stable releases of phpBB 3.2.x</h2>
|
||||
|
||||
<div class="paragraph">
|
||||
<div class="inner">
|
||||
@@ -281,7 +282,7 @@
|
||||
|
||||
<p>This package is meant for those wanting to only replace the files that were changed between a previous version and the latest version.</p>
|
||||
|
||||
<p>This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have <strong>3.1.0</strong> you should select the appropriate <code>phpBB-3.1.1-files.zip/tar.bz2</code> file.</p>
|
||||
<p>This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have <strong>3.2.0</strong> you should select the appropriate <code>phpBB-3.2.1-files.zip/tar.bz2</code> file.</p>
|
||||
|
||||
<p>The directory structure has been preserved, enabling you (if you wish) to simply upload the uncompressed contents of the archive to the appropriate location on your server, i.e. simply overwrite the existing files with the new versions. Do not forget that if you have installed any modifications (MODs) these files will overwrite the originals, possibly destroying them in the process. You will need to re-add MODs to any affected file before uploading.</p>
|
||||
|
||||
|
@@ -2,8 +2,9 @@
|
||||
<html dir="ltr" lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="description" content="phpBB 3.1.x Readme" />
|
||||
<meta name="description" content="phpBB 3.2.x Readme" />
|
||||
<title>phpBB • Readme</title>
|
||||
|
||||
<link href="assets/css/stylesheet.css" rel="stylesheet" type="text/css" media="screen" />
|
||||
@@ -20,7 +21,7 @@
|
||||
|
||||
<div id="doc-description">
|
||||
<a href="../index.php" id="logo"><img src="assets/images/site_logo.gif" alt="" /></a>
|
||||
<h1>phpBB 3.1.x Readme</h1>
|
||||
<h1>phpBB 3.2.x Readme</h1>
|
||||
<p style="display: none;"><a href="#start_here">Skip</a></p>
|
||||
</div>
|
||||
|
||||
@@ -224,7 +225,7 @@
|
||||
|
||||
<div class="content">
|
||||
|
||||
<p>This is a stable release of phpBB. The 3.1.x line is feature frozen, with point releases principally including fixes for bugs and security issues. Feature alterations and minor feature additions may be done if deemed absolutely required. The next major release will be phpBB 3.2 which is currently under development. Please do not post questions asking when 3.2 will be available, no release date has been set.</p>
|
||||
<p>This is a stable release of phpBB. The 3.2.x line is feature frozen, with point releases principally including fixes for bugs and security issues. Feature alterations and minor feature additions may be done if deemed absolutely required. The next major release will be phpBB 3.3 which is currently under development. Please do not post questions asking when 3.3 will be available, no release date has been set.</p>
|
||||
|
||||
<p>Those interested in the development of phpBB should keep an eye on the development forums to see how things are progressing:</p>
|
||||
|
||||
|
@@ -2,6 +2,7 @@
|
||||
<html dir="ltr" lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="description" content="This is an explanation of how to use the phpBB auth/acl API" />
|
||||
<title>phpBB3 • Auth API</title>
|
||||
|
@@ -2,8 +2,9 @@
|
||||
<html dir="ltr" lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="description" content="Ascraeus coding guidelines document" />
|
||||
<meta name="description" content="Rhea coding guidelines document" />
|
||||
<title>phpBB3 • Coding Guidelines</title>
|
||||
|
||||
<link href="assets/css/stylesheet.css" rel="stylesheet" type="text/css" media="screen" />
|
||||
@@ -21,7 +22,7 @@
|
||||
<div id="doc-description">
|
||||
<a href="../index.php" id="logo"><img src="assets/images/site_logo.gif" alt="" /></a>
|
||||
<h1>Coding Guidelines</h1>
|
||||
<p>Ascraeus coding guidelines document</p>
|
||||
<p>Rhea coding guidelines document</p>
|
||||
<p style="display: none;"><a href="#start_here">Skip</a></p>
|
||||
</div>
|
||||
|
||||
@@ -36,7 +37,7 @@
|
||||
<!-- BEGIN DOCUMENT -->
|
||||
|
||||
<p class="paragraph main-description">
|
||||
These are the phpBB Coding Guidelines for Ascraeus, all attempts should be made to follow them as closely as possible.
|
||||
These are the phpBB Coding Guidelines for Rhea, all attempts should be made to follow them as closely as possible.
|
||||
</p>
|
||||
|
||||
<h1>Coding Guidelines</h1>
|
||||
@@ -1186,8 +1187,8 @@ append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&amp;
|
||||
# General Information about this style
|
||||
name = prosilver_duplicate
|
||||
copyright = © phpBB Limited, 2007
|
||||
style_version = 3.1.0
|
||||
phpbb_version = 3.1.0
|
||||
style_version = 3.2.0
|
||||
phpbb_version = 3.2.0
|
||||
|
||||
# Defining a different template bitfield
|
||||
# template_bitfield = lNg=
|
||||
@@ -1676,8 +1677,8 @@ div
|
||||
# General Information about this style
|
||||
name = Custom Style
|
||||
copyright = © phpBB Limited, 2007
|
||||
style_version = 3.1.0-b1
|
||||
phpbb_version = 3.1.0-b1
|
||||
style_version = 3.2.0-b1
|
||||
phpbb_version = 3.2.0-b1
|
||||
|
||||
# Defining a different template bitfield
|
||||
# template_bitfield = lNg=
|
||||
@@ -1724,7 +1725,7 @@ This may span multiple lines.
|
||||
+ first/file/path.html
|
||||
+ second/file/path.html
|
||||
* Purpose: Same as above.
|
||||
* Since: 3.1.0-b1
|
||||
* Since: 3.2.0-b1
|
||||
</pre></div>
|
||||
<li>An event that is found multiple times in a file should have the number of instances in parenthesis next to the filename.
|
||||
<div class="codebox"><pre>event_name
|
||||
@@ -1733,7 +1734,7 @@ This may span multiple lines.
|
||||
+ first/file/path.html (2)
|
||||
+ second/file/path.html
|
||||
* Purpose: Same as above.
|
||||
* Since: 3.1.0-b1
|
||||
* Since: 3.2.0-b1
|
||||
</pre></div></li>
|
||||
<li>An actual example event documentation:
|
||||
<div class="codebox"><pre>forumlist_body_last_post_title_prepend
|
||||
@@ -1742,7 +1743,7 @@ This may span multiple lines.
|
||||
+ styles/prosilver/template/forumlist_body.html
|
||||
+ styles/subsilver2/template/forumlist_body.html
|
||||
* Purpose: Add content before the post title of the latest post in a forum on the forum list.
|
||||
* Since: 3.1.0-a1
|
||||
* Since: 3.2.0-a1
|
||||
</pre></div></ul><br />
|
||||
|
||||
</div>
|
||||
|
@@ -22,6 +22,7 @@ installer:
|
||||
enabled: false
|
||||
smtp_delivery : ~
|
||||
smtp_host: ~
|
||||
smtp_port: ~
|
||||
smtp_auth: ~
|
||||
smtp_user: ~
|
||||
smtp_pass: ~
|
||||
|
@@ -62,7 +62,7 @@ http {
|
||||
root /path/to/phpbb;
|
||||
|
||||
location / {
|
||||
# phpbb uses index.htm
|
||||
# phpBB uses index.htm
|
||||
index index.php index.html index.htm;
|
||||
try_files $uri $uri/ @rewriteapp;
|
||||
}
|
||||
@@ -92,6 +92,29 @@ http {
|
||||
fastcgi_pass php;
|
||||
}
|
||||
|
||||
# Correctly pass scripts for installer
|
||||
location /install/ {
|
||||
# phpBB uses index.htm
|
||||
try_files $uri $uri/ @rewrite_installapp;
|
||||
|
||||
# Pass the php scripts to fastcgi server specified in upstream declaration.
|
||||
location ~ \.php(/|$) {
|
||||
# Unmodified fastcgi_params from nginx distribution.
|
||||
include fastcgi_params;
|
||||
# Necessary for php.
|
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||
fastcgi_param DOCUMENT_ROOT $realpath_root;
|
||||
try_files $uri $uri/ /install/app.php$is_args$args;
|
||||
fastcgi_pass php;
|
||||
}
|
||||
}
|
||||
|
||||
location @rewrite_installapp {
|
||||
rewrite ^(.*)$ /install/app.php/$1 last;
|
||||
}
|
||||
|
||||
# Deny access to version control system directories.
|
||||
location ~ /\.svn|/\.git {
|
||||
deny all;
|
||||
|
@@ -1431,7 +1431,7 @@ class acp_attachments
|
||||
$row['group_name'] = $user->lang['NOT_ASSIGNED'];
|
||||
$group_name[] = $row;
|
||||
|
||||
for ($i = 0; $i < sizeof($group_name); $i++)
|
||||
for ($i = 0, $groups_size = sizeof($group_name); $i < $groups_size; $i++)
|
||||
{
|
||||
if ($default_group === false)
|
||||
{
|
||||
@@ -1744,8 +1744,8 @@ class acp_attachments
|
||||
$size_var = $filesize['si_identifier'];
|
||||
$value = $filesize['value'];
|
||||
|
||||
// size="8" and maxlength="15" attributes as a fallback for browsers that do not support type="number" yet.
|
||||
return '<input type="number" id="' . $key . '" size="8" maxlength="15" min="0" name="config[' . $key . ']" value="' . $value . '" /> <select name="' . $key . '">' . size_select_options($size_var) . '</select>';
|
||||
// size and maxlength must not be specified for input of type number
|
||||
return '<input type="number" id="' . $key . '" min="0" max="999999999999999" step="any" name="config[' . $key . ']" value="' . $value . '" /> <select name="' . $key . '">' . size_select_options($size_var) . '</select>';
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -868,7 +868,7 @@ class acp_board
|
||||
{
|
||||
global $user;
|
||||
|
||||
return '<input id="' . $key . '" type="number" size="3" maxlength="3" min="1" max="999" name="config[min_name_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . ' <input type="number" size="3" maxlength="3" min="8" max="180" name="config[max_name_chars]" value="' . $this->new_config['max_name_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
|
||||
return '<input id="' . $key . '" type="number" min="1" max="999" name="config[min_name_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . ' <input type="number" min="8" max="180" name="config[max_name_chars]" value="' . $this->new_config['max_name_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -896,7 +896,7 @@ class acp_board
|
||||
{
|
||||
global $user;
|
||||
|
||||
return '<input id="' . $key . '" type="number" size="3" maxlength="3" min="1" max="999" name="config[min_pass_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . ' <input type="number" size="3" maxlength="3" min="8" max="255" name="config[max_pass_chars]" value="' . $this->new_config['max_pass_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
|
||||
return '<input id="' . $key . '" type="number" min="1" max="999" name="config[min_pass_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . ' <input type="number" min="8" max="255" name="config[max_pass_chars]" value="' . $this->new_config['max_pass_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1420,7 +1420,7 @@ class acp_forums
|
||||
$diff = sizeof($moved_forums) * 2;
|
||||
|
||||
$moved_ids = array();
|
||||
for ($i = 0; $i < sizeof($moved_forums); ++$i)
|
||||
for ($i = 0, $size = sizeof($moved_forums); $i < $size; ++$i)
|
||||
{
|
||||
$moved_ids[] = $moved_forums[$i]['forum_id'];
|
||||
}
|
||||
|
@@ -325,10 +325,11 @@ class acp_groups
|
||||
$avatar_data = null;
|
||||
$avatar_error = array();
|
||||
|
||||
/** @var \phpbb\avatar\manager $phpbb_avatar_manager */
|
||||
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
|
||||
|
||||
if ($config['allow_avatar'])
|
||||
{
|
||||
/* @var $phpbb_avatar_manager \phpbb\avatar\manager */
|
||||
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
|
||||
$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers();
|
||||
|
||||
// This is normalised data, without the group_ prefix
|
||||
@@ -669,6 +670,14 @@ class acp_groups
|
||||
$avatars_enabled = false;
|
||||
$selected_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $avatar_data['avatar_type']));
|
||||
|
||||
// Assign min and max values before generating avatar driver html
|
||||
$template->assign_vars(array(
|
||||
'AVATAR_MIN_WIDTH' => $config['avatar_min_width'],
|
||||
'AVATAR_MAX_WIDTH' => $config['avatar_max_width'],
|
||||
'AVATAR_MIN_HEIGHT' => $config['avatar_min_height'],
|
||||
'AVATAR_MAX_HEIGHT' => $config['avatar_max_height'],
|
||||
));
|
||||
|
||||
foreach ($avatar_drivers as $current_driver)
|
||||
{
|
||||
$driver = $phpbb_avatar_manager->get_driver($current_driver);
|
||||
|
@@ -1838,11 +1838,11 @@ class acp_users
|
||||
case 'avatar':
|
||||
|
||||
$avatars_enabled = false;
|
||||
/** @var \phpbb\avatar\manager $phpbb_avatar_manager */
|
||||
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
|
||||
|
||||
if ($config['allow_avatar'])
|
||||
{
|
||||
/* @var $phpbb_avatar_manager \phpbb\avatar\manager */
|
||||
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
|
||||
$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers();
|
||||
|
||||
// This is normalised data, without the user_ prefix
|
||||
@@ -1903,6 +1903,14 @@ class acp_users
|
||||
|
||||
$selected_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $user_row['user_avatar_type']));
|
||||
|
||||
// Assign min and max values before generating avatar driver html
|
||||
$template->assign_vars(array(
|
||||
'AVATAR_MIN_WIDTH' => $config['avatar_min_width'],
|
||||
'AVATAR_MAX_WIDTH' => $config['avatar_max_width'],
|
||||
'AVATAR_MIN_HEIGHT' => $config['avatar_min_height'],
|
||||
'AVATAR_MAX_HEIGHT' => $config['avatar_max_height'],
|
||||
));
|
||||
|
||||
foreach ($avatar_drivers as $current_driver)
|
||||
{
|
||||
$driver = $phpbb_avatar_manager->get_driver($current_driver);
|
||||
@@ -2073,7 +2081,10 @@ class acp_users
|
||||
// Replace "error" strings with their real, localised form
|
||||
$error = array_map(array($user, 'lang'), $error);
|
||||
|
||||
$decoded_message = generate_text_for_edit($signature, $bbcode_uid, $bbcode_bitfield);
|
||||
if ($request->is_set_post('preview'))
|
||||
{
|
||||
$decoded_message = generate_text_for_edit($signature, $bbcode_uid, $bbcode_bitfield);
|
||||
}
|
||||
|
||||
/** @var \phpbb\controller\helper $controller_helper */
|
||||
$controller_helper = $phpbb_container->get('controller.helper');
|
||||
|
@@ -154,14 +154,13 @@ class bbcode
|
||||
$phpbb_container->get('config'),
|
||||
$phpbb_container->get('filesystem'),
|
||||
$phpbb_container->get('path_helper'),
|
||||
$phpbb_container,
|
||||
$phpbb_container->getParameter('core.root_path') . 'cache/',
|
||||
$phpbb_container->getParameter('core.cache_dir'),
|
||||
$phpbb_container->get('ext.manager'),
|
||||
new \phpbb\template\twig\loader(
|
||||
$phpbb_filesystem
|
||||
)
|
||||
),
|
||||
$phpbb_container->getParameter('core.root_path') . 'cache/',
|
||||
$phpbb_container->getParameter('core.cache_dir'),
|
||||
$phpbb_container->get('user'),
|
||||
$phpbb_container->get('template.twig.extensions.collection'),
|
||||
$phpbb_extension_manager
|
||||
@@ -219,20 +218,25 @@ class bbcode
|
||||
{
|
||||
switch ($bbcode_id)
|
||||
{
|
||||
case 0:
|
||||
case BBCODE_ID_QUOTE:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'str' => array(
|
||||
'[/quote:$uid]' => $this->bbcode_tpl('quote_close', $bbcode_id)
|
||||
),
|
||||
'preg' => array(
|
||||
'#\[quote(?:="(.*?)")?:$uid\]((?!\[quote(?:=".*?")?:$uid\]).)?#is' => function ($match) {
|
||||
if (!isset($match[2]))
|
||||
{
|
||||
$match[2] = '';
|
||||
}
|
||||
|
||||
return $this->bbcode_second_pass_quote($match[1], $match[2]);
|
||||
},
|
||||
)
|
||||
);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
case BBCODE_ID_B:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'str' => array(
|
||||
'[b:$uid]' => $this->bbcode_tpl('b_open', $bbcode_id),
|
||||
@@ -241,7 +245,7 @@ class bbcode
|
||||
);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case BBCODE_ID_I:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'str' => array(
|
||||
'[i:$uid]' => $this->bbcode_tpl('i_open', $bbcode_id),
|
||||
@@ -250,7 +254,7 @@ class bbcode
|
||||
);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
case BBCODE_ID_URL:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'preg' => array(
|
||||
'#\[url:$uid\]((.*?))\[/url:$uid\]#s' => $this->bbcode_tpl('url', $bbcode_id),
|
||||
@@ -259,7 +263,7 @@ class bbcode
|
||||
);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
case BBCODE_ID_IMG:
|
||||
if ($user->optionget('viewimg'))
|
||||
{
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
@@ -278,7 +282,7 @@ class bbcode
|
||||
}
|
||||
break;
|
||||
|
||||
case 5:
|
||||
case BBCODE_ID_SIZE:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'preg' => array(
|
||||
'#\[size=([\-\+]?\d+):$uid\](.*?)\[/size:$uid\]#s' => $this->bbcode_tpl('size', $bbcode_id),
|
||||
@@ -286,7 +290,7 @@ class bbcode
|
||||
);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
case BBCODE_ID_COLOR:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'preg' => array(
|
||||
'!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+):$uid\](.*?)\[/color:$uid\]!is' => $this->bbcode_tpl('color', $bbcode_id),
|
||||
@@ -294,7 +298,7 @@ class bbcode
|
||||
);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
case BBCODE_ID_U:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'str' => array(
|
||||
'[u:$uid]' => $this->bbcode_tpl('u_open', $bbcode_id),
|
||||
@@ -303,7 +307,7 @@ class bbcode
|
||||
);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
case BBCODE_ID_CODE:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'preg' => array(
|
||||
'#\[code(?:=([a-z]+))?:$uid\](.*?)\[/code:$uid\]#is' => function ($match) {
|
||||
@@ -313,7 +317,7 @@ class bbcode
|
||||
);
|
||||
break;
|
||||
|
||||
case 9:
|
||||
case BBCODE_ID_LIST:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'preg' => array(
|
||||
'#(\[\/?(list|\*):[mou]?:?$uid\])[\n]{1}#' => "\$1",
|
||||
@@ -333,7 +337,7 @@ class bbcode
|
||||
);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
case BBCODE_ID_EMAIL:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'preg' => array(
|
||||
'#\[email:$uid\]((.*?))\[/email:$uid\]#is' => $this->bbcode_tpl('email', $bbcode_id),
|
||||
@@ -342,7 +346,7 @@ class bbcode
|
||||
);
|
||||
break;
|
||||
|
||||
case 11:
|
||||
case BBCODE_ID_FLASH:
|
||||
if ($user->optionget('viewflash'))
|
||||
{
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
@@ -361,7 +365,7 @@ class bbcode
|
||||
}
|
||||
break;
|
||||
|
||||
case 12:
|
||||
case BBCODE_ID_ATTACH:
|
||||
$this->bbcode_cache[$bbcode_id] = array(
|
||||
'str' => array(
|
||||
'[/attachment:$uid]' => $this->bbcode_tpl('inline_attachment_close', $bbcode_id)
|
||||
|
@@ -75,5 +75,3 @@ function register_compatibility_globals()
|
||||
/* @var $template \phpbb\template\template */
|
||||
$template = $phpbb_container->get('template');
|
||||
}
|
||||
|
||||
register_compatibility_globals();
|
||||
|
@@ -28,7 +28,7 @@ if (!defined('IN_PHPBB'))
|
||||
*/
|
||||
|
||||
// phpBB Version
|
||||
@define('PHPBB_VERSION', '3.2.0-b2');
|
||||
@define('PHPBB_VERSION', '3.2.0-RC1');
|
||||
|
||||
// QA-related
|
||||
// define('PHPBB_QA', 1);
|
||||
@@ -182,6 +182,22 @@ define('BBCODE_UID_LEN', 8);
|
||||
|
||||
// Number of core BBCodes
|
||||
define('NUM_CORE_BBCODES', 12);
|
||||
define('NUM_PREDEFINED_BBCODES', 22);
|
||||
|
||||
// BBCode IDs
|
||||
define('BBCODE_ID_QUOTE', 0);
|
||||
define('BBCODE_ID_B', 1);
|
||||
define('BBCODE_ID_I', 2);
|
||||
define('BBCODE_ID_URL', 3);
|
||||
define('BBCODE_ID_IMG', 4);
|
||||
define('BBCODE_ID_SIZE', 5);
|
||||
define('BBCODE_ID_COLOR', 6);
|
||||
define('BBCODE_ID_U', 7);
|
||||
define('BBCODE_ID_CODE', 8);
|
||||
define('BBCODE_ID_LIST', 9);
|
||||
define('BBCODE_ID_EMAIL', 10);
|
||||
define('BBCODE_ID_FLASH', 11);
|
||||
define('BBCODE_ID_ATTACH', 12);
|
||||
|
||||
// BBCode hard limit
|
||||
define('BBCODE_LIMIT', 1511);
|
||||
|
@@ -96,7 +96,7 @@ function gen_rand_string_friendly($num_chars = 8)
|
||||
*/
|
||||
function unique_id()
|
||||
{
|
||||
return bin2hex(random_bytes(6));
|
||||
return bin2hex(random_bytes(8));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1648,6 +1648,12 @@ function generate_board_url($without_script_path = false)
|
||||
|
||||
$server_name = $user->host;
|
||||
$server_port = $request->server('SERVER_PORT', 0);
|
||||
$forwarded_proto = $request->server('HTTP_X_FORWARDED_PROTO');
|
||||
|
||||
if (!empty($forwarded_proto) && $forwarded_proto === 'https')
|
||||
{
|
||||
$server_port = 443;
|
||||
}
|
||||
|
||||
// Forcing server vars is the only way to specify/override the protocol
|
||||
if ($config['force_server_vars'] || !$server_name)
|
||||
@@ -1813,6 +1819,7 @@ function redirect($url, $return = false, $disable_cd_check = false)
|
||||
echo '<html dir="' . $user->lang['DIRECTION'] . '" lang="' . $user->lang['USER_LANG'] . '">';
|
||||
echo '<head>';
|
||||
echo '<meta charset="utf-8">';
|
||||
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
|
||||
echo '<meta http-equiv="refresh" content="0; url=' . str_replace('&', '&', $url) . '" />';
|
||||
echo '<title>' . $user->lang['REDIRECT'] . '</title>';
|
||||
echo '</head>';
|
||||
@@ -2233,6 +2240,21 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
|
||||
$user->setup();
|
||||
}
|
||||
|
||||
/**
|
||||
* This event allows an extension to modify the login process
|
||||
*
|
||||
* @event core.login_box_before
|
||||
* @var string redirect Redirect string
|
||||
* @var string l_explain Explain language string
|
||||
* @var string l_success Success language string
|
||||
* @var bool admin Is admin?
|
||||
* @var bool s_display Display full login form?
|
||||
* @var string err Error string
|
||||
* @since 3.1.9-RC1
|
||||
*/
|
||||
$vars = array('redirect', 'l_explain', 'l_success', 'admin', 's_display', 'err');
|
||||
extract($phpbb_dispatcher->trigger_event('core.login_box_before', compact($vars)));
|
||||
|
||||
// Print out error if user tries to authenticate as an administrator without having the privileges...
|
||||
if ($admin && !$auth->acl_get('a_'))
|
||||
{
|
||||
@@ -2245,7 +2267,7 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
|
||||
trigger_error('NO_AUTH_ADMIN');
|
||||
}
|
||||
|
||||
if ($request->is_set_post('login') || ($request->is_set('login') && $request->variable('login', '') == 'external'))
|
||||
if (empty($err) && ($request->is_set_post('login') || ($request->is_set('login') && $request->variable('login', '') == 'external')))
|
||||
{
|
||||
// Get credential
|
||||
if ($admin)
|
||||
@@ -2314,11 +2336,11 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
|
||||
*
|
||||
* @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.
|
||||
* @var bool admin Is admin?
|
||||
* @since 3.1.0-RC5
|
||||
* @changed 3.1.9-RC1 Removed undefined return variable
|
||||
*/
|
||||
$vars = array('redirect', 'admin', 'return');
|
||||
$vars = array('redirect', 'admin');
|
||||
extract($phpbb_dispatcher->trigger_event('core.login_box_redirect', compact($vars)));
|
||||
|
||||
// append/replace SID (may change during the session for AOL users)
|
||||
@@ -2730,7 +2752,8 @@ function get_preg_expression($mode)
|
||||
return array(
|
||||
'#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
|
||||
'#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#',
|
||||
'#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">(.*?)</a><!\-\- \1 \-\->#',
|
||||
'#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="http://(.*?)">\2</a><!\-\- \1 \-\->#',
|
||||
'#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#',
|
||||
'#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
|
||||
'#<!\-\- .*? \-\->#s',
|
||||
'#<.*?>#s',
|
||||
@@ -3307,6 +3330,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
|
||||
echo '<html dir="ltr">';
|
||||
echo '<head>';
|
||||
echo '<meta charset="utf-8">';
|
||||
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
|
||||
echo '<title>' . $msg_title . '</title>';
|
||||
echo '<style type="text/css">' . "\n" . '/* <![CDATA[ */' . "\n";
|
||||
echo '* { margin: 0; padding: 0; } html { font-size: 100%; height: 100%; margin-bottom: 1px; background-color: #E4EDF0; } body { font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif; color: #536482; background: #E4EDF0; font-size: 62.5%; margin: 0; } ';
|
||||
@@ -4071,7 +4095,7 @@ function phpbb_get_avatar($row, $alt, $ignore_config = false, $lazy = false)
|
||||
/**
|
||||
* Generate page header
|
||||
*/
|
||||
function page_header($page_title = '', $display_online_list = false, $item_id = 0, $item = 'forum')
|
||||
function page_header($page_title = '', $display_online_list = false, $item_id = 0, $item = 'forum', $send_headers = true)
|
||||
{
|
||||
global $db, $config, $template, $SID, $_SID, $_EXTRA_URL, $user, $auth, $phpEx, $phpbb_root_path;
|
||||
global $phpbb_dispatcher, $request, $phpbb_container, $phpbb_admin_path;
|
||||
@@ -4416,17 +4440,22 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
|
||||
'SITE_LOGO_IMG' => $user->img('site_logo'),
|
||||
));
|
||||
|
||||
// An array of http headers that phpbb will set. The following event may override these.
|
||||
$http_headers = array(
|
||||
// application/xhtml+xml not used because of IE
|
||||
'Content-type' => 'text/html; charset=UTF-8',
|
||||
'Cache-Control' => 'private, no-cache="set-cookie"',
|
||||
'Expires' => gmdate('D, d M Y H:i:s', time()) . ' GMT',
|
||||
);
|
||||
if (!empty($user->data['is_bot']))
|
||||
$http_headers = array();
|
||||
|
||||
if ($send_headers)
|
||||
{
|
||||
// Let reverse proxies know we detected a bot.
|
||||
$http_headers['X-PHPBB-IS-BOT'] = 'yes';
|
||||
// An array of http headers that phpbb will set. The following event may override these.
|
||||
$http_headers += array(
|
||||
// application/xhtml+xml not used because of IE
|
||||
'Content-type' => 'text/html; charset=UTF-8',
|
||||
'Cache-Control' => 'private, no-cache="set-cookie"',
|
||||
'Expires' => gmdate('D, d M Y H:i:s', time()) . ' GMT',
|
||||
);
|
||||
if (!empty($user->data['is_bot']))
|
||||
{
|
||||
// Let reverse proxies know we detected a bot.
|
||||
$http_headers['X-PHPBB-IS-BOT'] = 'yes';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -258,46 +258,49 @@ function build_cfg_template($tpl_type, $key, &$new_ary, $config_key, $vars)
|
||||
case 'text':
|
||||
case 'url':
|
||||
case 'email':
|
||||
case 'color':
|
||||
case 'date':
|
||||
case 'time':
|
||||
case 'datetime':
|
||||
case 'datetime-local':
|
||||
case 'month':
|
||||
case 'range':
|
||||
case 'search':
|
||||
case 'tel':
|
||||
case 'week':
|
||||
case 'search':
|
||||
// maxlength and size are only valid for these types and will be
|
||||
// ignored for other input types.
|
||||
$size = (int) $tpl_type[1];
|
||||
$maxlength = (int) $tpl_type[2];
|
||||
|
||||
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '" value="' . $new_ary[$config_key] . '"' . (($tpl_type[0] === 'password') ? ' autocomplete="off"' : '') . ' />';
|
||||
break;
|
||||
|
||||
case 'color':
|
||||
case 'datetime':
|
||||
case 'datetime-local':
|
||||
case 'month':
|
||||
case 'week':
|
||||
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '" name="' . $name . '" value="' . $new_ary[$config_key] . '" />';
|
||||
break;
|
||||
|
||||
case 'date':
|
||||
case 'time':
|
||||
case 'number':
|
||||
$max = $maxlength = '';
|
||||
case 'range':
|
||||
$max = '';
|
||||
$min = ( isset($tpl_type[1]) ) ? (int) $tpl_type[1] : false;
|
||||
if ( isset($tpl_type[2]) )
|
||||
{
|
||||
$max = (int) $tpl_type[2];
|
||||
$maxlength = strlen( (string) $max );
|
||||
}
|
||||
|
||||
$tpl = '<input id="' . $key . '" type="number" maxlength="' . (( $maxlength != '' ) ? $maxlength : 255) . '"' . (( $min != '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="' . $name . '" value="' . $new_ary[$config_key] . '" />';
|
||||
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '"' . (( $min != '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="' . $name . '" value="' . $new_ary[$config_key] . '" />';
|
||||
break;
|
||||
|
||||
case 'dimension':
|
||||
$max = $maxlength = $size = '';
|
||||
$max = '';
|
||||
|
||||
$min = (int) $tpl_type[1];
|
||||
|
||||
if ( isset($tpl_type[2]) )
|
||||
{
|
||||
$max = (int) $tpl_type[2];
|
||||
$size = $maxlength = strlen( (string) $max );
|
||||
}
|
||||
|
||||
$tpl = '<input id="' . $key . '" type="number"' . (( $size != '' ) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength != '') ? $maxlength : 255) . '"' . (( $min !== '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="config[' . $config_key . '_width]" value="' . $new_ary[$config_key . '_width'] . '" /> x <input type="number"' . (( $size != '' ) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength != '') ? $maxlength : 255) . '"' . (( $min !== '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="config[' . $config_key . '_height]" value="' . $new_ary[$config_key . '_height'] . '" />';
|
||||
$tpl = '<input id="' . $key . '" type="number"' . (( $min !== '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="config[' . $config_key . '_width]" value="' . $new_ary[$config_key . '_width'] . '" /> x <input type="number"' . (( $min !== '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="config[' . $config_key . '_height]" value="' . $new_ary[$config_key . '_height'] . '" />';
|
||||
break;
|
||||
|
||||
case 'textarea':
|
||||
|
@@ -2999,8 +2999,8 @@ function add_permission_language()
|
||||
$lang_files = $finder
|
||||
->prefix('permissions_')
|
||||
->suffix(".$phpEx")
|
||||
->core_path('language/' . $user->lang_name . '/')
|
||||
->extension_directory('/language/' . $user->lang_name)
|
||||
->core_path('language/')
|
||||
->extension_directory('/language')
|
||||
->find();
|
||||
|
||||
foreach ($lang_files as $lang_file => $ext_name)
|
||||
|
@@ -150,7 +150,7 @@ function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key,
|
||||
*/
|
||||
function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list = false, $force_display = false)
|
||||
{
|
||||
global $config, $auth, $template, $user, $db, $phpbb_path_helper;
|
||||
global $config, $auth, $template, $user, $db, $phpbb_path_helper, $phpbb_dispatcher;
|
||||
|
||||
// We only return if the jumpbox is not forced to be displayed (in case it is needed for functionality)
|
||||
if (!$config['load_jumpbox'] && $force_display === false)
|
||||
@@ -205,20 +205,21 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list
|
||||
continue;
|
||||
}
|
||||
|
||||
$tpl_ary = array();
|
||||
if (!$display_jumpbox)
|
||||
{
|
||||
$template->assign_block_vars('jumpbox_forums', array(
|
||||
$tpl_ary[] = array(
|
||||
'FORUM_ID' => ($select_all) ? 0 : -1,
|
||||
'FORUM_NAME' => ($select_all) ? $user->lang['ALL_FORUMS'] : $user->lang['SELECT_FORUM'],
|
||||
'S_FORUM_COUNT' => $iteration,
|
||||
'LINK' => $phpbb_path_helper->append_url_params($action, array('f' => $forum_id)),
|
||||
));
|
||||
);
|
||||
|
||||
$iteration++;
|
||||
$display_jumpbox = true;
|
||||
}
|
||||
|
||||
$template->assign_block_vars('jumpbox_forums', array(
|
||||
$tpl_ary[] = array(
|
||||
'FORUM_ID' => $row['forum_id'],
|
||||
'FORUM_NAME' => $row['forum_name'],
|
||||
'SELECTED' => ($row['forum_id'] == $forum_id) ? ' selected="selected"' : '',
|
||||
@@ -227,7 +228,25 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list
|
||||
'S_IS_LINK' => ($row['forum_type'] == FORUM_LINK) ? true : false,
|
||||
'S_IS_POST' => ($row['forum_type'] == FORUM_POST) ? true : false,
|
||||
'LINK' => $phpbb_path_helper->append_url_params($action, array('f' => $row['forum_id'])),
|
||||
));
|
||||
);
|
||||
|
||||
/**
|
||||
* Modify the jumpbox before it is assigned to the template
|
||||
*
|
||||
* @event core.make_jumpbox_modify_tpl_ary
|
||||
* @var array row The data of the forum
|
||||
* @var array tpl_ary Template data of the forum
|
||||
* @since 3.1.10-RC1
|
||||
*/
|
||||
$vars = array(
|
||||
'row',
|
||||
'tpl_ary',
|
||||
);
|
||||
extract($phpbb_dispatcher->trigger_event('core.make_jumpbox_modify_tpl_ary', compact($vars)));
|
||||
|
||||
$template->assign_block_vars_array('jumpbox_forums', $tpl_ary);
|
||||
|
||||
unset($tpl_ary);
|
||||
|
||||
for ($i = 0; $i < $padding; $i++)
|
||||
{
|
||||
@@ -469,7 +488,7 @@ function decode_message(&$message, $bbcode_uid = '')
|
||||
$message = str_replace($match, $replace, $message);
|
||||
|
||||
$match = get_preg_expression('bbcode_htm');
|
||||
$replace = array('\1', '\1', '\3', '\1', '', '');
|
||||
$replace = array('\1', '\1', '\2', '\2', '\1', '', '');
|
||||
|
||||
$message = preg_replace($match, $replace, $message);
|
||||
}
|
||||
@@ -1091,17 +1110,8 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a
|
||||
unset($new_attachment_data);
|
||||
}
|
||||
|
||||
// Sort correctly
|
||||
if ($config['display_order'])
|
||||
{
|
||||
// Ascending sort
|
||||
krsort($attachments);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Descending sort
|
||||
ksort($attachments);
|
||||
}
|
||||
// Make sure attachments are properly ordered
|
||||
ksort($attachments);
|
||||
|
||||
foreach ($attachments as $attachment)
|
||||
{
|
||||
@@ -1309,8 +1319,6 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a
|
||||
$attachments = $compiled_attachments;
|
||||
unset($compiled_attachments);
|
||||
|
||||
$tpl_size = sizeof($attachments);
|
||||
|
||||
$unset_tpl = array();
|
||||
|
||||
preg_match_all('#<!\-\- ia([0-9]+) \-\->(.*?)<!\-\- ia\1 \-\->#', $message, $matches, PREG_PATTERN_ORDER);
|
||||
@@ -1318,8 +1326,7 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a
|
||||
$replace = array();
|
||||
foreach ($matches[0] as $num => $capture)
|
||||
{
|
||||
// Flip index if we are displaying the reverse way
|
||||
$index = ($config['display_order']) ? ($tpl_size-($matches[1][$num] + 1)) : $matches[1][$num];
|
||||
$index = $matches[1][$num];
|
||||
|
||||
$replace['from'][] = $matches[0][$num];
|
||||
$replace['to'][] = (isset($attachments[$index])) ? $attachments[$index] : sprintf($user->lang['MISSING_INLINE_ATTACHMENT'], $matches[2][array_search($index, $matches[1])]);
|
||||
@@ -1334,6 +1341,18 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a
|
||||
|
||||
$unset_tpl = array_unique($unset_tpl);
|
||||
|
||||
// Sort correctly
|
||||
if ($config['display_order'])
|
||||
{
|
||||
// Ascending sort
|
||||
krsort($attachments);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Descending sort
|
||||
ksort($attachments);
|
||||
}
|
||||
|
||||
// Needed to let not display the inlined attachments at the end of the post again
|
||||
foreach ($unset_tpl as $index)
|
||||
{
|
||||
|
@@ -479,7 +479,7 @@ function import_avatar_gallery($gallery_name = '', $subdirs_as_galleries = false
|
||||
$dir->close();
|
||||
}
|
||||
|
||||
for ($i = 0; $i < sizeof($dirlist); ++$i)
|
||||
for ($i = 0, $end = sizeof($dirlist); $i < $end; ++$i)
|
||||
{
|
||||
$dir = $dirlist[$i];
|
||||
|
||||
@@ -1425,7 +1425,7 @@ function get_path($src_path, $src_url, $test_file)
|
||||
$path_array = array();
|
||||
|
||||
$phpbb_parts = explode('/', $script_path);
|
||||
for ($i = 0; $i < sizeof($url_parts); ++$i)
|
||||
for ($i = 0, $end = sizeof($url_parts); $i < $end; ++$i)
|
||||
{
|
||||
if ($i < sizeof($phpbb_parts[$i]) && $url_parts[$i] == $phpbb_parts[$i])
|
||||
{
|
||||
@@ -1435,7 +1435,7 @@ function get_path($src_path, $src_url, $test_file)
|
||||
else
|
||||
{
|
||||
$path = '';
|
||||
for ($j = $i; $j < sizeof($phpbb_parts); ++$j)
|
||||
for ($j = $i, $end2 = sizeof($phpbb_parts); $j < $end2; ++$j)
|
||||
{
|
||||
$path .= '../';
|
||||
}
|
||||
@@ -2267,7 +2267,7 @@ function convert_bbcode($message, $convert_size = true, $extended_bbcodes = fals
|
||||
"\n\n"
|
||||
);
|
||||
|
||||
for ($i = 0; $i < sizeof($str_from); ++$i)
|
||||
for ($i = 0, $end = sizeof($str_from); $i < $end; ++$i)
|
||||
{
|
||||
$origx[] = '#\\' . str_replace(']', '\\]', $str_from[$i]) . '#is';
|
||||
$replx[] = $str_to[$i];
|
||||
@@ -2276,7 +2276,7 @@ function convert_bbcode($message, $convert_size = true, $extended_bbcodes = fals
|
||||
|
||||
if (preg_match_all('#\[email=([^\]]+)\](.*?)\[/email\]#i', $message, $m))
|
||||
{
|
||||
for ($i = 0; $i < sizeof($m[1]); ++$i)
|
||||
for ($i = 0, $end = sizeof($m[1]); $i < $end; ++$i)
|
||||
{
|
||||
if ($m[1][$i] == $m[2][$i])
|
||||
{
|
||||
@@ -2340,7 +2340,7 @@ function copy_file($src, $trg, $overwrite = false, $die_on_failure = true, $sour
|
||||
$parts = explode('/', $trg);
|
||||
unset($parts[sizeof($parts) - 1]);
|
||||
|
||||
for ($i = 0; $i < sizeof($parts); ++$i)
|
||||
for ($i = 0, $end = sizeof($parts); $i < $end; ++$i)
|
||||
{
|
||||
$path .= $parts[$i] . '/';
|
||||
|
||||
@@ -2440,7 +2440,7 @@ function copy_dir($src, $trg, $copy_subdirs = true, $overwrite = false, $die_on_
|
||||
|
||||
if ($copy_subdirs)
|
||||
{
|
||||
for ($i = 0; $i < sizeof($dirlist); ++$i)
|
||||
for ($i = 0, $end = sizeof($dirlist); $i < $end; ++$i)
|
||||
{
|
||||
$dir = $dirlist[$i];
|
||||
|
||||
@@ -2475,7 +2475,7 @@ function copy_dir($src, $trg, $copy_subdirs = true, $overwrite = false, $die_on_
|
||||
$convert->p_master->error(sprintf($str, implode('<br />', $bad_dirs)), __LINE__, __FILE__);
|
||||
}
|
||||
|
||||
for ($i = 0; $i < sizeof($filelist); ++$i)
|
||||
for ($i = 0, $end = sizeof($filelist); $i < $end; ++$i)
|
||||
{
|
||||
copy_file($src . $filelist[$i], $trg . $filelist[$i], $overwrite, $die_on_failure, $source_relative_path);
|
||||
}
|
||||
|
@@ -1076,7 +1076,7 @@ function display_custom_bbcodes()
|
||||
global $db, $template, $user, $phpbb_dispatcher;
|
||||
|
||||
// Start counting from 22 for the bbcode ids (every bbcode takes two ids - opening/closing)
|
||||
$num_predefined_bbcodes = 22;
|
||||
$num_predefined_bbcodes = NUM_PREDEFINED_BBCODES;
|
||||
|
||||
$sql_ary = array(
|
||||
'SELECT' => 'b.bbcode_id, b.bbcode_tag, b.bbcode_helpline',
|
||||
|
@@ -108,6 +108,7 @@ function wrap_img_in_html($src, $title)
|
||||
echo '<html>';
|
||||
echo '<head>';
|
||||
echo '<meta charset="utf-8">';
|
||||
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
|
||||
echo '<title>' . $title . '</title>';
|
||||
echo '</head>';
|
||||
echo '<body>';
|
||||
@@ -165,7 +166,7 @@ function send_file_to_browser($attachment, $upload_dir, $category)
|
||||
}
|
||||
|
||||
// Make sure the database record for the filesize is correct
|
||||
if ($size > 0 && $size != $attachment['filesize'])
|
||||
if ($size > 0 && $size != $attachment['filesize'] && strpos($attachment['physical_filename'], 'thumb_') === false)
|
||||
{
|
||||
// Update database record
|
||||
$sql = 'UPDATE ' . ATTACHMENTS_TABLE . '
|
||||
@@ -412,7 +413,7 @@ function set_modified_headers($stamp, $browser)
|
||||
global $request;
|
||||
|
||||
// let's see if we have to send the file at all
|
||||
$last_load = $request->header('Modified-Since') ? strtotime(trim($request->header('Modified-Since'))) : false;
|
||||
$last_load = $request->header('If-Modified-Since') ? strtotime(trim($request->header('If-Modified-Since'))) : false;
|
||||
|
||||
if (strpos(strtolower($browser), 'msie 6.0') === false && !phpbb_is_greater_ie_version($browser, 7))
|
||||
{
|
||||
|
@@ -639,14 +639,13 @@ class messenger
|
||||
$phpbb_container->get('config'),
|
||||
$phpbb_container->get('filesystem'),
|
||||
$phpbb_container->get('path_helper'),
|
||||
$phpbb_container,
|
||||
$phpbb_container->getParameter('core.root_path') . 'cache/',
|
||||
$phpbb_container->getParameter('core.cache_dir'),
|
||||
$phpbb_container->get('ext.manager'),
|
||||
new \phpbb\template\twig\loader(
|
||||
$phpbb_filesystem
|
||||
)
|
||||
),
|
||||
$phpbb_container->getParameter('core.root_path') . 'cache/',
|
||||
$phpbb_container->getParameter('core.cache_dir'),
|
||||
$phpbb_container->get('user'),
|
||||
$phpbb_container->get('template.twig.extensions.collection'),
|
||||
$phpbb_extension_manager
|
||||
|
@@ -1492,6 +1492,10 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll_ary, &$data
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (isset($data_ary['post_visibility']) && $data_ary['post_visibility'] !== false)
|
||||
{
|
||||
$post_visibility = $data_ary['post_visibility'];
|
||||
}
|
||||
|
||||
// MODs/Extensions are able to force any visibility on posts
|
||||
if (isset($data_ary['force_approved_state']))
|
||||
@@ -2299,7 +2303,9 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll_ary, &$data
|
||||
|
||||
$params = $add_anchor = '';
|
||||
|
||||
if ($post_visibility == ITEM_APPROVED)
|
||||
if ($post_visibility == ITEM_APPROVED ||
|
||||
($auth->acl_get('m_softdelete', $data_ary['forum_id']) && $post_visibility == ITEM_DELETED) ||
|
||||
($auth->acl_get('m_approve', $data_ary['forum_id']) && in_array($post_visibility, array(ITEM_UNAPPROVED, ITEM_REAPPROVE))))
|
||||
{
|
||||
$params .= '&t=' . $data_ary['topic_id'];
|
||||
|
||||
|
@@ -530,12 +530,28 @@ function add_warning($user_row, $warning, $send_pm = true, $post_id = 0)
|
||||
include_once($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx);
|
||||
include_once($phpbb_root_path . 'includes/message_parser.' . $phpEx);
|
||||
|
||||
$user_row['user_lang'] = (file_exists($phpbb_root_path . 'language/' . $user_row['user_lang'] . "/mcp.$phpEx")) ? $user_row['user_lang'] : $config['default_lang'];
|
||||
include($phpbb_root_path . 'language/' . basename($user_row['user_lang']) . "/mcp.$phpEx");
|
||||
// Attempt to translate warning to language of user being warned if user's language differs from issuer's language
|
||||
if ($user_row['user_lang'] != $user->lang_name)
|
||||
{
|
||||
$lang = array();
|
||||
|
||||
$user_row['user_lang'] = (file_exists($phpbb_root_path . 'language/' . basename($user_row['user_lang']) . "/mcp." . $phpEx)) ? $user_row['user_lang'] : $config['default_lang'];
|
||||
include($phpbb_root_path . 'language/' . basename($user_row['user_lang']) . "/mcp." . $phpEx);
|
||||
|
||||
$warn_pm_subject = $lang['WARNING_PM_SUBJECT'];
|
||||
$warn_pm_body = sprintf($lang['WARNING_PM_BODY'], $warning);
|
||||
|
||||
unset($lang);
|
||||
}
|
||||
else
|
||||
{
|
||||
$warn_pm_subject = $user->lang('WARNING_PM_SUBJECT');
|
||||
$warn_pm_body = $user->lang('WARNING_PM_BODY', $warning);
|
||||
}
|
||||
|
||||
$message_parser = new parse_message();
|
||||
|
||||
$message_parser->message = $user->lang('WARNING_PM_BODY', $warning);
|
||||
$message_parser->message = $warn_pm_body;
|
||||
$message_parser->parse(true, true, true, false, false, true, true);
|
||||
|
||||
$pm_data = array(
|
||||
@@ -553,7 +569,7 @@ function add_warning($user_row, $warning, $send_pm = true, $post_id = 0)
|
||||
'address_list' => array('u' => array($user_row['user_id'] => 'to')),
|
||||
);
|
||||
|
||||
submit_pm('post', $user->lang('WARNING_PM_SUBJECT'), $pm_data, false);
|
||||
submit_pm('post', $warn_pm_subject, $pm_data, false);
|
||||
}
|
||||
|
||||
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_USER_WARNING', false, array($user_row['username']));
|
||||
|
@@ -141,67 +141,67 @@ class bbcode_firstpass extends bbcode
|
||||
// To perform custom validation in extension, use $this->validate_bbcode_by_extension()
|
||||
// method which accepts variable number of parameters
|
||||
$this->bbcodes = array(
|
||||
'code' => array('bbcode_id' => 8, 'regexp' => array('#\[code(?:=([a-z]+))?\](.+\[/code\])#uis' => function ($match) use($bbcode_class)
|
||||
'code' => array('bbcode_id' => BBCODE_ID_CODE, 'regexp' => array('#\[code(?:=([a-z]+))?\](.+\[/code\])#uis' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_code($match[1], $match[2]);
|
||||
}
|
||||
)),
|
||||
'quote' => array('bbcode_id' => 0, 'regexp' => array('#\[quote(?:="(.*?)")?\](.+)\[/quote\]#uis' => function ($match) use($bbcode_class)
|
||||
'quote' => array('bbcode_id' => BBCODE_ID_QUOTE, 'regexp' => array('#\[quote(?:="(.*?)")?\](.+)\[/quote\]#uis' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_quote($match[0]);
|
||||
}
|
||||
)),
|
||||
'attachment' => array('bbcode_id' => 12, 'regexp' => array('#\[attachment=([0-9]+)\](.*?)\[/attachment\]#uis' => function ($match) use($bbcode_class)
|
||||
'attachment' => array('bbcode_id' => BBCODE_ID_ATTACH, 'regexp' => array('#\[attachment=([0-9]+)\](.*?)\[/attachment\]#uis' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_attachment($match[1], $match[2]);
|
||||
}
|
||||
)),
|
||||
'b' => array('bbcode_id' => 1, 'regexp' => array('#\[b\](.*?)\[/b\]#uis' => function ($match) use($bbcode_class)
|
||||
'b' => array('bbcode_id' => BBCODE_ID_B, 'regexp' => array('#\[b\](.*?)\[/b\]#uis' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_strong($match[1]);
|
||||
}
|
||||
)),
|
||||
'i' => array('bbcode_id' => 2, 'regexp' => array('#\[i\](.*?)\[/i\]#uis' => function ($match) use($bbcode_class)
|
||||
'i' => array('bbcode_id' => BBCODE_ID_I, 'regexp' => array('#\[i\](.*?)\[/i\]#uis' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_italic($match[1]);
|
||||
}
|
||||
)),
|
||||
'url' => array('bbcode_id' => 3, 'regexp' => array('#\[url(=(.*))?\](?(1)((?s).*(?-s))|(.*))\[/url\]#uiU' => function ($match) use($bbcode_class)
|
||||
'url' => array('bbcode_id' => BBCODE_ID_URL, 'regexp' => array('#\[url(=(.*))?\](?(1)((?s).*(?-s))|(.*))\[/url\]#uiU' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->validate_url($match[2], ($match[3]) ? $match[3] : $match[4]);
|
||||
}
|
||||
)),
|
||||
'img' => array('bbcode_id' => 4, 'regexp' => array('#\[img\](.*)\[/img\]#uiU' => function ($match) use($bbcode_class)
|
||||
'img' => array('bbcode_id' => BBCODE_ID_IMG, 'regexp' => array('#\[img\](.*)\[/img\]#uiU' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_img($match[1]);
|
||||
}
|
||||
)),
|
||||
'size' => array('bbcode_id' => 5, 'regexp' => array('#\[size=([\-\+]?\d+)\](.*?)\[/size\]#uis' => function ($match) use($bbcode_class)
|
||||
'size' => array('bbcode_id' => BBCODE_ID_SIZE, 'regexp' => array('#\[size=([\-\+]?\d+)\](.*?)\[/size\]#uis' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_size($match[1], $match[2]);
|
||||
}
|
||||
)),
|
||||
'color' => array('bbcode_id' => 6, 'regexp' => array('!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[/color\]!uis' => function ($match) use($bbcode_class)
|
||||
'color' => array('bbcode_id' => BBCODE_ID_COLOR, 'regexp' => array('!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[/color\]!uis' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_color($match[1], $match[2]);
|
||||
}
|
||||
)),
|
||||
'u' => array('bbcode_id' => 7, 'regexp' => array('#\[u\](.*?)\[/u\]#uis' => function ($match) use($bbcode_class)
|
||||
'u' => array('bbcode_id' => BBCODE_ID_U, 'regexp' => array('#\[u\](.*?)\[/u\]#uis' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_underline($match[1]);
|
||||
}
|
||||
)),
|
||||
'list' => array('bbcode_id' => 9, 'regexp' => array('#\[list(?:=(?:[a-z0-9]|disc|circle|square))?].*\[/list]#uis' => function ($match) use($bbcode_class)
|
||||
'list' => array('bbcode_id' => BBCODE_ID_LIST, 'regexp' => array('#\[list(?:=(?:[a-z0-9]|disc|circle|square))?].*\[/list]#uis' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_parse_list($match[0]);
|
||||
}
|
||||
)),
|
||||
'email' => array('bbcode_id' => 10, 'regexp' => array('#\[email=?(.*?)?\](.*?)\[/email\]#uis' => function ($match) use($bbcode_class)
|
||||
'email' => array('bbcode_id' => BBCODE_ID_EMAIL, 'regexp' => array('#\[email=?(.*?)?\](.*?)\[/email\]#uis' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->validate_email($match[1], $match[2]);
|
||||
}
|
||||
)),
|
||||
'flash' => array('bbcode_id' => 11, 'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ui' => function ($match) use($bbcode_class)
|
||||
'flash' => array('bbcode_id' => BBCODE_ID_FLASH, 'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ui' => function ($match) use($bbcode_class)
|
||||
{
|
||||
return $bbcode_class->bbcode_flash($match[1], $match[2], $match[3]);
|
||||
}
|
||||
|
@@ -472,10 +472,11 @@ class ucp_groups
|
||||
$avatar_data = null;
|
||||
$avatar_error = array();
|
||||
|
||||
/** @var \phpbb\avatar\manager $phpbb_avatar_manager */
|
||||
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
|
||||
|
||||
if ($config['allow_avatar'])
|
||||
{
|
||||
/* @var $phpbb_avatar_manager \phpbb\avatar\manager */
|
||||
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
|
||||
$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers();
|
||||
|
||||
// This is normalised data, without the group_ prefix
|
||||
@@ -658,6 +659,14 @@ class ucp_groups
|
||||
$avatars_enabled = false;
|
||||
$selected_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $avatar_data['avatar_type']));
|
||||
|
||||
// Assign min and max values before generating avatar driver html
|
||||
$template->assign_vars(array(
|
||||
'AVATAR_MIN_WIDTH' => $config['avatar_min_width'],
|
||||
'AVATAR_MAX_WIDTH' => $config['avatar_max_width'],
|
||||
'AVATAR_MIN_HEIGHT' => $config['avatar_min_height'],
|
||||
'AVATAR_MAX_HEIGHT' => $config['avatar_max_height'],
|
||||
));
|
||||
|
||||
foreach ($avatar_drivers as $current_driver)
|
||||
{
|
||||
$driver = $phpbb_avatar_manager->get_driver($current_driver);
|
||||
|
@@ -157,7 +157,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
|
||||
'S_SHOW_PM_BOX' => true,
|
||||
'S_ALLOW_MASS_PM' => ($config['allow_mass_pm'] && $auth->acl_get('u_masspm')) ? true : false,
|
||||
'S_GROUP_OPTIONS' => ($config['allow_mass_pm'] && $auth->acl_get('u_masspm_group')) ? $group_options : '',
|
||||
'U_FIND_USERNAME' => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=searchuser&form=postform&field=username_list&select_single=$select_single"),
|
||||
'U_FIND_USERNAME' => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=searchuser&form=postform&field=username_list&select_single=" . (int) $select_single),
|
||||
));
|
||||
}
|
||||
|
||||
@@ -739,6 +739,34 @@ function compose_pm($id, $mode, $action, $user_folders = array())
|
||||
$enable_urls = (isset($_POST['disable_magic_url'])) ? 0 : 1;
|
||||
$enable_sig = (!$config['allow_sig'] ||!$config['allow_sig_pm']) ? false : ((isset($_POST['attach_sig'])) ? true : false);
|
||||
|
||||
/**
|
||||
* Modify private message
|
||||
*
|
||||
* @event core.ucp_pm_compose_modify_parse_before
|
||||
* @var bool enable_bbcode Whether or not bbcode is enabled
|
||||
* @var bool enable_smilies Whether or not smilies are enabled
|
||||
* @var bool enable_urls Whether or not urls are enabled
|
||||
* @var bool enable_sig Whether or not signature is enabled
|
||||
* @var string subject PM subject text
|
||||
* @var object message_parser The message parser object
|
||||
* @var bool submit Whether or not the form has been sumitted
|
||||
* @var bool preview Whether or not the signature is being previewed
|
||||
* @var array error Any error strings
|
||||
* @since 3.1.10-RC1
|
||||
*/
|
||||
$vars = array(
|
||||
'enable_bbcode',
|
||||
'enable_smilies',
|
||||
'enable_urls',
|
||||
'enable_sig',
|
||||
'subject',
|
||||
'message_parser',
|
||||
'submit',
|
||||
'preview',
|
||||
'error',
|
||||
);
|
||||
extract($phpbb_dispatcher->trigger_event('core.ucp_pm_compose_modify_parse_before', compact($vars)));
|
||||
|
||||
// Parse Attachments - before checksum is calculated
|
||||
$message_parser->parse_attachments('fileupload', $action, 0, $submit, $preview, $refresh, true);
|
||||
|
||||
|
@@ -470,6 +470,8 @@ class ucp_profile
|
||||
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
|
||||
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
||||
|
||||
$preview = $request->is_set_post('preview');
|
||||
|
||||
$enable_bbcode = ($config['allow_sig_bbcode']) ? $user->optionget('sig_bbcode') : false;
|
||||
$enable_smilies = ($config['allow_sig_smilies']) ? $user->optionget('sig_smilies') : false;
|
||||
$enable_urls = ($config['allow_sig_links']) ? $user->optionget('sig_links') : false;
|
||||
@@ -478,7 +480,7 @@ class ucp_profile
|
||||
$signature = $request->variable('signature', $decoded_message['text'], true);
|
||||
$signature_preview = '';
|
||||
|
||||
if ($submit || $request->is_set_post('preview'))
|
||||
if ($submit || $preview)
|
||||
{
|
||||
$enable_bbcode = ($config['allow_sig_bbcode']) ? !$request->variable('disable_bbcode', false) : false;
|
||||
$enable_smilies = ($config['allow_sig_smilies']) ? !$request->variable('disable_smilies', false) : false;
|
||||
@@ -490,6 +492,31 @@ class ucp_profile
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify user signature on editing profile in UCP
|
||||
*
|
||||
* @event core.ucp_profile_modify_signature
|
||||
* @var bool enable_bbcode Whether or not bbcode is enabled
|
||||
* @var bool enable_smilies Whether or not smilies are enabled
|
||||
* @var bool enable_urls Whether or not urls are enabled
|
||||
* @var string signature Users signature text
|
||||
* @var array error Any error strings
|
||||
* @var bool submit Whether or not the form has been sumitted
|
||||
* @var bool preview Whether or not the signature is being previewed
|
||||
* @since 3.1.10-RC1
|
||||
* @change 3.2.0-RC2 Removed message parser
|
||||
*/
|
||||
$vars = array(
|
||||
'enable_bbcode',
|
||||
'enable_smilies',
|
||||
'enable_urls',
|
||||
'signature',
|
||||
'error',
|
||||
'submit',
|
||||
'preview',
|
||||
);
|
||||
extract($phpbb_dispatcher->trigger_event('core.ucp_profile_modify_signature', compact($vars)));
|
||||
|
||||
$bbcode_uid = $bbcode_bitfield = $bbcode_flags = '';
|
||||
$warn_msg = generate_text_for_storage(
|
||||
$signature,
|
||||
@@ -544,7 +571,10 @@ class ucp_profile
|
||||
// Replace "error" strings with their real, localised form
|
||||
$error = array_map(array($user, 'lang'), $error);
|
||||
|
||||
$decoded_message = generate_text_for_edit($signature, $bbcode_uid, $bbcode_bitfield);
|
||||
if ($request->is_set_post('preview'))
|
||||
{
|
||||
$decoded_message = generate_text_for_edit($signature, $bbcode_uid, $bbcode_flags);
|
||||
}
|
||||
|
||||
/** @var \phpbb\controller\helper $controller_helper */
|
||||
$controller_helper = $phpbb_container->get('controller.helper');
|
||||
@@ -661,6 +691,13 @@ class ucp_profile
|
||||
|
||||
$selected_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $user->data['user_avatar_type']));
|
||||
|
||||
$template->assign_vars(array(
|
||||
'AVATAR_MIN_WIDTH' => $config['avatar_min_width'],
|
||||
'AVATAR_MAX_WIDTH' => $config['avatar_max_width'],
|
||||
'AVATAR_MIN_HEIGHT' => $config['avatar_min_height'],
|
||||
'AVATAR_MAX_HEIGHT' => $config['avatar_max_height'],
|
||||
));
|
||||
|
||||
foreach ($avatar_drivers as $current_driver)
|
||||
{
|
||||
$driver = $phpbb_avatar_manager->get_driver($current_driver);
|
||||
|
@@ -373,7 +373,7 @@ class convertor
|
||||
$val = array($val);
|
||||
}
|
||||
|
||||
for ($j = 0; $j < sizeof($val); ++$j)
|
||||
for ($j = 0, $size = sizeof($val); $j < $size; ++$j)
|
||||
{
|
||||
if (preg_match('/LEFT JOIN ([a-z0-9_]+) AS ([a-z0-9_]+)/i', $val[$j], $m))
|
||||
{
|
||||
@@ -1044,7 +1044,7 @@ class convertor
|
||||
OR config_name = 'convert_db_user'");
|
||||
$db->sql_query('DELETE FROM ' . SESSIONS_TABLE);
|
||||
|
||||
@unlink($phpbb_root_path . 'cache/data_global.' . $phpEx);
|
||||
@unlink($phpbb_container->getParameter('core.cache_dir') . 'data_global.' . $phpEx);
|
||||
phpbb_cache_moderators($db, $cache, $auth);
|
||||
|
||||
// And finally, add a note to the log
|
||||
|
@@ -38,7 +38,7 @@ $dbms = $phpbb_config_php_file->convert_30_dbms_to_31($dbms);
|
||||
$convertor_data = array(
|
||||
'forum_name' => 'phpBB 2.0.x',
|
||||
'version' => '1.0.3',
|
||||
'phpbb_version' => '3.2.0-b2',
|
||||
'phpbb_version' => '3.2.0-RC1',
|
||||
'author' => '<a href="https://www.phpbb.com/">phpBB Limited</a>',
|
||||
'dbms' => $dbms,
|
||||
'dbhost' => $dbhost,
|
||||
|
@@ -23,7 +23,7 @@ if (php_sapi_name() !== 'cli')
|
||||
define('IN_PHPBB', true);
|
||||
define('IN_INSTALL', true);
|
||||
define('PHPBB_ENVIRONMENT', 'production');
|
||||
define('PHPBB_VERSION', '3.2.0-b2');
|
||||
define('PHPBB_VERSION', '3.2.0-RC1');
|
||||
$phpbb_root_path = __DIR__ . '/../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@@ -276,7 +276,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('use_system_cron', '0');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.2.0-b2');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.2.0-RC1');
|
||||
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');
|
||||
|
||||
|
@@ -225,6 +225,16 @@ $lang = array_merge($lang, array(
|
||||
|
||||
'BACK' => 'Back',
|
||||
|
||||
'CANNOT_CHANGE_FILE_GROUP' => 'Unable to change file group',
|
||||
'CANNOT_CHANGE_FILE_PERMISSIONS' => 'Unable to change file permissions',
|
||||
'CANNOT_COPY_FILES' => 'Unable to copy files',
|
||||
'CANNOT_CREATE_SYMLINK' => 'Unable to create a symlink',
|
||||
'CANNOT_DELETE_FILES' => 'Unable to delete files from the system',
|
||||
'CANNOT_DUMP_FILE' => 'Unable to dump file',
|
||||
'CANNOT_MIRROR_DIRECTORY' => 'Unable to mirror directory',
|
||||
'CANNOT_RENAME_FILE' => 'Unable to rename a file from the system',
|
||||
'CANNOT_TOUCH_FILES' => 'Unable to determine if the file exists',
|
||||
|
||||
'CONTAINER_EXCEPTION' => 'phpBB encountered an error building the container due to an installed extension. For this reason, all extensions have been temporarily disabled. Please try purging your forum cache. All extensions will automatically be re-enabled once the container error is resolved. If this error continues, please visit <a href="https://www.phpbb.com/support">phpBB.com</a> for support.',
|
||||
'EXCEPTION' => 'Exception',
|
||||
|
||||
@@ -606,6 +616,7 @@ $lang = array_merge($lang, array(
|
||||
|
||||
'LOG_ERROR_JABBER' => '<strong>Jabber error</strong><br />» %s',
|
||||
'LOG_ERROR_EMAIL' => '<strong>Email error</strong><br />» %s',
|
||||
'LOG_ERROR_CAPTCHA' => '<strong>CAPTCHA error</strong><br />» %s',
|
||||
|
||||
'LOG_FORUM_ADD' => '<strong>Created new forum</strong><br />» %s',
|
||||
'LOG_FORUM_COPIED_PERMISSIONS' => '<strong>Copied forum permissions</strong> from %1$s<br />» %2$s',
|
||||
|
@@ -40,6 +40,7 @@ $lang = array_merge($lang, array(
|
||||
'CAPTCHA_QA' => 'Q&A',
|
||||
'CONFIRM_QUESTION_EXPLAIN' => 'This question is a means of preventing automated form submissions by spambots.',
|
||||
'CONFIRM_QUESTION_WRONG' => 'You have provided an invalid answer to the question.',
|
||||
'CONFIRM_QUESTION_MISSING' => 'Questions for the captcha could not be retrieved. Please contact a board administrator.',
|
||||
|
||||
'QUESTION_ANSWERS' => 'Answers',
|
||||
'ANSWERS_EXPLAIN' => 'Please enter valid answers to the question, one per line.',
|
||||
@@ -60,5 +61,4 @@ $lang = array_merge($lang, array(
|
||||
|
||||
'QA_ERROR_MSG' => 'Please fill in all fields and enter at least one answer.',
|
||||
'QA_LAST_QUESTION' => 'You cannot delete all questions while the plugin is active.',
|
||||
|
||||
));
|
||||
|
@@ -82,6 +82,21 @@ $lang = array_merge($lang, array(
|
||||
'CLI_DESCRIPTION_THUMBNAIL_GENERATE' => 'Generate all missing thumbnails.',
|
||||
'CLI_DESCRIPTION_THUMBNAIL_RECREATE' => 'Recreate all thumbnails.',
|
||||
|
||||
'CLI_DESCRIPTION_USER_ACTIVATE' => 'Activate (or deactivate) a user account.',
|
||||
'CLI_DESCRIPTION_USER_ACTIVATE_USERNAME' => 'Username of the account to activate.',
|
||||
'CLI_DESCRIPTION_USER_ACTIVATE_DEACTIVATE' => 'Deactivate the user’s account',
|
||||
'CLI_DESCRIPTION_USER_ACTIVATE_ACTIVE' => 'The user is already active.',
|
||||
'CLI_DESCRIPTION_USER_ACTIVATE_INACTIVE' => 'The user is already inactive.',
|
||||
'CLI_DESCRIPTION_USER_ADD' => 'Add a new user.',
|
||||
'CLI_DESCRIPTION_USER_ADD_OPTION_USERNAME' => 'Username of the new user',
|
||||
'CLI_DESCRIPTION_USER_ADD_OPTION_PASSWORD' => 'Password of the new user',
|
||||
'CLI_DESCRIPTION_USER_ADD_OPTION_EMAIL' => 'E-mail address of the new user',
|
||||
'CLI_DESCRIPTION_USER_ADD_OPTION_NOTIFY' => 'Send account activation email to the new user (not sent by default)',
|
||||
'CLI_DESCRIPTION_USER_DELETE' => 'Delete a user account.',
|
||||
'CLI_DESCRIPTION_USER_DELETE_USERNAME' => 'Username of the user to delete',
|
||||
'CLI_DESCRIPTION_USER_DELETE_OPTION_POSTS' => 'Delete all posts by the user. Without this option, the user’s posts will be retained.',
|
||||
'CLI_DESCRIPTION_USER_RECLEAN' => 'Re-clean usernames.',
|
||||
|
||||
'CLI_EXTENSION_DISABLE_FAILURE' => 'Could not disable extension %s',
|
||||
'CLI_EXTENSION_DISABLE_SUCCESS' => 'Successfully disabled extension %s',
|
||||
'CLI_EXTENSION_ENABLE_FAILURE' => 'Could not enable extension %s',
|
||||
@@ -118,9 +133,24 @@ $lang = array_merge($lang, array(
|
||||
|
||||
'CLI_THUMBNAIL_NOTHING_TO_GENERATE' => 'No thumbnails to generate.',
|
||||
'CLI_THUMBNAIL_NOTHING_TO_DELETE' => 'No thumbnails to delete.',
|
||||
|
||||
'CLI_USER_ADD_SUCCESS' => 'Successfully added user %s.',
|
||||
'CLI_USER_DELETE_CONFIRM' => 'Are you sure you want to delete ‘%s’? [y/N]',
|
||||
'CLI_USER_RECLEAN_START' => 'Re-cleaning usernames',
|
||||
'CLI_USER_RECLEAN_DONE' => [
|
||||
0 => 'Re-cleaning complete. No usernames needed to be cleaned.',
|
||||
1 => 'Re-cleaning complete. %d username was cleaned.',
|
||||
2 => 'Re-cleaning complete. %d usernames were cleaned.',
|
||||
],
|
||||
));
|
||||
|
||||
// Additional help for commands.
|
||||
$lang = array_merge($lang, array(
|
||||
'CLI_HELP_CRON_RUN' => $lang['CLI_DESCRIPTION_CRON_RUN'] . ' Optionally you can specify a cron task name to run only the specified cron task.',
|
||||
'CLI_HELP_USER_ACTIVATE' => 'Activate a user account, or deactivate an account using the <info>--deactivate</info> option.
|
||||
To optionally send an activation email to the user, use the <info>--send-email</info> option.',
|
||||
'CLI_HELP_USER_ADD' => 'The <info>%command.name%</info> command adds a new user:
|
||||
If this command is run without options, you will be prompted to enter them.
|
||||
To optionally send an email to the new user, use the <info>--send-email</info> option.',
|
||||
'CLI_HELP_USER_RECLEAN' => 'Re-clean usernames will check all stored usernames and ensure clean versions are also stored. Cleaned usernames are a case insensitive form, NFC normalized and transformed to ASCII.',
|
||||
));
|
||||
|
@@ -677,7 +677,7 @@ $lang = array_merge($lang, array(
|
||||
'SEARCH_POSTS_BY' => 'Search posts by',
|
||||
'SEARCH_SELF' => 'Your posts',
|
||||
'SEARCH_TOPIC' => 'Search this topic…',
|
||||
'SEARCH_UNANSWERED' => 'Unanswered posts',
|
||||
'SEARCH_UNANSWERED' => 'Unanswered topics',
|
||||
'SEARCH_UNREAD' => 'Unread posts',
|
||||
'SEARCH_USER_POSTS' => 'Search user’s posts',
|
||||
'SECONDS' => 'Seconds',
|
||||
@@ -822,7 +822,7 @@ $lang = array_merge($lang, array(
|
||||
'USERS' => 'Users',
|
||||
'USE_PERMISSIONS' => 'Test out user’s permissions',
|
||||
|
||||
'USER_NEW_PERMISSION_DISALLOWED' => 'We are sorry, but you are not authorised to use this feature. You may have just registered here and may need to participate more to be able to use this feature.',
|
||||
'USER_NEW_PERMISSION_DISALLOWED' => 'We are sorry, but you are not authorised to use this feature. You may have just registered here and may need to participate more in discussions to be able to use this feature.',
|
||||
|
||||
'VARIANT_DATE_SEPARATOR' => ' / ', // Used in date format dropdown, eg: "Today, 13:37 / 01 Jan 2007, 13:37" ... to join a relative date with calendar date
|
||||
'VIEWED' => 'Viewed',
|
||||
|
@@ -1,115 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
*/
|
||||
if (!defined('IN_PHPBB'))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
// DEVELOPERS PLEASE NOTE
|
||||
//
|
||||
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
|
||||
//
|
||||
// Placeholders can now contain order information, e.g. instead of
|
||||
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
|
||||
// translators to re-order the output of data while ensuring it remains correct
|
||||
//
|
||||
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
|
||||
// equally where a string contains only two placeholders which are used to wrap text
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
|
||||
$help = array(
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Introduction'
|
||||
),
|
||||
array(
|
||||
0 => 'What is BBCode?',
|
||||
1 => 'BBCode is a special implementation of HTML. Whether you can actually use BBCode in your posts on the forum is determined by the administrator. In addition you can disable BBCode on a per post basis via the posting form. BBCode itself is similar in style to HTML, tags are enclosed in square brackets [ and ] rather than < and > and it offers greater control over what and how something is displayed. Depending on the template you are using you may find adding BBCode to your posts is made much easier through a clickable interface above the message area on the posting form. Even with this you may find the following guide useful.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Text Formatting'
|
||||
),
|
||||
array(
|
||||
0 => 'How to create bold, italic and underlined text',
|
||||
1 => 'BBCode includes tags to allow you to quickly change the basic style of your text. This is achieved in the following ways: <ul><li>To make a piece of text bold enclose it in <strong>[b][/b]</strong>, e.g. <br /><br /><strong>[b]</strong>Hello<strong>[/b]</strong><br /><br />will become <strong>Hello</strong></li><li>For underlining use <strong>[u][/u]</strong>, for example:<br /><br /><strong>[u]</strong>Good Morning<strong>[/u]</strong><br /><br />becomes <span style="text-decoration: underline">Good Morning</span></li><li>To italicise text use <strong>[i][/i]</strong>, e.g.<br /><br />This is <strong>[i]</strong>Great!<strong>[/i]</strong><br /><br />would give This is <i>Great!</i></li></ul>'
|
||||
),
|
||||
array(
|
||||
0 => 'How to change the text colour or size',
|
||||
1 => 'To alter the colour or size of your text the following tags can be used. Keep in mind that how the output appears will depend on the viewers browser and system: <ul><li>Changing the colour of text is achieved by wrapping it in <strong>[color=][/color]</strong>. You can specify either a recognised colour name (eg. red, blue, yellow, etc.) or the hexadecimal triplet alternative, e.g. #FFFFFF, #000000. For example, to create red text you could use:<br /><br /><strong>[color=red]</strong>Hello!<strong>[/color]</strong><br /><br />or<br /><br /><strong>[color=#FF0000]</strong>Hello!<strong>[/color]</strong><br /><br />Both will output <span style="color:red">Hello!</span></li><li>Changing the text size is achieved in a similar way using <strong>[size=][/size]</strong>. This tag is dependent on the template the user has selected but the recommended format is a numerical value representing the text size in percent, starting at 20 (very small) through to 200 (very large) by default. For example:<br /><br /><strong>[size=30]</strong>SMALL<strong>[/size]</strong><br /><br />will generally be <span style="font-size:30%;">SMALL</span><br /><br />whereas:<br /><br /><strong>[size=200]</strong>HUGE!<strong>[/size]</strong><br /><br />will be <span style="font-size:200%;">HUGE!</span></li></ul>'
|
||||
),
|
||||
array(
|
||||
0 => 'Can I combine formatting tags?',
|
||||
1 => 'Yes, of course you can, for example to get someones attention you may write:<br /><br /><strong>[size=200][color=red][b]</strong>LOOK AT ME!<strong>[/b][/color][/size]</strong><br /><br />this would output <span style="color:red;font-size:200%;"><strong>LOOK AT ME!</strong></span><br /><br />We don’t recommend you output lots of text that looks like this though! Remember it is up to you, the poster, to ensure tags are closed correctly. For example the following is incorrect:<br /><br /><strong>[b][u]</strong>This is wrong<strong>[/b][/u]</strong>'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Quoting and outputting fixed-width text'
|
||||
),
|
||||
array(
|
||||
0 => 'Quoting text in replies',
|
||||
1 => 'There are two ways you can quote text, with a reference or without.<ul><li>When you utilise the Quote function to reply to a post on the board you should notice that the post text is added to the message window enclosed in a <strong>[quote=""][/quote]</strong> block. This method allows you to quote with a reference to a person or whatever else you choose to put! For example to quote a piece of text Mr. Blobby wrote you would enter:<br /><br /><strong>[quote="Mr. Blobby"]</strong>The text Mr. Blobby wrote would go here<strong>[/quote]</strong><br /><br />The resulting output will automatically add "Mr. Blobby wrote:" before the actual text. Remember you <strong>must</strong> include the quotation marks "" around the name you are quoting, they are not optional.</li><li>The second method allows you to blindly quote something. To utilise this enclose the text in <strong>[quote][/quote]</strong> tags. When you view the message it will simply show the text within a quotation block.</li></ul>'
|
||||
),
|
||||
array(
|
||||
0 => 'Outputting code or fixed width data',
|
||||
1 => 'If you want to output a piece of code or in fact anything that requires a fixed width, e.g. Courier type font you should enclose the text in <strong>[code][/code]</strong> tags, e.g.<br /><br /><strong>[code]</strong>echo "This is some code";<strong>[/code]</strong><br /><br />All formatting used within <strong>[code][/code]</strong> tags is retained when you later view it. PHP syntax highlighting can be enabled using <strong>[code=php][/code]</strong> and is recommended when posting PHP code samples as it improves readability.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Generating lists'
|
||||
),
|
||||
array(
|
||||
0 => 'Creating an Unordered list',
|
||||
1 => 'BBCode supports two types of lists, unordered and ordered. They are essentially the same as their HTML equivalents. An unordered list outputs each item in your list sequentially one after the other indenting each with a bullet character. To create an unordered list you use <strong>[list][/list]</strong> and define each item within the list using <strong>[*]</strong>. For example to list your favourite colours you could use:<br /><br /><strong>[list]</strong><br /><strong>[*]</strong>Red<br /><strong>[*]</strong>Blue<br /><strong>[*]</strong>Yellow<br /><strong>[/list]</strong><br /><br />This would generate the following list:<ul><li>Red</li><li>Blue</li><li>Yellow</li></ul><br />Alternatively you can specify the list’s bullet style using <strong>[list=disc][/list]</strong>, <strong>[list=circle][/list]</strong>, or <strong>[list=square][/list]</strong>.'
|
||||
),
|
||||
array(
|
||||
0 => 'Creating an Ordered list',
|
||||
1 => 'The second type of list, an ordered list, gives you control over what is output before each item. To create an ordered list you use <strong>[list=1][/list]</strong> to create a numbered list or alternatively <strong>[list=a][/list]</strong> for an alphabetical list. As with the unordered list, items are specified using <strong>[*]</strong>. For example:<br /><br /><strong>[list=1]</strong><br /><strong>[*]</strong>Go to the shops<br /><strong>[*]</strong>Buy a new computer<br /><strong>[*]</strong>Swear at computer when it crashes<br /><strong>[/list]</strong><br /><br />will generate the following:<ol style="list-style-type: decimal;"><li>Go to the shops</li><li>Buy a new computer</li><li>Swear at computer when it crashes</li></ol>Whereas for an alphabetical list you would use:<br /><br /><strong>[list=a]</strong><br /><strong>[*]</strong>The first possible answer<br /><strong>[*]</strong>The second possible answer<br /><strong>[*]</strong>The third possible answer<br /><strong>[/list]</strong><br /><br />giving<ol style="list-style-type: lower-alpha"><li>The first possible answer</li><li>The second possible answer</li><li>The third possible answer</li></ol><br /><strong>[list=A]</strong><br /><strong>[*]</strong>The first possible answer<br /><strong>[*]</strong>The second possible answer<br /><strong>[*]</strong>The third possible answer<br /><strong>[/list]</strong><br /><br />giving<ol style="list-style-type: upper-alpha"><li>The first possible answer</li><li>The second possible answer</li><li>The third possible answer</li></ol><br /><strong>[list=i]</strong><br /><strong>[*]</strong>The first possible answer<br /><strong>[*]</strong>The second possible answer<br /><strong>[*]</strong>The third possible answer<br /><strong>[/list]</strong><br /><br />giving<ol style="list-style-type: lower-roman"><li>The first possible answer</li><li>The second possible answer</li><li>The third possible answer</li></ol><br /><strong>[list=I]</strong><br /><strong>[*]</strong>The first possible answer<br /><strong>[*]</strong>The second possible answer<br /><strong>[*]</strong>The third possible answer<br /><strong>[/list]</strong><br /><br />giving<ol style="list-style-type: upper-roman"><li>The first possible answer</li><li>The second possible answer</li><li>The third possible answer</li></ol>'
|
||||
),
|
||||
// This block will switch the FAQ-Questions to the second template column
|
||||
array(
|
||||
0 => '--',
|
||||
1 => '--'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Creating Links'
|
||||
),
|
||||
array(
|
||||
0 => 'Linking to another site',
|
||||
1 => 'phpBB BBCode supports a number of ways of creating URIs (Uniform Resource Indicators) better known as URLs.<ul><li>The first of these uses the <strong>[url=][/url]</strong> tag, whatever you type after the = sign will cause the contents of that tag to act as a URL. For example to link to phpBB.com you could use:<br /><br /><strong>[url=https://www.phpbb.com/]</strong>Visit phpBB!<strong>[/url]</strong><br /><br />This would generate the following link, <a href="https://www.phpbb.com/">Visit phpBB!</a> Please notice that the link opens in the same window or a new window depending on the users browser preferences.</li><li>If you want the URL itself displayed as the link you can do this by simply using:<br /><br /><strong>[url]</strong>https://www.phpbb.com/<strong>[/url]</strong><br /><br />This would generate the following link, <a href="https://www.phpbb.com/">https://www.phpbb.com/</a></li><li>Additionally, phpBB features something called <i>Magic Links</i>, this will turn any syntactically correct URL into a link without you needing to specify any tags or even the leading http://. For example typing www.phpbb.com into your message will automatically lead to <a href="http://www.phpbb.com/">www.phpbb.com</a> being output when you view the message.</li><li>The same thing applies equally to email addresses, you can either specify an address explicitly for example:<br /><br /><strong>[email]</strong>no.one@domain.adr<strong>[/email]</strong><br /><br />which will output <a href="mailto:no.one@domain.adr">no.one@domain.adr</a> or you can just type no.one@domain.adr into your message and it will be automatically converted when you view.</li></ul>As with all the BBCode tags you can wrap URLs around any of the other tags such as <strong>[img][/img]</strong> (see next entry), <strong>[b][/b]</strong>, etc. As with the formatting tags it is up to you to ensure the correct open and close order is following, for example:<br /><br /><strong>[url=https://www.phpbb.com/][img]</strong>https://www.phpbb.com/theme/images/logos/blue/160x52.png<strong>[/url][/img]</strong><br /><br />is <span style="text-decoration: underline">not</span> correct which may lead to your post being deleted so take care.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Showing images in posts'
|
||||
),
|
||||
array(
|
||||
0 => 'Adding an image to a post',
|
||||
1 => 'phpBB BBCode incorporates a tag for including images in your posts. Two very important things to remember when using this tag are: many users do not appreciate lots of images being shown in posts and secondly the image you display must already be available on the internet (it cannot exist only on your computer for example, unless you run a webserver!). To display an image you must surround the URL pointing to the image with <strong>[img][/img]</strong> tags. For example:<br /><br /><strong>[img]</strong>https://www.phpbb.com/theme/images/logos/blue/160x52.png<strong>[/img]</strong><br /><br />As noted in the URL section above you can wrap an image in a <strong>[url][/url]</strong> tag if you wish, e.g.<br /><br /><strong>[url=https://www.phpbb.com/][img]</strong>https://www.phpbb.com/theme/images/logos/blue/160x52.png<strong>[/img][/url]</strong><br /><br />would generate:<br /><br /><a href="https://www.phpbb.com/"><img src="https://www.phpbb.com/theme/images/logos/blue/160x52.png" alt="" /></a>'
|
||||
),
|
||||
array(
|
||||
0 => 'Adding attachments into a post',
|
||||
1 => 'Attachments can now be placed in any part of a post by using the new <strong>[attachment=][/attachment]</strong> BBCode, if the attachments functionality has been enabled by a board administrator and if you are given the appropriate permissions to create attachments. Within the posting screen is a drop-down box (respectively a button) for placing attachments inline.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Other matters'
|
||||
),
|
||||
array(
|
||||
0 => 'Can I add my own tags?',
|
||||
1 => 'If you are an administrator on this board and have the proper permissions, you can add further BBCodes through the Custom BBCodes section.'
|
||||
),
|
||||
);
|
@@ -1,355 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
*/
|
||||
if (!defined('IN_PHPBB'))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
// DEVELOPERS PLEASE NOTE
|
||||
//
|
||||
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
|
||||
//
|
||||
// Placeholders can now contain order information, e.g. instead of
|
||||
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
|
||||
// translators to re-order the output of data while ensuring it remains correct
|
||||
//
|
||||
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
|
||||
// equally where a string contains only two placeholders which are used to wrap text
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
|
||||
$help = array(
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Login and Registration Issues'
|
||||
),
|
||||
array(
|
||||
0 => 'Why do I need to register?',
|
||||
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(
|
||||
0 => 'What is COPPA?',
|
||||
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 owners 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(
|
||||
0 => 'Why can’t I register?',
|
||||
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 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.'
|
||||
),
|
||||
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(
|
||||
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.'
|
||||
),
|
||||
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 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(
|
||||
0 => 'Why do I get logged off automatically?',
|
||||
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(
|
||||
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. 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(
|
||||
0 => '--',
|
||||
1 => 'User Preferences and settings'
|
||||
),
|
||||
array(
|
||||
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 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(
|
||||
0 => 'The times are not correct!',
|
||||
1 => 'It is possible the time displayed is from a timezone different from the one you are in. If this is the case, visit your User Control Panel and change your timezone to match your particular area, e.g. London, Paris, New York, Sydney, etc. Please note that changing the timezone, like most settings, can only be done by registered users. If you are not registered, this is a good time to do so.'
|
||||
),
|
||||
array(
|
||||
0 => 'I changed the timezone and the time is still wrong!',
|
||||
1 => 'If you are sure you have set the timezone correctly and the time is still incorrect, then the time stored on the server clock is incorrect. Please notify an administrator to correct the problem.'
|
||||
),
|
||||
array(
|
||||
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 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(
|
||||
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 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(
|
||||
0 => 'What is my rank and how do I change it?',
|
||||
1 => 'Ranks, which appear below your username, indicate the number of posts you have made or identify certain users, e.g. moderators and administrators. In general, you cannot directly change the wording of any board ranks as they are set by the board administrator. Please do not abuse the board by posting unnecessarily just to increase your rank. Most boards will not tolerate this and the moderator or administrator will simply lower your post count.'
|
||||
),
|
||||
array(
|
||||
0 => 'When I click the email link for a user it asks me to login?',
|
||||
1 => 'Only registered users can send email to other users via the built-in email form, and only if the administrator has enabled this feature. This is to prevent malicious use of the email system by anonymous users.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Posting Issues'
|
||||
),
|
||||
array(
|
||||
0 => 'How do I create a new topic or post a reply?',
|
||||
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(
|
||||
0 => 'How do I edit or delete a post?',
|
||||
1 => 'Unless you are a board administrator or moderator, you can only edit or delete your own posts. You can edit a post by clicking the edit button for the relevant post, sometimes for only a limited time after the post was made. If someone has already replied to the post, you will find a small piece of text output below the post when you return to the topic which lists the number of times you edited it along with the date and time. This will only appear if someone has made a reply; it will not appear if a moderator or administrator edited the post, though they may leave a note as to why they’ve edited the post at their own discretion. Please note that normal users cannot delete a post once someone has replied.'
|
||||
),
|
||||
array(
|
||||
0 => 'How do I add a signature to my post?',
|
||||
1 => 'To add a signature to a post you must first create one via your User Control Panel. Once created, you can check the <em>Attach a signature</em> box on the posting form to add your signature. You can also add a signature by default to all your posts by checking the appropriate radio button in the User Control Panel. If you do so, you can still prevent a signature being added to individual posts by un-checking the add signature box within the posting form.'
|
||||
),
|
||||
array(
|
||||
0 => 'How do I create a poll?',
|
||||
1 => 'When posting a new topic or editing the first post of a topic, click the “Poll creation” tab below the main posting form; if you cannot see this, you do not have appropriate permissions to create polls. Enter a title and at least two options in the appropriate fields, making sure each option is on a separate line in the textarea. You can also set the number of options users may select during voting under “Options per user”, a time limit in days for the poll (0 for infinite duration) and lastly the option to allow users to amend their votes.'
|
||||
),
|
||||
array(
|
||||
0 => 'Why can’t I add more poll options?',
|
||||
1 => 'The limit for poll options is set by the board administrator. If you feel you need to add more options to your poll than the allowed amount, contact the board administrator.'
|
||||
),
|
||||
array(
|
||||
0 => 'How do I edit or delete a poll?',
|
||||
1 => 'As with posts, polls can only be edited by the original poster, a moderator or an administrator. To edit a poll, click to edit the first post in the topic; this always has the poll associated with it. If no one has cast a vote, users can delete the poll or edit any poll option. However, if members have already placed votes, only moderators or administrators can edit or delete it. This prevents the poll’s options from being changed mid-way through a poll.'
|
||||
),
|
||||
array(
|
||||
0 => 'Why can’t I access a forum?',
|
||||
1 => 'Some forums may be limited to certain users or groups. To view, read, post or perform another action you may need special permissions. Contact a moderator or board administrator to grant you access.'
|
||||
),
|
||||
array(
|
||||
0 => 'Why can’t I add attachments?',
|
||||
1 => 'Attachment permissions are granted on a per forum, per group, or per user basis. The board administrator may not have allowed attachments to be added for the specific forum you are posting in, or perhaps only certain groups can post attachments. Contact the board administrator if you are unsure about why you are unable to add attachments.'
|
||||
),
|
||||
array(
|
||||
0 => 'Why did I receive a warning?',
|
||||
1 => 'Each board administrator has their own set of rules for their site. If you have broken a rule, you may be issued a warning. Please note that this is the board administrator’s decision, and the phpBB Limited has nothing to do with the warnings on the given site. Contact the board administrator if you are unsure about why you were issued a warning.'
|
||||
),
|
||||
array(
|
||||
0 => 'How can I report posts to a moderator?',
|
||||
1 => 'If the board administrator has allowed it, you should see a button for reporting posts next to the post you wish to report. Clicking this will walk you through the steps necessary to report the post.'
|
||||
),
|
||||
array(
|
||||
0 => 'What is the “Save” button for in topic posting?',
|
||||
1 => 'This allows you to save drafts to be completed and submitted at a later date. To reload a saved draft, visit the User Control Panel.'
|
||||
),
|
||||
array(
|
||||
0 => 'Why does my post need to be approved?',
|
||||
1 => 'The board administrator may have decided that posts in the forum you are posting to require review before submission. It is also possible that the administrator has placed you in a group of users whose posts require review before submission. Please contact the board administrator for further details.'
|
||||
),
|
||||
array(
|
||||
0 => 'How do I bump my topic?',
|
||||
1 => 'By clicking the “Bump topic” link when you are viewing it, you can “bump” the topic to the top of the forum on the first page. However, if you do not see this, then topic bumping may be disabled or the time allowance between bumps has not yet been reached. It is also possible to bump the topic simply by replying to it, however, be sure to follow the board rules when doing so.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Formatting and Topic Types'
|
||||
),
|
||||
array(
|
||||
0 => 'What is BBCode?',
|
||||
1 => 'BBCode is a special implementation of HTML, offering great formatting control on particular objects in a post. The use of BBCode is granted by the administrator, but it can also be disabled on a per post basis from the posting form. BBCode itself is similar in style to HTML, but tags are enclosed in square brackets [ and ] rather than < and >. For more information on BBCode see the guide which can be accessed from the posting page.'
|
||||
),
|
||||
array(
|
||||
0 => 'Can I use HTML?',
|
||||
1 => 'No. It is not possible to post HTML on this board and have it rendered as HTML. Most formatting which can be carried out using HTML can be applied using BBCode instead.'
|
||||
),
|
||||
array(
|
||||
0 => 'What are Smilies?',
|
||||
1 => 'Smilies, or Emoticons, are small images which can be used to express a feeling using a short code, e.g. :) denotes happy, while :( denotes sad. The full list of emoticons can be seen in the posting form. Try not to overuse smilies, however, as they can quickly render a post unreadable and a moderator may edit them out or remove the post altogether. The board administrator may also have set a limit to the number of smilies you may use within a post.'
|
||||
),
|
||||
array(
|
||||
0 => 'Can I post images?',
|
||||
1 => 'Yes, images can be shown in your posts. If the administrator has allowed attachments, you may be able to upload the image to the board. Otherwise, you must link to an image stored on a publicly accessible web server, e.g. http://www.example.com/my-picture.gif. You cannot link to pictures stored on your own PC (unless it is a publicly accessible server) nor images stored behind authentication mechanisms, e.g. hotmail or yahoo mailboxes, password protected sites, etc. To display the image use the BBCode [img] tag.'
|
||||
),
|
||||
array(
|
||||
0 => 'What are global announcements?',
|
||||
1 => 'Global announcements contain important information and you should read them whenever possible. They will appear at the top of every forum and within your User Control Panel. Global announcement permissions are granted by the board administrator.'
|
||||
),
|
||||
array(
|
||||
0 => 'What are announcements?',
|
||||
1 => 'Announcements often contain important information for the forum you are currently reading and you should read them whenever possible. Announcements appear at the top of every page in the forum to which they are posted. As with global announcements, announcement permissions are granted by the board administrator.'
|
||||
),
|
||||
array(
|
||||
0 => 'What are sticky topics?',
|
||||
1 => 'Sticky topics within the forum appear below announcements and only on the first page. They are often quite important so you should read them whenever possible. As with announcements and global announcements, sticky topic permissions are granted by the board administrator.'
|
||||
),
|
||||
array(
|
||||
0 => 'What are locked topics?',
|
||||
1 => 'Locked topics are topics where users can no longer reply and any poll it contained was automatically ended. Topics may be locked for many reasons and were set this way by either the forum moderator or board administrator. You may also be able to lock your own topics depending on the permissions you are granted by the board administrator.'
|
||||
),
|
||||
array(
|
||||
0 => 'What are topic icons?',
|
||||
1 => 'Topic icons are author chosen images associated with posts to indicate their content. The ability to use topic icons depends on the permissions set by the board administrator.'
|
||||
),
|
||||
// This block will switch the FAQ-Questions to the second template column
|
||||
array(
|
||||
0 => '--',
|
||||
1 => '--'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'User Levels and Groups'
|
||||
),
|
||||
array(
|
||||
0 => 'What are Administrators?',
|
||||
1 => 'Administrators are members assigned with the highest level of control over the entire board. These members can control all facets of board operation, including setting permissions, banning users, creating usergroups or moderators, etc., dependent upon the board founder and what permissions he or she has given the other administrators. They may also have full moderator capabilities in all forums, depending on the settings put forth by the board founder.'
|
||||
),
|
||||
array(
|
||||
0 => 'What are Moderators?',
|
||||
1 => 'Moderators are individuals (or groups of individuals) who look after the forums from day to day. They have the authority to edit or delete posts and lock, unlock, move, delete and split topics in the forum they moderate. Generally, moderators are present to prevent users from going off-topic or posting abusive or offensive material.'
|
||||
),
|
||||
array(
|
||||
0 => 'What are usergroups?',
|
||||
1 => 'Usergroups are groups of users that divide the community into manageable sections board administrators can work with. Each user can belong to several groups and each group can be assigned individual permissions. This provides an easy way for administrators to change permissions for many users at once, such as changing moderator permissions or granting users access to a private forum.'
|
||||
),
|
||||
array(
|
||||
0 => 'Where are the usergroups and how do I join one?',
|
||||
1 => 'You can view all usergroups via the “Usergroups” link within your User Control Panel. If you would like to join one, proceed by clicking the appropriate button. Not all groups have open access, however. Some may require approval to join, some may be closed and some may even have hidden memberships. If the group is open, you can join it by clicking the appropriate button. If a group requires approval to join you may request to join by clicking the appropriate button. The user group leader will need to approve your request and may ask why you want to join the group. Please do not harass a group leader if they reject your request; they will have their reasons.'
|
||||
),
|
||||
array(
|
||||
0 => 'How do I become a usergroup leader?',
|
||||
1 => 'A usergroup leader is usually assigned when usergroups are initially created by a board administrator. If you are interested in creating a usergroup, your first point of contact should be an administrator; try sending a private message.',
|
||||
),
|
||||
array(
|
||||
0 => 'Why do some usergroups appear in a different colour?',
|
||||
1 => 'It is possible for the board administrator to assign a colour to the members of a usergroup to make it easy to identify the members of this group.'
|
||||
),
|
||||
array(
|
||||
0 => 'What is a “Default usergroup”?',
|
||||
1 => 'If you are a member of more than one usergroup, your default is used to determine which group colour and group rank should be shown for you by default. The board administrator may grant you permission to change your default usergroup via your User Control Panel.'
|
||||
),
|
||||
array(
|
||||
0 => 'What is “The team” link?',
|
||||
1 => 'This page provides you with a list of board staff, including board administrators and moderators and other details such as the forums they moderate.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Private Messaging'
|
||||
),
|
||||
array(
|
||||
0 => 'I cannot send private messages!',
|
||||
1 => 'There are three reasons for this; you are not registered and/or not logged on, the board administrator has disabled private messaging for the entire board, or the board administrator has prevented you from sending messages. Contact a board administrator for more information.'
|
||||
),
|
||||
array(
|
||||
0 => 'I keep getting unwanted private messages!',
|
||||
1 => 'You can automatically delete private messages from a user by using message rules within your User Control Panel. If you are receiving abusive private messages from a particular user, report the messages to the moderators; they have the power to prevent a user from sending private messages.'
|
||||
),
|
||||
array(
|
||||
0 => 'I have received a spamming or abusive email from someone on this board!',
|
||||
1 => 'We are sorry to hear that. The email form feature of this board includes safeguards to try and track users who send such posts, so email the board administrator with a full copy of the email you received. It is very important that this includes the headers that contain the details of the user that sent the email. The board administrator can then take action.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Friends and Foes'
|
||||
),
|
||||
array(
|
||||
0 => 'What are my Friends and Foes lists?',
|
||||
1 => 'You can use these lists to organise other members of the board. Members added to your friends list will be listed within your User Control Panel for quick access to see their online status and to send them private messages. Subject to template support, posts from these users may also be highlighted. If you add a user to your foes list, any posts they make will be hidden by default.'
|
||||
),
|
||||
array(
|
||||
0 => 'How can I add / remove users to my Friends or Foes list?',
|
||||
1 => 'You can add users to your list in two ways. Within each user’s profile, there is a link to add them to either your Friend or Foe list. Alternatively, from your User Control Panel, you can directly add users by entering their member name. You may also remove users from your list using the same page.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Searching the Forums'
|
||||
),
|
||||
array(
|
||||
0 => 'How can I search a forum or forums?',
|
||||
1 => 'Enter a search term in the search box located on the index, forum or topic pages. Advanced search can be accessed by clicking the “Advance Search” link which is available on all pages on the forum. How to access the search may depend on the style used.'
|
||||
),
|
||||
array(
|
||||
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 phpBB. Be more specific and use the options available within Advanced search.',
|
||||
),
|
||||
array(
|
||||
0 => 'Why does my search return a blank page!?',
|
||||
1 => 'Your search returned too many results for the webserver to handle. Use “Advanced search” and be more specific in the terms used and forums that are to be searched.'
|
||||
),
|
||||
array(
|
||||
0 => 'How do I search for members?',
|
||||
1 => 'Visit to the “Members” page and click the “Find a member” link.'
|
||||
),
|
||||
array(
|
||||
0 => 'How can I find my own posts and topics?',
|
||||
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(
|
||||
0 => '--',
|
||||
1 => 'Subscriptions and Bookmarks',
|
||||
),
|
||||
array(
|
||||
0 => 'What is the difference between bookmarking and subscribing?',
|
||||
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(
|
||||
0 => 'How do I bookmark or subscribe to specific topics?',
|
||||
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(
|
||||
0 => 'How do I remove my subscriptions?',
|
||||
1 => 'To remove your subscriptions, go to your User Control Panel and follow the links to your subscriptions.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'Attachments'
|
||||
),
|
||||
array(
|
||||
0 => 'What attachments are allowed on this board?',
|
||||
1 => 'Each board administrator can allow or disallow certain attachment types. If you are unsure what is allowed to be uploaded, contact the board administrator for assistance.'
|
||||
),
|
||||
array(
|
||||
0 => 'How do I find all my attachments?',
|
||||
1 => 'To find your list of attachments that you have uploaded, go to your User Control Panel and follow the links to the attachments section.'
|
||||
),
|
||||
array(
|
||||
0 => '--',
|
||||
1 => 'phpBB Issues',
|
||||
),
|
||||
array(
|
||||
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, 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(
|
||||
0 => 'Why isn’t X feature available?',
|
||||
1 => 'This software was written by and licensed through phpBB Limited. If you believe a feature needs to be added please visit the <a href="https://www.phpbb.com/ideas/">phpBB Ideas Centre</a>, where you can upvote existing ideas or suggest new features.'
|
||||
),
|
||||
array(
|
||||
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.'
|
||||
),
|
||||
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.',
|
||||
),
|
||||
);
|
@@ -90,15 +90,19 @@ $lang = array_merge($lang, array(
|
||||
// Requirements translation
|
||||
$lang = array_merge($lang, array(
|
||||
// Filesystem requirements
|
||||
'FILE_NOT_EXISTS' => 'File not exists',
|
||||
'FILE_NOT_EXISTS_EXPLAIN' => 'To be able to install phpBB the %1$s file needs to exist.',
|
||||
'FILE_NOT_WRITABLE' => 'File not writable',
|
||||
'FILE_NOT_WRITABLE_EXPLAIN' => 'To be able to install phpBB the %1$s file needs to be writable.',
|
||||
'FILE_NOT_EXISTS' => 'File does not exist',
|
||||
'FILE_NOT_EXISTS_EXPLAIN' => 'To be able to install phpBB the %1$s file needs to exist.',
|
||||
'FILE_NOT_EXISTS_EXPLAIN_OPTIONAL' => 'It is recommended that the %1$s file exist for a better forum user experience.',
|
||||
'FILE_NOT_WRITABLE' => 'File is not writable',
|
||||
'FILE_NOT_WRITABLE_EXPLAIN' => 'To be able to install phpBB the %1$s file needs to be writable.',
|
||||
'FILE_NOT_WRITABLE_EXPLAIN_OPTIONAL' => 'It is recommended that the %1$s file be writable for a better forum user experience.',
|
||||
|
||||
'DIRECTORY_NOT_EXISTS' => 'Directory not exists',
|
||||
'DIRECTORY_NOT_EXISTS_EXPLAIN' => 'To be able to install phpBB the %1$s directory needs to exist.',
|
||||
'DIRECTORY_NOT_WRITABLE' => 'Directory not writable',
|
||||
'DIRECTORY_NOT_WRITABLE_EXPLAIN' => 'To be able to install phpBB the %1$s directory needs to be writable.',
|
||||
'DIRECTORY_NOT_EXISTS' => 'Directory does not exist',
|
||||
'DIRECTORY_NOT_EXISTS_EXPLAIN' => 'To be able to install phpBB the %1$s directory needs to exist.',
|
||||
'DIRECTORY_NOT_EXISTS_EXPLAIN_OPTIONAL' => 'It is recommended that the %1$s directory exist for a better forum user experience.',
|
||||
'DIRECTORY_NOT_WRITABLE' => 'Directory is not writable',
|
||||
'DIRECTORY_NOT_WRITABLE_EXPLAIN' => 'To be able to install phpBB the %1$s directory needs to be writable.',
|
||||
'DIRECTORY_NOT_WRITABLE_EXPLAIN_OPTIONAL' => 'It is recommended that the %1$s directory be writable for a better forum user experience.',
|
||||
|
||||
// Server requirements
|
||||
'PHP_VERSION_REQD' => 'PHP version',
|
||||
@@ -523,7 +527,7 @@ $lang = array_merge($lang, array(
|
||||
|
||||
// Finish conversion
|
||||
'CONVERT_COMPLETE' => 'Conversion completed',
|
||||
'CONVERT_COMPLETE_EXPLAIN' => 'You have now successfully converted your board to phpBB 3.2. You can now login and <a href="../">access your board</a>. Please ensure that the settings were transferred correctly before enabling your board by deleting the install directory. Remember that help on using phpBB is available online via the <a href="https://www.phpbb.com/support/docs/en/3.2/ug/">Documentation</a> and the <a href="https://www.phpbb.com/community/viewforum.php?f=466">support forums</a>.',
|
||||
'CONVERT_COMPLETE_EXPLAIN' => 'You have now successfully converted your board to phpBB 3.2. You can now login and <a href="../">access your board</a>. Please ensure that the settings were transferred correctly before enabling your board by deleting the install directory. Remember that help on using phpBB is available online via the <a href="https://www.phpbb.com/support/docs/en/3.3/ug/">Documentation</a> and the <a href="https://www.phpbb.com/community/viewforum.php?f=466">support forums</a>.',
|
||||
|
||||
'CONV_ERROR_ATTACH_FTP_DIR' => 'FTP upload for attachments is enabled at the old board. Please disable the FTP upload option and make sure a valid upload directory is specified, then copy all attachment files to this new web accessible directory. Once you have done this, restart the convertor.',
|
||||
'CONV_ERROR_CONFIG_EMPTY' => 'There is no configuration information available for the conversion.',
|
||||
|
@@ -66,7 +66,7 @@ $lang = array_merge($lang, array(
|
||||
'ACCOUNT_COPPA' => 'Your account has been created but has to be approved, please check your email for details.',
|
||||
'ACCOUNT_EMAIL_CHANGED' => 'Your account has been updated. However, this board requires account reactivation on email changes. An activation key has been sent to the new email address you provided. Please check your email for further information.',
|
||||
'ACCOUNT_EMAIL_CHANGED_ADMIN' => 'Your account has been updated. However, this board requires account reactivation by the administrators on email changes. An email has been sent to them and you will be informed when your account has been reactivated.',
|
||||
'ACCOUNT_INACTIVE' => 'Your account has been created. However, this board requires account activation, an activation key has been sent to the email address you provided. Please check your email for further information.',
|
||||
'ACCOUNT_INACTIVE' => 'Your account has been created. However, this board requires account activation. An activation key has been sent to the email address you provided. Please check your email for further information and also be sure to check your junk mail box. It may take a while to get the email depending on your email provider.',
|
||||
'ACCOUNT_INACTIVE_ADMIN' => 'Your account has been created. However, this board requires account activation by the administrator group. An email has been sent to them and you will be informed when your account has been activated.',
|
||||
'ACTIVATION_EMAIL_SENT' => 'The activation email has been sent to your email address.',
|
||||
'ACTIVATION_EMAIL_SENT_ADMIN' => 'The activation email has been sent to the administrators email addresses.',
|
||||
|
@@ -93,6 +93,12 @@ $default_key = 'c';
|
||||
$sort_key = $request->variable('sk', $default_key);
|
||||
$sort_dir = $request->variable('sd', 'a');
|
||||
|
||||
$user_types = array(USER_NORMAL, USER_FOUNDER);
|
||||
if ($auth->acl_get('a_user'))
|
||||
{
|
||||
$user_types[] = USER_INACTIVE;
|
||||
}
|
||||
|
||||
// What do you want to do today? ... oops, I think that line is taken ...
|
||||
switch ($mode)
|
||||
{
|
||||
@@ -834,7 +840,7 @@ switch ($mode)
|
||||
|
||||
$sql = 'SELECT username, user_id, user_colour
|
||||
FROM ' . USERS_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('user_type', array(USER_NORMAL, USER_FOUNDER)) . '
|
||||
WHERE ' . $db->sql_in_set('user_type', $user_types) . '
|
||||
AND username_clean ' . $db->sql_like_expression(utf8_clean_string($username_chars) . $db->get_any_char());
|
||||
$result = $db->sql_query_limit($sql, 10);
|
||||
$user_list = array();
|
||||
@@ -1231,11 +1237,6 @@ switch ($mode)
|
||||
);
|
||||
extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_sql_query_data', compact($vars)));
|
||||
|
||||
$user_types = array(USER_NORMAL, USER_FOUNDER);
|
||||
if ($auth->acl_get('a_user'))
|
||||
{
|
||||
$user_types[] = USER_INACTIVE;
|
||||
}
|
||||
// Count the users ...
|
||||
$sql = 'SELECT COUNT(u.user_id) AS total_users
|
||||
FROM ' . USERS_TABLE . " u$sql_from
|
||||
@@ -1279,7 +1280,8 @@ switch ($mode)
|
||||
}
|
||||
|
||||
$param = call_user_func_array(array($request, 'variable'), $call);
|
||||
$param = urlencode($key) . '=' . ((is_string($param)) ? urlencode($param) : $param);
|
||||
// Encode strings, convert everything else to int in order to prevent empty parameters.
|
||||
$param = urlencode($key) . '=' . ((is_string($param)) ? urlencode($param) : (int) $param);
|
||||
$params[] = $param;
|
||||
|
||||
if ($key != 'first_char')
|
||||
|
@@ -29,7 +29,7 @@ class delete
|
||||
/** @var driver_interface */
|
||||
protected $db;
|
||||
|
||||
/** @var \phpbb\event\dispatcher */
|
||||
/** @var dispatcher */
|
||||
protected $dispatcher;
|
||||
|
||||
/** @var filesystem */
|
||||
|
@@ -39,7 +39,7 @@ class upload
|
||||
/** @var \phpbb\files\upload Upload class */
|
||||
protected $files_upload;
|
||||
|
||||
/** @var \phpbb\language\language */
|
||||
/** @var language */
|
||||
protected $language;
|
||||
|
||||
/** @var guesser Mimetype guesser */
|
||||
|
@@ -280,7 +280,13 @@ class oauth extends \phpbb\auth\provider\base
|
||||
}
|
||||
|
||||
$uri_factory = new \OAuth\Common\Http\Uri\UriFactory();
|
||||
$current_uri = $uri_factory->createFromSuperGlobalArray($this->request->get_super_global(\phpbb\request\request_interface::SERVER));
|
||||
$super_globals = $this->request->get_super_global(\phpbb\request\request_interface::SERVER);
|
||||
if (!empty($super_globals['HTTP_X_FORWARDED_PROTO']) && $super_globals['HTTP_X_FORWARDED_PROTO'] === 'https')
|
||||
{
|
||||
$super_globals['HTTPS'] = 'on';
|
||||
$super_globals['SERVER_PORT'] = 443;
|
||||
}
|
||||
$current_uri = $uri_factory->createFromSuperGlobalArray($super_globals);
|
||||
$current_uri->setQuery($query);
|
||||
|
||||
$this->current_uri = $current_uri;
|
||||
|
@@ -179,17 +179,29 @@ class upload extends \phpbb\avatar\driver\driver
|
||||
$destination = '';
|
||||
}
|
||||
|
||||
$filedata = array(
|
||||
'filename' => $file->get('filename'),
|
||||
'filesize' => $file->get('filesize'),
|
||||
'mimetype' => $file->get('mimetype'),
|
||||
'extension' => $file->get('extension'),
|
||||
'physical_filename' => $file->get('realname'),
|
||||
'real_filename' => $file->get('uploadname'),
|
||||
);
|
||||
|
||||
/**
|
||||
* Before moving new file in place (and eventually overwriting the existing avatar with the newly uploaded avatar)
|
||||
*
|
||||
* @event core.avatar_driver_upload_move_file_before
|
||||
* @var array filedata Array containing uploaded file data
|
||||
* @var string destination Destination directory where the file is going to be moved
|
||||
* @var string prefix Prefix for the avatar filename
|
||||
* @var array row Array with avatar row data
|
||||
* @var array error Array of errors, if filled in by this event file will not be moved
|
||||
* @since 3.1.6-RC1
|
||||
* @changed 3.1.9-RC1 Added filedata
|
||||
*/
|
||||
$vars = array(
|
||||
'filedata',
|
||||
'destination',
|
||||
'prefix',
|
||||
'row',
|
||||
@@ -197,6 +209,8 @@ class upload extends \phpbb\avatar\driver\driver
|
||||
);
|
||||
extract($this->dispatcher->trigger_event('core.avatar_driver_upload_move_file_before', compact($vars)));
|
||||
|
||||
unset($filedata);
|
||||
|
||||
if (!sizeof($error))
|
||||
{
|
||||
// Move file and overwrite any existing image
|
||||
|
4
phpBB/phpbb/cache/driver/file.php
vendored
4
phpBB/phpbb/cache/driver/file.php
vendored
@@ -32,9 +32,9 @@ class file extends \phpbb\cache\driver\base
|
||||
*/
|
||||
function __construct($cache_dir = null)
|
||||
{
|
||||
global $phpbb_root_path, $phpbb_container;
|
||||
global $phpbb_container;
|
||||
|
||||
$this->cache_dir = !is_null($cache_dir) ? $cache_dir : $phpbb_root_path . 'cache/' . $phpbb_container->getParameter('core.environment') . '/';
|
||||
$this->cache_dir = !is_null($cache_dir) ? $cache_dir : $phpbb_container->getParameter('core.cache_dir');
|
||||
$this->filesystem = new \phpbb\filesystem\filesystem();
|
||||
|
||||
if (!is_dir($this->cache_dir))
|
||||
|
4
phpBB/phpbb/cache/driver/memory.php
vendored
4
phpBB/phpbb/cache/driver/memory.php
vendored
@@ -25,9 +25,9 @@ abstract class memory extends \phpbb\cache\driver\base
|
||||
*/
|
||||
function __construct()
|
||||
{
|
||||
global $phpbb_root_path, $dbname, $table_prefix;
|
||||
global $phpbb_root_path, $dbname, $table_prefix, $phpbb_container;
|
||||
|
||||
$this->cache_dir = $phpbb_root_path . 'cache/';
|
||||
$this->cache_dir = $phpbb_container->getParameter('core.cache_dir');
|
||||
$this->key_prefix = substr(md5($dbname . $table_prefix), 0, 8) . '_';
|
||||
|
||||
if (!isset($this->extension) || !extension_loaded($this->extension))
|
||||
|
@@ -100,6 +100,28 @@ class qa
|
||||
$db->sql_freeresult($result);
|
||||
}
|
||||
|
||||
// final fallback to any language
|
||||
if (!sizeof($this->question_ids))
|
||||
{
|
||||
$this->question_lang = '';
|
||||
|
||||
$sql = 'SELECT q.question_id, q.lang_iso
|
||||
FROM ' . $this->table_captcha_questions . ' q, ' . $this->table_captcha_answers . ' a
|
||||
WHERE q.question_id = a.question_id
|
||||
GROUP BY lang_iso';
|
||||
$result = $db->sql_query($sql, 7200);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
if (empty($this->question_lang))
|
||||
{
|
||||
$this->question_lang = $row['lang_iso'];
|
||||
}
|
||||
$this->question_ids[$row['question_id']] = $row['question_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
}
|
||||
|
||||
// okay, if there is a confirm_id, we try to load that confirm's state. If not, we try to find one
|
||||
if (!$this->load_answer() && (!$this->load_confirm_id() || !$this->load_answer()))
|
||||
{
|
||||
@@ -198,19 +220,25 @@ class qa
|
||||
*/
|
||||
function get_template()
|
||||
{
|
||||
global $template;
|
||||
global $phpbb_log, $template, $user;
|
||||
|
||||
if ($this->is_solved())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (empty($this->question_text) || !count($this->question_ids))
|
||||
{
|
||||
/** @var \phpbb\log\log_interface $phpbb_log */
|
||||
$phpbb_log->add('critical', $user->data['user_id'], $user->ip, 'LOG_ERROR_CAPTCHA', time(), array($user->lang('CONFIRM_QUESTION_MISSING')));
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$template->assign_vars(array(
|
||||
'QA_CONFIRM_QUESTION' => $this->question_text,
|
||||
'QA_CONFIRM_ID' => $this->confirm_id,
|
||||
'S_CONFIRM_CODE' => true,
|
||||
'S_TYPE' => $this->type,
|
||||
'QA_CONFIRM_QUESTION' => $this->question_text,
|
||||
'QA_CONFIRM_ID' => $this->confirm_id,
|
||||
'S_CONFIRM_CODE' => true,
|
||||
'S_TYPE' => $this->type,
|
||||
));
|
||||
|
||||
return 'captcha_qa.html';
|
||||
@@ -363,13 +391,15 @@ class qa
|
||||
*/
|
||||
function validate()
|
||||
{
|
||||
global $user;
|
||||
global $phpbb_log, $user;
|
||||
|
||||
$error = '';
|
||||
|
||||
if (!sizeof($this->question_ids))
|
||||
{
|
||||
return false;
|
||||
/** @var \phpbb\log\log_interface $phpbb_log */
|
||||
$phpbb_log->add('critical', $user->data['user_id'], $user->ip, 'LOG_ERROR_CAPTCHA', time(), array($user->lang('CONFIRM_QUESTION_MISSING')));
|
||||
return $user->lang('CONFIRM_QUESTION_MISSING');
|
||||
}
|
||||
|
||||
if (!$this->confirm_id)
|
||||
|
@@ -26,7 +26,7 @@
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.2.x-dev"
|
||||
"dev-master": "3.3.x-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -13,6 +13,10 @@
|
||||
|
||||
namespace phpbb\console\command;
|
||||
|
||||
use Symfony\Component\Console\Helper\ProgressBar;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||
|
||||
abstract class command extends \Symfony\Component\Console\Command\Command
|
||||
{
|
||||
/** @var \phpbb\user */
|
||||
@@ -28,4 +32,45 @@ abstract class command extends \Symfony\Component\Console\Command\Command
|
||||
$this->user = $user;
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a styled progress bar
|
||||
*
|
||||
* @param int $max Max value for the progress bar
|
||||
* @param SymfonyStyle $io Symfony style output decorator
|
||||
* @param OutputInterface $output The output stream, used to print messages
|
||||
* @param bool $message Should we display message output under the progress bar?
|
||||
* @return ProgressBar
|
||||
*/
|
||||
public function create_progress_bar($max, SymfonyStyle $io, OutputInterface $output, $message = false)
|
||||
{
|
||||
$progress = $io->createProgressBar($max);
|
||||
if ($output->getVerbosity() === OutputInterface::VERBOSITY_VERBOSE)
|
||||
{
|
||||
$progress->setFormat('<info>[%percent:3s%%]</info> %message%');
|
||||
$progress->setOverwrite(false);
|
||||
}
|
||||
else if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE)
|
||||
{
|
||||
$progress->setFormat('<info>[%current:s%/%max:s%]</info><comment>[%elapsed%/%estimated%][%memory%]</comment> %message%');
|
||||
$progress->setOverwrite(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$io->newLine(2);
|
||||
$progress->setFormat(
|
||||
" %current:s%/%max:s% %bar% %percent:3s%%\n" .
|
||||
" " . ($message ? '%message%' : ' ') . " %elapsed:6s%/%estimated:-6s% %memory:6s%\n");
|
||||
$progress->setBarWidth(60);
|
||||
}
|
||||
|
||||
if (!defined('PHP_WINDOWS_VERSION_BUILD'))
|
||||
{
|
||||
$progress->setEmptyBarCharacter('░'); // light shade character \u2591
|
||||
$progress->setProgressCharacter('');
|
||||
$progress->setBarCharacter('▓'); // dark shade character \u2593
|
||||
}
|
||||
|
||||
return $progress;
|
||||
}
|
||||
}
|
||||
|
@@ -121,44 +121,6 @@ class reparse extends \phpbb\console\command\command
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a styled progress bar
|
||||
*
|
||||
* @param integer $max Max value for the progress bar
|
||||
* @return \Symfony\Component\Console\Helper\ProgressBar
|
||||
*/
|
||||
protected function create_progress_bar($max)
|
||||
{
|
||||
$progress = $this->io->createProgressBar($max);
|
||||
if ($this->output->getVerbosity() === OutputInterface::VERBOSITY_VERBOSE)
|
||||
{
|
||||
$progress->setFormat('<info>[%percent:3s%%]</info> %message%');
|
||||
$progress->setOverwrite(false);
|
||||
}
|
||||
else if ($this->output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE)
|
||||
{
|
||||
$progress->setFormat('<info>[%current:s%/%max:s%]</info><comment>[%elapsed%/%estimated%][%memory%]</comment> %message%');
|
||||
$progress->setOverwrite(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->io->newLine(2);
|
||||
$progress->setFormat(
|
||||
" %current:s%/%max:s% %bar% %percent:3s%%\n" .
|
||||
" %message% %elapsed:6s%/%estimated:-6s% %memory:6s%\n");
|
||||
$progress->setBarWidth(60);
|
||||
}
|
||||
|
||||
if (!defined('PHP_WINDOWS_VERSION_BUILD'))
|
||||
{
|
||||
$progress->setEmptyBarCharacter('░'); // light shade character \u2591
|
||||
$progress->setProgressCharacter('');
|
||||
$progress->setBarCharacter('▓'); // dark shade character \u2593
|
||||
}
|
||||
|
||||
return $progress;
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes the command reparser:reparse
|
||||
*
|
||||
@@ -258,7 +220,7 @@ class reparse extends \phpbb\console\command\command
|
||||
|
||||
$this->io->section($this->user->lang('CLI_REPARSER_REPARSE_REPARSING', preg_replace('(^text_reparser\\.)', '', $name), $min, $max));
|
||||
|
||||
$progress = $this->create_progress_bar($max);
|
||||
$progress = $this->create_progress_bar($max, $this->io, $this->output, true);
|
||||
$progress->setMessage($this->user->lang('CLI_REPARSER_REPARSE_REPARSING_START', preg_replace('(^text_reparser\\.)', '', $name)));
|
||||
$progress->start();
|
||||
|
||||
|
@@ -91,32 +91,7 @@ class delete extends \phpbb\console\command\command
|
||||
WHERE thumbnail = 1';
|
||||
$result = $this->db->sql_query($sql);
|
||||
|
||||
$progress = $io->createProgressBar($nb_missing_thumbnails);
|
||||
if ($output->getVerbosity() === OutputInterface::VERBOSITY_VERBOSE)
|
||||
{
|
||||
$progress->setFormat('<info>[%percent:3s%%]</info> %message%');
|
||||
$progress->setOverwrite(false);
|
||||
}
|
||||
else if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE)
|
||||
{
|
||||
$progress->setFormat('<info>[%current:s%/%max:s%]</info><comment>[%elapsed%/%estimated%][%memory%]</comment> %message%');
|
||||
$progress->setOverwrite(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$io->newLine(2);
|
||||
$progress->setFormat(
|
||||
" %current:s%/%max:s% %bar% %percent:3s%%\n" .
|
||||
" %elapsed:6s%/%estimated:-6s% %memory:6s%\n");
|
||||
$progress->setBarWidth(60);
|
||||
}
|
||||
|
||||
if (!defined('PHP_WINDOWS_VERSION_BUILD'))
|
||||
{
|
||||
$progress->setEmptyBarCharacter('░'); // light shade character \u2591
|
||||
$progress->setProgressCharacter('');
|
||||
$progress->setBarCharacter('▓'); // dark shade character \u2593
|
||||
}
|
||||
$progress = $this->create_progress_bar($nb_missing_thumbnails, $io, $output);
|
||||
|
||||
$progress->setMessage($this->user->lang('CLI_THUMBNAIL_DELETING'));
|
||||
|
||||
|
@@ -115,32 +115,7 @@ class generate extends \phpbb\console\command\command
|
||||
require($this->phpbb_root_path . 'includes/functions_posting.' . $this->php_ext);
|
||||
}
|
||||
|
||||
$progress = $io->createProgressBar($nb_missing_thumbnails);
|
||||
if ($output->getVerbosity() === OutputInterface::VERBOSITY_VERBOSE)
|
||||
{
|
||||
$progress->setFormat('<info>[%percent:3s%%]</info> %message%');
|
||||
$progress->setOverwrite(false);
|
||||
}
|
||||
else if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE)
|
||||
{
|
||||
$progress->setFormat('<info>[%current:s%/%max:s%]</info><comment>[%elapsed%/%estimated%][%memory%]</comment> %message%');
|
||||
$progress->setOverwrite(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$io->newLine(2);
|
||||
$progress->setFormat(
|
||||
" %current:s%/%max:s% %bar% %percent:3s%%\n" .
|
||||
" %elapsed:6s%/%estimated:-6s% %memory:6s%\n");
|
||||
$progress->setBarWidth(60);
|
||||
}
|
||||
|
||||
if (!defined('PHP_WINDOWS_VERSION_BUILD'))
|
||||
{
|
||||
$progress->setEmptyBarCharacter('░'); // light shade character \u2591
|
||||
$progress->setProgressCharacter('');
|
||||
$progress->setBarCharacter('▓'); // dark shade character \u2593
|
||||
}
|
||||
$progress = $this->create_progress_bar($nb_missing_thumbnails, $io, $output);
|
||||
|
||||
$progress->setMessage($this->user->lang('CLI_THUMBNAIL_GENERATING'));
|
||||
|
||||
|
218
phpBB/phpbb/console/command/user/activate.php
Normal file
218
phpBB/phpbb/console/command/user/activate.php
Normal file
@@ -0,0 +1,218 @@
|
||||
<?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\console\command\user;
|
||||
|
||||
use phpbb\config\config;
|
||||
use phpbb\console\command\command;
|
||||
use phpbb\db\driver\driver_interface;
|
||||
use phpbb\language\language;
|
||||
use phpbb\log\log_interface;
|
||||
use phpbb\notification\manager;
|
||||
use phpbb\user;
|
||||
use phpbb\user_loader;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||
|
||||
class activate extends command
|
||||
{
|
||||
/** @var driver_interface */
|
||||
protected $db;
|
||||
|
||||
/** @var config */
|
||||
protected $config;
|
||||
|
||||
/** @var language */
|
||||
protected $language;
|
||||
|
||||
/** @var log_interface */
|
||||
protected $log;
|
||||
|
||||
/** @var manager */
|
||||
protected $notifications;
|
||||
|
||||
/** @var user_loader */
|
||||
protected $user_loader;
|
||||
|
||||
/**
|
||||
* phpBB root path
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $phpbb_root_path;
|
||||
|
||||
/**
|
||||
* PHP extension.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $php_ext;
|
||||
|
||||
/**
|
||||
* Construct method
|
||||
*
|
||||
* @param user $user
|
||||
* @param driver_interface $db
|
||||
* @param config $config
|
||||
* @param language $language
|
||||
* @param log_interface $log
|
||||
* @param manager $notifications
|
||||
* @param user_loader $user_loader
|
||||
* @param string $phpbb_root_path
|
||||
* @param string $php_ext
|
||||
*/
|
||||
public function __construct(user $user, driver_interface $db, config $config, language $language, log_interface $log, manager $notifications, user_loader $user_loader, $phpbb_root_path, $php_ext)
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->config = $config;
|
||||
$this->language = $language;
|
||||
$this->log = $log;
|
||||
$this->notifications = $notifications;
|
||||
$this->user_loader = $user_loader;
|
||||
$this->phpbb_root_path = $phpbb_root_path;
|
||||
$this->php_ext = $php_ext;
|
||||
|
||||
$this->language->add_lang('acp/users');
|
||||
parent::__construct($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the command name and description
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('user:activate')
|
||||
->setDescription($this->language->lang('CLI_DESCRIPTION_USER_ACTIVATE'))
|
||||
->setHelp($this->language->lang('CLI_HELP_USER_ACTIVATE'))
|
||||
->addArgument(
|
||||
'username',
|
||||
InputArgument::REQUIRED,
|
||||
$this->language->lang('CLI_DESCRIPTION_USER_ACTIVATE_USERNAME')
|
||||
)
|
||||
->addOption(
|
||||
'deactivate',
|
||||
'd',
|
||||
InputOption::VALUE_NONE,
|
||||
$this->language->lang('CLI_DESCRIPTION_USER_ACTIVATE_DEACTIVATE')
|
||||
)
|
||||
->addOption(
|
||||
'send-email',
|
||||
null,
|
||||
InputOption::VALUE_NONE,
|
||||
$this->language->lang('CLI_DESCRIPTION_USER_ADD_OPTION_NOTIFY')
|
||||
)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes the command user:activate
|
||||
*
|
||||
* Activate (or deactivate) a user account
|
||||
*
|
||||
* @param InputInterface $input The input stream used to get the options
|
||||
* @param OutputInterface $output The output stream, used to print messages
|
||||
*
|
||||
* @return int 0 if all is well, 1 if any errors occurred
|
||||
*/
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$io = new SymfonyStyle($input, $output);
|
||||
|
||||
$name = $input->getArgument('username');
|
||||
$mode = ($input->getOption('deactivate')) ? 'deactivate' : 'activate';
|
||||
|
||||
$user_id = $this->user_loader->load_user_by_username($name);
|
||||
$user_row = $this->user_loader->get_user($user_id);
|
||||
|
||||
if ($user_row['user_id'] == ANONYMOUS)
|
||||
{
|
||||
$io->error($this->language->lang('NO_USER'));
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Check if the user is already active (or inactive)
|
||||
if ($mode == 'activate' && $user_row['user_type'] != USER_INACTIVE)
|
||||
{
|
||||
$io->error($this->language->lang('CLI_DESCRIPTION_USER_ACTIVATE_ACTIVE'));
|
||||
return 1;
|
||||
}
|
||||
else if ($mode == 'deactivate' && $user_row['user_type'] == USER_INACTIVE)
|
||||
{
|
||||
$io->error($this->language->lang('CLI_DESCRIPTION_USER_ACTIVATE_INACTIVE'));
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Activate the user account
|
||||
if (!function_exists('user_active_flip'))
|
||||
{
|
||||
require($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext);
|
||||
}
|
||||
|
||||
user_active_flip($mode, $user_row['user_id']);
|
||||
|
||||
// Notify the user upon activation
|
||||
if ($mode == 'activate' && $this->config['require_activation'] == USER_ACTIVATION_ADMIN)
|
||||
{
|
||||
$this->send_notification($user_row, $input);
|
||||
}
|
||||
|
||||
// Log and display the result
|
||||
$msg = ($mode == 'activate') ? 'USER_ADMIN_ACTIVATED' : 'USER_ADMIN_DEACTIVED';
|
||||
$log = ($mode == 'activate') ? 'LOG_USER_ACTIVE' : 'LOG_USER_INACTIVE';
|
||||
|
||||
$this->log->add('admin', ANONYMOUS, '', $log, false, array($user_row['username']));
|
||||
$this->log->add('user', ANONYMOUS, '', $log . '_USER', false, array(
|
||||
'reportee_id' => $user_row['user_id']
|
||||
));
|
||||
|
||||
$io->success($this->language->lang($msg));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send account activation notification to user
|
||||
*
|
||||
* @param array $user_row The user data array
|
||||
* @param InputInterface $input The input stream used to get the options
|
||||
* @return null
|
||||
*/
|
||||
protected function send_notification($user_row, InputInterface $input)
|
||||
{
|
||||
$this->notifications->delete_notifications('notification.type.admin_activate_user', $user_row['user_id']);
|
||||
|
||||
if ($input->getOption('send-email'))
|
||||
{
|
||||
if (!class_exists('messenger'))
|
||||
{
|
||||
require($this->phpbb_root_path . 'includes/functions_messenger.' . $this->php_ext);
|
||||
}
|
||||
|
||||
$messenger = new \messenger(false);
|
||||
$messenger->template('admin_welcome_activated', $user_row['user_lang']);
|
||||
$messenger->set_addresses($user_row);
|
||||
$messenger->anti_abuse_headers($this->config, $this->user);
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($user_row['username']))
|
||||
);
|
||||
|
||||
$messenger->send(NOTIFY_EMAIL);
|
||||
}
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user