mirror of
https://github.com/phpbb/phpbb.git
synced 2025-09-08 23:31:04 +02:00
Compare commits
112 Commits
prep-relea
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
|
cd36a68645 | ||
|
5225ac8a9a | ||
|
aaaef71b60 | ||
|
1fe8bbf47a | ||
|
67c41633a2 | ||
|
92cebdd624 | ||
|
7017c73156 | ||
|
2e025be53a | ||
|
2126738598 | ||
|
99286b1fdd | ||
|
64717d0270 | ||
|
f197662653 | ||
|
e080a8533d | ||
|
f84e03f646 | ||
|
7c02b58114 | ||
|
12256eabb6 | ||
|
9b1bae858f | ||
|
db3c143b73 | ||
|
ea19638f4e | ||
|
89b07af756 | ||
|
7275f9e7f1 | ||
|
8fbbaf97ab | ||
|
b8a3d8f25d | ||
|
495986ff5d | ||
|
3ed3abb446 | ||
|
ca8c402796 | ||
|
fafe250b0d | ||
|
256ea96cd9 | ||
|
5cdd22e058 | ||
|
47e30a2e21 | ||
|
040c2e9b78 | ||
|
2c661205e4 | ||
|
b5d2ff4074 | ||
|
b3d93a09f2 | ||
|
2f72950d2d | ||
|
064a96ec07 | ||
|
a8feaeafe8 | ||
|
fc83f213d5 | ||
|
5e3dd4b55e | ||
|
53e5113893 | ||
|
f930f8821f | ||
|
b84b875cd2 | ||
|
bc4a787470 | ||
|
c6ef628589 | ||
|
d4415d4ad8 | ||
|
2b92ff372b | ||
|
c410c9bc47 | ||
|
52f625a88c | ||
|
feea7958f7 | ||
|
c61c130596 | ||
|
59a95a3c35 | ||
|
60af39b38c | ||
|
8376012f9a | ||
|
dd6e110210 | ||
|
898075f0f8 | ||
|
3308318524 | ||
|
54c27e3e67 | ||
|
54156dd9d8 | ||
|
8084d977fb | ||
|
997f1b92cf | ||
|
e1069bcbde | ||
|
9e22bc8691 | ||
|
751b0e2ede | ||
|
b9f7c3ff6e | ||
|
0d84769d66 | ||
|
cd9aea32b9 | ||
|
a12a6f52ae | ||
|
9739fabd68 | ||
|
32ce101541 | ||
|
89d2fcf5ed | ||
|
5e10b02103 | ||
|
1ce11e39e1 | ||
|
aed2d00373 | ||
|
691a891634 | ||
|
33af6d0f0a | ||
|
7a034a8c1e | ||
|
4d857c4be7 | ||
|
3ee1efe7e0 | ||
|
6fa019e23a | ||
|
9b2f42748c | ||
|
e53102fead | ||
|
87c1e631ef | ||
|
8c982c7aa0 | ||
|
8cfec5370a | ||
|
6cc0fe5f95 | ||
|
16b27be2d0 | ||
|
0dd053eeba | ||
|
4ed0201ffe | ||
|
5a3a91b464 | ||
|
1f972f0ee7 | ||
|
a5899494b9 | ||
|
86e009ad15 | ||
|
cc60a63f22 | ||
|
e84cf2e5ba | ||
|
a466be10c2 | ||
|
c9db94f91c | ||
|
6a6d83c674 | ||
|
4f9252568a | ||
|
5017dbd58d | ||
|
c4fcbc2cbd | ||
|
3be1e3029e | ||
|
7992b3f476 | ||
|
9dc25510a1 | ||
|
420f494628 | ||
|
9446db9cde | ||
|
adea3e734a | ||
|
919ff4575b | ||
|
ee56f0fe7d | ||
|
97356d9879 | ||
|
9f09dec049 | ||
|
6caf2f83ad | ||
|
4805e705ad |
@@ -35,9 +35,9 @@ phpBB's [Development Documentation](https://area51.phpbb.com/docs/dev/index.html
|
||||
|
||||
## 🔬 Automated Testing
|
||||
|
||||
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](https://bamboo.phpbb.com) or check our travis builds below:
|
||||
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](https://bamboo.phpbb.com) or check our GitHub Actions below:
|
||||
|
||||
Branch | Description | Github Actions |
|
||||
Branch | Description | GitHub Actions |
|
||||
------- | ----------- | -------------- |
|
||||
**master** | Latest development version |  |
|
||||
**3.3.x** | Development of version 3.3.x |  |
|
||||
|
@@ -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.3.7" />
|
||||
<property name="prevversion" value="3.3.6" />
|
||||
<property name="olderversions" value="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.1.10, 3.1.11, 3.1.12, 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5" />
|
||||
<property name="newversion" value="3.3.9-RC1" />
|
||||
<property name="prevversion" value="3.3.8" />
|
||||
<property name="olderversions" value="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.1.10, 3.1.11, 3.1.12, 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7" />
|
||||
<!-- no configuration should be needed beyond this point -->
|
||||
|
||||
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
||||
@@ -362,6 +362,8 @@
|
||||
<chmod mode="0777" file="${dir}/store" />
|
||||
<chmod mode="0777" file="${dir}/files" />
|
||||
<chmod mode="0777" file="${dir}/images/avatars/upload" />
|
||||
<!-- set permissions of executable scripts to 755 -->
|
||||
<chmod mode="0755" file="${dir}/bin/phpbbcli.php" />
|
||||
</target>
|
||||
|
||||
<target name="clean-vendor-dir">
|
||||
|
BIN
composer.phar
BIN
composer.phar
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
#
|
||||
# A hook to add [$branch] to the beginning of a commit message
|
||||
# if certain conditions are met.
|
||||
@@ -31,12 +31,19 @@ branch="$(echo "$branch" | sed "s/refs\/heads\///g")"
|
||||
if [ "$2" = "" ]
|
||||
then
|
||||
tail="";
|
||||
ticket_id=$(sed -E 's/(ticket\/)(security\/)?([0-9]+)(.+$)?/\3/gm;t;d' <<< "$branch");
|
||||
branch_title=$(sed -E 's/(ticket\/)(security\/)?([0-9]+)(.+$)?/\1\2\3/gm;t;d' <<< "$branch");
|
||||
|
||||
# Branch is prefixed with 'ticket/', append ticket ID to message
|
||||
if [ "$branch" != "${branch##ticket/}" ];
|
||||
if [ "security/" = "$(sed -E 's/(ticket\/)(security\/)?([0-9]+)(.+$)?/\2/gm;t;d' <<< "$branch")" ];
|
||||
then
|
||||
tail="$(printf "\n\nPHPBB3-${branch##ticket/}")";
|
||||
tail="$(printf '\n\nSECURITY-%s' "$ticket_id")";
|
||||
else
|
||||
# Branch is prefixed with 'ticket/', append ticket ID to message
|
||||
if [ "$branch" != "${branch##ticket/}" ];
|
||||
then
|
||||
tail="$(printf '\n\nPHPBB3-%s' "$ticket_id")";
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "[$branch] $tail$(cat "$1")" > "$1"
|
||||
echo "[$branch_title] $tail$(cat "$1")" > "$1"
|
||||
fi
|
||||
|
@@ -26,7 +26,7 @@
|
||||
"phpbb/phpbb-core": "self.version"
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"php": "^7.1.3 || ^8.0.0",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"bantu/ini-get-wrapper": "~1.0",
|
||||
|
380
phpBB/composer.lock
generated
380
phpBB/composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "1b58e9d5054a0881d4c29cb2e9523908",
|
||||
"content-hash": "0201f3008dec8046725fd5e9afd61ba7",
|
||||
"packages": [
|
||||
{
|
||||
"name": "bantu/ini-get-wrapper",
|
||||
@@ -167,24 +167,24 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.5.5",
|
||||
"version": "6.5.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e"
|
||||
"reference": "a52f0440530b54fa079ce76e8c5d196a42cad981"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
|
||||
"reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981",
|
||||
"reference": "a52f0440530b54fa079ce76e8c5d196a42cad981",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"guzzlehttp/promises": "^1.0",
|
||||
"guzzlehttp/psr7": "^1.6.1",
|
||||
"guzzlehttp/psr7": "^1.9",
|
||||
"php": ">=5.5",
|
||||
"symfony/polyfill-intl-idn": "^1.17.0"
|
||||
"symfony/polyfill-intl-idn": "^1.17"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
@@ -201,22 +201,52 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "hello@gjcampbell.co.uk",
|
||||
"homepage": "https://github.com/GrahamCampbell"
|
||||
},
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "Jeremy Lindblom",
|
||||
"email": "jeremeamia@gmail.com",
|
||||
"homepage": "https://github.com/jeremeamia"
|
||||
},
|
||||
{
|
||||
"name": "George Mponos",
|
||||
"email": "gmponos@gmail.com",
|
||||
"homepage": "https://github.com/gmponos"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Nyholm",
|
||||
"email": "tobias.nyholm@gmail.com",
|
||||
"homepage": "https://github.com/Nyholm"
|
||||
},
|
||||
{
|
||||
"name": "Márk Sági-Kazár",
|
||||
"email": "mark.sagikazar@gmail.com",
|
||||
"homepage": "https://github.com/sagikazarmark"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Schultze",
|
||||
"email": "webmaster@tubo-world.de",
|
||||
"homepage": "https://github.com/Tobion"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle is a PHP HTTP client library",
|
||||
@@ -232,22 +262,36 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/guzzle/issues",
|
||||
"source": "https://github.com/guzzle/guzzle/tree/6.5"
|
||||
"source": "https://github.com/guzzle/guzzle/tree/6.5.8"
|
||||
},
|
||||
"time": "2020-06-16T21:01:06+00:00"
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/GrahamCampbell",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/Nyholm",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-06-20T22:16:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "1.5.1",
|
||||
"version": "1.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da"
|
||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
|
||||
"reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598",
|
||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -263,12 +307,12 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Promise\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Promise\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
@@ -302,7 +346,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/promises/issues",
|
||||
"source": "https://github.com/guzzle/promises/tree/1.5.1"
|
||||
"source": "https://github.com/guzzle/promises/tree/1.5.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -318,20 +362,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-10-22T20:56:57+00:00"
|
||||
"time": "2022-08-28T14:55:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.8.3",
|
||||
"version": "1.9.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85"
|
||||
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
|
||||
"reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
||||
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -352,7 +396,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.7-dev"
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -412,7 +456,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/psr7/issues",
|
||||
"source": "https://github.com/guzzle/psr7/tree/1.8.3"
|
||||
"source": "https://github.com/guzzle/psr7/tree/1.9.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -428,7 +472,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-10-05T13:56:00+00:00"
|
||||
"time": "2022-06-20T21:43:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "lusitanian/oauth",
|
||||
@@ -836,16 +880,16 @@
|
||||
},
|
||||
{
|
||||
"name": "s9e/regexp-builder",
|
||||
"version": "1.4.5",
|
||||
"version": "1.4.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/s9e/RegexpBuilder.git",
|
||||
"reference": "45992e3389e0179672f3a3605d66891a8b64918c"
|
||||
"reference": "3a646bc7c40dba41903b7065f32230721e00df3a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/s9e/RegexpBuilder/zipball/45992e3389e0179672f3a3605d66891a8b64918c",
|
||||
"reference": "45992e3389e0179672f3a3605d66891a8b64918c",
|
||||
"url": "https://api.github.com/repos/s9e/RegexpBuilder/zipball/3a646bc7c40dba41903b7065f32230721e00df3a",
|
||||
"reference": "3a646bc7c40dba41903b7065f32230721e00df3a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -853,7 +897,7 @@
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "*"
|
||||
"phpunit/phpunit": ">=9.1"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -872,22 +916,22 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/s9e/RegexpBuilder/issues",
|
||||
"source": "https://github.com/s9e/RegexpBuilder/tree/1.4.5"
|
||||
"source": "https://github.com/s9e/RegexpBuilder/tree/1.4.6"
|
||||
},
|
||||
"time": "2021-04-28T21:45:11+00:00"
|
||||
"time": "2022-03-05T16:22:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "s9e/sweetdom",
|
||||
"version": "2.0.0",
|
||||
"version": "2.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/s9e/SweetDOM.git",
|
||||
"reference": "5fc62bc1f4756650924e5cd1b429afcf34542722"
|
||||
"reference": "9e34ff8f353234daed102274012c840bda56aff2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/s9e/SweetDOM/zipball/5fc62bc1f4756650924e5cd1b429afcf34542722",
|
||||
"reference": "5fc62bc1f4756650924e5cd1b429afcf34542722",
|
||||
"url": "https://api.github.com/repos/s9e/SweetDOM/zipball/9e34ff8f353234daed102274012c840bda56aff2",
|
||||
"reference": "9e34ff8f353234daed102274012c840bda56aff2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -916,22 +960,22 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/s9e/SweetDOM/issues",
|
||||
"source": "https://github.com/s9e/SweetDOM/tree/2.0.0"
|
||||
"source": "https://github.com/s9e/SweetDOM/tree/2.1.0"
|
||||
},
|
||||
"time": "2020-12-08T16:34:58+00:00"
|
||||
"time": "2021-05-24T21:06:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "s9e/text-formatter",
|
||||
"version": "2.11.0",
|
||||
"version": "2.11.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/s9e/TextFormatter.git",
|
||||
"reference": "b9d9d7ac480301f0cf718345daf591ddf475d9f1"
|
||||
"reference": "186b633ee825a93e0060368bfdf8bd46311e3163"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/s9e/TextFormatter/zipball/b9d9d7ac480301f0cf718345daf591ddf475d9f1",
|
||||
"reference": "b9d9d7ac480301f0cf718345daf591ddf475d9f1",
|
||||
"url": "https://api.github.com/repos/s9e/TextFormatter/zipball/186b633ee825a93e0060368bfdf8bd46311e3163",
|
||||
"reference": "186b633ee825a93e0060368bfdf8bd46311e3163",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -958,7 +1002,7 @@
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"version": "2.11.0"
|
||||
"version": "2.11.5"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
@@ -990,9 +1034,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/s9e/TextFormatter/issues",
|
||||
"source": "https://github.com/s9e/TextFormatter/tree/2.11.0"
|
||||
"source": "https://github.com/s9e/TextFormatter/tree/2.11.5"
|
||||
},
|
||||
"time": "2021-10-02T19:08:06+00:00"
|
||||
"time": "2022-09-19T00:20:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/config",
|
||||
@@ -1220,6 +1264,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"abandoned": "symfony/error-handler",
|
||||
"time": "2020-10-24T10:57:07+00:00"
|
||||
},
|
||||
{
|
||||
@@ -1674,16 +1719,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.24.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "30885182c981ab175d4d034db0f6f469898070ab"
|
||||
"reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
|
||||
"reference": "30885182c981ab175d4d034db0f6f469898070ab",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
|
||||
"reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1698,7 +1743,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@@ -1706,12 +1751,12 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Ctype\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Ctype\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
@@ -1736,7 +1781,7 @@
|
||||
"portable"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0"
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1752,20 +1797,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-10-20T20:35:02+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.24.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "749045c69efb97c70d25d7463abba812e91f3a44"
|
||||
"reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44",
|
||||
"reference": "749045c69efb97c70d25d7463abba812e91f3a44",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
|
||||
"reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1779,7 +1824,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@@ -1787,12 +1832,12 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Idn\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Idn\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
@@ -1823,7 +1868,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1839,20 +1884,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-09-14T14:02:44+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.24.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
|
||||
"reference": "219aa369ceff116e673852dce47c3a41794c14bd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
|
||||
"reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd",
|
||||
"reference": "219aa369ceff116e673852dce47c3a41794c14bd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1864,7 +1909,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@@ -1872,12 +1917,12 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
|
||||
},
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
@@ -1907,7 +1952,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1923,20 +1968,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-19T12:13:01+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.24.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
|
||||
"reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
||||
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
|
||||
"reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1951,7 +1996,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@@ -1959,12 +2004,12 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
@@ -1990,7 +2035,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2006,7 +2051,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-30T18:21:41+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php56",
|
||||
@@ -2146,16 +2191,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.24.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "9a142215a36a3888e30d0a9eeea9766764e96976"
|
||||
"reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976",
|
||||
"reference": "9a142215a36a3888e30d0a9eeea9766764e96976",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2",
|
||||
"reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2164,7 +2209,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@@ -2172,12 +2217,12 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php72\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php72\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
@@ -2202,7 +2247,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0"
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2218,7 +2263,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-05-27T09:17:38+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
@@ -2612,16 +2657,16 @@
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v2.14.11",
|
||||
"version": "v2.15.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "66baa66f29ee30e487e05f1679903e36eb01d727"
|
||||
"reference": "ab402673db8746cb3a4c46f3869d6253699f614a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/66baa66f29ee30e487e05f1679903e36eb01d727",
|
||||
"reference": "66baa66f29ee30e487e05f1679903e36eb01d727",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/ab402673db8746cb3a4c46f3869d6253699f614a",
|
||||
"reference": "ab402673db8746cb3a4c46f3869d6253699f614a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2637,7 +2682,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.14-dev"
|
||||
"dev-master": "2.15-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -2676,7 +2721,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/twigphp/Twig/issues",
|
||||
"source": "https://github.com/twigphp/Twig/tree/v2.14.11"
|
||||
"source": "https://github.com/twigphp/Twig/tree/v2.15.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2688,7 +2733,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-02-04T06:57:25+00:00"
|
||||
"time": "2022-09-28T08:40:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-code",
|
||||
@@ -2819,29 +2864,30 @@
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "doctrine/instantiator",
|
||||
"version": "1.4.0",
|
||||
"version": "1.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/instantiator.git",
|
||||
"reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
|
||||
"reference": "10dcfce151b967d20fde1b34ae6640712c3891bc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
|
||||
"reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
|
||||
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc",
|
||||
"reference": "10dcfce151b967d20fde1b34ae6640712c3891bc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^8.0",
|
||||
"doctrine/coding-standard": "^9",
|
||||
"ext-pdo": "*",
|
||||
"ext-phar": "*",
|
||||
"phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
|
||||
"phpstan/phpstan": "^0.12",
|
||||
"phpstan/phpstan-phpunit": "^0.12",
|
||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
|
||||
"phpbench/phpbench": "^0.16 || ^1",
|
||||
"phpstan/phpstan": "^1.4",
|
||||
"phpstan/phpstan-phpunit": "^1",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||
"vimeo/psalm": "^4.22"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -2868,7 +2914,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/instantiator/issues",
|
||||
"source": "https://github.com/doctrine/instantiator/tree/1.4.0"
|
||||
"source": "https://github.com/doctrine/instantiator/tree/1.4.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2884,7 +2930,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-11-10T18:47:58+00:00"
|
||||
"time": "2022-03-03T08:28:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fabpot/goutte",
|
||||
@@ -3002,25 +3048,29 @@
|
||||
},
|
||||
{
|
||||
"name": "myclabs/deep-copy",
|
||||
"version": "1.10.2",
|
||||
"version": "1.11.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/myclabs/DeepCopy.git",
|
||||
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
|
||||
"reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
|
||||
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614",
|
||||
"reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/collections": "<1.6.8",
|
||||
"doctrine/common": "<2.13.3 || >=3,<3.2.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/collections": "^1.0",
|
||||
"doctrine/common": "^2.6",
|
||||
"phpunit/phpunit": "^7.1"
|
||||
"doctrine/collections": "^1.6.8",
|
||||
"doctrine/common": "^2.13.3 || ^3.2.2",
|
||||
"phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -3045,7 +3095,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/myclabs/DeepCopy/issues",
|
||||
"source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
|
||||
"source": "https://github.com/myclabs/DeepCopy/tree/1.11.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3053,7 +3103,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-11-13T09:40:50+00:00"
|
||||
"time": "2022-03-03T13:19:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phar-io/manifest",
|
||||
@@ -3167,16 +3217,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phing/phing",
|
||||
"version": "2.17.1",
|
||||
"version": "2.17.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phingofficial/phing.git",
|
||||
"reference": "a386de3986429c07434476844726a9f2679e8af2"
|
||||
"reference": "9f3bc8c72e65452686dcf64497e02a082f138908"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phingofficial/phing/zipball/a386de3986429c07434476844726a9f2679e8af2",
|
||||
"reference": "a386de3986429c07434476844726a9f2679e8af2",
|
||||
"url": "https://api.github.com/repos/phingofficial/phing/zipball/9f3bc8c72e65452686dcf64497e02a082f138908",
|
||||
"reference": "9f3bc8c72e65452686dcf64497e02a082f138908",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3259,7 +3309,7 @@
|
||||
"support": {
|
||||
"irc": "irc://irc.freenode.net/phing",
|
||||
"issues": "https://www.phing.info/trac/report",
|
||||
"source": "https://github.com/phingofficial/phing/tree/2.17.1"
|
||||
"source": "https://github.com/phingofficial/phing/tree/2.17.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3275,20 +3325,20 @@
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-17T11:33:15+00:00"
|
||||
"time": "2022-07-08T09:07:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-webdriver/webdriver",
|
||||
"version": "1.12.0",
|
||||
"version": "1.13.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-webdriver/php-webdriver.git",
|
||||
"reference": "99d4856ed7dffcdf6a52eccd6551e83d8d557ceb"
|
||||
"reference": "6dfe5f814b796c1b5748850aa19f781b9274c36c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/99d4856ed7dffcdf6a52eccd6551e83d8d557ceb",
|
||||
"reference": "99d4856ed7dffcdf6a52eccd6551e83d8d557ceb",
|
||||
"url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/6dfe5f814b796c1b5748850aa19f781b9274c36c",
|
||||
"reference": "6dfe5f814b796c1b5748850aa19f781b9274c36c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3316,12 +3366,12 @@
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Facebook\\WebDriver\\": "lib/"
|
||||
},
|
||||
"files": [
|
||||
"lib/Exception/TimeoutException.php"
|
||||
]
|
||||
],
|
||||
"psr-4": {
|
||||
"Facebook\\WebDriver\\": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
@@ -3338,9 +3388,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/php-webdriver/php-webdriver/issues",
|
||||
"source": "https://github.com/php-webdriver/php-webdriver/tree/1.12.0"
|
||||
"source": "https://github.com/php-webdriver/php-webdriver/tree/1.13.1"
|
||||
},
|
||||
"time": "2021-10-14T09:30:02+00:00"
|
||||
"time": "2022-10-11T11:49:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/reflection-common",
|
||||
@@ -4062,16 +4112,16 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/comparator",
|
||||
"version": "3.0.3",
|
||||
"version": "3.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/comparator.git",
|
||||
"reference": "1071dfcef776a57013124ff35e1fc41ccd294758"
|
||||
"reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758",
|
||||
"reference": "1071dfcef776a57013124ff35e1fc41ccd294758",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770",
|
||||
"reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4124,7 +4174,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/comparator/issues",
|
||||
"source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3"
|
||||
"source": "https://github.com/sebastianbergmann/comparator/tree/3.0.5"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4132,7 +4182,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2020-11-30T08:04:30+00:00"
|
||||
"time": "2022-09-14T12:31:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/diff",
|
||||
@@ -4265,16 +4315,16 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/exporter",
|
||||
"version": "3.1.4",
|
||||
"version": "3.1.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/exporter.git",
|
||||
"reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db"
|
||||
"reference": "73a9676f2833b9a7c36968f9d882589cd75511e6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0c32ea2e40dbf59de29f3b49bf375176ce7dd8db",
|
||||
"reference": "0c32ea2e40dbf59de29f3b49bf375176ce7dd8db",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6",
|
||||
"reference": "73a9676f2833b9a7c36968f9d882589cd75511e6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4330,7 +4380,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/exporter/issues",
|
||||
"source": "https://github.com/sebastianbergmann/exporter/tree/3.1.4"
|
||||
"source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4338,7 +4388,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-11T13:51:24+00:00"
|
||||
"time": "2022-09-14T06:00:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/global-state",
|
||||
@@ -4671,16 +4721,16 @@
|
||||
},
|
||||
{
|
||||
"name": "squizlabs/php_codesniffer",
|
||||
"version": "3.6.2",
|
||||
"version": "3.7.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
||||
"reference": "5e4e71592f69da17871dba6e80dd51bce74a351a"
|
||||
"reference": "1359e176e9307e906dc3d890bcc9603ff6d90619"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a",
|
||||
"reference": "5e4e71592f69da17871dba6e80dd51bce74a351a",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619",
|
||||
"reference": "1359e176e9307e906dc3d890bcc9603ff6d90619",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4723,7 +4773,7 @@
|
||||
"source": "https://github.com/squizlabs/PHP_CodeSniffer",
|
||||
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
|
||||
},
|
||||
"time": "2021-12-12T21:44:58+00:00"
|
||||
"time": "2022-06-18T07:21:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/browser-kit",
|
||||
@@ -5032,7 +5082,7 @@
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": "^7.1.3",
|
||||
"php": "^7.1.3 || ^8.0.0",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*"
|
||||
},
|
||||
|
@@ -40,6 +40,7 @@ services:
|
||||
- '@cache.driver'
|
||||
- '@config'
|
||||
- '@dbal.conn'
|
||||
- '@dispatcher'
|
||||
- '%core.root_path%'
|
||||
- '%core.php_ext%'
|
||||
|
||||
|
@@ -6,6 +6,7 @@ services:
|
||||
- '@routing.helper'
|
||||
- '%core.root_path%'
|
||||
- '%core.php_ext%'
|
||||
- '@template'
|
||||
|
||||
cron.lock_db:
|
||||
class: phpbb\lock\db
|
||||
|
@@ -50,6 +50,8 @@
|
||||
<ol>
|
||||
<li><a href="#changelog">Changelog</a>
|
||||
<ul>
|
||||
<li><a href="#v338">Changes since 3.3.8</a></li>
|
||||
<li><a href="#v337">Changes since 3.3.7</a></li>
|
||||
<li><a href="#v336">Changes since 3.3.6</a></li>
|
||||
<li><a href="#v336rc1">Changes since 3.3.6-RC1</a></li>
|
||||
<li><a href="#v335">Changes since 3.3.5</a></li>
|
||||
@@ -161,6 +163,59 @@
|
||||
<div class="inner">
|
||||
|
||||
<div class="content">
|
||||
<a name="v338"></a><h3>Changes since 3.3.8</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16917">PHPBB3-16917</a>] - bin/phpbb.cli requires 755 permissions</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16932">PHPBB3-16932</a>] - Invalid email To: header on notifications to users with @ in name</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17003">PHPBB3-17003</a>] - Icon of a topic do not show up in the UCP > Front Page.</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17019">PHPBB3-17019</a>] - Missing "youtube" profilefield stops Database update</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17023">PHPBB3-17023</a>] - phpBB 3.3: PHP8 supported but not indicated by composer.json</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17026">PHPBB3-17026</a>] - Session viewonline not defined in Memberlist</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17030">PHPBB3-17030</a>] - Feed doesn't generate valid RFC-3339 dates</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17032">PHPBB3-17032</a>] - Missing or invalid user entry for anonymous user may result in stack overflow</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17036">PHPBB3-17036</a>] - Update guzzle to latest version</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17050">PHPBB3-17050</a>] - Unnecessary trailing slash in void HTML elements</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17051">PHPBB3-17051</a>] - Textformatter may generate PHP warnings if user is not fully initialized in PHP 8.1</li>
|
||||
</ul>
|
||||
<h4>Improvement</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16916">PHPBB3-16916</a>] - Enhance the PHP version error message on startup and install</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17005">PHPBB3-17005</a>] - List item closing tag missing slash in posting_topic_review</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17006">PHPBB3-17006</a>] - "www." not needed and may lead to confusion</li>
|
||||
</ul>
|
||||
<h4>Task</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17048">PHPBB3-17048</a>] - Update composer and dependencies for 3.3.9</li>
|
||||
</ul>
|
||||
|
||||
<a name="v337"></a><h3>Changes since 3.3.7</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13821">PHPBB3-13821</a>] - Always show "Display this post" for foes</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16871">PHPBB3-16871</a>] - S_FORUM_ID and S_TOPIC_ID variables set by page_header may cause fatal errors in feeds</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16891">PHPBB3-16891</a>] - Controller Helper Routing in ACP can break Extension Installation</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16960">PHPBB3-16960</a>] - Migrations table not populated at the end of installation</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16962">PHPBB3-16962</a>] - Possible bug related with format date</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16966">PHPBB3-16966</a>] - "Insecure redirect" error while permanently deleting posts</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16976">PHPBB3-16976</a>] - phpBB Native Search returns 1 match and one page of results</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16977">PHPBB3-16977</a>] - Cron-job "img" tag at bottom breaks some styles and is inaccessible</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16978">PHPBB3-16978</a>] - </ul> Tag Missing From posting_pm_header.html Template</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16981">PHPBB3-16981</a>] - HTML-encoded emojis `&#128396;️ &#128208;` in email subject line</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16990">PHPBB3-16990</a>] - Wrong style template code in the post editor prevents deleting a post with certain permission combination</li>
|
||||
</ul>
|
||||
<h4>Improvement</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13859">PHPBB3-13859</a>] - Youtube profilefield needs an upgrade</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15947">PHPBB3-15947</a>] - "X out of 0 messages stored" in UCP</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16800">PHPBB3-16800</a>] - Language string NO_POSTS should be changed</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16959">PHPBB3-16959</a>] - Remove redundant URL parameters from notification mails</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16967">PHPBB3-16967</a>] - Deprecate use of PHP and INCLUDEPHP in templates</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16969">PHPBB3-16969</a>] - Flash status displays when posting when posts settings don't allow [FLASH] - BBCode</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16988">PHPBB3-16988</a>] - Ignore appended branch info when preparing commit message</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16991">PHPBB3-16991</a>] - Add events for bookmarks and subscribed topics in UCP</li>
|
||||
</ul>
|
||||
|
||||
<a name="v336"></a><h3>Changes since 3.3.6</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
|
@@ -1304,6 +1304,7 @@ parent = prosilver</pre>
|
||||
</pre></div>
|
||||
|
||||
<h4>PHP</h4>
|
||||
<p><strong class="error">The use of PHP in HTML files has been deprecated in phpBB 3.3 and will be removed in phpBB 4.0.</strong></p>
|
||||
<p>A contentious decision has seen the ability to include PHP within the template introduced. This is achieved by enclosing the PHP within relevant tags:</p>
|
||||
|
||||
<div class="codebox"><pre>
|
||||
|
@@ -2530,6 +2530,13 @@ ucp_header_friends_online_username_full_prepend
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Prepend information to online friends username in UCP
|
||||
|
||||
ucp_main_bookmarks_topic_title_after
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_main_bookmarks.html
|
||||
* Since: 3.3.8-RC1
|
||||
* Purpose: Add content right after the topic title viewing UCP bookmarks
|
||||
|
||||
ucp_main_front_user_activity_after
|
||||
===
|
||||
* Locations:
|
||||
@@ -2558,6 +2565,13 @@ ucp_main_front_user_activity_prepend
|
||||
* Since: 3.1.11-RC1
|
||||
* Purpose: Add content before first user activity info viewing UCP front page
|
||||
|
||||
ucp_main_subscribed_topic_title_after
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_main_subscribed.html
|
||||
* Since: 3.3.8-RC1
|
||||
* Purpose: Add content right after the topic title viewing UCP subscribed topics
|
||||
|
||||
ucp_pm_history_post_buttons_after
|
||||
===
|
||||
* Locations:
|
||||
|
@@ -86,7 +86,7 @@ class acp_bbcodes
|
||||
$display_on_posting = $request->variable('display_on_posting', 0);
|
||||
|
||||
$bbcode_match = $request->variable('bbcode_match', '');
|
||||
$bbcode_tpl = htmlspecialchars_decode($request->variable('bbcode_tpl', '', true), ENT_COMPAT);
|
||||
$bbcode_tpl = html_entity_decode($request->variable('bbcode_tpl', '', true), ENT_COMPAT);
|
||||
$bbcode_helpline = $request->variable('bbcode_helpline', '', true);
|
||||
break;
|
||||
}
|
||||
|
@@ -720,8 +720,8 @@ class acp_board
|
||||
$messenger->set_addresses($user->data);
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($user->data['username'], ENT_COMPAT),
|
||||
'MESSAGE' => htmlspecialchars_decode($request->variable('send_test_email_text', '', true), ENT_COMPAT),
|
||||
'USERNAME' => html_entity_decode($user->data['username'], ENT_COMPAT),
|
||||
'MESSAGE' => html_entity_decode($request->variable('send_test_email_text', '', true), ENT_COMPAT),
|
||||
));
|
||||
$messenger->send(NOTIFY_EMAIL);
|
||||
|
||||
|
@@ -205,7 +205,7 @@ class acp_email
|
||||
$email_template = 'admin_send_email';
|
||||
$template_data = array(
|
||||
'CONTACT_EMAIL' => phpbb_get_board_contact($config, $phpEx),
|
||||
'MESSAGE' => htmlspecialchars_decode($message, ENT_COMPAT),
|
||||
'MESSAGE' => html_entity_decode($message, ENT_COMPAT),
|
||||
);
|
||||
$generate_log_entry = true;
|
||||
|
||||
@@ -252,7 +252,7 @@ class acp_email
|
||||
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
|
||||
$messenger->subject(htmlspecialchars_decode($subject, ENT_COMPAT));
|
||||
$messenger->subject(html_entity_decode($subject, ENT_COMPAT));
|
||||
$messenger->set_mail_priority($priority);
|
||||
|
||||
$messenger->assign_vars($template_data);
|
||||
|
@@ -90,7 +90,7 @@ class acp_help_phpbb
|
||||
|
||||
if (!empty($response))
|
||||
{
|
||||
$decoded_response = json_decode(htmlspecialchars_decode($response, ENT_COMPAT), true);
|
||||
$decoded_response = json_decode(html_entity_decode($response, ENT_COMPAT), true);
|
||||
|
||||
if ($decoded_response && isset($decoded_response['status']) && $decoded_response['status'] == 'ok')
|
||||
{
|
||||
|
@@ -130,7 +130,7 @@ class acp_inactive
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($row['username'], ENT_COMPAT))
|
||||
'USERNAME' => html_entity_decode($row['username'], ENT_COMPAT))
|
||||
);
|
||||
|
||||
$messenger->send(NOTIFY_EMAIL);
|
||||
@@ -224,7 +224,7 @@ class acp_inactive
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($row['username'], ENT_COMPAT),
|
||||
'USERNAME' => html_entity_decode($row['username'], ENT_COMPAT),
|
||||
'REGISTER_DATE' => $user->format_date($row['user_regdate'], false, true),
|
||||
'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u=" . $row['user_id'] . '&k=' . $row['user_actkey'])
|
||||
);
|
||||
|
@@ -108,7 +108,7 @@ class acp_logs
|
||||
$sql_sort = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');
|
||||
|
||||
$keywords = $request->variable('keywords', '', true);
|
||||
$keywords_param = !empty($keywords) ? '&keywords=' . urlencode(htmlspecialchars_decode($keywords, ENT_COMPAT)) : '';
|
||||
$keywords_param = !empty($keywords) ? '&keywords=' . urlencode(html_entity_decode($keywords, ENT_COMPAT)) : '';
|
||||
|
||||
$l_title = $user->lang['ACP_' . strtoupper($mode) . '_LOGS'];
|
||||
$l_title_explain = $user->lang['ACP_' . strtoupper($mode) . '_LOGS_EXPLAIN'];
|
||||
|
@@ -70,7 +70,7 @@ class acp_ranks
|
||||
'rank_title' => $rank_title,
|
||||
'rank_special' => $special_rank,
|
||||
'rank_min' => $min_posts,
|
||||
'rank_image' => htmlspecialchars_decode($rank_image, ENT_COMPAT)
|
||||
'rank_image' => html_entity_decode($rank_image, ENT_COMPAT)
|
||||
);
|
||||
|
||||
/**
|
||||
|
@@ -402,8 +402,8 @@ class acp_users
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'WELCOME_MSG' => htmlspecialchars_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), ENT_COMPAT),
|
||||
'USERNAME' => htmlspecialchars_decode($user_row['username'], ENT_COMPAT),
|
||||
'WELCOME_MSG' => html_entity_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), ENT_COMPAT),
|
||||
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
|
||||
'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k=$user_actkey")
|
||||
);
|
||||
|
||||
@@ -466,7 +466,7 @@ class acp_users
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($user_row['username'], ENT_COMPAT))
|
||||
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT))
|
||||
);
|
||||
|
||||
$messenger->send(NOTIFY_EMAIL);
|
||||
|
@@ -28,7 +28,7 @@ if (!defined('IN_PHPBB'))
|
||||
*/
|
||||
|
||||
// phpBB Version
|
||||
@define('PHPBB_VERSION', '3.3.7');
|
||||
@define('PHPBB_VERSION', '3.3.9-RC1');
|
||||
|
||||
// QA-related
|
||||
// define('PHPBB_QA', 1);
|
||||
|
@@ -3874,8 +3874,9 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
|
||||
}
|
||||
}
|
||||
|
||||
$forum_id = $request->variable('f', 0);
|
||||
$topic_id = $request->variable('t', 0);
|
||||
// Negative forum and topic IDs are not allowed
|
||||
$forum_id = max(0, $request->variable('f', 0));
|
||||
$topic_id = max(0, $request->variable('t', 0));
|
||||
|
||||
$s_feed_news = false;
|
||||
|
||||
|
@@ -759,7 +759,7 @@ function phpbb_http_login($param)
|
||||
{
|
||||
if ($request->is_set($k, \phpbb\request\request_interface::SERVER))
|
||||
{
|
||||
$username = htmlspecialchars_decode($request->server($k), ENT_COMPAT);
|
||||
$username = html_entity_decode($request->server($k), ENT_COMPAT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -769,7 +769,7 @@ function phpbb_http_login($param)
|
||||
{
|
||||
if ($request->is_set($k, \phpbb\request\request_interface::SERVER))
|
||||
{
|
||||
$password = htmlspecialchars_decode($request->server($k), ENT_COMPAT);
|
||||
$password = html_entity_decode($request->server($k), ENT_COMPAT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -803,8 +803,8 @@ function make_clickable_callback($type, $whitespace, $url, $relative_url, $class
|
||||
$orig_url = $url;
|
||||
$orig_relative = $relative_url;
|
||||
$append = '';
|
||||
$url = htmlspecialchars_decode($url, ENT_COMPAT);
|
||||
$relative_url = htmlspecialchars_decode($relative_url, ENT_COMPAT);
|
||||
$url = html_entity_decode($url, ENT_COMPAT);
|
||||
$relative_url = html_entity_decode($relative_url, ENT_COMPAT);
|
||||
|
||||
// make sure no HTML entities were matched
|
||||
$chars = array('<', '>', '"');
|
||||
@@ -1456,7 +1456,7 @@ function truncate_string($string, $max_length = 60, $max_store_length = 255, $al
|
||||
$string = substr($string, 4);
|
||||
}
|
||||
|
||||
$_chars = utf8_str_split(htmlspecialchars_decode($string, ENT_COMPAT));
|
||||
$_chars = utf8_str_split(html_entity_decode($string, ENT_COMPAT));
|
||||
$chars = array_map('utf8_htmlspecialchars', $_chars);
|
||||
|
||||
// Now check the length ;)
|
||||
@@ -1471,7 +1471,7 @@ function truncate_string($string, $max_length = 60, $max_store_length = 255, $al
|
||||
if (utf8_strlen($string) > $max_store_length)
|
||||
{
|
||||
// let's split again, we do not want half-baked strings where entities are split
|
||||
$_chars = utf8_str_split(htmlspecialchars_decode($string, ENT_COMPAT));
|
||||
$_chars = utf8_str_split(html_entity_decode($string, ENT_COMPAT));
|
||||
$chars = array_map('utf8_htmlspecialchars', $_chars);
|
||||
|
||||
do
|
||||
|
@@ -208,7 +208,7 @@ function send_file_to_browser($attachment, $upload_dir, $category)
|
||||
|
||||
if (empty($user->browser) || ((strpos(strtolower($user->browser), 'msie') !== false) && !phpbb_is_greater_ie_version($user->browser, 7)))
|
||||
{
|
||||
header('Content-Disposition: attachment; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'], ENT_COMPAT)));
|
||||
header('Content-Disposition: attachment; ' . header_filename(html_entity_decode($attachment['real_filename'], ENT_COMPAT)));
|
||||
if (empty($user->browser) || (strpos(strtolower($user->browser), 'msie 6.0') !== false))
|
||||
{
|
||||
header('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
|
||||
@@ -216,7 +216,7 @@ function send_file_to_browser($attachment, $upload_dir, $category)
|
||||
}
|
||||
else
|
||||
{
|
||||
header('Content-Disposition: ' . ((strpos($attachment['mimetype'], 'image') === 0) ? 'inline' : 'attachment') . '; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'], ENT_COMPAT)));
|
||||
header('Content-Disposition: ' . ((strpos($attachment['mimetype'], 'image') === 0) ? 'inline' : 'attachment') . '; ' . header_filename(html_entity_decode($attachment['real_filename'], ENT_COMPAT)));
|
||||
if (phpbb_is_greater_ie_version($user->browser, 7) && (strpos($attachment['mimetype'], 'image') !== 0))
|
||||
{
|
||||
header('X-Download-Options: noopen');
|
||||
@@ -327,7 +327,7 @@ function download_allowed()
|
||||
return true;
|
||||
}
|
||||
|
||||
$url = htmlspecialchars_decode($request->header('Referer'), ENT_COMPAT);
|
||||
$url = html_entity_decode($request->header('Referer'), ENT_COMPAT);
|
||||
|
||||
if (!$url)
|
||||
{
|
||||
|
@@ -320,8 +320,8 @@ class messenger
|
||||
// We add some standard variables we always use, no need to specify them always
|
||||
$this->assign_vars(array(
|
||||
'U_BOARD' => generate_board_url(),
|
||||
'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . htmlspecialchars_decode($config['board_email_sig'], ENT_COMPAT)),
|
||||
'SITENAME' => htmlspecialchars_decode($config['sitename'], ENT_COMPAT),
|
||||
'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . html_entity_decode($config['board_email_sig'], ENT_COMPAT)),
|
||||
'SITENAME' => html_entity_decode($config['sitename'], ENT_COMPAT),
|
||||
));
|
||||
|
||||
$subject = $this->subject;
|
||||
@@ -427,7 +427,7 @@ class messenger
|
||||
$user->session_begin();
|
||||
}
|
||||
|
||||
$calling_page = htmlspecialchars_decode($request->server('PHP_SELF'), ENT_COMPAT);
|
||||
$calling_page = html_entity_decode($request->server('PHP_SELF'), ENT_COMPAT);
|
||||
|
||||
switch ($type)
|
||||
{
|
||||
@@ -557,7 +557,7 @@ class messenger
|
||||
$use_queue = true;
|
||||
}
|
||||
|
||||
$contact_name = htmlspecialchars_decode($config['board_contact_name'], ENT_COMPAT);
|
||||
$contact_name = html_entity_decode($config['board_contact_name'], ENT_COMPAT);
|
||||
$board_contact = (($contact_name !== '') ? '"' . mail_encode($contact_name) . '" ' : '') . '<' . $config['board_contact'] . '>';
|
||||
|
||||
$break = false;
|
||||
@@ -691,7 +691,7 @@ class messenger
|
||||
if (!$use_queue)
|
||||
{
|
||||
include_once($phpbb_root_path . 'includes/functions_jabber.' . $phpEx);
|
||||
$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], htmlspecialchars_decode($config['jab_password'], ENT_COMPAT), $config['jab_use_ssl'], $config['jab_verify_peer'], $config['jab_verify_peer_name'], $config['jab_allow_self_signed']);
|
||||
$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], html_entity_decode($config['jab_password'], ENT_COMPAT), $config['jab_use_ssl'], $config['jab_verify_peer'], $config['jab_verify_peer_name'], $config['jab_allow_self_signed']);
|
||||
|
||||
if (!$this->jabber->connect())
|
||||
{
|
||||
@@ -891,7 +891,7 @@ class queue
|
||||
}
|
||||
|
||||
include_once($phpbb_root_path . 'includes/functions_jabber.' . $phpEx);
|
||||
$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], htmlspecialchars_decode($config['jab_password'], ENT_COMPAT), $config['jab_use_ssl'], $config['jab_verify_peer'], $config['jab_verify_peer_name'], $config['jab_allow_self_signed']);
|
||||
$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], html_entity_decode($config['jab_password'], ENT_COMPAT), $config['jab_use_ssl'], $config['jab_verify_peer'], $config['jab_verify_peer_name'], $config['jab_allow_self_signed']);
|
||||
|
||||
if (!$this->jabber->connect())
|
||||
{
|
||||
@@ -1208,7 +1208,7 @@ function smtpmail($addresses, $subject, $message, &$err_msg, $headers = false)
|
||||
}
|
||||
|
||||
// Let me in. This function handles the complete authentication process
|
||||
if ($err_msg = $smtp->log_into_server($config['smtp_host'], $config['smtp_username'], htmlspecialchars_decode($config['smtp_password'], ENT_COMPAT), $config['smtp_auth_method']))
|
||||
if ($err_msg = $smtp->log_into_server($config['smtp_host'], $config['smtp_username'], html_entity_decode($config['smtp_password'], ENT_COMPAT), $config['smtp_auth_method']))
|
||||
{
|
||||
$smtp->close_session($err_msg);
|
||||
return false;
|
||||
@@ -1882,7 +1882,7 @@ function mail_encode($str, $eol = "\r\n")
|
||||
{
|
||||
$encoded_char = $is_quoted_printable
|
||||
? $char = preg_replace_callback(
|
||||
'/[=_\?\x20\x00-\x1F\x80-\xFF]/',
|
||||
'/[()<>@,;:\\\\".\[\]=_?\x20\x00-\x1F\x80-\xFF]/',
|
||||
function ($matches)
|
||||
{
|
||||
$hex = dechex(ord($matches[0]));
|
||||
|
@@ -1253,11 +1253,11 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
|
||||
'POST_AUTHOR' => get_username_string('username', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
|
||||
'U_POST_AUTHOR' => get_username_string('profile', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
|
||||
|
||||
'S_HAS_ATTACHMENTS' => (!empty($attachments[$row['post_id']])) ? true : false,
|
||||
'S_FRIEND' => ($row['friend']) ? true : false,
|
||||
'S_IGNORE_POST' => ($row['foe']) ? true : false,
|
||||
'L_IGNORE_POST' => ($row['foe']) ? sprintf($user->lang['POST_BY_FOE'], get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), "<a href=\"{$u_show_post}\" onclick=\"phpbb.toggleDisplay('{$post_anchor}', 1); return false;\">", '</a>') : '',
|
||||
'S_POST_DELETED' => ($row['post_visibility'] == ITEM_DELETED) ? true : false,
|
||||
'S_HAS_ATTACHMENTS' => !empty($attachments[$row['post_id']]),
|
||||
'S_FRIEND' => (bool) $row['friend'],
|
||||
'S_IGNORE_POST' => (bool) $row['foe'],
|
||||
'L_IGNORE_POST' => $row['foe'] ? $user->lang('POST_BY_FOE', get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), "<a href=\"{$u_show_post}\" onclick=\"phpbb.toggleDisplay('{$post_anchor}', 1); return false;\">", '</a>') : '',
|
||||
'S_POST_DELETED' => $row['post_visibility'] == ITEM_DELETED,
|
||||
'L_DELETE_POST' => $l_deleted_message,
|
||||
|
||||
'POST_SUBJECT' => $post_subject,
|
||||
|
@@ -1575,11 +1575,11 @@ function validate_string($string, $optional = false, $min = 0, $max = 0)
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($min && utf8_strlen(htmlspecialchars_decode($string, ENT_COMPAT)) < $min)
|
||||
if ($min && utf8_strlen(html_entity_decode($string, ENT_COMPAT)) < $min)
|
||||
{
|
||||
return 'TOO_SHORT';
|
||||
}
|
||||
else if ($max && utf8_strlen(htmlspecialchars_decode($string, ENT_COMPAT)) > $max)
|
||||
else if ($max && utf8_strlen(html_entity_decode($string, ENT_COMPAT)) > $max)
|
||||
{
|
||||
return 'TOO_LONG';
|
||||
}
|
||||
|
@@ -179,7 +179,7 @@ class mcp_logs
|
||||
$sql_sort = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');
|
||||
|
||||
$keywords = $request->variable('keywords', '', true);
|
||||
$keywords_param = !empty($keywords) ? '&keywords=' . urlencode(htmlspecialchars_decode($keywords, ENT_COMPAT)) : '';
|
||||
$keywords_param = !empty($keywords) ? '&keywords=' . urlencode(html_entity_decode($keywords, ENT_COMPAT)) : '';
|
||||
|
||||
// Grab log data
|
||||
$log_data = array();
|
||||
|
@@ -1245,7 +1245,7 @@ function mcp_delete_post($post_ids, $is_soft = false, $soft_delete_reason = '',
|
||||
else
|
||||
{
|
||||
// Remove any post id anchor
|
||||
if ($anchor_pos = (strrpos($redirect, '#p')) !== false)
|
||||
if (($anchor_pos = strrpos($redirect, '#p')) !== false)
|
||||
{
|
||||
$redirect = substr($redirect, 0, $anchor_pos);
|
||||
}
|
||||
|
@@ -206,7 +206,7 @@ class mcp_notes
|
||||
$sql_sort = $sort_by_sql[$sk] . ' ' . (($sd == 'd') ? 'DESC' : 'ASC');
|
||||
|
||||
$keywords = $request->variable('keywords', '', true);
|
||||
$keywords_param = !empty($keywords) ? '&keywords=' . urlencode(htmlspecialchars_decode($keywords, ENT_COMPAT)) : '';
|
||||
$keywords_param = !empty($keywords) ? '&keywords=' . urlencode(html_entity_decode($keywords, ENT_COMPAT)) : '';
|
||||
|
||||
$log_data = array();
|
||||
$log_count = 0;
|
||||
|
@@ -506,7 +506,7 @@ class bbcode_firstpass extends bbcode
|
||||
}
|
||||
|
||||
// Because highlight_string is specialcharing the text (but we already did this before), we have to reverse this in order to get correct results
|
||||
$code = htmlspecialchars_decode($code, ENT_COMPAT);
|
||||
$code = html_entity_decode($code, ENT_COMPAT);
|
||||
$code = highlight_string($code, true);
|
||||
|
||||
$str_from = array('<span style="color: ', '<font color="syntax', '</font>', '<code>', '</code>','[', ']', '.', ':');
|
||||
@@ -1247,7 +1247,7 @@ class parse_message extends bbcode_firstpass
|
||||
));
|
||||
|
||||
// Parse this message
|
||||
$this->message = $parser->parse(htmlspecialchars_decode($this->message, ENT_QUOTES));
|
||||
$this->message = $parser->parse(html_entity_decode($this->message, ENT_QUOTES));
|
||||
|
||||
// Remove quotes that are nested too deep
|
||||
if ($config['max_quote_depth'] > 0)
|
||||
|
@@ -150,11 +150,11 @@ class phpbb_questionnaire_system_data_provider
|
||||
|
||||
// Start discovering the IPV4 server address, if available
|
||||
// Try apache, IIS, fall back to 0.0.0.0
|
||||
$server_address = htmlspecialchars_decode($request->server('SERVER_ADDR', $request->server('LOCAL_ADDR', '0.0.0.0')), ENT_COMPAT);
|
||||
$server_address = html_entity_decode($request->server('SERVER_ADDR', $request->server('LOCAL_ADDR', '0.0.0.0')), ENT_COMPAT);
|
||||
|
||||
return array(
|
||||
'os' => PHP_OS,
|
||||
'httpd' => htmlspecialchars_decode($request->server('SERVER_SOFTWARE'), ENT_COMPAT),
|
||||
'httpd' => html_entity_decode($request->server('SERVER_SOFTWARE'), ENT_COMPAT),
|
||||
// we don't want the real IP address (for privacy policy reasons) but only
|
||||
// a network address to see whether your installation is running on a private or public network.
|
||||
'private_ip' => $this->is_private_ip($server_address),
|
||||
|
@@ -27,7 +27,7 @@ error_reporting($level);
|
||||
*/
|
||||
if (version_compare(PHP_VERSION, '7.1.3', '<'))
|
||||
{
|
||||
die('You are running an unsupported PHP version. Please upgrade to PHP 7.1.3 or higher before trying to install or update to phpBB 3.3');
|
||||
die('You are running an unsupported PHP version (' . PHP_VERSION . '). Please upgrade to PHP 7.1.3 or higher before trying to install or update to phpBB 3.3');
|
||||
}
|
||||
// Register globals and magic quotes have been dropped in PHP 5.4 so no need for extra checks
|
||||
|
||||
|
@@ -142,7 +142,7 @@ class ucp_activate
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($user_row['username'], ENT_COMPAT))
|
||||
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT))
|
||||
);
|
||||
|
||||
$messenger->send($user_row['user_notify_type']);
|
||||
|
@@ -35,7 +35,7 @@ class ucp_main
|
||||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx, $phpbb_dispatcher;
|
||||
global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx, $phpbb_dispatcher, $cache;
|
||||
global $request;
|
||||
|
||||
switch ($mode)
|
||||
@@ -44,8 +44,8 @@ class ucp_main
|
||||
|
||||
$user->add_lang('memberlist');
|
||||
|
||||
$sql_from = TOPICS_TABLE . ' t ';
|
||||
$sql_select = '';
|
||||
$sql_from = TOPICS_TABLE . ' t LEFT JOIN ' . FORUMS_TABLE . ' f ON (f.forum_id = t.forum_id) ';
|
||||
$sql_select = ', f.enable_icons';
|
||||
|
||||
if ($config['load_db_track'])
|
||||
{
|
||||
@@ -137,6 +137,9 @@ class ucp_main
|
||||
}
|
||||
unset($topic_forum_list);
|
||||
|
||||
// Grab icons
|
||||
$icons = $cache->obtain_icons();
|
||||
|
||||
foreach ($topic_list as $topic_id)
|
||||
{
|
||||
$row = &$rowset[$topic_id];
|
||||
@@ -176,10 +179,14 @@ class ucp_main
|
||||
'TOPIC_TITLE' => censor_text($row['topic_title']),
|
||||
'TOPIC_TYPE' => $topic_type,
|
||||
|
||||
'TOPIC_ICON_IMG' => !empty($icons[$row['icon_id']]) ? $icons[$row['icon_id']]['img'] : '',
|
||||
'TOPIC_ICON_IMG_WIDTH' => !empty($icons[$row['icon_id']]) ? $icons[$row['icon_id']]['width'] : '',
|
||||
'TOPIC_ICON_IMG_HEIGHT' => !empty($icons[$row['icon_id']]) ? $icons[$row['icon_id']]['height'] : '',
|
||||
'TOPIC_IMG_STYLE' => $folder_img,
|
||||
'TOPIC_FOLDER_IMG' => $user->img($folder_img, $folder_alt),
|
||||
'ATTACH_ICON_IMG' => ($auth->acl_get('u_download') && $auth->acl_get('f_download', $forum_id) && $row['topic_attachment']) ? $user->img('icon_topic_attach', '') : '',
|
||||
|
||||
'S_TOPIC_ICONS' => $row['enable_icons'] ? true : false,
|
||||
'S_USER_POSTED' => (!empty($row['topic_posted']) && $row['topic_posted']) ? true : false,
|
||||
'S_UNREAD' => $unread_topic,
|
||||
|
||||
@@ -396,23 +403,25 @@ class ucp_main
|
||||
if ($row['forum_last_post_id'])
|
||||
{
|
||||
$last_post_time = $user->format_date($row['forum_last_post_time']);
|
||||
$last_post_time_rfc3339 = gmdate(DATE_RFC3339, $row['forum_last_post_time']);
|
||||
$last_post_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "p=" . $row['forum_last_post_id']) . '#p' . $row['forum_last_post_id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$last_post_time = $last_post_url = '';
|
||||
$last_post_time = $last_post_time_rfc3339 = $last_post_url = '';
|
||||
}
|
||||
|
||||
$template_vars = array(
|
||||
'FORUM_ID' => $forum_id,
|
||||
'FORUM_IMG_STYLE' => $folder_image,
|
||||
'FORUM_FOLDER_IMG' => $user->img($folder_image, $folder_alt),
|
||||
'FORUM_IMAGE' => ($row['forum_image']) ? '<img src="' . $phpbb_root_path . $row['forum_image'] . '" alt="' . $user->lang[$folder_alt] . '" />' : '',
|
||||
'FORUM_IMAGE_SRC' => ($row['forum_image']) ? $phpbb_root_path . $row['forum_image'] : '',
|
||||
'FORUM_NAME' => $row['forum_name'],
|
||||
'FORUM_DESC' => generate_text_for_display($row['forum_desc'], $row['forum_desc_uid'], $row['forum_desc_bitfield'], $row['forum_desc_options']),
|
||||
'LAST_POST_SUBJECT' => $row['forum_last_post_subject'],
|
||||
'LAST_POST_TIME' => $last_post_time,
|
||||
'FORUM_ID' => $forum_id,
|
||||
'FORUM_IMG_STYLE' => $folder_image,
|
||||
'FORUM_FOLDER_IMG' => $user->img($folder_image, $folder_alt),
|
||||
'FORUM_IMAGE' => ($row['forum_image']) ? '<img src="' . $phpbb_root_path . $row['forum_image'] . '" alt="' . $user->lang[$folder_alt] . '" />' : '',
|
||||
'FORUM_IMAGE_SRC' => ($row['forum_image']) ? $phpbb_root_path . $row['forum_image'] : '',
|
||||
'FORUM_NAME' => $row['forum_name'],
|
||||
'FORUM_DESC' => generate_text_for_display($row['forum_desc'], $row['forum_desc_uid'], $row['forum_desc_bitfield'], $row['forum_desc_options']),
|
||||
'LAST_POST_SUBJECT' => $row['forum_last_post_subject'],
|
||||
'LAST_POST_TIME' => $last_post_time,
|
||||
'LAST_POST_TIME_RFC3339' => $last_post_time_rfc3339,
|
||||
|
||||
'LAST_POST_AUTHOR' => get_username_string('username', $row['forum_last_poster_id'], $row['forum_last_poster_name'], $row['forum_last_poster_colour']),
|
||||
'LAST_POST_AUTHOR_COLOUR' => get_username_string('colour', $row['forum_last_poster_id'], $row['forum_last_poster_name'], $row['forum_last_poster_colour']),
|
||||
|
@@ -186,7 +186,7 @@ class ucp_profile
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($data['username'], ENT_COMPAT),
|
||||
'USERNAME' => html_entity_decode($data['username'], ENT_COMPAT),
|
||||
'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$user->data['user_id']}&k=$user_actkey")
|
||||
);
|
||||
|
||||
|
@@ -468,9 +468,9 @@ class ucp_register
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'WELCOME_MSG' => htmlspecialchars_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), ENT_COMPAT),
|
||||
'USERNAME' => htmlspecialchars_decode($data['username'], ENT_COMPAT),
|
||||
'PASSWORD' => htmlspecialchars_decode($data['new_password'], ENT_COMPAT),
|
||||
'WELCOME_MSG' => html_entity_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), ENT_COMPAT),
|
||||
'USERNAME' => html_entity_decode($data['username'], ENT_COMPAT),
|
||||
'PASSWORD' => html_entity_decode($data['new_password'], ENT_COMPAT),
|
||||
'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey")
|
||||
);
|
||||
|
||||
|
@@ -99,8 +99,8 @@ class ucp_resend
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'WELCOME_MSG' => htmlspecialchars_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), ENT_COMPAT),
|
||||
'USERNAME' => htmlspecialchars_decode($user_row['username'], ENT_COMPAT),
|
||||
'WELCOME_MSG' => html_entity_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), ENT_COMPAT),
|
||||
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
|
||||
'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}")
|
||||
);
|
||||
|
||||
@@ -134,7 +134,7 @@ class ucp_resend
|
||||
$messenger->anti_abuse_headers($config, $user);
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($user_row['username'], ENT_COMPAT),
|
||||
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
|
||||
'U_USER_DETAILS' => generate_board_url() . "/memberlist.$phpEx?mode=viewprofile&u={$user_row['user_id']}",
|
||||
'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}")
|
||||
);
|
||||
|
@@ -22,7 +22,7 @@ $phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
|
||||
if (version_compare(PHP_VERSION, '7.1.3', '<'))
|
||||
{
|
||||
die('You are running an unsupported PHP version. Please upgrade to PHP 7.1.3 or higher before trying to install or update to phpBB 3.3');
|
||||
die('You are running an unsupported PHP version (' . PHP_VERSION . '). Please upgrade to PHP 7.1.3 or higher before trying to install or update to phpBB 3.3');
|
||||
}
|
||||
|
||||
$startup_new_path = $phpbb_root_path . 'install/update/update/new/install/startup.' . $phpEx;
|
||||
|
@@ -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.3.7',
|
||||
'phpbb_version' => '3.3.9',
|
||||
'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.3.7');
|
||||
define('PHPBB_VERSION', '3.3.9-RC1');
|
||||
$phpbb_root_path = __DIR__ . '/../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
|
||||
|
@@ -316,7 +316,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('update_hashes_lock
|
||||
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.3.7');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.3.9-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');
|
||||
|
||||
|
@@ -483,7 +483,7 @@ $lang = array_merge($lang, array(
|
||||
'SCRIPT_PATH' => 'Script path',
|
||||
'SCRIPT_PATH_EXPLAIN' => 'The path where phpBB is located relative to the domain name, e.g. <samp>/phpBB3</samp>.',
|
||||
'SERVER_NAME' => 'Domain name',
|
||||
'SERVER_NAME_EXPLAIN' => 'The domain name this board runs from (for example: <samp>www.example.com</samp>).',
|
||||
'SERVER_NAME_EXPLAIN' => 'The domain name this board runs from (for example: <samp>example.com</samp>).',
|
||||
'SERVER_PORT' => 'Server port',
|
||||
'SERVER_PORT_EXPLAIN' => 'The port your server is running on, usually 80, only change if different.',
|
||||
'SERVER_PROTOCOL' => 'Server protocol',
|
||||
|
@@ -432,6 +432,7 @@ $lang = array_merge($lang, array(
|
||||
'MESSAGE' => 'Message',
|
||||
'MESSAGES' => 'Messages',
|
||||
'MESSAGES_COUNT' => array(
|
||||
0 => 'unlimited messages',
|
||||
1 => '%d message',
|
||||
2 => '%d messages',
|
||||
),
|
||||
@@ -603,7 +604,7 @@ $lang = array_merge($lang, array(
|
||||
'POSTS_UNAPPROVED_FORUM'=> 'At least one post in this forum has not been approved.',
|
||||
'POST_BY_AUTHOR' => 'by',
|
||||
'POST_BY_FOE' => '<strong>%1$s</strong>, who is currently on your ignore list, made this post.',
|
||||
'POST_DISPLAY' => '%1$sDisplay this post%2$s.',
|
||||
'POST_DISPLAY' => 'Display this post',
|
||||
'POST_DAY' => '%.2f posts per day',
|
||||
'POST_DELETED_ACTION' => 'Deleted post:',
|
||||
'POST_DELETED' => 'This post has been deleted.',
|
||||
|
@@ -442,16 +442,16 @@ switch ($mode)
|
||||
$messenger = new messenger(false);
|
||||
|
||||
$messenger->template('profile_send_im', $row['user_lang']);
|
||||
$messenger->subject(htmlspecialchars_decode($subject, ENT_COMPAT));
|
||||
$messenger->subject(html_entity_decode($subject, ENT_COMPAT));
|
||||
|
||||
$messenger->replyto($user->data['user_email']);
|
||||
$messenger->set_addresses($row);
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'BOARD_CONTACT' => phpbb_get_board_contact($config, $phpEx),
|
||||
'FROM_USERNAME' => htmlspecialchars_decode($user->data['username'], ENT_COMPAT),
|
||||
'TO_USERNAME' => htmlspecialchars_decode($row['username'], ENT_COMPAT),
|
||||
'MESSAGE' => htmlspecialchars_decode($message, ENT_COMPAT))
|
||||
'FROM_USERNAME' => html_entity_decode($user->data['username'], ENT_COMPAT),
|
||||
'TO_USERNAME' => html_entity_decode($row['username'], ENT_COMPAT),
|
||||
'MESSAGE' => html_entity_decode($message, ENT_COMPAT))
|
||||
);
|
||||
|
||||
$messenger->send(NOTIFY_IM);
|
||||
@@ -804,8 +804,8 @@ switch ($mode)
|
||||
'S_USER_NOTES' => ($user_notes_enabled) ? true : false,
|
||||
'S_WARN_USER' => ($warn_user_enabled) ? true : false,
|
||||
'S_ZEBRA' => ($user->data['user_id'] != $user_id && $user->data['is_registered'] && $zebra_enabled) ? true : false,
|
||||
'U_ADD_FRIEND' => (!$friend && !$foe && $friends_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&add=' . urlencode(htmlspecialchars_decode($member['username'], ENT_COMPAT))) : '',
|
||||
'U_ADD_FOE' => (!$friend && !$foe && $foes_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&mode=foes&add=' . urlencode(htmlspecialchars_decode($member['username'], ENT_COMPAT))) : '',
|
||||
'U_ADD_FRIEND' => (!$friend && !$foe && $friends_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&add=' . urlencode(html_entity_decode($member['username'], ENT_COMPAT))) : '',
|
||||
'U_ADD_FOE' => (!$friend && !$foe && $foes_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&mode=foes&add=' . urlencode(html_entity_decode($member['username'], ENT_COMPAT))) : '',
|
||||
'U_REMOVE_FRIEND' => ($friend && $friends_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&remove=1&usernames[]=' . $user_id) : '',
|
||||
'U_REMOVE_FOE' => ($foe && $foes_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&remove=1&mode=foes&usernames[]=' . $user_id) : '',
|
||||
|
||||
@@ -987,7 +987,7 @@ switch ($mode)
|
||||
{
|
||||
$user_list[] = [
|
||||
'user_id' => (int) $row['user_id'],
|
||||
'result' => htmlspecialchars_decode($row['username']),
|
||||
'result' => html_entity_decode($row['username']),
|
||||
'username_full' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
|
||||
'display' => get_username_string('no_profile', $row['user_id'], $row['username'], $row['user_colour']),
|
||||
];
|
||||
@@ -1634,17 +1634,20 @@ switch ($mode)
|
||||
if (count($user_list))
|
||||
{
|
||||
// Session time?! Session time...
|
||||
$sql = 'SELECT session_user_id, MAX(session_time) AS session_time
|
||||
$sql = 'SELECT session_user_id, MAX(session_time) AS session_time, MIN(session_viewonline) AS session_viewonline
|
||||
FROM ' . SESSIONS_TABLE . '
|
||||
WHERE session_time >= ' . (time() - $config['session_length']) . '
|
||||
AND ' . $db->sql_in_set('session_user_id', $user_list) . '
|
||||
GROUP BY session_user_id';
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$session_times = array();
|
||||
$session_ary = [];
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$session_times[$row['session_user_id']] = $row['session_time'];
|
||||
$session_ary[$row['session_user_id']] = [
|
||||
'session_time' => $row['session_time'],
|
||||
'session_viewonline' => $row['session_viewonline'],
|
||||
];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
@@ -1708,7 +1711,8 @@ switch ($mode)
|
||||
$id_cache = array();
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$row['session_time'] = (!empty($session_times[$row['user_id']])) ? $session_times[$row['user_id']] : 0;
|
||||
$row['session_time'] = $session_ary[$row['user_id']]['session_time'] ?? 0;
|
||||
$row['session_viewonline'] = $session_ary[$row['user_id']]['session_viewonline'] ?? 0;
|
||||
$row['last_visit'] = (!empty($row['session_time'])) ? $row['session_time'] : $row['user_lastvisit'];
|
||||
|
||||
$id_cache[$row['user_id']] = $row;
|
||||
|
@@ -73,7 +73,7 @@ class apache extends base
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
if (!$this->request->is_set('PHP_AUTH_USER', request_interface::SERVER) || $this->user->data['username'] !== htmlspecialchars_decode($this->request->server('PHP_AUTH_USER'), ENT_COMPAT))
|
||||
if (!$this->request->is_set('PHP_AUTH_USER', request_interface::SERVER) || $this->user->data['username'] !== html_entity_decode($this->request->server('PHP_AUTH_USER'), ENT_COMPAT))
|
||||
{
|
||||
return $this->language->lang('APACHE_SETUP_BEFORE_USE');
|
||||
}
|
||||
@@ -113,8 +113,8 @@ class apache extends base
|
||||
);
|
||||
}
|
||||
|
||||
$php_auth_user = htmlspecialchars_decode($this->request->server('PHP_AUTH_USER'), ENT_COMPAT);
|
||||
$php_auth_pw = htmlspecialchars_decode($this->request->server('PHP_AUTH_PW'), ENT_COMPAT);
|
||||
$php_auth_user = html_entity_decode($this->request->server('PHP_AUTH_USER'), ENT_COMPAT);
|
||||
$php_auth_pw = html_entity_decode($this->request->server('PHP_AUTH_PW'), ENT_COMPAT);
|
||||
|
||||
if (!empty($php_auth_user) && !empty($php_auth_pw))
|
||||
{
|
||||
@@ -180,8 +180,8 @@ class apache extends base
|
||||
return array();
|
||||
}
|
||||
|
||||
$php_auth_user = htmlspecialchars_decode($this->request->server('PHP_AUTH_USER'), ENT_COMPAT);
|
||||
$php_auth_pw = htmlspecialchars_decode($this->request->server('PHP_AUTH_PW'), ENT_COMPAT);
|
||||
$php_auth_user = html_entity_decode($this->request->server('PHP_AUTH_USER'), ENT_COMPAT);
|
||||
$php_auth_pw = html_entity_decode($this->request->server('PHP_AUTH_PW'), ENT_COMPAT);
|
||||
|
||||
if (!empty($php_auth_user) && !empty($php_auth_pw))
|
||||
{
|
||||
|
@@ -83,7 +83,7 @@ class ldap extends base
|
||||
|
||||
if ($this->config['ldap_user'] || $this->config['ldap_password'])
|
||||
{
|
||||
if (!@ldap_bind($ldap, htmlspecialchars_decode($this->config['ldap_user'], ENT_COMPAT), htmlspecialchars_decode($this->config['ldap_password'], ENT_COMPAT)))
|
||||
if (!@ldap_bind($ldap, html_entity_decode($this->config['ldap_user'], ENT_COMPAT), html_entity_decode($this->config['ldap_password'], ENT_COMPAT)))
|
||||
{
|
||||
return $this->language->lang('LDAP_INCORRECT_USER_PASSWORD');
|
||||
}
|
||||
@@ -92,11 +92,11 @@ class ldap extends base
|
||||
// ldap_connect only checks whether the specified server is valid, so the connection might still fail
|
||||
$search = @ldap_search(
|
||||
$ldap,
|
||||
htmlspecialchars_decode($this->config['ldap_base_dn'], ENT_COMPAT),
|
||||
html_entity_decode($this->config['ldap_base_dn'], ENT_COMPAT),
|
||||
$this->ldap_user_filter($this->user->data['username']),
|
||||
(empty($this->config['ldap_email'])) ?
|
||||
array(htmlspecialchars_decode($this->config['ldap_uid'], ENT_COMPAT)) :
|
||||
array(htmlspecialchars_decode($this->config['ldap_uid'], ENT_COMPAT), htmlspecialchars_decode($this->config['ldap_email'], ENT_COMPAT)),
|
||||
array(html_entity_decode($this->config['ldap_uid'], ENT_COMPAT)) :
|
||||
array(html_entity_decode($this->config['ldap_uid'], ENT_COMPAT), html_entity_decode($this->config['ldap_email'], ENT_COMPAT)),
|
||||
0,
|
||||
1
|
||||
);
|
||||
@@ -115,7 +115,7 @@ class ldap extends base
|
||||
return $this->language->lang('LDAP_NO_IDENTITY', $this->user->data['username']);
|
||||
}
|
||||
|
||||
if (!empty($this->config['ldap_email']) && !isset($result[0][htmlspecialchars_decode($this->config['ldap_email'])]))
|
||||
if (!empty($this->config['ldap_email']) && !isset($result[0][html_entity_decode($this->config['ldap_email'])]))
|
||||
{
|
||||
return $this->language->lang('LDAP_NO_EMAIL');
|
||||
}
|
||||
@@ -180,7 +180,7 @@ class ldap extends base
|
||||
|
||||
if ($this->config['ldap_user'] || $this->config['ldap_password'])
|
||||
{
|
||||
if (!@ldap_bind($ldap, htmlspecialchars_decode($this->config['ldap_user'], ENT_COMPAT), htmlspecialchars_decode($this->config['ldap_password'], ENT_COMPAT)))
|
||||
if (!@ldap_bind($ldap, html_entity_decode($this->config['ldap_user'], ENT_COMPAT), html_entity_decode($this->config['ldap_password'], ENT_COMPAT)))
|
||||
{
|
||||
return array(
|
||||
'status' => LOGIN_ERROR_EXTERNAL_AUTH,
|
||||
@@ -192,11 +192,11 @@ class ldap extends base
|
||||
|
||||
$search = @ldap_search(
|
||||
$ldap,
|
||||
htmlspecialchars_decode($this->config['ldap_base_dn'], ENT_COMPAT),
|
||||
html_entity_decode($this->config['ldap_base_dn'], ENT_COMPAT),
|
||||
$this->ldap_user_filter($username),
|
||||
(empty($this->config['ldap_email'])) ?
|
||||
array(htmlspecialchars_decode($this->config['ldap_uid'], ENT_COMPAT)) :
|
||||
array(htmlspecialchars_decode($this->config['ldap_uid'], ENT_COMPAT), htmlspecialchars_decode($this->config['ldap_email'], ENT_COMPAT)),
|
||||
array(html_entity_decode($this->config['ldap_uid'], ENT_COMPAT)) :
|
||||
array(html_entity_decode($this->config['ldap_uid'], ENT_COMPAT), html_entity_decode($this->config['ldap_email'], ENT_COMPAT)),
|
||||
0,
|
||||
1
|
||||
);
|
||||
@@ -205,7 +205,7 @@ class ldap extends base
|
||||
|
||||
if (is_array($ldap_result) && count($ldap_result) > 1)
|
||||
{
|
||||
if (@ldap_bind($ldap, $ldap_result[0]['dn'], htmlspecialchars_decode($password, ENT_COMPAT)))
|
||||
if (@ldap_bind($ldap, $ldap_result[0]['dn'], html_entity_decode($password, ENT_COMPAT)))
|
||||
{
|
||||
@ldap_close($ldap);
|
||||
|
||||
@@ -257,7 +257,7 @@ class ldap extends base
|
||||
$ldap_user_row = array(
|
||||
'username' => $username,
|
||||
'user_password' => '',
|
||||
'user_email' => (!empty($this->config['ldap_email'])) ? utf8_htmlspecialchars($ldap_result[0][htmlspecialchars_decode($this->config['ldap_email'], ENT_COMPAT)][0]) : '',
|
||||
'user_email' => (!empty($this->config['ldap_email'])) ? utf8_htmlspecialchars($ldap_result[0][html_entity_decode($this->config['ldap_email'], ENT_COMPAT)][0]) : '',
|
||||
'group_id' => (int) $row['group_id'],
|
||||
'user_type' => USER_NORMAL,
|
||||
'user_ip' => $this->user->ip,
|
||||
@@ -337,7 +337,7 @@ class ldap extends base
|
||||
*/
|
||||
private function ldap_user_filter($username)
|
||||
{
|
||||
$filter = '(' . $this->config['ldap_uid'] . '=' . $this->ldap_escape(htmlspecialchars_decode($username, ENT_COMPAT)) . ')';
|
||||
$filter = '(' . $this->config['ldap_uid'] . '=' . $this->ldap_escape(html_entity_decode($username, ENT_COMPAT)) . ')';
|
||||
if ($this->config['ldap_user_filter'])
|
||||
{
|
||||
$_filter = ($this->config['ldap_user_filter'][0] == '(' && substr($this->config['ldap_user_filter'], -1) == ')') ? $this->config['ldap_user_filter'] : "({$this->config['ldap_user_filter']})";
|
||||
|
32
phpBB/phpbb/cache/service.php
vendored
32
phpBB/phpbb/cache/service.php
vendored
@@ -18,6 +18,12 @@ namespace phpbb\cache;
|
||||
*/
|
||||
class service
|
||||
{
|
||||
/** @var string Name of event used for cache purging */
|
||||
private const PURGE_DEFERRED_ON_EVENT = 'core.garbage_collection';
|
||||
|
||||
/** @var bool Flag whether cache purge has been deferred */
|
||||
private $cache_purge_deferred = false;
|
||||
|
||||
/**
|
||||
* Cache driver.
|
||||
*
|
||||
@@ -39,6 +45,9 @@ class service
|
||||
*/
|
||||
protected $db;
|
||||
|
||||
/** @var \phpbb\event\dispatcher phpBB Event dispatcher */
|
||||
protected $dispatcher;
|
||||
|
||||
/**
|
||||
* Root path.
|
||||
*
|
||||
@@ -59,14 +68,16 @@ class service
|
||||
* @param \phpbb\cache\driver\driver_interface $driver The cache driver
|
||||
* @param \phpbb\config\config $config The config
|
||||
* @param \phpbb\db\driver\driver_interface $db Database connection
|
||||
* @param \phpbb\event\dispatcher $dispatcher Event dispatcher
|
||||
* @param string $phpbb_root_path Root path
|
||||
* @param string $php_ext PHP file extension
|
||||
*/
|
||||
public function __construct(\phpbb\cache\driver\driver_interface $driver, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, $phpbb_root_path, $php_ext)
|
||||
public function __construct(\phpbb\cache\driver\driver_interface $driver, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\event\dispatcher $dispatcher, $phpbb_root_path, $php_ext)
|
||||
{
|
||||
$this->set_driver($driver);
|
||||
$this->config = $config;
|
||||
$this->db = $db;
|
||||
$this->dispatcher = $dispatcher;
|
||||
$this->phpbb_root_path = $phpbb_root_path;
|
||||
$this->php_ext = $php_ext;
|
||||
}
|
||||
@@ -81,6 +92,25 @@ class service
|
||||
return $this->driver;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deferred purge of the cache.
|
||||
*
|
||||
* A deferred purge will be executed after rendering a page.
|
||||
* It is recommended to be used in cases where an instant purge of the cache
|
||||
* is not required, i.e. when the goal of a cache purge is to start from a
|
||||
* clear cache at the next page load.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function deferred_purge(): void
|
||||
{
|
||||
if (!$this->cache_purge_deferred)
|
||||
{
|
||||
$this->dispatcher->addListener(self::PURGE_DEFERRED_ON_EVENT, [$this, 'purge']);
|
||||
$this->cache_purge_deferred = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces the cache driver used by this cache service.
|
||||
*
|
||||
|
@@ -209,7 +209,7 @@ class activate extends command
|
||||
$messenger->set_addresses($user_row);
|
||||
$messenger->anti_abuse_headers($this->config, $this->user);
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($user_row['username'], ENT_COMPAT))
|
||||
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT))
|
||||
);
|
||||
|
||||
$messenger->send(NOTIFY_EMAIL);
|
||||
|
@@ -312,9 +312,9 @@ class add extends command
|
||||
$messenger->to($this->data['email'], $this->data['username']);
|
||||
$messenger->anti_abuse_headers($this->config, $this->user);
|
||||
$messenger->assign_vars(array(
|
||||
'WELCOME_MSG' => htmlspecialchars_decode($this->language->lang('WELCOME_SUBJECT', $this->config['sitename']), ENT_COMPAT),
|
||||
'USERNAME' => htmlspecialchars_decode($this->data['username'], ENT_COMPAT),
|
||||
'PASSWORD' => htmlspecialchars_decode($this->data['new_password'], ENT_COMPAT),
|
||||
'WELCOME_MSG' => html_entity_decode($this->language->lang('WELCOME_SUBJECT', $this->config['sitename']), ENT_COMPAT),
|
||||
'USERNAME' => html_entity_decode($this->data['username'], ENT_COMPAT),
|
||||
'PASSWORD' => html_entity_decode($this->data['new_password'], ENT_COMPAT),
|
||||
'U_ACTIVATE' => generate_board_url() . "/ucp.{$this->php_ext}?mode=activate&u=$user_id&k=$user_actkey")
|
||||
);
|
||||
|
||||
|
@@ -363,8 +363,8 @@ class helper
|
||||
|
||||
if ($task)
|
||||
{
|
||||
$url = $task->get_url();
|
||||
$this->template->assign_var('RUN_CRON_TASK', '<img src="' . $url . '" width="1" height="1" alt="cron" />');
|
||||
$cron_task_tag = $task->get_html_tag();
|
||||
$this->template->assign_var('RUN_CRON_TASK', $cron_task_tag);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -59,6 +59,11 @@ class manager
|
||||
*/
|
||||
protected $php_ext;
|
||||
|
||||
/**
|
||||
* @var \phpbb\template\template
|
||||
*/
|
||||
protected $template;
|
||||
|
||||
/**
|
||||
* Constructor. Loads all available tasks.
|
||||
*
|
||||
@@ -66,13 +71,15 @@ class manager
|
||||
* @param helper $routing_helper Routing helper
|
||||
* @param string $phpbb_root_path Relative path to phpBB root
|
||||
* @param string $php_ext PHP file extension
|
||||
* @param \phpbb\template\template $template
|
||||
*/
|
||||
public function __construct(ContainerInterface $phpbb_container, helper $routing_helper, $phpbb_root_path, $php_ext)
|
||||
public function __construct(ContainerInterface $phpbb_container, helper $routing_helper, $phpbb_root_path, $php_ext, $template)
|
||||
{
|
||||
$this->phpbb_container = $phpbb_container;
|
||||
$this->routing_helper = $routing_helper;
|
||||
$this->phpbb_root_path = $phpbb_root_path;
|
||||
$this->php_ext = $php_ext;
|
||||
$this->template = $template;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -193,6 +200,6 @@ class manager
|
||||
*/
|
||||
public function wrap_task(\phpbb\cron\task\task $task)
|
||||
{
|
||||
return new wrapper($task, $this->routing_helper, $this->phpbb_root_path, $this->php_ext);
|
||||
return new wrapper($task, $this->routing_helper, $this->phpbb_root_path, $this->php_ext, $this->template);
|
||||
}
|
||||
}
|
||||
|
@@ -41,6 +41,11 @@ class wrapper
|
||||
*/
|
||||
protected $php_ext;
|
||||
|
||||
/**
|
||||
* @var \phpbb\template\template
|
||||
*/
|
||||
protected $template;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
@@ -50,13 +55,15 @@ class wrapper
|
||||
* @param helper $routing_helper Routing helper for route generation
|
||||
* @param string $phpbb_root_path Relative path to phpBB root
|
||||
* @param string $php_ext PHP file extension
|
||||
* @param \phpbb\template\template $template
|
||||
*/
|
||||
public function __construct(task $task, helper $routing_helper, $phpbb_root_path, $php_ext)
|
||||
public function __construct(task $task, helper $routing_helper, $phpbb_root_path, $php_ext, $template)
|
||||
{
|
||||
$this->task = $task;
|
||||
$this->routing_helper = $routing_helper;
|
||||
$this->phpbb_root_path = $phpbb_root_path;
|
||||
$this->php_ext = $php_ext;
|
||||
$this->template = $template;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -105,6 +112,23 @@ class wrapper
|
||||
return $this->routing_helper->route('phpbb_cron_run', $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns HTML for an invisible `img` tag that can be displayed on page
|
||||
* load to trigger a request to the relevant cron task endpoint.
|
||||
*
|
||||
* @return string HTML to render to trigger cron task
|
||||
*/
|
||||
public function get_html_tag()
|
||||
{
|
||||
$this->template->set_filenames([
|
||||
'cron_html_tag' => 'cron.html',
|
||||
]);
|
||||
|
||||
$this->template->assign_var('CRON_TASK_URL', $this->get_url());
|
||||
|
||||
return $this->template->assign_display('cron_html_tag');
|
||||
}
|
||||
|
||||
/**
|
||||
* Forwards all other method calls to the wrapped task implementation.
|
||||
*
|
||||
|
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\db\migration\data\v33x;
|
||||
|
||||
class profilefield_youtube_update extends \phpbb\db\migration\migration
|
||||
{
|
||||
protected $youtube_url_matcher = 'https:\\/\\/(www\\.)?youtube\\.com\\/.+';
|
||||
|
||||
public function effectively_installed()
|
||||
{
|
||||
$profile_fields = $this->table_prefix . 'profile_fields';
|
||||
|
||||
$result = $this->db->sql_query(
|
||||
"SELECT field_validation
|
||||
FROM $profile_fields
|
||||
WHERE field_name = 'phpbb_youtube'"
|
||||
);
|
||||
|
||||
$row = $this->db->sql_fetchrow($result);
|
||||
$this->db->sql_freeresult($result);
|
||||
|
||||
return !$row || $row['field_validation'] === $this->youtube_url_matcher;
|
||||
}
|
||||
|
||||
public static function depends_on()
|
||||
{
|
||||
return ['\phpbb\db\migration\data\v33x\v337'];
|
||||
}
|
||||
|
||||
public function update_data()
|
||||
{
|
||||
return [['custom', [[$this, 'update_youtube_profile_field']]]];
|
||||
}
|
||||
|
||||
public function update_youtube_profile_field()
|
||||
{
|
||||
$profile_fields = $this->table_prefix . 'profile_fields';
|
||||
$profile_fields_data = $this->table_prefix . 'profile_fields_data';
|
||||
|
||||
$field_validation = $this->db->sql_escape($this->youtube_url_matcher);
|
||||
|
||||
$min_length = strlen('https://youtube.com/c/') + 1;
|
||||
|
||||
$this->db->sql_query(
|
||||
"UPDATE $profile_fields SET
|
||||
field_length = '40',
|
||||
field_minlen = '$min_length',
|
||||
field_maxlen = '255',
|
||||
field_validation = '$field_validation',
|
||||
field_contact_url = '%s'
|
||||
WHERE field_name = 'phpbb_youtube'"
|
||||
);
|
||||
|
||||
$yt_profile_field = 'pf_phpbb_youtube';
|
||||
$prepend_legacy_youtube_url = $this->db->sql_concatenate(
|
||||
"'https://youtube.com/user/'", $yt_profile_field
|
||||
);
|
||||
$is_not_already_youtube_url = $this->db->sql_not_like_expression(
|
||||
$this->db->get_any_char()
|
||||
. 'youtube.com/'
|
||||
. $this->db->get_any_char()
|
||||
);
|
||||
|
||||
$this->db->sql_query(
|
||||
"UPDATE $profile_fields_data SET
|
||||
$yt_profile_field = $prepend_legacy_youtube_url
|
||||
WHERE $yt_profile_field <> ''
|
||||
AND $yt_profile_field $is_not_already_youtube_url"
|
||||
);
|
||||
}
|
||||
}
|
36
phpBB/phpbb/db/migration/data/v33x/v338.php
Normal file
36
phpBB/phpbb/db/migration/data/v33x/v338.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\db\migration\data\v33x;
|
||||
|
||||
class v338 extends \phpbb\db\migration\migration
|
||||
{
|
||||
public function effectively_installed()
|
||||
{
|
||||
return version_compare($this->config['version'], '3.3.8', '>=');
|
||||
}
|
||||
|
||||
public static function depends_on()
|
||||
{
|
||||
return [
|
||||
'\phpbb\db\migration\data\v33x\v338rc1',
|
||||
];
|
||||
}
|
||||
|
||||
public function update_data()
|
||||
{
|
||||
return [
|
||||
['config.update', ['version', '3.3.8']],
|
||||
];
|
||||
}
|
||||
}
|
36
phpBB/phpbb/db/migration/data/v33x/v338rc1.php
Normal file
36
phpBB/phpbb/db/migration/data/v33x/v338rc1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\db\migration\data\v33x;
|
||||
|
||||
class v338rc1 extends \phpbb\db\migration\migration
|
||||
{
|
||||
public function effectively_installed()
|
||||
{
|
||||
return version_compare($this->config['version'], '3.3.8-RC1', '>=');
|
||||
}
|
||||
|
||||
public static function depends_on()
|
||||
{
|
||||
return [
|
||||
'\phpbb\db\migration\data\v33x\profilefield_youtube_update',
|
||||
];
|
||||
}
|
||||
|
||||
public function update_data()
|
||||
{
|
||||
return [
|
||||
['config.update', ['version', '3.3.8-RC1']],
|
||||
];
|
||||
}
|
||||
}
|
36
phpBB/phpbb/db/migration/data/v33x/v339rc1.php
Normal file
36
phpBB/phpbb/db/migration/data/v33x/v339rc1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\db\migration\data\v33x;
|
||||
|
||||
class v339rc1 extends \phpbb\db\migration\migration
|
||||
{
|
||||
public function effectively_installed()
|
||||
{
|
||||
return version_compare($this->config['version'], '3.3.9-RC1', '>=');
|
||||
}
|
||||
|
||||
public static function depends_on()
|
||||
{
|
||||
return [
|
||||
'\phpbb\db\migration\data\v33x\v338',
|
||||
];
|
||||
}
|
||||
|
||||
public function update_data()
|
||||
{
|
||||
return [
|
||||
['config.update', ['version', '3.3.9-RC1']],
|
||||
];
|
||||
}
|
||||
}
|
@@ -229,7 +229,7 @@ class container_builder
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->compile_container && $this->config_php_file)
|
||||
if ($this->config_php_file)
|
||||
{
|
||||
$this->container->set('config.php', $this->config_php_file);
|
||||
}
|
||||
|
@@ -197,7 +197,7 @@ class manager
|
||||
|
||||
if ($this->cache)
|
||||
{
|
||||
$this->cache->purge();
|
||||
$this->cache->deferred_purge();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -97,7 +97,7 @@ class helper
|
||||
if (empty($offset_string))
|
||||
{
|
||||
$zone_offset = $this->user->create_datetime()->getOffset();
|
||||
$offset_string = phpbb_format_timezone_offset($zone_offset);
|
||||
$offset_string = phpbb_format_timezone_offset($zone_offset, true);
|
||||
}
|
||||
|
||||
return gmdate("Y-m-d\TH:i:s", $time + $zone_offset) . $offset_string;
|
||||
|
@@ -418,7 +418,7 @@ class ajax_iohandler extends iohandler_base
|
||||
|
||||
if ($msg !== null)
|
||||
{
|
||||
$link_properties['msg'] = htmlspecialchars_decode($this->language->lang($msg), ENT_COMPAT);
|
||||
$link_properties['msg'] = html_entity_decode($this->language->lang($msg), ENT_COMPAT);
|
||||
}
|
||||
|
||||
$this->download[] = $link_properties;
|
||||
|
@@ -108,7 +108,7 @@ abstract class iohandler_base implements iohandler_interface
|
||||
{
|
||||
if (!is_array($error_title) && strpos($error_title, '<br />') !== false)
|
||||
{
|
||||
$error_title = strip_tags(htmlspecialchars_decode($error_title, ENT_COMPAT));
|
||||
$error_title = strip_tags(html_entity_decode($error_title, ENT_COMPAT));
|
||||
}
|
||||
$this->errors[] = $this->translate_message($error_title, $error_description);
|
||||
}
|
||||
|
@@ -120,8 +120,8 @@ class notify_user extends \phpbb\install\task_base
|
||||
$messenger->to($this->config['board_email'], $this->install_config->get('admin_name'));
|
||||
$messenger->anti_abuse_headers($this->config, $this->user);
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($this->install_config->get('admin_name'), ENT_COMPAT),
|
||||
'PASSWORD' => htmlspecialchars_decode($this->install_config->get('admin_passwd'), ENT_COMPAT))
|
||||
'USERNAME' => html_entity_decode($this->install_config->get('admin_name'), ENT_COMPAT),
|
||||
'PASSWORD' => html_entity_decode($this->install_config->get('admin_passwd'), ENT_COMPAT))
|
||||
);
|
||||
$messenger->send(NOTIFY_EMAIL);
|
||||
}
|
||||
|
@@ -54,7 +54,7 @@ class obtain_server_data extends \phpbb\install\task_base implements \phpbb\inst
|
||||
$server_port = $this->io_handler->get_server_variable('SERVER_PORT', 0);
|
||||
|
||||
// HTTP_HOST is having the correct browser url in most cases...
|
||||
$server_name = strtolower(htmlspecialchars_decode($this->io_handler->get_header_variable(
|
||||
$server_name = strtolower(html_entity_decode($this->io_handler->get_header_variable(
|
||||
'Host',
|
||||
$this->io_handler->get_server_variable('SERVER_NAME')
|
||||
), ENT_COMPAT));
|
||||
@@ -65,11 +65,11 @@ class obtain_server_data extends \phpbb\install\task_base implements \phpbb\inst
|
||||
$server_name = substr($server_name, 0, strpos($server_name, ':'));
|
||||
}
|
||||
|
||||
$script_path = htmlspecialchars_decode($this->io_handler->get_server_variable('PHP_SELF'), ENT_COMPAT);
|
||||
$script_path = html_entity_decode($this->io_handler->get_server_variable('PHP_SELF'), ENT_COMPAT);
|
||||
|
||||
if (!$script_path)
|
||||
{
|
||||
$script_path = htmlspecialchars_decode($this->io_handler->get_server_variable('REQUEST_URI'), ENT_COMPAT);
|
||||
$script_path = html_entity_decode($this->io_handler->get_server_variable('REQUEST_URI'), ENT_COMPAT);
|
||||
}
|
||||
|
||||
$script_path = str_replace(array('\\', '//'), '/', $script_path);
|
||||
|
@@ -87,7 +87,7 @@ class obtain_update_ftp_data extends task_base
|
||||
|
||||
$ftp_host = $this->iohandler->get_input('ftp_host', '', true);
|
||||
$ftp_user = $this->iohandler->get_input('ftp_user', '', true);
|
||||
$ftp_pass = htmlspecialchars_decode($this->iohandler->get_input('ftp_pass', '', true), ENT_COMPAT);
|
||||
$ftp_pass = html_entity_decode($this->iohandler->get_input('ftp_pass', '', true), ENT_COMPAT);
|
||||
$ftp_path = $this->iohandler->get_input('ftp_path', '', true);
|
||||
$ftp_port = $this->iohandler->get_input('ftp_port', 21);
|
||||
$ftp_time = $this->iohandler->get_input('ftp_timeout', 10);
|
||||
|
@@ -262,13 +262,13 @@ class message
|
||||
$messenger->headers('X-AntiAbuse: Username - ' . $this->sender_username);
|
||||
}
|
||||
|
||||
$messenger->subject(htmlspecialchars_decode($this->subject, ENT_COMPAT));
|
||||
$messenger->subject(html_entity_decode($this->subject, ENT_COMPAT));
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'BOARD_CONTACT' => $contact,
|
||||
'TO_USERNAME' => htmlspecialchars_decode($recipient['to_name'], ENT_COMPAT),
|
||||
'FROM_USERNAME' => htmlspecialchars_decode($this->sender_name, ENT_COMPAT),
|
||||
'MESSAGE' => htmlspecialchars_decode($this->body, ENT_COMPAT))
|
||||
'TO_USERNAME' => html_entity_decode($recipient['to_name'], ENT_COMPAT),
|
||||
'FROM_USERNAME' => html_entity_decode($this->sender_name, ENT_COMPAT),
|
||||
'MESSAGE' => html_entity_decode($this->body, ENT_COMPAT))
|
||||
);
|
||||
|
||||
if (count($this->template_vars))
|
||||
|
@@ -122,7 +122,7 @@ class topic_form extends form
|
||||
|
||||
$this->message->set_template('email_notify');
|
||||
$this->message->set_template_vars(array(
|
||||
'TOPIC_NAME' => htmlspecialchars_decode($this->topic_row['topic_title'], ENT_COMPAT),
|
||||
'TOPIC_NAME' => html_entity_decode($this->topic_row['topic_title'], ENT_COMPAT),
|
||||
'U_TOPIC' => generate_board_url() . '/viewtopic.' . $this->phpEx . '?t=' . $this->topic_id,
|
||||
));
|
||||
$this->message->set_body($this->body);
|
||||
|
@@ -150,7 +150,7 @@ class admin_activate_user extends \phpbb\notification\type\base
|
||||
$username = $this->user_loader->get_username($this->item_id, 'username');
|
||||
|
||||
return array(
|
||||
'USERNAME' => htmlspecialchars_decode($username, ENT_COMPAT),
|
||||
'USERNAME' => html_entity_decode($username, ENT_COMPAT),
|
||||
'U_USER_DETAILS' => "{$board_url}/memberlist.{$this->php_ext}?mode=viewprofile&u={$this->item_id}",
|
||||
'U_ACTIVATE' => "{$board_url}/ucp.{$this->php_ext}?mode=activate&u={$this->item_id}&k={$this->get_data('user_actkey')}",
|
||||
);
|
||||
|
@@ -120,7 +120,7 @@ class disapprove_post extends \phpbb\notification\type\approve_post
|
||||
public function get_email_template_variables()
|
||||
{
|
||||
return array_merge(parent::get_email_template_variables(), array(
|
||||
'REASON' => htmlspecialchars_decode($this->get_data('disapprove_reason'), ENT_COMPAT),
|
||||
'REASON' => html_entity_decode($this->get_data('disapprove_reason'), ENT_COMPAT),
|
||||
));
|
||||
}
|
||||
|
||||
|
@@ -120,7 +120,7 @@ class disapprove_topic extends \phpbb\notification\type\approve_topic
|
||||
public function get_email_template_variables()
|
||||
{
|
||||
return array_merge(parent::get_email_template_variables(), array(
|
||||
'REASON' => htmlspecialchars_decode($this->get_data('disapprove_reason'), ENT_COMPAT),
|
||||
'REASON' => html_entity_decode($this->get_data('disapprove_reason'), ENT_COMPAT),
|
||||
));
|
||||
}
|
||||
|
||||
|
@@ -130,17 +130,17 @@ class forum extends \phpbb\notification\type\post
|
||||
}
|
||||
|
||||
return [
|
||||
'AUTHOR_NAME' => htmlspecialchars_decode($username, ENT_COMPAT),
|
||||
'FORUM_NAME' => htmlspecialchars_decode(censor_text($this->get_data('forum_name')), ENT_COMPAT),
|
||||
'POST_SUBJECT' => htmlspecialchars_decode(censor_text($this->get_data('post_subject')), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => htmlspecialchars_decode(censor_text($this->get_data('topic_title')), ENT_COMPAT),
|
||||
'AUTHOR_NAME' => html_entity_decode($username, ENT_COMPAT),
|
||||
'FORUM_NAME' => html_entity_decode(censor_text($this->get_data('forum_name')), ENT_COMPAT),
|
||||
'POST_SUBJECT' => html_entity_decode(censor_text($this->get_data('post_subject')), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => html_entity_decode(censor_text($this->get_data('topic_title')), ENT_COMPAT),
|
||||
|
||||
'U_VIEW_POST' => generate_board_url() . "/viewtopic.{$this->php_ext}?p={$this->item_id}#p{$this->item_id}",
|
||||
'U_NEWEST_POST' => generate_board_url() . "/viewtopic.{$this->php_ext}?f={$this->get_data('forum_id')}&t={$this->item_parent_id}&e=1&view=unread#unread",
|
||||
'U_TOPIC' => generate_board_url() . "/viewtopic.{$this->php_ext}?f={$this->get_data('forum_id')}&t={$this->item_parent_id}",
|
||||
'U_VIEW_TOPIC' => generate_board_url() . "/viewtopic.{$this->php_ext}?f={$this->get_data('forum_id')}&t={$this->item_parent_id}",
|
||||
'U_NEWEST_POST' => generate_board_url() . "/viewtopic.{$this->php_ext}?t={$this->item_parent_id}&e=1&view=unread#unread",
|
||||
'U_TOPIC' => generate_board_url() . "/viewtopic.{$this->php_ext}?t={$this->item_parent_id}",
|
||||
'U_VIEW_TOPIC' => generate_board_url() . "/viewtopic.{$this->php_ext}?t={$this->item_parent_id}",
|
||||
'U_FORUM' => generate_board_url() . "/viewforum.{$this->php_ext}?f={$this->get_data('forum_id')}",
|
||||
'U_STOP_WATCHING_FORUM' => generate_board_url() . "/viewtopic.{$this->php_ext}?uid={$this->user_id}&f={$this->get_data('forum_id')}&t={$this->item_parent_id}&unwatch=forum",
|
||||
'U_STOP_WATCHING_FORUM' => generate_board_url() . "/viewforum.{$this->php_ext}?uid={$this->user_id}&f={$this->get_data('forum_id')}&unwatch=forum",
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@@ -133,8 +133,8 @@ class group_request extends \phpbb\notification\type\base
|
||||
$user_data = $this->user_loader->get_user($this->item_id);
|
||||
|
||||
return array(
|
||||
'GROUP_NAME' => htmlspecialchars_decode($this->get_data('group_name'), ENT_COMPAT),
|
||||
'REQUEST_USERNAME' => htmlspecialchars_decode($user_data['username'], ENT_COMPAT),
|
||||
'GROUP_NAME' => html_entity_decode($this->get_data('group_name'), ENT_COMPAT),
|
||||
'REQUEST_USERNAME' => html_entity_decode($user_data['username'], ENT_COMPAT),
|
||||
|
||||
'U_PENDING' => generate_board_url() . "/ucp.{$this->php_ext}?i=groups&mode=manage&action=list&g={$this->item_parent_id}",
|
||||
'U_GROUP' => generate_board_url() . "/memberlist.{$this->php_ext}?mode=group&g={$this->item_parent_id}",
|
||||
|
@@ -164,8 +164,8 @@ class pm extends \phpbb\notification\type\base
|
||||
$user_data = $this->user_loader->get_user($this->get_data('from_user_id'));
|
||||
|
||||
return array(
|
||||
'AUTHOR_NAME' => htmlspecialchars_decode($user_data['username'], ENT_COMPAT),
|
||||
'SUBJECT' => htmlspecialchars_decode(censor_text($this->get_data('message_subject')), ENT_COMPAT),
|
||||
'AUTHOR_NAME' => html_entity_decode($user_data['username'], ENT_COMPAT),
|
||||
'SUBJECT' => html_entity_decode(censor_text($this->get_data('message_subject')), ENT_COMPAT),
|
||||
|
||||
'U_VIEW_MESSAGE' => generate_board_url() . '/ucp.' . $this->php_ext . "?i=pm&mode=view&p={$this->item_id}",
|
||||
);
|
||||
|
@@ -262,9 +262,9 @@ class post extends \phpbb\notification\type\base
|
||||
}
|
||||
|
||||
return array(
|
||||
'AUTHOR_NAME' => htmlspecialchars_decode($username, ENT_COMPAT),
|
||||
'POST_SUBJECT' => htmlspecialchars_decode(censor_text($this->get_data('post_subject')), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => htmlspecialchars_decode(censor_text($this->get_data('topic_title')), ENT_COMPAT),
|
||||
'AUTHOR_NAME' => html_entity_decode($username, ENT_COMPAT),
|
||||
'POST_SUBJECT' => html_entity_decode(censor_text($this->get_data('post_subject')), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => html_entity_decode(censor_text($this->get_data('topic_title')), ENT_COMPAT),
|
||||
|
||||
'U_VIEW_POST' => generate_board_url() . "/viewtopic.{$this->php_ext}?p={$this->item_id}#p{$this->item_id}",
|
||||
'U_NEWEST_POST' => generate_board_url() . "/viewtopic.{$this->php_ext}?t={$this->item_parent_id}&e=1&view=unread#unread",
|
||||
|
@@ -168,7 +168,7 @@ class quote extends \phpbb\notification\type\post
|
||||
$user_data = $this->user_loader->get_user($this->get_data('poster_id'));
|
||||
|
||||
return array_merge(parent::get_email_template_variables(), array(
|
||||
'AUTHOR_NAME' => htmlspecialchars_decode($user_data['username'], ENT_COMPAT),
|
||||
'AUTHOR_NAME' => html_entity_decode($user_data['username'], ENT_COMPAT),
|
||||
));
|
||||
}
|
||||
|
||||
|
@@ -143,11 +143,11 @@ class report_pm extends \phpbb\notification\type\pm
|
||||
$user_data = $this->user_loader->get_user($this->get_data('from_user_id'));
|
||||
|
||||
return [
|
||||
'AUTHOR_NAME' => htmlspecialchars_decode($user_data['username'], ENT_COMPAT),
|
||||
'SUBJECT' => htmlspecialchars_decode(censor_text($this->get_data('message_subject')), ENT_COMPAT),
|
||||
'AUTHOR_NAME' => html_entity_decode($user_data['username'], ENT_COMPAT),
|
||||
'SUBJECT' => html_entity_decode(censor_text($this->get_data('message_subject')), ENT_COMPAT),
|
||||
|
||||
/** @deprecated 3.2.6-RC1 (to be removed in 4.0.0) use {SUBJECT} instead in report_pm.txt */
|
||||
'TOPIC_TITLE' => htmlspecialchars_decode(censor_text($this->get_data('message_subject')), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => html_entity_decode(censor_text($this->get_data('message_subject')), ENT_COMPAT),
|
||||
|
||||
'U_VIEW_REPORT' => generate_board_url() . "/mcp.{$this->php_ext}?r={$this->item_parent_id}&i=pm_reports&mode=pm_report_details",
|
||||
];
|
||||
|
@@ -104,9 +104,9 @@ class report_pm_closed extends \phpbb\notification\type\pm
|
||||
$closer_username = $this->user_loader->get_username($this->get_data('closer_id'), 'username');
|
||||
|
||||
return [
|
||||
'AUTHOR_NAME' => htmlspecialchars_decode($sender_username, ENT_COMPAT),
|
||||
'CLOSER_NAME' => htmlspecialchars_decode($closer_username, ENT_COMPAT),
|
||||
'SUBJECT' => htmlspecialchars_decode(censor_text($this->get_data('message_subject')), ENT_COMPAT),
|
||||
'AUTHOR_NAME' => html_entity_decode($sender_username, ENT_COMPAT),
|
||||
'CLOSER_NAME' => html_entity_decode($closer_username, ENT_COMPAT),
|
||||
'SUBJECT' => html_entity_decode(censor_text($this->get_data('message_subject')), ENT_COMPAT),
|
||||
|
||||
'U_VIEW_MESSAGE'=> generate_board_url() . "/ucp.{$this->php_ext}?i=pm&mode=view&p={$this->item_id}",
|
||||
];
|
||||
|
@@ -110,8 +110,8 @@ class report_post extends \phpbb\notification\type\post_in_queue
|
||||
$board_url = generate_board_url();
|
||||
|
||||
return array(
|
||||
'POST_SUBJECT' => htmlspecialchars_decode(censor_text($this->get_data('post_subject')), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => htmlspecialchars_decode(censor_text($this->get_data('topic_title')), ENT_COMPAT),
|
||||
'POST_SUBJECT' => html_entity_decode(censor_text($this->get_data('post_subject')), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => html_entity_decode(censor_text($this->get_data('topic_title')), ENT_COMPAT),
|
||||
|
||||
'U_VIEW_REPORT' => "{$board_url}/mcp.{$this->php_ext}?p={$this->item_id}&i=reports&mode=report_details#reports",
|
||||
'U_VIEW_POST' => "{$board_url}/viewtopic.{$this->php_ext}?p={$this->item_id}#p{$this->item_id}",
|
||||
|
@@ -111,10 +111,10 @@ class report_post_closed extends \phpbb\notification\type\post
|
||||
$closer_username = $this->user_loader->get_username($this->get_data('closer_id'), 'username');
|
||||
|
||||
return [
|
||||
'AUTHOR_NAME' => htmlspecialchars_decode($post_username, ENT_COMPAT),
|
||||
'CLOSER_NAME' => htmlspecialchars_decode($closer_username, ENT_COMPAT),
|
||||
'POST_SUBJECT' => htmlspecialchars_decode(censor_text($this->get_data('post_subject')), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => htmlspecialchars_decode(censor_text($this->get_data('topic_title')), ENT_COMPAT),
|
||||
'AUTHOR_NAME' => html_entity_decode($post_username, ENT_COMPAT),
|
||||
'CLOSER_NAME' => html_entity_decode($closer_username, ENT_COMPAT),
|
||||
'POST_SUBJECT' => html_entity_decode(censor_text($this->get_data('post_subject')), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => html_entity_decode(censor_text($this->get_data('topic_title')), ENT_COMPAT),
|
||||
|
||||
'U_VIEW_POST' => generate_board_url() . "/viewtopic.{$this->php_ext}?p={$this->item_id}#p{$this->item_id}",
|
||||
];
|
||||
|
@@ -217,9 +217,9 @@ class topic extends \phpbb\notification\type\base
|
||||
}
|
||||
|
||||
return array(
|
||||
'AUTHOR_NAME' => htmlspecialchars_decode($username, ENT_COMPAT),
|
||||
'FORUM_NAME' => htmlspecialchars_decode($this->get_data('forum_name'), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => htmlspecialchars_decode(censor_text($this->get_data('topic_title')), ENT_COMPAT),
|
||||
'AUTHOR_NAME' => html_entity_decode($username, ENT_COMPAT),
|
||||
'FORUM_NAME' => html_entity_decode($this->get_data('forum_name'), ENT_COMPAT),
|
||||
'TOPIC_TITLE' => html_entity_decode(censor_text($this->get_data('topic_title')), ENT_COMPAT),
|
||||
|
||||
'U_TOPIC' => "{$board_url}/viewtopic.{$this->php_ext}?t={$this->item_id}",
|
||||
'U_VIEW_TOPIC' => "{$board_url}/viewtopic.{$this->php_ext}?t={$this->item_id}",
|
||||
|
@@ -163,7 +163,7 @@ class plupload
|
||||
'S_PLUPLOAD' => true,
|
||||
'FILTERS' => $filters,
|
||||
'CHUNK_SIZE' => $chunk_size,
|
||||
'S_PLUPLOAD_URL' => htmlspecialchars_decode($s_action, ENT_COMPAT),
|
||||
'S_PLUPLOAD_URL' => html_entity_decode($s_action, ENT_COMPAT),
|
||||
'MAX_ATTACHMENTS' => $max_files,
|
||||
'ATTACH_ORDER' => ($this->config['display_order']) ? 'asc' : 'desc',
|
||||
'L_TOO_MANY_ATTACHMENTS' => $this->user->lang('TOO_MANY_ATTACHMENTS', $max_files),
|
||||
|
@@ -232,7 +232,7 @@ class fulltext_mysql extends \phpbb\search\base
|
||||
}
|
||||
|
||||
// Filter out as above
|
||||
$split_keywords = preg_replace("#[\n\r\t]+#", ' ', trim(htmlspecialchars_decode($keywords, ENT_COMPAT)));
|
||||
$split_keywords = preg_replace("#[\n\r\t]+#", ' ', trim(html_entity_decode($keywords, ENT_COMPAT)));
|
||||
|
||||
// Split words
|
||||
$split_keywords = preg_replace('#([^\p{L}\p{N}\'*"()])#u', '$1$1', str_replace('\'\'', '\' \'', trim($split_keywords)));
|
||||
@@ -568,7 +568,7 @@ class fulltext_mysql extends \phpbb\search\base
|
||||
);
|
||||
extract($this->phpbb_dispatcher->trigger_event('core.search_mysql_keywords_main_query_before', compact($vars)));
|
||||
|
||||
$sql_select = ($type == 'posts') ? 'p.post_id' : 'DISTINCT t.topic_id';
|
||||
$sql_select = ($type == 'posts') ? 'DISTINCT p.post_id' : 'DISTINCT t.topic_id';
|
||||
$sql_select .= $sort_by_sql[$sort_key] ? ", {$sort_by_sql[$sort_key]}" : '';
|
||||
$sql_from = ($join_topic) ? TOPICS_TABLE . ' t, ' : '';
|
||||
$field = ($type == 'posts') ? 'post_id' : 'topic_id';
|
||||
@@ -597,7 +597,7 @@ class fulltext_mysql extends \phpbb\search\base
|
||||
|
||||
$sql = "SELECT $sql_select
|
||||
FROM $sql_from$sql_sort_table" . POSTS_TABLE . " p
|
||||
WHERE MATCH ($sql_match) AGAINST ('" . $this->db->sql_escape(htmlspecialchars_decode($this->search_query, ENT_COMPAT)) . "' IN BOOLEAN MODE)
|
||||
WHERE MATCH ($sql_match) AGAINST ('" . $this->db->sql_escape(html_entity_decode($this->search_query, ENT_COMPAT)) . "' IN BOOLEAN MODE)
|
||||
$sql_where_options
|
||||
ORDER BY $sql_sort";
|
||||
$this->db->sql_return_on_error(true);
|
||||
@@ -613,7 +613,7 @@ class fulltext_mysql extends \phpbb\search\base
|
||||
// if the total result count is not cached yet, retrieve it from the db
|
||||
if (!$result_count && count($id_ary))
|
||||
{
|
||||
$sql_found_rows = str_replace("SELECT $sql_select", "SELECT COUNT(*) as result_count", $sql);
|
||||
$sql_found_rows = str_replace("SELECT $sql_select", "SELECT COUNT($sql_select) as result_count", $sql);
|
||||
$result = $this->db->sql_query($sql_found_rows);
|
||||
$result_count = (int) $this->db->sql_fetchfield('result_count');
|
||||
$this->db->sql_freeresult($result);
|
||||
|
@@ -634,7 +634,7 @@ class fulltext_native extends \phpbb\search\base
|
||||
$w_num = 0;
|
||||
|
||||
$sql_array = array(
|
||||
'SELECT' => ($type == 'posts') ? 'p.post_id' : 'p.topic_id',
|
||||
'SELECT' => ($type == 'posts') ? 'DISTINCT p.post_id' : 'DISTINCT p.topic_id',
|
||||
'FROM' => array(
|
||||
SEARCH_WORDMATCH_TABLE => array(),
|
||||
SEARCH_WORDLIST_TABLE => array(),
|
||||
@@ -984,9 +984,9 @@ class fulltext_native extends \phpbb\search\base
|
||||
// If using mysql and the total result count is not calculated yet, get it from the db
|
||||
if (!$total_results && $is_mysql)
|
||||
{
|
||||
$sql_count = str_replace("SELECT {$sql_array['SELECT']}", "SELECT COUNT(DISTINCT {$sql_array['SELECT']}) as total_results", $sql);
|
||||
$sql_count = str_replace("SELECT {$sql_array['SELECT']}", "SELECT COUNT({$sql_array['SELECT']}) as total_results", $sql);
|
||||
$result = $this->db->sql_query($sql_count);
|
||||
$total_results = (int) $this->db->sql_fetchfield('total_results');
|
||||
$total_results = $sql_array['GROUP_BY'] ? count($this->db->sql_fetchrowset($result)) : $this->db->sql_fetchfield('total_results');
|
||||
$this->db->sql_freeresult($result);
|
||||
|
||||
if (!$total_results)
|
||||
@@ -1824,7 +1824,7 @@ class fulltext_native extends \phpbb\search\base
|
||||
/**
|
||||
* Replace HTML entities and NCRs
|
||||
*/
|
||||
$text = htmlspecialchars_decode(utf8_decode_ncr($text), ENT_QUOTES);
|
||||
$text = html_entity_decode(utf8_decode_ncr($text), ENT_QUOTES);
|
||||
|
||||
/**
|
||||
* Normalize to NFC
|
||||
|
@@ -204,7 +204,7 @@ class fulltext_postgres extends \phpbb\search\base
|
||||
}
|
||||
|
||||
// Filter out as above
|
||||
$split_keywords = preg_replace("#[\"\n\r\t]+#", ' ', trim(htmlspecialchars_decode($keywords, ENT_COMPAT)));
|
||||
$split_keywords = preg_replace("#[\"\n\r\t]+#", ' ', trim(html_entity_decode($keywords, ENT_COMPAT)));
|
||||
|
||||
// Split words
|
||||
$split_keywords = preg_replace('#([^\p{L}\p{N}\'*"()])#u', '$1$1', str_replace('\'\'', '\' \'', trim($split_keywords)));
|
||||
@@ -550,7 +550,7 @@ class fulltext_postgres extends \phpbb\search\base
|
||||
// if the total result count is not cached yet, retrieve it from the db
|
||||
if (!$result_count)
|
||||
{
|
||||
$sql_count = "SELECT COUNT(*) as result_count
|
||||
$sql_count = "SELECT COUNT(DISTINCT " . (($type == 'posts') ? 'p.post_id' : 't.topic_id') . ") as result_count
|
||||
$sql_from
|
||||
$sql_where";
|
||||
$result = $this->db->sql_query($sql_count);
|
||||
|
@@ -49,7 +49,7 @@ class session
|
||||
// If we are unable to get the script name we use REQUEST_URI as a failover and note it within the page array for easier support...
|
||||
if (!$script_name)
|
||||
{
|
||||
$script_name = htmlspecialchars_decode($request->server('REQUEST_URI'), ENT_COMPAT);
|
||||
$script_name = html_entity_decode($request->server('REQUEST_URI'), ENT_COMPAT);
|
||||
$script_name = (($pos = strpos($script_name, '?')) !== false) ? substr($script_name, 0, $pos) : $script_name;
|
||||
$page_array['failover'] = 1;
|
||||
}
|
||||
@@ -166,7 +166,7 @@ class session
|
||||
global $config, $request;
|
||||
|
||||
// Get hostname
|
||||
$host = htmlspecialchars_decode($request->header('Host', $request->server('SERVER_NAME')), ENT_COMPAT);
|
||||
$host = html_entity_decode($request->header('Host', $request->server('SERVER_NAME')), ENT_COMPAT);
|
||||
|
||||
// Should be a string and lowered
|
||||
$host = (string) strtolower($host);
|
||||
@@ -289,7 +289,7 @@ class session
|
||||
|
||||
// Why no forwarded_for et al? Well, too easily spoofed. With the results of my recent requests
|
||||
// it's pretty clear that in the majority of cases you'll at least be left with a proxy/cache ip.
|
||||
$ip = htmlspecialchars_decode($request->server('REMOTE_ADDR'), ENT_COMPAT);
|
||||
$ip = html_entity_decode($request->server('REMOTE_ADDR'), ENT_COMPAT);
|
||||
$ip = preg_replace('# {2,}#', ' ', str_replace(',', ' ', $ip));
|
||||
|
||||
/**
|
||||
|
@@ -62,27 +62,27 @@ class assets_bag
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the HTML code to includes all css assets
|
||||
* Returns the HTML code to include all css assets
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_stylesheets_content()
|
||||
public function get_stylesheets_content(): string
|
||||
{
|
||||
$output = '';
|
||||
foreach ($this->stylesheets as $stylesheet)
|
||||
{
|
||||
$output .= "<link href=\"{$stylesheet->get_url()}\" rel=\"stylesheet\" media=\"screen\" />\n";
|
||||
$output .= "<link href=\"{$stylesheet->get_url()}\" rel=\"stylesheet\" media=\"screen\">\n";
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the HTML code to includes all js assets
|
||||
* Returns the HTML code to include all js assets
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_scripts_content()
|
||||
public function get_scripts_content(): string
|
||||
{
|
||||
$output = '';
|
||||
foreach ($this->scripts as $script)
|
||||
|
@@ -227,7 +227,7 @@ class data_access
|
||||
{
|
||||
foreach ($columns as $column)
|
||||
{
|
||||
$row[$column] = htmlspecialchars_decode($row[$column], ENT_COMPAT);
|
||||
$row[$column] = html_entity_decode($row[$column], ENT_COMPAT);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -152,7 +152,7 @@ class renderer implements \phpbb\textformatter\renderer_interface
|
||||
* @param \phpbb\user $user
|
||||
* @param \phpbb\config\config $config
|
||||
* @param \phpbb\auth\auth $auth
|
||||
* @return null
|
||||
* @return void
|
||||
*/
|
||||
public function configure_user(\phpbb\user $user, \phpbb\config\config $config, \phpbb\auth\auth $auth)
|
||||
{
|
||||
@@ -175,10 +175,10 @@ class renderer implements \phpbb\textformatter\renderer_interface
|
||||
|
||||
// Set this user's style id and other parameters
|
||||
$this->renderer->setParameters(array(
|
||||
'S_IS_BOT' => $user->data['is_bot'],
|
||||
'S_REGISTERED_USER' => $user->data['is_registered'],
|
||||
'S_USER_LOGGED_IN' => ($user->data['user_id'] != ANONYMOUS),
|
||||
'STYLE_ID' => $user->style['style_id'],
|
||||
'S_IS_BOT' => $user->data['is_bot'] ?? false,
|
||||
'S_REGISTERED_USER' => $user->data['is_registered'] ?? false,
|
||||
'S_USER_LOGGED_IN' => ($user->data['user_id'] != ANONYMOUS),
|
||||
'STYLE_ID' => $user->style['style_id'],
|
||||
));
|
||||
}
|
||||
|
||||
|
@@ -265,7 +265,7 @@ class reset_password
|
||||
$messenger->anti_abuse_headers($this->config, $this->user);
|
||||
|
||||
$messenger->assign_vars([
|
||||
'USERNAME' => htmlspecialchars_decode($user_row['username'], ENT_COMPAT),
|
||||
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
|
||||
'U_RESET_PASSWORD' => generate_board_url(true) . $this->helper->route('phpbb_ucp_reset_password_controller', [
|
||||
'u' => $user_row['user_id'],
|
||||
'token' => $reset_token,
|
||||
|
@@ -141,7 +141,7 @@ class user_loader
|
||||
{
|
||||
$this->load_users(array($user_id));
|
||||
|
||||
return $this->get_user($user_id);
|
||||
return $user_id != ANONYMOUS ? $this->get_user($user_id) : $this->users[$user_id] ?? false;
|
||||
}
|
||||
|
||||
return $this->get_user(ANONYMOUS);
|
||||
|
@@ -678,16 +678,16 @@ if ($keywords || $author || $author_id || $search_id || $submit)
|
||||
$hilit = phpbb_clean_search_string(str_replace(array('+', '-', '|', '(', ')', '"'), ' ', $keywords));
|
||||
$hilit = str_replace(' ', '|', $hilit);
|
||||
|
||||
$u_hilit = urlencode(htmlspecialchars_decode(str_replace('|', ' ', $hilit), ENT_COMPAT));
|
||||
$u_hilit = urlencode(html_entity_decode(str_replace('|', ' ', $hilit), ENT_COMPAT));
|
||||
$u_show_results = '&sr=' . $show_results;
|
||||
$u_search_forum = implode('&fid%5B%5D=', $search_forum);
|
||||
|
||||
$u_search = append_sid("{$phpbb_root_path}search.$phpEx", $u_sort_param . $u_show_results);
|
||||
$u_search .= ($search_id) ? '&search_id=' . $search_id : '';
|
||||
$u_search .= ($u_hilit) ? '&keywords=' . urlencode(htmlspecialchars_decode($keywords, ENT_COMPAT)) : '';
|
||||
$u_search .= ($u_hilit) ? '&keywords=' . urlencode(html_entity_decode($keywords, ENT_COMPAT)) : '';
|
||||
$u_search .= ($search_terms != 'all') ? '&terms=' . $search_terms : '';
|
||||
$u_search .= ($topic_id) ? '&t=' . $topic_id : '';
|
||||
$u_search .= ($author) ? '&author=' . urlencode(htmlspecialchars_decode($author, ENT_COMPAT)) : '';
|
||||
$u_search .= ($author) ? '&author=' . urlencode(html_entity_decode($author, ENT_COMPAT)) : '';
|
||||
$u_search .= ($author_id) ? '&author_id=' . $author_id : '';
|
||||
$u_search .= ($u_search_forum) ? '&fid%5B%5D=' . $u_search_forum : '';
|
||||
$u_search .= (!$search_child) ? '&sc=0' : '';
|
||||
@@ -1564,7 +1564,7 @@ if ($auth->acl_get('a_search'))
|
||||
'KEYWORDS' => $keywords,
|
||||
'TIME' => $user->format_date($row['search_time']),
|
||||
|
||||
'U_KEYWORDS' => append_sid("{$phpbb_root_path}search.$phpEx", 'keywords=' . urlencode(htmlspecialchars_decode($keywords, ENT_COMPAT)))
|
||||
'U_KEYWORDS' => append_sid("{$phpbb_root_path}search.$phpEx", 'keywords=' . urlencode(html_entity_decode($keywords, ENT_COMPAT)))
|
||||
));
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
7
phpBB/styles/all/template/cron.html
Normal file
7
phpBB/styles/all/template/cron.html
Normal file
@@ -0,0 +1,7 @@
|
||||
{#
|
||||
Runs the cron task by triggering server request to the URL on load. `img` is
|
||||
preferred over JS to ensure maximum compatibility. We use `class="sr-only"`
|
||||
to hide visually and `aria-hidden="true"` to hide from screen-readers; using
|
||||
`hidden` or `display: none` would prevent the task from running.
|
||||
#}
|
||||
<img class="sr-only" aria-hidden="true" src="{{ CRON_TASK_URL|e('html_attr') }}" width="1" height="1" alt="">
|
@@ -21,8 +21,8 @@
|
||||
# General Information about this style
|
||||
name = prosilver
|
||||
copyright = © phpBB Limited, 2007
|
||||
style_version = 3.3.7
|
||||
phpbb_version = 3.3.7
|
||||
style_version = 3.3.9
|
||||
phpbb_version = 3.3.9
|
||||
|
||||
# Defining a different template bitfield
|
||||
# template_bitfield = //g=
|
||||
|
@@ -361,6 +361,17 @@ $('.display_post').click(function(e) {
|
||||
$('#post_hidden' + postId).hide();
|
||||
});
|
||||
|
||||
/**
|
||||
* Display hidden post on post review page
|
||||
*/
|
||||
$('.display_post_review').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
let $displayPostLink = $(this);
|
||||
$displayPostLink.closest('.post-ignore').removeClass('post-ignore');
|
||||
$displayPostLink.hide();
|
||||
});
|
||||
|
||||
/**
|
||||
* Toggle the member search panel in memberlist.php.
|
||||
*
|
||||
|
@@ -89,7 +89,7 @@
|
||||
<i class="icon fa-question fa-fw icon-blue" aria-hidden="true"></i><span class="sr-only">{L_POSTS_UNAPPROVED_FORUM}</span>
|
||||
</a>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF forumrow.LAST_POST_TIME -->
|
||||
<!-- IF forumrow.LAST_POST_TIME_RFC3339 -->
|
||||
<dfn>{L_LAST_POST}</dfn>
|
||||
<!-- IF forumrow.S_DISPLAY_SUBJECT -->
|
||||
<!-- EVENT forumlist_body_last_post_title_prepend -->
|
||||
|
@@ -60,7 +60,7 @@
|
||||
|
||||
<div>
|
||||
<a id="bottom" class="anchor" accesskey="z"></a>
|
||||
<!-- IF not S_IS_BOT -->{RUN_CRON_TASK}<!-- ENDIF -->
|
||||
{% if not S_IS_BOT %}{{ RUN_CRON_TASK }}{% endif %}
|
||||
</div>
|
||||
|
||||
<script src="{T_JQUERY_LINK}"></script>
|
||||
|
@@ -65,7 +65,9 @@
|
||||
{BBCODE_STATUS}<br />
|
||||
<!-- IF S_BBCODE_ALLOWED -->
|
||||
{IMG_STATUS}<br />
|
||||
<!-- IF S_BBCODE_FLASH -->
|
||||
{FLASH_STATUS}<br />
|
||||
<!-- ENDIF -->
|
||||
{URL_STATUS}<br />
|
||||
<!-- ENDIF -->
|
||||
{SMILIES_STATUS}
|
||||
@@ -181,16 +183,18 @@
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF S_SOFTDELETE_ALLOWED or S_DELETE_ALLOWED -->
|
||||
<hr class="dashed" />
|
||||
{% if S_SOFTDELETE_ALLOWED || S_DELETE_ALLOWED %}
|
||||
<hr class="dashed">
|
||||
<dl>
|
||||
<dt><label for="delete">{L_DELETE_POST}{L_COLON}</label></dt>
|
||||
<dd><label for="delete"><input type="checkbox" name="delete" id="delete" {S_SOFTDELETE_CHECKED} /> {L_DELETE_POST_WARN}</label></dd>
|
||||
<!-- IF S_DELETE_ALLOWED and S_SOFTDELETE_ALLOWED -->
|
||||
<dd><label for="delete_permanent"><input type="checkbox" name="delete_permanent" id="delete_permanent" /> {L_DELETE_POST_PERMANENTLY}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
<dt><label for="delete">{{ lang('DELETE_POST') ~ lang('COLON') }}</label></dt>
|
||||
{% if S_SOFTDELETE_ALLOWED %}
|
||||
<dd><label for="delete"><input type="checkbox" name="delete" id="delete" {{ S_SOFTDELETE_CHECKED }}> {{ lang('DELETE_POST_WARN') }}</label></dd>
|
||||
{% endif %}
|
||||
{% if S_DELETE_ALLOWED %}
|
||||
<dd><label for="delete_permanent"><input type="checkbox" name="delete_permanent" id="delete_permanent"> {{ lang('DELETE_POST_PERMANENTLY') }}</label></dd>
|
||||
{% endif %}
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
{% endif %}
|
||||
|
||||
<!-- IF S_EDIT_REASON -->
|
||||
<dl>
|
||||
|
@@ -66,13 +66,14 @@
|
||||
<!-- ENDIF -->
|
||||
<!-- IF .to_recipient -->
|
||||
<dd class="recipients">
|
||||
<ul class="recipients">
|
||||
<!-- BEGIN to_recipient -->
|
||||
<li>
|
||||
<!-- IF to_recipient.IS_GROUP --><a href="{to_recipient.U_VIEW}"><strong>{to_recipient.NAME}</strong></a><!-- ELSE -->{to_recipient.NAME_FULL}<!-- ENDIF -->
|
||||
<!-- IF not S_EDIT_POST --><input type="submit" name="remove_{to_recipient.TYPE}[{to_recipient.UG_ID}]" value="x" class="button2" /><!-- ENDIF -->
|
||||
</li>
|
||||
<!-- END to_recipient -->
|
||||
<ul class="recipients">
|
||||
<!-- BEGIN to_recipient -->
|
||||
<li>
|
||||
<!-- IF to_recipient.IS_GROUP --><a href="{to_recipient.U_VIEW}"><strong>{to_recipient.NAME}</strong></a><!-- ELSE -->{to_recipient.NAME_FULL}<!-- ENDIF -->
|
||||
<!-- IF not S_EDIT_POST --><input type="submit" name="remove_{to_recipient.TYPE}[{to_recipient.UG_ID}]" value="x" class="button2" /><!-- ENDIF -->
|
||||
</li>
|
||||
<!-- END to_recipient -->
|
||||
</ul>
|
||||
</dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
|
@@ -6,7 +6,8 @@
|
||||
<!-- IF post_review_row.S_IGNORE_POST -->
|
||||
<div class="post bg3 post-ignore">
|
||||
<div class="inner">
|
||||
{post_review_row.L_IGNORE_POST}
|
||||
{post_review_row.L_IGNORE_POST}<br>
|
||||
<a class="display_post_review" href="{{ post_review_row.U_MINI_POST }}">{{ lang('POST_DISPLAY') }}</a>
|
||||
<!-- ELSE -->
|
||||
<div class="post <!-- IF post_review_row.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
|
||||
<div class="inner">
|
||||
|
@@ -13,11 +13,13 @@
|
||||
<!-- IF topic_review_row.S_IGNORE_POST -->
|
||||
<div class="post bg3 post-ignore">
|
||||
<div class="inner">
|
||||
{topic_review_row.L_IGNORE_POST}
|
||||
{topic_review_row.L_IGNORE_POST}<br>
|
||||
<a class="display_post_review" href="{{ post_review_row.U_MINI_POST }}">{{ lang('POST_DISPLAY') }}</a>
|
||||
<!-- ELSE IF topic_review_row.S_POST_DELETED -->
|
||||
<div class="post bg3 post-ignore">
|
||||
<div class="inner">
|
||||
{topic_review_row.L_DELETE_POST}
|
||||
{topic_review_row.L_DELETE_POST}<br>
|
||||
<a class="display_post_review" href="{{ post_review_row.U_MINI_POST }}">{{ lang('POST_DISPLAY') }}</a>
|
||||
<!-- ELSE -->
|
||||
<div class="post <!-- IF topic_review_row.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF --><!-- IF topic_review_row.POST_ID == REPORTED_POST_ID --> reported<!-- ENDIF -->">
|
||||
<div class="inner">
|
||||
@@ -33,7 +35,7 @@
|
||||
<a href="{topic_review_row.U_MCP_DETAILS}" title="{L_POST_DETAILS}" class="button button-icon-only">
|
||||
<i class="icon fa-info fa-fw" aria-hidden="true"></i><span class="sr-only">{L_POST_DETAILS}</span>
|
||||
</a>
|
||||
<li>
|
||||
</li>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF topic_review_row.POSTER_QUOTE and topic_review_row.DECODED_MESSAGE -->
|
||||
<li>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user