mirror of
https://github.com/phpbb/phpbb.git
synced 2025-09-21 05:21:33 +02:00
Compare commits
1009 Commits
release-3.
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
|
90973a52b4 | ||
|
31b3d56ac1 | ||
|
ccf6e6c255 | ||
|
8fe3a97a1a | ||
|
2c5519da39 | ||
|
0c90bf0000 | ||
|
edc610e81d | ||
|
e071cd801a | ||
|
ac76b80cb1 | ||
|
d4e0840e6f | ||
|
137422116e | ||
|
5f8c9962a0 | ||
|
0a8391857f | ||
|
233d6a0a69 | ||
|
91b3627236 | ||
|
9dec6d3176 | ||
|
6fac65d193 | ||
|
42bf5778d5 | ||
|
4bf78d139b | ||
|
d76c571ad1 | ||
|
4046365977 | ||
|
c480dd8d2f | ||
|
266376af2e | ||
|
c4f42c1573 | ||
|
d8ac6f575e | ||
|
715c0ad608 | ||
|
745dd5f5a8 | ||
|
346523fad6 | ||
|
78aca08d39 | ||
|
90b1c2210e | ||
|
a04af20806 | ||
|
88dcb5d3d5 | ||
|
2d3781f285 | ||
|
b724e82bbd | ||
|
3163b1726c | ||
|
6b6c710706 | ||
|
a78eb6fb42 | ||
|
3b622bc005 | ||
|
b14f37d409 | ||
|
0f38ece743 | ||
|
e80cf43adc | ||
|
aba7f4a9e6 | ||
|
e1052bd168 | ||
|
d59a4d4aad | ||
|
8360752b2a | ||
|
d572070456 | ||
|
4513d1c0af | ||
|
74fe9f40b7 | ||
|
bdbbc63b9c | ||
|
10330e5867 | ||
|
2563561663 | ||
|
facd14b47e | ||
|
0596d1065e | ||
|
a414a44e36 | ||
|
6268693cff | ||
|
e5db724d2c | ||
|
dd790b41eb | ||
|
50859bc8a5 | ||
|
b0d976f462 | ||
|
9515abdb91 | ||
|
b53645177b | ||
|
0df0bd269a | ||
|
098f22609d | ||
|
1dedb05dce | ||
|
e3547aeb82 | ||
|
253ecdd3fe | ||
|
f9281f9267 | ||
|
56f0846378 | ||
|
0ede362120 | ||
|
e11c11ac9d | ||
|
e0e0173442 | ||
|
33c4abe909 | ||
|
cca85f648b | ||
|
add6d2b726 | ||
|
5f825002b6 | ||
|
aaf5700076 | ||
|
e9ac8f1f94 | ||
|
a39691b0d5 | ||
|
0c8e6172fb | ||
|
14b94a1e62 | ||
|
b550d1db0a | ||
|
a686a2f057 | ||
|
22d6b035d6 | ||
|
bdeedfea4e | ||
|
85e5c9dcca | ||
|
91f216d9ce | ||
|
b0c008690a | ||
|
55ea8d6030 | ||
|
8223a956df | ||
|
cfd15752ee | ||
|
5ee2efd4c2 | ||
|
0fdc76521b | ||
|
4c72b76809 | ||
|
bf50c63d6e | ||
|
464466cade | ||
|
b613c9f63d | ||
|
acaec9f95f | ||
|
2f3066235c | ||
|
e0a30fbce7 | ||
|
a8658fe4d1 | ||
|
c11f16fda0 | ||
|
8c33a2180d | ||
|
4f9bd296a7 | ||
|
65fb35223c | ||
|
1eb81e9b2a | ||
|
d8d67b5f17 | ||
|
7adee3c50d | ||
|
75dcbeaa9f | ||
|
f4af87f718 | ||
|
26d002a51a | ||
|
e0144ae7b2 | ||
|
c2c7c271e7 | ||
|
dfe6421da8 | ||
|
60d267893c | ||
|
e0361fe9fe | ||
|
130e7f7e8a | ||
|
f5c5d7d1e6 | ||
|
bddb4decfb | ||
|
3cde5974d2 | ||
|
5655febb8d | ||
|
437839ba72 | ||
|
4f49fb1f98 | ||
|
6e77ca50ae | ||
|
015c038d92 | ||
|
bd55fe7e8c | ||
|
6e66f1505c | ||
|
640a2221a5 | ||
|
c27214495c | ||
|
98f6a1a300 | ||
|
0260fcd6a7 | ||
|
f2d004a881 | ||
|
31654e728f | ||
|
c879d9380f | ||
|
9db5da5b3d | ||
|
d5aa6189b6 | ||
|
389cca5402 | ||
|
defb807dbc | ||
|
9fb7a9108a | ||
|
4bf78fd7fd | ||
|
261aa0e6aa | ||
|
41b8ec0470 | ||
|
984596ffd3 | ||
|
1416e25cfd | ||
|
3584d79e87 | ||
|
e5bbb899f7 | ||
|
2afc1c369a | ||
|
81f67f3a6e | ||
|
4a185ed02e | ||
|
cfd0fe6943 | ||
|
3f6abe056a | ||
|
9b961836be | ||
|
aa5e9bf25c | ||
|
50c3c3f0ee | ||
|
1f96a2c79a | ||
|
24a5972a0b | ||
|
fc8c6acae4 | ||
|
0f445c73a0 | ||
|
0f1c62bc7b | ||
|
b7258788cc | ||
|
632702e10f | ||
|
b5c316c9c3 | ||
|
458940217b | ||
|
1b82ea8a11 | ||
|
85cf70765d | ||
|
9794a84f3a | ||
|
33ba9f3392 | ||
|
09820dfdfa | ||
|
6590827316 | ||
|
738dd786ba | ||
|
17f2d6e03a | ||
|
20c3371460 | ||
|
aa523eadf1 | ||
|
d76f5132db | ||
|
179dcd9642 | ||
|
8ebb64a92a | ||
|
e091adcc9c | ||
|
61a7e0fdfc | ||
|
ad794c17ed | ||
|
b5f8251b3f | ||
|
b5f10f844f | ||
|
a1a6ff4555 | ||
|
eabe7e8e3c | ||
|
6d8468c91a | ||
|
aff7fab65f | ||
|
be053c3381 | ||
|
e805a47a98 | ||
|
9feae900d3 | ||
|
34f23477ff | ||
|
e5f069b15b | ||
|
fd550bc25a | ||
|
378c63b002 | ||
|
51766ffaee | ||
|
2c8e16cf4b | ||
|
279f506d69 | ||
|
8564e1eac1 | ||
|
6e45a2361d | ||
|
83b53690b5 | ||
|
191f38b9a0 | ||
|
96afebf969 | ||
|
3ece314338 | ||
|
c62d9e4c05 | ||
|
34b56205a3 | ||
|
a0477a10ce | ||
|
9e44ba096e | ||
|
7d29f133e5 | ||
|
e535f8e054 | ||
|
11e68e910b | ||
|
02efbc251e | ||
|
7434783b07 | ||
|
d446030a9b | ||
|
d6e3dfff6d | ||
|
369ee44b6f | ||
|
0543c810a7 | ||
|
bb0f6d040c | ||
|
02ef7c5da4 | ||
|
90899a17dd | ||
|
9c70c15e1c | ||
|
21374390ad | ||
|
d03a853f6e | ||
|
014008fd48 | ||
|
b3d593b626 | ||
|
744009882b | ||
|
1c407e8049 | ||
|
e75ea6642d | ||
|
ad9e5e6891 | ||
|
b828efa9e6 | ||
|
c66923bafc | ||
|
ebc5e1ead0 | ||
|
3db6cc98f5 | ||
|
a45f8f0796 | ||
|
c2968212d8 | ||
|
0793126dc4 | ||
|
9fb2dbb776 | ||
|
6f034c5215 | ||
|
0802772f09 | ||
|
696ff06263 | ||
|
b86d15a766 | ||
|
637844f264 | ||
|
c410829a42 | ||
|
8ef6a5c1bc | ||
|
cd36a68645 | ||
|
5225ac8a9a | ||
|
aaaef71b60 | ||
|
1fe8bbf47a | ||
|
827c135cc9 | ||
|
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 | ||
|
9fb98201f2 | ||
|
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 | ||
|
19aadeefda | ||
|
8ca00c529e | ||
|
e138328be1 | ||
|
faec4417f4 | ||
|
34f27a1670 | ||
|
028340ee52 | ||
|
e86daaede6 | ||
|
91f2f2c6f1 | ||
|
5a3a91b464 | ||
|
1f972f0ee7 | ||
|
2e37b2dc2d | ||
|
8d6a9245c1 | ||
|
1a8950d01b | ||
|
b4fa01e943 | ||
|
cd057c126a | ||
|
377ebacf0d | ||
|
fb2d1c2a28 | ||
|
da2364b2c1 | ||
|
a5899494b9 | ||
|
86e009ad15 | ||
|
cc60a63f22 | ||
|
4044900c69 | ||
|
e84cf2e5ba | ||
|
e78664d68b | ||
|
a466be10c2 | ||
|
4e5b9b23de | ||
|
9bc98278fe | ||
|
33a789e030 | ||
|
c9db94f91c | ||
|
3cf83f1a62 | ||
|
d0344b9318 | ||
|
4072dd0246 | ||
|
6a6d83c674 | ||
|
94fe538100 | ||
|
4f9252568a | ||
|
5017dbd58d | ||
|
c4fcbc2cbd | ||
|
3be1e3029e | ||
|
7992b3f476 | ||
|
9dc25510a1 | ||
|
420f494628 | ||
|
8e4559f49f | ||
|
0fe95a032b | ||
|
9446db9cde | ||
|
adea3e734a | ||
|
919ff4575b | ||
|
ee56f0fe7d | ||
|
893dad0297 | ||
|
d08843853e | ||
|
97356d9879 | ||
|
9f09dec049 | ||
|
8a3164aaf7 | ||
|
6caf2f83ad | ||
|
4805e705ad | ||
|
9bf6e7f32e | ||
|
c93381ff04 | ||
|
88b79aba00 | ||
|
9c6df33e3b | ||
|
605726a4d7 | ||
|
3103e99dc7 | ||
|
a8c93ff661 | ||
|
1f4eac13b9 | ||
|
5e43f6195c | ||
|
6846eeaa48 | ||
|
b602b57b02 | ||
|
ba487a24dc | ||
|
015c9313a7 | ||
|
e7c81cd1a6 | ||
|
bf7936380a | ||
|
3f56bbb9d1 | ||
|
44d0a3a716 | ||
|
999122acdb | ||
|
c785c4b716 | ||
|
b305070e0a | ||
|
99634d4c05 | ||
|
fad1c652c0 | ||
|
1df74005a8 | ||
|
c7856ce162 | ||
|
cccf01447f | ||
|
ddc3eaa5bf | ||
|
65fa73855c | ||
|
391e4943d9 | ||
|
6801f7949f | ||
|
710aa10905 | ||
|
4a78202f96 | ||
|
d6a591cde3 | ||
|
4e447cc91a | ||
|
ec75f1741b | ||
|
af38f9d6c8 | ||
|
4614d3d92b | ||
|
866a4dc6d4 | ||
|
492352f652 | ||
|
1d05f722cb | ||
|
c1b88de806 | ||
|
89168c507b | ||
|
7a69c0f98c | ||
|
8cc6075d92 | ||
|
03b36d46c3 | ||
|
8104a446d4 | ||
|
aff3852568 | ||
|
39905eaf4b | ||
|
534cef94c9 | ||
|
a0ced790e2 | ||
|
0537365cac | ||
|
6e34e3c24e | ||
|
fecf3306f3 | ||
|
39db7005cd | ||
|
e956629735 | ||
|
89ca3f087e | ||
|
29d137cc5e | ||
|
88a11c1377 | ||
|
69b895caae | ||
|
d7f433fbf7 | ||
|
4d00c4c8af | ||
|
1e6c5cd381 | ||
|
0fbc5a3d83 | ||
|
3bfb2b3f69 | ||
|
337d876df7 | ||
|
8246023e0f | ||
|
b28b94b1f1 | ||
|
baf4bd7b5c | ||
|
81126dc97e | ||
|
391f80d480 | ||
|
febe44ed79 | ||
|
ede9a6815a | ||
|
2801415c1c | ||
|
dd029ed592 | ||
|
1d4fbd240e | ||
|
7275cdd152 | ||
|
b1e6fad38a | ||
|
9671a00214 | ||
|
d17b15a545 | ||
|
f841a0a1b8 | ||
|
7472d300b6 | ||
|
06ef03f8d6 | ||
|
40322bb1b6 | ||
|
6218c2e120 | ||
|
afbf7aadd2 | ||
|
a860a3310a | ||
|
ca24013470 | ||
|
99734fc648 | ||
|
3547f0bf0e | ||
|
01a22e7223 | ||
|
2145938d74 | ||
|
62a8741494 | ||
|
13155bf846 | ||
|
4d966d1762 | ||
|
056fb494b1 | ||
|
da7c9f6a7c | ||
|
73eb54bf54 | ||
|
6af8872ef3 | ||
|
a3070bedeb | ||
|
a12f903e93 | ||
|
d4cb357b26 | ||
|
b6e31e3664 | ||
|
7355ee623a | ||
|
a7385f0fbe | ||
|
c5814ddfaa | ||
|
96c439bf10 | ||
|
7a21a9032e | ||
|
1619014120 | ||
|
0a4d062e16 | ||
|
dda2dfecb3 | ||
|
b29c0ca153 | ||
|
c0296d10db | ||
|
4f3f91dfc3 | ||
|
52c931a8b6 | ||
|
9ca70432d9 | ||
|
1fbb807cc7 | ||
|
98f446df67 | ||
|
43b9254d1d | ||
|
97034e0776 | ||
|
02e5a7afc4 | ||
|
7efddcef54 | ||
|
ea36b83ee9 | ||
|
59cece1a0a | ||
|
e5fa23c3c0 | ||
|
9a7d88362f | ||
|
7f6c859b0d | ||
|
441a5a2175 | ||
|
ceca69d121 | ||
|
6a72d0305b | ||
|
7a8d9671c2 | ||
|
5b3d238804 | ||
|
1860a06eab | ||
|
1862992ca7 | ||
|
95fa6cceee | ||
|
19076de94c | ||
|
27289cbfad | ||
|
3d76942cdf | ||
|
51cc7202f8 | ||
|
303a933403 | ||
|
54b54c41c6 | ||
|
59e50d6d53 | ||
|
2a1656e7b3 | ||
|
12ce75b5f5 | ||
|
b82d90eb39 | ||
|
f302440297 | ||
|
848021c743 | ||
|
c4b4e1d7a9 | ||
|
ed33f06235 | ||
|
643845306a | ||
|
95511540ea | ||
|
b3b5fcc874 | ||
|
1b4ba00a73 | ||
|
8caf2e7c59 | ||
|
a87a60c108 | ||
|
5b5502390d | ||
|
1db2d9c3c1 | ||
|
5ef0105a5f | ||
|
e8421dbab1 | ||
|
e0197d711f | ||
|
11563ce971 | ||
|
bbcac37e30 | ||
|
8c25f3a9f7 | ||
|
e371f3eac7 | ||
|
dc7012864b | ||
|
cd53106ec3 | ||
|
86af3a2ba4 | ||
|
a6d4b460f1 | ||
|
975ad95bff | ||
|
61c59bdc91 | ||
|
79efbcaa4e | ||
|
8cc0e5438a | ||
|
2c8be65dcf | ||
|
c3598d0d58 | ||
|
92a2c08616 | ||
|
e5b43eabe1 | ||
|
a8be17dd4d | ||
|
170ddeaf63 | ||
|
8db200d75f | ||
|
3638b36849 | ||
|
8804cf885b | ||
|
ad23388043 | ||
|
79a8ed4677 | ||
|
5eeb213b12 | ||
|
75df7c202e | ||
|
2ef37a8e77 | ||
|
acbcb18226 | ||
|
5d0fd9f73a | ||
|
47c583516b | ||
|
91c6edf092 | ||
|
c2873cbc01 | ||
|
a1f1c0cc9d | ||
|
f46ebf5bec | ||
|
6dd7b7e8b5 | ||
|
721a39502a | ||
|
b01a956461 | ||
|
364c6d328a | ||
|
f7487e4e5c | ||
|
84b414a4f0 | ||
|
3f9e6c6013 | ||
|
e855f5cba4 | ||
|
90fccff6f1 | ||
|
a380c78e1e | ||
|
a6a18f2c59 | ||
|
6efebf7571 | ||
|
c7c3adf762 | ||
|
2e29bb48fa | ||
|
e1fc0a9059 | ||
|
c846dd5666 | ||
|
19a5900db5 | ||
|
5de8c3dc3c | ||
|
3ae0d347c9 | ||
|
2244635a41 | ||
|
68bd4e9faa | ||
|
8c12c46869 | ||
|
aecd1fa04e | ||
|
ac781e570f | ||
|
f28eed7f30 | ||
|
2869e04756 | ||
|
4446888eb2 | ||
|
7783912e93 | ||
|
ccac4c5fe8 | ||
|
a18681cfe4 | ||
|
096dad1767 | ||
|
068f8eed25 | ||
|
dd62829f96 | ||
|
be2959fbab | ||
|
7acdef7c01 | ||
|
bd0b6fbdab | ||
|
c83b4c21a4 | ||
|
9d22731d03 | ||
|
7b5ad8bb74 | ||
|
af98278590 | ||
|
bef2a4bc41 | ||
|
f24396ac0d | ||
|
b7f57eb556 | ||
|
c452c83855 | ||
|
c9b32463de | ||
|
1177f843c5 | ||
|
cdca28eb3f | ||
|
5169a947f4 | ||
|
6a95f34d0c | ||
|
11083e59ed | ||
|
6b45c7bd5f | ||
|
c5ec036b84 | ||
|
e2cfc01964 | ||
|
f007aef3d8 | ||
|
5ad1ae4e7b | ||
|
32586407d1 | ||
|
233b2fdade | ||
|
ea7e07c1a4 | ||
|
acf0885948 | ||
|
d8ef094a9a | ||
|
c925e8ef58 | ||
|
3f518c9263 | ||
|
8a746b457d | ||
|
0502b9cc22 | ||
|
6a0b1333da | ||
|
d05abc0807 | ||
|
b734fed853 | ||
|
67f80c7942 | ||
|
bb24d619d2 | ||
|
62f59fa59d | ||
|
adacf21edb | ||
|
314ab17edd | ||
|
49974a169b | ||
|
3bb58556ea | ||
|
98713a7cbe | ||
|
43e503e0ee | ||
|
37518342c6 | ||
|
81d582a2d2 | ||
|
bcea34ee7c | ||
|
3ff99a9eb1 | ||
|
20fbe0e254 | ||
|
e22f431660 | ||
|
9c8f2007d9 | ||
|
62a45d86ec | ||
|
3e0b20820a | ||
|
2dc8e61a72 | ||
|
47321954b7 | ||
|
ecc79ea2ec | ||
|
710740d6be | ||
|
de3c0f274c | ||
|
b215f13f04 | ||
|
950d8b8a13 | ||
|
31fc85153e | ||
|
782b0758ef | ||
|
21c5c5a336 | ||
|
f861f1fb9a | ||
|
7f79849146 | ||
|
db9f54bee5 | ||
|
134482f6c2 | ||
|
9051b28e14 | ||
|
1f76aa65f3 | ||
|
a641a992f6 | ||
|
8c334f0c10 | ||
|
ecd7b14171 | ||
|
65a1ed0f82 | ||
|
f6a8981028 | ||
|
bd1033be68 | ||
|
6eb357b421 | ||
|
1482efc927 | ||
|
908245686e | ||
|
70337e99fa | ||
|
1ecc2e042b | ||
|
bcc75099ab | ||
|
2c66f69c51 | ||
|
e1a6ed45bb | ||
|
3d5639a844 | ||
|
705cc6ee6b | ||
|
808be852c4 | ||
|
95496ebd38 | ||
|
574de287e7 | ||
|
e79afc6293 | ||
|
8e5be03fe9 | ||
|
b6f4f30015 | ||
|
222c7cd74b | ||
|
2d0e727f33 | ||
|
4ce8224c2c | ||
|
9d2fae3285 | ||
|
47f7a81b41 | ||
|
e49a6e06a8 | ||
|
4d5db19feb | ||
|
e8afa29013 | ||
|
1e6ed3f0f5 | ||
|
c99bfe116f | ||
|
03824189e4 | ||
|
645e662b11 | ||
|
1d22f001e6 | ||
|
718d2dc77e | ||
|
92425fcb46 | ||
|
7d48254cc9 | ||
|
c4efe5d0fa | ||
|
50a917ab4c | ||
|
736b619294 | ||
|
a8ffd339fe | ||
|
0897d3e381 | ||
|
5b84c51d81 | ||
|
e0b4f3ff37 | ||
|
4721007c02 | ||
|
f6b4031a96 | ||
|
39d89c8dbc | ||
|
8f2d84f4dc | ||
|
fe49e110bd | ||
|
6d46c08191 | ||
|
95bbebeb22 | ||
|
e3752b70e2 | ||
|
b45bd3ace7 | ||
|
8d5a624c8d | ||
|
29a3b6c792 | ||
|
78679ed001 | ||
|
2919b147d8 | ||
|
f514c5eafb | ||
|
2d1ce7dc24 | ||
|
026a143e42 | ||
|
9417c1803e | ||
|
6ebd64521b | ||
|
b3edc0884f | ||
|
48ce6a9a68 | ||
|
bf5f0bb8f7 | ||
|
b978fd9dc6 | ||
|
ae7f38331d | ||
|
3a21109f89 | ||
|
5d18ad678b | ||
|
2ea22ee387 | ||
|
37c7e0a6d0 | ||
|
22f7f491c5 | ||
|
60d6727974 | ||
|
86bbd05608 | ||
|
516d0f5b27 | ||
|
40d825d1c6 | ||
|
9ff92f2c36 | ||
|
740b2ffbf2 | ||
|
6728497434 | ||
|
9d2ab88c69 | ||
|
7a310cc7d9 | ||
|
20d4a86016 | ||
|
f3d3b493f7 | ||
|
448b6a7d49 | ||
|
8c9d26db1f | ||
|
e4fc9bb0b1 | ||
|
66cbf2607b | ||
|
2a90ce1935 | ||
|
b06746460e | ||
|
374a3a2005 | ||
|
84453ed957 | ||
|
8f21a055ad | ||
|
ed2f948bf5 | ||
|
5424cbd7f9 | ||
|
4ce2643bdb | ||
|
b5d1573acd | ||
|
784f0d5f3b | ||
|
c492b51b54 | ||
|
bd1c3c87b7 | ||
|
71e8f68102 | ||
|
76e1a46512 | ||
|
8467a95127 | ||
|
ae8aee0e60 | ||
|
b25fbc73d9 | ||
|
c499025623 | ||
|
91a5a73dca | ||
|
9f316bd255 | ||
|
0daf4b6b1c | ||
|
3ab6059b56 | ||
|
8e599e23a0 | ||
|
ecf6acd730 | ||
|
bb8768b604 | ||
|
1ee1dbb629 | ||
|
7d37b650a4 | ||
|
6c15f72371 | ||
|
552587dbb2 | ||
|
0602fa2316 | ||
|
9cc910cb34 | ||
|
61fa45e5de | ||
|
9cf8bd25cb | ||
|
fc89dfff9e | ||
|
84c43093b1 | ||
|
c2b0533fb8 | ||
|
513e62f61d | ||
|
2fd4dbb685 | ||
|
6f183a831c | ||
|
c543400955 | ||
|
2c4b862648 | ||
|
ddf5de8349 | ||
|
5b0d5d6b6e | ||
|
8ceff6d039 | ||
|
fb8ebe54f7 | ||
|
859ce03462 | ||
|
009efef3c9 | ||
|
ffbd1abd87 | ||
|
6e5cb747b0 | ||
|
b48d3328fe | ||
|
9da049748a | ||
|
63b7da3b60 | ||
|
72557dee52 | ||
|
2f2782ed1e | ||
|
7bc06c54c4 | ||
|
57e2a32d4c | ||
|
fa0c4ebab9 | ||
|
524156de78 | ||
|
3865bf48ff | ||
|
89b215f681 | ||
|
f315d887bb | ||
|
3d162e88c3 | ||
|
7d3ff8c7f2 | ||
|
e75a19c099 | ||
|
7925512bda | ||
|
b83538e4c5 | ||
|
d9dd8cfecf | ||
|
0d45825016 | ||
|
f6c6b13fcb | ||
|
0171263d8e | ||
|
c76fef342d | ||
|
2f245faee4 | ||
|
9c39ad3ff4 | ||
|
53d966cd64 | ||
|
bec46db5b9 | ||
|
3cddd9b58e | ||
|
a757904e8f | ||
|
937305bc41 | ||
|
7e1529c7df | ||
|
82da2e133b | ||
|
e7160c92f0 | ||
|
cbc51bc8e8 | ||
|
6738076f72 | ||
|
8afcaaddab | ||
|
a298411fa1 | ||
|
e0967e89a7 | ||
|
a0feca9711 | ||
|
c9a4f2a01a | ||
|
144dc69370 | ||
|
5e52ada169 | ||
|
2108029812 | ||
|
bcea90c896 | ||
|
6e56b79e8a | ||
|
be4afc49ff | ||
|
dba60740f6 | ||
|
0208dbf985 | ||
|
2d548a026f | ||
|
0bfb746991 | ||
|
fd8cb2a0e8 | ||
|
b3e7c01ab6 | ||
|
3d8f7ee33b | ||
|
8830354555 | ||
|
cb894cee42 | ||
|
8382b36823 | ||
|
91e0e84387 | ||
|
7ceb436021 | ||
|
2c2ee90d58 | ||
|
f95802c211 | ||
|
e9851c14f8 | ||
|
94f9a5342a | ||
|
63a0a6516c | ||
|
9db70086dd | ||
|
c37e8ae8b9 | ||
|
d6427e777c | ||
|
3f97a557a6 | ||
|
dfbde48dcf | ||
|
e769ac7941 | ||
|
8992277ce8 | ||
|
1b2819065a | ||
|
97ddf7e008 | ||
|
f67e2b9fe0 | ||
|
23caeec1cf | ||
|
202a453282 | ||
|
8013bb369a | ||
|
8536c437c4 | ||
|
9762cbf94f | ||
|
a1b994a8cd | ||
|
ef22a029b2 | ||
|
b3e3d9642e | ||
|
452f2cd086 | ||
|
e0c5c0047d | ||
|
2a1a22dffe | ||
|
67da9e0e85 | ||
|
c2c2c3f62b | ||
|
bff3c7c7af | ||
|
e2f21b3dd3 | ||
|
6c9ecf1cc8 | ||
|
4f282db6e2 | ||
|
d6e1989e1f | ||
|
4729be9e96 | ||
|
bb020c3e6b | ||
|
c22cacf9bd | ||
|
0907087ee3 | ||
|
1e985dc4f0 | ||
|
5b82ca23d3 | ||
|
2cdebe57af | ||
|
5cbe25d415 | ||
|
d764888393 | ||
|
1710a38ced | ||
|
ba75aa9d0c | ||
|
cbf98a2d7d | ||
|
7210cb8e99 | ||
|
ee3a3ef5fa | ||
|
888bc86608 | ||
|
b9b50a108b | ||
|
022b58f986 | ||
|
557160f158 | ||
|
ea5028cf2a | ||
|
4e8b104543 | ||
|
146d72468f | ||
|
f711133580 | ||
|
cd42c0e306 | ||
|
c0511d54fd | ||
|
ec3a2fa063 | ||
|
5a55891d06 | ||
|
f602f99b1a | ||
|
80708022e6 | ||
|
01cb8b3a9b | ||
|
c6fe6d49bc | ||
|
1d398ee2c3 | ||
|
812ba990ac | ||
|
5d270319e5 | ||
|
5d66d4c91f | ||
|
eefd3c0197 | ||
|
cdd9600c60 | ||
|
9ff962e86d | ||
|
5a5236760e | ||
|
62115f378a | ||
|
d88dff51fb | ||
|
3d1874adcc | ||
|
5197883379 | ||
|
cd235dfd42 | ||
|
67f1c63926 | ||
|
fb525f7cdc | ||
|
f1c178b544 | ||
|
eb754e3a84 | ||
|
0fe7972d0d | ||
|
6d55fec093 | ||
|
5a66012c6c | ||
|
3521d2e9fa | ||
|
597f001e42 | ||
|
8a8893fbd3 | ||
|
39c3a6c3e5 | ||
|
4b2c253427 | ||
|
f98653d2c9 | ||
|
c521f1d6a7 | ||
|
17104fde04 | ||
|
2f14cc832c | ||
|
585728bc23 | ||
|
22c3b7edd6 | ||
|
fa73b0b250 | ||
|
d82715372b | ||
|
084675c4f3 | ||
|
0a6421939b | ||
|
d5ca3dc132 | ||
|
adcbe0a2b1 | ||
|
556f7adab1 | ||
|
d3afd6ec68 | ||
|
fe9f5e3386 | ||
|
743d83ef71 | ||
|
76c18255b6 | ||
|
a6b1c27a5d | ||
|
783cea8d52 | ||
|
a7810bc279 | ||
|
dd7a184926 | ||
|
7cbcf4351b | ||
|
3957161124 | ||
|
fe38280a1a | ||
|
fff200b1d8 | ||
|
cc753db132 | ||
|
ec565de6cb | ||
|
fc631040fd | ||
|
615d5eaa77 | ||
|
72c4c18364 | ||
|
4c4debf004 | ||
|
7323e4467b | ||
|
c954249dfa | ||
|
f6a7fe168a | ||
|
659e1e4a26 | ||
|
632bcdd2da | ||
|
fb62d22013 | ||
|
58ea656fd8 | ||
|
a951ca4489 | ||
|
21019fac66 | ||
|
03c6ed32fb | ||
|
a55b96c9f6 | ||
|
46d0cf7bb4 | ||
|
0bc9d87891 | ||
|
3bbe0f1d4e | ||
|
55d9154b01 | ||
|
c903381154 | ||
|
0ae8710132 | ||
|
ebc4912ada | ||
|
663e611fae | ||
|
f4a1d4ef02 |
144
.appveyor.yml
144
.appveyor.yml
@@ -1,144 +0,0 @@
|
|||||||
build: false
|
|
||||||
clone_folder: c:\projects\phpbb
|
|
||||||
version: '{build}'
|
|
||||||
|
|
||||||
services:
|
|
||||||
- iis
|
|
||||||
|
|
||||||
environment:
|
|
||||||
COMPOSER_AUTH:
|
|
||||||
secure: '{"github-oauth": {"github.com": "zvq38wk7sRe87Y9W2OCYXcK7WKQDsig7GRIUDHGmxm6ZQRK8JswPbi8JoJQbFhM+"}}'
|
|
||||||
matrix:
|
|
||||||
- db: mssql
|
|
||||||
db_version: sql2012sp1
|
|
||||||
php: 7.1
|
|
||||||
- db: mssql
|
|
||||||
db_version: sql2014
|
|
||||||
php: 7.1
|
|
||||||
- db: mssql
|
|
||||||
db_version: sql2016
|
|
||||||
php: 7.2
|
|
||||||
# - db: mssql
|
|
||||||
# db_version: sql2017
|
|
||||||
# php: 7.1
|
|
||||||
# - db: mariadb
|
|
||||||
# php: 7.1
|
|
||||||
# - db: mysqli
|
|
||||||
# php: 7.1
|
|
||||||
# - db: sqlite
|
|
||||||
# php: 7.1
|
|
||||||
# - db: postgresql
|
|
||||||
# php: 7.1
|
|
||||||
|
|
||||||
hosts:
|
|
||||||
phpbb.test: 127.0.0.1
|
|
||||||
|
|
||||||
init:
|
|
||||||
- SET PATH=%systemroot%\system32\inetsrv\;C:\Program Files\OpenSSL;C:\tools\php;c:\php;%PATH%
|
|
||||||
- SET ANSICON=121x90 (121x90)
|
|
||||||
- REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v DelayedExpansion /t REG_DWORD /d 1 /f
|
|
||||||
|
|
||||||
before_test:
|
|
||||||
- ps: |
|
|
||||||
Set-Service wuauserv -StartupType Manual
|
|
||||||
choco install chocolatey -y --version 0.10.13 --allow-downgrade
|
|
||||||
choco install php -y --version ((choco search php --exact --all-versions -r | select-string -pattern $env:php | sort { [version]($_ -split '\|' | select -last 1) } -Descending | Select-Object -first 1) -replace '[php|]','')
|
|
||||||
Get-ChildItem -Path "c:\tools\php$($env:php -replace '([0-9])[.]([0-9])[.]?([0-9]+)?','$1$2')" -Recurse |
|
|
||||||
Move-Item -destination "c:\tools\php"
|
|
||||||
cd c:\tools\php
|
|
||||||
cat php.ini-development | %{$_ -replace "memory_limit = 128M","memory_limit = 1024M"} | Out-File -Encoding "Default" php.ini
|
|
||||||
Add-Content php.ini "`n date.timezone=UTC"
|
|
||||||
Add-Content php.ini "`n display_errors=On"
|
|
||||||
Add-Content php.ini "`n extension_dir=ext"
|
|
||||||
Add-Content php.ini "`n extension=php_openssl.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_mbstring.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_curl.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_gd2.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_tidy.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_fileinfo.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_pdo_sqlite.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_sqlite3.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_pdo_mysql.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_mysqli.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_pdo_pgsql.dll"
|
|
||||||
Add-Content php.ini "`n extension=php_pgsql.dll"
|
|
||||||
|
|
||||||
# Get MSSQL driver
|
|
||||||
if ($env:db -eq "mssql") {
|
|
||||||
cd c:\tools\php\ext
|
|
||||||
$DLLVersion = "5.3.0"
|
|
||||||
$VCVersion = If ([System.Version]"$($env:php)" -ge [System.Version]"7.2") {"vc15"} Else {"vc14"}
|
|
||||||
curl -o php_sqlsrv-$($DLLVersion)-$($env:php -replace '([0-9])[.]([0-9])[.]?([0-9]+)?','$1.$2')-nts-vc14-x64.zip https://windows.php.net/downloads/pecl/releases/sqlsrv/$($:DLLVersion)/php_sqlsrv-$($DLLVersion)-$($env:php -replace '([0-9])[.]([0-9])[.]?([0-9]+)?','$1.$2')-nts-$($VCVersion)-x64.zip
|
|
||||||
7z x -y php_sqlsrv-$($DLLVersion)-$($env:php -replace '([0-9])[.]([0-9])[.]?([0-9]+)?','$1.$2')-nts-vc14-x64.zip > $null
|
|
||||||
curl -o php_pdo_sqlsrv-$($DLLVersion)-$($env:php -replace '([0-9])[.]([0-9])[.]?([0-9]+)?','$1.$2')-nts-vc14-x64.zip https://windows.php.net/downloads/pecl/releases/pdo_sqlsrv/$($DLLVersion)/php_pdo_sqlsrv-$($DLLVersion)-$($env:php -replace '([0-9])[.]([0-9])[.]?([0-9]+)?','$1.$2')-nts-$($VCVersion)-x64.zip
|
|
||||||
7z x -y php_pdo_sqlsrv-$($DLLVersion)-$($env:php -replace '([0-9])[.]([0-9])[.]?([0-9]+)?','$1.$2')-nts-vc14-x64.zip > $null
|
|
||||||
Remove-Item c:\tools\php\* -include .zip
|
|
||||||
cd c:\tools\php
|
|
||||||
Add-Content php.ini "`nextension=php_sqlsrv.dll"
|
|
||||||
Add-Content php.ini "`nextension=php_pdo_sqlsrv.dll"
|
|
||||||
Add-Content php.ini "`n"
|
|
||||||
|
|
||||||
$instanceName = $env:db_version.ToUpper()
|
|
||||||
Start-Service "MSSQL`$$instanceName"
|
|
||||||
Set-Variable -Name "sqlServerPath" -Value "(local)\$($env:db_version.ToUpper())"
|
|
||||||
|
|
||||||
# Create database write test config
|
|
||||||
sqlcmd -S $sqlServerPath -Q "Use [master]; CREATE DATABASE [phpbb_test] COLLATE Latin1_General_CI_AS"
|
|
||||||
$data = "<?php`n`n`$dbms = 'phpbb\\db\\driver\\mssqlnative';`n`$dbhost = '.\\$env:db_version';`n`$dbport = '';`n`$dbname = 'phpbb_test';`n`$dbuser = 'sa';`n`$dbpasswd = 'Password12!';`n`$phpbb_functional_url = 'http://phpbb.test/';"; $data | Out-File -Encoding "Default" "c:\\projects\\phpbb\\tests\\test_config.php"
|
|
||||||
}
|
|
||||||
elseif ($env:db -eq "mysqli") {
|
|
||||||
Start-Service MySQL57
|
|
||||||
$env:MYSQL_PWD="Password12!"
|
|
||||||
$cmd = '"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql" -e "create database phpbb_test;" --user=root'
|
|
||||||
iex "& $cmd"
|
|
||||||
$data = "<?php`n`n`$dbms = 'phpbb\\db\\driver\\mysqli';`n`$dbhost = 'localhost';`n`$dbport = '';`n`$dbname = 'phpbb_test';`n`$dbuser = 'root';`n`$dbpasswd = 'Password12!';`n`$phpbb_functional_url = 'http://phpbb.test/';"; $data | Out-File -Encoding "Default" "c:\\projects\\phpbb\\tests\\test_config.php"
|
|
||||||
}
|
|
||||||
elseif ($env:db -eq "postgresql") {
|
|
||||||
Start-Service postgresql-x64-9.5
|
|
||||||
$env:PGUSER="postgres"
|
|
||||||
$env:PGPASSWORD="Password12!"
|
|
||||||
$Env:Path="C:\Program Files\PostgreSQL\9.6\bin\;$($Env:Path)"
|
|
||||||
createdb phpbb_test
|
|
||||||
$data = "<?php`n`n`$dbms = 'phpbb\\db\\driver\\postgres';`n`$dbhost = 'localhost';`n`$dbport = '';`n`$dbname = 'phpbb_test';`n`$dbuser = 'postgres';`n`$dbpasswd = 'Password12!';`n`$phpbb_functional_url = 'http://phpbb.test/';"; $data | Out-File -Encoding "Default" "c:\\projects\\phpbb\\tests\\test_config.php"
|
|
||||||
}
|
|
||||||
elseif ($env:db -eq "mariadb") {
|
|
||||||
appveyor-retry choco install mariadb -y --force
|
|
||||||
$env:MYSQL_PWD=""
|
|
||||||
$cmd = '"C:\Program Files\MariaDB 10.2\bin\mysql" -e "create database phpbb_test;" --user=root'
|
|
||||||
iex "& $cmd"
|
|
||||||
$data = "<?php`n`n`$dbms = 'phpbb\\db\\driver\\mysqli';`n`$dbhost = 'localhost';`n`$dbport = '';`n`$dbname = 'phpbb_test';`n`$dbuser = 'root';`n`$dbpasswd = '';`n`$phpbb_functional_url = 'http://phpbb.test/';"; $data | Out-File -Encoding "Default" "c:\\projects\\phpbb\\tests\\test_config.php"
|
|
||||||
}
|
|
||||||
elseif ($env:db -eq "sqlite") {
|
|
||||||
# install sqlite
|
|
||||||
appveyor-retry choco install sqlite -y
|
|
||||||
sqlite3 c:\projects\test.db "create table aTable(field1 int); drop table aTable;"
|
|
||||||
$data = "<?php`n`n`$dbms = 'phpbb\\db\\driver\\sqlite3';`n`$dbhost = 'c:\\projects\\test.db';`n`$dbport = '';`n`$dbname = '';`n`$dbuser = '';`n`$dbpasswd = '';`n`$phpbb_functional_url = 'http://phpbb.test/';"; $data | Out-File -Encoding "Default" "c:\\projects\\phpbb\\tests\\test_config.php"
|
|
||||||
}
|
|
||||||
- ps: |
|
|
||||||
cd c:\projects\phpbb\phpBB
|
|
||||||
(Get-Content c:\projects\phpbb\phpBB\web.config).replace("<configuration>", "<configuration>`n`t<system.web>`n`t`t<customErrors mode=`"Off`"/>`n`t</system.web>") | Set-Content c:\projects\phpbb\phpBB\web.config
|
|
||||||
(Get-Content c:\projects\phpbb\phpBB\web.config).replace("`t</system.webServer>", "`t`t<httpErrors errorMode=`"Detailed`" />`n`t</system.webServer>") | Set-Content c:\projects\phpbb\phpBB\web.config
|
|
||||||
- cd c:\projects\phpbb\phpBB
|
|
||||||
- php ..\composer.phar install
|
|
||||||
- choco install urlrewrite -y
|
|
||||||
- ps: New-WebSite -Name 'phpBBTest' -PhysicalPath 'c:\projects\phpbb\phpBB' -Force
|
|
||||||
- ps: Import-Module WebAdministration; Set-ItemProperty 'IIS:\Sites\phpBBTest' -name Bindings -value @{protocol='http';bindingInformation='*:80:phpbb.test'}
|
|
||||||
- echo Change default anonymous user AUTH to ApplicationPool
|
|
||||||
- appcmd set config -section:anonymousAuthentication /username:"" --password
|
|
||||||
- echo Setup FAST-CGI configuration
|
|
||||||
- appcmd set config /section:system.webServer/fastCGI /+[fullPath='C:\tools\php\php-cgi.exe']
|
|
||||||
- echo Setup FACT-CGI handler
|
|
||||||
- appcmd set config /section:system.webServer/handlers /+[name='PHP-FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='C:\tools\php\php-cgi.exe',resourceType='Either']
|
|
||||||
- iisreset
|
|
||||||
- NET START W3SVC
|
|
||||||
- mkdir "C:\projects\phpbb\phpBB\cache\test"
|
|
||||||
- mkdir "C:\projects\phpbb\phpBB\cache\installer"
|
|
||||||
- icacls "C:\projects\phpbb\phpBB\cache" /grant Users:F /T
|
|
||||||
- icacls "C:\projects\phpbb\phpBB\files" /grant Users:F /T
|
|
||||||
- icacls "C:\projects\phpbb\phpBB\store" /grant Users:F /T
|
|
||||||
- icacls "C:\projects\phpbb\phpBB\images\avatars\upload" /grant Users:F /T
|
|
||||||
|
|
||||||
test_script:
|
|
||||||
- cd c:\projects\phpbb
|
|
||||||
- php -e phpBB\vendor\phpunit\phpunit\phpunit --verbose
|
|
||||||
|
|
20
.devcontainer/Dockerfile
Normal file
20
.devcontainer/Dockerfile
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Debian version
|
||||||
|
ARG VARIANT="buster"
|
||||||
|
FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT}
|
||||||
|
|
||||||
|
# Install PHP
|
||||||
|
RUN apt-get -y update
|
||||||
|
RUN apt-get -y install php php-xml php-mbstring php-curl php-zip php-xdebug
|
||||||
|
|
||||||
|
# Install Composer
|
||||||
|
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||||
|
|
||||||
|
# Install MySQL
|
||||||
|
RUN apt-get -y install mysql-server php-mysql
|
||||||
|
|
||||||
|
# Xdebug
|
||||||
|
ADD resources/xdebug.ini /etc/php/8.1/apache2/conf.d/xdebug.ini
|
||||||
|
|
||||||
|
# Configure Apache
|
||||||
|
RUN echo "Listen 8080" >> /etc/apache2/ports.conf && \
|
||||||
|
a2enmod rewrite
|
37
.devcontainer/devcontainer.json
Normal file
37
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||||
|
// https://github.com/microsoft/vscode-dev-containers/tree/v0.238.1/containers/ubuntu
|
||||||
|
{
|
||||||
|
"name": "Ubuntu",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "Dockerfile",
|
||||||
|
// Update 'VARIANT' to pick an Ubuntu version: jammy / ubuntu-22.04, focal / ubuntu-20.04, bionic /ubuntu-18.04
|
||||||
|
// Use ubuntu-22.04 or ubuntu-18.04 on local arm64/Apple Silicon.
|
||||||
|
"args": { "VARIANT": "ubuntu-22.04" }
|
||||||
|
},
|
||||||
|
|
||||||
|
// Configure tool-specific properties.
|
||||||
|
"customizations": {
|
||||||
|
// Configure properties specific to VS Code.
|
||||||
|
"vscode": {
|
||||||
|
"settings": {
|
||||||
|
// Allow Xdebug to listen to requests from remote (or container)
|
||||||
|
"remote.localPortHost": "allInterfaces"
|
||||||
|
},
|
||||||
|
//"devPort": {},
|
||||||
|
// Specify which VS Code extensions to install (List of IDs)
|
||||||
|
"extensions": ["xdebug.php-debug"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||||
|
"forwardPorts": [80, 9003],
|
||||||
|
|
||||||
|
// Use 'postCreateCommand' to run commands after the container is created.
|
||||||
|
"postStartCommand": "bash .devcontainer/resources/setup.sh",
|
||||||
|
|
||||||
|
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
||||||
|
"remoteUser": "vscode",
|
||||||
|
"features": {
|
||||||
|
"github-cli": "latest"
|
||||||
|
}
|
||||||
|
}
|
38
.devcontainer/resources/phpbb-config.yml
Normal file
38
.devcontainer/resources/phpbb-config.yml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
installer:
|
||||||
|
admin:
|
||||||
|
name: admin
|
||||||
|
password: adminadmin
|
||||||
|
email: admin@example.org
|
||||||
|
|
||||||
|
board:
|
||||||
|
lang: en
|
||||||
|
name: My Board
|
||||||
|
description: My amazing new phpBB board
|
||||||
|
|
||||||
|
database:
|
||||||
|
dbms: mysqli
|
||||||
|
dbhost: 127.0.0.1
|
||||||
|
dbport: 3306
|
||||||
|
dbuser: phpbb
|
||||||
|
dbpasswd: phpbb
|
||||||
|
dbname: phpbb
|
||||||
|
table_prefix: phpbb_
|
||||||
|
|
||||||
|
email:
|
||||||
|
enabled: false
|
||||||
|
smtp_delivery : ~
|
||||||
|
smtp_host: ~
|
||||||
|
smtp_port: ~
|
||||||
|
smtp_auth: ~
|
||||||
|
smtp_user: ~
|
||||||
|
smtp_pass: ~
|
||||||
|
|
||||||
|
server:
|
||||||
|
cookie_secure: false
|
||||||
|
server_protocol: http://
|
||||||
|
force_server_vars: false
|
||||||
|
server_name: localhost
|
||||||
|
server_port: 80
|
||||||
|
script_path: /
|
||||||
|
|
||||||
|
extensions: []
|
44
.devcontainer/resources/setup.sh
Normal file
44
.devcontainer/resources/setup.sh
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# setup.sh
|
||||||
|
# Commands to install and configure phpBB
|
||||||
|
|
||||||
|
# Start MySQL
|
||||||
|
echo "[Codespaces] Start MySQL"
|
||||||
|
sudo service mysql start
|
||||||
|
|
||||||
|
# Start Apache
|
||||||
|
echo "[Codespaces] Start Apache"
|
||||||
|
sudo service apache2 start
|
||||||
|
|
||||||
|
# Add SSH key
|
||||||
|
echo "[Codespaces] Add SSH key"
|
||||||
|
echo "$SSH_KEY" > /home/vscode/.ssh/id_rsa && chmod 600 /home/vscode/.ssh/id_rsa
|
||||||
|
|
||||||
|
# Create a MySQL user to use
|
||||||
|
echo "[Codespaces] Create MySQL user"
|
||||||
|
sudo mysql -u root<<EOFMYSQL
|
||||||
|
CREATE USER 'phpbb'@'localhost' IDENTIFIED BY 'phpbb';
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO 'phpbb'@'localhost' WITH GRANT OPTION;
|
||||||
|
CREATE DATABASE IF NOT EXISTS phpbb;
|
||||||
|
EOFMYSQL
|
||||||
|
|
||||||
|
# Download dependencies
|
||||||
|
echo "[Codespaces] Install Composer dependencies"
|
||||||
|
composer install --no-interaction
|
||||||
|
|
||||||
|
# Symlink the webroot so it can be viewed
|
||||||
|
echo "[Codespaces] Create Symlink of webroot"
|
||||||
|
sudo rm -rf /var/www/html
|
||||||
|
sudo ln -s /workspaces/phpbb/phpBB /var/www/html
|
||||||
|
|
||||||
|
# Copy phpBB config
|
||||||
|
echo "[Codespaces] Copy phpBB configuration"
|
||||||
|
cp /workspaces/phpbb/.devcontainer/resources/phpbb-config.yml /workspaces/phpbb/phpBB/install/install-config.yml
|
||||||
|
|
||||||
|
# Install phpBB
|
||||||
|
echo "[Codespaces] Run phpBB CLI installation"
|
||||||
|
cd /workspaces/phpbb/phpBB && composer install --no-interaction
|
||||||
|
sudo php /workspaces/phpbb/phpBB/install/phpbbcli.php install /workspaces/phpbb/phpBB/install/install-config.yml
|
||||||
|
rm -rf /workspaces/phpbb/phpBB/install
|
||||||
|
|
||||||
|
# Finished
|
||||||
|
echo "[Codespaces] phpBB installation completed"
|
10
.devcontainer/resources/xdebug.ini
Normal file
10
.devcontainer/resources/xdebug.ini
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
zend_extension=xdebug.so
|
||||||
|
|
||||||
|
[xdebug]
|
||||||
|
xdebug.mode=develop,debug
|
||||||
|
xdebug.discover_client_host=1
|
||||||
|
xdebug.client_port=9003
|
||||||
|
xdebug.start_with_request=yes
|
||||||
|
xdebug.log='/var/log/xdebug/xdebug.log'
|
||||||
|
xdebug.connect_timeout_ms=2000
|
||||||
|
xdebug.idekey=VSCODE
|
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,10 +1,10 @@
|
|||||||
Checklist:
|
Checklist:
|
||||||
|
|
||||||
- [ ] Correct branch: master for new features; 3.3.x & 3.2.x for fixes
|
- [ ] Correct branch: master for new features; 3.3.x for fixes
|
||||||
- [ ] Tests pass
|
- [ ] Tests pass
|
||||||
- [ ] Code follows coding guidelines: [master](https://area51.phpbb.com/docs/dev/master/development/coding_guidelines.html), [3.3.x](https://area51.phpbb.com/docs/dev/3.3.x/development/coding_guidelines.html) and [3.2.x](https://area51.phpbb.com/docs/dev/3.2.x/development/coding_guidelines.html)
|
- [ ] Code follows coding guidelines: [master](https://area51.phpbb.com/docs/master/coding-guidelines.html) and [3.3.x](https://area51.phpbb.com/docs/dev/3.3.x/development/coding_guidelines.html)
|
||||||
- [ ] Commit follows commit message [format](https://area51.phpbb.com/docs/dev/3.3.x/development/git.html)
|
- [ ] Commit follows commit message [format](https://area51.phpbb.com/docs/dev/3.3.x/development/git.html)
|
||||||
|
|
||||||
Tracker ticket (set the ticket ID to **your ticket ID**):
|
Tracker ticket:
|
||||||
|
|
||||||
https://tracker.phpbb.com/browse/PHPBB3-12345
|
https://tracker.phpbb.com/browse/PHPBB3-12345
|
||||||
|
27
.github/check-doctum-parse-errors.sh
vendored
Executable file
27
.github/check-doctum-parse-errors.sh
vendored
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ ! -f doctum.phar ]; then
|
||||||
|
# Download the latest (5.x.x) release if the file does not exist
|
||||||
|
# Remove it to update your phar
|
||||||
|
curl -O https://doctum.long-term.support/releases/5/doctum.phar
|
||||||
|
rm -f doctum.phar.sha256
|
||||||
|
curl -O https://doctum.long-term.support/releases/5/doctum.phar.sha256
|
||||||
|
sha256sum --strict --check doctum.phar.sha256
|
||||||
|
rm -f doctum.phar.sha256
|
||||||
|
chmod +x ./doctum.phar
|
||||||
|
# You can fetch the latest (5.x.x) version code here:
|
||||||
|
# https://doctum.long-term.support/releases/5/VERSION
|
||||||
|
fi
|
||||||
|
# Show the version to inform users of the script
|
||||||
|
./doctum.phar version --text
|
||||||
|
./doctum.phar parse build/doctum-checkout.conf.php -v
|
63
.github/check-executable-files.sh
vendored
Executable file
63
.github/check-executable-files.sh
vendored
Executable file
@@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
|
||||||
|
root="$1"
|
||||||
|
path="${root}phpBB/"
|
||||||
|
|
||||||
|
# Check the permissions of the files
|
||||||
|
|
||||||
|
# The following variables MUST NOT contain any wildcard
|
||||||
|
# Directories to skip
|
||||||
|
directories_skipped="-path ${path}develop -o -path ${path}vendor"
|
||||||
|
|
||||||
|
# Files to skip
|
||||||
|
files_skipped="-false"
|
||||||
|
|
||||||
|
# Files which have to be executable
|
||||||
|
executable_files="-path ${path}bin/* -o -path ${path}install/phpbbcli.php"
|
||||||
|
|
||||||
|
incorrect_files=$( \
|
||||||
|
find ${path} \
|
||||||
|
'(' \
|
||||||
|
'(' \
|
||||||
|
${directories_skipped} \
|
||||||
|
')' \
|
||||||
|
-a -type d -prune -a -type f \
|
||||||
|
')' -o \
|
||||||
|
'(' \
|
||||||
|
-type f -a \
|
||||||
|
-not '(' \
|
||||||
|
${files_skipped} \
|
||||||
|
')' -a \
|
||||||
|
'(' \
|
||||||
|
'(' \
|
||||||
|
'(' \
|
||||||
|
${executable_files} \
|
||||||
|
')' -a \
|
||||||
|
-not -perm /100 \
|
||||||
|
')' -o \
|
||||||
|
'(' \
|
||||||
|
-not '(' \
|
||||||
|
${executable_files} \
|
||||||
|
')' -a \
|
||||||
|
-perm /111 \
|
||||||
|
')' \
|
||||||
|
')' \
|
||||||
|
')' \
|
||||||
|
)
|
||||||
|
|
||||||
|
if [ "${incorrect_files}" != '' ]
|
||||||
|
then
|
||||||
|
echo "The following files do not have proper permissions:";
|
||||||
|
ls -la ${incorrect_files}
|
||||||
|
exit 1;
|
||||||
|
fi
|
14
.github/check-image-icc-profiles.sh
vendored
Executable file
14
.github/check-image-icc-profiles.sh
vendored
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
|
||||||
|
find . -type f -a -iregex '.*\.\(gif\|jpg\|jpeg\|png\)$' -a -not -wholename '*vendor/*' | \
|
||||||
|
parallel --gnu --keep-order 'phpBB/develop/strip_icc_profiles.sh {}'
|
64
.github/ext-check-executable-files.sh
vendored
Executable file
64
.github/ext-check-executable-files.sh
vendored
Executable file
@@ -0,0 +1,64 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
|
||||||
|
root="$1"
|
||||||
|
extname="$2"
|
||||||
|
path="${root}phpBB/ext/${extname}/"
|
||||||
|
|
||||||
|
# Check the permissions of the files
|
||||||
|
|
||||||
|
# The following variables MUST NOT contain any wildcard
|
||||||
|
# Directories to skip
|
||||||
|
directories_skipped="-path ${path}develop -o -path ${path}vendor -o -path ${path}.git"
|
||||||
|
|
||||||
|
# Files to skip
|
||||||
|
files_skipped="-false"
|
||||||
|
|
||||||
|
# Files which have to be executable
|
||||||
|
executable_files="-path ${path}bin/* -o -path ${path}install/phpbbcli.php"
|
||||||
|
|
||||||
|
incorrect_files=$( \
|
||||||
|
find ${path} \
|
||||||
|
'(' \
|
||||||
|
'(' \
|
||||||
|
${directories_skipped} \
|
||||||
|
')' \
|
||||||
|
-a -type d -prune -a -type f \
|
||||||
|
')' -o \
|
||||||
|
'(' \
|
||||||
|
-type f -a \
|
||||||
|
-not '(' \
|
||||||
|
${files_skipped} \
|
||||||
|
')' -a \
|
||||||
|
'(' \
|
||||||
|
'(' \
|
||||||
|
'(' \
|
||||||
|
${executable_files} \
|
||||||
|
')' -a \
|
||||||
|
-not -perm /100 \
|
||||||
|
')' -o \
|
||||||
|
'(' \
|
||||||
|
-not '(' \
|
||||||
|
${executable_files} \
|
||||||
|
')' -a \
|
||||||
|
-perm /111 \
|
||||||
|
')' \
|
||||||
|
')' \
|
||||||
|
')' \
|
||||||
|
)
|
||||||
|
|
||||||
|
if [ "${incorrect_files}" != '' ]
|
||||||
|
then
|
||||||
|
echo "The following files do not have proper permissions:";
|
||||||
|
ls -la ${incorrect_files}
|
||||||
|
exit 1;
|
||||||
|
fi
|
25
.github/ext-sniff.sh
vendored
Executable file
25
.github/ext-sniff.sh
vendored
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
EXTNAME=$1
|
||||||
|
NOTESTS=$2
|
||||||
|
|
||||||
|
if [ "$NOTESTS" == "1" ]
|
||||||
|
then
|
||||||
|
phpBB/vendor/bin/phpcs \
|
||||||
|
-s \
|
||||||
|
--extensions=php \
|
||||||
|
--standard=build/code_sniffer/ruleset-php-extensions.xml \
|
||||||
|
--ignore=*/"$EXTNAME"/tests/*,*/"$EXTNAME"/vendor/* \
|
||||||
|
phpBB/ext/"$EXTNAME"
|
||||||
|
fi
|
41
.github/ldap/base.ldif
vendored
Normal file
41
.github/ldap/base.ldif
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
dn: dc=example,dc=com
|
||||||
|
objectClass: top
|
||||||
|
objectClass: dcObject
|
||||||
|
objectClass: organization
|
||||||
|
o: example
|
||||||
|
dc: example
|
||||||
|
|
||||||
|
dn: ou=foo,dc=example,dc=com
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
ou: foo
|
||||||
|
|
||||||
|
dn: cn=admin,dc=example,dc=com
|
||||||
|
objectClass: simpleSecurityObject
|
||||||
|
objectClass: organizationalRole
|
||||||
|
cn: admin
|
||||||
|
description: LDAP administrator
|
||||||
|
userPassword:: e1NTSEF9NytMR2gveUxTMzdsc3RRd1V1dENZSVA0TWdYdm9SdDY=
|
||||||
|
|
||||||
|
dn: ou=group,dc=example,dc=com
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
ou: group
|
||||||
|
|
||||||
|
dn: cn=admin,ou=foo,dc=example,dc=com
|
||||||
|
objectClass: posixAccount
|
||||||
|
objectClass: inetOrgPerson
|
||||||
|
objectClass: organizationalPerson
|
||||||
|
objectClass: person
|
||||||
|
loginShell: /bin/bash
|
||||||
|
homeDirectory: /home/admin
|
||||||
|
uid: admin
|
||||||
|
cn: admin
|
||||||
|
uidNumber: 10000
|
||||||
|
gidNumber: 10000
|
||||||
|
sn: admin
|
||||||
|
mail: admin@example.com
|
||||||
|
userPassword:: e1NTSEF9WHpueGZURHZZc21JSkl6czdMVXBjdCtWYTA1dlMzVlQ=
|
||||||
|
|
||||||
|
dn: cn=admin,ou=group,dc=example,dc=com
|
||||||
|
objectClass: posixGroup
|
||||||
|
gidNumber: 10000
|
||||||
|
cn: admin
|
17
.github/ldap/slapd.conf
vendored
Normal file
17
.github/ldap/slapd.conf
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# See slapd.conf(5) for details on configuration options.
|
||||||
|
include /etc/ldap/schema/core.schema
|
||||||
|
include /etc/ldap/schema/cosine.schema
|
||||||
|
include /etc/ldap/schema/inetorgperson.schema
|
||||||
|
include /etc/ldap/schema/nis.schema
|
||||||
|
|
||||||
|
pidfile /var/tmp/slapd/slapd.pid
|
||||||
|
argsfile /var/tmp/slapd/slapd.args
|
||||||
|
|
||||||
|
modulepath /usr/lib/openldap
|
||||||
|
|
||||||
|
database ldif
|
||||||
|
directory /var/tmp/slapd
|
||||||
|
|
||||||
|
suffix "dc=example,dc=com"
|
||||||
|
rootdn "cn=admin,dc=example,dc=com"
|
||||||
|
rootpw adminadmin
|
16
.github/phing-sniff.sh
vendored
Executable file
16
.github/phing-sniff.sh
vendored
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
cd build
|
||||||
|
../phpBB/vendor/bin/phing sniff
|
||||||
|
cd ..
|
39
.github/phpunit-mariadb-github.xml
vendored
Normal file
39
.github/phpunit-mariadb-github.xml
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<phpunit backupGlobals="true"
|
||||||
|
backupStaticAttributes="false"
|
||||||
|
colors="true"
|
||||||
|
convertErrorsToExceptions="true"
|
||||||
|
convertNoticesToExceptions="true"
|
||||||
|
convertWarningsToExceptions="true"
|
||||||
|
processIsolation="false"
|
||||||
|
stopOnFailure="false"
|
||||||
|
verbose="true"
|
||||||
|
bootstrap="../tests/bootstrap.php">
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="phpBB Test Suite">
|
||||||
|
<directory suffix="_test.php">../tests</directory>
|
||||||
|
<exclude>../tests/functional</exclude>
|
||||||
|
<exclude>../tests/lint_test.php</exclude>
|
||||||
|
</testsuite>
|
||||||
|
<testsuite name="phpBB Functional Tests">
|
||||||
|
<directory suffix="_test.php">../tests/functional</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
|
||||||
|
<groups>
|
||||||
|
<exclude>
|
||||||
|
<group>slow</group>
|
||||||
|
</exclude>
|
||||||
|
</groups>
|
||||||
|
|
||||||
|
<php>
|
||||||
|
<server name="PHPBB_TEST_DBMS" value="mysqli" />
|
||||||
|
<server name="PHPBB_TEST_DBHOST" value="0.0.0.0" />
|
||||||
|
<server name="PHPBB_TEST_DBPORT" value="3306" />
|
||||||
|
<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
|
||||||
|
<server name="PHPBB_TEST_DBUSER" value="root" />
|
||||||
|
<server name="PHPBB_TEST_DBPASSWD" value="" />
|
||||||
|
<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
|
||||||
|
<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
|
||||||
|
</php>
|
||||||
|
</phpunit>
|
41
.github/phpunit-mssql-github.xml
vendored
Normal file
41
.github/phpunit-mssql-github.xml
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<phpunit backupGlobals="true"
|
||||||
|
backupStaticAttributes="false"
|
||||||
|
colors="true"
|
||||||
|
convertErrorsToExceptions="true"
|
||||||
|
convertNoticesToExceptions="true"
|
||||||
|
convertWarningsToExceptions="true"
|
||||||
|
processIsolation="false"
|
||||||
|
stopOnFailure="false"
|
||||||
|
verbose="true"
|
||||||
|
bootstrap="../tests/bootstrap.php">
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="phpBB Test Suite">
|
||||||
|
<directory suffix="_test.php">../tests</directory>
|
||||||
|
<exclude>../tests/functional</exclude>
|
||||||
|
<exclude>../tests/lint_test.php</exclude>
|
||||||
|
</testsuite>
|
||||||
|
<testsuite name="phpBB Functional Tests">
|
||||||
|
<directory suffix="_test.php">../tests/functional</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
|
||||||
|
<groups>
|
||||||
|
<exclude>
|
||||||
|
<group>slow</group>
|
||||||
|
</exclude>
|
||||||
|
</groups>
|
||||||
|
|
||||||
|
<php>
|
||||||
|
<server name="PHPBB_TEST_DBMS" value="phpbb\db\driver\mssqlnative" />
|
||||||
|
<server name="PHPBB_TEST_DBHOST" value="127.0.0.1" />
|
||||||
|
<server name="PHPBB_TEST_DBPORT" value="" />
|
||||||
|
<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
|
||||||
|
<server name="PHPBB_TEST_DBUSER" value="sa" />
|
||||||
|
<server name="PHPBB_TEST_DBPASSWD" value="Pssw0rd_12" />
|
||||||
|
<server name="PHPBB_TEST_REDIS_HOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_MEMCACHED_HOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
|
||||||
|
<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
|
||||||
|
</php>
|
||||||
|
</phpunit>
|
41
.github/phpunit-mysql-github.xml
vendored
Normal file
41
.github/phpunit-mysql-github.xml
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<phpunit backupGlobals="true"
|
||||||
|
backupStaticAttributes="false"
|
||||||
|
colors="true"
|
||||||
|
convertErrorsToExceptions="true"
|
||||||
|
convertNoticesToExceptions="true"
|
||||||
|
convertWarningsToExceptions="true"
|
||||||
|
processIsolation="false"
|
||||||
|
stopOnFailure="false"
|
||||||
|
verbose="true"
|
||||||
|
bootstrap="../tests/bootstrap.php">
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="phpBB Test Suite">
|
||||||
|
<directory suffix="_test.php">../tests</directory>
|
||||||
|
<exclude>../tests/functional</exclude>
|
||||||
|
<exclude>../tests/lint_test.php</exclude>
|
||||||
|
</testsuite>
|
||||||
|
<testsuite name="phpBB Functional Tests">
|
||||||
|
<directory suffix="_test.php">../tests/functional</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
|
||||||
|
<groups>
|
||||||
|
<exclude>
|
||||||
|
<group>slow</group>
|
||||||
|
</exclude>
|
||||||
|
</groups>
|
||||||
|
|
||||||
|
<php>
|
||||||
|
<server name="PHPBB_TEST_DBMS" value="phpbb\db\driver\mysqli" />
|
||||||
|
<server name="PHPBB_TEST_DBHOST" value="0.0.0.0" />
|
||||||
|
<server name="PHPBB_TEST_DBPORT" value="3306" />
|
||||||
|
<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
|
||||||
|
<server name="PHPBB_TEST_DBUSER" value="root" />
|
||||||
|
<server name="PHPBB_TEST_DBPASSWD" value="" />
|
||||||
|
<server name="PHPBB_TEST_REDIS_HOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_MEMCACHED_HOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
|
||||||
|
<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
|
||||||
|
</php>
|
||||||
|
</phpunit>
|
41
.github/phpunit-postgres-github.xml
vendored
Normal file
41
.github/phpunit-postgres-github.xml
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<phpunit backupGlobals="true"
|
||||||
|
backupStaticAttributes="false"
|
||||||
|
colors="true"
|
||||||
|
convertErrorsToExceptions="true"
|
||||||
|
convertNoticesToExceptions="true"
|
||||||
|
convertWarningsToExceptions="true"
|
||||||
|
processIsolation="false"
|
||||||
|
stopOnFailure="false"
|
||||||
|
verbose="true"
|
||||||
|
bootstrap="../tests/bootstrap.php">
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="phpBB Test Suite">
|
||||||
|
<directory suffix="_test.php">../tests</directory>
|
||||||
|
<exclude>../tests/functional</exclude>
|
||||||
|
<exclude>../tests/lint_test.php</exclude>
|
||||||
|
</testsuite>
|
||||||
|
<testsuite name="phpBB Functional Tests">
|
||||||
|
<directory suffix="_test.php">../tests/functional</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
|
||||||
|
<groups>
|
||||||
|
<exclude>
|
||||||
|
<group>slow</group>
|
||||||
|
</exclude>
|
||||||
|
</groups>
|
||||||
|
|
||||||
|
<php>
|
||||||
|
<server name="PHPBB_TEST_DBMS" value="phpbb\db\driver\postgres"/>
|
||||||
|
<server name="PHPBB_TEST_DBHOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_DBPORT" value="5432" />
|
||||||
|
<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
|
||||||
|
<server name="PHPBB_TEST_DBUSER" value="postgres" />
|
||||||
|
<server name="PHPBB_TEST_DBPASSWD" value="postgres" />
|
||||||
|
<server name="PHPBB_TEST_REDIS_HOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_MEMCACHED_HOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
|
||||||
|
<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
|
||||||
|
</php>
|
||||||
|
</phpunit>
|
41
.github/phpunit-psql-windows-github.xml
vendored
Normal file
41
.github/phpunit-psql-windows-github.xml
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<phpunit backupGlobals="true"
|
||||||
|
backupStaticAttributes="false"
|
||||||
|
colors="true"
|
||||||
|
convertErrorsToExceptions="true"
|
||||||
|
convertNoticesToExceptions="true"
|
||||||
|
convertWarningsToExceptions="true"
|
||||||
|
processIsolation="false"
|
||||||
|
stopOnFailure="false"
|
||||||
|
verbose="true"
|
||||||
|
bootstrap="../tests/bootstrap.php">
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="phpBB Test Suite">
|
||||||
|
<directory suffix="_test.php">../tests</directory>
|
||||||
|
<exclude>../tests/functional</exclude>
|
||||||
|
<exclude>../tests/lint_test.php</exclude>
|
||||||
|
</testsuite>
|
||||||
|
<testsuite name="phpBB Functional Tests">
|
||||||
|
<directory suffix="_test.php">../tests/functional</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
|
||||||
|
<groups>
|
||||||
|
<exclude>
|
||||||
|
<group>slow</group>
|
||||||
|
</exclude>
|
||||||
|
</groups>
|
||||||
|
|
||||||
|
<php>
|
||||||
|
<server name="PHPBB_TEST_DBMS" value="phpbb\db\driver\postgres"/>
|
||||||
|
<server name="PHPBB_TEST_DBHOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_DBPORT" value="5432" />
|
||||||
|
<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
|
||||||
|
<server name="PHPBB_TEST_DBUSER" value="postgres" />
|
||||||
|
<server name="PHPBB_TEST_DBPASSWD" value="root" />
|
||||||
|
<server name="PHPBB_TEST_REDIS_HOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_MEMCACHED_HOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
|
||||||
|
<server name="PHPBB_FUNCTIONAL_URL" value="http://phpbb.test/" />
|
||||||
|
</php>
|
||||||
|
</phpunit>
|
35
.github/phpunit-sqlite3-github.xml
vendored
Normal file
35
.github/phpunit-sqlite3-github.xml
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<phpunit backupGlobals="true"
|
||||||
|
backupStaticAttributes="false"
|
||||||
|
colors="true"
|
||||||
|
convertErrorsToExceptions="true"
|
||||||
|
convertNoticesToExceptions="true"
|
||||||
|
convertWarningsToExceptions="true"
|
||||||
|
processIsolation="false"
|
||||||
|
stopOnFailure="false"
|
||||||
|
verbose="true"
|
||||||
|
bootstrap="../tests/bootstrap.php">
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="phpBB Test Suite">
|
||||||
|
<directory suffix="_test.php">../tests</directory>
|
||||||
|
<exclude>../tests/functional</exclude>
|
||||||
|
<exclude>../tests/lint_test.php</exclude>
|
||||||
|
</testsuite>
|
||||||
|
<testsuite name="phpBB Functional Tests">
|
||||||
|
<directory suffix="_test.php">../tests/functional</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
|
||||||
|
<groups>
|
||||||
|
<exclude>
|
||||||
|
<group>slow</group>
|
||||||
|
</exclude>
|
||||||
|
</groups>
|
||||||
|
|
||||||
|
<php>
|
||||||
|
<server name="PHPBB_TEST_REDIS_HOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_MEMCACHED_HOST" value="localhost" />
|
||||||
|
<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
|
||||||
|
<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
|
||||||
|
</php>
|
||||||
|
</phpunit>
|
22
.github/prepare-extension.sh
vendored
Executable file
22
.github/prepare-extension.sh
vendored
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
EXTNAME=$1
|
||||||
|
|
||||||
|
# Move the extension in place
|
||||||
|
mkdir --parents phpBB/ext/$EXTNAME
|
||||||
|
cp -R ../tmp/* phpBB/ext/$EXTNAME
|
||||||
|
|
||||||
|
# Move the test files for extensions in place
|
||||||
|
cp -R .github/*.xml phpBB/ext/$EXTNAME/.github
|
||||||
|
cp -R .github/*.sh phpBB/ext/$EXTNAME/.github
|
26
.github/setup-database.sh
vendored
Executable file
26
.github/setup-database.sh
vendored
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
DB=$1
|
||||||
|
MYISAM=$2
|
||||||
|
|
||||||
|
if [ "$DB" == "postgres" ]
|
||||||
|
then
|
||||||
|
psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres
|
||||||
|
psql -c 'create database phpbb_tests;' -U postgres
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$MYISAM" == '1' ]
|
||||||
|
then
|
||||||
|
mysql -h 127.0.0.1 -u root -e 'SET GLOBAL storage_engine=MyISAM;'
|
||||||
|
fi
|
14
.github/setup-exiftool.sh
vendored
Executable file
14
.github/setup-exiftool.sh
vendored
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y parallel libimage-exiftool-perl
|
19
.github/setup-ldap.sh
vendored
Executable file
19
.github/setup-ldap.sh
vendored
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
sudo apt-get -y install ldap-utils slapd
|
||||||
|
mkdir /var/tmp/slapd
|
||||||
|
cp .github/ldap/slapd.conf /var/tmp/slapd/slapd.conf
|
||||||
|
slapd -d 256 -d 128 -f /var/tmp/slapd/slapd.conf -h ldap://localhost:3389 &
|
||||||
|
sleep 3
|
||||||
|
ldapadd -h localhost:3389 -D "cn=admin,dc=example,dc=com" -w adminadmin -f .github/ldap/base.ldif
|
36
.github/setup-phpbb.sh
vendored
Executable file
36
.github/setup-phpbb.sh
vendored
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
DB=$1
|
||||||
|
PHP_VERSION=$2
|
||||||
|
NOTESTS=$3
|
||||||
|
|
||||||
|
if [ "$NOTESTS" == '1' ]
|
||||||
|
then
|
||||||
|
.github/setup-exiftool.sh
|
||||||
|
.github/setup-unbuffer.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$NOTESTS" != '1' ]
|
||||||
|
then
|
||||||
|
.github/setup-webserver.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd phpBB
|
||||||
|
php ../composer.phar install --dev --no-interaction
|
||||||
|
if [[ "$PHP_VERSION" =~ ^nightly$ || "$PHP_VERSION" =~ ^8 ]]
|
||||||
|
then
|
||||||
|
php ../composer.phar remove phpunit/dbunit --dev --update-with-dependencies \
|
||||||
|
&& php ../composer.phar require symfony/yaml:~4.4 misantron/dbunit:~5.0 phpunit/phpunit:^9.3 doctrine/instantiator:^1.4 --dev --update-with-all-dependencies --ignore-platform-reqs
|
||||||
|
fi
|
||||||
|
cd ..
|
14
.github/setup-unbuffer.sh
vendored
Executable file
14
.github/setup-unbuffer.sh
vendored
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y expect-dev
|
81
.github/setup-webserver.sh
vendored
Executable file
81
.github/setup-webserver.sh
vendored
Executable file
@@ -0,0 +1,81 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y nginx coreutils
|
||||||
|
|
||||||
|
sudo service nginx stop
|
||||||
|
|
||||||
|
DIR=$(dirname "$0")
|
||||||
|
USER=$(whoami)
|
||||||
|
PHPBB_ROOT_PATH=$(realpath "$DIR/../phpBB")
|
||||||
|
NGINX_SITE_CONF="/etc/nginx/sites-enabled/default"
|
||||||
|
NGINX_CONF="/etc/nginx/nginx.conf"
|
||||||
|
APP_SOCK=$(realpath "$DIR")/php-app.sock
|
||||||
|
NGINX_PHP_CONF="$DIR/nginx-php.conf"
|
||||||
|
|
||||||
|
# php-fpm
|
||||||
|
PHP_FPM_BIN="/usr/sbin/php-fpm$PHP_VERSION"
|
||||||
|
PHP_FPM_CONF="$DIR/php-fpm.conf"
|
||||||
|
|
||||||
|
if [ ! -f $PHP_FPM_BIN ] && [ -f "/usr/bin/php-fpm" ]
|
||||||
|
then
|
||||||
|
PHP_FPM_BIN="/usr/bin/php-fpm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f $PHP_FPM_BIN ]
|
||||||
|
then
|
||||||
|
sudo apt-get install php$PHP_VERSION-fpm php$PHP_VERSION-cli \
|
||||||
|
php$PHP_VERSION-curl php$PHP_VERSION-xml php$PHP_VERSION-mbstring \
|
||||||
|
php$PHP_VERSION-zip php$PHP_VERSION-mysql php$PHP_VERSION-sqlite3 \
|
||||||
|
php$PHP_VERSION-intl php$PHP_VERSION-gd php$PHP_VERSION-pgsql
|
||||||
|
sudo service php$PHP_VERSION-fpm start
|
||||||
|
sudo service php$PHP_VERSION-fpm status
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "
|
||||||
|
[global]
|
||||||
|
|
||||||
|
[ci]
|
||||||
|
user = $USER
|
||||||
|
group = $USER
|
||||||
|
listen = $APP_SOCK
|
||||||
|
listen.mode = 0666
|
||||||
|
pm = static
|
||||||
|
pm.max_children = 2
|
||||||
|
|
||||||
|
php_admin_value[memory_limit] = 128M
|
||||||
|
" > $PHP_FPM_CONF
|
||||||
|
|
||||||
|
sudo $PHP_FPM_BIN \
|
||||||
|
--fpm-config "$DIR/php-fpm.conf"
|
||||||
|
|
||||||
|
# nginx
|
||||||
|
sudo sed -i "s/user www-data;/user $USER;/g" $NGINX_CONF
|
||||||
|
sudo cp "$DIR/../phpBB/docs/nginx.sample.conf" "$NGINX_SITE_CONF"
|
||||||
|
sudo sed -i \
|
||||||
|
-e "s/example\.com/localhost/g" \
|
||||||
|
-e "s|root /path/to/phpbb;|root $PHPBB_ROOT_PATH;|g" \
|
||||||
|
$NGINX_SITE_CONF
|
||||||
|
|
||||||
|
# Generate FastCGI configuration for Nginx
|
||||||
|
echo "
|
||||||
|
upstream php {
|
||||||
|
server unix:$APP_SOCK;
|
||||||
|
}
|
||||||
|
" > $NGINX_PHP_CONF
|
||||||
|
|
||||||
|
sudo mv "$NGINX_PHP_CONF" /etc/nginx/conf.d/php.conf
|
||||||
|
|
||||||
|
sudo nginx -T
|
||||||
|
sudo service nginx start
|
578
.github/workflows/tests.yml
vendored
Normal file
578
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,578 @@
|
|||||||
|
name: Tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- 3.3.x
|
||||||
|
- master
|
||||||
|
- 'prep-release-*'
|
||||||
|
tags:
|
||||||
|
- 'release-*'
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- 3.3.x
|
||||||
|
- master
|
||||||
|
- 'prep-release-*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Basic checks, e.g. parse errors, commit messages, etc.
|
||||||
|
basic-checks:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- db: 'none'
|
||||||
|
php: '7.2'
|
||||||
|
NOTESTS: 1
|
||||||
|
|
||||||
|
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 100
|
||||||
|
|
||||||
|
- name: Setup PHP
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php }}
|
||||||
|
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap
|
||||||
|
coverage: none
|
||||||
|
|
||||||
|
- name: Get Composer Cache Directory
|
||||||
|
id: composer-cache
|
||||||
|
env:
|
||||||
|
PHP_VERSION: ${{ matrix.php }}
|
||||||
|
run: |
|
||||||
|
cd phpBB
|
||||||
|
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||||
|
echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Cache Composer dependencies
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
|
||||||
|
|
||||||
|
- name: Setup environment for phpBB
|
||||||
|
env:
|
||||||
|
DB: ${{ matrix.db }}
|
||||||
|
PHP_VERSION: ${{ matrix.php }}
|
||||||
|
NOTESTS: '1'
|
||||||
|
run: |
|
||||||
|
.github/setup-phpbb.sh $DB $PHP_VERSION $NOTESTS
|
||||||
|
|
||||||
|
- name: Phing sniff
|
||||||
|
run: |
|
||||||
|
.github/phing-sniff.sh
|
||||||
|
|
||||||
|
- name: Check doctum parse errors
|
||||||
|
run: |
|
||||||
|
.github/check-doctum-parse-errors.sh
|
||||||
|
|
||||||
|
- name: Check image ICC profiles
|
||||||
|
run: |
|
||||||
|
.github/check-image-icc-profiles.sh
|
||||||
|
|
||||||
|
- name: Check executable files
|
||||||
|
run: |
|
||||||
|
.github/check-executable-files.sh ./
|
||||||
|
|
||||||
|
- name: Check commit message
|
||||||
|
if: github.event_name == 'pull_request'
|
||||||
|
run: |
|
||||||
|
git fetch origin $GITHUB_BASE_REF &> /dev/null
|
||||||
|
git-tools/commit-msg-hook-range.sh $(git rev-parse origin/$GITHUB_BASE_REF)..$GITHUB_SHA
|
||||||
|
|
||||||
|
# Tests for MySQL and MariaDB
|
||||||
|
mysql-tests:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mariadb:10.1"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mariadb:10.2"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mariadb:10.3"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mariadb:10.4"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mariadb:10.5"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mysql:5.6"
|
||||||
|
db_alias: "MySQL Slow Tests"
|
||||||
|
SLOWTESTS: 1
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mysql:5.6"
|
||||||
|
db_alias: "MyISAM Tests"
|
||||||
|
MYISAM: 1
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mysql:5.6"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mysql:5.7"
|
||||||
|
- php: '7.3'
|
||||||
|
db: "mysql:5.7"
|
||||||
|
- php: '7.4'
|
||||||
|
db: "mysql:5.7"
|
||||||
|
- php: '7.4'
|
||||||
|
db: "mysql:8.0"
|
||||||
|
- php: '8.0'
|
||||||
|
db: "mysql:5.7"
|
||||||
|
- php: '8.1'
|
||||||
|
db: "mysql:5.7"
|
||||||
|
- php: '8.2'
|
||||||
|
db: "mysql:5.7"
|
||||||
|
|
||||||
|
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
|
||||||
|
|
||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
image: ${{ matrix.db }}
|
||||||
|
env:
|
||||||
|
MYSQL_ALLOW_EMPTY_PASSWORD: yes
|
||||||
|
MYSQL_DATABASE: phpbb_tests
|
||||||
|
ports:
|
||||||
|
- 3306:3306
|
||||||
|
options: >-
|
||||||
|
--health-cmd="mysqladmin ping"
|
||||||
|
--health-interval=10s
|
||||||
|
--health-timeout=5s
|
||||||
|
--health-retries=3
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis
|
||||||
|
options: >-
|
||||||
|
--health-cmd "redis-cli ping"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
ports:
|
||||||
|
- 6379:6379
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- id: database-type
|
||||||
|
env:
|
||||||
|
MATRIX_DB: ${{ matrix.db }}
|
||||||
|
run: |
|
||||||
|
db=$(echo "${MATRIX_DB%%:*}")
|
||||||
|
echo "db=$db" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Setup PHP
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php }}
|
||||||
|
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap
|
||||||
|
coverage: none
|
||||||
|
|
||||||
|
- name: Get Composer Cache Directory
|
||||||
|
id: composer-cache
|
||||||
|
env:
|
||||||
|
PHP_VERSION: ${{ matrix.php }}
|
||||||
|
run: |
|
||||||
|
cd phpBB
|
||||||
|
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||||
|
echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Cache Composer dependencies
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
|
||||||
|
|
||||||
|
- name: Setup environment for phpBB
|
||||||
|
env:
|
||||||
|
DB: ${{steps.database-type.outputs.db}}
|
||||||
|
PHP_VERSION: ${{ matrix.php }}
|
||||||
|
NOTESTS: '0'
|
||||||
|
run: |
|
||||||
|
.github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0}
|
||||||
|
|
||||||
|
- name: Setup database
|
||||||
|
env:
|
||||||
|
DB: ${{steps.database-type.outputs.db}}
|
||||||
|
MYISAM: ${{ matrix.MYISAM != 1 && '0' || '1' }}
|
||||||
|
run: |
|
||||||
|
.github/setup-database.sh $DB $MYISAM
|
||||||
|
|
||||||
|
- name: Setup LDAP
|
||||||
|
if: ${{ matrix.SLOWTESTS == 1 }}
|
||||||
|
run: |
|
||||||
|
.github/setup-ldap.sh
|
||||||
|
|
||||||
|
- name: Lint tests
|
||||||
|
if: ${{ matrix.SLOWTESTS != 1 && steps.database-type.outputs.db == 'mysql' }}
|
||||||
|
run: phpBB/vendor/bin/phpunit tests/lint_test.php
|
||||||
|
|
||||||
|
- name: Run unit tests
|
||||||
|
env:
|
||||||
|
DB: ${{steps.database-type.outputs.db}}
|
||||||
|
if: ${{ matrix.SLOWTESTS != 1 && matrix.NOTESTS != 1 }}
|
||||||
|
run: |
|
||||||
|
phpBB/vendor/bin/phpunit --configuration .github/phpunit-$DB-github.xml --verbose --stop-on-error
|
||||||
|
|
||||||
|
- name: Slow tests
|
||||||
|
env:
|
||||||
|
DB: ${{steps.database-type.outputs.db}}
|
||||||
|
if: ${{ matrix.SLOWTESTS == 1 }}
|
||||||
|
run: |
|
||||||
|
phpBB/vendor/bin/phpunit --configuration .github/phpunit-$DB-github.xml --group slow
|
||||||
|
|
||||||
|
# Tests for PostgreSQL
|
||||||
|
postgres-tests:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- php: '7.2'
|
||||||
|
db: "postgres:9.3"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "postgres:9.5"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "postgres:9.6"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "postgres:10"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "postgres:11"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "postgres:12"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "postgres:13"
|
||||||
|
- php: '7.3'
|
||||||
|
db: "postgres:13"
|
||||||
|
- php: '7.4'
|
||||||
|
db: "postgres:13"
|
||||||
|
- php: '8.0'
|
||||||
|
db: "postgres:12"
|
||||||
|
- php: '8.0'
|
||||||
|
db: "postgres:13"
|
||||||
|
- php: '8.1'
|
||||||
|
db: "postgres:14"
|
||||||
|
- php: '8.2'
|
||||||
|
db: "postgres:14"
|
||||||
|
|
||||||
|
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: ${{ matrix.db != 'postgres:9.3' && matrix.db != 'postgres:9.5' && matrix.db != 'postgres:9.6' && matrix.db != 'postgres:10' && matrix.db != 'postgres:11' && matrix.db != 'postgres:12' && matrix.db != 'postgres:13' && 'postgres:10' || matrix.db }}
|
||||||
|
env:
|
||||||
|
POSTGRES_HOST: localhost
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: postgres
|
||||||
|
ports:
|
||||||
|
- 5432:5432
|
||||||
|
options: >-
|
||||||
|
-v /var/run/postgresql:/var/run/postgresql
|
||||||
|
--health-cmd pg_isready
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis
|
||||||
|
options: >-
|
||||||
|
--health-cmd "redis-cli ping"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
ports:
|
||||||
|
- 6379:6379
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- id: database-type
|
||||||
|
env:
|
||||||
|
MATRIX_DB: ${{ matrix.db }}
|
||||||
|
run: |
|
||||||
|
db=$(echo "${MATRIX_DB%%:*}")
|
||||||
|
echo "db=$db" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Setup PHP
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php }}
|
||||||
|
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap
|
||||||
|
coverage: none
|
||||||
|
|
||||||
|
- name: Get Composer Cache Directory
|
||||||
|
id: composer-cache
|
||||||
|
env:
|
||||||
|
PHP_VERSION: ${{ matrix.php }}
|
||||||
|
run: |
|
||||||
|
cd phpBB
|
||||||
|
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||||
|
echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Cache Composer dependencies
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
|
||||||
|
|
||||||
|
- name: Setup environment for phpBB
|
||||||
|
env:
|
||||||
|
DB: ${{steps.database-type.outputs.db}}
|
||||||
|
PHP_VERSION: ${{ matrix.php }}
|
||||||
|
NOTESTS: '0'
|
||||||
|
run: |
|
||||||
|
.github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0}
|
||||||
|
|
||||||
|
- name: Setup database
|
||||||
|
env:
|
||||||
|
DB: ${{steps.database-type.outputs.db}}
|
||||||
|
MYISAM: '0'
|
||||||
|
run: |
|
||||||
|
.github/setup-database.sh $DB $MYISAM
|
||||||
|
|
||||||
|
- name: Run unit tests
|
||||||
|
env:
|
||||||
|
DB: ${{steps.database-type.outputs.db}}
|
||||||
|
run: |
|
||||||
|
phpBB/vendor/bin/phpunit --configuration .github/phpunit-$DB-github.xml --verbose --stop-on-error
|
||||||
|
|
||||||
|
# Other database types, namely sqlite3 and mssql
|
||||||
|
other-tests:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- php: '7.2'
|
||||||
|
db: "sqlite3"
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mcr.microsoft.com/mssql/server:2017-latest"
|
||||||
|
db_alias: 'MSSQL 2017'
|
||||||
|
- php: '7.2'
|
||||||
|
db: "mcr.microsoft.com/mssql/server:2019-latest"
|
||||||
|
db_alias: 'MSSQL 2019'
|
||||||
|
|
||||||
|
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
|
||||||
|
|
||||||
|
services:
|
||||||
|
mssql:
|
||||||
|
image: ${{ matrix.db != 'mcr.microsoft.com/mssql/server:2017-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2019-latest' && 'mcr.microsoft.com/mssql/server:2017-latest' || matrix.db }}
|
||||||
|
env:
|
||||||
|
SA_PASSWORD: "Pssw0rd_12"
|
||||||
|
ACCEPT_EULA: "y"
|
||||||
|
ports:
|
||||||
|
- 1433:1433
|
||||||
|
options: >-
|
||||||
|
--health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'Pssw0rd_12' -Q \"Use [master]; CREATE DATABASE [phpbb_tests] COLLATE Latin1_General_CI_AS\" || exit 1"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
--health-start-period 10s
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis
|
||||||
|
options: >-
|
||||||
|
--health-cmd "redis-cli ping"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
ports:
|
||||||
|
- 6379:6379
|
||||||
|
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- id: database-type
|
||||||
|
env:
|
||||||
|
MATRIX_DB: ${{ matrix.db }}
|
||||||
|
run: |
|
||||||
|
if [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2017-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2019-latest' ]
|
||||||
|
then
|
||||||
|
db='mssql'
|
||||||
|
else
|
||||||
|
db=$(echo "${MATRIX_DB%%:*}")
|
||||||
|
fi
|
||||||
|
echo "db=$db" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Setup PHP
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php }}
|
||||||
|
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap
|
||||||
|
coverage: none
|
||||||
|
|
||||||
|
- name: Get Composer Cache Directory
|
||||||
|
id: composer-cache
|
||||||
|
env:
|
||||||
|
PHP_VERSION: ${{ matrix.php }}
|
||||||
|
run: |
|
||||||
|
cd phpBB
|
||||||
|
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||||
|
echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Cache Composer dependencies
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
|
||||||
|
|
||||||
|
- name: Setup environment for phpBB
|
||||||
|
env:
|
||||||
|
DB: ${{steps.database-type.outputs.db}}
|
||||||
|
PHP_VERSION: ${{ matrix.php }}
|
||||||
|
NOTESTS: '0'
|
||||||
|
run: |
|
||||||
|
.github/setup-phpbb.sh $DB $PHP_VERSION ${NOTESTS:-0}
|
||||||
|
|
||||||
|
- name: Setup database
|
||||||
|
env:
|
||||||
|
DB: ${{steps.database-type.outputs.db}}
|
||||||
|
MYISAM: '0'
|
||||||
|
run: |
|
||||||
|
.github/setup-database.sh $DB $MYISAM
|
||||||
|
|
||||||
|
- name: Run unit tests
|
||||||
|
env:
|
||||||
|
DB: ${{steps.database-type.outputs.db}}
|
||||||
|
run: |
|
||||||
|
phpBB/vendor/bin/phpunit --configuration .github/phpunit-$DB-github.xml --verbose --stop-on-error
|
||||||
|
|
||||||
|
# Test with IIS & PostgreSQL on Windows
|
||||||
|
windows-tests:
|
||||||
|
runs-on: windows-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- php: '7.4'
|
||||||
|
db: "postgres"
|
||||||
|
type: 'unit'
|
||||||
|
- php: '8.0'
|
||||||
|
db: "postgres"
|
||||||
|
type: 'unit'
|
||||||
|
- php: '8.1'
|
||||||
|
db: "postgres"
|
||||||
|
type: 'unit'
|
||||||
|
- php: '8.2'
|
||||||
|
db: "postgres"
|
||||||
|
type: 'unit'
|
||||||
|
- php: '7.4'
|
||||||
|
db: "postgres"
|
||||||
|
type: 'functional'
|
||||||
|
- php: '8.0'
|
||||||
|
db: "postgres"
|
||||||
|
type: 'functional'
|
||||||
|
- php: '8.1'
|
||||||
|
db: "postgres"
|
||||||
|
type: 'functional'
|
||||||
|
- php: '8.2'
|
||||||
|
db: "postgres"
|
||||||
|
type: 'functional'
|
||||||
|
|
||||||
|
name: Windows - PHP ${{ matrix.php }} - ${{ matrix.db }} - ${{ matrix.type }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Prepare git for Windows
|
||||||
|
run: |
|
||||||
|
git config --system core.autocrlf false
|
||||||
|
git config --system core.eol lf
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup PHP
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php }}
|
||||||
|
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, intl, gd, exif, iconv, pgsql, pdo_pgsql
|
||||||
|
ini-values: upload_tmp_dir=${{ runner.temp }}, sys_temp_dir=${{ runner.temp }}
|
||||||
|
coverage: none
|
||||||
|
|
||||||
|
- name: Get Composer Cache Directory
|
||||||
|
id: composer-cache
|
||||||
|
run: |
|
||||||
|
cd phpBB
|
||||||
|
echo "dir=$(composer config cache-files-dir)" >> $env:GITHUB_OUTPUT
|
||||||
|
$major_version="${{ matrix.php }}".substring(0,1)
|
||||||
|
echo "version=$major_version" >> $env:GITHUB_OUTPUT
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Cache Composer dependencies
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
|
||||||
|
|
||||||
|
- name: Setup environment for phpBB
|
||||||
|
env:
|
||||||
|
GITHUB_WORKSPACE: ${{ github.workspace }}
|
||||||
|
TEMP_DIR: ${{ runner.temp }}
|
||||||
|
run: |
|
||||||
|
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole, IIS-WebServer, IIS-CommonHttpFeatures, IIS-ManagementConsole, IIS-HttpErrors, IIS-HttpRedirect, IIS-WindowsAuthentication, IIS-StaticContent, IIS-DefaultDocument, IIS-HttpCompressionStatic, IIS-DirectoryBrowsing, IIS-WebServerManagementTools, IIS-CGI -All
|
||||||
|
Set-Service wuauserv -StartupType Manual
|
||||||
|
(Get-Content ${env:GITHUB_WORKSPACE}\phpBB\web.config).replace("<configuration>", "<configuration>`n`t<system.web>`n`t`t<customErrors mode=`"Off`"/>`n`t</system.web>") | Set-Content ${env:GITHUB_WORKSPACE}\phpBB\web.config
|
||||||
|
(Get-Content ${env:GITHUB_WORKSPACE}\phpBB\web.config).replace("`t</system.webServer>", "`t`t<httpErrors errorMode=`"Detailed`" />`n`t</system.webServer>") | Set-Content ${env:GITHUB_WORKSPACE}\phpBB\web.config
|
||||||
|
choco install urlrewrite -y
|
||||||
|
Import-Module WebAdministration
|
||||||
|
New-WebSite -Name 'phpBBTest' -PhysicalPath "${env:GITHUB_WORKSPACE}\phpBB" -Force
|
||||||
|
$session = Get-PSSession -Name WinPSCompatSession
|
||||||
|
$sb = {Set-ItemProperty 'IIS:\Sites\phpBBTest' -name Bindings -value @{protocol='http';bindingInformation='*:80:phpbb.test'}}
|
||||||
|
Invoke-Command -Scriptblock $sb -Session $session
|
||||||
|
$sb = {Set-WebConfigurationProperty -filter /system.WebServer/security/authentication/AnonymousAuthentication -name enabled -value true -location "IIS:\Sites\phpBBTest"}
|
||||||
|
Invoke-Command -Scriptblock $sb -Session $session
|
||||||
|
Add-Content -Path $env:windir\System32\drivers\etc\hosts -Value "`r`n127.0.0.1`tphpbb.test" -Force
|
||||||
|
[System.Environment]::SetEnvironmentVariable('PATH',$Env:PATH+";%windir%\system32\inetsrv")
|
||||||
|
echo Setup FAST-CGI configuration
|
||||||
|
Add-WebConfiguration -Filter /system.webServer/fastCgi -PSPath IIS:\ -Value @{fullpath="C:\tools\php\php-cgi.exe"}
|
||||||
|
echo Setup FACT-CGI handler
|
||||||
|
New-WebHandler -Name "PHP-FastCGI" -Path "*.php" -Modules FastCgiModule -ScriptProcessor "C:\tools\php\php-cgi.exe" -Verb '*' -ResourceType Either
|
||||||
|
iisreset
|
||||||
|
NET START W3SVC
|
||||||
|
mkdir "${env:GITHUB_WORKSPACE}\phpBB\cache\test"
|
||||||
|
mkdir "${env:GITHUB_WORKSPACE}\phpBB\cache\installer"
|
||||||
|
icacls "${env:GITHUB_WORKSPACE}\phpBB\cache" /grant Users:F /T
|
||||||
|
icacls "${env:GITHUB_WORKSPACE}\phpBB\files" /grant Users:F /T
|
||||||
|
icacls "${env:GITHUB_WORKSPACE}\phpBB\store" /grant Users:F /T
|
||||||
|
icacls "${env:GITHUB_WORKSPACE}\phpBB\images\avatars\upload" /grant Users:F /T
|
||||||
|
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("IIS_IUSRS", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
|
||||||
|
$acl = Get-ACL "${env:TEMP_DIR}"
|
||||||
|
$acl.AddAccessRule($accessRule)
|
||||||
|
Set-ACL -Path "${env:TEMP_DIR}" -ACLObject $acl
|
||||||
|
cd ${env:GITHUB_WORKSPACE}\phpBB
|
||||||
|
php ..\composer.phar install
|
||||||
|
php ..\composer.phar remove phpunit/dbunit --dev --update-with-dependencies
|
||||||
|
php ..\composer.phar require symfony/yaml:~4.4 misantron/dbunit:~5.0 phpunit/phpunit:^9.3 doctrine/instantiator:^1.4 --dev --update-with-all-dependencies --ignore-platform-reqs
|
||||||
|
cd ..
|
||||||
|
- name: Setup database
|
||||||
|
run: |
|
||||||
|
$postgreSqlSvc = Get-Service "postgresql*"
|
||||||
|
Set-Service $postgreSqlSvc.Name -StartupType manual
|
||||||
|
$runningStatus = [System.ServiceProcess.ServiceControllerStatus]::Running
|
||||||
|
$maxStartTimeout = New-TimeSpan -Seconds 30
|
||||||
|
try {
|
||||||
|
$postgreSqlSvc.Start()
|
||||||
|
$postgreSqlSvc.WaitForStatus($runningStatus, $maxStartTimeout)
|
||||||
|
} catch {
|
||||||
|
$_ | select *
|
||||||
|
}
|
||||||
|
[System.Environment]::SetEnvironmentVariable('PATH',$Env:PATH+";${env:PGBIN}")
|
||||||
|
$env:PGPASSWORD = 'root'
|
||||||
|
psql -c 'ALTER SYSTEM SET hot_standby = on;' -U postgres
|
||||||
|
psql -c 'ALTER SYSTEM SET wal_level = minimal;' -U postgres
|
||||||
|
psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres
|
||||||
|
psql -c 'create database phpbb_tests;' -U postgres
|
||||||
|
Set-MpPreference -ExclusionPath "${env:PGDATA}" # Exclude PGDATA directory from Windows Defender
|
||||||
|
Set-MpPreference -DisableRealtimeMonitoring $true
|
||||||
|
- name: Run unit tests
|
||||||
|
if: ${{ matrix.type == 'unit' }}
|
||||||
|
run: |
|
||||||
|
phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error --exclude-group functional
|
||||||
|
- name: Run unit tests
|
||||||
|
if: ${{ matrix.type == 'functional' }}
|
||||||
|
run: |
|
||||||
|
phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error --group functional
|
34
.gitignore
vendored
34
.gitignore
vendored
@@ -1,32 +1,54 @@
|
|||||||
*~
|
# Excludes cache
|
||||||
/phpunit.xml
|
|
||||||
/phpBB/cache/*
|
/phpBB/cache/*
|
||||||
!/phpBB/cache/.htaccess
|
!/phpBB/cache/.htaccess
|
||||||
!/phpBB/cache/index.html
|
!/phpBB/cache/index.html
|
||||||
/phpBB/composer.phar
|
|
||||||
|
# Excludes user data
|
||||||
/phpBB/config*.php*
|
/phpBB/config*.php*
|
||||||
/phpBB/ext/*
|
/phpBB/ext/*
|
||||||
/phpBB/files/*
|
/phpBB/files/*
|
||||||
/phpBB/images/avatars/gallery/*
|
/phpBB/images/avatars/gallery/*
|
||||||
/phpBB/images/avatars/upload/*
|
/phpBB/images/avatars/upload/*
|
||||||
/phpBB/images/ranks/*
|
/phpBB/images/ranks/*
|
||||||
/phpBB/install/schemas/schema.json
|
/phpBB/store/*
|
||||||
|
|
||||||
|
# Excludes all custom langages
|
||||||
/phpBB/language/*
|
/phpBB/language/*
|
||||||
!/phpBB/language/en
|
!/phpBB/language/en
|
||||||
/phpBB/store/*
|
|
||||||
|
# Excludes all custom styles
|
||||||
/phpBB/styles/*
|
/phpBB/styles/*
|
||||||
!/phpBB/styles/prosilver
|
!/phpBB/styles/prosilver
|
||||||
/phpBB/styles/prosilver/theme/*/
|
/phpBB/styles/prosilver/theme/*/
|
||||||
!/phpBB/styles/prosilver/theme/en
|
!/phpBB/styles/prosilver/theme/en
|
||||||
!/phpBB/styles/prosilver/theme/images
|
!/phpBB/styles/prosilver/theme/images
|
||||||
!/phpBB/styles/all
|
!/phpBB/styles/all
|
||||||
node_modules
|
|
||||||
|
# Excludes all custom env
|
||||||
|
/phpBB/config/*
|
||||||
|
!/phpBB/config/default
|
||||||
|
!/phpBB/config/development
|
||||||
|
!/phpBB/config/installer
|
||||||
|
!/phpBB/config/production
|
||||||
|
!/phpBB/config/test
|
||||||
|
!/phpBB/config/.htaccess
|
||||||
|
|
||||||
|
# Excludes vendors
|
||||||
/phpBB/vendor
|
/phpBB/vendor
|
||||||
|
|
||||||
|
# Excludes test / dev files
|
||||||
|
/phpunit.xml
|
||||||
|
/phpBB/composer.phar
|
||||||
/tests/phpbb_unit_tests.sqlite*
|
/tests/phpbb_unit_tests.sqlite*
|
||||||
/tests/test_config*.php
|
/tests/test_config*.php
|
||||||
/tests/tmp/*
|
/tests/tmp/*
|
||||||
/tests/vendor
|
/tests/vendor
|
||||||
/vagrant/phpbb-install-config.yml
|
/vagrant/phpbb-install-config.yml
|
||||||
.vagrant
|
.vagrant
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# Excludes IDE / editors files
|
||||||
|
*~
|
||||||
.idea
|
.idea
|
||||||
*.DS_Store*
|
*.DS_Store*
|
||||||
|
/.vscode
|
||||||
|
51
.travis.yml
51
.travis.yml
@@ -1,51 +0,0 @@
|
|||||||
language: php
|
|
||||||
dist: xenial
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- php: 7.1
|
|
||||||
env: DB=none;NOTESTS=1
|
|
||||||
- php: 7.1
|
|
||||||
env: DB=mariadb
|
|
||||||
- php: 7.1
|
|
||||||
env: DB=postgres
|
|
||||||
- php: 7.1
|
|
||||||
env: DB=sqlite3
|
|
||||||
- php: 7.1
|
|
||||||
env: DB=mysqli;SLOWTESTS=1
|
|
||||||
- php: 7.1
|
|
||||||
env: DB=mysqli # MyISAM
|
|
||||||
- php: 7.2
|
|
||||||
env: DB=mysqli
|
|
||||||
- php: 7.3
|
|
||||||
env: DB=mysqli
|
|
||||||
- php: 7.4
|
|
||||||
env: DB=mysqli
|
|
||||||
- php: nightly
|
|
||||||
env: DB=mysqli
|
|
||||||
allow_failures:
|
|
||||||
- php: nightly
|
|
||||||
fast_finish: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
- redis-server
|
|
||||||
- postgresql
|
|
||||||
- mysql
|
|
||||||
- memcached
|
|
||||||
|
|
||||||
install:
|
|
||||||
- travis/setup-phpbb.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- travis/setup-database.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
|
|
||||||
- travis/setup-ldap.sh $SLOWTESTS
|
|
||||||
|
|
||||||
script:
|
|
||||||
- travis/phing-sniff.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
|
|
||||||
- travis/check-doctum-parse-errors.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
|
|
||||||
- travis/check-image-icc-profiles.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
|
|
||||||
- travis/check-executable-files.sh $DB $TRAVIS_PHP_VERSION $NOTESTS ./
|
|
||||||
- sh -c "if [ '$SLOWTESTS' != '1' -a '$DB' = 'mysqli' ]; then phpBB/vendor/bin/phpunit tests/lint_test.php; fi"
|
|
||||||
- sh -c "if [ '$NOTESTS' != '1' -a '$SLOWTESTS' != '1' ]; then phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml --verbose --stop-on-error; fi"
|
|
||||||
- sh -c "if [ '$SLOWTESTS' = '1' ]; then phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml --group slow; fi"
|
|
||||||
- sh -c "set -x;if [ '$NOTESTS' = '1' -a '$TRAVIS_PULL_REQUEST' != 'false' ]; then git remote set-branches --add origin $TRAVIS_BRANCH && git fetch && git-tools/commit-msg-hook-range.sh origin/$TRAVIS_BRANCH..$TRAVIS_PULL_REQUEST_SHA; fi"
|
|
18
.vscode/launch.json
vendored
Normal file
18
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Debug phpBB",
|
||||||
|
"type": "php",
|
||||||
|
"request": "launch",
|
||||||
|
"port": 9003,
|
||||||
|
"pathMappings": {
|
||||||
|
"/var/www/html": "${workspaceRoot}/phpBB/"
|
||||||
|
},
|
||||||
|
"log": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"php.debug.ideKey": "VSCODE"
|
||||||
|
}
|
18
README.md
18
README.md
@@ -1,4 +1,4 @@
|
|||||||
[](https://www.phpbb.com)
|
[<img src="phpBB/styles/all/imgs/svg/phpbb_logo_large_cosmic.svg" alt="phpBB" style="max-width:40%" width="400">](https://www.phpbb.com)
|
||||||
|
|
||||||
phpBB is a free open-source bulletin board written in PHP.
|
phpBB is a free open-source bulletin board written in PHP.
|
||||||
|
|
||||||
@@ -27,7 +27,10 @@ To run an installation from the repo (and not from a pre-built package) on a loc
|
|||||||
php ../composer.phar install
|
php ../composer.phar install
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively, you can read our [Vagrant documentation](phpBB/docs/vagrant.md) to find out how to use Vagrant to develop and contribute to phpBB.
|
Alternatively, you can read:
|
||||||
|
|
||||||
|
* Our [Vagrant documentation](phpBB/docs/vagrant.md) to find out how to use Vagrant to develop and contribute to phpBB.
|
||||||
|
* Our [GitHub Codespaces documentation](phpBB/docs/codespaces.md) to learn about phpBB's cloud-based development environment.
|
||||||
|
|
||||||
## 📓 Documentation
|
## 📓 Documentation
|
||||||
|
|
||||||
@@ -35,13 +38,12 @@ phpBB's [Development Documentation](https://area51.phpbb.com/docs/dev/index.html
|
|||||||
|
|
||||||
## 🔬 Automated Testing
|
## 🔬 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 | Travis CI | AppVeyor
|
Branch | Description | GitHub Actions |
|
||||||
------- | ----------- | ---------- | --------
|
------- | ----------- | -------------- |
|
||||||
**master** | Latest development version | [](http://travis-ci.org/phpbb/phpbb) | [](https://ci.appveyor.com/project/phpBB/phpbb/branch/master)
|
**master** | Latest development version |  |
|
||||||
**3.3.x** | Development of version 3.3.x | [](http://travis-ci.org/phpbb/phpbb) | [](https://ci.appveyor.com/project/phpBB/phpbb/branch/3.3.x)
|
**3.3.x** | Development of version 3.3.x |  |
|
||||||
**3.2.x** | Development of version 3.2.x | [](http://travis-ci.org/phpbb/phpbb) | [](https://ci.appveyor.com/project/phpBB/phpbb/branch/3.2.x)
|
|
||||||
|
|
||||||
## 📜 License
|
## 📜 License
|
||||||
|
|
||||||
|
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
||||||
<!-- a few settings for the build -->
|
<!-- a few settings for the build -->
|
||||||
<property name="newversion" value="3.3.2-RC1" />
|
<property name="newversion" value="3.3.11" />
|
||||||
<property name="prevversion" value="3.3.1" />
|
<property name="prevversion" value="3.3.10" />
|
||||||
<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.3.0" />
|
<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, 3.3.8, 3.3.9" />
|
||||||
<!-- no configuration should be needed beyond this point -->
|
<!-- no configuration should be needed beyond this point -->
|
||||||
|
|
||||||
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
||||||
@@ -128,13 +128,13 @@
|
|||||||
<!-- Builds docs for current branch into build/api/output/master -->
|
<!-- Builds docs for current branch into build/api/output/master -->
|
||||||
<target name="docs">
|
<target name="docs">
|
||||||
<exec dir="."
|
<exec dir="."
|
||||||
command="php doctum.phar update build/doctum-checkout.conf.php"
|
command="./doctum.phar update build/doctum-checkout.conf.php"
|
||||||
passthru="true" />
|
passthru="true" />
|
||||||
</target>
|
</target>
|
||||||
<!-- Builds docs for multiple branches/tags into build/api/output/$branch -->
|
<!-- Builds docs for multiple branches/tags into build/api/output/$branch -->
|
||||||
<target name="docs-all">
|
<target name="docs-all">
|
||||||
<exec dir="."
|
<exec dir="."
|
||||||
command="php doctum.phar update build/doctum-all.conf.php"
|
command="./doctum.phar update build/doctum-all.conf.php"
|
||||||
passthru="true" />
|
passthru="true" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
@@ -362,6 +362,8 @@
|
|||||||
<chmod mode="0777" file="${dir}/store" />
|
<chmod mode="0777" file="${dir}/store" />
|
||||||
<chmod mode="0777" file="${dir}/files" />
|
<chmod mode="0777" file="${dir}/files" />
|
||||||
<chmod mode="0777" file="${dir}/images/avatars/upload" />
|
<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>
|
||||||
|
|
||||||
<target name="clean-vendor-dir">
|
<target name="clean-vendor-dir">
|
||||||
|
@@ -38,6 +38,7 @@ else
|
|||||||
$xml = simplexml_load_string(file_get_contents($url));
|
$xml = simplexml_load_string(file_get_contents($url));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$types = [];
|
||||||
foreach ($xml->xpath('//item') as $item)
|
foreach ($xml->xpath('//item') as $item)
|
||||||
{
|
{
|
||||||
$key = (string) $item->key;
|
$key = (string) $item->key;
|
||||||
@@ -45,23 +46,26 @@ foreach ($xml->xpath('//item') as $item)
|
|||||||
$keyUrl = 'https://tracker.phpbb.com/browse/' . $key;
|
$keyUrl = 'https://tracker.phpbb.com/browse/' . $key;
|
||||||
$keyLink = '<a href="' . $keyUrl . '">' . $key . '</a>';
|
$keyLink = '<a href="' . $keyUrl . '">' . $key . '</a>';
|
||||||
|
|
||||||
$value = str_replace($key, $keyLink, htmlspecialchars($item->title));
|
$value = str_replace($key, $keyLink, htmlspecialchars($item->title, ENT_COMPAT));
|
||||||
$value = str_replace(']', '] -', $value);
|
$value = str_replace(']', '] -', $value);
|
||||||
|
|
||||||
$types[(string) $item->type][$key] = $value;
|
$types[(string) $item->type][$key] = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
ksort($types);
|
if (count($types))
|
||||||
foreach ($types as $type => $tickets)
|
|
||||||
{
|
{
|
||||||
echo "<h4>$type</h4>\n";
|
ksort($types);
|
||||||
echo "<ul>\n";
|
foreach ($types as $type => $tickets)
|
||||||
|
|
||||||
uksort($tickets, 'strnatcasecmp');
|
|
||||||
|
|
||||||
foreach ($tickets as $ticket)
|
|
||||||
{
|
{
|
||||||
echo "<li>$ticket</li>\n";
|
echo "<h4>$type</h4>\n";
|
||||||
|
echo "<ul>\n";
|
||||||
|
|
||||||
|
uksort($tickets, 'strnatcasecmp');
|
||||||
|
|
||||||
|
foreach ($tickets as $ticket)
|
||||||
|
{
|
||||||
|
echo "<li>$ticket</li>\n";
|
||||||
|
}
|
||||||
|
echo "</ul>\n";
|
||||||
}
|
}
|
||||||
echo "</ul>\n";
|
|
||||||
}
|
}
|
||||||
|
@@ -43,10 +43,10 @@ class build_package
|
|||||||
$_before = $this->versions[count($this->versions) - 2];
|
$_before = $this->versions[count($this->versions) - 2];
|
||||||
|
|
||||||
$this->locations = array(
|
$this->locations = array(
|
||||||
'new_version' => dirname(dirname(__FILE__)) . '/phpBB/',
|
'new_version' => dirname(__DIR__) . '/phpBB/',
|
||||||
'old_versions' => dirname(__FILE__) . '/old_versions/',
|
'old_versions' => __DIR__ . '/old_versions/',
|
||||||
'root' => dirname(__FILE__) . '/',
|
'root' => __DIR__ . '/',
|
||||||
'package_dir' => dirname(__FILE__) . '/new_version/'
|
'package_dir' => __DIR__ . '/new_version/'
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->package_infos = array(
|
$this->package_infos = array(
|
||||||
|
@@ -0,0 +1,57 @@
|
|||||||
|
<?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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
use PHP_CodeSniffer\Files\File;
|
||||||
|
use PHP_CodeSniffer\Sniffs\Sniff;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks that the visibility qualifiers are placed after the static keyword
|
||||||
|
* according to the coding guidelines
|
||||||
|
*/
|
||||||
|
class phpbb_Sniffs_ControlStructures_StaticKeywordSniff implements Sniff
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Registers the tokens that this sniff wants to listen for.
|
||||||
|
*/
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
T_STATIC,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Processes this test, when one of its tokens is encountered.
|
||||||
|
*
|
||||||
|
* @param File $phpcsFile The file being scanned.
|
||||||
|
* @param int $stackPtr The position of the current token in the stack passed in $tokens.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function process(File $phpcsFile, $stackPtr)
|
||||||
|
{
|
||||||
|
$tokens = $phpcsFile->getTokens();
|
||||||
|
|
||||||
|
$disallowed_after_tokens = [
|
||||||
|
T_PUBLIC,
|
||||||
|
T_PROTECTED,
|
||||||
|
T_PRIVATE,
|
||||||
|
];
|
||||||
|
|
||||||
|
if (in_array($tokens[$stackPtr + 2]['code'], $disallowed_after_tokens))
|
||||||
|
{
|
||||||
|
$error = 'Access specifier (e.g. public) should not follow static scope attribute. Encountered "' . $tokens[$stackPtr + 2]['content'] . '" after static';
|
||||||
|
$phpcsFile->addWarning($error, $stackPtr, 'InvalidStaticFunctionDeclaration', [], 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -19,21 +19,34 @@ use PHP_CodeSniffer\Sniffs\Sniff;
|
|||||||
*/
|
*/
|
||||||
class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
||||||
{
|
{
|
||||||
|
const FIND = [
|
||||||
|
T_NS_SEPARATOR,
|
||||||
|
T_STRING,
|
||||||
|
T_WHITESPACE,
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function register()
|
public function register()
|
||||||
{
|
{
|
||||||
return array(T_USE);
|
return [T_USE];
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function check(File $phpcsFile, $found_name, $full_name, $short_name, $line)
|
protected function check(File $phpcsFile, $found_name, $full_name, $short_name, $stack_pointer)
|
||||||
{
|
{
|
||||||
|
$found_name_normalized = ltrim($found_name, '\\');
|
||||||
|
$full_name = ltrim($full_name, '\\');
|
||||||
|
|
||||||
if ($found_name === $full_name)
|
$is_global = ($full_name === $short_name);
|
||||||
|
$unnecessarily_fully_qualified = ($is_global)
|
||||||
|
? ($found_name_normalized !== $found_name && $found_name_normalized === $short_name)
|
||||||
|
: ($found_name_normalized === $full_name);
|
||||||
|
|
||||||
|
if ($unnecessarily_fully_qualified)
|
||||||
{
|
{
|
||||||
$error = 'Either use statement or full name must be used.';
|
$error = 'Either use statement or full name must be used.';
|
||||||
$phpcsFile->addError($error, $line, 'FullName');
|
$phpcsFile->addError($error, $stack_pointer, 'FullName');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($found_name === $short_name)
|
if ($found_name === $short_name)
|
||||||
@@ -58,27 +71,50 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
|||||||
|
|
||||||
$class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($stackPtr + 1));
|
$class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($stackPtr + 1));
|
||||||
|
|
||||||
$find = array(
|
$class_name_end = $phpcsFile->findNext(self::FIND, ($stackPtr + 1), null, true);
|
||||||
T_NS_SEPARATOR,
|
|
||||||
T_STRING,
|
|
||||||
T_WHITESPACE,
|
|
||||||
);
|
|
||||||
|
|
||||||
$class_name_end = $phpcsFile->findNext($find, ($stackPtr + 1), null, true);
|
|
||||||
|
|
||||||
$aliasing_as_position = $phpcsFile->findNext(T_AS, $class_name_end, null, false, null, true);
|
$aliasing_as_position = $phpcsFile->findNext(T_AS, $class_name_end, null, false, null, true);
|
||||||
if ($aliasing_as_position !== false)
|
if ($aliasing_as_position !== false)
|
||||||
{
|
{
|
||||||
$alias_position = $phpcsFile->findNext(T_STRING, $aliasing_as_position, null, false, null, true);
|
$alias_position = $phpcsFile->findNext(T_STRING, $aliasing_as_position, null, false, null, true);
|
||||||
$class_name_short = $tokens[$alias_position]['content'];
|
$name_short = $tokens[$alias_position]['content'];
|
||||||
$class_name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start - 1));
|
$name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start - 1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$class_name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start));
|
$name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start));
|
||||||
$class_name_short = $tokens[$class_name_end - 1]['content'];
|
$name_short = $tokens[$class_name_end - 1]['content'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($tokens[$class_name_start]['content'] === 'function'
|
||||||
|
&& $tokens[$class_name_start + 1]['code'] === T_WHITESPACE)
|
||||||
|
{
|
||||||
|
$class_name_start += 2;
|
||||||
|
$name_full = $phpcsFile->getTokensAsString(
|
||||||
|
$class_name_start,
|
||||||
|
($class_name_end - $class_name_start - (int) ($aliasing_as_position !== false))
|
||||||
|
);
|
||||||
|
$ok = $this->findFunctionUsage($phpcsFile, $stackPtr, $tokens, $name_full, $name_short);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ok = $this->findClassUsage($phpcsFile, $stackPtr, $tokens, $name_full, $name_short);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($name_full[0] === '\\')
|
||||||
|
{
|
||||||
|
$phpcsFile->addError("There must not be a leading '\\' in use statements.", $stackPtr, 'Malformed');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$ok)
|
||||||
|
{
|
||||||
|
$error = 'There must not be unused USE statements.';
|
||||||
|
$phpcsFile->addError($error, $stackPtr, 'Unused');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function findClassUsage(File $phpcsFile, $stackPtr, $tokens, $class_name_full, $class_name_short)
|
||||||
|
{
|
||||||
$ok = false;
|
$ok = false;
|
||||||
|
|
||||||
// Checks in simple statements (new, instanceof and extends)
|
// Checks in simple statements (new, instanceof and extends)
|
||||||
@@ -95,11 +131,11 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$simple_class_name_end = $phpcsFile->findNext($find, ($simple_statement + 1), null, true);
|
$simple_class_name_end = $phpcsFile->findNext(self::FIND, ($simple_statement + 1), null, true);
|
||||||
|
|
||||||
$simple_class_name = trim($phpcsFile->getTokensAsString($simple_class_name_start, ($simple_class_name_end - $simple_class_name_start)));
|
$simple_class_name = trim($phpcsFile->getTokensAsString($simple_class_name_start, ($simple_class_name_end - $simple_class_name_start)));
|
||||||
|
|
||||||
$ok = $this->check($phpcsFile, $simple_class_name, $class_name_full, $class_name_short, $simple_statement) ? true : $ok;
|
$ok = $this->check($phpcsFile, $simple_class_name, $class_name_full, $class_name_short, $simple_statement) || $ok;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,12 +145,12 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
|||||||
{
|
{
|
||||||
$old_paamayim_nekudotayim = $paamayim_nekudotayim;
|
$old_paamayim_nekudotayim = $paamayim_nekudotayim;
|
||||||
|
|
||||||
$paamayim_nekudotayim_class_name_start = $phpcsFile->findPrevious($find, $paamayim_nekudotayim - 1, null, true);
|
$paamayim_nekudotayim_class_name_start = $phpcsFile->findPrevious(self::FIND, $paamayim_nekudotayim - 1, null, true);
|
||||||
$paamayim_nekudotayim_class_name_end = $paamayim_nekudotayim - 1;
|
$paamayim_nekudotayim_class_name_end = $paamayim_nekudotayim - 1;
|
||||||
|
|
||||||
$paamayim_nekudotayim_class_name = trim($phpcsFile->getTokensAsString($paamayim_nekudotayim_class_name_start + 1, ($paamayim_nekudotayim_class_name_end - $paamayim_nekudotayim_class_name_start)));
|
$paamayim_nekudotayim_class_name = trim($phpcsFile->getTokensAsString($paamayim_nekudotayim_class_name_start + 1, ($paamayim_nekudotayim_class_name_end - $paamayim_nekudotayim_class_name_start)));
|
||||||
|
|
||||||
$ok = $this->check($phpcsFile, $paamayim_nekudotayim_class_name, $class_name_full, $class_name_short, $paamayim_nekudotayim) ? true : $ok;
|
$ok = $this->check($phpcsFile, $paamayim_nekudotayim_class_name, $class_name_full, $class_name_short, $paamayim_nekudotayim) || $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checks in implements
|
// Checks in implements
|
||||||
@@ -129,11 +165,11 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
|||||||
$old_implemented_class = $implemented_class;
|
$old_implemented_class = $implemented_class;
|
||||||
|
|
||||||
$implements_class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($implemented_class - 1));
|
$implements_class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($implemented_class - 1));
|
||||||
$implements_class_name_end = $phpcsFile->findNext($find, ($implemented_class - 1), null, true);
|
$implements_class_name_end = $phpcsFile->findNext(self::FIND, ($implemented_class - 1), null, true);
|
||||||
|
|
||||||
$implements_class_name = trim($phpcsFile->getTokensAsString($implements_class_name_start, ($implements_class_name_end - $implements_class_name_start)));
|
$implements_class_name = trim($phpcsFile->getTokensAsString($implements_class_name_start, ($implements_class_name_end - $implements_class_name_start)));
|
||||||
|
|
||||||
$ok = $this->check($phpcsFile, $implements_class_name, $class_name_full, $class_name_short, $implements) ? true : $ok;
|
$ok = $this->check($phpcsFile, $implements_class_name, $class_name_full, $class_name_short, $implements) || $ok;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,7 +177,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
|||||||
while (($docblock = $phpcsFile->findNext(T_DOC_COMMENT_CLOSE_TAG, ($old_docblock + 1))) !== false)
|
while (($docblock = $phpcsFile->findNext(T_DOC_COMMENT_CLOSE_TAG, ($old_docblock + 1))) !== false)
|
||||||
{
|
{
|
||||||
$old_docblock = $docblock;
|
$old_docblock = $docblock;
|
||||||
$ok = $this->checkDocblock($phpcsFile, $docblock, $tokens, $class_name_full, $class_name_short) ? true : $ok;
|
$ok = $this->checkDocblock($phpcsFile, $docblock, $tokens, $class_name_full, $class_name_short) || $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checks in type hinting
|
// Checks in type hinting
|
||||||
@@ -154,7 +190,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
|||||||
$params = $phpcsFile->getMethodParameters($function_declaration);
|
$params = $phpcsFile->getMethodParameters($function_declaration);
|
||||||
foreach ($params as $param)
|
foreach ($params as $param)
|
||||||
{
|
{
|
||||||
$ok = $this->check($phpcsFile, $param['type_hint'], $class_name_full, $class_name_short, $function_declaration) ? true : $ok;
|
$ok = $this->check($phpcsFile, $param['type_hint'], $class_name_full, $class_name_short, $function_declaration) || $ok;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,18 +201,106 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
|||||||
$old_catch = $catch;
|
$old_catch = $catch;
|
||||||
|
|
||||||
$caught_class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), $catch + 1);
|
$caught_class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), $catch + 1);
|
||||||
$caught_class_name_end = $phpcsFile->findNext($find, $caught_class_name_start + 1, null, true);
|
$caught_class_name_end = $phpcsFile->findNext(self::FIND, $caught_class_name_start + 1, null, true);
|
||||||
|
|
||||||
$caught_class_name = trim($phpcsFile->getTokensAsString($caught_class_name_start, ($caught_class_name_end - $caught_class_name_start)));
|
$caught_class_name = trim($phpcsFile->getTokensAsString($caught_class_name_start, ($caught_class_name_end - $caught_class_name_start)));
|
||||||
|
|
||||||
$ok = $this->check($phpcsFile, $caught_class_name, $class_name_full, $class_name_short, $catch) ? true : $ok;
|
$ok = $this->check($phpcsFile, $caught_class_name, $class_name_full, $class_name_short, $catch) || $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$ok)
|
$old_use = $stackPtr;
|
||||||
|
while (($use = $phpcsFile->findNext(T_USE, ($old_use + 1))) !== false)
|
||||||
{
|
{
|
||||||
$error = 'There must not be unused USE statements.';
|
$old_use = $use;
|
||||||
$phpcsFile->addError($error, $stackPtr, 'Unused');
|
|
||||||
|
// Needs to be inside a class and must not be inside a function scope.
|
||||||
|
if (!$phpcsFile->hasCondition($use, [T_CLASS, T_TRAIT]) || $phpcsFile->hasCondition($use, T_FUNCTION))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$next = $phpcsFile->findNext(T_WHITESPACE, ($use + 1), null, true, null, true);
|
||||||
|
if ($tokens[$next]['code'] === T_OPEN_PARENTHESIS)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), $use + 1, null, false, null, true);
|
||||||
|
$class_name_end = $phpcsFile->findNext(self::FIND, $class_name_start + 1, null, true, null, true);
|
||||||
|
$found_name = trim($phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start)));
|
||||||
|
|
||||||
|
$ok = $this->check($phpcsFile, $found_name, $class_name_full, $class_name_short, $use) || $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function findFunctionUsage(File $phpcsFile, $stackPtr, $tokens, $name_full, $name_short)
|
||||||
|
{
|
||||||
|
$ok = false;
|
||||||
|
$position = $phpcsFile->findNext(T_OPEN_PARENTHESIS, $stackPtr + 1);
|
||||||
|
while ($position !== false)
|
||||||
|
{
|
||||||
|
$function_name_end = $position;
|
||||||
|
$found_start = 1 + $phpcsFile->findPrevious(
|
||||||
|
[T_NS_SEPARATOR, T_STRING, T_WHITESPACE],
|
||||||
|
$function_name_end - 1,
|
||||||
|
null,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$position = $phpcsFile->findNext(T_OPEN_PARENTHESIS, $position + 1);
|
||||||
|
if ($found_start === null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$function_name_start = $found_start;
|
||||||
|
|
||||||
|
// Trim the output.
|
||||||
|
while ($tokens[$function_name_start]['code'] === T_WHITESPACE && $function_name_start < $function_name_end)
|
||||||
|
{
|
||||||
|
++$function_name_start;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ($tokens[$function_name_end]['code'] === T_WHITESPACE && $function_name_end > $function_name_start)
|
||||||
|
{
|
||||||
|
--$function_name_end;
|
||||||
|
}
|
||||||
|
|
||||||
|
$function_name_length = $function_name_end - $function_name_start;
|
||||||
|
|
||||||
|
// Filter out control structures, built in type constructors, etc.
|
||||||
|
if ($function_name_length <= 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This doesn't seem to be valid PHP, where is the opening tag?
|
||||||
|
if ($found_start === 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$previous_token = $found_start - 1;
|
||||||
|
$filter = [
|
||||||
|
T_FUNCTION, // Function declaration
|
||||||
|
T_OBJECT_OPERATOR, // Method call
|
||||||
|
T_DOUBLE_COLON, // Static method call
|
||||||
|
T_NEW, // Constructors
|
||||||
|
];
|
||||||
|
|
||||||
|
// Filter out calls to methods and function declarations.
|
||||||
|
if (in_array($tokens[$previous_token]['code'], $filter))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$function_name = $phpcsFile->getTokensAsString($function_name_start, $function_name_length);
|
||||||
|
$ok = $this->check($phpcsFile, $function_name, $name_full, $name_short, $function_name_start) || $ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -247,7 +371,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
|||||||
$classes = explode('|', str_replace('[]', '', $classes));
|
$classes = explode('|', str_replace('[]', '', $classes));
|
||||||
foreach ($classes as $class)
|
foreach ($classes as $class)
|
||||||
{
|
{
|
||||||
$ok = $this->check($phpcsFile, $class, $class_name_full, $class_name_short, $tokens[$tag + 2]['line']) ? true : $ok;
|
$ok = $this->check($phpcsFile, $class, $class_name_full, $class_name_short, $tag + 2) || $ok;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -89,4 +89,7 @@
|
|||||||
<!-- There MUST be one space between control structure and opening parenthesis -->
|
<!-- There MUST be one space between control structure and opening parenthesis -->
|
||||||
<rule ref="./phpbb/Sniffs/ControlStructures/OpeningParenthesisSniff.php" />
|
<rule ref="./phpbb/Sniffs/ControlStructures/OpeningParenthesisSniff.php" />
|
||||||
|
|
||||||
|
<!-- Static qualifier MUST be placed before the visibility qualifiers. -->
|
||||||
|
<rule ref="./phpbb/Sniffs/ControlStructures/StaticKeywordSniff.php" />
|
||||||
|
|
||||||
</ruleset>
|
</ruleset>
|
||||||
|
@@ -84,7 +84,7 @@ foreach ($older_verions as $version)
|
|||||||
'phpBB ' . $version . ' to ' . $current_version . ' Update Package',
|
'phpBB ' . $version . ' to ' . $current_version . ' Update Package',
|
||||||
'phpBB-' . $version . '_to_' . $current_version,
|
'phpBB-' . $version . '_to_' . $current_version,
|
||||||
'update',
|
'update',
|
||||||
'update',
|
'advanced_update',
|
||||||
$version
|
$version
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
BIN
composer.phar
BIN
composer.phar
Binary file not shown.
BIN
doctum.phar
Normal file → Executable file
BIN
doctum.phar
Normal file → Executable file
Binary file not shown.
@@ -24,7 +24,17 @@ COMMIT_MSG_HOOK_FATAL=$(git config --bool phpbb.hooks.commit-msg.fatal 2> /dev/n
|
|||||||
git config phpbb.hooks.commit-msg.fatal true
|
git config phpbb.hooks.commit-msg.fatal true
|
||||||
|
|
||||||
EXIT_STATUS=0
|
EXIT_STATUS=0
|
||||||
for COMMIT_HASH in $(git rev-list --no-merges "$COMMIT_RANGE")
|
|
||||||
|
COMMIT_HASHES=$(git rev-list --no-merges "$COMMIT_RANGE")
|
||||||
|
|
||||||
|
# If any message have been returned instead of commit hashes list
|
||||||
|
# send a non-zero exit status upstream.
|
||||||
|
if ! [[ "$COMMIT_HASHES" =~ ^[0-9a-f]{5,40} ]]
|
||||||
|
then
|
||||||
|
EXIT_STATUS=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for COMMIT_HASH in $COMMIT_HASHES
|
||||||
do
|
do
|
||||||
echo "Inspecting commit message of commit $COMMIT_HASH"
|
echo "Inspecting commit message of commit $COMMIT_HASH"
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# A hook to check syntax of a phpBB3 commit message, per:
|
# A hook to check syntax of a phpBB3 commit message, per:
|
||||||
# * <http://wiki.phpbb.com/display/DEV/Git>
|
# * <https://area51.phpbb.com/docs/dev/master/development/git.html>
|
||||||
# * <http://area51.phpbb.com/phpBB/viewtopic.php?p=209919#p209919>
|
# * <http://area51.phpbb.com/phpBB/viewtopic.php?p=209919#p209919>
|
||||||
#
|
#
|
||||||
# This is a commit-msg hook.
|
# This is a commit-msg hook.
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# A hook to add [$branch] to the beginning of a commit message
|
# A hook to add [$branch] to the beginning of a commit message
|
||||||
# if certain conditions are met.
|
# if certain conditions are met.
|
||||||
@@ -31,12 +31,19 @@ branch="$(echo "$branch" | sed "s/refs\/heads\///g")"
|
|||||||
if [ "$2" = "" ]
|
if [ "$2" = "" ]
|
||||||
then
|
then
|
||||||
tail="";
|
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 [ "security/" = "$(sed -E 's/(ticket\/)(security\/)?([0-9]+)(.+$)?/\2/gm;t;d' <<< "$branch")" ];
|
||||||
if [ "$branch" != "${branch##ticket/}" ];
|
|
||||||
then
|
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
|
fi
|
||||||
|
|
||||||
echo "[$branch] $tail$(cat "$1")" > "$1"
|
echo "[$branch_title] $tail$(cat "$1")" > "$1"
|
||||||
fi
|
fi
|
||||||
|
@@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
<!-- BEGIN upload -->
|
<!-- BEGIN upload -->
|
||||||
:: {upload.FILE_INFO}<br />
|
:: {upload.FILE_INFO}<br />
|
||||||
<!-- IF upload.S_DENIED --><span class="error">{upload.DENIED}</span><!-- ELSEIF upload.ERROR_MSG --><span class="error">{upload.ERROR_MSG}</span><!-- ELSE --><span class="success">{L_SUCCESSFULLY_UPLOADED}</span><!-- ENDIF -->
|
<!-- IF upload.S_DENIED --><span class="error">{upload.L_DENIED}</span><!-- ELSEIF upload.ERROR_MSG --><span class="error">{upload.ERROR_MSG}</span><!-- ELSE --><span class="success">{L_SUCCESSFULLY_UPLOADED}</span><!-- ENDIF -->
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<!-- END upload -->
|
<!-- END upload -->
|
||||||
|
|
||||||
|
@@ -31,11 +31,11 @@
|
|||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{L_BBCODE_HELPLINE}</legend>
|
<legend>{{ lang('BBCODE_HELPLINE') }}</legend>
|
||||||
<p>{L_BBCODE_HELPLINE_EXPLAIN}</p>
|
<p>{{ lang('BBCODE_HELPLINE_EXPLAIN') }}</p>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="bbcode_helpline">{L_BBCODE_HELPLINE_TEXT}</label></dt>
|
<dt><label for="bbcode_helpline">{{ lang('BBCODE_HELPLINE_TEXT') }}</label></dt>
|
||||||
<dd><input type="text" id="bbcode_helpline" name="bbcode_helpline" size="60" maxlength="255" value="{BBCODE_HELPLINE}" /></dd>
|
<dd><textarea id="bbcode_helpline" name="bbcode_helpline" cols="60" rows="4">{{ BBCODE_HELPLINE }}</textarea></dd>
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
@@ -58,7 +58,6 @@
|
|||||||
<dl>
|
<dl>
|
||||||
<dt><label for="type">{L_BACKUP_TYPE}{L_COLON}</label></dt>
|
<dt><label for="type">{L_BACKUP_TYPE}{L_COLON}</label></dt>
|
||||||
<dd><label><input type="radio" class="radio" name="type" value="full" id="type" checked="checked" /> {L_FULL_BACKUP}</label>
|
<dd><label><input type="radio" class="radio" name="type" value="full" id="type" checked="checked" /> {L_FULL_BACKUP}</label>
|
||||||
<label><input type="radio" name="type" class="radio" value="structure" /> {L_STRUCTURE_ONLY}</label>
|
|
||||||
<label><input type="radio" class="radio" name="type" value="data" /> {L_DATA_ONLY}</label></dd>
|
<label><input type="radio" class="radio" name="type" value="data" /> {L_DATA_ONLY}</label></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
|
@@ -105,7 +105,7 @@
|
|||||||
<!-- BEGIN items -->
|
<!-- BEGIN items -->
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td style="text-align: center;"><img src="{items.IMG_SRC}" alt="{items.TEXT_ALT}" title="{items.TEXT_ALT}" /><input type="hidden" name="image[{items.IMG}]" value="1" /></td>
|
<td style="text-align: center;"><img src="{items.IMG_SRC}" alt="{items.TEXT_ALT}" title="{items.TEXT_ALT}" style="max-width: 160px;"><input type="hidden" name="image[{items.IMG}]" value="1" /></td>
|
||||||
<td style="vertical-align: top;">[{items.IMG}]</td>
|
<td style="vertical-align: top;">[{items.IMG}]</td>
|
||||||
<!-- IF S_SMILIES -->
|
<!-- IF S_SMILIES -->
|
||||||
<td><input class="text post" type="text" name="code[{items.IMG}]" value="{items.CODE}" size="10" maxlength="50" /></td>
|
<td><input class="text post" type="text" name="code[{items.IMG}]" value="{items.CODE}" size="10" maxlength="50" /></td>
|
||||||
|
@@ -45,7 +45,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<!-- BEGINELSE -->
|
<!-- BEGINELSE -->
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="6" style="text-align: center;">{L_NO_INACTIVE_USERS}</td>
|
<td colspan="7" style="text-align: center;">{L_NO_INACTIVE_USERS}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<!-- END inactive -->
|
<!-- END inactive -->
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@@ -78,6 +78,13 @@
|
|||||||
<p>{L_ERROR_MBSTRING_HTTP_OUTPUT_EXPLAIN}</p>
|
<p>{L_ERROR_MBSTRING_HTTP_OUTPUT_EXPLAIN}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
|
{% if S_DEFAULT_CHARSET_FAIL %}
|
||||||
|
<div class="errorbox">
|
||||||
|
<h3>{{ lang('ERROR_DEFAULT_CHARSET') }}</h3>
|
||||||
|
<p>{{ lang('ERROR_DEFAULT_CHARSET_EXPLAIN') }}</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<!-- IF S_WRITABLE_CONFIG -->
|
<!-- IF S_WRITABLE_CONFIG -->
|
||||||
@@ -133,7 +140,6 @@
|
|||||||
<td class="tabled"><strong>{{ PHP_VERSION_INFO }}</strong></td>
|
<td class="tabled"><strong>{{ PHP_VERSION_INFO }}</strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
{% if S_TOTAL_ORPHAN %}
|
|
||||||
<td class="tabled">{{ lang('NUMBER_ORPHAN') ~ lang('COLON') }}</td>
|
<td class="tabled">{{ lang('NUMBER_ORPHAN') ~ lang('COLON') }}</td>
|
||||||
<td class="tabled">
|
<td class="tabled">
|
||||||
{% if TOTAL_ORPHAN > 0 %}
|
{% if TOTAL_ORPHAN > 0 %}
|
||||||
@@ -142,8 +148,6 @@
|
|||||||
<strong>{{ TOTAL_ORPHAN }}</strong>
|
<strong>{{ TOTAL_ORPHAN }}</strong>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
{% else %}
|
|
||||||
{% endif %}
|
|
||||||
</tr>
|
</tr>
|
||||||
{% if S_VERSIONCHECK %}
|
{% if S_VERSIONCHECK %}
|
||||||
<tr>
|
<tr>
|
||||||
@@ -197,10 +201,12 @@
|
|||||||
<td class="tabled">{{ lang('FILES_PER_DAY') ~ lang('COLON') }}</td>
|
<td class="tabled">{{ lang('FILES_PER_DAY') ~ lang('COLON') }}</td>
|
||||||
<td class="tabled"><strong>{{ FILES_PER_DAY }}</strong></td>
|
<td class="tabled"><strong>{{ FILES_PER_DAY }}</strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
{% if S_VERSIONCHECK %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tabled"> </td>
|
<td class="tabled"> </td>
|
||||||
<td class="tabled"> </td>
|
<td class="tabled"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
|
{% endif %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
<!-- BEGIN ranks -->
|
<!-- BEGIN ranks -->
|
||||||
<tr>
|
<tr>
|
||||||
<!-- EVENT acp_ranks_list_column_before -->
|
<!-- EVENT acp_ranks_list_column_before -->
|
||||||
<td style="text-align: center;"><!-- IF ranks.S_RANK_IMAGE --><img src="{ranks.RANK_IMAGE}" alt="{ranks.RANK_TITLE}" title="{ranks.RANK_TITLE}" /><!-- ELSE --> - <!-- ENDIF --></td>
|
<td style="text-align: center;"><!-- IF ranks.S_RANK_IMAGE --><img src="{ranks.RANK_IMAGE}" alt="{ranks.RANK_TITLE}" title="{ranks.RANK_TITLE}" style="max-width: 160px;"><!-- ELSE --> - <!-- ENDIF --></td>
|
||||||
<td style="text-align: center;">{ranks.RANK_TITLE}</td>
|
<td style="text-align: center;">{ranks.RANK_TITLE}</td>
|
||||||
<td style="text-align: center;"><!-- IF ranks.S_SPECIAL_RANK --> - <!-- ELSE -->{ranks.MIN_POSTS}<!-- ENDIF --></td>
|
<td style="text-align: center;"><!-- IF ranks.S_SPECIAL_RANK --> - <!-- ELSE -->{ranks.MIN_POSTS}<!-- ENDIF --></td>
|
||||||
<!-- EVENT acp_ranks_list_column_after -->
|
<!-- EVENT acp_ranks_list_column_after -->
|
||||||
|
@@ -78,28 +78,31 @@
|
|||||||
|
|
||||||
<!-- ELSEIF S_INDEX -->
|
<!-- ELSEIF S_INDEX -->
|
||||||
|
|
||||||
<script>
|
|
||||||
// <![CDATA[
|
|
||||||
/**
|
|
||||||
* Popup search progress bar
|
|
||||||
*/
|
|
||||||
function popup_progress_bar(progress_type)
|
|
||||||
{
|
|
||||||
close_waitscreen = 0;
|
|
||||||
// no scrollbars
|
|
||||||
popup('{UA_PROGRESS_BAR}&type=' + progress_type, 400, 240, '_index');
|
|
||||||
}
|
|
||||||
// ]]>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<h1>{L_ACP_SEARCH_INDEX}</h1>
|
<h1>{L_ACP_SEARCH_INDEX}</h1>
|
||||||
|
|
||||||
<!-- IF S_CONTINUE_INDEXING -->
|
<!-- IF S_CONTINUE_INDEXING -->
|
||||||
<p>{L_CONTINUE_EXPLAIN}</p>
|
<p>
|
||||||
|
{% if S_CONTINUE_INDEXING == 'create' %}
|
||||||
|
{{ lang('CONTINUE_INDEXING_EXPLAIN') }}
|
||||||
|
{% else %}
|
||||||
|
{{ lang('CONTINUE_DELETING_INDEX_EXPLAIN') }}
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
|
||||||
<form id="acp_search_continue" method="post" action="{U_CONTINUE_INDEXING}">
|
<form id="acp_search_continue" method="post" action="{U_CONTINUE_INDEXING}">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
<legend>{{ lang('CONTINUE_INDEXING') }}</legend>
|
||||||
|
{% if CONTINUE_PROGRESS %}
|
||||||
|
<div class="centered-text">
|
||||||
|
<br>
|
||||||
|
<progress
|
||||||
|
value="{{ CONTINUE_PROGRESS.VALUE }}"
|
||||||
|
max="{{ CONTINUE_PROGRESS.TOTAL }}"
|
||||||
|
style="height: 2em; width: 20em;"></progress><br>
|
||||||
|
{{ CONTINUE_PROGRESS.PERCENTAGE|number_format(2) ~ ' %' }}<br>
|
||||||
|
{{ lang('SEARCH_INDEX_PROGRESS', CONTINUE_PROGRESS.VALUE, CONTINUE_PROGRESS.REMAINING, CONTINUE_PROGRESS.TOTAL) }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
<p class="submit-buttons">
|
<p class="submit-buttons">
|
||||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||||
<input class="button2" type="submit" id="cancel" name="cancel" value="{L_CANCEL}" />
|
<input class="button2" type="submit" id="cancel" name="cancel" value="{L_CANCEL}" />
|
||||||
@@ -151,10 +154,10 @@
|
|||||||
<p class="quick">
|
<p class="quick">
|
||||||
<!-- IF backend.S_INDEXED -->
|
<!-- IF backend.S_INDEXED -->
|
||||||
<input type="hidden" name="action" value="delete" />
|
<input type="hidden" name="action" value="delete" />
|
||||||
<input class="button2" type="submit" value="{L_DELETE_INDEX}" onclick="popup_progress_bar('delete');" />
|
<input class="button2" type="submit" name="submit" value="{{ lang('DELETE_INDEX') }}" />
|
||||||
<!-- ELSE -->
|
<!-- ELSE -->
|
||||||
<input type="hidden" name="action" value="create" />
|
<input type="hidden" name="action" value="create" />
|
||||||
<input class="button2" type="submit" value="{L_CREATE_INDEX}" onclick="popup_progress_bar('create');" />
|
<input class="button2" type="submit" name="submit" value="{{ lang('CREATE_INDEX') }}" />
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
</p>
|
</p>
|
||||||
{S_FORM_TOKEN}
|
{S_FORM_TOKEN}
|
||||||
@@ -165,6 +168,24 @@
|
|||||||
|
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
|
<!-- ELSEIF S_INDEX_PROGRESS -->
|
||||||
|
<div class="successbox">
|
||||||
|
<h3>{{ INDEXING_TITLE }}</h3>
|
||||||
|
<p>
|
||||||
|
{{ INDEXING_EXPLAIN }}
|
||||||
|
{% if INDEXING_PROGRESS %}<br>{{ INDEXING_PROGRESS }}{% endif %}
|
||||||
|
{% if INDEXING_RATE %}<br>{{ INDEXING_RATE }}{% endif %}
|
||||||
|
{% if INDEXING_PROGRESS_BAR %}
|
||||||
|
<br>
|
||||||
|
<progress
|
||||||
|
value="{{ INDEXING_PROGRESS_BAR.VALUE }}"
|
||||||
|
max="{{ INDEXING_PROGRESS_BAR.TOTAL }}"
|
||||||
|
style="height: 2em; width: 20em;"></progress><br>
|
||||||
|
{{ INDEXING_PROGRESS_BAR.PERCENTAGE|number_format(2) ~ ' %' }}<br>
|
||||||
|
{{ lang('SEARCH_INDEX_PROGRESS', INDEXING_PROGRESS_BAR.VALUE, INDEXING_PROGRESS_BAR.REMAINING, INDEXING_PROGRESS_BAR.TOTAL) }}
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
<!-- INCLUDE overall_footer.html -->
|
||||||
|
@@ -96,10 +96,10 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_STYLE_NAME}</th>
|
<th>{L_STYLE_NAME}</th>
|
||||||
<th width="10%" style="white-space: nowrap; text-align: center;">{{ lang('STYLE_VERSION') }}</th>
|
<th style="width: 10%; white-space: nowrap; text-align: center;">{{ lang('STYLE_VERSION') }}</th>
|
||||||
<th width="10%" style="white-space: nowrap; text-align: center;">{L_STYLE_PHPBB_VERSION}</th>
|
<th style="width: 10%; white-space: nowrap; text-align: center;">{L_STYLE_PHPBB_VERSION}</th>
|
||||||
<!-- IF not STYLES_LIST_HIDE_COUNT --><th width="10%" style="white-space: nowrap; text-align: center;">{L_STYLE_USED_BY}</th><!-- ENDIF -->
|
<!-- IF not STYLES_LIST_HIDE_COUNT --><th style="width: 10%; white-space: nowrap; text-align: center;">{L_STYLE_USED_BY}</th><!-- ENDIF -->
|
||||||
<th width="25%" style="white-space: nowrap; text-align: center;">{L_ACTIONS}</th>
|
<th style="width: 25%; white-space: nowrap; text-align: center;">{L_ACTIONS}</th>
|
||||||
{STYLES_LIST_EXTRA}
|
{STYLES_LIST_EXTRA}
|
||||||
<th> </th>
|
<th> </th>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
<!-- END actions -->
|
<!-- END actions -->
|
||||||
</td>
|
</td>
|
||||||
{styles_list.EXTRA}
|
{styles_list.EXTRA}
|
||||||
<td class="{$ROW_CLASS} mark" width="20">
|
<td class="{$ROW_CLASS} mark" style="width: 20px;">
|
||||||
<!-- IF styles_list.STYLE_ID -->
|
<!-- IF styles_list.STYLE_ID -->
|
||||||
{% if styles_list.STYLE_NAME !== 'prosilver' %}
|
{% if styles_list.STYLE_NAME !== 'prosilver' %}
|
||||||
<input class="checkbox" type="checkbox" name="ids[]" value="{styles_list.STYLE_ID}" />
|
<input class="checkbox" type="checkbox" name="ids[]" value="{styles_list.STYLE_ID}" />
|
||||||
|
@@ -137,9 +137,13 @@
|
|||||||
<td><a href="{group.U_EDIT_GROUP}">{group.GROUP_NAME}</a></td>
|
<td><a href="{group.U_EDIT_GROUP}">{group.GROUP_NAME}</a></td>
|
||||||
<td><!-- IF group.S_IS_MEMBER --><!-- IF group.S_NO_DEFAULT --><a href="{group.U_DEFAULT}">{L_GROUP_DEFAULT}</a><!-- ELSE --><strong>{L_GROUP_DEFAULT}</strong><!-- ENDIF --><!-- ELSEIF not group.S_IS_MEMBER and group.U_APPROVE --><a href="{group.U_APPROVE}">{L_GROUP_APPROVE}</a><!-- ELSE --> <!-- ENDIF --></td>
|
<td><!-- IF group.S_IS_MEMBER --><!-- IF group.S_NO_DEFAULT --><a href="{group.U_DEFAULT}">{L_GROUP_DEFAULT}</a><!-- ELSE --><strong>{L_GROUP_DEFAULT}</strong><!-- ENDIF --><!-- ELSEIF not group.S_IS_MEMBER and group.U_APPROVE --><a href="{group.U_APPROVE}">{L_GROUP_APPROVE}</a><!-- ELSE --> <!-- ENDIF --></td>
|
||||||
<td><!-- IF group.S_IS_MEMBER and not group.S_SPECIAL_GROUP --><a href="{group.U_DEMOTE_PROMOTE}">{group.L_DEMOTE_PROMOTE}</a><!-- ELSE --> <!-- ENDIF --></td>
|
<td><!-- IF group.S_IS_MEMBER and not group.S_SPECIAL_GROUP --><a href="{group.U_DEMOTE_PROMOTE}">{group.L_DEMOTE_PROMOTE}</a><!-- ELSE --> <!-- ENDIF --></td>
|
||||||
<td><a href="{group.U_DELETE}">{L_GROUP_DELETE}</a></td>
|
<td>{% if group.U_DELETE %}<a href="{{ group.U_DELETE }}">{{ lang('GROUP_DELETE') }}</a>{% endif %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
<!-- BEGINELSE -->
|
||||||
|
<tr>
|
||||||
|
<td class="row3 centered-text" colspan="4">{{ lang('NO_GROUP') }}</td>
|
||||||
|
</tr>
|
||||||
<!-- END group -->
|
<!-- END group -->
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
<!-- BEGIN warn -->
|
<!-- BEGIN warn -->
|
||||||
<tr>
|
<tr>
|
||||||
<td>{warn.USERNAME}</td>
|
<td>{warn.USERNAME}</td>
|
||||||
<td style="text-align: center; nowrap: nowrap;">{warn.DATE}</td>
|
<td style="text-align: center; white-space: nowrap;">{warn.DATE}</td>
|
||||||
<td>{warn.ACTION}</td>
|
<td>{warn.ACTION}</td>
|
||||||
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{warn.ID}" /></td>
|
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{warn.ID}" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@@ -2738,4 +2738,29 @@ fieldset.permissions .padding {
|
|||||||
height: 1em;
|
height: 1em;
|
||||||
width: 1em;
|
width: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.acp-icon {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
/* stylelint-enable declaration-property-unit-whitelist */
|
/* stylelint-enable declaration-property-unit-whitelist */
|
||||||
|
|
||||||
|
.acp-icon-move-up,
|
||||||
|
.acp-icon-move-down {
|
||||||
|
color: #4ba5de;
|
||||||
|
}
|
||||||
|
|
||||||
|
.acp-icon-settings {
|
||||||
|
color: #62c046;
|
||||||
|
}
|
||||||
|
|
||||||
|
.acp-icon-delete {
|
||||||
|
color: #d74558;
|
||||||
|
}
|
||||||
|
|
||||||
|
.acp-icon-resync {
|
||||||
|
color: #f69934;
|
||||||
|
}
|
||||||
|
|
||||||
|
.acp-icon-disabled {
|
||||||
|
color: #d0d0d0;
|
||||||
|
}
|
||||||
|
@@ -254,5 +254,10 @@ function parse_document(container)
|
|||||||
});
|
});
|
||||||
|
|
||||||
$('#configlist').closest('.send-stats-data-row').addClass('send-stats-data-hidden');
|
$('#configlist').closest('.send-stats-data-row').addClass('send-stats-data-hidden');
|
||||||
|
|
||||||
|
// Do not underline actions icons on hover (could not be done via CSS)
|
||||||
|
$('.actions a:has(i.acp-icon)').mouseover(function () {
|
||||||
|
$(this).css("text-decoration", "none");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
<a id="maincontent"></a>
|
<a id="maincontent"></a>
|
||||||
|
|
||||||
|
|
||||||
<a href="<!-- IF U_LIST -->{U_LIST}<!-- ELSE -->{U_ACTION}<!-- ENDIF -->" style="float: {S_CONTENT_FLOW_END};">« {L_BACK}</a>
|
<a href="<!-- IF U_LIST -->{U_LIST}<!-- ELSE -->{U_ACTION}<!-- ENDIF -->" style="float: {S_CONTENT_FLOW_END};">« {L_BACK}</a>
|
||||||
|
|
||||||
<h1>{L_QUESTIONS}</h1>
|
<h1>{L_QUESTIONS}</h1>
|
||||||
@@ -25,15 +24,18 @@
|
|||||||
<td style="vertical-align: top; width: 50px; text-align: center; white-space: nowrap;">{L_ACTION}</td>
|
<td style="vertical-align: top; width: 50px; text-align: center; white-space: nowrap;">{L_ACTION}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
<!-- BEGIN questions -->
|
{% for question in questions %}
|
||||||
<tr>
|
<tr>
|
||||||
<td style="text-align: left;">{questions.QUESTION_TEXT}</td>
|
{# RTL is already managed by CSS #}
|
||||||
<td style="text-align: center;">{questions.QUESTION_LANG}</td>
|
<td>{{ question.QUESTION_TEXT }}</td>
|
||||||
<td style="text-align: center;"><a href="{questions.U_EDIT}">{ICON_EDIT}</a> <a href="{questions.U_DELETE}">{ICON_DELETE}</a></td>
|
<td style="text-align: center;">{{ question.QUESTION_LANG }}</td>
|
||||||
</tr>
|
<td style="text-align: center;"><a href="{{ question.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ question.U_DELETE }}">{{ ICON_DELETE }}</a></td>
|
||||||
<!-- END questions -->
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
<fieldset class="quick">
|
<fieldset class="quick">
|
||||||
<input class="button1" type="submit" name="add" value="{L_ADD}" />
|
<input class="button1" type="submit" name="add" value="{L_ADD}" />
|
||||||
|
@@ -21,6 +21,20 @@
|
|||||||
<dd><input id="recaptcha_privkey" name="recaptcha_privkey" value="{RECAPTCHA_PRIVKEY}" size="50" type="text" /></dd>
|
<dd><input id="recaptcha_privkey" name="recaptcha_privkey" value="{RECAPTCHA_PRIVKEY}" size="50" type="text" /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<label>{{ lang('RECAPTCHA_V3_DOMAIN') ~ lang('COLON') }}</label>
|
||||||
|
<br><span>{{ lang('RECAPTCHA_V3_DOMAIN_EXPLAIN') }}</span>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
{% for domain in RECAPTCHA_V2_DOMAINS %}
|
||||||
|
<label>
|
||||||
|
<input class="radio" name="recaptcha_v2_domain" type="radio" value="{{ domain }}"{{ domain == RECAPTCHA_V2_DOMAIN ? ' checked' }}>
|
||||||
|
<span>{{ domain }}</span>
|
||||||
|
</label>
|
||||||
|
{% endfor %}
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
@@ -23,7 +23,7 @@ installLang = {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script src="{T_JQUERY_LINK}"></script>
|
<script src="{T_JQUERY_LINK}"></script>
|
||||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.5.1.min.js">\x3C/script>');</script><!-- ENDIF -->
|
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js">\x3C/script>');</script><!-- ENDIF -->
|
||||||
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||||
<!-- INCLUDEJS admin.js -->
|
<!-- INCLUDEJS admin.js -->
|
||||||
{$SCRIPTS}
|
{$SCRIPTS}
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}">
|
<div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}">
|
||||||
<a href="#" class="alert_close"></a>
|
<a href="#" class="alert_close"></a>
|
||||||
<h3 class="alert_title"></h3><p class="alert_text"></p>
|
<h3 class="alert_title"> </h3><p class="alert_text"></p>
|
||||||
</div>
|
</div>
|
||||||
<div id="phpbb_confirm" class="phpbb_alert">
|
<div id="phpbb_confirm" class="phpbb_alert">
|
||||||
<a href="#" class="alert_close"></a>
|
<a href="#" class="alert_close"></a>
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="{T_JQUERY_LINK}"></script>
|
<script src="{T_JQUERY_LINK}"></script>
|
||||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.5.1.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
|
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
|
||||||
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||||
<!-- INCLUDEJS ajax.js -->
|
<!-- INCLUDEJS ajax.js -->
|
||||||
<!-- INCLUDEJS admin.js -->
|
<!-- INCLUDEJS admin.js -->
|
||||||
@@ -42,5 +42,7 @@
|
|||||||
<!-- EVENT acp_overall_footer_after -->
|
<!-- EVENT acp_overall_footer_after -->
|
||||||
{$SCRIPTS}
|
{$SCRIPTS}
|
||||||
|
|
||||||
|
{% EVENT acp_overall_footer_body_after %}
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@@ -12,10 +12,10 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
var jump_page = '{LA_JUMP_PAGE}{L_COLON}';
|
var jump_page = "{{ lang_js('JUMP_PAGE') ~ lang_js('COLON') }}";
|
||||||
var on_page = '{CURRENT_PAGE}';
|
var on_page = '{{ CURRENT_PAGE }}';
|
||||||
var per_page = '{PER_PAGE}';
|
var per_page = '{{ PER_PAGE }}';
|
||||||
var base_url = '{BASE_URL|e('js')}';
|
var base_url = "{{ BASE_URL|e('js') }}";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Jump to page
|
* Jump to page
|
||||||
|
@@ -17,11 +17,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="{T_JQUERY_LINK}"></script>
|
<script src="{T_JQUERY_LINK}"></script>
|
||||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.5.1.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
|
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
|
||||||
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||||
|
|
||||||
<!-- EVENT acp_simple_footer_after -->
|
<!-- EVENT acp_simple_footer_after -->
|
||||||
{$SCRIPTS}
|
{$SCRIPTS}
|
||||||
|
|
||||||
|
{% EVENT acp_simple_footer_body_after %}
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
2
phpBB/assets/javascript/jquery-3.5.1.min.js
vendored
2
phpBB/assets/javascript/jquery-3.5.1.min.js
vendored
File diff suppressed because one or more lines are too long
2
phpBB/assets/javascript/jquery-3.6.0.min.js
vendored
Normal file
2
phpBB/assets/javascript/jquery-3.6.0.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
phpBB/assets/plupload/plupload.full.min.js
vendored
4
phpBB/assets/plupload/plupload.full.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Minimum Requirement: PHP 7.1.3
|
* Minimum Requirement: PHP 7.2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('IN_PHPBB'))
|
if (!defined('IN_PHPBB'))
|
||||||
@@ -51,10 +51,10 @@ if (!defined('PHPBB_INSTALLED'))
|
|||||||
$server_port = 443;
|
$server_port = 443;
|
||||||
}
|
}
|
||||||
|
|
||||||
$script_name = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
|
$script_name = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : getenv('REQUEST_URI');
|
||||||
if (!$script_name)
|
if (!$script_name)
|
||||||
{
|
{
|
||||||
$script_name = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : getenv('REQUEST_URI');
|
$script_name = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
|
||||||
}
|
}
|
||||||
|
|
||||||
// $phpbb_root_path accounts for redirects from e.g. /adm
|
// $phpbb_root_path accounts for redirects from e.g. /adm
|
||||||
@@ -96,6 +96,8 @@ include($phpbb_root_path . 'includes/functions_compatibility.' . $phpEx);
|
|||||||
require($phpbb_root_path . 'includes/constants.' . $phpEx);
|
require($phpbb_root_path . 'includes/constants.' . $phpEx);
|
||||||
require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
|
require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
|
||||||
|
|
||||||
|
// Registered before building the container so the development environment stay capable of intercepting
|
||||||
|
// the container builder exceptions.
|
||||||
if (PHPBB_ENVIRONMENT === 'development')
|
if (PHPBB_ENVIRONMENT === 'development')
|
||||||
{
|
{
|
||||||
\phpbb\debug\debug::enable();
|
\phpbb\debug\debug::enable();
|
||||||
@@ -112,6 +114,14 @@ $phpbb_class_loader_ext->register();
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
$phpbb_container_builder = new \phpbb\di\container_builder($phpbb_root_path, $phpEx);
|
$phpbb_container_builder = new \phpbb\di\container_builder($phpbb_root_path, $phpEx);
|
||||||
|
|
||||||
|
// Check that cache directory is writable before trying to build container
|
||||||
|
$cache_dir = $phpbb_container_builder->get_cache_dir();
|
||||||
|
if (file_exists($cache_dir) && !is_writable($phpbb_container_builder->get_cache_dir()))
|
||||||
|
{
|
||||||
|
die('Unable to write to the cache directory path "' . $cache_dir . '". Ensure that the web server user can write to the cache folder.');
|
||||||
|
}
|
||||||
|
|
||||||
$phpbb_container = $phpbb_container_builder->with_config($phpbb_config_php_file)->get_container();
|
$phpbb_container = $phpbb_container_builder->with_config($phpbb_config_php_file)->get_container();
|
||||||
}
|
}
|
||||||
catch (InvalidArgumentException $e)
|
catch (InvalidArgumentException $e)
|
||||||
@@ -129,6 +139,11 @@ catch (InvalidArgumentException $e)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($phpbb_container->getParameter('debug.error_handler'))
|
||||||
|
{
|
||||||
|
\phpbb\debug\debug::enable();
|
||||||
|
}
|
||||||
|
|
||||||
$phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
|
$phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
|
||||||
$phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver'));
|
$phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver'));
|
||||||
|
|
||||||
|
@@ -15,8 +15,9 @@
|
|||||||
"support": {
|
"support": {
|
||||||
"issues": "https://tracker.phpbb.com",
|
"issues": "https://tracker.phpbb.com",
|
||||||
"forum": "https://www.phpbb.com/community/",
|
"forum": "https://www.phpbb.com/community/",
|
||||||
"wiki": "https://wiki.phpbb.com",
|
"docs": "https://www.phpbb.com/support/docs/",
|
||||||
"irc": "irc://irc.freenode.org/phpbb"
|
"irc": "irc://irc.libera.chat/phpbb",
|
||||||
|
"chat": "https://www.phpbb.com/support/chat/"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"post-update-cmd": "echo 'You MUST manually modify the clean-vendor-dir target in build/build.xml when adding or upgrading dependencies.'"
|
"post-update-cmd": "echo 'You MUST manually modify the clean-vendor-dir target in build/build.xml when adding or upgrading dependencies.'"
|
||||||
@@ -25,15 +26,15 @@
|
|||||||
"phpbb/phpbb-core": "self.version"
|
"phpbb/phpbb-core": "self.version"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1.3",
|
"php": "^7.2 || ^8.0.0",
|
||||||
"ext-json": "*",
|
"ext-json": "*",
|
||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
"bantu/ini-get-wrapper": "~1.0",
|
"bantu/ini-get-wrapper": "~1.0",
|
||||||
|
"carlos-mg89/oauth": "^0.8.15",
|
||||||
|
"composer/package-versions-deprecated": "^1.11",
|
||||||
"google/recaptcha": "~1.1",
|
"google/recaptcha": "~1.1",
|
||||||
"guzzlehttp/guzzle": "~6.3",
|
"guzzlehttp/guzzle": "~6.3",
|
||||||
"lusitanian/oauth": "^0.8.1",
|
|
||||||
"marc1706/fast-image-size": "^1.1",
|
"marc1706/fast-image-size": "^1.1",
|
||||||
"patchwork/utf8": "^1.1",
|
|
||||||
"s9e/text-formatter": "^2.0",
|
"s9e/text-formatter": "^2.0",
|
||||||
"symfony/config": "~3.4",
|
"symfony/config": "~3.4",
|
||||||
"symfony/console": "~3.4",
|
"symfony/console": "~3.4",
|
||||||
@@ -44,7 +45,9 @@
|
|||||||
"symfony/finder": "~3.4",
|
"symfony/finder": "~3.4",
|
||||||
"symfony/http-foundation": "~3.4",
|
"symfony/http-foundation": "~3.4",
|
||||||
"symfony/http-kernel": "~3.4",
|
"symfony/http-kernel": "~3.4",
|
||||||
"symfony/polyfill-intl-idn": "~1.17.0",
|
"symfony/polyfill-intl-normalizer": "^1.23",
|
||||||
|
"symfony/polyfill-mbstring": "^1.23",
|
||||||
|
"symfony/polyfill-php72": "^1.23",
|
||||||
"symfony/process": "^3.4",
|
"symfony/process": "^3.4",
|
||||||
"symfony/proxy-manager-bridge": "~3.4",
|
"symfony/proxy-manager-bridge": "~3.4",
|
||||||
"symfony/routing": "~3.4",
|
"symfony/routing": "~3.4",
|
||||||
@@ -71,7 +74,10 @@
|
|||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "7.1.3"
|
"php": "7.2"
|
||||||
|
},
|
||||||
|
"allow-plugins": {
|
||||||
|
"composer/installers": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2038
phpBB/composer.lock
generated
2038
phpBB/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -40,6 +40,7 @@ services:
|
|||||||
- '@cache.driver'
|
- '@cache.driver'
|
||||||
- '@config'
|
- '@config'
|
||||||
- '@dbal.conn'
|
- '@dbal.conn'
|
||||||
|
- '@dispatcher'
|
||||||
- '%core.root_path%'
|
- '%core.root_path%'
|
||||||
- '%core.php_ext%'
|
- '%core.php_ext%'
|
||||||
|
|
||||||
|
@@ -71,3 +71,4 @@ services:
|
|||||||
class: phpbb\viewonline_helper
|
class: phpbb\viewonline_helper
|
||||||
arguments:
|
arguments:
|
||||||
- '@filesystem'
|
- '@filesystem'
|
||||||
|
- '@dbal.conn'
|
||||||
|
@@ -6,6 +6,7 @@ services:
|
|||||||
- '@routing.helper'
|
- '@routing.helper'
|
||||||
- '%core.root_path%'
|
- '%core.root_path%'
|
||||||
- '%core.php_ext%'
|
- '%core.php_ext%'
|
||||||
|
- '@template'
|
||||||
|
|
||||||
cron.lock_db:
|
cron.lock_db:
|
||||||
class: phpbb\lock\db
|
class: phpbb\lock\db
|
||||||
|
@@ -73,6 +73,7 @@ services:
|
|||||||
class: phpbb\textreparser\plugins\poll_option
|
class: phpbb\textreparser\plugins\poll_option
|
||||||
arguments:
|
arguments:
|
||||||
- '@dbal.conn'
|
- '@dbal.conn'
|
||||||
|
- '%tables.poll_options%'
|
||||||
calls:
|
calls:
|
||||||
- [set_name, [poll_option]]
|
- [set_name, [poll_option]]
|
||||||
tags:
|
tags:
|
||||||
|
@@ -11,6 +11,7 @@ core:
|
|||||||
sql_explain: true
|
sql_explain: true
|
||||||
memory: true
|
memory: true
|
||||||
show_errors: true
|
show_errors: true
|
||||||
|
error_handler: true
|
||||||
|
|
||||||
twig:
|
twig:
|
||||||
debug: true
|
debug: true
|
||||||
|
@@ -4,6 +4,7 @@ services:
|
|||||||
arguments:
|
arguments:
|
||||||
- '@phpbb.installer.controller.helper'
|
- '@phpbb.installer.controller.helper'
|
||||||
- '@language'
|
- '@language'
|
||||||
|
- '@path_helper'
|
||||||
- '@template'
|
- '@template'
|
||||||
- '%core.root_path%'
|
- '%core.root_path%'
|
||||||
|
|
||||||
|
@@ -12,6 +12,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Symfony\Component\Routing\Exception\ExceptionInterface;
|
||||||
|
use Symfony\Component\Routing\Exception\RouteNotFoundException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@@ -28,10 +31,49 @@ $cron_type = $request->variable('cron_type', '');
|
|||||||
|
|
||||||
$get_params_array = $request->get_super_global(\phpbb\request\request_interface::GET);
|
$get_params_array = $request->get_super_global(\phpbb\request\request_interface::GET);
|
||||||
|
|
||||||
|
/* @var $http_kernel \Symfony\Component\HttpKernel\HttpKernel */
|
||||||
|
$http_kernel = $phpbb_container->get('http_kernel');
|
||||||
|
|
||||||
|
/* @var $symfony_request \phpbb\symfony_request */
|
||||||
|
$symfony_request = $phpbb_container->get('symfony_request');
|
||||||
|
|
||||||
/** @var \phpbb\controller\helper $controller_helper */
|
/** @var \phpbb\controller\helper $controller_helper */
|
||||||
$controller_helper = $phpbb_container->get('controller.helper');
|
$controller_helper = $phpbb_container->get('controller.helper');
|
||||||
$response = new RedirectResponse(
|
$cron_route = 'phpbb_cron_run';
|
||||||
$controller_helper->route('phpbb_cron_run', $get_params_array, false),
|
|
||||||
301
|
try
|
||||||
|
{
|
||||||
|
$response = new RedirectResponse(
|
||||||
|
$controller_helper->route($cron_route, $get_params_array, false),
|
||||||
|
Response::HTTP_MOVED_PERMANENTLY
|
||||||
|
);
|
||||||
|
$response->send();
|
||||||
|
$http_kernel->terminate($symfony_request, $response);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
catch (RouteNotFoundException $exception)
|
||||||
|
{
|
||||||
|
$error = 'ROUTE_NOT_FOUND';
|
||||||
|
$error_parameters = $cron_route;
|
||||||
|
$error_code = Response::HTTP_NOT_FOUND;
|
||||||
|
}
|
||||||
|
catch (ExceptionInterface $exception)
|
||||||
|
{
|
||||||
|
$error = 'ROUTE_INVALID_MISSING_PARAMS';
|
||||||
|
$error_parameters = $cron_route;
|
||||||
|
$error_code = Response::HTTP_BAD_REQUEST;
|
||||||
|
}
|
||||||
|
catch (Throwable $exception)
|
||||||
|
{
|
||||||
|
$error = $exception->getMessage();
|
||||||
|
$error_parameters = [];
|
||||||
|
$error_code = Response::HTTP_INTERNAL_SERVER_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
$language = $phpbb_container->get('language');
|
||||||
|
$response = new Response(
|
||||||
|
$language->lang($error, $error_parameters),
|
||||||
|
$error_code
|
||||||
);
|
);
|
||||||
$response->send();
|
$response->send();
|
||||||
|
$http_kernel->terminate($symfony_request, $response);
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
* If you overwrite the original schema files please make sure you save the file with UNIX linefeeds.
|
* If you overwrite the original schema files please make sure you save the file with UNIX linefeeds.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$schema_path = dirname(__FILE__) . '/../install/schemas/';
|
$schema_path = __DIR__ . '/../install/schemas/';
|
||||||
$supported_dbms = array(
|
$supported_dbms = array(
|
||||||
'mssql',
|
'mssql',
|
||||||
'mysql_41',
|
'mysql_41',
|
||||||
@@ -34,7 +34,7 @@ if (!is_writable($schema_path))
|
|||||||
}
|
}
|
||||||
|
|
||||||
define('IN_PHPBB', true);
|
define('IN_PHPBB', true);
|
||||||
$phpbb_root_path = dirname(__FILE__) . '/../';
|
$phpbb_root_path = __DIR__ . '/../';
|
||||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||||
|
|
||||||
include($phpbb_root_path . 'vendor/autoload.php');
|
include($phpbb_root_path . 'vendor/autoload.php');
|
||||||
|
@@ -220,7 +220,7 @@ foreach ($files_to_parse as $file_num => $data)
|
|||||||
{
|
{
|
||||||
$_var = str_replace(array('{', '}'), array('', ''), $var);
|
$_var = str_replace(array('{', '}'), array('', ''), $var);
|
||||||
$lang_references[$_var][] = $data['single_filename'];
|
$lang_references[$_var][] = $data['single_filename'];
|
||||||
$lang_data .= '<li>' . $var . '<br>' . "\n" . ((isset($lang[$_var])) ? htmlspecialchars(str_replace("\\'", "'", $lang[$_var])) : '<span style="color:red">No Language Variable available</span>') . '<br></li><br>' . "\n";
|
$lang_data .= '<li>' . $var . '<br>' . "\n" . ((isset($lang[$_var])) ? htmlspecialchars(str_replace("\\'", "'", $lang[$_var]), ENT_COMPAT) : '<span style="color:red">No Language Variable available</span>') . '<br></li><br>' . "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$lang_data .= '</ul>';
|
$lang_data .= '</ul>';
|
||||||
|
126
phpBB/develop/export_events_for_bbcode.php
Normal file
126
phpBB/develop/export_events_for_bbcode.php
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* This file is part of the phpBB Forum Software package.
|
||||||
|
*
|
||||||
|
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||||
|
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||||
|
*
|
||||||
|
* For full copyright and license information, please see
|
||||||
|
* the docs/CREDITS.txt file.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (php_sapi_name() != 'cli')
|
||||||
|
{
|
||||||
|
die("This program must be run from the command line.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||||
|
$phpbb_root_path = __DIR__ . '/../';
|
||||||
|
define('IN_PHPBB', true);
|
||||||
|
|
||||||
|
function usage()
|
||||||
|
{
|
||||||
|
echo "Usage: export_events_for_bbcode.php COMMAND [VERSION] [EXTENSION]\n";
|
||||||
|
echo "\n";
|
||||||
|
echo "COMMAND:\n";
|
||||||
|
echo " diff:\n";
|
||||||
|
echo " Generate the Event Diff for the release highlights\n";
|
||||||
|
echo "\n";
|
||||||
|
echo " php:\n";
|
||||||
|
echo " Generate the PHP event section of Event_List\n";
|
||||||
|
echo "\n";
|
||||||
|
echo " adm:\n";
|
||||||
|
echo " Generate the ACP Template event section of Event_List\n";
|
||||||
|
echo "\n";
|
||||||
|
echo " styles:\n";
|
||||||
|
echo " Generate the Styles Template event section of Event_List\n";
|
||||||
|
echo "\n";
|
||||||
|
echo "VERSION (diff only):\n";
|
||||||
|
echo " Filter events (minimum version)\n";
|
||||||
|
echo "\n";
|
||||||
|
echo "EXTENSION (Optional):\n";
|
||||||
|
echo " If not given, only core events will be exported.\n";
|
||||||
|
echo " Otherwise only events from the extension will be exported.\n";
|
||||||
|
echo "\n";
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
function validate_argument_count($arguments, $count)
|
||||||
|
{
|
||||||
|
if ($arguments <= $count)
|
||||||
|
{
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
validate_argument_count($argc, 1);
|
||||||
|
|
||||||
|
$action = $argv[1];
|
||||||
|
$extension = isset($argv[2]) ? $argv[2] : null;
|
||||||
|
$min_version = null;
|
||||||
|
require __DIR__ . '/../phpbb/event/php_exporter.' . $phpEx;
|
||||||
|
require __DIR__ . '/../phpbb/event/md_exporter.' . $phpEx;
|
||||||
|
require __DIR__ . '/../phpbb/event/rst_exporter.' . $phpEx;
|
||||||
|
require __DIR__ . '/../includes/functions.' . $phpEx;
|
||||||
|
require __DIR__ . '/../phpbb/event/recursive_event_filter_iterator.' . $phpEx;
|
||||||
|
require __DIR__ . '/../phpbb/recursive_dot_prefix_filter_iterator.' . $phpEx;
|
||||||
|
|
||||||
|
switch ($action)
|
||||||
|
{
|
||||||
|
|
||||||
|
case 'diff':
|
||||||
|
echo "[size=200]Event changes[/size]\n\n";
|
||||||
|
$min_version = $extension;
|
||||||
|
$extension = isset($argv[3]) ? $argv[3] : null;
|
||||||
|
|
||||||
|
case 'php':
|
||||||
|
$exporter = new \phpbb\event\php_exporter($phpbb_root_path, $extension, $min_version);
|
||||||
|
$exporter->crawl_phpbb_directory_php();
|
||||||
|
echo $exporter->export_events_for_bbcode($action);
|
||||||
|
|
||||||
|
if ($action === 'php')
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
echo "\n\n";
|
||||||
|
// no break;
|
||||||
|
|
||||||
|
case 'styles':
|
||||||
|
$exporter = new \phpbb\event\md_exporter($phpbb_root_path, $extension, $min_version);
|
||||||
|
if ($min_version && $action === 'diff')
|
||||||
|
{
|
||||||
|
$exporter->crawl_eventsmd('docs/events.md', 'styles');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$exporter->crawl_phpbb_directory_styles('docs/events.md');
|
||||||
|
}
|
||||||
|
echo $exporter->export_events_for_bbcode($action);
|
||||||
|
|
||||||
|
if ($action === 'styles')
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
echo "\n\n";
|
||||||
|
// no break;
|
||||||
|
|
||||||
|
case 'adm':
|
||||||
|
$exporter = new \phpbb\event\md_exporter($phpbb_root_path, $extension, $min_version);
|
||||||
|
if ($min_version && $action === 'diff')
|
||||||
|
{
|
||||||
|
$exporter->crawl_eventsmd('docs/events.md', 'adm');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$exporter->crawl_phpbb_directory_adm('docs/events.md');
|
||||||
|
}
|
||||||
|
echo $exporter->export_events_for_bbcode($action);
|
||||||
|
|
||||||
|
echo "\n";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
}
|
140
phpBB/develop/export_events_for_rst.php
Normal file
140
phpBB/develop/export_events_for_rst.php
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* This file is part of the phpBB Forum Software package.
|
||||||
|
*
|
||||||
|
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||||
|
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||||
|
*
|
||||||
|
* For full copyright and license information, please see
|
||||||
|
* the docs/CREDITS.txt file.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (php_sapi_name() != 'cli')
|
||||||
|
{
|
||||||
|
die("This program must be run from the command line.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||||
|
$phpbb_root_path = __DIR__ . '/../';
|
||||||
|
define('IN_PHPBB', true);
|
||||||
|
|
||||||
|
function usage()
|
||||||
|
{
|
||||||
|
echo "Usage: export_events_for_rst.php COMMAND [VERSION] [EXTENSION]\n";
|
||||||
|
echo "\n";
|
||||||
|
echo "COMMAND:\n";
|
||||||
|
echo " all:\n";
|
||||||
|
echo " Generate the complete rst for the Event List\n";
|
||||||
|
echo "\n";
|
||||||
|
echo " diff:\n";
|
||||||
|
echo " Generate the Event Diff for the release highlights\n";
|
||||||
|
echo "\n";
|
||||||
|
echo " php:\n";
|
||||||
|
echo " Generate the PHP event section of Event_List\n";
|
||||||
|
echo "\n";
|
||||||
|
echo " adm:\n";
|
||||||
|
echo " Generate the ACP Template event section of Event_List\n";
|
||||||
|
echo "\n";
|
||||||
|
echo " styles:\n";
|
||||||
|
echo " Generate the Styles Template event section of Event_List\n";
|
||||||
|
echo "\n";
|
||||||
|
echo "VERSION (diff only):\n";
|
||||||
|
echo " Filter events (minimum version)\n";
|
||||||
|
echo "\n";
|
||||||
|
echo "EXTENSION (Optional):\n";
|
||||||
|
echo " If not given, only core events will be exported.\n";
|
||||||
|
echo " Otherwise only events from the extension will be exported.\n";
|
||||||
|
echo "\n";
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
function validate_argument_count($arguments, $count)
|
||||||
|
{
|
||||||
|
if ($arguments <= $count)
|
||||||
|
{
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
validate_argument_count($argc, 1);
|
||||||
|
|
||||||
|
$action = $argv[1];
|
||||||
|
$extension = isset($argv[2]) ? $argv[2] : null;
|
||||||
|
$min_version = null;
|
||||||
|
require __DIR__ . '/../phpbb/event/php_exporter.' . $phpEx;
|
||||||
|
require __DIR__ . '/../phpbb/event/md_exporter.' . $phpEx;
|
||||||
|
require __DIR__ . '/../phpbb/event/rst_exporter.' . $phpEx;
|
||||||
|
require __DIR__ . '/../includes/functions.' . $phpEx;
|
||||||
|
require __DIR__ . '/../phpbb/event/recursive_event_filter_iterator.' . $phpEx;
|
||||||
|
require __DIR__ . '/../phpbb/recursive_dot_prefix_filter_iterator.' . $phpEx;
|
||||||
|
|
||||||
|
switch ($action)
|
||||||
|
{
|
||||||
|
|
||||||
|
case 'diff':
|
||||||
|
echo '== Event changes ==' . "\n";
|
||||||
|
echo "Event changes\n";
|
||||||
|
echo "=============\n\n";
|
||||||
|
$min_version = $extension;
|
||||||
|
$extension = isset($argv[3]) ? $argv[3] : null;
|
||||||
|
|
||||||
|
case 'all':
|
||||||
|
if ($action === 'all')
|
||||||
|
{
|
||||||
|
echo "==========================\n";
|
||||||
|
echo "Events List\n";
|
||||||
|
echo "==========================\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case 'php':
|
||||||
|
$exporter = new \phpbb\event\php_exporter($phpbb_root_path, $extension, $min_version);
|
||||||
|
$exporter->crawl_phpbb_directory_php();
|
||||||
|
echo $exporter->export_events_for_rst($action);
|
||||||
|
|
||||||
|
if ($action === 'php')
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
echo "\n\n";
|
||||||
|
// no break;
|
||||||
|
|
||||||
|
case 'styles':
|
||||||
|
$exporter = new \phpbb\event\md_exporter($phpbb_root_path, $extension, $min_version);
|
||||||
|
if ($min_version && $action === 'diff')
|
||||||
|
{
|
||||||
|
$exporter->crawl_eventsmd('docs/events.md', 'styles');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$exporter->crawl_phpbb_directory_styles('docs/events.md');
|
||||||
|
}
|
||||||
|
echo $exporter->export_events_for_rst($action);
|
||||||
|
|
||||||
|
if ($action === 'styles')
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
echo "\n\n";
|
||||||
|
// no break;
|
||||||
|
|
||||||
|
case 'adm':
|
||||||
|
$exporter = new \phpbb\event\md_exporter($phpbb_root_path, $extension, $min_version);
|
||||||
|
if ($min_version && $action === 'diff')
|
||||||
|
{
|
||||||
|
$exporter->crawl_eventsmd('docs/events.md', 'adm');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$exporter->crawl_phpbb_directory_adm('docs/events.md');
|
||||||
|
}
|
||||||
|
echo $exporter->export_events_for_rst($action);
|
||||||
|
|
||||||
|
echo "\n";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
}
|
@@ -290,7 +290,7 @@ function dump_code($code, $filename = 'file.txt')
|
|||||||
$list = explode("\n", $code);
|
$list = explode("\n", $code);
|
||||||
$height = 15 * count($list);
|
$height = 15 * count($list);
|
||||||
echo ' [ <a href="?download=', $hash, '">download</a> <a href="javascript:void(0);" onclick="document.getElementById(\'code-', $hash, '\').style.height = \'', $height, 'px\'; this.style.display = \'none\'; return false;">expand</a> ]<br />';
|
echo ' [ <a href="?download=', $hash, '">download</a> <a href="javascript:void(0);" onclick="document.getElementById(\'code-', $hash, '\').style.height = \'', $height, 'px\'; this.style.display = \'none\'; return false;">expand</a> ]<br />';
|
||||||
echo '<textarea id="code-', $hash, '" onfocus="this.select();" style="width: 98%; height: 200px;">', htmlspecialchars($code), '</textarea><br />';
|
echo '<textarea id="code-', $hash, '" onfocus="this.select();" style="width: 98%; height: 200px;">', htmlspecialchars($code, ENT_COMPAT), '</textarea><br />';
|
||||||
}
|
}
|
||||||
|
|
||||||
function css($list, $path = './', $bidi = false)
|
function css($list, $path = './', $bidi = false)
|
||||||
|
@@ -34,7 +34,7 @@ $mode = $request->variable('mode', '');
|
|||||||
$modules = find_modules($phpbb_root_path . 'language/en');
|
$modules = find_modules($phpbb_root_path . 'language/en');
|
||||||
|
|
||||||
$kkeys = $keys = array();
|
$kkeys = $keys = array();
|
||||||
$langdir = dirname(__FILE__);
|
$langdir = __DIR__;
|
||||||
|
|
||||||
if (isset($lang))
|
if (isset($lang))
|
||||||
{
|
{
|
||||||
|
@@ -191,4 +191,3 @@ foreach ($iterator as $file)
|
|||||||
file_put_contents($file->getPathname(), $code);
|
file_put_contents($file->getPathname(), $code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* Rebuild BOTS
|
* Rebuild BOTS
|
||||||
*
|
*
|
||||||
* You should make a backup from your whole database. Things can and will go wrong.
|
* You should make a backup from your whole database. Things can and will go wrong.
|
||||||
* This will only work if no BOTs were added.
|
* This will only work if no BOTs were added.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@@ -24,10 +24,14 @@ $user->setup();
|
|||||||
|
|
||||||
$bots = array(
|
$bots = array(
|
||||||
'AdsBot [Google]' => array('AdsBot-Google', ''),
|
'AdsBot [Google]' => array('AdsBot-Google', ''),
|
||||||
|
'Ahrefs [Bot]' => array('AhrefsBot/', ''),
|
||||||
'Alexa [Bot]' => array('ia_archiver', ''),
|
'Alexa [Bot]' => array('ia_archiver', ''),
|
||||||
'Alta Vista [Bot]' => array('Scooter/', ''),
|
'Alta Vista [Bot]' => array('Scooter/', ''),
|
||||||
|
'Amazon [Bot]' => array('Amazonbot/', ''),
|
||||||
'Ask Jeeves [Bot]' => array('Ask Jeeves', ''),
|
'Ask Jeeves [Bot]' => array('Ask Jeeves', ''),
|
||||||
'Baidu [Spider]' => array('Baiduspider+(', ''),
|
'Baidu [Spider]' => array('Baiduspider', ''),
|
||||||
|
'Bing [Bot]' => array('bingbot/', ''),
|
||||||
|
'DuckDuckGo [Bot]' => array('DuckDuckBot/', ''),
|
||||||
'Exabot [Bot]' => array('Exabot/', ''),
|
'Exabot [Bot]' => array('Exabot/', ''),
|
||||||
'FAST Enterprise [Crawler]' => array('FAST Enterprise Crawler', ''),
|
'FAST Enterprise [Crawler]' => array('FAST Enterprise Crawler', ''),
|
||||||
'FAST WebCrawler [Crawler]' => array('FAST-WebCrawler/', ''),
|
'FAST WebCrawler [Crawler]' => array('FAST-WebCrawler/', ''),
|
||||||
@@ -41,7 +45,7 @@ $bots = array(
|
|||||||
'Heritrix [Crawler]' => array('heritrix/1.', ''),
|
'Heritrix [Crawler]' => array('heritrix/1.', ''),
|
||||||
'IBM Research [Bot]' => array('ibm.com/cs/crawler', ''),
|
'IBM Research [Bot]' => array('ibm.com/cs/crawler', ''),
|
||||||
'ICCrawler - ICjobs' => array('ICCrawler - ICjobs', ''),
|
'ICCrawler - ICjobs' => array('ICCrawler - ICjobs', ''),
|
||||||
'ichiro [Crawler]' => array('ichiro/2', ''),
|
'ichiro [Crawler]' => array('ichiro/', ''),
|
||||||
'Majestic-12 [Bot]' => array('MJ12bot/', ''),
|
'Majestic-12 [Bot]' => array('MJ12bot/', ''),
|
||||||
'Metager [Bot]' => array('MetagerBot/', ''),
|
'Metager [Bot]' => array('MetagerBot/', ''),
|
||||||
'MSN NewsBlogs' => array('msnbot-NewsBlogs/', ''),
|
'MSN NewsBlogs' => array('msnbot-NewsBlogs/', ''),
|
||||||
@@ -54,6 +58,7 @@ $bots = array(
|
|||||||
'Online link [Validator]' => array('online link validator', ''),
|
'Online link [Validator]' => array('online link validator', ''),
|
||||||
'psbot [Picsearch]' => array('psbot/0', ''),
|
'psbot [Picsearch]' => array('psbot/0', ''),
|
||||||
'Seekport [Bot]' => array('Seekbot/', ''),
|
'Seekport [Bot]' => array('Seekbot/', ''),
|
||||||
|
'Semrush [Bot]' => array('SemrushBot/', ''),
|
||||||
'Sensis [Crawler]' => array('Sensis Web Crawler', ''),
|
'Sensis [Crawler]' => array('Sensis Web Crawler', ''),
|
||||||
'SEO Crawler' => array('SEO search Crawler/', ''),
|
'SEO Crawler' => array('SEO search Crawler/', ''),
|
||||||
'Seoma [Crawler]' => array('Seoma [SEO Crawler]', ''),
|
'Seoma [Crawler]' => array('Seoma [SEO Crawler]', ''),
|
||||||
@@ -63,7 +68,7 @@ $bots = array(
|
|||||||
'Synoo [Bot]' => array('SynooBot/', ''),
|
'Synoo [Bot]' => array('SynooBot/', ''),
|
||||||
'Telekom [Bot]' => array('crawleradmin.t-info@telekom.de', ''),
|
'Telekom [Bot]' => array('crawleradmin.t-info@telekom.de', ''),
|
||||||
'TurnitinBot [Bot]' => array('TurnitinBot/', ''),
|
'TurnitinBot [Bot]' => array('TurnitinBot/', ''),
|
||||||
'Voyager [Bot]' => array('voyager/1.0', ''),
|
'Voyager [Bot]' => array('voyager/', ''),
|
||||||
'W3 [Sitesearch]' => array('W3 SiteSearch Crawler', ''),
|
'W3 [Sitesearch]' => array('W3 SiteSearch Crawler', ''),
|
||||||
'W3C [Linkcheck]' => array('W3C-checklink/', ''),
|
'W3C [Linkcheck]' => array('W3C-checklink/', ''),
|
||||||
'W3C [Validator]' => array('W3C_*Validator', ''),
|
'W3C [Validator]' => array('W3C_*Validator', ''),
|
||||||
@@ -74,7 +79,7 @@ $bots = array(
|
|||||||
'Yahoo [Bot]' => array('Yahoo! Slurp', ''),
|
'Yahoo [Bot]' => array('Yahoo! Slurp', ''),
|
||||||
'YahooSeeker [Bot]' => array('YahooSeeker/', ''),
|
'YahooSeeker [Bot]' => array('YahooSeeker/', ''),
|
||||||
);
|
);
|
||||||
|
|
||||||
$bot_ids = array();
|
$bot_ids = array();
|
||||||
user_get_id_name($bot_ids, array_keys($bots), USER_IGNORE);
|
user_get_id_name($bot_ids, array_keys($bots), USER_IGNORE);
|
||||||
foreach($bot_ids as $bot)
|
foreach($bot_ids as $bot)
|
||||||
|
@@ -50,6 +50,20 @@
|
|||||||
<ol>
|
<ol>
|
||||||
<li><a href="#changelog">Changelog</a>
|
<li><a href="#changelog">Changelog</a>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li><a href="#v3310">Changes since 3.3.10</a></li>
|
||||||
|
<li><a href="#v3310rc1">Changes since 3.3.10-RC1</a></li>
|
||||||
|
<li><a href="#v339">Changes since 3.3.9</a></li>
|
||||||
|
<li><a href="#v339rc1">Changes since 3.3.9-RC1</a></li>
|
||||||
|
<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>
|
||||||
|
<li><a href="#v335rc1">Changes since 3.3.5-RC1</a></li>
|
||||||
|
<li><a href="#v334">Changes since 3.3.4</a></li>
|
||||||
|
<li><a href="#v334rc1">Changes since 3.3.4-RC1</a></li>
|
||||||
|
<li><a href="#v333">Changes since 3.3.3</a></li>
|
||||||
|
<li><a href="#v332">Changes since 3.3.2</a></li>
|
||||||
<li><a href="#v331">Changes since 3.3.1</a></li>
|
<li><a href="#v331">Changes since 3.3.1</a></li>
|
||||||
<li><a href="#v331rc1">Changes since 3.3.1-RC1</a></li>
|
<li><a href="#v331rc1">Changes since 3.3.1-RC1</a></li>
|
||||||
<li><a href="#v330">Changes since 3.3.0</a></li>
|
<li><a href="#v330">Changes since 3.3.0</a></li>
|
||||||
@@ -57,6 +71,7 @@
|
|||||||
<li><a href="#v330b2">Changes since 3.3.0-b2</a></li>
|
<li><a href="#v330b2">Changes since 3.3.0-b2</a></li>
|
||||||
<li><a href="#v330b1">Changes since 3.3.0-b1</a></li>
|
<li><a href="#v330b1">Changes since 3.3.0-b1</a></li>
|
||||||
<li><a href="#v32x">Changes since 3.2.x</a></li>
|
<li><a href="#v32x">Changes since 3.2.x</a></li>
|
||||||
|
<li><a href="#v3210">Changes since 3.2.10</a></li>
|
||||||
<li><a href="#v3210rc2">Changes since 3.2.10-RC2</a></li>
|
<li><a href="#v3210rc2">Changes since 3.2.10-RC2</a></li>
|
||||||
<li><a href="#v3210rc1">Changes since 3.2.10-RC1</a></li>
|
<li><a href="#v3210rc1">Changes since 3.2.10-RC1</a></li>
|
||||||
<li><a href="#v329">Changes since 3.2.9</a></li>
|
<li><a href="#v329">Changes since 3.2.9</a></li>
|
||||||
@@ -152,6 +167,419 @@
|
|||||||
<div class="inner">
|
<div class="inner">
|
||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
<a name="v3310"></a><h3>Changes since 3.3.10</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-8777">PHPBB3-8777</a>] - Users can be removed from all groups leaving no default group</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-11184">PHPBB3-11184</a>] - ACP purports to allow editing of Founder admin permissions</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-12785">PHPBB3-12785</a>] - Redirection of URI are calculated using PHP_SELF</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13276">PHPBB3-13276</a>] - INCLUDEJS and INCLUDECSS do not obey PHPBB_USE_BOARD_URL_PATH</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13364">PHPBB3-13364</a>] - Index Subject not updated after moderation</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15129">PHPBB3-15129</a>] - Wrong Installation guide link</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16796">PHPBB3-16796</a>] - misalignment on index and viewforum for topics and posts titles</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16877">PHPBB3-16877</a>] - OAuth account linking throws a PHP error - PHP 8</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17004">PHPBB3-17004</a>] - Pagination doesn't not show up in UCP > Front Page</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17040">PHPBB3-17040</a>] - bidi.css is loaded when viewing LTR print view pages</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17041">PHPBB3-17041</a>] - RTL Pagination Dropdown Arrow Faces The Wrong Way</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17042">PHPBB3-17042</a>] - Group Description With BBCode List Breaks Layout</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17043">PHPBB3-17043</a>] - Remove Duplicate CP Rule From bidi.css</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17045">PHPBB3-17045</a>] - UCP attachments list page top and bottom pagination counts language strings and font size are different</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17046">PHPBB3-17046</a>] - IE tweaks in simple_header should be included the same as in overall_header</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17053">PHPBB3-17053</a>] - sql_freeresult not working for mysqli & PHP 8</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17076">PHPBB3-17076</a>] - Signature length limit bug</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17086">PHPBB3-17086</a>] - phpBB / Codespaces support</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17089">PHPBB3-17089</a>] - Warning users without post causes PHP warning</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17097">PHPBB3-17097</a>] - PHP 8.2 Deprecations</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17098">PHPBB3-17098</a>] - body class {S_CONTENT_DIRECTION} is missing in ucp_pm_viewmessage_print.html</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17107">PHPBB3-17107</a>] - Who is online incorectly reports Forum location when replying/quoting </li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17115">PHPBB3-17115</a>] - PHP warning with native search backend if query ends with a space followed by hyphen</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17126">PHPBB3-17126</a>] - Filename in instructions about running all tests does not exist</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17127">PHPBB3-17127</a>] - Guest users stats got purged when resetting password</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17129">PHPBB3-17129</a>] - Youtube profile field not up to date in new installations</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17132">PHPBB3-17132</a>] - Missing language variable leads to PHP error in convertor</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17137">PHPBB3-17137</a>] - Attachments can be deleted after end of post editing or deletion time</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17139">PHPBB3-17139</a>] - PHP fatal error while updating with advanced update package</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17140">PHPBB3-17140</a>] - Required parameter phpbb_root_path missing in local_url_bbcode migration</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17141">PHPBB3-17141</a>] - Empty referrer may result in PHP error in get_web_root_path()</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17142">PHPBB3-17142</a>] - Installation errors when using MSSQL+ IIS + PHP 8.2 </li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17145">PHPBB3-17145</a>] - Field 'pf_phpbb_occupation' doesn't have a default value</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17146">PHPBB3-17146</a>] - Undefined array key in notifications code</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17148">PHPBB3-17148</a>] - phpBB3.3.10 Setup does not support PostgreSQL 8.3 </li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17150">PHPBB3-17150</a>] - Forum Image Breaks Layout If Big Image Used - (Forum List Forum Image)</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17160">PHPBB3-17160</a>] - Missing 'Mark' Column Header On MCP Front Page</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17171">PHPBB3-17171</a>] - Remove non functional responsive placeholder text rules in responsive.css</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17172">PHPBB3-17172</a>] - Hovering over a forum link / subforum link shows 'No unread posts' on the tooltip</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17189">PHPBB3-17189</a>] - Installer permission handling on PHP 8.2</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17194">PHPBB3-17194</a>] - Php version in vagrant configuration is not set correctly</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17198">PHPBB3-17198</a>] - Gravatar requires https by default</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-8071">PHPBB3-8071</a>] - DBAL function "sql_nextid" - name is misleading</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-11765">PHPBB3-11765</a>] - short_ipv6() doesn't expect IPv4 embedded IPv6 addresses</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-12904">PHPBB3-12904</a>] - Required custom profile fields and asterisk</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13399">PHPBB3-13399</a>] - Problem with plurals - 'CHARACTERS'</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15973">PHPBB3-15973</a>] - Canonical for the index page</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16913">PHPBB3-16913</a>] - Add Search Index Progress Bar with Stats</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17025">PHPBB3-17025</a>] - Move post destination topic field should not be populated with a zero</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17125">PHPBB3-17125</a>] - Message Editor layout Broken in Latest Safari</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17128">PHPBB3-17128</a>] - Link to PHP date() function</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17152">PHPBB3-17152</a>] - Add template event to viewtopic_body.html</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17188">PHPBB3-17188</a>] - Condition to check if a utf8 string is malformed is wrong</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17116">PHPBB3-17116</a>] - Useless duplicate conditions in ucp_pm_history.html</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17149">PHPBB3-17149</a>] - Update authors and pull request template</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17154">PHPBB3-17154</a>] - Update composer and dependencies to latest versions</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Hardening</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-132">SECURITY-132</a>] - Limit CAPTCHA attempts at registration for single session</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-279">SECURITY-279</a>] - Escape smilies URL and prevent paths in .pak filename</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v3310rc1"></a><h3>Changes since 3.3.10-RC1</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17091">PHPBB3-17091</a>] - PHP 8.0 builds fail due to incompatible doctrine/instantiator</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17092">PHPBB3-17092</a>] - Check for error codes when querying Spamhaus</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v339"></a><h3>Changes since 3.3.9</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16938">PHPBB3-16938</a>] - Unexistent css property in inline style</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17039">PHPBB3-17039</a>] - Group name not colored in manage groups due to typo</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17056">PHPBB3-17056</a>] - PHP 8.2 Deprecation warning about ${var} syntax</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17065">PHPBB3-17065</a>] - Emoji characters in MCP add feedback cause SQL error</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17074">PHPBB3-17074</a>] - Condition to avoid creation of roles with same name is broken</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17081">PHPBB3-17081</a>] - Invalid accept attribute in the post editor</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17082">PHPBB3-17082</a>] - Ability to warn Anonymous</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13291">PHPBB3-13291</a>] - Close notification drop down after clicking "mark all read"</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16105">PHPBB3-16105</a>] - Use "global" reCAPTCHA domain to circumvent blocking in some countries</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17068">PHPBB3-17068</a>] - ALLOW_CDN_EXPLAIN: Incomplete and imprecise description</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17075">PHPBB3-17075</a>] - Add template events to ACP footer after SCRIPTS</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17066">PHPBB3-17066</a>] - Update GitHub Actions configuration to resolve deprecations</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17071">PHPBB3-17071</a>] - Update the emoji CDN</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Hardening</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-275">SECURITY-275</a>] - Improve handling of exceptions in cron redirect</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v339rc1"></a><h3>Changes since 3.3.9-RC1</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17058">PHPBB3-17058</a>] - Special character issue in emails from PHP 8.0 and higher</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Hardening</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-274">SECURITY-274</a>] - Reset login keys/session when resetting password</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16973">PHPBB3-16973</a>] - Remove orphaned roles migration may incorrectly remove role-based group permissions</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16972">PHPBB3-16972</a>] - Rename subtype to advanced_update in package.json generation</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v336rc1"></a><h3>Changes since 3.3.6-RC1</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16872">PHPBB3-16872</a>] - Create event exporter to BBCode</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16956">PHPBB3-16956</a>] - White screen after disable extention</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15028">PHPBB3-15028</a>] - Change update instructions in ACP</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16964">PHPBB3-16964</a>] - Update composer and composer dependencies to latest versions</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Hardening</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-272">SECURITY-272</a>] - Use longer random string for activation key</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-273">SECURITY-273</a>] - Reset reset token info when re-activating account</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v335"></a><h3>Changes since 3.3.5</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16881">PHPBB3-16881</a>] - Fix ACP Statistic Table</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16883">PHPBB3-16883</a>] - Check if var is array before using count in installer diff</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16887">PHPBB3-16887</a>] - Update required PHP version</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16889">PHPBB3-16889</a>] - Postgres on windows builds keep failing</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16892">PHPBB3-16892</a>] - Duplicate entry for jav files in extension guesser</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16895">PHPBB3-16895</a>] - 'Permission' migration tool incorrectly handles role removal</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16897">PHPBB3-16897</a>] - sqlite3 drivers generates warnings when executing an explain query plan that fails</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16900">PHPBB3-16900</a>] - Invalid email subject header on long topic titles</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16904">PHPBB3-16904</a>] - Regression for topic selection in MCP in 3.3.5</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16908">PHPBB3-16908</a>] - PHP warning on non-existent post id requests</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16910">PHPBB3-16910</a>] - PHP warning if trying to attach orphaned files to non existent posts</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16914">PHPBB3-16914</a>] - Missing id in memberlist email template</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16924">PHPBB3-16924</a>] - Double escaping of config values inserted with db config</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13508">PHPBB3-13508</a>] - Support using INCLUDEJS and INCLUDECSS in twig template format</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16828">PHPBB3-16828</a>] - Add hook event before find_users_for_notification() execute</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16859">PHPBB3-16859</a>] - Language selection option is displayed on register if only 1 language is installed</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16885">PHPBB3-16885</a>] - Add filters to Twig - INT and FLOAT</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16888">PHPBB3-16888</a>] - Add the list of allowed attachment types using accept attribute </li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16896">PHPBB3-16896</a>] - Improve .gitignore visibility</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16898">PHPBB3-16898</a>] - Do not restrict the debug error handler to the development environment</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16899">PHPBB3-16899</a>] - Add SVG and WEBP image type to ranks, smilies and topic icons</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16902">PHPBB3-16902</a>] - Improve search results count for MySQL</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16909">PHPBB3-16909</a>] - Add PHP 8.2 builds to test matrix</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16912">PHPBB3-16912</a>] - Improve mail encoding to better match RFC 2047</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16921">PHPBB3-16921</a>] - Increase PHP requirements in the DOCS</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16930">PHPBB3-16930</a>] - Remove redundant topic ID from last post URL</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16933">PHPBB3-16933</a>] - Inconsistent handling of hyphen by phpBB Native search backend</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16939">PHPBB3-16939</a>] - Wait for postgres service to start in GitHub Actions windows builds</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16940">PHPBB3-16940</a>] - Optimize phpBB Native Search</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16927">PHPBB3-16927</a>] - Update plupload to latest version</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16928">PHPBB3-16928</a>] - Update composer and composer dependencies to latest versions</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v335rc1"></a><h3>Changes since 3.3.5-RC1</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16878">PHPBB3-16878</a>] - Error in password_hash() with ARGON2 + Sodium & threadcount > 1</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Hardening</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-254">SECURITY-254</a>] - Disallow whitespace characters that might be invisible</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v334"></a><h3>Changes since 3.3.4</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-12075">PHPBB3-12075</a>] - Language file Modules needs to be added to acp_extensions</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13700">PHPBB3-13700</a>] - Column 'field_show_on_pm' not created before migration profilefield_interests</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16292">PHPBB3-16292</a>] - Database errors during conversion not propagated</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16570">PHPBB3-16570</a>] - Automatic updater no longer handles merge conflicts</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16657">PHPBB3-16657</a>] - Encoded characters inserted from live search for usernames</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16729">PHPBB3-16729</a>] - Unknown named parameter $log_data in phpbb/log/log.php</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16730">PHPBB3-16730</a>] - Build changelog throwing PHP warnings on no changes in version</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16749">PHPBB3-16749</a>] - SQL error on installation</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16757">PHPBB3-16757</a>] - RTL problem in random question text in ACP</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16765">PHPBB3-16765</a>] - contact_admin_acp_module migration lacks effectively_installed check</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16766">PHPBB3-16766</a>] - Updater only shows truncated error messages</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16767">PHPBB3-16767</a>] - Migrator shows wrong migration as missing if unfulfillable</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16770">PHPBB3-16770</a>] - Invalid position of static qualifier in 3.3.4 migration</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16772">PHPBB3-16772</a>] - Emoji not supported in email signature</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16773">PHPBB3-16773</a>] - PostgreSQL backups are missing constraint declarations</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16784">PHPBB3-16784</a>] - Ignore .vscode files in git</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16785">PHPBB3-16785</a>] - Latest release missing from previous versions in build.xml</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16787">PHPBB3-16787</a>] - Error message when "fsockopen" is deactivated</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16789">PHPBB3-16789</a>] - user_delete documentation incorrect</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16793">PHPBB3-16793</a>] - PHP Warning when checking topic/post attachment visibility in PHP 8</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16799">PHPBB3-16799</a>] - OAuth external account linking triggers fatal error on PHP 8</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16808">PHPBB3-16808</a>] - Container used before initialization causes error in PHP8</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16810">PHPBB3-16810</a>] - The no closing tag in Custom BBCodes is still shown onclick</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16812">PHPBB3-16812</a>] - login_body.html missing dt tag for autologin</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16823">PHPBB3-16823</a>] - Datetime class incorrectly handles edge yesterday/today/tomorrow cases</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16832">PHPBB3-16832</a>] - Wrong singular language shown in UCP attachments</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16865">PHPBB3-16865</a>] - Update IRC + discord links in composer and documentation and update docs</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16870">PHPBB3-16870</a>] - Setting float config value can fail with CLI db:migrate</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15729">PHPBB3-15729</a>] - Don't unnecessarily encode email headers in Base64</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15925">PHPBB3-15925</a>] - Add core events for sync and mcp functions</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16138">PHPBB3-16138</a>] - Eliminate redundant f= and t= parameters from board urls</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16736">PHPBB3-16736</a>] - Enforce placement of visibility qualifiers after static</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16748">PHPBB3-16748</a>] - Update coding guidelines to place static after visibility qualifiers</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16752">PHPBB3-16752</a>] - Create event exporter to restructured text</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16754">PHPBB3-16754</a>] - Update doctum</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16771">PHPBB3-16771</a>] - Add core events to MCP</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16783">PHPBB3-16783</a>] - Remove structure only backup</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16788">PHPBB3-16788</a>] - Update s9e/text-formatter to latest</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16795">PHPBB3-16795</a>] - Add template events around signature in viewtopic</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16798">PHPBB3-16798</a>] - Scale down phpBB logo in readme</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16804">PHPBB3-16804</a>] - Extend bbcode help line tooltip</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16809">PHPBB3-16809</a>] - Reset UCP preferences at end of test</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16816">PHPBB3-16816</a>] - acp style html validation fixes</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16822">PHPBB3-16822</a>] - Replace patchwork/utf8 with symfony/polyfill</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16829">PHPBB3-16829</a>] - Add forumtitle and lastsubject text decoration hover</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16831">PHPBB3-16831</a>] - fix tabs missing delimiters and remove old commented classes</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16850">PHPBB3-16850</a>] - Update webfont.js to latest</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16851">PHPBB3-16851</a>] - Add Amazonbot, AhrefsBot and SemrushBot</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16858">PHPBB3-16858</a>] - Update to the latest version of jQuery 3.6.0</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16867">PHPBB3-16867</a>] - Update symfony and text-formatter to latest versions</li>
|
||||||
|
</ul>
|
||||||
|
<h4>New Feature</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16856">PHPBB3-16856</a>] - Add lang_js() function to twig as replacement for LA_</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16769">PHPBB3-16769</a>] - Update composer to latest version</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v334rc1"></a><h3>Changes since 3.3.4-RC1</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16735">PHPBB3-16735</a>] - Trying to access array offset on value of type bool</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16739">PHPBB3-16739</a>] - Wrong variable in report_pm.txt subject</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16740">PHPBB3-16740</a>] - Installation errors in php 8 when using postgresql</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16743">PHPBB3-16743</a>] - Properly check if TMP file exists - PHP 8</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16747">PHPBB3-16747</a>] - Typo in phpBB/language/en/email/post_in_queue.txt </li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v333"></a><h3>Changes since 3.3.3</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16655">PHPBB3-16655</a>] - Suppress "you now also have to pass the CAPTCHA test" message for invisible CAPTCHAs</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16685">PHPBB3-16685</a>] - SQL error in ACP if database name contains a dash</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16690">PHPBB3-16690</a>] - Changing default argument in htmlspecialchars* functions causes test fail</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16691">PHPBB3-16691</a>] - Illegal string offset 'username' on MCP PM report pages</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16696">PHPBB3-16696</a>] - Unsupported operand types in viewforum.php - PHP8</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16697">PHPBB3-16697</a>] - Unable to login after conversion from phpBB2</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16698">PHPBB3-16698</a>] - Check for default char set in includes/acp_main.php checks only for 'UTF-8'</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16705">PHPBB3-16705</a>] - File upload fails with PHP 8 - Error parsing server response</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16706">PHPBB3-16706</a>] - Undefined array key when user is banned</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16707">PHPBB3-16707</a>] - Disable unstable PHP 8.1 builds on Github Actions</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16719">PHPBB3-16719</a>] - PHP notice/warning on installation</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15392">PHPBB3-15392</a>] - Change dirname(__FILE__) to __DIR__ everywhere</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16589">PHPBB3-16589</a>] - Change wording of e-mail templates to decrease word count</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16620">PHPBB3-16620</a>] - Output short array syntax in dev:migration-tips</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16660">PHPBB3-16660</a>] - Remove or Rename "Reset" Button in "Reset Password" Dialogue </li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16681">PHPBB3-16681</a>] - Replace action icons with font icons</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16684">PHPBB3-16684</a>] - GitHub Actions should run on newly created tag and release branches</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16686">PHPBB3-16686</a>] - Simplify get_database_size() SQL query for PostgreSQL</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16689">PHPBB3-16689</a>] - Bitly oauth SQL error if identifier is null</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16709">PHPBB3-16709</a>] - Update s9e/text-formatter to latest release</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16710">PHPBB3-16710</a>] - Allow WEBP images in attachments</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16712">PHPBB3-16712</a>] - Implement thumbnails for WEBP images in attachments</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16724">PHPBB3-16724</a>] - Add some template events</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16725">PHPBB3-16725</a>] - Add MCP core event</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16728">PHPBB3-16728</a>] - Add search result template event</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16726">PHPBB3-16726</a>] - Update composer packages to latest versions</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v332"></a><h3>Changes since 3.3.2</h3>
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16178">PHPBB3-16178</a>] - Container_builder and Container don't use the same cache_dir when cache dir is overridden via env parameter</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16535">PHPBB3-16535</a>] - Migration from phpBB 2.0.x broken with MySQL 8.x</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16582">PHPBB3-16582</a>] - SQL error when saving profile with empty custom field of type "Numbers"</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16619">PHPBB3-16619</a>] - Spelling on non-existant</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16629">PHPBB3-16629</a>] - ACP get_database_size() fails on MySql 8.0.xx</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16630">PHPBB3-16630</a>] - Preserve the text manipulation API</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16640">PHPBB3-16640</a>] - MCP link not showing in menubar</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16641">PHPBB3-16641</a>] - Failure in config.php validation in ACP (Windows) - PHP 8</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16646">PHPBB3-16646</a>] - PHP fatal error while installing</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16648">PHPBB3-16648</a>] - "Access to undeclared static property" error on setExpectedTriggerError() tests</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16653">PHPBB3-16653</a>] - Recaptcha v3 - Request method is set even though that default isn't actually available</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16656">PHPBB3-16656</a>] - Outdated check in code for mbstring http_input & output</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16665">PHPBB3-16665</a>] - Fix Emoji for strings in board settings + new event</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16666">PHPBB3-16666</a>] - Windows tests in github actions can't write file in postgres</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16667">PHPBB3-16667</a>] - Remove unused create_schema install task</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16670">PHPBB3-16670</a>] - OAuth provider unique secret and key check fails on PHP 8 </li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16673">PHPBB3-16673</a>] - Invalid Atom feed</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16677">PHPBB3-16677</a>] - Event handlers inside dropdown containers not working in mobile view</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16679">PHPBB3-16679</a>] - Login form should respect setting for "Allow password reset"</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15722">PHPBB3-15722</a>] - Allow forum topicrow pagination to use topicrow values</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16538">PHPBB3-16538</a>] - Add MySQL 8 tests</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16549">PHPBB3-16549</a>] - Use PHPUnit 9.3+ for PHP 8.0+ tests</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16606">PHPBB3-16606</a>] - UCP_PM_VIEWMESSAGE.HTML Event Request</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16607">PHPBB3-16607</a>] - Oracle DBAL driver uses obsoleted PHP OCI8 aliases and functions</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16617">PHPBB3-16617</a>] - Add events to modify content status variables</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16632">PHPBB3-16632</a>] - Update composer to version 2</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16636">PHPBB3-16636</a>] - Add PHP 8.0 builds to TravisCI</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16659">PHPBB3-16659</a>] - Use Github Actions instead of TravisCI and AppVeyor</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16661">PHPBB3-16661</a>] - Clean up github actions tasks after merge</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16675">PHPBB3-16675</a>] - Restore checking commit messages</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16676">PHPBB3-16676</a>] - Make Github actions cache composer dependendencies</li>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16678">PHPBB3-16678</a>] - Add support for Traits in code sniffer</li>
|
||||||
|
</ul>
|
||||||
|
<h4>New Feature</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15951">PHPBB3-15951</a>] - Add core events to core.mcp_delete_topic_modify_*</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16633">PHPBB3-16633</a>] - Update pull request template after end of life of 3.2</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<a name="v331"></a><h3>Changes since 3.3.1</h3>
|
<a name="v331"></a><h3>Changes since 3.3.1</h3>
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -581,6 +1009,16 @@
|
|||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16185">PHPBB3-16185</a>] - Use Xenial build environment on travis-ci</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16185">PHPBB3-16185</a>] - Use Xenial build environment on travis-ci</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<a name="v3210"></a><h3>Changes since 3.2.10</h3>
|
||||||
|
<h4>Security Issue</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[SECURITY-264] - Invalid conversion of HTML entities when stripping BBCode</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Hardening</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[SECURITY-265] - Reduce verbosity of jabber output in ACP</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<a name="v3210rc2"></a><h3>Changes since 3.2.10-RC2</h3>
|
<a name="v3210rc2"></a><h3>Changes since 3.2.10-RC2</h3>
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* phpBB © Copyright phpBB Limited 2003-2020
|
* phpBB © Copyright phpBB Limited 2003-2021
|
||||||
* https://www.phpbb.com
|
* https://www.phpbb.com
|
||||||
*
|
*
|
||||||
* phpBB is free software. You can redistribute it and/or modify it
|
* phpBB is free software. You can redistribute it and/or modify it
|
||||||
@@ -25,7 +25,6 @@ phpBB Lead Developer: Marc (Marc Alexander)
|
|||||||
phpBB Developers: CHItA (Máté Bartus)
|
phpBB Developers: CHItA (Máté Bartus)
|
||||||
Derky (Derk Ruitenbeek)
|
Derky (Derk Ruitenbeek)
|
||||||
Hanakin (Michael Miday)
|
Hanakin (Michael Miday)
|
||||||
mrgoldy (Gijs Martens)
|
|
||||||
Nicofuma (Tristan Darricau)
|
Nicofuma (Tristan Darricau)
|
||||||
rubencm (Rubén Calvo)
|
rubencm (Rubén Calvo)
|
||||||
|
|
||||||
@@ -64,6 +63,7 @@ phpBB Developers: A_Jelly_Doughnut (Josh Woody) [01/2010 - 11/2010]
|
|||||||
imkingdavid (David King) [11/2012 - 06/2014]
|
imkingdavid (David King) [11/2012 - 06/2014]
|
||||||
kellanved (Henry Sudhof) [04/2007 - 03/2011]
|
kellanved (Henry Sudhof) [04/2007 - 03/2011]
|
||||||
MichaelC (Michael Cullum) [11/2017 - 09/2019]
|
MichaelC (Michael Cullum) [11/2017 - 09/2019]
|
||||||
|
mrgoldy (Gijs Martens) [03/2020 - 06/2023]
|
||||||
nickvergessen (Joas Schilling)[04/2010 - 12/2015]
|
nickvergessen (Joas Schilling)[04/2010 - 12/2015]
|
||||||
Oleg (Oleg Pudeyev) [01/2011 - 05/2013]
|
Oleg (Oleg Pudeyev) [01/2011 - 05/2013]
|
||||||
prototech (Cesar Gallegos) [01/2014 - 12/2016]
|
prototech (Cesar Gallegos) [01/2014 - 12/2016]
|
||||||
|
@@ -64,7 +64,7 @@
|
|||||||
<li><a href="#update_full">Full package</a></li>
|
<li><a href="#update_full">Full package</a></li>
|
||||||
<li><a href="#update_files">Changed files</a></li>
|
<li><a href="#update_files">Changed files</a></li>
|
||||||
<li><a href="#update_patch">Patch file</a></li>
|
<li><a href="#update_patch">Patch file</a></li>
|
||||||
<li><a href="#update_auto">Automatic update package</a></li>
|
<li><a href="#update_advanced">Advanced update package</a></li>
|
||||||
<li><a href="#update_all">All package types</a></li>
|
<li><a href="#update_all">All package types</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
@@ -147,10 +147,11 @@
|
|||||||
<li>Oracle</li>
|
<li>Oracle</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><strong>PHP 7.1.3+</strong> up to and including <strong>PHP 7.4</strong> with support for the database you intend to use.</li>
|
<li><strong>PHP 7.2.0+</strong> up to and including <strong>PHP 8.1</strong> with support for the database you intend to use.</li>
|
||||||
<li>The following PHP modules are required:
|
<li>The following PHP modules are required:
|
||||||
<ul>
|
<ul>
|
||||||
<li>json</li>
|
<li>json</li>
|
||||||
|
<li>mbstring</li>
|
||||||
<li>XML support</li>
|
<li>XML support</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
@@ -290,7 +291,7 @@
|
|||||||
|
|
||||||
<p>The patch file package is for those wanting to update through the patch application, and should only be used by those who are comfortable with it.</p>
|
<p>The patch file package is for those wanting to update through the patch application, and should only be used by those who are comfortable with it.</p>
|
||||||
|
|
||||||
<p>The patch file is one solution for those with changes in to the phpBB core files and do not want to re-add them back to all the changed files. To use this you will need command line access to a standard UNIX type <strong>patch</strong> application. If you do not have access to such an application, but still want to use this update approach, we strongly recommend the <a href="#update_auto">Automatic update package</a> explained below. It is also the recommended update method.</p>
|
<p>The patch file is one solution for those with changes in to the phpBB core files and do not want to re-add them back to all the changed files. To use this you will need command line access to a standard UNIX type <strong>patch</strong> application. If you do not have access to such an application, but still want to use this update approach, we strongly recommend the <a href="#update_full">Full package update</a> explained above. It is also the recommended update method.</p>
|
||||||
|
|
||||||
<p>A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is <strong>3.3.0</strong>, you need the <code>phpBB-3.3.1-patch.zip/tar.bz2</code> file. Place the correct patch in the parent directory containing the phpBB core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: <code>patch -cl -d [PHPBB DIRECTORY] -p1 < [PATCH NAME]</code> (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.</p>
|
<p>A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is <strong>3.3.0</strong>, you need the <code>phpBB-3.3.1-patch.zip/tar.bz2</code> file. Place the correct patch in the parent directory containing the phpBB core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: <code>patch -cl -d [PHPBB DIRECTORY] -p1 < [PATCH NAME]</code> (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.</p>
|
||||||
|
|
||||||
@@ -298,11 +299,13 @@
|
|||||||
|
|
||||||
<p>You should, of course, delete the patch file (or files) after use. As for the other update procedures, you should navigate to <code>/install/app.php/update</code>, select "Update database only" and submit the page after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number. If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
|
<p>You should, of course, delete the patch file (or files) after use. As for the other update procedures, you should navigate to <code>/install/app.php/update</code>, select "Update database only" and submit the page after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number. If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
|
||||||
|
|
||||||
<a name="update_auto"></a><h3>4.iv. Automatic update package</h3>
|
<a name="update_advanced"></a><h3>4.iv. Advanced update package (Expert users)</h3>
|
||||||
|
|
||||||
<p>This update method is only recommended for installations with modifications to core phpBB files. This package detects changed files automatically and merges in changes if needed.</p>
|
<p>This update method should only be used for installations with modifications to core phpBB files. If you simply use Extensions or custom Styles and have not modified core files, please use the Full Package update.</p>
|
||||||
|
|
||||||
<p>The automatic update package will update the board from a given version to the latest version. A number of automatic update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is <strong>3.3.0</strong>, you need the <code>phpBB-3.3.0_to_3.3.1.zip/tar.bz2</code> file.</p>
|
<p>This package detects changed files and merges in changes if needed. Since this type of update has a potential to cause issues while upgrading, it should only be used by expert users.</p>
|
||||||
|
|
||||||
|
<p>The advanced update package will update the board from a given version to the latest version. A number of advanced update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is <strong>3.3.0</strong>, you need the <code>phpBB-3.3.0_to_3.3.1.zip/tar.bz2</code> file.</p>
|
||||||
|
|
||||||
<p>To perform the update, either follow the instructions from the <strong>Administration Control Panel->System</strong> Tab - this should point out that you are running an outdated version and will guide you through the update - or follow the instructions listed below.</p>
|
<p>To perform the update, either follow the instructions from the <strong>Administration Control Panel->System</strong> Tab - this should point out that you are running an outdated version and will guide you through the update - or follow the instructions listed below.</p>
|
||||||
|
|
||||||
|
@@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Updates from phpBB 3.0 RC1, 3.1 RC1 and 3.2 RC1 to the latest version</li>
|
<li>Updates from phpBB 3.0 RC1, 3.1 RC1 and 3.2 RC1 to the latest version</li>
|
||||||
<li>Note: if using the <em>Automatic Update Package</em>, updates are supported from phpBB 3.0.2 onward. To update a pre-3.0.2 installation, first update to 3.0.2 and then update to the current version.</li>
|
<li>Note: if using the <em>Advanced Update Package</em>, updates are supported from phpBB 3.0.2 onward. To update a pre-3.0.2 installation, first update to 3.0.2 and then update to the current version.</li>
|
||||||
<li>Conversions from phpBB 2.0.x to the latest version</li>
|
<li>Conversions from phpBB 2.0.x to the latest version</li>
|
||||||
<li>New installations of phpBB 3.2.x - only the latest released version</li>
|
<li>New installations of phpBB 3.2.x - only the latest released version</li>
|
||||||
<li>New installations of phpBB 3.3.x - only the latest released version</li>
|
<li>New installations of phpBB 3.3.x - only the latest released version</li>
|
||||||
@@ -204,7 +204,7 @@
|
|||||||
|
|
||||||
<a name="irc"></a><h3>3.iv Internet Relay Chat</h3>
|
<a name="irc"></a><h3>3.iv Internet Relay Chat</h3>
|
||||||
|
|
||||||
<p>Another place you may find help is our IRC channel. This operates on the Freenode IRC network, <a href="irc://irc.freenode.net">irc.freenode.net</a> and the channel is <em>#phpbb</em> and can be accessed by any decent IRC client such as mIRC, XChat, etc. Again, please do not abuse this service and be respectful of other users.</p>
|
<p>Another place you may find help is our IRC channel. This operates on the Libera IRC network, <a href="irc://irc.libera.chat">irc.libera.chat</a> and the channel is <em>#phpbb</em> and can be accessed by any decent IRC client such as mIRC, XChat, etc. Again, please do not abuse this service and be respectful of other users.</p>
|
||||||
|
|
||||||
<p>There are other IRC channels available, please see <a href="https://www.phpbb.com/support/irc/">https://www.phpbb.com/support/irc/</a> for the complete list.</p>
|
<p>There are other IRC channels available, please see <a href="https://www.phpbb.com/support/irc/">https://www.phpbb.com/support/irc/</a> for the complete list.</p>
|
||||||
|
|
||||||
@@ -265,7 +265,7 @@
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Your server type/version, e.g. Apache 2.2.3, IIS 7, Sambar, etc.</li>
|
<li>Your server type/version, e.g. Apache 2.2.3, IIS 7, Sambar, etc.</li>
|
||||||
<li>PHP version and mode of operation, e.g. PHP 7.1.3 as a module, PHP 7.1.3 running as CGI, etc.</li>
|
<li>PHP version and mode of operation, e.g. PHP 7.2.0 as a module, PHP 7.2.7 running as CGI, etc.</li>
|
||||||
<li>DB type/version, e.g. MySQL 5.0.77, PostgreSQL 9.0.6, MSSQL Server 2000 (via ODBC), etc.</li>
|
<li>DB type/version, e.g. MySQL 5.0.77, PostgreSQL 9.0.6, MSSQL Server 2000 (via ODBC), etc.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@@ -323,11 +323,11 @@
|
|||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<p>phpBB 3.3.x takes advantage of new features added in PHP 7.1. We recommend that you upgrade to the latest stable release of PHP to run phpBB. The minimum version required is PHP 7.1.3 and the maximum supported version is the latest stable version of PHP.</p>
|
<p>phpBB 3.3.x takes advantage of new features added in PHP 7.2. We recommend that you upgrade to the latest stable release of PHP to run phpBB. The minimum version required is PHP 7.2.0 and the maximum supported version is the latest stable version of PHP.</p>
|
||||||
|
|
||||||
<p>Please remember that running any application on a development (unstable, e.g. a beta release) version of PHP can lead to strange/unexpected results which may appear to be bugs in the application. Therefore, we recommend you upgrade to the newest stable version of PHP before running phpBB. If you are running a development version of PHP please check any bugs you find on a system running a stable release before submitting.</p>
|
<p>Please remember that running any application on a development (unstable, e.g. a beta release) version of PHP can lead to strange/unexpected results which may appear to be bugs in the application. Therefore, we recommend you upgrade to the newest stable version of PHP before running phpBB. If you are running a development version of PHP please check any bugs you find on a system running a stable release before submitting.</p>
|
||||||
|
|
||||||
<p>This board has been developed and tested under Linux and Windows (amongst others) running Apache using MySQLi 4.1.3, 4.x, 5.x, MariaDB 5.x, PostgreSQL 8.x, Oracle 8 and SQLite 3. Versions of PHP used range from 7.1.3 to 7.2.x and 7.3.x without issues.</p>
|
<p>This board has been developed and tested under Linux and Windows (amongst others) running Apache using MySQLi 4.1.3, 4.x, 5.x, MariaDB 5.x, PostgreSQL 8.x, Oracle 8 and SQLite 3. Versions of PHP used range from 7.2.0 to 7.4.x, 8.0.x and 8.1.x.</p>
|
||||||
|
|
||||||
<a name="phpsec"></a><h3>7.i. Notice on PHP security issues</h3>
|
<a name="phpsec"></a><h3>7.i. Notice on PHP security issues</h3>
|
||||||
|
|
||||||
|
55
phpBB/docs/codespaces.md
Normal file
55
phpBB/docs/codespaces.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
## Using GitHub Codespaces with phpBB
|
||||||
|
|
||||||
|
phpBB includes support for [Codespaces](https://docs.github.com/en/codespaces), GitHub's cloud-based software development environment. This allows developers and contributors to run and modify phpBB on a consistent environment through a GitHub account without the need to set up a local web server.
|
||||||
|
|
||||||
|
Codespaces is completely web-based and does not require any code to be downloaded locally.
|
||||||
|
|
||||||
|
Features include:
|
||||||
|
|
||||||
|
* Automatic phpBB installation
|
||||||
|
* Access to [VS Code](https://docs.github.com/en/codespaces/the-githubdev-web-based-editor) through the web browser
|
||||||
|
* [Xdebug](https://github.com/xdebug/vscode-php-debug) pre-configured to step through the phpBB code and add breakpoints
|
||||||
|
* Full LAMP stack with database access
|
||||||
|
* Commit, push and test code entirely online
|
||||||
|
|
||||||
|
## How it works
|
||||||
|
|
||||||
|
### To run phpBB in Codespaces
|
||||||
|
|
||||||
|
* On the GitHub.com website, fork the `phpbb/phpbb` repository.
|
||||||
|
* Under the `Code` button, click the `Codespaces` tab and then the `+` button to create a new Codespace.
|
||||||
|
* It may take several minutes to configure and install phpBB on the newly created virtual machine. Once it is ready, a web-based VS Code instance will appear.
|
||||||
|
* Under the `Ports` tab, click on the local address under port 80 to open the private website for the new phpBB installation.
|
||||||
|
* By default, the login details for the new phpBB installation are `admin` / `adminadmin`
|
||||||
|
* Port 9003 is also open to allow Xdebug connections.
|
||||||
|
|
||||||
|
### To use the command line
|
||||||
|
|
||||||
|
* Click on the `Terminal` tab at the bottom of VS Code and make sure the `bash` window is selected in the right sidebar.
|
||||||
|
* The `workspaces/phpbb` directory contains the code from the workspace.
|
||||||
|
* Run `mysql -h 127.0.0.1 -u phpbb -p` to log into the MySQL database. The password is `phpbb` and the database name is `phpbb`.
|
||||||
|
* Tip: type `use phpbb;` after logging in to MySQL to switch to the correct database, then queries can be run for the phpBB tables.
|
||||||
|
|
||||||
|
### To debug code
|
||||||
|
|
||||||
|
* Click the `Run and Debug` tab on the left sidebar in VS Code, then click the green play button next to the `Debug phpBB` option.
|
||||||
|
* Tip: to confirm that Xdebug is working correctly, run `lsof -i :9003` on the command line. It should show that the port is listening for connections.
|
||||||
|
* In any of the files in the `phpBB/` directory, add a breakpoint by clicking just to the left of a line number in VS Code. Then, access the private website created on port 80 (found under the VS Code `Ports` tab) through the web browser and navigate to the page with a breakpoint. VS Code will automatically pause execution where the breakpoint is hit, and under the `Run and Debug` tab a variable list will be shown.
|
||||||
|
|
||||||
|
### To commit and push code
|
||||||
|
|
||||||
|
* To save a change made using VS Code on Codespaces, click the `Source Control` tab on the left sidebar in VS Code.
|
||||||
|
* To stage changes or discard changes, right click the file(s) and select the appropriate option.
|
||||||
|
* Type a commit message and select the `Commit and Push` option.
|
||||||
|
|
||||||
|
**Remember to stop a Codespace once you are finished with it.** GitHub provides all users with a limited number of free core hours per month. A Codespace can be stopped (or deleted) from the main repository page on GitHub.com.
|
||||||
|
|
||||||
|
## Technical information
|
||||||
|
|
||||||
|
All of the Codespaces configuration can be found in the `.devcontainer/` directory. The `devcontainer.json` holds the general environment information and `Dockerfile` contains the commands to set up the LAMP stack which enables phpBB to run.
|
||||||
|
|
||||||
|
`setup.sh` is used to install phpBB from the command line, using pre-determined details from `phpbb-config.yml`.
|
||||||
|
|
||||||
|
Codespaces can run without the configuration inside the `.vscode/` directory, however by including this no manual intervention is required to set the Xdebug IDE code to `VSCode` (inside `settings.json`) and `Debug phpBB` information, such as the path mapping from the Apache webroot to the `phpbb/phpBB` directory (inside `launch.json`).
|
||||||
|
|
||||||
|
This configuration information can be safely modified to change the development environment, followed by `Ctrl+Shift+P` in VS Code and selection of the `Full Rebuild Container` option.
|
@@ -718,18 +718,18 @@ switch ($mode)
|
|||||||
<h4>Class Members</h4>
|
<h4>Class Members</h4>
|
||||||
<p>Use the explicit visibility qualifiers <code>public</code>, <code>private</code> and <code>protected</code> for all properties instead of <code>var</code>.
|
<p>Use the explicit visibility qualifiers <code>public</code>, <code>private</code> and <code>protected</code> for all properties instead of <code>var</code>.
|
||||||
|
|
||||||
<p>Place the <code>static</code> qualifier before the visibility qualifiers.</p>
|
<p>Place the <code>static</code> qualifier after the visibility qualifiers.</p>
|
||||||
|
|
||||||
<p class="bad">//Wrong </p>
|
<p class="bad">//Wrong </p>
|
||||||
<div class="codebox"><pre>
|
<div class="codebox"><pre>
|
||||||
var $x;
|
var $x;
|
||||||
private static function f()</pre>
|
static private function f()</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="good">// Right </p>
|
<p class="good">// Right </p>
|
||||||
<div class="codebox"><pre>
|
<div class="codebox"><pre>
|
||||||
public $x;
|
public $x;
|
||||||
static private function f()</pre>
|
private static function f()</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h4>Constants</h4>
|
<h4>Constants</h4>
|
||||||
@@ -1304,6 +1304,7 @@ parent = prosilver</pre>
|
|||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
<h4>PHP</h4>
|
<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>
|
<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>
|
<div class="codebox"><pre>
|
||||||
|
@@ -274,6 +274,12 @@ acp_overall_footer_after
|
|||||||
* Since: 3.1.0-a1
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content below the footer in the ACP
|
* Purpose: Add content below the footer in the ACP
|
||||||
|
|
||||||
|
acp_overall_footer_body_after
|
||||||
|
===
|
||||||
|
* Location: adm/style/overall_footer.html
|
||||||
|
* Since: 3.3.10-RC1
|
||||||
|
* Purpose: Add content before the `</body>` tag but after the $SCRIPTS var, i.e. after the js scripts have been loaded
|
||||||
|
|
||||||
acp_overall_header_body_before
|
acp_overall_header_body_before
|
||||||
===
|
===
|
||||||
* Location: adm/style/overall_header.html
|
* Location: adm/style/overall_header.html
|
||||||
@@ -558,6 +564,12 @@ acp_simple_footer_after
|
|||||||
* Since: 3.1.0-a1
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content below the simple footer in the ACP
|
* Purpose: Add content below the simple footer in the ACP
|
||||||
|
|
||||||
|
acp_simple_footer_body_after
|
||||||
|
===
|
||||||
|
* Location: adm/style/simple_footer.html
|
||||||
|
* Since: 3.3.10-RC1
|
||||||
|
* Purpose: Add content before the `</body>` tag but after the $SCRIPTS var, i.e. after the js scripts have been loaded
|
||||||
|
|
||||||
acp_simple_header_body_before
|
acp_simple_header_body_before
|
||||||
===
|
===
|
||||||
* Location: adm/style/simple_header.html
|
* Location: adm/style/simple_header.html
|
||||||
@@ -986,6 +998,34 @@ mcp_forum_actions_before
|
|||||||
* Since: 3.1.11-RC1
|
* Since: 3.1.11-RC1
|
||||||
* Purpose: Add some information before actions fieldset
|
* Purpose: Add some information before actions fieldset
|
||||||
|
|
||||||
|
mcp_forum_last_post_author_username_append
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/mcp_forum.html (2)
|
||||||
|
* Since: 3.3.4-RC1
|
||||||
|
* Purpose: Append information to last post author username of member
|
||||||
|
|
||||||
|
mcp_forum_last_post_author_username_prepend
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/mcp_forum.html (2)
|
||||||
|
* Since: 3.3.4-RC1
|
||||||
|
* Purpose: Prepend information to last post author username of member
|
||||||
|
|
||||||
|
mcp_forum_topic_author_username_append
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/mcp_forum.html
|
||||||
|
* Since: 3.3.4-RC1
|
||||||
|
* Purpose: Append information to topic author username of member
|
||||||
|
|
||||||
|
mcp_forum_topic_author_username_prepend
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/mcp_forum.html
|
||||||
|
* Since: 3.3.4-RC1
|
||||||
|
* Purpose: Prepend information to topic author username of member
|
||||||
|
|
||||||
mcp_forum_topic_title_after
|
mcp_forum_topic_title_after
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
@@ -2237,6 +2277,13 @@ search_results_header_before
|
|||||||
* Since: 3.1.4-RC1
|
* Since: 3.1.4-RC1
|
||||||
* Purpose: Add content before the header of the search results.
|
* Purpose: Add content before the header of the search results.
|
||||||
|
|
||||||
|
search_results_jumpbox_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/search_results.html
|
||||||
|
* Since: 3.3.4-RC1
|
||||||
|
* Purpose: Add content before the jumpbox of the search results.
|
||||||
|
|
||||||
search_results_last_post_author_username_append
|
search_results_last_post_author_username_append
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
@@ -2279,6 +2326,13 @@ search_results_post_before
|
|||||||
* Since: 3.1.0-b3
|
* Since: 3.1.0-b3
|
||||||
* Purpose: Add data before search result posts
|
* Purpose: Add data before search result posts
|
||||||
|
|
||||||
|
search_results_post_subject_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/search_results.html
|
||||||
|
* Since: 3.3.4-RC1
|
||||||
|
* Purpose: Add data before search result posts subject
|
||||||
|
|
||||||
search_results_postprofile_after
|
search_results_postprofile_after
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
@@ -2328,6 +2382,20 @@ search_results_topic_before
|
|||||||
* Since: 3.1.0-b4
|
* Since: 3.1.0-b4
|
||||||
* Purpose: Add data before search result topics
|
* Purpose: Add data before search result topics
|
||||||
|
|
||||||
|
search_results_topic_header_lastpost_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/search_results.html
|
||||||
|
* Since: 3.3.4-RC1
|
||||||
|
* Purpose: Add header column(s) after `lastpost` column in search result topics
|
||||||
|
|
||||||
|
search_results_topic_row_lastpost_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/search_results.html
|
||||||
|
* Since: 3.3.4-RC1
|
||||||
|
* Purpose: Add data column(s) after `lastpost` column in search result topics
|
||||||
|
|
||||||
search_results_topic_title_after
|
search_results_topic_title_after
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
@@ -2474,6 +2542,13 @@ ucp_header_friends_online_username_full_prepend
|
|||||||
* Since: 3.2.10-RC1
|
* Since: 3.2.10-RC1
|
||||||
* Purpose: Prepend information to online friends username in UCP
|
* 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
|
ucp_main_front_user_activity_after
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
@@ -2502,6 +2577,13 @@ ucp_main_front_user_activity_prepend
|
|||||||
* Since: 3.1.11-RC1
|
* Since: 3.1.11-RC1
|
||||||
* Purpose: Add content before first user activity info viewing UCP front page
|
* 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
|
ucp_pm_history_post_buttons_after
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
@@ -2562,6 +2644,20 @@ ucp_pm_history_row_message_author_username_prepend
|
|||||||
* Since: 3.2.8-RC1
|
* Since: 3.2.8-RC1
|
||||||
* Purpose: Prepend information to message author username of member
|
* Purpose: Prepend information to message author username of member
|
||||||
|
|
||||||
|
ucp_pm_viewmessage_author_full_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/ucp_pm_viewmessage.html
|
||||||
|
* Since: 3.3.3-RC1
|
||||||
|
* Purpose: Add content right after the message author when viewing a private message
|
||||||
|
|
||||||
|
ucp_pm_viewmessage_author_full_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/ucp_pm_viewmessage.html
|
||||||
|
* Since: 3.3.3-RC1
|
||||||
|
* Purpose: Add content right before the message author when viewing a private message
|
||||||
|
|
||||||
ucp_pm_viewmessage_avatar_after
|
ucp_pm_viewmessage_avatar_after
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
@@ -3208,6 +3304,13 @@ viewtopic_body_postrow_content_after
|
|||||||
* Since: 3.2.4-RC1
|
* Since: 3.2.4-RC1
|
||||||
* Purpose: Add content after the message content in topics views
|
* Purpose: Add content after the message content in topics views
|
||||||
|
|
||||||
|
viewtopic_body_postrow_content_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
|
* Since: 3.3.11-RC1
|
||||||
|
* Purpose: Add content before the message content in topics views
|
||||||
|
|
||||||
viewtopic_body_postrow_custom_fields_after
|
viewtopic_body_postrow_custom_fields_after
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
@@ -3289,6 +3392,20 @@ viewtopic_body_postrow_rank_before
|
|||||||
* Purpose: Add data before the rank on the user profile when viewing
|
* Purpose: Add data before the rank on the user profile when viewing
|
||||||
a post
|
a post
|
||||||
|
|
||||||
|
viewtopic_body_postrow_signature_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
|
* Since: 3.3.5-RC1
|
||||||
|
* Purpose: Add content after the signature
|
||||||
|
|
||||||
|
viewtopic_body_postrow_signature_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
|
* Since: 3.3.5-RC1
|
||||||
|
* Purpose: Add content before the signature
|
||||||
|
|
||||||
viewtopic_body_topic_actions_before
|
viewtopic_body_topic_actions_before
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
|
@@ -220,7 +220,7 @@ else
|
|||||||
{
|
{
|
||||||
phpbb_download_handle_forum_auth($db, $auth, $attachment['topic_id']);
|
phpbb_download_handle_forum_auth($db, $auth, $attachment['topic_id']);
|
||||||
|
|
||||||
$sql = 'SELECT forum_id, post_visibility
|
$sql = 'SELECT forum_id, poster_id, post_visibility
|
||||||
FROM ' . POSTS_TABLE . '
|
FROM ' . POSTS_TABLE . '
|
||||||
WHERE post_id = ' . (int) $attachment['post_msg_id'];
|
WHERE post_id = ' . (int) $attachment['post_msg_id'];
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
@@ -759,7 +759,7 @@ class acp_attachments
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$filename_list .= '<option value="' . htmlspecialchars($img) . '"' . $selected . '>' . htmlspecialchars($img) . '</option>';
|
$filename_list .= '<option value="' . htmlspecialchars($img, ENT_COMPAT) . '"' . $selected . '>' . htmlspecialchars($img, ENT_COMPAT) . '</option>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1000,29 +1000,45 @@ class acp_attachments
|
|||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
$files_added = $space_taken = 0;
|
$files_added = $space_taken = 0;
|
||||||
|
$error_msg = '';
|
||||||
|
$upload_row = [];
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$post_row = $post_info[$upload_list[$row['attach_id']]];
|
$upload_row = [
|
||||||
|
'FILE_INFO' => $user->lang('UPLOADING_FILE_TO', $row['real_filename'], $upload_list[$row['attach_id']]),
|
||||||
|
];
|
||||||
|
|
||||||
$template->assign_block_vars('upload', array(
|
if (isset($post_info[$upload_list[$row['attach_id']]]))
|
||||||
'FILE_INFO' => sprintf($user->lang['UPLOADING_FILE_TO'], $row['real_filename'], $post_row['post_id']),
|
{
|
||||||
'S_DENIED' => (!$auth->acl_get('f_attach', $post_row['forum_id'])) ? true : false,
|
$post_row = $post_info[$upload_list[$row['attach_id']]];
|
||||||
'L_DENIED' => (!$auth->acl_get('f_attach', $post_row['forum_id'])) ? sprintf($user->lang['UPLOAD_DENIED_FORUM'], $forum_names[$row['forum_id']]) : '')
|
$upload_row = array_merge($upload_row, [
|
||||||
);
|
'S_DENIED' => !$auth->acl_get('f_attach', $post_row['forum_id']),
|
||||||
|
'L_DENIED' => !$auth->acl_get('f_attach', $post_row['forum_id']) ? $user->lang('UPLOAD_DENIED_FORUM', $forum_names[$row['forum_id']]) : '',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$error_msg = $user->lang('UPLOAD_POST_NOT_EXIST', $row['real_filename'], $upload_list[$row['attach_id']]);
|
||||||
|
$upload_row = array_merge($upload_row, [
|
||||||
|
'ERROR_MSG' => $error_msg,
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
|
||||||
if (!$auth->acl_get('f_attach', $post_row['forum_id']))
|
$template->assign_block_vars('upload', $upload_row);
|
||||||
|
|
||||||
|
if ($error_msg || !$auth->acl_get('f_attach', $post_row['forum_id']))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adjust attachment entry
|
// Adjust attachment entry
|
||||||
$sql_ary = array(
|
$sql_ary = [
|
||||||
'in_message' => 0,
|
'in_message' => 0,
|
||||||
'is_orphan' => 0,
|
'is_orphan' => 0,
|
||||||
'poster_id' => $post_row['poster_id'],
|
'poster_id' => $post_row['poster_id'],
|
||||||
'post_msg_id' => $post_row['post_id'],
|
'post_msg_id' => $post_row['post_id'],
|
||||||
'topic_id' => $post_row['topic_id'],
|
'topic_id' => $post_row['topic_id'],
|
||||||
);
|
];
|
||||||
|
|
||||||
$sql = 'UPDATE ' . ATTACHMENTS_TABLE . '
|
$sql = 'UPDATE ' . ATTACHMENTS_TABLE . '
|
||||||
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
|
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
|
||||||
@@ -1042,7 +1058,7 @@ class acp_attachments
|
|||||||
$space_taken += $row['filesize'];
|
$space_taken += $row['filesize'];
|
||||||
$files_added++;
|
$files_added++;
|
||||||
|
|
||||||
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_ATTACH_FILEUPLOAD', false, array($post_row['post_id'], $row['real_filename']));
|
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_ATTACH_FILEUPLOAD', false, [$post_row['post_id'], $row['real_filename']]);
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
@@ -1054,9 +1070,9 @@ class acp_attachments
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars([
|
||||||
'S_ORPHAN' => true)
|
'S_ORPHAN' => true,
|
||||||
);
|
]);
|
||||||
|
|
||||||
$attachments_per_page = (int) $config['topics_per_page'];
|
$attachments_per_page = (int) $config['topics_per_page'];
|
||||||
|
|
||||||
@@ -1084,15 +1100,15 @@ class acp_attachments
|
|||||||
|
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$template->assign_block_vars('orphan', array(
|
$template->assign_block_vars('orphan', [
|
||||||
'FILESIZE' => get_formatted_filesize($row['filesize']),
|
'FILESIZE' => get_formatted_filesize($row['filesize']),
|
||||||
'FILETIME' => $user->format_date($row['filetime']),
|
'FILETIME' => $user->format_date($row['filetime']),
|
||||||
'REAL_FILENAME' => utf8_basename($row['real_filename']),
|
'REAL_FILENAME' => utf8_basename($row['real_filename']),
|
||||||
'PHYSICAL_FILENAME' => utf8_basename($row['physical_filename']),
|
'PHYSICAL_FILENAME' => utf8_basename($row['physical_filename']),
|
||||||
'ATTACH_ID' => $row['attach_id'],
|
'ATTACH_ID' => $row['attach_id'],
|
||||||
'POST_IDS' => (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',
|
'POST_ID' => (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',
|
||||||
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'mode=view&id=' . $row['attach_id']))
|
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'mode=view&id=' . $row['attach_id']),
|
||||||
);
|
]);
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
@@ -1105,10 +1121,10 @@ class acp_attachments
|
|||||||
$start
|
$start
|
||||||
);
|
);
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars([
|
||||||
'TOTAL_FILES' => $num_files,
|
'TOTAL_FILES' => $num_files,
|
||||||
'TOTAL_SIZE' => get_formatted_filesize($total_size),
|
'TOTAL_SIZE' => get_formatted_filesize($total_size),
|
||||||
));
|
]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1278,7 +1294,7 @@ class acp_attachments
|
|||||||
|
|
||||||
'S_IN_MESSAGE' => (bool) $row['in_message'],
|
'S_IN_MESSAGE' => (bool) $row['in_message'],
|
||||||
|
|
||||||
'U_VIEW_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "t={$row['topic_id']}&p={$row['post_msg_id']}") . "#p{$row['post_msg_id']}",
|
'U_VIEW_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "p={$row['post_msg_id']}") . "#p{$row['post_msg_id']}",
|
||||||
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'mode=view&id=' . $row['attach_id']))
|
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'mode=view&id=' . $row['attach_id']))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -62,7 +62,7 @@ class acp_bbcodes
|
|||||||
}
|
}
|
||||||
|
|
||||||
$bbcode_match = $row['bbcode_match'];
|
$bbcode_match = $row['bbcode_match'];
|
||||||
$bbcode_tpl = htmlspecialchars($row['bbcode_tpl']);
|
$bbcode_tpl = htmlspecialchars($row['bbcode_tpl'], ENT_COMPAT);
|
||||||
$display_on_posting = $row['display_on_posting'];
|
$display_on_posting = $row['display_on_posting'];
|
||||||
$bbcode_helpline = $row['bbcode_helpline'];
|
$bbcode_helpline = $row['bbcode_helpline'];
|
||||||
break;
|
break;
|
||||||
@@ -86,7 +86,7 @@ class acp_bbcodes
|
|||||||
$display_on_posting = $request->variable('display_on_posting', 0);
|
$display_on_posting = $request->variable('display_on_posting', 0);
|
||||||
|
|
||||||
$bbcode_match = $request->variable('bbcode_match', '');
|
$bbcode_match = $request->variable('bbcode_match', '');
|
||||||
$bbcode_tpl = htmlspecialchars_decode($request->variable('bbcode_tpl', '', true));
|
$bbcode_tpl = html_entity_decode($request->variable('bbcode_tpl', '', true), ENT_COMPAT);
|
||||||
$bbcode_helpline = $request->variable('bbcode_helpline', '', true);
|
$bbcode_helpline = $request->variable('bbcode_helpline', '', true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -235,7 +235,7 @@ class acp_bbcodes
|
|||||||
trigger_error($user->lang['BBCODE_TAG_DEF_TOO_LONG'] . adm_back_link($this->u_action), E_USER_WARNING);
|
trigger_error($user->lang['BBCODE_TAG_DEF_TOO_LONG'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen($bbcode_helpline) > 255)
|
if (strlen($bbcode_helpline) > 3000)
|
||||||
{
|
{
|
||||||
trigger_error($user->lang['BBCODE_HELPLINE_TOO_LONG'] . adm_back_link($this->u_action), E_USER_WARNING);
|
trigger_error($user->lang['BBCODE_HELPLINE_TOO_LONG'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||||
}
|
}
|
||||||
@@ -334,7 +334,7 @@ class acp_bbcodes
|
|||||||
'action' => $action,
|
'action' => $action,
|
||||||
'bbcode' => $bbcode_id,
|
'bbcode' => $bbcode_id,
|
||||||
'bbcode_match' => $bbcode_match,
|
'bbcode_match' => $bbcode_match,
|
||||||
'bbcode_tpl' => htmlspecialchars($bbcode_tpl),
|
'bbcode_tpl' => htmlspecialchars($bbcode_tpl, ENT_COMPAT),
|
||||||
'bbcode_helpline' => $bbcode_helpline,
|
'bbcode_helpline' => $bbcode_helpline,
|
||||||
'display_on_posting' => $display_on_posting,
|
'display_on_posting' => $display_on_posting,
|
||||||
)))
|
)))
|
||||||
|
@@ -582,7 +582,38 @@ class acp_board
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$config->set($config_name, $config_value);
|
// Array of emoji-enabled configurations
|
||||||
|
$config_name_ary = [
|
||||||
|
'sitename',
|
||||||
|
'site_desc',
|
||||||
|
'site_home_text',
|
||||||
|
'board_index_text',
|
||||||
|
'board_disable_msg',
|
||||||
|
'board_email_sig',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event to manage the array of emoji-enabled configurations
|
||||||
|
*
|
||||||
|
* @event core.acp_board_config_emoji_enabled
|
||||||
|
* @var array config_name_ary Array of config names to process
|
||||||
|
* @since 3.3.3-RC1
|
||||||
|
*/
|
||||||
|
$vars = ['config_name_ary'];
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.acp_board_config_emoji_enabled', compact($vars)));
|
||||||
|
|
||||||
|
if (in_array($config_name, $config_name_ary))
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Replace Emojis and other 4bit UTF-8 chars not allowed by MySQL to UCR/NCR.
|
||||||
|
* Using their Numeric Character Reference's Hexadecimal notation.
|
||||||
|
*/
|
||||||
|
$config->set($config_name, utf8_encode_ucr($config_value));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$config->set($config_name, $config_value);
|
||||||
|
}
|
||||||
|
|
||||||
if ($config_name == 'allow_quick_reply' && isset($_POST['allow_quick_reply_enable']))
|
if ($config_name == 'allow_quick_reply' && isset($_POST['allow_quick_reply_enable']))
|
||||||
{
|
{
|
||||||
@@ -658,7 +689,7 @@ class acp_board
|
|||||||
if ($submit && (($cfg_array['auth_method'] != $this->new_config['auth_method']) || $updated_auth_settings))
|
if ($submit && (($cfg_array['auth_method'] != $this->new_config['auth_method']) || $updated_auth_settings))
|
||||||
{
|
{
|
||||||
$method = basename($cfg_array['auth_method']);
|
$method = basename($cfg_array['auth_method']);
|
||||||
if (array_key_exists('auth.provider.' . $method, $auth_providers))
|
if (array_key_exists('auth.provider.' . $method, (array) $auth_providers))
|
||||||
{
|
{
|
||||||
$provider = $auth_providers['auth.provider.' . $method];
|
$provider = $auth_providers['auth.provider.' . $method];
|
||||||
if ($error = $provider->init())
|
if ($error = $provider->init())
|
||||||
@@ -689,8 +720,8 @@ class acp_board
|
|||||||
$messenger->set_addresses($user->data);
|
$messenger->set_addresses($user->data);
|
||||||
$messenger->anti_abuse_headers($config, $user);
|
$messenger->anti_abuse_headers($config, $user);
|
||||||
$messenger->assign_vars(array(
|
$messenger->assign_vars(array(
|
||||||
'USERNAME' => htmlspecialchars_decode($user->data['username']),
|
'USERNAME' => html_entity_decode($user->data['username'], ENT_COMPAT),
|
||||||
'MESSAGE' => htmlspecialchars_decode($request->variable('send_test_email_text', '', true)),
|
'MESSAGE' => html_entity_decode($request->variable('send_test_email_text', '', true), ENT_COMPAT),
|
||||||
));
|
));
|
||||||
$messenger->send(NOTIFY_EMAIL);
|
$messenger->send(NOTIFY_EMAIL);
|
||||||
|
|
||||||
|
@@ -69,20 +69,6 @@ class acp_database
|
|||||||
trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
|
trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
$store = true;
|
|
||||||
$structure = false;
|
|
||||||
$schema_data = false;
|
|
||||||
|
|
||||||
if ($type == 'full' || $type == 'structure')
|
|
||||||
{
|
|
||||||
$structure = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($type == 'full' || $type == 'data')
|
|
||||||
{
|
|
||||||
$schema_data = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@set_time_limit(1200);
|
@set_time_limit(1200);
|
||||||
@set_time_limit(0);
|
@set_time_limit(0);
|
||||||
|
|
||||||
@@ -92,14 +78,14 @@ class acp_database
|
|||||||
|
|
||||||
/** @var phpbb\db\extractor\extractor_interface $extractor Database extractor */
|
/** @var phpbb\db\extractor\extractor_interface $extractor Database extractor */
|
||||||
$extractor = $phpbb_container->get('dbal.extractor');
|
$extractor = $phpbb_container->get('dbal.extractor');
|
||||||
$extractor->init_extractor($format, $filename, $time, false, $store);
|
$extractor->init_extractor($format, $filename, $time, false, true);
|
||||||
|
|
||||||
$extractor->write_start($table_prefix);
|
$extractor->write_start($table_prefix);
|
||||||
|
|
||||||
foreach ($table as $table_name)
|
foreach ($table as $table_name)
|
||||||
{
|
{
|
||||||
// Get the table structure
|
// Get the table structure
|
||||||
if ($structure)
|
if ($type == 'full')
|
||||||
{
|
{
|
||||||
$extractor->write_table($table_name);
|
$extractor->write_table($table_name);
|
||||||
}
|
}
|
||||||
@@ -123,15 +109,11 @@ class acp_database
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
$extractor->flush('TRUNCATE TABLE ' . $table_name . ";\n");
|
$extractor->flush('TRUNCATE TABLE ' . $table_name . ";\n");
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data
|
// Only supported types are full and data, therefore always write the data
|
||||||
if ($schema_data)
|
$extractor->write_data($table_name);
|
||||||
{
|
|
||||||
$extractor->write_data($table_name);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$extractor->write_end();
|
$extractor->write_end();
|
||||||
|
@@ -205,7 +205,7 @@ class acp_email
|
|||||||
$email_template = 'admin_send_email';
|
$email_template = 'admin_send_email';
|
||||||
$template_data = array(
|
$template_data = array(
|
||||||
'CONTACT_EMAIL' => phpbb_get_board_contact($config, $phpEx),
|
'CONTACT_EMAIL' => phpbb_get_board_contact($config, $phpEx),
|
||||||
'MESSAGE' => htmlspecialchars_decode($message),
|
'MESSAGE' => html_entity_decode($message, ENT_COMPAT),
|
||||||
);
|
);
|
||||||
$generate_log_entry = true;
|
$generate_log_entry = true;
|
||||||
|
|
||||||
@@ -252,7 +252,7 @@ class acp_email
|
|||||||
|
|
||||||
$messenger->anti_abuse_headers($config, $user);
|
$messenger->anti_abuse_headers($config, $user);
|
||||||
|
|
||||||
$messenger->subject(htmlspecialchars_decode($subject));
|
$messenger->subject(html_entity_decode($subject, ENT_COMPAT));
|
||||||
$messenger->set_mail_priority($priority);
|
$messenger->set_mail_priority($priority);
|
||||||
|
|
||||||
$messenger->assign_vars($template_data);
|
$messenger->assign_vars($template_data);
|
||||||
|
@@ -53,7 +53,7 @@ class acp_extensions
|
|||||||
$this->phpbb_container = $phpbb_container;
|
$this->phpbb_container = $phpbb_container;
|
||||||
$this->php_ini = $this->phpbb_container->get('php_ini');
|
$this->php_ini = $this->phpbb_container->get('php_ini');
|
||||||
|
|
||||||
$this->user->add_lang(array('install', 'acp/extensions', 'migrator'));
|
$this->user->add_lang(array('install', 'acp/extensions', 'acp/modules', 'migrator'));
|
||||||
|
|
||||||
$this->page_title = 'ACP_EXTENSIONS';
|
$this->page_title = 'ACP_EXTENSIONS';
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user