mirror of
https://github.com/phpbb/phpbb.git
synced 2025-09-13 17:42:08 +02:00
Compare commits
1057 Commits
release-3.
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
|
6d46c08191 | ||
|
95bbebeb22 | ||
|
e3752b70e2 | ||
|
b45bd3ace7 | ||
|
8d5a624c8d | ||
|
29a3b6c792 | ||
|
78679ed001 | ||
|
2919b147d8 | ||
|
f514c5eafb | ||
|
2d1ce7dc24 | ||
|
026a143e42 | ||
|
9417c1803e | ||
|
6ebd64521b | ||
|
b3edc0884f | ||
|
48ce6a9a68 | ||
|
bf5f0bb8f7 | ||
|
b978fd9dc6 | ||
|
ae7f38331d | ||
|
3a21109f89 | ||
|
5d18ad678b | ||
|
2ea22ee387 | ||
|
37c7e0a6d0 | ||
|
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 | ||
|
840173a21e | ||
|
66e9832f5e | ||
|
67ad602041 | ||
|
7716961f07 | ||
|
6876559ceb | ||
|
fe38280a1a | ||
|
fff200b1d8 | ||
|
cc753db132 | ||
|
ec565de6cb | ||
|
fc631040fd | ||
|
615d5eaa77 | ||
|
72c4c18364 | ||
|
4c4debf004 | ||
|
7323e4467b | ||
|
c954249dfa | ||
|
f6a7fe168a | ||
|
659e1e4a26 | ||
|
632bcdd2da | ||
|
fb62d22013 | ||
|
58ea656fd8 | ||
|
16d8698e1b | ||
|
d8ae6cea75 | ||
|
dc40572312 | ||
|
3c014ccb2b | ||
|
bd22a92d68 | ||
|
40c2fa7e5e | ||
|
604b3f49b7 | ||
|
f6cbc7e80b | ||
|
0417599344 | ||
|
c694e86422 | ||
|
a951ca4489 | ||
|
794ad66896 | ||
|
857cec0509 | ||
|
d3472cd4a1 | ||
|
d6078821c5 | ||
|
21019fac66 | ||
|
03c6ed32fb | ||
|
1f98477c22 | ||
|
c8351d6d20 | ||
|
54eef1153f | ||
|
88d257f04b | ||
|
a55b96c9f6 | ||
|
14d96d0086 | ||
|
8ad14af39c | ||
|
52217bd4e4 | ||
|
dfdb92d3ab | ||
|
358a5d8b46 | ||
|
dcfddb8445 | ||
|
fa14375a65 | ||
|
b494e6b043 | ||
|
46d0cf7bb4 | ||
|
00849941c3 | ||
|
36554f3ce8 | ||
|
2cb7e510dc | ||
|
d80367c5fc | ||
|
6b92f23c81 | ||
|
4698d20fb4 | ||
|
f4287e1f56 | ||
|
0d68cebea8 | ||
|
5e351dad53 | ||
|
2db4dc8c96 | ||
|
856fcf7554 | ||
|
242476c290 | ||
|
3caa31bf58 | ||
|
9c5f338d3c | ||
|
43eeb008fa | ||
|
0be63a81c7 | ||
|
5b0406cfdc | ||
|
ca62538ce3 | ||
|
fb3f811cf3 | ||
|
192c1d81b8 | ||
|
d451f4180e | ||
|
5df37895d8 | ||
|
d83eefaf14 | ||
|
0d2e9455aa | ||
|
8bd35d47ad | ||
|
c728889e0e | ||
|
4de62a3712 | ||
|
c141962dc8 | ||
|
93796bb474 | ||
|
619820a059 | ||
|
3be5ab3a5c | ||
|
7f29daf0d4 | ||
|
9a23f187ce | ||
|
8b21096919 | ||
|
4dada87d32 | ||
|
322f8eabd6 | ||
|
2b17ecf196 | ||
|
1484f8ce91 | ||
|
52cb565eef | ||
|
a755103350 | ||
|
414e17a089 | ||
|
fedfc330ef | ||
|
8a8a05e31c | ||
|
8e2dd65c6e | ||
|
02f54ef219 | ||
|
aa76f6b9f2 | ||
|
eff277a872 | ||
|
e56088f921 | ||
|
269f9251a2 | ||
|
ca2a380d03 | ||
|
a2ab14d9d5 | ||
|
0d3dd61ad4 | ||
|
13aa1ff760 | ||
|
7870c48ced | ||
|
5d0f7229e3 | ||
|
bd407fd866 | ||
|
98515e7c7d | ||
|
34d415a6b3 | ||
|
c1ce0153ea | ||
|
9de41ce44c | ||
|
9efa7c1a8c | ||
|
762d9fcf7b | ||
|
62333f0ca2 | ||
|
1ac142347e | ||
|
1d54d60f04 | ||
|
fef1996b3d | ||
|
0bc9d87891 | ||
|
3bbe0f1d4e | ||
|
55d9154b01 | ||
|
6cd54639b5 | ||
|
7ef87e3fbd | ||
|
68122fca27 | ||
|
f340e8ca04 | ||
|
da4b446ac6 | ||
|
7d18ecd1bf | ||
|
b3199265a2 | ||
|
05a58e8942 | ||
|
1c724d0860 | ||
|
76f2305b84 | ||
|
0daf6ccbcb | ||
|
c903381154 | ||
|
0ae8710132 | ||
|
ebc4912ada | ||
|
663e611fae | ||
|
f4a1d4ef02 | ||
|
fe97d19c66 | ||
|
d7ccd22383 | ||
|
bda6b55047 | ||
|
15e1d87527 | ||
|
922f75b004 | ||
|
f729887320 | ||
|
fc75ca40c3 | ||
|
3e97ed915a | ||
|
ecfd198c3f | ||
|
7a1231a32f | ||
|
e10ea1fcf3 | ||
|
2a8239075e | ||
|
f28b1fd178 | ||
|
800bd98ae6 | ||
|
c45df4e820 | ||
|
fa636e35e0 | ||
|
02e6e6cf48 | ||
|
bcbe6339ec | ||
|
eb4186add4 | ||
|
fdc827e066 | ||
|
58ef28e914 | ||
|
40027e054c | ||
|
1a029a71e5 | ||
|
0766a10ad3 | ||
|
ad43169065 | ||
|
3be435561a | ||
|
93f3323074 | ||
|
a378e0eb0c | ||
|
8e5a635bfb | ||
|
50177914a8 | ||
|
f3093a3740 | ||
|
9a753a269f | ||
|
69bf5a8403 | ||
|
1dd6d583d0 | ||
|
2c04ce7a61 | ||
|
df49e0e993 | ||
|
f269ddacce | ||
|
4d9118447b | ||
|
114ed8bec1 | ||
|
96bc21aa6b | ||
|
034feb87cd | ||
|
193d54c4eb | ||
|
4aa3a80558 | ||
|
2060f00f95 | ||
|
05cf78b589 | ||
|
361e97d097 | ||
|
9da3adeda9 | ||
|
bd4887f660 | ||
|
befab4f3c1 | ||
|
b1c6b3bc94 | ||
|
0ba0a9cbd3 | ||
|
ab3d8ade72 | ||
|
acd824d432 | ||
|
d0197a94fb | ||
|
f59246ea25 | ||
|
55c4fd644c | ||
|
ecbb37e0ba | ||
|
70c289fef0 | ||
|
80a6a58a84 | ||
|
87dfa9a061 | ||
|
39d700b87a | ||
|
b2affdff5b | ||
|
3ce8510f88 | ||
|
bc869f8ec3 | ||
|
39b3db9e27 | ||
|
fabb5bc7e6 | ||
|
b0b78ee144 | ||
|
d0e2023a63 | ||
|
65065bf315 | ||
|
868c5bd114 | ||
|
3905227758 | ||
|
cfea05c2b4 | ||
|
0951e204c9 | ||
|
a91b1d2f26 | ||
|
e8f5e62c44 | ||
|
fb94245943 | ||
|
d3224c420a | ||
|
2afa989500 | ||
|
946da08304 | ||
|
33306a0699 | ||
|
5a33a141af | ||
|
e7186f41ed | ||
|
79b09577eb | ||
|
ce28527cde | ||
|
8a54793ede | ||
|
b69507be8a | ||
|
a7bfe9afed | ||
|
59900357a7 | ||
|
8c79e9a61e | ||
|
bb20f3966f | ||
|
201a5b6e06 | ||
|
8bb9a9803b | ||
|
b7b3282649 | ||
|
6e05cb38f6 | ||
|
a4c69a8f43 | ||
|
47fcf3403f | ||
|
6f96f8b01e | ||
|
6ab2821c34 | ||
|
29b775f22c | ||
|
78c3b8bb86 | ||
|
d1dfbe8ce5 | ||
|
8ab866e7f4 | ||
|
de834b65e8 | ||
|
2d1e8dc8a0 | ||
|
b5a1c54ab2 | ||
|
5e23959e12 | ||
|
5ae963cb34 | ||
|
b33e95f1e7 | ||
|
9ba0560696 | ||
|
e05876a5f6 | ||
|
afae9421f6 | ||
|
f72e847c17 | ||
|
cf40048f67 | ||
|
0df96f101b | ||
|
8591108451 | ||
|
cc67e8b26f | ||
|
97a4114265 | ||
|
e19dac0658 | ||
|
481ca6190e | ||
|
642b774530 | ||
|
4d5e8df8e6 | ||
|
568a74e22c | ||
|
7b062b76c7 | ||
|
3392f3aa09 | ||
|
af6eebaa1a | ||
|
f8acf53f72 | ||
|
73c133c91d | ||
|
0ac066aac7 | ||
|
65d825b62c | ||
|
e9bea9dec0 | ||
|
6cab65efb0 | ||
|
8ef8df4b18 | ||
|
6a24d72183 | ||
|
e65c0171e4 | ||
|
0ce55e897d | ||
|
fe7c833c8b | ||
|
1aca32454f | ||
|
86fcde5d07 | ||
|
8195035363 | ||
|
eb7019d54a | ||
|
ab5ab01496 | ||
|
9d2c1f7602 | ||
|
195f6460e0 | ||
|
e9a6f46bef | ||
|
5331a555f6 | ||
|
3bd612ad81 | ||
|
dcae4f330e | ||
|
642f990fbc | ||
|
7268c5ebfb | ||
|
68e6e8ca90 | ||
|
fa13f06e64 | ||
|
e2ced58517 | ||
|
838e488134 | ||
|
555624decf | ||
|
528b1b10b7 | ||
|
e9e9ab8919 | ||
|
f4f749f130 | ||
|
c66dd87f68 | ||
|
3b3dfebd82 | ||
|
5afda415d1 | ||
|
7481cf9ffe | ||
|
bb6d4d67d5 | ||
|
22331c8951 | ||
|
6db29a7ae1 | ||
|
c27b049ca0 | ||
|
bb32ec38da | ||
|
d40cb5f618 | ||
|
599adb3003 | ||
|
13914b91df | ||
|
01284ef6a0 | ||
|
7f9792b571 | ||
|
5882a9a3a2 | ||
|
a673858e13 | ||
|
c27a6472af | ||
|
4a4f62f29e | ||
|
aae5852ad3 | ||
|
e01c998758 | ||
|
2df69fc3ed | ||
|
3757caf449 | ||
|
ce97122c6d | ||
|
4eda5218d5 | ||
|
a37f82bb9d | ||
|
d0ca73caf8 | ||
|
ec66a42664 | ||
|
3bfeacaa88 | ||
|
ec49bd2d69 | ||
|
d69049d6be | ||
|
2dd571bc5d | ||
|
73741e547b | ||
|
362541c2b1 | ||
|
bd29de880d | ||
|
466abd7a3d | ||
|
7df35e8131 | ||
|
02253134c9 | ||
|
e420c9c895 | ||
|
697e4963db | ||
|
c5d83ef715 | ||
|
1c3585f575 | ||
|
09e308a06d | ||
|
fabe9ce56b | ||
|
1f8149706c | ||
|
7dd0c7296f | ||
|
868bc3a069 | ||
|
bb43e732c8 | ||
|
79ea63f164 | ||
|
1169e1915d | ||
|
1b439cb6a0 | ||
|
61e263ba8d | ||
|
f958ea921c | ||
|
38c26c8c44 | ||
|
6c0e17480c | ||
|
919597bfcf | ||
|
8a8403ff8a | ||
|
7330cdee2c | ||
|
b8b6625872 | ||
|
1b50650267 | ||
|
6be65cb512 | ||
|
7e60a3c075 | ||
|
cb0583df1d | ||
|
56ddf5827f | ||
|
9433ff449a | ||
|
c44b366350 | ||
|
0857237fbb | ||
|
27a95675d0 | ||
|
f74a4e6e9b | ||
|
504901ccb6 | ||
|
281330b1d0 | ||
|
48db45f85b | ||
|
a414584f4b | ||
|
c8e92608fd | ||
|
47b1973cb6 | ||
|
b8bab30684 | ||
|
d9e07b3b29 | ||
|
9a72f39ff3 | ||
|
d1aefbea62 | ||
|
87d0888fee | ||
|
af97a8312c | ||
|
a8d2b819c4 | ||
|
ed974c2c84 | ||
|
1a9c7fe9ca | ||
|
38c3552908 | ||
|
0bfe270078 | ||
|
8a4d7685f7 | ||
|
a88a68f8a6 | ||
|
9c590dae7b | ||
|
6fc6e7ced2 | ||
|
277f7d906d | ||
|
cdcb787991 | ||
|
ae4575369c | ||
|
8ae115f9bd | ||
|
d591b4d2da | ||
|
be74893e02 | ||
|
45a00f1a93 | ||
|
a2a199b48e | ||
|
6326b6b631 | ||
|
dbdbf23bea | ||
|
00f5732a0d | ||
|
3ecd2f150d | ||
|
b29a011186 | ||
|
20d64270a4 | ||
|
15c1975f6e | ||
|
008e313652 | ||
|
a65877cd7e | ||
|
e30d10288d | ||
|
a0c8df6679 | ||
|
a43cdbac54 | ||
|
0cf4212835 | ||
|
c11cb57c66 | ||
|
2fd174d7cf | ||
|
c55d59e70a | ||
|
009bc4a1a3 | ||
|
a12b70468f | ||
|
8c8655863e | ||
|
e174f1475f | ||
|
cdd3441ead | ||
|
20f68ef013 | ||
|
976516a559 | ||
|
39b0ac4fda | ||
|
7d1aa37f50 | ||
|
8ab730f47d | ||
|
6b5b413025 | ||
|
6f99cf0fd5 | ||
|
77745e466d | ||
|
f671d7559a | ||
|
eb141e88fb | ||
|
f3598d2f4d | ||
|
691496af3c | ||
|
3de74e58b7 | ||
|
628d39931f | ||
|
a5314f57af | ||
|
6f4d1cda13 | ||
|
0e69bcc282 | ||
|
bd23583431 | ||
|
e0a7676c3f | ||
|
09ce2ab70e | ||
|
52f50287e9 | ||
|
0f51a85d8f | ||
|
0ecc72e945 | ||
|
66990474b9 | ||
|
da77c9e744 | ||
|
c251ab51c0 | ||
|
502982154d | ||
|
bf36dd2036 | ||
|
ebc889baea | ||
|
14cd51056b | ||
|
1dc5c4f98f | ||
|
95080106e0 | ||
|
7e8ef278fe | ||
|
6bdebe22ed | ||
|
29450d8893 | ||
|
e979194a0e | ||
|
e10331f988 | ||
|
573a1b7d35 | ||
|
335535e73b | ||
|
0e4ce1f978 | ||
|
565a287d20 | ||
|
f4b9a7143c | ||
|
66436bd9f7 | ||
|
724b3682d1 | ||
|
7767648520 | ||
|
64ce9d2218 | ||
|
cd85541e19 | ||
|
c1583fa001 | ||
|
5842b8416e | ||
|
3e296a4a90 | ||
|
8a03e0d670 | ||
|
46cee69804 | ||
|
ec6335bdfd | ||
|
28c24c8c45 | ||
|
b90e2c6300 | ||
|
6b47cbb4c5 | ||
|
43ce44cb3b | ||
|
f9d4e11a27 | ||
|
8956654288 | ||
|
5bc0e89871 | ||
|
d16b240749 | ||
|
73c355b92a | ||
|
34629afda0 | ||
|
d2fb48ce49 | ||
|
b5943a430f | ||
|
43d75d712f | ||
|
51be1ad2c1 | ||
|
15a7a77bb6 | ||
|
f68bdb9e08 | ||
|
b4a900c993 | ||
|
dfc43e819e | ||
|
07bf18168f | ||
|
5ca9674ced | ||
|
154ebc24c2 | ||
|
3e128d06f4 | ||
|
453adbcd5c | ||
|
04e15e6555 | ||
|
db119a60e6 | ||
|
d927154217 | ||
|
275ef147f6 | ||
|
8566f81d4f | ||
|
74eefdb4f1 | ||
|
c90e562367 | ||
|
f4c45f3f21 | ||
|
99dbea1469 | ||
|
33666c7817 | ||
|
c7be5d25d0 | ||
|
c990818200 | ||
|
6cab639d8e | ||
|
21dbabe6f2 | ||
|
fe9254790c | ||
|
cbe63da1f7 | ||
|
c190451098 | ||
|
551a018613 | ||
|
45f0c77761 | ||
|
6e89799b05 | ||
|
8877688ee4 | ||
|
669c45125c | ||
|
876dc581a8 | ||
|
a267db851a | ||
|
26c150090a | ||
|
4926ff0992 | ||
|
39c6d11ed6 | ||
|
5b5a29849e | ||
|
b9123cad7c | ||
|
43e3b3e328 | ||
|
7149349e25 | ||
|
9080a0e778 | ||
|
d26e0423f7 | ||
|
b602e0c014 | ||
|
29d44973a7 | ||
|
903185a69c | ||
|
84cd7e496b | ||
|
b3f3886cd9 | ||
|
b1e1ee7d55 | ||
|
b60322f729 | ||
|
b89539a70e | ||
|
78ea308608 | ||
|
d7435d02d3 | ||
|
3539f9372d | ||
|
0e15eb4f00 | ||
|
119261dc5d | ||
|
2c0509a5c7 | ||
|
443b931b36 | ||
|
8c6ef3f0fd | ||
|
0fa0013a69 | ||
|
8f4c87ad49 | ||
|
5842c912a9 | ||
|
c6412a186c | ||
|
e72e6679a3 | ||
|
0788754a5f | ||
|
f5e7233162 | ||
|
a37f95e7db | ||
|
20490b0618 | ||
|
8b1f69c1a3 | ||
|
f830f0f6df | ||
|
4721a4ae19 | ||
|
c4a5099e56 | ||
|
be343298e8 | ||
|
54017bcf63 | ||
|
90a4ea4f9b | ||
|
6b5cbe3768 | ||
|
46b4a74549 | ||
|
feb94b446a | ||
|
879362c5b5 | ||
|
1e7fc0f7df | ||
|
8df557f621 | ||
|
8b8606349e | ||
|
2b8b04dd55 | ||
|
b23c4dacb9 | ||
|
f703f3f20e | ||
|
2d39d34ab5 | ||
|
671efc0726 | ||
|
d17b554666 | ||
|
7557af0594 | ||
|
9f4a240f91 | ||
|
07576eb338 | ||
|
c61946329c | ||
|
cc3afd87aa | ||
|
858d9271e3 | ||
|
5aa4aae0f5 | ||
|
82240cb661 | ||
|
f3664b07d2 | ||
|
a3e0117ff0 | ||
|
e5f88a1462 | ||
|
95d873574c | ||
|
d35b3b4792 | ||
|
c8e5c36c1d | ||
|
01b966c664 | ||
|
0c63f03db4 | ||
|
962d3f1df0 | ||
|
0198029ea6 | ||
|
b0e7221b3a | ||
|
f6b121758b | ||
|
4c0a1ec0a0 | ||
|
8dd76e6e2f | ||
|
edf27fdac5 | ||
|
1c2f65f268 | ||
|
b732b4d8c8 | ||
|
291b865f17 | ||
|
f57a7826a8 | ||
|
e5c80e46b0 | ||
|
a66e640499 | ||
|
24fab91694 | ||
|
5881a24faa | ||
|
3b82c8cb10 | ||
|
b9919f7c88 | ||
|
2e9b3fc31e | ||
|
0a089c8656 | ||
|
a82afd6ccf | ||
|
4fc58068c9 | ||
|
fccae1009b | ||
|
5dac5fdb3b | ||
|
ddc8e5c712 | ||
|
3c07c8c2a0 | ||
|
c97a9b0b19 | ||
|
57326be5bf | ||
|
7e589a529d | ||
|
6afa29eb5c | ||
|
d7c3d59799 | ||
|
1c8e7a3483 | ||
|
a88e640924 | ||
|
3c27aa2f2e | ||
|
0614a1a57f | ||
|
447a5391ed | ||
|
7345f1ce2e | ||
|
75abae80fd | ||
|
70513f8da4 | ||
|
d5acfc5c2f | ||
|
83c886781d | ||
|
1215c3ddbf | ||
|
ea1a4ffbb8 | ||
|
cada6f294d | ||
|
4ade2789f6 | ||
|
c06f224ace | ||
|
bb21336191 | ||
|
d32030a374 | ||
|
adf10ef492 | ||
|
6788d82316 | ||
|
a470f0a6db | ||
|
3feafaade6 | ||
|
8ed41ea525 | ||
|
558f672634 | ||
|
ca4ce6b2f5 | ||
|
9a8d8f5b0c | ||
|
6f61d70b72 | ||
|
ffe201be36 | ||
|
8943c34572 | ||
|
dc5add2b8d | ||
|
10a4d74190 | ||
|
94419d4573 | ||
|
f59419ed7e | ||
|
457f13ad0b | ||
|
aea5c3545c | ||
|
d1d7ed1381 | ||
|
44caadc723 | ||
|
7c21eb84ea | ||
|
07cbc847f0 | ||
|
f6fae7b536 | ||
|
ba04bc9d22 | ||
|
1946d81ab3 | ||
|
e263405a81 | ||
|
300f887c02 | ||
|
2ee9d4f101 | ||
|
255c79a8f7 | ||
|
6f0f366780 | ||
|
1e607a8041 | ||
|
49845c1155 | ||
|
f6e9e043d8 | ||
|
75c25556aa | ||
|
8a040f3fbc | ||
|
07b2046685 | ||
|
90c15aeebc | ||
|
884f48faf6 | ||
|
081d16d907 | ||
|
b795b8a040 | ||
|
dbb9cbe280 | ||
|
3b1f936dcf | ||
|
d334072722 | ||
|
62a390582c | ||
|
a4b104c1da | ||
|
b823a94124 | ||
|
2451c0a815 | ||
|
725e82f6df | ||
|
4334b446b5 | ||
|
34595c02ba | ||
|
1d49ddd86f | ||
|
cdb252faaa | ||
|
5f4522e55b | ||
|
b1f0276307 | ||
|
5ce1e1e7df | ||
|
2ed21c98d5 | ||
|
f3815b7bc8 | ||
|
49b4156cfd | ||
|
486413731a | ||
|
9715054102 | ||
|
7735f22562 | ||
|
d8e441b079 | ||
|
d75952394f | ||
|
af012e8b5a | ||
|
b6a320503e | ||
|
9a919d8fa3 | ||
|
b4ecdae8e4 | ||
|
0ca20b14f5 | ||
|
e1ee0dfec1 | ||
|
685c41689e | ||
|
8fcb5dcc4d | ||
|
c606055df2 | ||
|
a4855decb8 | ||
|
86cf600d9e | ||
|
852959cf2b | ||
|
a5f1ff43b5 | ||
|
d836677342 | ||
|
b1eaaea89a | ||
|
11f2c076f6 | ||
|
10c038d8f3 | ||
|
3d4af04927 | ||
|
1af967b00e | ||
|
b5993fc2a3 | ||
|
a29d2e1149 | ||
|
9cd1277d70 | ||
|
ee2a59ad59 | ||
|
e05efe8280 | ||
|
ee33976d1d | ||
|
d0d1fd189b | ||
|
76cca33525 | ||
|
8bdc3940b1 | ||
|
31cbb60a38 | ||
|
582919804a | ||
|
eaa597a430 | ||
|
a6c5def4f4 | ||
|
13f5997554 | ||
|
846df59882 | ||
|
2d2c0ab6cd | ||
|
5625078cfe | ||
|
9e7dc9433a | ||
|
87fe2847f0 | ||
|
5c1782a605 | ||
|
115d0e794e | ||
|
ee4620ef9e | ||
|
5fb5228591 | ||
|
54ab1f1e80 | ||
|
b07fb709ba | ||
|
96a7e04ea5 | ||
|
2fea7969d3 | ||
|
d668f3a3c3 | ||
|
9749aa936c | ||
|
e2cc1aec26 | ||
|
e6624c1fd5 | ||
|
3bb2edd53d | ||
|
7de24bad2e | ||
|
297ac8ef4c | ||
|
cd995ff45f | ||
|
e61761e9af | ||
|
c927c31391 | ||
|
2dbcad7840 | ||
|
d2a344af5d | ||
|
9d5f9606a4 | ||
|
4094d62613 | ||
|
ceaf6fcffe | ||
|
e72ae0a4b2 | ||
|
28620b7d93 | ||
|
65cfd74b98 | ||
|
11e2cd925b | ||
|
f7797b89ed | ||
|
7d80314235 | ||
|
3d9845ebed | ||
|
b3d07e26fc | ||
|
9b12a923f5 | ||
|
eff3b08d49 | ||
|
1f22248965 | ||
|
68677b8525 | ||
|
8e538eebc5 | ||
|
5bc7723feb | ||
|
18e75202d7 | ||
|
11cf09b41a | ||
|
908d04d0e8 | ||
|
e7c028eed6 | ||
|
8bdad7d73e | ||
|
12a624330f | ||
|
d7be6e037b | ||
|
1d90ddc0a9 | ||
|
830d16943b | ||
|
0b03fa963a | ||
|
a1617548cf | ||
|
2bfea20007 | ||
|
843e3ae849 | ||
|
6f36a478a5 | ||
|
880deabac1 | ||
|
eba65f57ab | ||
|
7f4badc947 | ||
|
ebd9d0fe25 | ||
|
bb5cf54e61 | ||
|
ff5fe30407 | ||
|
50ca72e53c | ||
|
21f0a2b1b8 | ||
|
d25b55b93a | ||
|
e599bb2a7b | ||
|
f26e20e1e9 | ||
|
5d5f34518d | ||
|
a2fa918da2 | ||
|
531f5dd9da | ||
|
1b7c42bf53 | ||
|
eecd0b91c5 | ||
|
9854db9120 | ||
|
aeac3df4a1 | ||
|
75c03dd81e | ||
|
f69d9e9559 | ||
|
11d7b71959 | ||
|
126b17898d | ||
|
c747d1d225 | ||
|
22417e3d9c | ||
|
4fb9c1cd98 | ||
|
f0f1cd37dd | ||
|
83ccccb565 | ||
|
f0ebd6da0f | ||
|
9f033cbf6d | ||
|
0f3dbe1a30 | ||
|
4ed854c818 | ||
|
b0586b4f4d |
146
.appveyor.yml
146
.appveyor.yml
@@ -1,146 +0,0 @@
|
||||
build: false
|
||||
clone_folder: c:\projects\phpbb
|
||||
version: '{build}'
|
||||
|
||||
services:
|
||||
- iis
|
||||
|
||||
environment:
|
||||
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"
|
||||
}
|
||||
|
||||
# Install PhantomJS
|
||||
choco install phantomjs -y
|
||||
Start-Process "phantomjs" "--webdriver=8910" | Out-Null
|
||||
- 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
|
||||
|
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,8 +1,8 @@
|
||||
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
|
||||
- [ ] 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/dev/master/development/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)
|
||||
|
||||
Tracker ticket (set the ticket ID to **your ticket ID**):
|
||||
|
26
.github/check-doctum-parse-errors.sh
vendored
Executable file
26
.github/check-doctum-parse-errors.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
|
||||
|
||||
if [ ! -f doctum.phar ]; then
|
||||
# Download the latest (5.1.x) release if the file does not exist
|
||||
# Remove it to update your phar
|
||||
curl -O https://doctum.long-term.support/releases/5.1/doctum.phar
|
||||
rm -f doctum.phar.sha256
|
||||
curl -O https://doctum.long-term.support/releases/5.1/doctum.phar.sha256
|
||||
sha256sum --strict --check doctum.phar.sha256
|
||||
rm -f doctum.phar.sha256
|
||||
# You can fetch the latest (5.1.x) version code here:
|
||||
# https://doctum.long-term.support/releases/5.1/VERSION
|
||||
fi
|
||||
# Show the version to inform users of the script
|
||||
php doctum.phar --version
|
||||
php 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 --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
|
87
.github/setup-webserver.sh
vendored
Executable file
87
.github/setup-webserver.sh
vendored
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/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 [ "$PHP_VERSION" == '8.1' ]
|
||||
then
|
||||
if [ -f "/usr/sbin/php-fpm8.0" ]
|
||||
then
|
||||
PHP_FPM_BIN="/usr/sbin/php-fpm8.0"
|
||||
elif [ ! -f $PHP_FPM_BIN ] && [ -f "/usr/bin/php-fpm" ]
|
||||
then
|
||||
PHP_FPM_BIN="/usr/bin/php-fpm"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f $PHP_FPM_BIN ] && [ "$PHP_VERSION" != '8.1' ]
|
||||
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
|
529
.github/workflows/tests.yml
vendored
Normal file
529
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,529 @@
|
||||
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-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- db: 'none'
|
||||
php: '7.1'
|
||||
NOTESTS: 1
|
||||
|
||||
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
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 "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
echo "::set-output name=version::${PHP_VERSION%.*}"
|
||||
cd ..
|
||||
|
||||
- name: Cache Composer dependencies
|
||||
uses: actions/cache@v2
|
||||
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-tools/commit-msg-hook-range.sh $(git rev-list --merges -n 1 HEAD^1)..$GITHUB_SHA
|
||||
|
||||
# Tests for MySQL and MariaDB
|
||||
mysql-tests:
|
||||
runs-on: ubuntu-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- php: '7.1'
|
||||
db: "mariadb:10.1"
|
||||
- php: '7.1'
|
||||
db: "mariadb:10.2"
|
||||
- php: '7.1'
|
||||
db: "mariadb:10.3"
|
||||
- php: '7.1'
|
||||
db: "mariadb:10.4"
|
||||
- php: '7.1'
|
||||
db: "mariadb:10.5"
|
||||
- php: '7.1'
|
||||
db: "mysql:5.6"
|
||||
db_alias: "MySQL Slow Tests"
|
||||
SLOWTESTS: 1
|
||||
- php: '7.1'
|
||||
db: "mysql:5.6"
|
||||
db_alias: "MyISAM Tests"
|
||||
MYISAM: 1
|
||||
- php: '7.1'
|
||||
db: "mysql:5.6"
|
||||
- php: '7.1'
|
||||
db: "mysql:5.7"
|
||||
- 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"
|
||||
|
||||
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@v2
|
||||
|
||||
- id: database-type
|
||||
env:
|
||||
MATRIX_DB: ${{ matrix.db }}
|
||||
run: |
|
||||
db=$(echo "${MATRIX_DB%%:*}")
|
||||
echo "::set-output name=db::$db"
|
||||
|
||||
- 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 "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
echo "::set-output name=version::${PHP_VERSION%.*}"
|
||||
cd ..
|
||||
|
||||
- name: Cache Composer dependencies
|
||||
uses: actions/cache@v2
|
||||
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-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- php: '7.1'
|
||||
db: "postgres:9.5"
|
||||
- php: '7.1'
|
||||
db: "postgres:9.6"
|
||||
- php: '7.1'
|
||||
db: "postgres:10"
|
||||
- php: '7.1'
|
||||
db: "postgres:11"
|
||||
- php: '7.1'
|
||||
db: "postgres:12"
|
||||
- php: '7.1'
|
||||
db: "postgres:13"
|
||||
|
||||
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: ${{ 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@v2
|
||||
|
||||
- id: database-type
|
||||
env:
|
||||
MATRIX_DB: ${{ matrix.db }}
|
||||
run: |
|
||||
db=$(echo "${MATRIX_DB%%:*}")
|
||||
echo "::set-output name=db::$db"
|
||||
|
||||
- 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 "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
echo "::set-output name=version::${PHP_VERSION%.*}"
|
||||
cd ..
|
||||
|
||||
- name: Cache Composer dependencies
|
||||
uses: actions/cache@v2
|
||||
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-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- php: '7.1'
|
||||
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@v2
|
||||
|
||||
- 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 "::set-output name=db::$db"
|
||||
|
||||
- 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 "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
echo "::set-output name=version::${PHP_VERSION%.*}"
|
||||
cd ..
|
||||
|
||||
- name: Cache Composer dependencies
|
||||
uses: actions/cache@v2
|
||||
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-2016
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- php: '7.4'
|
||||
db: "postgres"
|
||||
|
||||
name: Windows - PHP ${{ matrix.php }} - ${{ matrix.db }}
|
||||
|
||||
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@v2
|
||||
|
||||
- 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 "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
$major_version="${{ matrix.php }}".substring(0,1)
|
||||
echo "::set-output name=version::$major_version"
|
||||
cd ..
|
||||
|
||||
- name: Cache Composer dependencies
|
||||
uses: actions/cache@v2
|
||||
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
|
||||
cd ..
|
||||
- name: Setup database
|
||||
run: |
|
||||
$postgreSqlSvc = Get-Service "postgresql*"
|
||||
Set-Service $postgreSqlSvc.Name -StartupType manual
|
||||
$postgreSqlSvc.Start()
|
||||
try {
|
||||
(Get-Service "postgresql*").Start()
|
||||
} catch {
|
||||
$_ | select *
|
||||
}
|
||||
[System.Environment]::SetEnvironmentVariable('PATH',$Env:PATH+";${env:PGBIN}")
|
||||
$env:PGPASSWORD = 'root'
|
||||
psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres
|
||||
psql -c 'create database phpbb_tests;' -U postgres
|
||||
Add-MpPreference -ExclusionPath "${env:PGDATA}" # Exclude PGDATA directory from Windows Defender
|
||||
- name: Run unit tests
|
||||
run: |
|
||||
phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -20,6 +20,7 @@
|
||||
!/phpBB/styles/prosilver/theme/en
|
||||
!/phpBB/styles/prosilver/theme/images
|
||||
!/phpBB/styles/all
|
||||
node_modules
|
||||
/phpBB/vendor
|
||||
/tests/phpbb_unit_tests.sqlite*
|
||||
/tests/test_config*.php
|
||||
@@ -27,4 +28,5 @@
|
||||
/tests/vendor
|
||||
/vagrant/phpbb-install-config.yml
|
||||
.vagrant
|
||||
.idea
|
||||
*.DS_Store*
|
||||
|
52
.travis.yml
52
.travis.yml
@@ -1,52 +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.4snapshot
|
||||
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
|
||||
- phantomjs --webdriver=8910 > /dev/null &
|
||||
|
||||
script:
|
||||
- travis/phing-sniff.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
|
||||
- travis/check-sami-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"
|
55
README.md
55
README.md
@@ -1,42 +1,47 @@
|
||||
[](http://www.phpbb.com)
|
||||
|
||||
## ABOUT
|
||||
[](https://www.phpbb.com)
|
||||
|
||||
phpBB is a free open-source bulletin board written in PHP.
|
||||
|
||||
## COMMUNITY
|
||||
## 🧑🏻🤝🏻🧑🏽 Community
|
||||
|
||||
Get your copy of phpBB, find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the development on [area51](http://area51.phpbb.com/phpBB/index.php).
|
||||
Get your copy of phpBB, find support and lots more on [phpBB.com](https://www.phpbb.com). Discuss the development on [area51](https://area51.phpbb.com/phpBB/index.php).
|
||||
|
||||
## INSTALLING DEPENDENCIES
|
||||
## 👨💻 Contribute
|
||||
|
||||
To be able to run an installation from the repo (and not from a pre-built package) you need to run the following commands to install phpBB's dependencies.
|
||||
|
||||
cd phpBB
|
||||
php ../composer.phar install
|
||||
|
||||
|
||||
## CONTRIBUTE
|
||||
|
||||
1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register)
|
||||
2. [Create a ticket (unless there already is one)](http://tracker.phpbb.com/secure/CreateIssue!default.jspa)
|
||||
1. [Create an account on phpBB.com](https://www.phpbb.com/community/ucp.php?mode=register)
|
||||
2. [Create a ticket (unless there already is one)](https://tracker.phpbb.com/secure/CreateIssue!default.jspa)
|
||||
3. Read our [Coding guidelines](https://area51.phpbb.com/docs/dev/development/coding_guidelines.html) and [Git Contribution Guidelines](https://area51.phpbb.com/docs/dev/development/git.html)
|
||||
4. Send us a pull request
|
||||
|
||||
## VAGRANT
|
||||
### 🏗️ Setting up a development build of phpBB
|
||||
|
||||
Read our [Vagrant documentation](phpBB/docs/vagrant.md) to find out how to use Vagrant to develop and contribute to phpBB.
|
||||
To run an installation from the repo (and not from a pre-built package) on a local server, run the following commands:
|
||||
|
||||
## AUTOMATED TESTING
|
||||
- Fork phpbb/phpbb to your GitHub account, then create a local clone of it:
|
||||
```
|
||||
git clone https://github.com/your_github_name/phpbb.git
|
||||
```
|
||||
- Install phpBB's dependencies (from the root of your phpbb repo):
|
||||
```
|
||||
cd phpBB
|
||||
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.
|
||||
|
||||
## 📓 Documentation
|
||||
|
||||
phpBB's [Development Documentation](https://area51.phpbb.com/docs/dev/index.html) contains all the information you'll need to learn about developing for phpBB's core, extensions and 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:
|
||||
|
||||
Travis CI | AppVeyor | Branch | Description
|
||||
---------- | -------- | ------- | -----------
|
||||
[](http://travis-ci.org/phpbb/phpbb) | [](https://ci.appveyor.com/project/phpBB/phpbb/branch/master) | **master** | Latest development version
|
||||
[](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
|
||||
[](http://travis-ci.org/phpbb/phpbb) | [](https://ci.appveyor.com/project/phpBB/phpbb/branch/3.2.x) | **3.2.x** | Development of version 3.2.x
|
||||
Branch | Description | Github Actions |
|
||||
------- | ----------- | -------------- |
|
||||
**master** | Latest development version |  |
|
||||
**3.3.x** | Development of version 3.3.x |  |
|
||||
|
||||
## LICENSE
|
||||
## 📜 License
|
||||
|
||||
[GNU General Public License v2](http://opensource.org/licenses/gpl-2.0.php)
|
||||
|
@@ -2,9 +2,9 @@
|
||||
|
||||
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
||||
<!-- a few settings for the build -->
|
||||
<property name="newversion" value="3.3.0" />
|
||||
<property name="prevversion" value="3.2.9" />
|
||||
<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-a1, 3.2.0-a2, 3.2.0-b1, 3.2.0-b2, 3.2.0-RC1, 3.2.0-RC2, 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.3.0-b1, 3.3.0-b2, 3.3.0-RC1" />
|
||||
<property name="newversion" value="3.3.4-RC1" />
|
||||
<property name="prevversion" value="3.3.3" />
|
||||
<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" />
|
||||
<!-- no configuration should be needed beyond this point -->
|
||||
|
||||
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
||||
@@ -128,13 +128,13 @@
|
||||
<!-- Builds docs for current branch into build/api/output/master -->
|
||||
<target name="docs">
|
||||
<exec dir="."
|
||||
command="phpBB/vendor/bin/sami.php update build/sami-checkout.conf.php"
|
||||
command="php doctum.phar update build/doctum-checkout.conf.php"
|
||||
passthru="true" />
|
||||
</target>
|
||||
<!-- Builds docs for multiple branches/tags into build/api/output/$branch -->
|
||||
<target name="docs-all">
|
||||
<exec dir="."
|
||||
command="phpBB/vendor/bin/sami.php update build/sami-all.conf.php"
|
||||
command="php doctum.phar update build/doctum-all.conf.php"
|
||||
passthru="true" />
|
||||
</target>
|
||||
|
||||
|
@@ -1,16 +1,16 @@
|
||||
#!/usr/bin/env php
|
||||
<?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.
|
||||
*
|
||||
*/
|
||||
*
|
||||
* 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 ($_SERVER['argc'] != 2)
|
||||
{
|
||||
@@ -18,24 +18,34 @@ if ($_SERVER['argc'] != 2)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$fixVersion = $_SERVER['argv'][1];
|
||||
if ($_SERVER['argv'][1] == '--stdin')
|
||||
{
|
||||
$stdIn = file_get_contents('php://stdin');
|
||||
// XML output from tracker can be directly piped to this script using:
|
||||
// cat tracker_output.xml | php build/build_changelog.php --stdin
|
||||
$xml = simplexml_load_string($stdIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
$fixVersion = $_SERVER['argv'][1];
|
||||
|
||||
$query = 'project IN (PHPBB3, SECURITY)
|
||||
AND resolution = Fixed
|
||||
AND fixVersion = "' . $fixVersion . '"
|
||||
AND status IN ("Unverified Fix", Closed)';
|
||||
$query = 'project IN (PHPBB3, SECURITY)
|
||||
AND resolution = Fixed
|
||||
AND fixVersion = "' . $fixVersion . '"
|
||||
AND status IN ("Unverified Fix", Closed)';
|
||||
|
||||
$url = 'http://tracker.phpbb.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=' . urlencode($query) . '&tempMax=1000';
|
||||
$xml = simplexml_load_string(file_get_contents($url));
|
||||
$url = 'https://tracker.phpbb.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=' . urlencode($query) . '&tempMax=1000';
|
||||
$xml = simplexml_load_string(file_get_contents($url));
|
||||
}
|
||||
|
||||
foreach ($xml->xpath('//item') as $item)
|
||||
{
|
||||
$key = (string) $item->key;
|
||||
|
||||
$keyUrl = 'http://tracker.phpbb.com/browse/' . $key;
|
||||
$keyUrl = 'https://tracker.phpbb.com/browse/' . $key;
|
||||
$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);
|
||||
|
||||
$types[(string) $item->type][$key] = $value;
|
||||
|
@@ -43,10 +43,10 @@ class build_package
|
||||
$_before = $this->versions[count($this->versions) - 2];
|
||||
|
||||
$this->locations = array(
|
||||
'new_version' => dirname(dirname(__FILE__)) . '/phpBB/',
|
||||
'old_versions' => dirname(__FILE__) . '/old_versions/',
|
||||
'root' => dirname(__FILE__) . '/',
|
||||
'package_dir' => dirname(__FILE__) . '/new_version/'
|
||||
'new_version' => dirname(__DIR__) . '/phpBB/',
|
||||
'old_versions' => __DIR__ . '/old_versions/',
|
||||
'root' => __DIR__ . '/',
|
||||
'package_dir' => __DIR__ . '/new_version/'
|
||||
);
|
||||
|
||||
$this->package_infos = array(
|
||||
|
@@ -19,21 +19,34 @@ use PHP_CodeSniffer\Sniffs\Sniff;
|
||||
*/
|
||||
class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
||||
{
|
||||
const FIND = [
|
||||
T_NS_SEPARATOR,
|
||||
T_STRING,
|
||||
T_WHITESPACE,
|
||||
];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
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.';
|
||||
$phpcsFile->addError($error, $line, 'FullName');
|
||||
$phpcsFile->addError($error, $stack_pointer, 'FullName');
|
||||
}
|
||||
|
||||
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));
|
||||
|
||||
$find = array(
|
||||
T_NS_SEPARATOR,
|
||||
T_STRING,
|
||||
T_WHITESPACE,
|
||||
);
|
||||
|
||||
$class_name_end = $phpcsFile->findNext($find, ($stackPtr + 1), null, true);
|
||||
$class_name_end = $phpcsFile->findNext(self::FIND, ($stackPtr + 1), null, true);
|
||||
|
||||
$aliasing_as_position = $phpcsFile->findNext(T_AS, $class_name_end, null, false, null, true);
|
||||
if ($aliasing_as_position !== false)
|
||||
{
|
||||
$alias_position = $phpcsFile->findNext(T_STRING, $aliasing_as_position, null, false, null, true);
|
||||
$class_name_short = $tokens[$alias_position]['content'];
|
||||
$class_name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start - 1));
|
||||
$name_short = $tokens[$alias_position]['content'];
|
||||
$name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start - 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
$class_name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start));
|
||||
$class_name_short = $tokens[$class_name_end - 1]['content'];
|
||||
$name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start));
|
||||
$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;
|
||||
|
||||
// Checks in simple statements (new, instanceof and extends)
|
||||
@@ -95,11 +131,11 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
||||
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)));
|
||||
|
||||
$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;
|
||||
|
||||
$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 = 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
|
||||
@@ -129,11 +165,11 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
||||
$old_implemented_class = $implemented_class;
|
||||
|
||||
$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)));
|
||||
|
||||
$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)
|
||||
{
|
||||
$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
|
||||
@@ -154,7 +190,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
||||
$params = $phpcsFile->getMethodParameters($function_declaration);
|
||||
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;
|
||||
|
||||
$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)));
|
||||
|
||||
$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.';
|
||||
$phpcsFile->addError($error, $stackPtr, 'Unused');
|
||||
$old_use = $use;
|
||||
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
21
build/doctum-all.conf.php
Normal file
21
build/doctum-all.conf.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?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.
|
||||
*
|
||||
*/
|
||||
|
||||
require __DIR__ . '/doctum-checkout.conf.php';
|
||||
|
||||
$config['versions'] = Doctum\Version\GitVersionCollection::create(__DIR__ . '/../')
|
||||
->add('3.3.x')
|
||||
->add('master')
|
||||
;
|
||||
|
||||
return new Doctum\Doctum($iterator, $config);
|
31
build/doctum-checkout.conf.php
Normal file
31
build/doctum-checkout.conf.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
$iterator = Symfony\Component\Finder\Finder::create()
|
||||
->files()
|
||||
->name('*.php')
|
||||
->in(__DIR__ . '/../phpBB/')
|
||||
->notPath('#^cache/#')
|
||||
->notPath('#^develop/#')
|
||||
->notPath('#^ext/#')
|
||||
->notPath('#^vendor/#')
|
||||
->notPath('data');
|
||||
|
||||
// This variable will be used and changed in doctum-all.conf.php
|
||||
$config = [
|
||||
'title' => 'phpBB API Documentation',
|
||||
'build_dir' => __DIR__ . '/api/output/%version%',
|
||||
'cache_dir' => __DIR__ . '/api/cache/%version%',
|
||||
];
|
||||
|
||||
return new Doctum\Doctum($iterator, $config);
|
@@ -1,33 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
require __DIR__ . '/sami-checkout.conf.php';
|
||||
|
||||
$config['versions'] = Sami\Version\GitVersionCollection::create(__DIR__ . '/../')
|
||||
/*
|
||||
This would be nice, but currently causes various problems that need
|
||||
debugging.
|
||||
->addFromTags('release-3.0.*')
|
||||
->add('3.0.x', '3.0-next (olympus)')
|
||||
->addFromTags('release-3.1.*')
|
||||
->add('3.1.x', '3.1-next (ascraeus)')
|
||||
->add('master')
|
||||
*/
|
||||
->add('3.0.x')
|
||||
->add('3.1.x')
|
||||
->add('3.2.x')
|
||||
->add('3.3.x')
|
||||
->add('master')
|
||||
;
|
||||
|
||||
return new Sami\Sami($iterator, $config);
|
@@ -1,44 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
// Prevent 'Class "acm" does not exist.' exception on removeClass().
|
||||
class PhpbbArrayStore extends Sami\Store\ArrayStore
|
||||
{
|
||||
public function removeClass(Sami\Project $project, $name)
|
||||
{
|
||||
unset($this->classes[$name]);
|
||||
}
|
||||
}
|
||||
|
||||
$iterator = Symfony\Component\Finder\Finder::create()
|
||||
->files()
|
||||
->name('*.php')
|
||||
->in(__DIR__ . '/../phpBB/')
|
||||
->notPath('#^cache/#')
|
||||
->notPath('#^develop/#')
|
||||
->notPath('#^ext/#')
|
||||
->notPath('#^vendor/#')
|
||||
->notPath('data')
|
||||
;
|
||||
|
||||
$config = array(
|
||||
'theme' => 'default',
|
||||
'title' => 'phpBB API Documentation',
|
||||
'build_dir' => __DIR__.'/api/output/%version%',
|
||||
'cache_dir' => __DIR__.'/api/cache/%version%',
|
||||
'default_opened_level' => 2,
|
||||
// Do not use JsonStore. See https://github.com/fabpot/Sami/issues/79
|
||||
'store' => new PhpbbArrayStore,
|
||||
);
|
||||
|
||||
return new Sami\Sami($iterator, $config);
|
54
build/update_stylesheet_querystrings.php
Normal file
54
build/update_stylesheet_querystrings.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php declare(strict_types=1);
|
||||
/**
|
||||
*
|
||||
* 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");
|
||||
}
|
||||
|
||||
if (version_compare(PHP_VERSION, '7.1.3', '<'))
|
||||
{
|
||||
die('update_stylesheet_querystrings.php requires at least PHP 7.1.3');
|
||||
}
|
||||
|
||||
// Usage: "$ php build/update_stylesheet_querystrings.php"
|
||||
$targets = [dirname(dirname(__FILE__)) . '/phpBB/styles/prosilver/theme/stylesheet.css'];
|
||||
|
||||
array_map('patch_glob', $targets);
|
||||
|
||||
function patch_glob($glob): void
|
||||
{
|
||||
array_map('patch_file', glob($glob));
|
||||
}
|
||||
|
||||
function patch_file(string $filepath): void
|
||||
{
|
||||
$file = file_get_contents($filepath);
|
||||
$old = $file;
|
||||
$new = preg_replace_callback(
|
||||
'(^@import\\s+url\\([\'"](?<basename>\\w++\\.css)\\?\\K(?:hash|v)=[^\'"]++)m',
|
||||
function ($match) use ($filepath)
|
||||
{
|
||||
$path = dirname($filepath) . DIRECTORY_SEPARATOR . $match['basename'];
|
||||
$hash = sprintf('%08x', crc32(file_get_contents($path)));
|
||||
|
||||
return 'hash=' . $hash;
|
||||
},
|
||||
$old
|
||||
);
|
||||
|
||||
if ($new !== $old)
|
||||
{
|
||||
file_put_contents($filepath, $new);
|
||||
}
|
||||
}
|
BIN
composer.phar
BIN
composer.phar
Binary file not shown.
BIN
doctum.phar
Normal file
BIN
doctum.phar
Normal 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
|
||||
|
||||
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
|
||||
echo "Inspecting commit message of commit $COMMIT_HASH"
|
||||
|
||||
|
@@ -50,16 +50,21 @@
|
||||
<dl>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{options.CONTENT}</dd>
|
||||
{% if (options.KEY == 'allow_attachments' and S_EMPTY_POST_GROUPS) or (options.KEY == 'allow_pm_attach' and S_EMPTY_PM_GROUPS) %}
|
||||
<dd><span class="error">{{ lang(options.KEY == 'allow_attachments' ? 'NO_EXT_GROUP_ALLOWED_POST' : 'NO_EXT_GROUP_ALLOWED_PM', U_EXTENSION_GROUPS) }}</span></dd>
|
||||
{% endif %}
|
||||
</dl>
|
||||
|
||||
<!-- ENDIF -->
|
||||
<!-- END options -->
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{L_SUBMIT}</legend>
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
<fieldset>
|
||||
<legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
<!-- IF not S_SECURE_DOWNLOADS -->
|
||||
@@ -204,10 +209,13 @@
|
||||
<dd><select name="allowed_forums[]" multiple="multiple" size="8">{S_FORUM_ID_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
|
||||
@@ -308,10 +316,14 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
@@ -382,10 +394,13 @@
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF .orphan -->
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
<!-- ENDIF -->
|
||||
|
||||
{S_FORM_TOKEN}
|
||||
|
@@ -73,12 +73,14 @@
|
||||
<dt><label for="bangivereason">{L_BAN_GIVE_REASON}{L_COLON}</label></dt>
|
||||
<dd><input name="bangivereason" type="text" class="text medium" maxlength="255" id="bangivereason" /></dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="bansubmit" name="bansubmit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="banreset" name="banreset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="bansubmit" name="bansubmit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="banreset" name="banreset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
@@ -66,9 +66,12 @@
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="submit" name="preview" value="{L_PREVIEW}" />
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
@@ -76,12 +76,15 @@
|
||||
</select></dd>
|
||||
<dd><a href="#" onclick="selector(true); return false;">{L_SELECT_ALL}</a> :: <a href="#" onclick="selector(false); return false;">{L_DESELECT_ALL}</a></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
@@ -1,7 +0,0 @@
|
||||
{% for action in enabled.actions %}
|
||||
<a href="{{ action.U_ACTION }}"{% if action.L_ACTION_EXPLAIN %} title="{{ action.L_ACTION_EXPLAIN }}"{% endif %}{% if action.COLOR %} style="color: {{ action.COLOR }};"{% endif %} data-ajax="{{ action.ACTION_AJAX }}" data-refresh="true">{{ action.L_ACTION }}</a>{% if not action.S_LAST_ROW %} | {% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% for action in disabled.actions %}
|
||||
<a href="{{ action.U_ACTION }}"{% if action.L_ACTION_EXPLAIN %} title="{{ action.L_ACTION_EXPLAIN }}"{% endif %}{% if action.COLOR %} style="color: {{ action.COLOR }};"{% endif %} data-ajax="{{ action.ACTION_AJAX }}" data-refresh="true">{{ action.L_ACTION }}</a>{% if not action.S_LAST_ROW %} | {% endif %}
|
||||
{% endfor %}
|
40
phpBB/adm/style/acp_ext_delete_data.html
Normal file
40
phpBB/adm/style/acp_ext_delete_data.html
Normal file
@@ -0,0 +1,40 @@
|
||||
{% INCLUDE 'overall_header.html' %}
|
||||
|
||||
<a id="maincontent"></a>
|
||||
|
||||
<h1>{{ lang('EXTENSIONS_ADMIN') }}</h1>
|
||||
|
||||
<p>{{ lang('EXTENSIONS_EXPLAIN') }}</p>
|
||||
<p>{{ lang('EXTENSION_DELETE_DATA_EXPLAIN') }}</p>
|
||||
|
||||
{% if MIGRATOR_ERROR %}
|
||||
<div class="errorbox">
|
||||
<p><strong>{{ lang('MIGRATION_EXCEPTION_ERROR') }}</strong></p>
|
||||
<p>{{ MIGRATOR_ERROR }}</p>
|
||||
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||
</div>
|
||||
{% elseif S_PRE_STEP %}
|
||||
<div class="errorbox">
|
||||
<p>{{ CONFIRM_MESSAGE }}</p>
|
||||
</div>
|
||||
|
||||
<form id="acp_extensions" method="post" action="{{ U_PURGE }}">
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{{ lang('EXTENSION_DELETE_DATA') }}</legend>
|
||||
<input class="button1" type="submit" name="delete_data" value="{{ lang('EXTENSION_DELETE_DATA') }}">
|
||||
<input class="button2" type="submit" name="cancel" value="{{ lang('CANCEL') }}">
|
||||
</fieldset>
|
||||
</form>
|
||||
{% elseif S_NEXT_STEP %}
|
||||
<div class="errorbox">
|
||||
<p>{{ lang('EXTENSION_DELETE_DATA_IN_PROGRESS') }}</p>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="successbox">
|
||||
<p>{{ lang('EXTENSION_DELETE_DATA_SUCCESS') }}</p>
|
||||
<br>
|
||||
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% INCLUDE 'overall_footer.html' %}
|
34
phpBB/adm/style/acp_ext_disable.html
Normal file
34
phpBB/adm/style/acp_ext_disable.html
Normal file
@@ -0,0 +1,34 @@
|
||||
{% INCLUDE 'overall_header.html' %}
|
||||
|
||||
<a id="maincontent"></a>
|
||||
|
||||
<h1>{{ lang('EXTENSIONS_ADMIN') }}</h1>
|
||||
|
||||
<p>{{ lang('EXTENSIONS_EXPLAIN') }}</p>
|
||||
<p>{{ lang('EXTENSION_DISABLE_EXPLAIN') }}</p>
|
||||
|
||||
{% if S_PRE_STEP %}
|
||||
<fieldset>
|
||||
<h2>{{ lang('CONFIRM') }}</h2>
|
||||
<p>{{ CONFIRM_MESSAGE }}</p>
|
||||
</fieldset>
|
||||
|
||||
<form id="acp_extensions" method="post" action="{{ U_DISABLE }}">
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" name="disable" value="{{ lang('EXTENSION_DISABLE') }}">
|
||||
<input class="button2" type="submit" name="cancel" value="{{ lang('CANCEL') }}">
|
||||
</fieldset>
|
||||
</form>
|
||||
{% elseif S_NEXT_STEP %}
|
||||
<div class="successbox notice">
|
||||
<p>{{ lang('EXTENSION_DISABLE_IN_PROGRESS') }}</p>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="successbox">
|
||||
<p>{{ lang('EXTENSION_DISABLE_SUCCESS') }}</p>
|
||||
<br>
|
||||
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% INCLUDE 'overall_footer.html' %}
|
40
phpBB/adm/style/acp_ext_enable.html
Normal file
40
phpBB/adm/style/acp_ext_enable.html
Normal file
@@ -0,0 +1,40 @@
|
||||
{% INCLUDE 'overall_header.html' %}
|
||||
|
||||
<a id="maincontent"></a>
|
||||
|
||||
<h1>{{ lang('EXTENSIONS_ADMIN') }}</h1>
|
||||
|
||||
<p>{{ lang('EXTENSIONS_EXPLAIN') }}</p>
|
||||
<p>{{ lang('EXTENSION_ENABLE_EXPLAIN') }}</p>
|
||||
|
||||
{% if MIGRATOR_ERROR %}
|
||||
<div class="errorbox">
|
||||
<p><strong>{{ lang('MIGRATION_EXCEPTION_ERROR') }}</strong></p>
|
||||
<p>{{ MIGRATOR_ERROR }}</p>
|
||||
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||
</div>
|
||||
{% elseif S_PRE_STEP %}
|
||||
<fieldset>
|
||||
<h2>{{ lang('CONFIRM') }}</h2>
|
||||
<p>{{ CONFIRM_MESSAGE }}</p>
|
||||
</fieldset>
|
||||
|
||||
<form id="acp_extensions" method="post" action="{{ U_ENABLE }}">
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" name="enable" value="{{ lang('EXTENSION_ENABLE') }}">
|
||||
<input class="button2" type="submit" name="cancel" value="{{ lang('CANCEL') }}">
|
||||
</fieldset>
|
||||
</form>
|
||||
{% elseif S_NEXT_STEP %}
|
||||
<div class="successbox notice">
|
||||
<p>{{ lang('EXTENSION_ENABLE_IN_PROGRESS') }}</p>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="successbox">
|
||||
<p>{{ lang('EXTENSION_ENABLE_SUCCESS') }}</p>
|
||||
<br>
|
||||
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% INCLUDE 'overall_footer.html' %}
|
@@ -42,8 +42,8 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr id="ext_enabled_header"<!-- IF not .enabled --> class="hidden"<!-- ENDIF -->>
|
||||
<!-- IF .enabled -->
|
||||
<tr>
|
||||
<td class="row3" colspan="4"><strong>{L_EXTENSIONS_ENABLED}</strong><!-- EVENT acp_ext_list_enabled_title_after --></td>
|
||||
</tr>
|
||||
<!-- BEGIN enabled -->
|
||||
@@ -59,12 +59,17 @@
|
||||
</td>
|
||||
<td style="text-align: center;"><a href="{enabled.U_DETAILS}">{L_DETAILS}</a></td>
|
||||
<td style="text-align: center;">
|
||||
<!-- INCLUDE acp_ext_actions.html -->
|
||||
<!-- BEGIN actions -->
|
||||
<a href="{enabled.actions.U_ACTION}"<!-- IF enabled.actions.L_ACTION_EXPLAIN --> title="{enabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{enabled.actions.L_ACTION}</a>
|
||||
<!-- IF not enabled.actions.S_LAST_ROW --> | <!-- ENDIF -->
|
||||
<!-- END actions -->
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END enabled -->
|
||||
<!-- ENDIF -->
|
||||
|
||||
<tr id="ext_disabled_header"<!-- IF not .disabled --> class="hidden"<!-- ENDIF -->>
|
||||
<!-- IF .disabled -->
|
||||
<tr>
|
||||
<td class="row3" colspan="4"><strong>{L_EXTENSIONS_DISABLED}</strong><!-- EVENT acp_ext_list_disabled_title_after --></td>
|
||||
</tr>
|
||||
<!-- BEGIN disabled -->
|
||||
@@ -82,10 +87,14 @@
|
||||
<!-- IF disabled.U_DETAILS --><a href="{disabled.U_DETAILS}">{L_DETAILS}</a><!-- ENDIF -->
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<!-- INCLUDE acp_ext_actions.html -->
|
||||
<!-- BEGIN actions -->
|
||||
<a href="{disabled.actions.U_ACTION}"<!-- IF disabled.actions.L_ACTION_EXPLAIN --> title="{disabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{disabled.actions.L_ACTION}</a>
|
||||
<!-- IF not disabled.actions.S_LAST_ROW --> | <!-- ENDIF -->
|
||||
<!-- END actions -->
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END disabled -->
|
||||
<!-- ENDIF -->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -15,13 +15,15 @@
|
||||
<label><input type="radio" name="legend_sort_groupname" class="radio" value="0"<!-- IF not LEGEND_SORT_GROUPNAME --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" name="reset" value="{L_RESET}" />
|
||||
<input type="hidden" name="action" value="set_config_legend" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" name="reset" value="{L_RESET}" />
|
||||
<input type="hidden" name="action" value="set_config_legend" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
@@ -43,6 +43,7 @@
|
||||
</script>
|
||||
<!-- EVENT acp_help_phpbb_stats_after -->
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input type="hidden" name="help_send_statistics_time" value="{COLLECT_STATS_TIME}" />
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
@@ -53,6 +54,7 @@
|
||||
</form>
|
||||
<form action="{U_COLLECT_STATS}" method="post" target="questionaire_result" id="questionnaire-form">
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
{% for providers in providers %}
|
||||
{% for values in providers.values %}
|
||||
|
@@ -70,9 +70,12 @@
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
@@ -78,6 +78,13 @@
|
||||
<p>{L_ERROR_MBSTRING_HTTP_OUTPUT_EXPLAIN}</p>
|
||||
</div>
|
||||
<!-- 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 -->
|
||||
|
||||
<!-- IF S_WRITABLE_CONFIG -->
|
||||
|
@@ -340,9 +340,12 @@
|
||||
<br class="responsive-hide" /><br class="responsive-hide" />
|
||||
|
||||
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
|
||||
<input class="button1" type="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" />
|
||||
<input class="button2" type="button" name="cancel" value="{L_RESET}" onclick="document.forms['set-permissions'].reset(); init_colours(active_pmask + active_fmask);" />
|
||||
{S_FORM_TOKEN}
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" />
|
||||
<input class="button2" type="button" id="reset" name="cancel" value="{L_RESET}" onclick="document.forms['set-permissions'].reset(); init_colours(active_pmask + active_fmask);" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
<br class="responsive-hide" /><br class="responsive-hide" />
|
||||
|
@@ -44,7 +44,7 @@
|
||||
</select>
|
||||
<!-- EVENT acp_posting_buttons_custom_tags_before -->
|
||||
<!-- BEGIN custom_tags -->
|
||||
<input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})" title="{{ custom_tags.BBCODE_HELPLINE|e('html_attr') }}" />
|
||||
<input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})" title="{{ custom_tags.BBCODE_HELPLINE }}" />
|
||||
<!-- END custom_tags -->
|
||||
</div>
|
||||
<!-- EVENT acp_posting_buttons_after -->
|
||||
|
@@ -21,8 +21,11 @@
|
||||
|
||||
<!-- IF S_STEP_ONE -->
|
||||
|
||||
{% EVENT acp_profile_options_before %}
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_TITLE}</legend>
|
||||
{% EVENT acp_profile_basic_options_before %}
|
||||
<dl>
|
||||
<dt><label>{L_FIELD_TYPE}{L_COLON}</label><br /><span>{L_FIELD_TYPE_EXPLAIN}</span></dt>
|
||||
<dd><strong>{FIELD_TYPE}</strong></dd>
|
||||
@@ -43,8 +46,11 @@
|
||||
<dd><label><input type="radio" class="radio" id="field_no_view" name="field_no_view" value="0"<!-- IF not S_FIELD_NO_VIEW --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="field_no_view" value="1"<!-- IF S_FIELD_NO_VIEW --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
{% EVENT acp_profile_basic_options_after %}
|
||||
</fieldset>
|
||||
|
||||
{% EVENT acp_profile_visibility_options_before %}
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_VISIBILITY_OPTION}</legend>
|
||||
<dl>
|
||||
@@ -87,8 +93,11 @@
|
||||
<dd><input class="text medium" type="text" name="field_contact_url" id="field_contact_url" value="{FIELD_CONTACT_URL}" /> <label for="field_contact_url">{L_FIELD_CONTACT_URL}</label></dd>
|
||||
<!-- EVENT acp_profile_contact_last -->
|
||||
</dl>
|
||||
{% EVENT acp_profile_contact_after %}
|
||||
</fieldset>
|
||||
|
||||
{% EVENT acp_profile_visibility_options_after %}
|
||||
|
||||
<!-- IF S_EDIT_MODE -->
|
||||
<fieldset class="quick">
|
||||
<input class="button1" type="submit" name="save" value="{L_SAVE}" />
|
||||
|
@@ -66,15 +66,19 @@
|
||||
<dd><label><input type="radio" class="radio" name="action" value="delete" /> {L_DELETE_USERS}</label>
|
||||
<label><input type="radio" class="radio" id="deactivate" name="action" value="deactivate" checked="checked" /> {L_DEACTIVATE}</label></dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input type="hidden" name="prune" value="1" />
|
||||
|
||||
<input class="button1" type="submit" id="update" name="update" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input type="hidden" name="prune" value="1" />
|
||||
|
||||
<input class="button1" type="submit" id="update" name="update" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
||||
|
@@ -36,6 +36,13 @@
|
||||
<dt><label for="max_num_search_keywords">{L_MAX_NUM_SEARCH_KEYWORDS}{L_COLON}</label><br /><span>{L_MAX_NUM_SEARCH_KEYWORDS_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_num_search_keywords" type="number" min="0" max="9999" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="default_search_return_chars">{{ lang('DEFAULT_SEARCH_RETURN_CHARS') ~ lang('COLON') }}</label>
|
||||
<br><span>{{ lang('DEFAULT_SEARCH_RETURN_CHARS_EXPLAIN') }}</span>
|
||||
</dt>
|
||||
<dd><input id="default_search_return_chars" name="config[default_search_return_chars]" type="number" value="{{ DEFAULT_SEARCH_RETURN_CHARS }}" min="0" max="9999"></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}{L_COLON}</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
|
||||
<dd><input id="search_store_results" type="number" min="0" max="999999" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
|
||||
@@ -59,10 +66,12 @@
|
||||
|
||||
<!-- END backend -->
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{L_SUBMIT}</legend>
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
@@ -89,10 +98,12 @@
|
||||
<p>{L_CONTINUE_EXPLAIN}</p>
|
||||
|
||||
<form id="acp_search_continue" method="post" action="{U_CONTINUE_INDEXING}">
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{L_SUBMIT}</legend>
|
||||
<input class="button1" type="submit" id="continue" name="continue" value="{L_CONTINUE}" onclick="popup_progress_bar('{S_CONTINUE_INDEXING}');" />
|
||||
<input class="button2" type="submit" id="cancel" name="cancel" value="{L_CANCEL}" />
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="submit" id="cancel" name="cancel" value="{L_CANCEL}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
@@ -96,6 +96,7 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{L_STYLE_NAME}</th>
|
||||
<th width="10%" style="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>
|
||||
<!-- IF not STYLES_LIST_HIDE_COUNT --><th width="10%" style="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>
|
||||
@@ -130,6 +131,7 @@
|
||||
<span class="style-path"><br />{L_STYLE_PATH}{L_COLON} {styles_list.STYLE_PATH_FULL}</span>
|
||||
<!-- ENDIF -->
|
||||
</td>
|
||||
<td class="{$ROW_CLASS} users">{{ styles_list.STYLE_VERSION }}</td>
|
||||
<td class="{$ROW_CLASS} users">{styles_list.STYLE_PHPBB_VERSION}</td>
|
||||
<!-- IF not STYLES_LIST_HIDE_COUNT -->
|
||||
<td class="{$ROW_CLASS} users">{styles_list.USERS}</td>
|
||||
|
@@ -2065,6 +2065,8 @@ fieldset.permissions .padding {
|
||||
}
|
||||
|
||||
.permissions-category ul {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
@@ -2118,7 +2120,6 @@ fieldset.permissions .padding {
|
||||
|
||||
.permissions-category .activetab a span.tabbg {
|
||||
background-position: 100% 0;
|
||||
padding-bottom: 7px;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
@@ -2313,6 +2314,10 @@ fieldset.permissions .padding {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.permissions-category ul {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.permissions-category a, .permissions-category a span.tabbg {
|
||||
display: block;
|
||||
float: none !important;
|
||||
@@ -2639,7 +2644,7 @@ fieldset.permissions .padding {
|
||||
.send-stats-tile h2 {
|
||||
margin-top: 0;
|
||||
text-align: center;
|
||||
padding-bottom: 1em;
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
.send-stats-tile i {
|
||||
@@ -2733,4 +2738,29 @@ fieldset.permissions .padding {
|
||||
height: 1em;
|
||||
width: 1em;
|
||||
}
|
||||
|
||||
.acp-icon {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@@ -169,7 +169,7 @@ function parse_document(container)
|
||||
ul = $this.children(),
|
||||
tabs = ul.children().not('[data-skip-responsive]'),
|
||||
links = tabs.children('a'),
|
||||
item = ul.append('<li class="tab responsive-tab" style="display:none;"><a href="javascript:void(0);" class="responsive-tab-link"> </a><div class="dropdown tab-dropdown" style="display: none;"><div class="pointer"><div class="pointer-inner" /></div><ul class="dropdown-contents" /></div></li>').find('li.responsive-tab'),
|
||||
item = ul.append('<li class="tab responsive-tab" style="display:none;"><a href="javascript:void(0);" class="responsive-tab-link"> </a><div class="dropdown tab-dropdown" style="display: none;"><div class="pointer"><div class="pointer-inner"></div></div><ul class="dropdown-contents" /></div></li>').find('li.responsive-tab'),
|
||||
menu = item.find('.dropdown-contents'),
|
||||
maxHeight = 0,
|
||||
lastWidth = false,
|
||||
@@ -228,64 +228,6 @@ function parse_document(container)
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Extension actions helper functions
|
||||
*/
|
||||
function move_to_enabled(element)
|
||||
{
|
||||
var disabled_header = document.querySelector('#ext_disabled_header');
|
||||
disabled_header.parentNode.insertBefore(element, disabled_header);
|
||||
element.classList.remove('ext_disabled');
|
||||
element.classList.add('ext_enabled');
|
||||
}
|
||||
function move_to_disabled(element)
|
||||
{
|
||||
var table_body = document.querySelector('#ext_disabled_header').parentNode;
|
||||
table_body.appendChild(element);
|
||||
element.classList.remove('ext_enabled');
|
||||
element.classList.add('ext_disabled');
|
||||
}
|
||||
function set_actions(container, actions) {
|
||||
container.innerHTML = '';
|
||||
for (var i = 0; i < actions.length; i++) {
|
||||
var a = document.createElement('a');
|
||||
a.href = actions[i].U_ACTION.split('&').join('&'); // replace all occurances
|
||||
a.title = actions[i].L_ACTION_EXPLAIN;
|
||||
if (actions[i].COLOR) {
|
||||
a.style = actions[i].COLOR;
|
||||
}
|
||||
a.innerHTML = actions[i].L_ACTION;
|
||||
// ajaxify this action as well
|
||||
phpbb.ajaxify({
|
||||
selector: a,
|
||||
refresh: true,
|
||||
callback: actions[i].ACTION_AJAX
|
||||
});
|
||||
|
||||
container.appendChild(a);
|
||||
|
||||
if (i < actions.length - 1) {
|
||||
container.innerHTML += ' | ';
|
||||
}
|
||||
}
|
||||
}
|
||||
function show_enabled_header() {
|
||||
document.querySelector('#ext_enabled_header').classList.remove('hidden');
|
||||
}
|
||||
function show_disabled_header() {
|
||||
document.querySelector('#ext_disabled_header').classList.remove('hidden');
|
||||
}
|
||||
function hide_disabled_header_if_empty() {
|
||||
if (!document.querySelector('.ext_disabled')) {
|
||||
document.querySelector('#ext_disabled_header').classList.add('hidden');
|
||||
}
|
||||
}
|
||||
function hide_enabled_header_if_empty() {
|
||||
if (!document.querySelector('.ext_enabled')) {
|
||||
document.querySelector('#ext_enabled_header').classList.add('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Run onload functions
|
||||
*/
|
||||
@@ -312,5 +254,10 @@ function hide_enabled_header_if_empty() {
|
||||
});
|
||||
|
||||
$('#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);
|
||||
|
@@ -157,34 +157,6 @@ phpbb.addAjaxCallback('row_delete', function(res) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Callbacks for extension actions
|
||||
*/
|
||||
phpbb.addAjaxCallback('ext_enable', function(res) {
|
||||
if (res.EXT_ENABLE_SUCCESS) {
|
||||
move_to_enabled(this.parentNode.parentNode);
|
||||
set_actions(this.parentNode, res.ACTIONS);
|
||||
show_enabled_header();
|
||||
hide_disabled_header_if_empty();
|
||||
}
|
||||
});
|
||||
phpbb.addAjaxCallback('ext_delete_data', function(res) {
|
||||
if (res.EXT_DELETE_DATA_SUCCESS) {
|
||||
move_to_disabled(this.parentNode.parentNode);
|
||||
set_actions(this.parentNode, res.ACTIONS);
|
||||
show_disabled_header();
|
||||
hide_enabled_header_if_empty();
|
||||
}
|
||||
});
|
||||
phpbb.addAjaxCallback('ext_disable', function(res) {
|
||||
if (res.EXT_DISABLE_SUCCESS) {
|
||||
move_to_disabled(this.parentNode.parentNode);
|
||||
set_actions(this.parentNode, res.ACTIONS);
|
||||
show_disabled_header();
|
||||
hide_enabled_header_if_empty();
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Handler for submitting permissions form in chunks
|
||||
* This call will submit permissions forms in chunks of 5 fieldsets.
|
||||
@@ -201,7 +173,9 @@ function submitPermissions() {
|
||||
var permissionSubmitSize = 0,
|
||||
permissionRequestCount = 0,
|
||||
forumIds = [],
|
||||
permissionSubmitFailed = false;
|
||||
permissionSubmitFailed = false,
|
||||
clearIndicator = true,
|
||||
$loadingIndicator;
|
||||
|
||||
if ($submitAllButton !== $submitButton) {
|
||||
fieldsetList = $form.find('fieldset#' + $submitButton.closest('fieldset.permissions').id);
|
||||
@@ -235,6 +209,8 @@ function submitPermissions() {
|
||||
}
|
||||
});
|
||||
|
||||
$loadingIndicator = phpbb.loadingIndicator();
|
||||
|
||||
/**
|
||||
* Handler for submitted permissions form chunk
|
||||
*
|
||||
@@ -250,6 +226,8 @@ function submitPermissions() {
|
||||
} else if (!permissionSubmitFailed && res.S_USER_NOTICE) {
|
||||
// Display success message at the end of submitting the form
|
||||
if (permissionRequestCount >= permissionSubmitSize) {
|
||||
clearIndicator = true;
|
||||
|
||||
var $alert = phpbb.alert(res.MESSAGE_TITLE, res.MESSAGE_TEXT);
|
||||
var $alertBoxLink = $alert.find('p.alert_text > a');
|
||||
|
||||
@@ -299,6 +277,17 @@ function submitPermissions() {
|
||||
$form.submit();
|
||||
}, res.REFRESH_DATA.time * 1000); // Server specifies time in seconds
|
||||
}
|
||||
} else {
|
||||
// Still more forms to submit, so do not clear indicator
|
||||
clearIndicator = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (clearIndicator) {
|
||||
phpbb.clearLoadingTimeout();
|
||||
|
||||
if ($loadingIndicator) {
|
||||
$loadingIndicator.fadeOut(phpbb.alertTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
15
phpBB/adm/style/captcha_recaptcha_v3.html
Normal file
15
phpBB/adm/style/captcha_recaptcha_v3.html
Normal file
@@ -0,0 +1,15 @@
|
||||
{% if S_RECAPTCHA_AVAILABLE %}
|
||||
<dl>
|
||||
<dt> </dt>
|
||||
<dd>
|
||||
<noscript>
|
||||
<div class="warningbox">{{ lang('RECAPTCHA_NOSCRIPT') }}</div>
|
||||
</noscript>
|
||||
|
||||
{{ lang('RECAPTCHA_INVISIBLE') }}
|
||||
<script src="{{ U_RECAPTCHA_SCRIPT }}" async defer></script>
|
||||
</dd>
|
||||
</dl>
|
||||
{% else %}
|
||||
{{ lang('RECAPTCHA_NOT_AVAILABLE') }}
|
||||
{% endif %}
|
108
phpBB/adm/style/captcha_recaptcha_v3_acp.html
Normal file
108
phpBB/adm/style/captcha_recaptcha_v3_acp.html
Normal file
@@ -0,0 +1,108 @@
|
||||
{% include 'overall_header.html' %}
|
||||
|
||||
<a id="maincontent"></a>
|
||||
|
||||
<h1>{{ lang('ACP_VC_SETTINGS') }}</h1>
|
||||
<p>{{ lang('ACP_VC_SETTINGS_EXPLAIN') }}</p>
|
||||
|
||||
<form id="acp_captcha" method="post" action="{{ U_ACTION }}">
|
||||
<fieldset>
|
||||
<legend>{{ lang('GENERAL_OPTIONS') }}</legend>
|
||||
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="recaptcha_v3_key">{{ lang('RECAPTCHA_PUBLIC') ~ lang('COLON') }}</label>
|
||||
<br><span>{{ lang('RECAPTCHA_V3_PUBLIC_EXPLAIN') }}</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<input id="recaptcha_v3_key" name="recaptcha_v3_key" type="text" value="{{ RECAPTCHA_V3_KEY }}" size="50">
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="recaptcha_v3_secret">{{ lang('RECAPTCHA_PRIVATE') ~ lang('COLON') }}</label>
|
||||
<br><span>{{ lang('RECAPTCHA_V3_PRIVATE_EXPLAIN') }}</span>
|
||||
</dt>
|
||||
<dd>
|
||||
<input id="recaptcha_v3_secret" name="recaptcha_v3_secret" type="text" value="{{ RECAPTCHA_V3_SECRET }}" size="50">
|
||||
</dd>
|
||||
</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_V3_DOMAINS %}
|
||||
<label>
|
||||
<input class="radio" name="recaptcha_v3_domain" type="radio" value="{{ domain }}"{{ domain == RECAPTCHA_V3_DOMAIN ? ' checked' }}>
|
||||
<span>{{ domain }}</span>
|
||||
</label>
|
||||
{% endfor %}
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label>{{ lang('RECAPTCHA_V3_METHOD') ~ lang('COLON') }}</label>
|
||||
<br><span>{{ lang('RECAPTCHA_V3_METHOD_EXPLAIN') }}</span>
|
||||
</dt>
|
||||
<dd>
|
||||
{% for method, available in RECAPTCHA_V3_METHODS %}
|
||||
<label>
|
||||
{% set checked = method == RECAPTCHA_V3_METHOD ? ' checked' %}
|
||||
{% set disabled = not available ? ' disabled' %}
|
||||
|
||||
<input class="radio" name="recaptcha_v3_method" type="radio" value="{{ method }}"{{ checked ~ disabled }}>
|
||||
<span>{{ lang('RECAPTCHA_V3_METHOD_' ~ method|upper) }}</span>
|
||||
</label>
|
||||
{% endfor %}
|
||||
</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{ lang('RECAPTCHA_V3_THRESHOLDS') }}</legend>
|
||||
<p>{{ lang('RECAPTCHA_V3_THRESHOLDS_EXPLAIN') }}</p>
|
||||
|
||||
{% for threshold in thresholds %}
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="{{ threshold.key }}">{{ lang(threshold.key|upper) ~ lang('COLON') }}</label>
|
||||
{% if lang_defined(threshold.key|upper ~ '_EXPLAIN') %}
|
||||
<br><span>{{ lang(threshold.key|upper ~ '_EXPLAIN') }}</span>
|
||||
{% endif %}
|
||||
</dt>
|
||||
<dd><input id="{{ threshold.key }}" name="{{ threshold.key }}" type="number" value="{{ threshold.value }}" min="0" max="1" step="0.1"></dd>
|
||||
</dl>
|
||||
{% endfor %}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{ lang('PREVIEW') }}</legend>
|
||||
|
||||
{% if PREVIEW %}
|
||||
<div class="successbox">
|
||||
<h3>{{ lang('WARNING') }}</h3>
|
||||
<p>{{ lang('CAPTCHA_PREVIEW_MSG') }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% include CAPTCHA_PREVIEW %}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" id="submit" name="submit" type="submit" value="{{ lang('SUBMIT') }}">
|
||||
<input class="button2" id="reset" name="reset" type="reset" value="{{ lang('RESET') }}">
|
||||
|
||||
<input name="select_captcha" type="hidden" value="{{ CAPTCHA_NAME }}">
|
||||
<input name="configure" type="hidden" value="1">
|
||||
{{ S_FORM_TOKEN }}
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
{% include 'overall_footer.html' %}
|
@@ -23,7 +23,7 @@ installLang = {
|
||||
</script>
|
||||
|
||||
<script src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.4.1.min.js">\x3C/script>');</script><!-- ENDIF -->
|
||||
<!-- 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 -->
|
||||
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||
<!-- INCLUDEJS admin.js -->
|
||||
{$SCRIPTS}
|
||||
|
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
|
||||
<script src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.4.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.5.1.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>
|
||||
<!-- INCLUDEJS ajax.js -->
|
||||
<!-- INCLUDEJS admin.js -->
|
||||
|
@@ -269,8 +269,14 @@ function mark_one_option(id, field_name, s) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset role dropdown field to Select role... if an option gets changed
|
||||
*/
|
||||
* (Re)set the permission role dropdown.
|
||||
*
|
||||
* Try and match the set permissions to an existing role.
|
||||
* Otherwise reset the dropdown to "Select a role.."
|
||||
*
|
||||
* @param {string} id The fieldset identifier
|
||||
* @returns {void}
|
||||
*/
|
||||
function reset_role(id) {
|
||||
var t = document.getElementById(id);
|
||||
|
||||
@@ -278,18 +284,37 @@ function reset_role(id) {
|
||||
return;
|
||||
}
|
||||
|
||||
t.options[0].selected = true;
|
||||
// Before resetting the role dropdown, try and match any permission role
|
||||
var parent = t.parentNode,
|
||||
roleId = match_role_settings(id.replace('role', 'perm')),
|
||||
text = no_role_assigned,
|
||||
index = 0;
|
||||
|
||||
var parent = t.parentNode;
|
||||
parent.querySelector('span.dropdown-trigger').innerText = no_role_assigned;
|
||||
parent.querySelector('input[data-name^=role]').value = '0';
|
||||
// If a role permissions was matched, grab that option's value and index
|
||||
if (roleId) {
|
||||
for (var i = 0; i < t.options.length; i++) {
|
||||
if (parseInt(t.options[i].value, 10) === roleId) {
|
||||
text = t.options[i].text;
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Update the select's value and selected index
|
||||
t.value = roleId;
|
||||
t.options[index].selected = true;
|
||||
|
||||
// Update the dropdown trigger to show the new value
|
||||
parent.querySelector('span.dropdown-trigger').innerText = text;
|
||||
parent.querySelector('input[data-name^=role]').value = roleId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load role and set options accordingly
|
||||
*/
|
||||
function set_role_settings(role_id, target_id) {
|
||||
settings = role_options[role_id];
|
||||
var settings = role_options[role_id];
|
||||
|
||||
if (!settings) {
|
||||
return;
|
||||
@@ -302,3 +327,51 @@ function set_role_settings(role_id, target_id) {
|
||||
mark_one_option(target_id, r, (settings[r] === 1) ? 'y' : 'n');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Match the set permissions against the available roles.
|
||||
*
|
||||
* @param {string} id The parent fieldset identifier
|
||||
* @return {number} The permission role identifier
|
||||
*/
|
||||
function match_role_settings(id) {
|
||||
var fieldset = document.getElementById(id),
|
||||
radios = fieldset.getElementsByTagName('input'),
|
||||
set = {};
|
||||
|
||||
// Iterate over all the radio buttons
|
||||
for (var i = 0; i < radios.length; i++) {
|
||||
var matches = radios[i].id.match(/setting\[\d+]\[\d+]\[([a-z_]+)]/);
|
||||
|
||||
// Make sure the name attribute matches, the radio is checked and it is not the "No" (-1) value.
|
||||
if (matches !== null && radios[i].checked && radios[i].value !== '-1') {
|
||||
set[matches[1]] = parseInt(radios[i].value, 10);
|
||||
}
|
||||
}
|
||||
|
||||
// Sort and stringify the 'set permissions' object
|
||||
set = sort_and_stringify(set);
|
||||
|
||||
// Iterate over the available role options and return the first match
|
||||
for (var r in role_options)
|
||||
{
|
||||
if (sort_and_stringify(role_options[r]) === set) {
|
||||
return parseInt(r, 10);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort and stringify an Object so it can be easily compared against another object.
|
||||
*
|
||||
* @param {object} obj The object to sort (by key) and stringify
|
||||
* @return {string} The sorted object as a string
|
||||
*/
|
||||
function sort_and_stringify(obj) {
|
||||
return JSON.stringify(Object.keys(obj).sort().reduce(function (result, key) {
|
||||
result[key] = obj[key];
|
||||
return result;
|
||||
}, {}));
|
||||
}
|
||||
|
@@ -17,7 +17,7 @@
|
||||
</div>
|
||||
|
||||
<script src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.4.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.5.1.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>
|
||||
|
||||
<!-- EVENT acp_simple_footer_after -->
|
||||
|
@@ -218,23 +218,6 @@ $(function() {
|
||||
|
||||
// Prepare dropdown
|
||||
phpbb.prepareRolesDropdown();
|
||||
|
||||
// Reset role drop-down on modifying permissions in advanced tab
|
||||
$('div.permissions-switch > a').on('click', function () {
|
||||
$.each($('input[type=radio][name^="setting["]'), function () {
|
||||
var $this = $(this);
|
||||
$this.on('click', function () {
|
||||
var $rolesOptions = $this.closest('fieldset.permissions').find('.roles-options'),
|
||||
rolesSelect = $rolesOptions.find('select > option')[0];
|
||||
|
||||
// Set selected setting
|
||||
$rolesOptions.children('span')
|
||||
.text(rolesSelect.text);
|
||||
$rolesOptions.children('input[type=hidden]')
|
||||
.val(rolesSelect.value);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
})(jQuery); // Avoid conflicts with other libraries
|
||||
|
@@ -948,7 +948,10 @@ phpbb.timezonePreselectSelect = function(forceSelector) {
|
||||
var minutes = offset % 60;
|
||||
var hours = (offset - minutes) / 60;
|
||||
|
||||
if (hours < 10) {
|
||||
if (hours === 0) {
|
||||
hours = '00';
|
||||
sign = '+';
|
||||
} else if (hours < 10) {
|
||||
hours = '0' + hours.toString();
|
||||
} else {
|
||||
hours = hours.toString();
|
||||
@@ -1745,49 +1748,81 @@ phpbb.lazyLoadAvatars = function loadAvatars() {
|
||||
});
|
||||
};
|
||||
|
||||
var recaptchaForm = $('.g-recaptcha').parents('form');
|
||||
var submitButton = null;
|
||||
var programaticallySubmitted = false;
|
||||
phpbb.recaptcha = {
|
||||
button: null,
|
||||
ready: false,
|
||||
|
||||
phpbb.recaptchaOnLoad = function () {
|
||||
// Listen to submit buttons in order to know which one was pressed
|
||||
$('input[type="submit"]').each(function () {
|
||||
$(this).on('click', function () {
|
||||
submitButton = this;
|
||||
token: $('input[name="recaptcha_token"]'),
|
||||
form: $('.g-recaptcha').parents('form'),
|
||||
v3: $('[data-recaptcha-v3]'),
|
||||
|
||||
load: function() {
|
||||
phpbb.recaptcha.bindButton();
|
||||
phpbb.recaptcha.bindForm();
|
||||
},
|
||||
bindButton: function() {
|
||||
phpbb.recaptcha.form.find('input[type="submit"]').on('click', function() {
|
||||
// Listen to all the submit buttons for the form that has reCAPTCHA protection,
|
||||
// and store it so we can click the exact same button later on when we are ready.
|
||||
phpbb.recaptcha.button = this;
|
||||
});
|
||||
});
|
||||
},
|
||||
bindForm: function() {
|
||||
phpbb.recaptcha.form.on('submit', function(e) {
|
||||
// If ready is false, it means the user pressed a submit button.
|
||||
// And the form was not submitted by us, after the token was loaded.
|
||||
if (!phpbb.recaptcha.ready) {
|
||||
// If version 3 is used, we need to make a different execution,
|
||||
// including the action and the site key.
|
||||
if (phpbb.recaptcha.v3.length) {
|
||||
grecaptcha.execute(
|
||||
phpbb.recaptcha.v3.data('recaptcha-v3'),
|
||||
{action: phpbb.recaptcha.v3.val()}
|
||||
).then(function(token) {
|
||||
// Place the token inside the form
|
||||
phpbb.recaptcha.token.val(token);
|
||||
|
||||
recaptchaForm.on('submit', function (e) {
|
||||
if (!programaticallySubmitted) {
|
||||
grecaptcha.execute();
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
}
|
||||
// And now we submit the form.
|
||||
phpbb.recaptcha.submitForm();
|
||||
});
|
||||
} else {
|
||||
// Regular version 2 execution
|
||||
grecaptcha.execute();
|
||||
}
|
||||
|
||||
phpbb.recaptchaOnSubmit = function () {
|
||||
programaticallySubmitted = true;
|
||||
// If concrete button was clicked (e.g. preview instead of submit),
|
||||
// let's trigger the same action
|
||||
if (submitButton) {
|
||||
submitButton.click();
|
||||
} else {
|
||||
// Rename input[name="submit"] so that we can submit the form
|
||||
if (typeof recaptchaForm.submit !== 'function') {
|
||||
recaptchaForm.submit.name = 'submit_btn';
|
||||
// Do not submit the form
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
},
|
||||
submitForm: function() {
|
||||
// Now we are ready, so set it to true.
|
||||
// so the 'submit' event doesn't run multiple times.
|
||||
phpbb.recaptcha.ready = true;
|
||||
|
||||
if (phpbb.recaptcha.button) {
|
||||
// If there was a specific button pressed initially, trigger the same button
|
||||
phpbb.recaptcha.button.click();
|
||||
} else {
|
||||
if (typeof phpbb.recaptcha.form.submit !== 'function') {
|
||||
// Rename input[name="submit"] so that we can submit the form
|
||||
phpbb.recaptcha.form.submit.name = 'submit_btn';
|
||||
}
|
||||
|
||||
phpbb.recaptcha.form.submit();
|
||||
}
|
||||
recaptchaForm.submit();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// reCAPTCHA doesn't accept callback functions nested inside objects
|
||||
// reCAPTCHA v2 doesn't accept callback functions nested inside objects
|
||||
// so we need to make this helper functions here
|
||||
window.phpbbRecaptchaOnLoad = function() {
|
||||
phpbb.recaptchaOnLoad();
|
||||
}
|
||||
phpbb.recaptcha.load();
|
||||
};
|
||||
|
||||
window.phpbbRecaptchaOnSubmit = function() {
|
||||
phpbb.recaptchaOnSubmit();
|
||||
}
|
||||
phpbb.recaptcha.submitForm();
|
||||
};
|
||||
|
||||
$(window).on('load', phpbb.lazyLoadAvatars);
|
||||
|
||||
@@ -1795,6 +1830,11 @@ $(window).on('load', phpbb.lazyLoadAvatars);
|
||||
* Apply code editor to all textarea elements with data-bbcode attribute
|
||||
*/
|
||||
$(function() {
|
||||
// reCAPTCHA v3 needs to be initialized
|
||||
if (phpbb.recaptcha.v3.length) {
|
||||
phpbb.recaptcha.load();
|
||||
}
|
||||
|
||||
$('textarea[data-bbcode]').each(function() {
|
||||
phpbb.applyCodeEditor(this);
|
||||
});
|
||||
|
2
phpBB/assets/javascript/jquery-3.4.1.min.js
vendored
2
phpBB/assets/javascript/jquery-3.4.1.min.js
vendored
File diff suppressed because one or more lines are too long
2
phpBB/assets/javascript/jquery-3.5.1.min.js
vendored
Normal file
2
phpBB/assets/javascript/jquery-3.5.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -84,7 +84,7 @@ $user = $phpbb_container->get('user');
|
||||
$user->data['user_id'] = ANONYMOUS;
|
||||
$user->ip = '127.0.0.1';
|
||||
|
||||
$application = new \phpbb\console\application('phpBB Console', PHPBB_VERSION, $language);
|
||||
$application = new \phpbb\console\application('phpBB Console', PHPBB_VERSION, $language, $config);
|
||||
$application->setDispatcher($phpbb_container->get('dispatcher'));
|
||||
$application->register_container_commands($phpbb_container->get('console.command_collection'));
|
||||
$application->run($input);
|
||||
|
29
phpBB/cache/.htaccess
vendored
29
phpBB/cache/.htaccess
vendored
@@ -1,4 +1,25 @@
|
||||
<Files *>
|
||||
Order Allow,Deny
|
||||
Deny from All
|
||||
</Files>
|
||||
# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
|
||||
# module mod_authz_host to a new module called mod_access_compat (which may be
|
||||
# disabled) and a new "Require" syntax has been introduced to mod_authz_core.
|
||||
# We could just conditionally provide both versions, but unfortunately Apache
|
||||
# does not explicitly tell us its version if the module mod_version is not
|
||||
# available. In this case, we check for the availability of module
|
||||
# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
|
||||
<IfModule mod_version.c>
|
||||
<IfVersion < 2.4>
|
||||
Order Allow,Deny
|
||||
Deny from All
|
||||
</IfVersion>
|
||||
<IfVersion >= 2.4>
|
||||
Require all denied
|
||||
</IfVersion>
|
||||
</IfModule>
|
||||
<IfModule !mod_version.c>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order Allow,Deny
|
||||
Deny from All
|
||||
</IfModule>
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
@@ -27,7 +27,9 @@
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"bantu/ini-get-wrapper": "~1.0",
|
||||
"composer/package-versions-deprecated": "^1.11",
|
||||
"google/recaptcha": "~1.1",
|
||||
"guzzlehttp/guzzle": "~6.3",
|
||||
"lusitanian/oauth": "^0.8.1",
|
||||
@@ -52,7 +54,7 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"fabpot/goutte": "~3.2",
|
||||
"facebook/webdriver": "~1.6",
|
||||
"php-webdriver/webdriver": "~1.8",
|
||||
"laravel/homestead": "~7.0",
|
||||
"phing/phing": "~2.4",
|
||||
"phpunit/dbunit": "~4.0",
|
||||
@@ -60,8 +62,7 @@
|
||||
"squizlabs/php_codesniffer": "~3.4",
|
||||
"symfony/browser-kit": "~3.4",
|
||||
"symfony/css-selector": "~3.4",
|
||||
"symfony/dom-crawler": "~3.4",
|
||||
"sami/sami": "^4.1"
|
||||
"symfony/dom-crawler": "~3.4"
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
|
2524
phpBB/composer.lock
generated
2524
phpBB/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,25 @@
|
||||
<Files *>
|
||||
Order Allow,Deny
|
||||
Deny from All
|
||||
</Files>
|
||||
# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
|
||||
# module mod_authz_host to a new module called mod_access_compat (which may be
|
||||
# disabled) and a new "Require" syntax has been introduced to mod_authz_core.
|
||||
# We could just conditionally provide both versions, but unfortunately Apache
|
||||
# does not explicitly tell us its version if the module mod_version is not
|
||||
# available. In this case, we check for the availability of module
|
||||
# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
|
||||
<IfModule mod_version.c>
|
||||
<IfVersion < 2.4>
|
||||
Order Allow,Deny
|
||||
Deny from All
|
||||
</IfVersion>
|
||||
<IfVersion >= 2.4>
|
||||
Require all denied
|
||||
</IfVersion>
|
||||
</IfModule>
|
||||
<IfModule !mod_version.c>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order Allow,Deny
|
||||
Deny from All
|
||||
</IfModule>
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
@@ -85,12 +85,22 @@ services:
|
||||
controller.helper:
|
||||
class: phpbb\controller\helper
|
||||
arguments:
|
||||
- '@template'
|
||||
- '@user'
|
||||
- '@auth'
|
||||
- '@cache.driver'
|
||||
- '@config'
|
||||
- '@symfony_request'
|
||||
- '@cron.manager'
|
||||
- '@dbal.conn'
|
||||
- '@dispatcher'
|
||||
- '@language'
|
||||
- '@request'
|
||||
- '@routing.helper'
|
||||
- '@symfony_request'
|
||||
- '@template'
|
||||
- '@user'
|
||||
- '%core.root_path%'
|
||||
- '%core.adm_relative_path%'
|
||||
- '%core.php_ext%'
|
||||
- '%debug.sql_explain%'
|
||||
|
||||
controller.resolver:
|
||||
class: phpbb\controller\resolver
|
||||
|
@@ -57,3 +57,11 @@ services:
|
||||
- [set_name, [core.captcha.plugins.recaptcha]]
|
||||
tags:
|
||||
- { name: captcha.plugins }
|
||||
|
||||
core.captcha.plugins.recaptcha_v3:
|
||||
class: phpbb\captcha\plugins\recaptcha_v3
|
||||
shared: false
|
||||
calls:
|
||||
- ['set_name', ['core.captcha.plugins.recaptcha_v3']]
|
||||
tags:
|
||||
- { name: captcha.plugins }
|
||||
|
@@ -128,6 +128,7 @@ services:
|
||||
- '@user'
|
||||
- '@ext.manager'
|
||||
- '@log'
|
||||
- '%cache.driver.class%'
|
||||
tags:
|
||||
- { name: console.command }
|
||||
|
||||
@@ -137,6 +138,7 @@ services:
|
||||
- '@user'
|
||||
- '@ext.manager'
|
||||
- '@log'
|
||||
- '%cache.driver.class%'
|
||||
tags:
|
||||
- { name: console.command }
|
||||
|
||||
@@ -146,6 +148,7 @@ services:
|
||||
- '@user'
|
||||
- '@ext.manager'
|
||||
- '@log'
|
||||
- '%cache.driver.class%'
|
||||
tags:
|
||||
- { name: console.command }
|
||||
|
||||
@@ -155,6 +158,7 @@ services:
|
||||
- '@user'
|
||||
- '@ext.manager'
|
||||
- '@log'
|
||||
- '%cache.driver.class%'
|
||||
tags:
|
||||
- { name: console.command }
|
||||
|
||||
|
@@ -2,7 +2,7 @@ services:
|
||||
cron.manager:
|
||||
class: phpbb\cron\manager
|
||||
arguments:
|
||||
- '@cron.task_collection'
|
||||
- '@service_container'
|
||||
- '@routing.helper'
|
||||
- '%core.root_path%'
|
||||
- '%core.php_ext%'
|
||||
|
@@ -12,11 +12,13 @@ services:
|
||||
- '@user'
|
||||
- '@auth'
|
||||
- '@dispatcher'
|
||||
- '@language'
|
||||
- '%core.php_ext%'
|
||||
|
||||
feed.helper:
|
||||
class: phpbb\feed\helper
|
||||
arguments:
|
||||
- '@auth'
|
||||
- '@config'
|
||||
- '@service_container'
|
||||
- '@path_helper'
|
||||
|
@@ -176,6 +176,16 @@ services:
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
notification.type.forum:
|
||||
class: phpbb\notification\type\forum
|
||||
shared: false
|
||||
parent: notification.type.post
|
||||
calls:
|
||||
- [set_user_loader, ['@user_loader']]
|
||||
- [set_config, ['@config']]
|
||||
tags:
|
||||
- { name: notification.type }
|
||||
|
||||
# ----- Notification's methods -----
|
||||
# Service MUST NOT be shared for all the plugins to work.
|
||||
notification.method_collection:
|
||||
@@ -206,8 +216,10 @@ services:
|
||||
- '@user_loader'
|
||||
- '@user'
|
||||
- '@config'
|
||||
- '@dbal.conn'
|
||||
- '%core.root_path%'
|
||||
- '%core.php_ext%'
|
||||
- '%tables.notification_emails%'
|
||||
tags:
|
||||
- { name: notification.method }
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
parameters:
|
||||
passwords.driver.argon2_memory_cost: 1024
|
||||
passwords.driver.argon2_memory_cost: 65536
|
||||
passwords.driver.argon2_threads: 2
|
||||
passwords.driver.argon2_time_cost: 2
|
||||
passwords.driver.argon2_time_cost: 4
|
||||
passwords.driver.bcrypt_cost: 10
|
||||
|
||||
services:
|
||||
|
@@ -3,15 +3,20 @@ services:
|
||||
class: phpbb\profilefields\manager
|
||||
arguments:
|
||||
- '@auth'
|
||||
- '@config_text'
|
||||
- '@dbal.conn'
|
||||
- '@dbal.tools'
|
||||
- '@dispatcher'
|
||||
- '@language'
|
||||
- '@log'
|
||||
- '@request'
|
||||
- '@template'
|
||||
- '@profilefields.type_collection'
|
||||
- '@user'
|
||||
- '%tables.profile_fields%'
|
||||
- '%tables.profile_fields_language%'
|
||||
- '%tables.profile_fields_data%'
|
||||
- '%tables.profile_fields_options_language%'
|
||||
- '%tables.profile_fields_language%'
|
||||
|
||||
profilefields.lang_helper:
|
||||
class: phpbb\profilefields\lang_helper
|
||||
@@ -56,15 +61,6 @@ services:
|
||||
tags:
|
||||
- { name: profilefield.type }
|
||||
|
||||
profilefields.type.googleplus:
|
||||
class: phpbb\profilefields\type\type_googleplus
|
||||
arguments:
|
||||
- '@request'
|
||||
- '@template'
|
||||
- '@user'
|
||||
tags:
|
||||
- { name: profilefield.type }
|
||||
|
||||
profilefields.type.int:
|
||||
class: phpbb\profilefields\type\type_int
|
||||
arguments:
|
||||
|
@@ -73,6 +73,7 @@ services:
|
||||
class: phpbb\textreparser\plugins\poll_option
|
||||
arguments:
|
||||
- '@dbal.conn'
|
||||
- '%tables.poll_options%'
|
||||
calls:
|
||||
- [set_name, [poll_option]]
|
||||
tags:
|
||||
|
@@ -68,7 +68,7 @@ services:
|
||||
- { name: twig.extension }
|
||||
|
||||
template.twig.extensions.debug:
|
||||
class: Twig_Extension_Debug
|
||||
class: Twig\Extension\DebugExtension
|
||||
|
||||
template:
|
||||
class: phpbb\template\twig\twig
|
||||
|
@@ -35,6 +35,7 @@ parameters:
|
||||
tables.migrations: '%core.table_prefix%migrations'
|
||||
tables.moderator_cache: '%core.table_prefix%moderator_cache'
|
||||
tables.modules: '%core.table_prefix%modules'
|
||||
tables.notification_emails: '%core.table_prefix%notification_emails'
|
||||
tables.notification_types: '%core.table_prefix%notification_types'
|
||||
tables.notifications: '%core.table_prefix%notifications'
|
||||
tables.poll_options: '%core.table_prefix%poll_options'
|
||||
|
@@ -18,7 +18,7 @@
|
||||
* 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(
|
||||
'mssql',
|
||||
'mysql_41',
|
||||
@@ -34,7 +34,7 @@ if (!is_writable($schema_path))
|
||||
}
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = dirname(__FILE__) . '/../';
|
||||
$phpbb_root_path = __DIR__ . '/../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
|
||||
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);
|
||||
$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>';
|
||||
@@ -464,7 +464,7 @@ $old_char = '';
|
||||
foreach ($lang_references as $lang_var => $filenames)
|
||||
{
|
||||
$var = preg_replace('#^L_(.*?)#', '\1', $lang_var);
|
||||
$char = $var{0};
|
||||
$char = $var[0];
|
||||
if ($old_char != $char)
|
||||
{
|
||||
$old_char = $char;
|
||||
@@ -480,7 +480,7 @@ foreach ($lang_references as $lang_var => $filenames)
|
||||
echo '.';
|
||||
flush();
|
||||
$var = preg_replace('#^L_(.*?)#', '\1', $lang_var);
|
||||
$char = $var{0};
|
||||
$char = $var[0];
|
||||
if ($old_char != $char)
|
||||
{
|
||||
$old_char = $char;
|
||||
|
@@ -290,7 +290,7 @@ function dump_code($code, $filename = 'file.txt')
|
||||
$list = explode("\n", $code);
|
||||
$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 '<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)
|
||||
|
@@ -34,7 +34,7 @@ $mode = $request->variable('mode', '');
|
||||
$modules = find_modules($phpbb_root_path . 'language/en');
|
||||
|
||||
$kkeys = $keys = array();
|
||||
$langdir = dirname(__FILE__);
|
||||
$langdir = __DIR__;
|
||||
|
||||
if (isset($lang))
|
||||
{
|
||||
|
@@ -191,4 +191,3 @@ foreach ($iterator as $file)
|
||||
file_put_contents($file->getPathname(), $code);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -50,10 +50,19 @@
|
||||
<ol>
|
||||
<li><a href="#changelog">Changelog</a>
|
||||
<ul>
|
||||
<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="#v331rc1">Changes since 3.3.1-RC1</a></li>
|
||||
<li><a href="#v330">Changes since 3.3.0</a></li>
|
||||
<li><a href="#v330rc1">Changes since 3.3.0-RC1</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="#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="#v3210rc1">Changes since 3.2.10-RC1</a></li>
|
||||
<li><a href="#v329">Changes since 3.2.9</a></li>
|
||||
<li><a href="#v329rc1">Changes since 3.2.9-RC1</a></li>
|
||||
<li><a href="#v328">Changes since 3.2.8</a></li>
|
||||
<li><a href="#v328rc1">Changes since 3.2.8-RC1</a></li>
|
||||
@@ -146,6 +155,314 @@
|
||||
<div class="inner">
|
||||
|
||||
<div class="content">
|
||||
<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>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16366">PHPBB3-16366</a>] - Language dictionaries other than common.php are unavailable to BBCode templates in feeds</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16488">PHPBB3-16488</a>] - ACP build_cfg_template does not support 0 as minimum value</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16512">PHPBB3-16512</a>] - make_clickable() function does not apply custom classes</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16525">PHPBB3-16525</a>] - Database backup generates a general error with PostgreSQL 12+</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16526">PHPBB3-16526</a>] - Not proper handled comma-separated ACP configuration values</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16532">PHPBB3-16532</a>] - Example post is stored as invalid XML</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16544">PHPBB3-16544</a>] - topic_notify.txt is wrongly used for forum subscriptions</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16565">PHPBB3-16565</a>] - Circular dependencies when cron task depends on controller.helper</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16568">PHPBB3-16568</a>] - Problem with drop-down menu</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16569">PHPBB3-16569</a>] - Massive margin between posts when zoomed out in browser</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16583">PHPBB3-16583</a>] - Reset button in create search index not working</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16588">PHPBB3-16588</a>] - Update docs links from 3.2.x to 3.3.x</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16593">PHPBB3-16593</a>] - Undefined properties in create_search_index install task</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16597">PHPBB3-16597</a>] - Doctum can't build docs on branches older than 3.3.x</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16602">PHPBB3-16602</a>] - phpBB cannot be installed and/or run without iconv or mbstring</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16605">PHPBB3-16605</a>] - SQL Registration errors do not trigger an error correctly</li>
|
||||
</ul>
|
||||
<h4>Improvement</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15300">PHPBB3-15300</a>] - Maximum attachment filesize is nowhere mentioned</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16208">PHPBB3-16208</a>] - No option for email for "Notify me" when a reported post is dealt with</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16430">PHPBB3-16430</a>] - Permission ordering</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16472">PHPBB3-16472</a>] - Remove PhantomJS UI tests</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16527">PHPBB3-16527</a>] - Add role_exists to migration tools</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16533">PHPBB3-16533</a>] - Add core and template events to customize UCP login keys management module</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16556">PHPBB3-16556</a>] - Remove purposeless <Files "*"> from .htaccess</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16557">PHPBB3-16557</a>] - Support piping tracker XML to build_changelog.php</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16562">PHPBB3-16562</a>] - Add explanation for password complexity when resetting password</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16604">PHPBB3-16604</a>] - Display error message if avatar upload folder is not writable</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16608">PHPBB3-16608</a>] - Modernize README</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16612">PHPBB3-16612</a>] - Restructure HTML for agreement, coppa, terms etc. </li>
|
||||
</ul>
|
||||
<h4>Task</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15594">PHPBB3-15594</a>] - The deprecated AOL contact field should be removed</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16571">PHPBB3-16571</a>] - Update s9e TextFormatter</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16580">PHPBB3-16580</a>] - Update rendering tests to match actual Prosilver</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16616">PHPBB3-16616</a>] - Update composer dependencies to latest versions</li>
|
||||
</ul>
|
||||
|
||||
<a name="v331rc1"></a><h3>Changes since 3.3.1-RC1</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16524">PHPBB3-16524</a>] - General error (SQL ERROR) on adding emoji character to the profile field</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16543">PHPBB3-16543</a>] - Update querystring in stylesheet.css to hashes</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16550">PHPBB3-16550</a>] - compact(): Undefined variable: url - in PMs</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16552">PHPBB3-16552</a>] - Roll back FontAwesome 5 changes.</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16552">PHPBB3-16559</a>] - Undefined event variables in MCP queue</li>
|
||||
</ul>
|
||||
<h4>Improvement</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16554">PHPBB3-16554</a>] - Align all .htaccess files to support Apache 2.4 mod_authz_core directives</li>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16555">PHPBB3-16555</a>] - Update to the latest version of jQuery</li>
|
||||
</ul>
|
||||
<h4>Security Issue</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-259">SECURITY-259</a>] - Server-Side Request Forgery via FastImageSize in s9e textformatter</li>
|
||||
</ul>
|
||||
<h4>Hardening</h4>
|
||||
<ul>
|
||||
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-257">SECURITY-257</a>] - Potential RCE via Phar Deserialization through Legacy BBCode Parser</li>
|
||||
</ul>
|
||||
|
||||
<a name="v330"></a><h3>Changes since 3.3.0</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10506">PHPBB3-10506</a>] - Not confirming "Save as Draft" strips attachments from PMs</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13426">PHPBB3-13426</a>] - Timezone related fatal error after upgrade to 3.1.2</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13914">PHPBB3-13914</a>] - Could not get style data via MySQL DB auto_increment_offset != 1 </li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14754">PHPBB3-14754</a>] - Receive too many topic email notifications when "notification.method.board" is off.</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15079">PHPBB3-15079</a>] - MySql Error when saving draft with Emoji</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15194">PHPBB3-15194</a>] - Cannot remove group avatar in UCP (manage group)</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15275">PHPBB3-15275</a>] - Post details: Look up IP links don't properly work</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15395">PHPBB3-15395</a>] - Very slow FTS on PostgreSQL</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15438">PHPBB3-15438</a>] - Use wrong word in ACP for logged administrators actions</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15560">PHPBB3-15560</a>] - Wrong redirection upon hard delete after soft delete in viewtopic</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15572">PHPBB3-15572</a>] - Quoted posts fail W3C Validator</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15591">PHPBB3-15591</a>] - Users with disabled "Can send instant messages" permission can view jabber address</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15712">PHPBB3-15712</a>] - Inserting an emoji in PM subject field causes errors</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15766">PHPBB3-15766</a>] - "No role assigned...." for forum permissions is ambiguous</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15887">PHPBB3-15887</a>] - Firefox confuses username and e-mail when storing passwords</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15937">PHPBB3-15937</a>] - Update phpBB reCAPTCHA plugin to handle Google reCAPTCHA v3</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15979">PHPBB3-15979</a>] - Restoring deleted post on edit does not update last post info</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16060">PHPBB3-16060</a>] - auto-prune of shadow topics triggered by prune_all_forums updates wrong timestamp</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16149">PHPBB3-16149</a>] - Missing profile field data</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16222">PHPBB3-16222</a>] - Timezone suggestion in UCP</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16234">PHPBB3-16234</a>] - Search syntax broken when using Sphinx Fulltext backend</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16245">PHPBB3-16245</a>] - Overflow in MSSQL attempting to manage attachments when collection > 2.1 GB</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16289">PHPBB3-16289</a>] - U_VIEW_REPORT in emails is incorrectly HTML-encoded</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16296">PHPBB3-16296</a>] - Unable to delete or mark PMs in UCP folder view</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16307">PHPBB3-16307</a>] - Incorrect SQL / PHP time when debug.sql_explain is enabled</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16308">PHPBB3-16308</a>] - phpBB 3.3.0 PHP Fatal error (template\context::assign_block_vars())</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16309">PHPBB3-16309</a>] - Smilies with a left square bracket do not work</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16310">PHPBB3-16310</a>] - S_SOFTDELETE_ALLOWED condition in posting.php is wrong and causes soft delete option to appear when it should not</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16311">PHPBB3-16311</a>] - Incorrect password length ACP setting explanation</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16314">PHPBB3-16314</a>] - Database connection gets closed on controllers</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16316">PHPBB3-16316</a>] - navbar_header.html of prosilver style breaks Rich-Markup</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16319">PHPBB3-16319</a>] - Mobile landscape, tablet portrait react wrong</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16323">PHPBB3-16323</a>] - The spaceless tag is deprecated</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16325">PHPBB3-16325</a>] - Error "Failure while aqcuiring locks" when trying to install phpBB 3.3.0</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16332">PHPBB3-16332</a>] - Language strings for CODE and QUOTE are missing in the MCP post details and in the member profiles</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16335">PHPBB3-16335</a>] - $display_cat and $download_link are undefined variables for core.parse_attachments_modify_template_data when $denied is true</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16339">PHPBB3-16339</a>] - Poll's voting options are not fully Ajaxed</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16344">PHPBB3-16344</a>] - phpbb_validate_email uses non-existent language keys</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16348">PHPBB3-16348</a>] - user_ban double free of $result when banning a non-existent or disallowed username on command line</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16356">PHPBB3-16356</a>] - Saving a draft does not delete orphaned attachments from the server</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16358">PHPBB3-16358</a>] - Attachment tab should be removed when there are no filters</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16360">PHPBB3-16360</a>] - PHP warning on GD 3D image CAPTCHA</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16361">PHPBB3-16361</a>] - Local URL truncation from link helper truncate_local_url does not work correctly</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16367">PHPBB3-16367</a>] - Feed controller is not actually setting character set of response</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16368">PHPBB3-16368</a>] - DI container always rebuilds itself when defined('DEBUG') is true and extensions use Composer for dependencies due to out-of-order freshness checks</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16376">PHPBB3-16376</a>] - Undefined index 'display_subforum_limit' on board index</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16377">PHPBB3-16377</a>] - Undefined index navlinks in navbar_header</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16378">PHPBB3-16378</a>] - Update deprecated console exception_subscriber</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16379">PHPBB3-16379</a>] - Update deprecated event dispatcher class</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16380">PHPBB3-16380</a>] - Exception interface should extend \Throwable</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16382">PHPBB3-16382</a>] - Update deprecated Twig classes</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16391">PHPBB3-16391</a>] - Language file info_mcp_xxx.php from extensions should be included in ACP</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16394">PHPBB3-16394</a>] - Access array offset bug in MCP topic approval - PHP 7.4</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16399">PHPBB3-16399</a>] - Emoji's in topic title cause errors</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16403">PHPBB3-16403</a>] - Attachment icon always displayed in list of reported message</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16407">PHPBB3-16407</a>] - S_MESSAGE_REPORTED and L_MESSAGE_REPORTED aren't defined anywhere</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16416">PHPBB3-16416</a>] - A non-numeric value encountered in ACP attachments settings</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16417">PHPBB3-16417</a>] - SQL fatal error while updating database from older versions via CLI</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16418">PHPBB3-16418</a>] - A non-numeric value encountered - ACP board start date</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16422">PHPBB3-16422</a>] - bbcode URL tag breaking URL's?</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16423">PHPBB3-16423</a>] - Add Aria Engine to list of Fulltext Supported</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16428">PHPBB3-16428</a>] - Allowed schemes in links and similar fields should check field content</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16432">PHPBB3-16432</a>] - PHP Fatal error: APCuIterator::__construct(): APC must be enabled to use APCuIterator</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16435">PHPBB3-16435</a>] - core.page_footer/core.page_footer_after events don't run on app.php pages</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16437">PHPBB3-16437</a>] - Forum permissions don't appear for logged users who cannot post a new topic</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16439">PHPBB3-16439</a>] - Subject line of first unread post displays with incorrect colour</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16453">PHPBB3-16453</a>] - Always load permission lang files before core.permissions</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16462">PHPBB3-16462</a>] - Slow tests fail when LDAP extension is not enabled</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16467">PHPBB3-16467</a>] - phpBB3 does not work with spaces in PostgreSQL database passwords</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16474">PHPBB3-16474</a>] - Scrollbar in attachbox</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16476">PHPBB3-16476</a>] - Outdated entries in tweaks.css</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16478">PHPBB3-16478</a>] - phpBB Debug warning "Use of undefined constant ANONYMOUS" in installer</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16480">PHPBB3-16480</a>] - Fix Emoji in report post</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16485">PHPBB3-16485</a>] - Fix Emoji in logs for warning message</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16486">PHPBB3-16486</a>] - Wrong configuration DB update in 3.2.0-a1 migration</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16500">PHPBB3-16500</a>] - Copying topics results in rearranging of inline attachments </li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16503">PHPBB3-16503</a>] - WhoIs lookup has error message in MCP</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16505">PHPBB3-16505</a>] - PHP debug warning while using \phpbb\language\language\lang_array() function</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16508">PHPBB3-16508</a>] - Whois not working for IPv6 addresses</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16510">PHPBB3-16510</a>] - Missing rows in config table on new install</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16514">PHPBB3-16514</a>] - Migration google_recaptcha_v3 is in wrong directory</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16530">PHPBB3-16530</a>] - Unknown or bad timezone warning in console installer</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16534">PHPBB3-16534</a>] - Passwords converted from phpBB2 can have invalid hash</li>
|
||||
</ul>
|
||||
<h4>Improvement</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13867">PHPBB3-13867</a>] - Profile field types need an enable/disable mechanism</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15370">PHPBB3-15370</a>] - Spinning indicator missing when updating permissions</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15672">PHPBB3-15672</a>] - Keep same format in Submit changes.</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16163">PHPBB3-16163</a>] - No error message when there is no displayed post in the MCP</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16180">PHPBB3-16180</a>] - Enhance "Send test email" to include information that allows identifying "the test that was being performed."</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16288">PHPBB3-16288</a>] - PHP 8 compatibility</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16313">PHPBB3-16313</a>] - Remote http{} block from nginx sample config</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16315">PHPBB3-16315</a>] - Remove Google+ from Custom profile fields</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16338">PHPBB3-16338</a>] - Add DuckDuckGo as a search bot that phpBB recognizes</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16342">PHPBB3-16342</a>] - Update Argon2 hashing costs</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16350">PHPBB3-16350</a>] - Move acp/mcp ban code to functions_admin.php</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16351">PHPBB3-16351</a>] - Use CHMOD constants from filesystem_interface</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16352">PHPBB3-16352</a>] - Deprecate unused functions/classes</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16363">PHPBB3-16363</a>] - Allow replying to locked topics with m_lock permission</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16370">PHPBB3-16370</a>] - Add core events for Notification</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16381">PHPBB3-16381</a>] - Add core event to Modify Topics SQL</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16383">PHPBB3-16383</a>] - Add core events to modify friends list</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16384">PHPBB3-16384</a>] - Add template events friends list username {prepend/append}</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16388">PHPBB3-16388</a>] - Add new events in viewforum_body.html and viewtopic_body.html</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16396">PHPBB3-16396</a>] - Use php-webdriver instead of facebook webdriver</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16397">PHPBB3-16397</a>] - Expose user id directly</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16406">PHPBB3-16406</a>] - Event core.notification_manager_add_notifications_for_users_modify_data incorrectly placed</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16411">PHPBB3-16411</a>] - Add vars to notification core events</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16421">PHPBB3-16421</a>] - Add contact field icon template events to viewtopic_body.html</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16424">PHPBB3-16424</a>] - Add base_url to generate_smilies events</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16425">PHPBB3-16425</a>] - Add event core.generate_smilies_modify_sql</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16426">PHPBB3-16426</a>] - Search settings should allow specification of number of characters to return</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16429">PHPBB3-16429</a>] - Add vars to 2 ACP User core events</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16433">PHPBB3-16433</a>] - Add data array to core.ucp_register_user_row_after</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16434">PHPBB3-16434</a>] - Remember forum for advanced search</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16443">PHPBB3-16443</a>] - Add event core.ucp_pm_compose_modify_parse_after</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16444">PHPBB3-16444</a>] - Add event core.ucp_pm_view_message_before</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16446">PHPBB3-16446</a>] - Add event core.message_history_modify_rowset</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16447">PHPBB3-16447</a>] - Add event core.ucp_pm_compose_compose_pm_basic_info_query_after</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16448">PHPBB3-16448</a>] - Add event core.mcp_get_post_data_after</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16449">PHPBB3-16449</a>] - Remove AJAX actions for extension management</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16450">PHPBB3-16450</a>] - ACP permission tabs don't use all available space</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16452">PHPBB3-16452</a>] - Upgrade to FontAwesome 5</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16456">PHPBB3-16456</a>] - Add event core.text_formatter_s9e_get_errors</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16458">PHPBB3-16458</a>] - Add template events to acp_profile.html</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16461">PHPBB3-16461</a>] - Ignore .idea and node_modules</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16463">PHPBB3-16463</a>] - Fix "acp_board.php" where "ACP_SUBMIT_CHANGES" is not displayed.</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16468">PHPBB3-16468</a>] - Amend DocBlocks for user_delete()</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16494">PHPBB3-16494</a>] - Update composer and composer dependencies</li>
|
||||
</ul>
|
||||
<h4>New Feature</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16225">PHPBB3-16225</a>] - Add style version display in ACP install styles page</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16329">PHPBB3-16329</a>] - Strip Exif metadata from uploaded image attachments</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16330">PHPBB3-16330</a>] - Enable ACP option to specify image compression level</li>
|
||||
</ul>
|
||||
<h4>Sub-task</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16233">PHPBB3-16233</a>] - Enable exact phrase searching with Sphinx Fulltext</li>
|
||||
</ul>
|
||||
<h4>Task</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15609">PHPBB3-15609</a>] - Discrepancy and bugs between moderation queue and reports</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16121">PHPBB3-16121</a>] - Add footer-row to simple_footer.html</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16122">PHPBB3-16122</a>] - RANK_IMG, GROUP_RANK and RANK_TITLE variables are useless in some template files</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16392">PHPBB3-16392</a>] - Update composer & dependencies</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16415">PHPBB3-16415</a>] - Use API token for appveyor builds</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16419">PHPBB3-16419</a>] - Add mrgoldy to CREDITS.txt</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16440">PHPBB3-16440</a>] - Use a stable version of PHP 7.4 in Travis CI tests</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16496">PHPBB3-16496</a>] - The help line text for custom BBcode could be wrongly displayed</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16506">PHPBB3-16506</a>] - Update credits to latest state</li>
|
||||
</ul>
|
||||
|
||||
<a name="v330rc1"></a><h3>Changes since 3.3.0-RC1</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
@@ -352,6 +669,160 @@
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16185">PHPBB3-16185</a>] - Use Xenial build environment on travis-ci</li>
|
||||
</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>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16417">PHPBB3-16417</a>] - SQL fatal error while updating database from older versions via CLI</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16524">PHPBB3-16524</a>] - General error (SQL ERROR) on adding emoji character to the profile field</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16534">PHPBB3-16534</a>] - Passwords converted from phpBB2 can have invalid hash</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16539">PHPBB3-16539</a>] - General error (SQL error) on posting page in smilies mode</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16550">PHPBB3-16550</a>] - compact(): Undefined variable: url - in PMs</li>
|
||||
</ul>
|
||||
<h4>Improvement</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16554">PHPBB3-16554</a>] - Align all .htaccess files to support Apache 2.4 mod_authz_core directives</li>
|
||||
</ul>
|
||||
<h4>Security Issue</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/SECURITY-259">SECURITY-259</a>] - Server-Side Request Forgery via FastImageSize in s9e textformatter</li>
|
||||
</ul>
|
||||
<h4>Hardening</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/SECURITY-257">SECURITY-257</a>] - Potential RCE via Phar Deserialization through Legacy BBCode Parser</li>
|
||||
</ul>
|
||||
|
||||
<a name="v3210rc1"></a><h3>Changes since 3.2.10-RC1</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16505">PHPBB3-16505</a>] - PHP debug warning while using \phpbb\language\language\lang_array() function</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16507">PHPBB3-16507</a>] - White page when searching users' posts</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16508">PHPBB3-16508</a>] - Whois not working for IPv6 addresses</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16510">PHPBB3-16510</a>] - Missing rows in config table on new install</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16511">PHPBB3-16511</a>] - Fatal error when deleting user in ACP</li>
|
||||
</ul>
|
||||
|
||||
<a name="v329"></a><h3>Changes since 3.2.9</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10506">PHPBB3-10506</a>] - Not confirming "Save as Draft" strips attachments from PMs</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13426">PHPBB3-13426</a>] - Timezone related fatal error after upgrade to 3.1.2</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13867">PHPBB3-13867</a>] - Profile field types need an enable/disable mechanism</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13914">PHPBB3-13914</a>] - Could not get style data via MySQL DB auto_increment_offset != 1 </li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15194">PHPBB3-15194</a>] - Cannot remove group avatar in UCP (manage group)</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15275">PHPBB3-15275</a>] - Post details: Look up IP links don't properly work</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15395">PHPBB3-15395</a>] - Very slow FTS on PostgreSQL</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15438">PHPBB3-15438</a>] - Use wrong word in ACP for logged administrators actions</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15560">PHPBB3-15560</a>] - Wrong redirection upon hard delete after soft delete in viewtopic</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15591">PHPBB3-15591</a>] - Users with disabled "Can send instant messages" permission can view jabber address</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15712">PHPBB3-15712</a>] - Inserting an emoji in PM subject field causes errors</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15766">PHPBB3-15766</a>] - "No role assigned...." for forum permissions is ambiguous</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15887">PHPBB3-15887</a>] - Firefox confuses username and e-mail when storing passwords</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15979">PHPBB3-15979</a>] - Restoring deleted post on edit does not update last post info</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16060">PHPBB3-16060</a>] - auto-prune of shadow topics triggered by prune_all_forums updates wrong timestamp</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16149">PHPBB3-16149</a>] - Missing profile field data</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16222">PHPBB3-16222</a>] - Timezone suggestion in UCP</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16234">PHPBB3-16234</a>] - Search syntax broken when using Sphinx Fulltext backend</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16245">PHPBB3-16245</a>] - Overflow in MSSQL attempting to manage attachments when collection > 2.1 GB</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16289">PHPBB3-16289</a>] - U_VIEW_REPORT in emails is incorrectly HTML-encoded</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16291">PHPBB3-16291</a>] - MCP Front is missing report time</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16296">PHPBB3-16296</a>] - Unable to delete or mark PMs in UCP folder view</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16310">PHPBB3-16310</a>] - S_SOFTDELETE_ALLOWED condition in posting.php is wrong and causes soft delete option to appear when it should not</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16316">PHPBB3-16316</a>] - navbar_header.html of prosilver style breaks Rich-Markup</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16326">PHPBB3-16326</a>] - Passwort Reset - Template - missing class for new and confirm password</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16332">PHPBB3-16332</a>] - Language strings for CODE and QUOTE are missing in the MCP post details and in the member profiles</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16335">PHPBB3-16335</a>] - $display_cat and $download_link are undefined variables for core.parse_attachments_modify_template_data when $denied is true</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16339">PHPBB3-16339</a>] - Poll's voting options are not fully Ajaxed</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16344">PHPBB3-16344</a>] - phpbb_validate_email uses non-existent language keys</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16348">PHPBB3-16348</a>] - user_ban double free of $result when banning a non-existent or disallowed username on command line</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16356">PHPBB3-16356</a>] - Saving a draft does not delete orphaned attachments from the server</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16358">PHPBB3-16358</a>] - Attachment tab should be removed when there are no filters</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16367">PHPBB3-16367</a>] - Feed controller is not actually setting character set of response</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16377">PHPBB3-16377</a>] - Undefined index navlinks in navbar_header</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16391">PHPBB3-16391</a>] - Language file info_mcp_xxx.php from extensions should be included in ACP</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16399">PHPBB3-16399</a>] - Emoji's in topic title cause errors</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16403">PHPBB3-16403</a>] - Attachment icon always displayed in list of reported message</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16407">PHPBB3-16407</a>] - S_MESSAGE_REPORTED and L_MESSAGE_REPORTED aren't defined anywhere</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16416">PHPBB3-16416</a>] - A non-numeric value encountered in ACP attachments settings</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16418">PHPBB3-16418</a>] - A non-numeric value encountered - ACP board start date</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16422">PHPBB3-16422</a>] - bbcode URL tag breaking URL's?</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16423">PHPBB3-16423</a>] - Add Aria Engine to list of Fulltext Supported</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16428">PHPBB3-16428</a>] - Allowed schemes in links and similar fields should check field content</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16432">PHPBB3-16432</a>] - PHP Fatal error: APCuIterator::__construct(): APC must be enabled to use APCuIterator</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16437">PHPBB3-16437</a>] - Forum permissions don't appear for logged users who cannot post a new topic</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16453">PHPBB3-16453</a>] - Always load permission lang files before core.permissions</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16467">PHPBB3-16467</a>] - phpBB3 does not work with spaces in PostgreSQL database passwords</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16480">PHPBB3-16480</a>] - Fix Emoji in report post</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16485">PHPBB3-16485</a>] - Fix Emoji in logs for warning message</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16486">PHPBB3-16486</a>] - Wrong configuration DB update in 3.2.0-a1 migration</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16487">PHPBB3-16487</a>] - Wrong CDN URL for fontawesome in 3.2.0 migration</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16500">PHPBB3-16500</a>] - Copying topics results in rearranging of inline attachments </li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16503">PHPBB3-16503</a>] - WhoIs lookup has error message in MCP</li>
|
||||
</ul>
|
||||
<h4>Improvement</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15370">PHPBB3-15370</a>] - Spinning indicator missing when updating permissions</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15672">PHPBB3-15672</a>] - Keep same format in Submit changes.</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16163">PHPBB3-16163</a>] - No error message when there is no displayed post in the MCP</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16328">PHPBB3-16328</a>] - Inform users about PHP requirements in PHP 3.3</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16350">PHPBB3-16350</a>] - Move acp/mcp ban code to functions_admin.php</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16351">PHPBB3-16351</a>] - Use CHMOD constants from filesystem_interface</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16352">PHPBB3-16352</a>] - Deprecate unused functions/classes</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16370">PHPBB3-16370</a>] - Add core events for Notification</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16381">PHPBB3-16381</a>] - Add core event to Modify Topics SQL</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16383">PHPBB3-16383</a>] - Add core events to modify friends list</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16384">PHPBB3-16384</a>] - Add template events friends list username {prepend/append}</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16388">PHPBB3-16388</a>] - Add new events in viewforum_body.html and viewtopic_body.html</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16406">PHPBB3-16406</a>] - Event core.notification_manager_add_notifications_for_users_modify_data incorrectly placed</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16411">PHPBB3-16411</a>] - Add vars to notification core events</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16421">PHPBB3-16421</a>] - Add contact field icon template events to viewtopic_body.html</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16424">PHPBB3-16424</a>] - Add base_url to generate_smilies events</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16425">PHPBB3-16425</a>] - Add event core.generate_smilies_modify_sql</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16429">PHPBB3-16429</a>] - Add vars to 2 ACP User core events</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16433">PHPBB3-16433</a>] - Add data array to core.ucp_register_user_row_after</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16443">PHPBB3-16443</a>] - Add event core.ucp_pm_compose_modify_parse_after</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16444">PHPBB3-16444</a>] - Add event core.ucp_pm_view_message_before</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16446">PHPBB3-16446</a>] - Add event core.message_history_modify_rowset</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16447">PHPBB3-16447</a>] - Add event core.ucp_pm_compose_compose_pm_basic_info_query_after</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16448">PHPBB3-16448</a>] - Add event core.mcp_get_post_data_after</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16450">PHPBB3-16450</a>] - ACP permission tabs don't use all available space</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16456">PHPBB3-16456</a>] - Add event core.text_formatter_s9e_get_errors</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16458">PHPBB3-16458</a>] - Add template events to acp_profile.html</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16461">PHPBB3-16461</a>] - Ignore .idea and node_modules</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16463">PHPBB3-16463</a>] - Fix "acp_board.php" where "ACP_SUBMIT_CHANGES" is not displayed.</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16468">PHPBB3-16468</a>] - Amend DocBlocks for user_delete()</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16494">PHPBB3-16494</a>] - Update composer and composer dependencies</li>
|
||||
</ul>
|
||||
<h4>New Feature</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16329">PHPBB3-16329</a>] - Strip Exif metadata from uploaded image attachments</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16330">PHPBB3-16330</a>] - Enable ACP option to specify image compression level</li>
|
||||
</ul>
|
||||
<h4>Sub-task</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16233">PHPBB3-16233</a>] - Enable exact phrase searching with Sphinx Fulltext</li>
|
||||
</ul>
|
||||
<h4>Task</h4>
|
||||
<ul>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15609">PHPBB3-15609</a>] - Discrepancy and bugs between moderation queue and reports</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16121">PHPBB3-16121</a>] - Add footer-row to simple_footer.html</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16122">PHPBB3-16122</a>] - RANK_IMG, GROUP_RANK and RANK_TITLE variables are useless in some template files</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16392">PHPBB3-16392</a>] - Update composer & dependencies</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16415">PHPBB3-16415</a>] - Use API token for appveyor builds</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16419">PHPBB3-16419</a>] - Add mrgoldy to CREDITS.txt</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16496">PHPBB3-16496</a>] - The help line text for custom BBcode could be wrongly displayed</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-16506">PHPBB3-16506</a>] - Update credits to latest state</li>
|
||||
</ul>
|
||||
|
||||
<a name="v329rc1"></a><h3>Changes since 3.2.9-RC1</h3>
|
||||
<h4>Bug</h4>
|
||||
<ul>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
*
|
||||
* phpBB © Copyright phpBB Limited 2003-2019
|
||||
* phpBB © Copyright phpBB Limited 2003-2021
|
||||
* https://www.phpbb.com
|
||||
*
|
||||
* phpBB is free software. You can redistribute it and/or modify it
|
||||
@@ -22,16 +22,15 @@ phpBB Project Manager: Marshalrusty (Yuriy Rusko)
|
||||
|
||||
phpBB Lead Developer: Marc (Marc Alexander)
|
||||
|
||||
phpBB Developers: bantu (Andreas Fischer)
|
||||
CHItA (Máté Bartus)
|
||||
phpBB Developers: CHItA (Máté Bartus)
|
||||
Derky (Derk Ruitenbeek)
|
||||
Elsensee (Oliver Schramm)
|
||||
Hanakin (Michael Miday)
|
||||
mrgoldy (Gijs Martens)
|
||||
Nicofuma (Tristan Darricau)
|
||||
rubencm (Rubén Calvo)
|
||||
|
||||
For a list of phpBB Team members, please see:
|
||||
http://www.phpbb.com/about/team/
|
||||
https://www.phpbb.com/about/team/
|
||||
|
||||
For a full list of phpBB code contributors, please see:
|
||||
https://github.com/phpbb/phpbb/graphs/contributors
|
||||
@@ -52,11 +51,13 @@ phpBB Developers: A_Jelly_Doughnut (Josh Woody) [01/2010 - 11/2010]
|
||||
APTX (Marek A. Ruszczyński) [12/2007 - 04/2011]
|
||||
Arty (Vjacheslav Trushkin) [02/2012 - 07/2012]
|
||||
Ashe (Ludovic Arnaud) [10/2002 - 11/2003, 06/2006 - 10/2006]
|
||||
bantu (Andreas Fischer) [07/2009 - 06/2020]
|
||||
BartVB (Bart van Bragt) [11/2000 - 03/2006]
|
||||
ckwalsh (Cullen Walsh) [01/2010 - 07/2011]
|
||||
DavidMJ (David M.) [12/2005 - 08/2009]
|
||||
dhn (Dominik Dröscher) [05/2007 - 01/2011]
|
||||
dhruv.goel92 (Dhruv Goel) [04/2013 - 05/2016]
|
||||
Elsensee (Oliver Schramm) [03/2015 - 06/2020]
|
||||
EXreaction (Nathan Guse) [07/2012 - 05/2014]
|
||||
GrahamJE (Graham Eames) [09/2005 - 11/2006]
|
||||
igorw (Igor Wiedler) [08/2010 - 02/2013]
|
||||
|
@@ -60,7 +60,6 @@
|
||||
<li><a href="#viewonline">According to viewonline a user is doing/reading something they should not be able to!</a></li>
|
||||
<li><a href="#mail">I keep getting Mail sending errors when I (or my users) post/send PM's/etc.!</a></li>
|
||||
<li><a href="#mail_language">My users are complaining that emails are not in their selected language!</a></li>
|
||||
<li><a href="#aol_browser">My AOL based users keep getting logged out!</a></li>
|
||||
<li><a href="#avatars">I am unable to upload avatars from my computer, regardless of the settings.</a></li>
|
||||
<li><a href="#gallery_avatars">I just cannot get gallery avatars to appear!</a></li>
|
||||
<li><a href="#permissions">How do I use/set permissions?</a></li>
|
||||
@@ -182,28 +181,6 @@ I want to sue you because i think you host an illegal board!</h2>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="aol_browser"></a><h2>My AOL based users keep getting logged out!</h2>
|
||||
|
||||
<div class="paragraph">
|
||||
<div class="inner">
|
||||
|
||||
<div class="content">
|
||||
|
||||
<p>phpBB uses sessions to keep track of users as they browse the board. These sessions use a combination of a unique session id, the users IP and if specified the users browser and/or the users x-forwarded-for header to identify each user. We make use of all of this as an extra safe-guard to help prevent sessions being hijacked (by discovering the unique session id).</p>
|
||||
|
||||
<p>Unfortunately this only works when the users IP is constant as they browse the board. For most users this will be the case. However certain providers route their users via a cluster of proxys. In some cases, particularly the AOL browser, this results in different IPs being forwarded as the user moves between pages. We take account of this by not checking the entire IP by default but only the first "three quads" (<samp>A.B.C</samp>). Again in most cases this will be fine. However again AOL uses IPs which can vary so much that checking only the first two quads results in a fairly static IP being available for session validation.</p>
|
||||
|
||||
<p>If you are experiencing problems related to this you can set the Session IP validation parameter found in <code>Admin->General->Server Configuration->Security Settings</code> to <samp>A.B</samp>. Please note that reducing the IP validation length does potentially increase the risk of sessions being hijacked (this is something for you to consider, phpBB Limited takes no responsibility should anything happen!). We suggest to at least additionally enable the browser validation.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="avatars"></a><h2>I am unable to upload avatars from my computer, regardless of the settings.</h2>
|
||||
|
||||
<div class="paragraph">
|
||||
|
@@ -151,6 +151,7 @@
|
||||
<li>The following PHP modules are required:
|
||||
<ul>
|
||||
<li>json</li>
|
||||
<li>mbstring</li>
|
||||
<li>XML support</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
@@ -2387,7 +2387,7 @@ if (utf8_case_fold_nfc($string1) == utf8_case_fold_nfc($string2))
|
||||
You have <code>[1/21/31] slon</code>, <code>[2/3/4] slona</code>, <code>[0/5/6] slonova</code> and <code>[7/8/9/11] ...</code> and some more difficult rules.
|
||||
</p>
|
||||
|
||||
<p>The <a href="https://area51.phpbb.com/docs/dev/32x/language/plurals.html">plural system</a> takes care of this and can be used as follows:</p>
|
||||
<p>The <a href="https://area51.phpbb.com/docs/dev/3.3.x/language/plurals.html">plural system</a> takes care of this and can be used as follows:</p>
|
||||
|
||||
<p>The PHP code will basically look like this:</p>
|
||||
|
||||
|
@@ -410,6 +410,27 @@ acp_posting_buttons_custom_tags_before
|
||||
* Since: 3.1.10-RC1
|
||||
* Purpose: Add content before the custom BBCodes in the ACP
|
||||
|
||||
acp_profile_basic_options_after
|
||||
===
|
||||
* Locations:
|
||||
+ adm/style/acp_profile.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add content after custom profile field basic options in the ACP
|
||||
|
||||
acp_profile_basic_options_before
|
||||
===
|
||||
* Locations:
|
||||
+ adm/style/acp_profile.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add content before custom profile field basic options in the ACP
|
||||
|
||||
acp_profile_contact_after
|
||||
===
|
||||
* Locations:
|
||||
+ adm/style/acp_profile.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add content after contact specific custom profile field option in the ACP
|
||||
|
||||
acp_profile_contact_before
|
||||
===
|
||||
* Locations:
|
||||
@@ -424,6 +445,13 @@ acp_profile_contact_last
|
||||
* Since: 3.1.11-RC1
|
||||
* Purpose: Add contact specific options to custom profile fields in the ACP
|
||||
|
||||
acp_profile_options_before
|
||||
===
|
||||
* Locations:
|
||||
+ adm/style/acp_profile.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add content before custom profile field options in the ACP
|
||||
|
||||
acp_profile_step_one_lang_after
|
||||
===
|
||||
* Locations:
|
||||
@@ -431,6 +459,20 @@ acp_profile_step_one_lang_after
|
||||
* Since: 3.1.11-RC1
|
||||
* Purpose: Add extra lang specific options to custom profile field step one configuration in the ACP
|
||||
|
||||
acp_profile_visibility_options_after
|
||||
===
|
||||
* Locations:
|
||||
+ adm/style/acp_profile.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add content after custom profile field visibility options in the ACP
|
||||
|
||||
acp_profile_visibility_options_before
|
||||
===
|
||||
* Locations:
|
||||
+ adm/style/acp_profile.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add content before custom profile field visibility options in the ACP
|
||||
|
||||
acp_prune_forums_append
|
||||
===
|
||||
* Locations:
|
||||
@@ -944,6 +986,34 @@ mcp_forum_actions_before
|
||||
* Since: 3.1.11-RC1
|
||||
* 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
|
||||
===
|
||||
* Locations:
|
||||
@@ -1894,6 +1964,34 @@ posting_editor_submit_buttons
|
||||
* Since: 3.1.6-RC1
|
||||
* Purpose: Add custom buttons in the posting editor
|
||||
|
||||
posting_editor_topic_icons_after
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/posting_editor.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add custom data after the topic icons loop
|
||||
|
||||
posting_editor_topic_icons_append
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/posting_editor.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Append custom data to the topic icon
|
||||
|
||||
posting_editor_topic_icons_before
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/posting_editor.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add custom data before the topic icons loop
|
||||
|
||||
posting_editor_topic_icons_prepend
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/posting_editor.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Prepend custom data to the topic icon
|
||||
|
||||
posting_layout_include_panel_body
|
||||
===
|
||||
* Locations:
|
||||
@@ -2167,6 +2265,13 @@ search_results_header_before
|
||||
* Since: 3.1.4-RC1
|
||||
* 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
|
||||
===
|
||||
* Locations:
|
||||
@@ -2209,6 +2314,13 @@ search_results_post_before
|
||||
* Since: 3.1.0-b3
|
||||
* 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
|
||||
===
|
||||
* Locations:
|
||||
@@ -2258,6 +2370,20 @@ search_results_topic_before
|
||||
* Since: 3.1.0-b4
|
||||
* 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
|
||||
===
|
||||
* Locations:
|
||||
@@ -2376,6 +2502,34 @@ ucp_friend_list_before
|
||||
* Since: 3.1.0-a4
|
||||
* Purpose: Add optional elements before list of friends in UCP
|
||||
|
||||
ucp_header_friends_offline_username_full_append
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_header.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Append information to offline friends username in UCP
|
||||
|
||||
ucp_header_friends_offline_username_full_prepend
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_header.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Prepend information to offline friends username in UCP
|
||||
|
||||
ucp_header_friends_online_username_full_append
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_header.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Append information to online friends username in UCP
|
||||
|
||||
ucp_header_friends_online_username_full_prepend
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_header.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Prepend information to online friends username in UCP
|
||||
|
||||
ucp_main_front_user_activity_after
|
||||
===
|
||||
* Locations:
|
||||
@@ -2464,6 +2618,20 @@ ucp_pm_history_row_message_author_username_prepend
|
||||
* Since: 3.2.8-RC1
|
||||
* 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
|
||||
===
|
||||
* Locations:
|
||||
@@ -2632,6 +2800,62 @@ ucp_prefs_view_select_menu_prepend
|
||||
* Purpose: Add options to the top of the drop-down lists block of the Edit
|
||||
Display Options screen
|
||||
|
||||
ucp_profile_autologin_keys_tbody_key_after
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_profile_autologin_keys.html
|
||||
* Since: 3.3.2-RC1
|
||||
* Purpose: Add table column after the first column.
|
||||
|
||||
ucp_profile_autologin_keys_tbody_key_before
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_profile_autologin_keys.html
|
||||
* Since: 3.3.2-RC1
|
||||
* Purpose: Add table column before the first column.
|
||||
|
||||
ucp_profile_autologin_keys_tbody_mark_after
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_profile_autologin_keys.html
|
||||
* Since: 3.3.2-RC1
|
||||
* Purpose: Add table column after the last column.
|
||||
|
||||
ucp_profile_autologin_keys_tbody_mark_before
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_profile_autologin_keys.html
|
||||
* Since: 3.3.2-RC1
|
||||
* Purpose: Add table column before the last column.
|
||||
|
||||
ucp_profile_autologin_keys_thead_key_after
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_profile_autologin_keys.html
|
||||
* Since: 3.3.2-RC1
|
||||
* Purpose: Add table header content after the first column.
|
||||
|
||||
ucp_profile_autologin_keys_thead_key_before
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_profile_autologin_keys.html
|
||||
* Since: 3.3.2-RC1
|
||||
* Purpose: Add table header content before the first column.
|
||||
|
||||
ucp_profile_autologin_keys_thead_mark_after
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_profile_autologin_keys.html
|
||||
* Since: 3.3.2-RC1
|
||||
* Purpose: Add table header content after the last column.
|
||||
|
||||
ucp_profile_autologin_keys_thead_mark_before
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/ucp_profile_autologin_keys.html
|
||||
* Since: 3.3.2-RC1
|
||||
* Purpose: Add table header content before the last column.
|
||||
|
||||
ucp_profile_profile_info_after
|
||||
===
|
||||
* Locations:
|
||||
@@ -2730,6 +2954,13 @@ viewforum_body_last_post_author_username_prepend
|
||||
* Since: 3.2.4-RC1
|
||||
* Purpose: Prepend information to last post author username of member
|
||||
|
||||
viewforum_body_online_list_before
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/viewforum_body.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add content before the online users list
|
||||
|
||||
viewforum_body_topic_author_username_append
|
||||
===
|
||||
* Locations:
|
||||
@@ -2879,6 +3110,20 @@ viewtopic_body_contact_fields_before
|
||||
* Purpose: Add data before the contact fields on the user profile when viewing
|
||||
a post
|
||||
|
||||
viewtopic_body_contact_icon_append
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/viewtopic_body.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add content directly after the contact field icons in post user miniprofiles
|
||||
|
||||
viewtopic_body_contact_icon_prepend
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/viewtopic_body.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add content directly before the contact field icons in post user miniprofiles
|
||||
|
||||
viewtopic_body_footer_before
|
||||
===
|
||||
* Locations:
|
||||
@@ -2887,6 +3132,13 @@ viewtopic_body_footer_before
|
||||
* Purpose: Add content to the bottom of the View topic screen below the posts
|
||||
and quick reply, directly before the jumpbox in Prosilver.
|
||||
|
||||
viewtopic_body_online_list_before
|
||||
===
|
||||
* Locations:
|
||||
+ styles/prosilver/template/viewtopic_body.html
|
||||
* Since: 3.2.10-RC1
|
||||
* Purpose: Add content before the online users list
|
||||
|
||||
viewtopic_body_pagination_top_after
|
||||
===
|
||||
* Locations:
|
||||
|
@@ -1,7 +1,11 @@
|
||||
# Sample nginx configuration file for phpBB.
|
||||
# Global settings have been removed, copy them
|
||||
# from your system's nginx.conf.
|
||||
# Tested with nginx 0.8.35.
|
||||
# Tested with:
|
||||
# - nginx 0.8.35
|
||||
# - nginx 1.17.7 (mainline)
|
||||
#
|
||||
# Filename: /etc/nginx/sites-available/example.com.conf
|
||||
#
|
||||
# Replace example.com with your own domain name.
|
||||
|
||||
# If you want to use the X-Accel-Redirect feature,
|
||||
# add the following to your config.php.
|
||||
@@ -11,117 +15,89 @@
|
||||
# See http://wiki.nginx.org/XSendfile for the details
|
||||
# on X-Accel-Redirect.
|
||||
|
||||
http {
|
||||
# Compression - requires gzip and gzip static modules.
|
||||
gzip on;
|
||||
gzip_static on;
|
||||
gzip_vary on;
|
||||
gzip_http_version 1.1;
|
||||
gzip_min_length 700;
|
||||
# Sample FastCGI server configuration.
|
||||
# Filename: /etc/nginx/conf.d/php.conf
|
||||
#
|
||||
# upstream php {
|
||||
# server unix:/run/php-fpm/php-fpm.sock;
|
||||
# }
|
||||
|
||||
# Compression levels over 6 do not give an appreciable improvement
|
||||
# in compression ratio, but take more resources.
|
||||
gzip_comp_level 6;
|
||||
# Remove www domain prefix.
|
||||
server {
|
||||
listen 80;
|
||||
# IPv6
|
||||
listen [::]:80;
|
||||
|
||||
# IE 6 and lower do not support gzip with Vary correctly.
|
||||
gzip_disable "msie6";
|
||||
# Before nginx 0.7.63:
|
||||
#gzip_disable "MSIE [1-6]\.";
|
||||
|
||||
# Catch-all server for requests to invalid hosts.
|
||||
# Also catches vulnerability scanners probing IP addresses.
|
||||
server {
|
||||
# default specifies that this block is to be used when
|
||||
# no other block matches.
|
||||
listen 80 default;
|
||||
|
||||
server_name bogus;
|
||||
return 444;
|
||||
root /var/empty;
|
||||
}
|
||||
|
||||
# If you have domains with and without www prefix,
|
||||
# redirect one to the other.
|
||||
server {
|
||||
# Default port is 80.
|
||||
#listen 80;
|
||||
|
||||
server_name myforums.com;
|
||||
|
||||
# A trick from http://wiki.nginx.org/Pitfalls#Taxing_Rewrites:
|
||||
return 301 http://www.myforums.com$request_uri;
|
||||
}
|
||||
|
||||
# The actual board domain.
|
||||
server {
|
||||
#listen 80;
|
||||
server_name www.myforums.com;
|
||||
|
||||
root /path/to/phpbb;
|
||||
|
||||
location / {
|
||||
# phpBB uses index.htm
|
||||
index index.php index.html index.htm;
|
||||
try_files $uri $uri/ @rewriteapp;
|
||||
}
|
||||
|
||||
location @rewriteapp {
|
||||
rewrite ^(.*)$ /app.php/$1 last;
|
||||
}
|
||||
|
||||
# Deny access to internal phpbb files.
|
||||
location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
|
||||
deny all;
|
||||
# deny was ignored before 0.8.40 for connections over IPv6.
|
||||
# Use internal directive to prohibit access on older versions.
|
||||
internal;
|
||||
}
|
||||
|
||||
# Pass the php scripts to fastcgi server specified in upstream declaration.
|
||||
location ~ \.php(/|$) {
|
||||
# Unmodified fastcgi_params from nginx distribution.
|
||||
include fastcgi_params;
|
||||
# Necessary for php.
|
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||
fastcgi_param DOCUMENT_ROOT $realpath_root;
|
||||
try_files $uri $uri/ /app.php$is_args$args;
|
||||
fastcgi_pass php;
|
||||
}
|
||||
|
||||
# Correctly pass scripts for installer
|
||||
location /install/ {
|
||||
# phpBB uses index.htm
|
||||
try_files $uri $uri/ @rewrite_installapp =404;
|
||||
|
||||
# Pass the php scripts to fastcgi server specified in upstream declaration.
|
||||
location ~ \.php(/|$) {
|
||||
# Unmodified fastcgi_params from nginx distribution.
|
||||
include fastcgi_params;
|
||||
# Necessary for php.
|
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||
fastcgi_param DOCUMENT_ROOT $realpath_root;
|
||||
try_files $uri $uri/ /install/app.php$is_args$args =404;
|
||||
fastcgi_pass php;
|
||||
}
|
||||
}
|
||||
|
||||
location @rewrite_installapp {
|
||||
rewrite ^(.*)$ /install/app.php/$1 last;
|
||||
}
|
||||
|
||||
# Deny access to version control system directories.
|
||||
location ~ /\.svn|/\.git {
|
||||
deny all;
|
||||
internal;
|
||||
}
|
||||
}
|
||||
|
||||
# If running php as fastcgi, specify php upstream.
|
||||
upstream php {
|
||||
server unix:/tmp/php.sock;
|
||||
}
|
||||
# Remove www
|
||||
server_name www.example.com;
|
||||
return 301 $scheme://example.com$request_uri;
|
||||
}
|
||||
|
||||
# Board configuration.
|
||||
server {
|
||||
listen 80;
|
||||
# IPv6
|
||||
listen [::]:80;
|
||||
server_name example.com;
|
||||
root /path/to/phpbb;
|
||||
|
||||
# phpBB uses index.htm
|
||||
index index.php index.html index.htm;
|
||||
|
||||
# Loggers
|
||||
error_log /var/log/nginx/example.com.error.log warn;
|
||||
access_log /var/log/nginx/example.com.access.log;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ @rewriteapp;
|
||||
|
||||
# Pass the php scripts to FastCGI server specified in upstream declaration.
|
||||
location ~ \.php(/|$) {
|
||||
include fastcgi.conf;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||
fastcgi_param DOCUMENT_ROOT $realpath_root;
|
||||
try_files $uri $uri/ /app.php$is_args$args;
|
||||
fastcgi_pass php;
|
||||
}
|
||||
|
||||
# Deny access to internal phpbb files.
|
||||
location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
|
||||
deny all;
|
||||
# deny was ignored before 0.8.40 for connections over IPv6.
|
||||
# Use internal directive to prohibit access on older versions.
|
||||
internal;
|
||||
}
|
||||
}
|
||||
|
||||
location @rewriteapp {
|
||||
rewrite ^(.*)$ /app.php/$1 last;
|
||||
}
|
||||
|
||||
# Correctly pass scripts for installer
|
||||
location /install/ {
|
||||
try_files $uri $uri/ @rewrite_installapp =404;
|
||||
|
||||
# Pass the php scripts to fastcgi server specified in upstream declaration.
|
||||
location ~ \.php(/|$) {
|
||||
include fastcgi.conf;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||
fastcgi_param DOCUMENT_ROOT $realpath_root;
|
||||
try_files $uri $uri/ /install/app.php$is_args$args =404;
|
||||
fastcgi_pass php;
|
||||
}
|
||||
}
|
||||
|
||||
location @rewrite_installapp {
|
||||
rewrite ^(.*)$ /install/app.php/$1 last;
|
||||
}
|
||||
|
||||
# Deny access to version control system directories.
|
||||
location ~ /\.svn|/\.git {
|
||||
deny all;
|
||||
internal;
|
||||
}
|
||||
}
|
||||
|
@@ -70,11 +70,16 @@ index index_phpbb_{SPHINX_ID}_main
|
||||
docinfo = extern
|
||||
morphology = none
|
||||
stopwords =
|
||||
wordforms = # optional, specify path to wordforms file. See ./docs/sphinx_wordforms.txt for example
|
||||
exceptions = # optional, specify path to exceptions file. See ./docs/sphinx_exceptions.txt for example
|
||||
min_word_len = 2
|
||||
charset_table = U+FF10..U+FF19->0..9, 0..9, U+FF41..U+FF5A->a..z, U+FF21..U+FF3A->a..z, A..Z->a..z, a..z, U+0149, U+017F, U+0138, U+00DF, U+00FF, U+00C0..U+00D6->U+00E0..U+00F6, U+00E0..U+00F6, U+00D8..U+00DE->U+00F8..U+00FE, U+00F8..U+00FE, U+0100->U+0101, U+0101, U+0102->U+0103, U+0103, U+0104->U+0105, U+0105, U+0106->U+0107, U+0107, U+0108->U+0109, U+0109, U+010A->U+010B, U+010B, U+010C->U+010D, U+010D, U+010E->U+010F, U+010F, U+0110->U+0111, U+0111, U+0112->U+0113, U+0113, U+0114->U+0115, U+0115, U+0116->U+0117, U+0117, U+0118->U+0119, U+0119, U+011A->U+011B, U+011B, U+011C->U+011D, U+011D, U+011E->U+011F, U+011F, U+0130->U+0131, U+0131, U+0132->U+0133, U+0133, U+0134->U+0135, U+0135, U+0136->U+0137, U+0137, U+0139->U+013A, U+013A, U+013B->U+013C, U+013C, U+013D->U+013E, U+013E, U+013F->U+0140, U+0140, U+0141->U+0142, U+0142, U+0143->U+0144, U+0144, U+0145->U+0146, U+0146, U+0147->U+0148, U+0148, U+014A->U+014B, U+014B, U+014C->U+014D, U+014D, U+014E->U+014F, U+014F, U+0150->U+0151, U+0151, U+0152->U+0153, U+0153, U+0154->U+0155, U+0155, U+0156->U+0157, U+0157, U+0158->U+0159, U+0159, U+015A->U+015B, U+015B, U+015C->U+015D, U+015D, U+015E->U+015F, U+015F, U+0160->U+0161, U+0161, U+0162->U+0163, U+0163, U+0164->U+0165, U+0165, U+0166->U+0167, U+0167, U+0168->U+0169, U+0169, U+016A->U+016B, U+016B, U+016C->U+016D, U+016D, U+016E->U+016F, U+016F, U+0170->U+0171, U+0171, U+0172->U+0173, U+0173, U+0174->U+0175, U+0175, U+0176->U+0177, U+0177, U+0178->U+00FF, U+00FF, U+0179->U+017A, U+017A, U+017B->U+017C, U+017C, U+017D->U+017E, U+017E, U+0410..U+042F->U+0430..U+044F, U+0430..U+044F, U+4E00..U+9FFF
|
||||
min_prefix_len = 0
|
||||
min_infix_len = 0
|
||||
ignore_chars = U+0027, U+002C
|
||||
min_prefix_len = 3 # Minimum number of characters for wildcard searches by prefix (min 1). Default is 3. If specified, set min_infix_len to 0
|
||||
min_infix_len = 0 # Minimum number of characters for wildcard searches by infix (min 2). If specified, set min_prefix_len to 0
|
||||
html_strip = 1
|
||||
index_exact_words = 0 # Set to 1 to enable exact search operator. Requires wordforms or morphology
|
||||
blend_chars = U+23, U+24, U+25, U+26, U+40
|
||||
}
|
||||
index index_phpbb_{SPHINX_ID}_delta : index_phpbb_{SPHINX_ID}_main
|
||||
{
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user