mirror of
https://github.com/phpbb/phpbb.git
synced 2025-09-14 01:52:06 +02:00
Compare commits
1226 Commits
release-3.
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
|
61fa45e5de | ||
|
9cf8bd25cb | ||
|
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 | ||
|
d3afd6ec68 | ||
|
fe9f5e3386 | ||
|
743d83ef71 | ||
|
76c18255b6 | ||
|
a6b1c27a5d | ||
|
783cea8d52 | ||
|
a7810bc279 | ||
|
dd7a184926 | ||
|
7cbcf4351b | ||
|
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 | ||
|
794ad66896 | ||
|
857cec0509 | ||
|
d3472cd4a1 | ||
|
d6078821c5 | ||
|
1f98477c22 | ||
|
c8351d6d20 | ||
|
54eef1153f | ||
|
88d257f04b | ||
|
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 | ||
|
d83eefaf14 | ||
|
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 | ||
|
800bd98ae6 | ||
|
c45df4e820 | ||
|
fa636e35e0 | ||
|
02e6e6cf48 | ||
|
bcbe6339ec | ||
|
eb4186add4 | ||
|
58ef28e914 | ||
|
1a029a71e5 | ||
|
3be435561a | ||
|
93f3323074 | ||
|
9a753a269f | ||
|
69bf5a8403 | ||
|
1dd6d583d0 | ||
|
2c04ce7a61 | ||
|
f269ddacce | ||
|
114ed8bec1 | ||
|
96bc21aa6b | ||
|
034feb87cd | ||
|
193d54c4eb | ||
|
4aa3a80558 | ||
|
2060f00f95 | ||
|
05cf78b589 | ||
|
f59246ea25 | ||
|
55c4fd644c | ||
|
ecbb37e0ba | ||
|
80a6a58a84 | ||
|
87dfa9a061 | ||
|
39d700b87a | ||
|
b2affdff5b | ||
|
3ce8510f88 | ||
|
bc869f8ec3 | ||
|
39b3db9e27 | ||
|
fabb5bc7e6 | ||
|
65065bf315 | ||
|
868c5bd114 | ||
|
3905227758 | ||
|
cfea05c2b4 | ||
|
0951e204c9 | ||
|
a91b1d2f26 | ||
|
e8f5e62c44 | ||
|
fb94245943 | ||
|
946da08304 | ||
|
5a33a141af | ||
|
e7186f41ed | ||
|
79b09577eb | ||
|
ce28527cde | ||
|
8a54793ede | ||
|
b69507be8a | ||
|
a7bfe9afed | ||
|
59900357a7 | ||
|
8c79e9a61e | ||
|
bb20f3966f | ||
|
201a5b6e06 | ||
|
8bb9a9803b | ||
|
b7b3282649 | ||
|
6e05cb38f6 | ||
|
29b775f22c | ||
|
78c3b8bb86 | ||
|
d1dfbe8ce5 | ||
|
8ab866e7f4 | ||
|
2d1e8dc8a0 | ||
|
b5a1c54ab2 | ||
|
5e23959e12 | ||
|
5ae963cb34 | ||
|
b33e95f1e7 | ||
|
9ba0560696 | ||
|
e05876a5f6 | ||
|
afae9421f6 | ||
|
f72e847c17 | ||
|
fe7c833c8b | ||
|
195f6460e0 | ||
|
3bd612ad81 | ||
|
642f990fbc | ||
|
68e6e8ca90 | ||
|
838e488134 | ||
|
528b1b10b7 | ||
|
f4f749f130 | ||
|
3b3dfebd82 | ||
|
5afda415d1 | ||
|
7481cf9ffe | ||
|
bb6d4d67d5 | ||
|
22331c8951 | ||
|
c27b049ca0 | ||
|
01284ef6a0 | ||
|
7f9792b571 | ||
|
c27a6472af | ||
|
aae5852ad3 | ||
|
2df69fc3ed | ||
|
ce97122c6d | ||
|
a37f82bb9d | ||
|
ec66a42664 | ||
|
ec49bd2d69 | ||
|
466abd7a3d | ||
|
02253134c9 | ||
|
e420c9c895 | ||
|
c5d83ef715 | ||
|
09e308a06d | ||
|
fabe9ce56b | ||
|
1f8149706c | ||
|
7dd0c7296f | ||
|
868bc3a069 | ||
|
1169e1915d | ||
|
38c26c8c44 | ||
|
6c0e17480c | ||
|
919597bfcf | ||
|
1b50650267 | ||
|
cb0583df1d | ||
|
9433ff449a | ||
|
0857237fbb | ||
|
f74a4e6e9b | ||
|
281330b1d0 | ||
|
a414584f4b | ||
|
47b1973cb6 | ||
|
b8bab30684 | ||
|
d9e07b3b29 | ||
|
9a72f39ff3 | ||
|
d1aefbea62 | ||
|
87d0888fee | ||
|
af97a8312c | ||
|
1a9c7fe9ca | ||
|
0bfe270078 | ||
|
a88a68f8a6 | ||
|
6fc6e7ced2 | ||
|
cdcb787991 | ||
|
8ae115f9bd | ||
|
d591b4d2da | ||
|
45a00f1a93 | ||
|
a2a199b48e | ||
|
6326b6b631 | ||
|
dbdbf23bea | ||
|
00f5732a0d | ||
|
b29a011186 | ||
|
15c1975f6e | ||
|
008e313652 | ||
|
a65877cd7e | ||
|
a0c8df6679 | ||
|
a43cdbac54 | ||
|
0cf4212835 | ||
|
2fd174d7cf | ||
|
009bc4a1a3 | ||
|
e174f1475f | ||
|
cdd3441ead | ||
|
20f68ef013 | ||
|
976516a559 | ||
|
39b0ac4fda | ||
|
7d1aa37f50 | ||
|
8ab730f47d | ||
|
6b5b413025 | ||
|
77745e466d | ||
|
f671d7559a | ||
|
eb141e88fb | ||
|
691496af3c | ||
|
628d39931f | ||
|
52f50287e9 | ||
|
0ecc72e945 | ||
|
da77c9e744 | ||
|
502982154d | ||
|
ebc889baea | ||
|
1dc5c4f98f | ||
|
95080106e0 | ||
|
7e8ef278fe | ||
|
6bdebe22ed | ||
|
e979194a0e | ||
|
335535e73b | ||
|
0e4ce1f978 | ||
|
f4b9a7143c | ||
|
66436bd9f7 | ||
|
724b3682d1 | ||
|
8a03e0d670 | ||
|
ec6335bdfd | ||
|
b90e2c6300 | ||
|
6b47cbb4c5 | ||
|
f9d4e11a27 | ||
|
8956654288 | ||
|
5bc0e89871 | ||
|
d16b240749 | ||
|
73c355b92a | ||
|
34629afda0 | ||
|
b5943a430f | ||
|
43d75d712f | ||
|
51be1ad2c1 | ||
|
f68bdb9e08 | ||
|
dfc43e819e | ||
|
07bf18168f | ||
|
453adbcd5c | ||
|
db119a60e6 | ||
|
8566f81d4f | ||
|
74eefdb4f1 | ||
|
c90e562367 | ||
|
99dbea1469 | ||
|
c7be5d25d0 | ||
|
cbe63da1f7 | ||
|
6e89799b05 | ||
|
669c45125c | ||
|
4926ff0992 | ||
|
43e3b3e328 | ||
|
d7435d02d3 | ||
|
0e15eb4f00 | ||
|
8c6ef3f0fd | ||
|
8f4c87ad49 | ||
|
e72e6679a3 | ||
|
f5e7233162 | ||
|
20490b0618 | ||
|
f830f0f6df | ||
|
c4a5099e56 | ||
|
54017bcf63 | ||
|
6b5cbe3768 | ||
|
feb94b446a | ||
|
879362c5b5 | ||
|
8df557f621 | ||
|
2b8b04dd55 | ||
|
f703f3f20e | ||
|
671efc0726 | ||
|
7557af0594 | ||
|
9f4a240f91 | ||
|
c61946329c | ||
|
cc3afd87aa | ||
|
858d9271e3 | ||
|
5aa4aae0f5 | ||
|
82240cb661 | ||
|
f3664b07d2 | ||
|
a3e0117ff0 | ||
|
d35b3b4792 | ||
|
c8e5c36c1d | ||
|
01b966c664 | ||
|
0c63f03db4 | ||
|
0198029ea6 | ||
|
4c0a1ec0a0 | ||
|
b732b4d8c8 | ||
|
e5c80e46b0 | ||
|
b9919f7c88 | ||
|
2e9b3fc31e | ||
|
a82afd6ccf | ||
|
4fc58068c9 | ||
|
5dac5fdb3b | ||
|
ddc8e5c712 | ||
|
c97a9b0b19 | ||
|
57326be5bf | ||
|
d7c3d59799 | ||
|
1c8e7a3483 | ||
|
3c27aa2f2e | ||
|
447a5391ed | ||
|
7345f1ce2e | ||
|
d5acfc5c2f | ||
|
1215c3ddbf | ||
|
c06f224ace | ||
|
d32030a374 | ||
|
6788d82316 | ||
|
3feafaade6 | ||
|
ca4ce6b2f5 | ||
|
9a8d8f5b0c | ||
|
6f61d70b72 | ||
|
ffe201be36 | ||
|
8943c34572 | ||
|
dc5add2b8d | ||
|
94419d4573 | ||
|
457f13ad0b | ||
|
ba04bc9d22 | ||
|
1946d81ab3 | ||
|
e263405a81 | ||
|
49845c1155 | ||
|
75c25556aa | ||
|
8a040f3fbc | ||
|
07b2046685 | ||
|
90c15aeebc | ||
|
884f48faf6 | ||
|
b795b8a040 | ||
|
dbb9cbe280 | ||
|
3b1f936dcf | ||
|
d334072722 | ||
|
62a390582c | ||
|
a4b104c1da | ||
|
b823a94124 | ||
|
2451c0a815 | ||
|
725e82f6df | ||
|
4334b446b5 | ||
|
34595c02ba | ||
|
1d49ddd86f | ||
|
cdb252faaa | ||
|
b1f0276307 | ||
|
f3815b7bc8 | ||
|
49b4156cfd | ||
|
9715054102 | ||
|
d8e441b079 | ||
|
af012e8b5a | ||
|
9a919d8fa3 | ||
|
0ca20b14f5 | ||
|
685c41689e | ||
|
c606055df2 | ||
|
86cf600d9e | ||
|
a5f1ff43b5 | ||
|
d836677342 | ||
|
b1eaaea89a | ||
|
10c038d8f3 | ||
|
3d4af04927 | ||
|
b5993fc2a3 | ||
|
9cd1277d70 | ||
|
e05efe8280 | ||
|
d0d1fd189b | ||
|
5c1782a605 | ||
|
115d0e794e | ||
|
ee4620ef9e | ||
|
5fb5228591 | ||
|
54ab1f1e80 | ||
|
e6624c1fd5 | ||
|
3bb2edd53d | ||
|
297ac8ef4c | ||
|
cd995ff45f | ||
|
2dbcad7840 | ||
|
d2a344af5d | ||
|
4094d62613 | ||
|
28620b7d93 | ||
|
b3d07e26fc | ||
|
9b12a923f5 | ||
|
8bdad7d73e | ||
|
12a624330f | ||
|
1d90ddc0a9 | ||
|
2bfea20007 | ||
|
843e3ae849 | ||
|
6f36a478a5 | ||
|
eba65f57ab | ||
|
ebd9d0fe25 | ||
|
ff5fe30407 | ||
|
50ca72e53c | ||
|
d25b55b93a | ||
|
e599bb2a7b | ||
|
f26e20e1e9 | ||
|
5d5f34518d | ||
|
a2fa918da2 | ||
|
531f5dd9da | ||
|
1b7c42bf53 | ||
|
eecd0b91c5 | ||
|
9854db9120 | ||
|
aeac3df4a1 | ||
|
75c03dd81e | ||
|
f69d9e9559 | ||
|
126b17898d | ||
|
8d00784dfe | ||
|
17d4dcc30b | ||
|
16dbbdb34c | ||
|
433a23feb4 | ||
|
d4293866b3 | ||
|
9fa058a8bd | ||
|
4591cf9afa | ||
|
ed34079452 | ||
|
f6b47e2ee3 | ||
|
e900104e10 | ||
|
944a748cb6 | ||
|
eb8ace14c8 | ||
|
1b8193ab8b | ||
|
b83de54bb4 | ||
|
261bf416ee | ||
|
a0ffbfce31 | ||
|
82abd358a5 | ||
|
d50d1101fb | ||
|
b3f80239c1 | ||
|
4ed854c818 | ||
|
f866a8fd1b | ||
|
dce0441ecf | ||
|
29c9621137 | ||
|
46b70ded94 | ||
|
20fb9385f5 | ||
|
db5121511d | ||
|
c7dd7d42c6 | ||
|
0806d34eee | ||
|
b9193f35c1 | ||
|
43e5337a0a | ||
|
1ae812d172 | ||
|
dd93bb1aad | ||
|
737155a43a | ||
|
372a3bfcde | ||
|
7ae7502146 | ||
|
7a294b5fcd | ||
|
79287abd7b | ||
|
cf450bd01f | ||
|
7e5d0b9ec8 | ||
|
314dfb294a | ||
|
6705adf47b | ||
|
d8dac3f80e | ||
|
16dad60eef | ||
|
7ef52f723c | ||
|
374dc92e8f | ||
|
3c91126806 | ||
|
7336678454 | ||
|
6ee537b3f2 | ||
|
f3a9301483 | ||
|
a3276c3ffe | ||
|
4956dc3197 | ||
|
b1c5ad6a61 | ||
|
364461b58f | ||
|
74a747d455 | ||
|
036871cd95 | ||
|
71a1c9fee7 | ||
|
80de9f6a68 | ||
|
c71d4c364a | ||
|
dcab076221 | ||
|
94808e2cbc | ||
|
82e61f501a | ||
|
37fddf8eef | ||
|
3669849368 | ||
|
ebf7e9f45f | ||
|
d000717d34 | ||
|
d191eed760 | ||
|
a750372a03 | ||
|
5dfba1b064 | ||
|
72747ed686 | ||
|
c7898ac3e4 | ||
|
c70d024f5f | ||
|
7cf148ea13 | ||
|
41f287fbea | ||
|
3ae799f4de | ||
|
202478d108 | ||
|
186a3d40c6 | ||
|
230472de45 | ||
|
b85c7be5ac | ||
|
5eae76b209 | ||
|
2ebbcbe233 | ||
|
b1596ffecb | ||
|
b9fccc9fce | ||
|
9345bc1610 | ||
|
78ae67ae28 | ||
|
044d327818 | ||
|
cc9b29488f | ||
|
843887fcb9 | ||
|
faca59b3a6 | ||
|
9b6149d3ac | ||
|
4c05257783 | ||
|
e6a84dcb60 | ||
|
1f3e073894 | ||
|
dbc164e131 | ||
|
16a163662b | ||
|
67a8d8ca90 | ||
|
0e974eb49a | ||
|
d5f9e3a05e | ||
|
d181713832 | ||
|
ffb0adfc59 | ||
|
a83b8e7792 | ||
|
2f7a9c6a00 | ||
|
4051bf2466 | ||
|
a0251ec1d9 | ||
|
84f01ed0da | ||
|
9ddb1bdddb | ||
|
d26622e992 | ||
|
0b3eb2f9ea | ||
|
581139ab15 | ||
|
8e54e5cc79 | ||
|
26c4dfb9d7 | ||
|
fce796517b | ||
|
2733ce0712 | ||
|
bcc90133a8 | ||
|
611b3c4e46 | ||
|
ac43c5c8bd | ||
|
b786dbc5d7 | ||
|
0efeef46e1 | ||
|
fd5ac318a5 | ||
|
2926ceba6a | ||
|
581fe4ec83 | ||
|
02689df8f7 | ||
|
d9749d5bb0 | ||
|
b7492a7b6f | ||
|
59afb76df4 | ||
|
d659276749 | ||
|
8be1ad4568 | ||
|
0fc6fbf916 | ||
|
8ffbd66cba | ||
|
ff3458ff03 | ||
|
5be4cca408 | ||
|
3009e7ffbe | ||
|
d7425b4998 | ||
|
186384e514 | ||
|
f9a364074d | ||
|
cb0f4790ae | ||
|
f26e83e4c6 | ||
|
5ef225381d | ||
|
8b4892b96b | ||
|
68326c6aa1 | ||
|
1a4739aed9 | ||
|
670dbaba1b | ||
|
6d71748e9a | ||
|
3089770fec | ||
|
5d5c3481b7 | ||
|
3837d2cfee | ||
|
ac6676a144 | ||
|
3986273fdb | ||
|
cbbba2dcc7 | ||
|
6b7d9af0c2 | ||
|
5ed02c2149 | ||
|
3be57cea04 | ||
|
dac910d27a | ||
|
380b7d0a98 | ||
|
bc045fd19b | ||
|
7b70984ef3 | ||
|
c37e696c1c | ||
|
c7d47e34e8 | ||
|
fd7524858c | ||
|
86085f96ab | ||
|
a8e2f4256b | ||
|
8b7e0563a5 | ||
|
3e9c2ea025 | ||
|
960e5af71c | ||
|
679f3b0c76 | ||
|
f7ac1d2629 | ||
|
77a15e3542 | ||
|
d55e421c0f | ||
|
db1040ec69 | ||
|
251473700a | ||
|
896b31272b | ||
|
0a4cc5d201 | ||
|
2a023c9e15 | ||
|
4a10062933 | ||
|
29be971fad | ||
|
0f57f3d90d | ||
|
4d15683733 | ||
|
8726baea9f | ||
|
15da5b108e | ||
|
63ebd658a9 | ||
|
9fff4cf253 | ||
|
1f10cd51ff | ||
|
e39753083d | ||
|
3149b45eba | ||
|
46a189fa4c | ||
|
e102a9a3cb | ||
|
92362441bd | ||
|
78a913581c | ||
|
63b7518a0f | ||
|
01b0ec19c6 | ||
|
eb94fe973b | ||
|
c628cd7e15 | ||
|
83d430419e | ||
|
9872316cac | ||
|
aed7e369c3 | ||
|
289524938c | ||
|
f2e6bda0d1 | ||
|
c11dbffbac | ||
|
f460194379 | ||
|
0cbe05faad | ||
|
a00b8c2920 | ||
|
9e0c3fc81e | ||
|
0d668fee36 | ||
|
149df2d7b6 | ||
|
c75502e09c | ||
|
9aee50968e | ||
|
0cd7033baa | ||
|
2c3a24b678 | ||
|
51bb05f286 | ||
|
791d633b8a | ||
|
e39c0be8f8 | ||
|
e0e410e8a2 | ||
|
5e5042e52a | ||
|
4679433ae1 | ||
|
3e22a2eebd | ||
|
79a6648b99 | ||
|
8dbda26623 | ||
|
5d6f8c8bd9 | ||
|
7ea063100e | ||
|
56bff6380e | ||
|
85837d48b2 | ||
|
ba17f16dc8 | ||
|
a340c362bc | ||
|
46a68d37ee | ||
|
e9fc3ed22e | ||
|
cbb5e6f765 | ||
|
219955fa6c | ||
|
95a696c4da | ||
|
85910fe5bc | ||
|
76b4a2faab | ||
|
0b39e4e854 | ||
|
78ce646c69 | ||
|
4ae43c7970 | ||
|
912eb28223 | ||
|
7df08fe12e | ||
|
729e2f5d08 | ||
|
e2de342d3a | ||
|
b14c7c3511 | ||
|
c2997ada7a | ||
|
6ccffec906 | ||
|
00682db8a6 | ||
|
0a7e98951b | ||
|
b6a99e7dca | ||
|
f09f5bc51c | ||
|
ce35aa8b0b | ||
|
930895f563 | ||
|
75e4fcd2e9 | ||
|
9887a9d76c | ||
|
b40fe17d93 | ||
|
1a2e5f6ee6 | ||
|
163aac74db | ||
|
d87fc02774 | ||
|
be17a8417d | ||
|
404768a607 | ||
|
9cb1119d1e | ||
|
1e67ffee1d | ||
|
40a69b8edf | ||
|
0e8e8c7b14 | ||
|
7ae8f98ec6 | ||
|
eb0195dd7c | ||
|
b6f400a014 | ||
|
b8616fe9ac | ||
|
f985f42dc2 | ||
|
734c1cd5bd | ||
|
95880a5f49 | ||
|
90a8e1dd1c | ||
|
ade88f020e | ||
|
fe7118aea0 | ||
|
396a8214db | ||
|
b0b3810aab | ||
|
a8fb843ded | ||
|
dfcc744275 | ||
|
e78632767c | ||
|
cf7c3dcab5 | ||
|
77da8b6507 | ||
|
06c894ff7f | ||
|
e75071fbd2 | ||
|
0a133fe009 | ||
|
4008800527 | ||
|
49ea5a4091 | ||
|
d9f9360c5b | ||
|
a671eaf25d | ||
|
829ac4062d | ||
|
33785d0fd3 | ||
|
465d0b1a4c | ||
|
6105260a8e | ||
|
2f220a07d1 | ||
|
32cc32c76a | ||
|
c5ae114315 | ||
|
bea1df7759 | ||
|
5ff519c7b2 | ||
|
eb13694b25 | ||
|
1001584c1b | ||
|
8c2d0c8c36 | ||
|
6f48b3c044 | ||
|
b80cbd0e7d | ||
|
4cda76b5c0 | ||
|
f7e51ca875 | ||
|
e8b4304c1b | ||
|
bd02c5bd08 | ||
|
60bc949ba1 | ||
|
25ae4fa355 | ||
|
68c197fd60 | ||
|
dd2eadf8ec | ||
|
3a443b5623 | ||
|
1eed2f98c3 | ||
|
e54aa94e77 | ||
|
d7c644a792 | ||
|
975fe1e153 | ||
|
b6c230753e | ||
|
1af05d9615 | ||
|
a85bb1332d | ||
|
f05022941d | ||
|
e00a154882 | ||
|
f21003f977 | ||
|
133dfd0a84 | ||
|
eee00652e7 | ||
|
7989f3f71f | ||
|
012fe18879 | ||
|
91b89b6374 | ||
|
36614e6f81 | ||
|
7fac5be2cc | ||
|
d7dd91d0e2 | ||
|
25d3292d30 | ||
|
a05d744266 | ||
|
772e801d4f | ||
|
27153d7e46 | ||
|
c0e9ef21fe | ||
|
0f3559528a | ||
|
760a03fffc | ||
|
a90f5e6bcc | ||
|
f4935ef500 | ||
|
ba945496b4 | ||
|
ae08036b2c | ||
|
a028dfab12 | ||
|
914199d50f | ||
|
7e8c6d8c0d | ||
|
9454377e55 | ||
|
1ef43bc1a1 | ||
|
13932e9aba | ||
|
fcff807834 | ||
|
281049eafd | ||
|
81cbefdae5 | ||
|
a7c02304a5 | ||
|
ccc21a8c94 | ||
|
d613984660 | ||
|
dcafa6a711 | ||
|
f920336be4 | ||
|
8048d817ca | ||
|
454ea081f1 | ||
|
7a3e351178 | ||
|
0b843505e8 | ||
|
d4652c1b20 | ||
|
7dd822942a | ||
|
826cc9751a | ||
|
f5f03d24e9 | ||
|
49ac98ffdb | ||
|
da6be75a18 | ||
|
fffcb2a6af | ||
|
c0bd3122e0 | ||
|
54fff02f95 | ||
|
784938e68b | ||
|
3947970d0b | ||
|
08ee5a608b | ||
|
0cbf06780e | ||
|
96335c0402 | ||
|
bf6f1cac8f | ||
|
9e772d1421 | ||
|
ba92e7d2d6 | ||
|
fa5a0d5e21 | ||
|
cefdf8bf19 | ||
|
eee18f3747 | ||
|
e991df195b | ||
|
1d1d963c14 | ||
|
cfea54f8f3 | ||
|
0a5599697f | ||
|
f41c51d1ec | ||
|
4ad288c544 | ||
|
fe030f67ef | ||
|
276f350bcb | ||
|
3f852a3233 | ||
|
9cb22f008d | ||
|
d880443ea2 | ||
|
b4d4709726 | ||
|
2f85fc53dc | ||
|
90722a3c66 | ||
|
2e634e9f96 | ||
|
e086d4039e | ||
|
d4e623ffee | ||
|
6078f58343 | ||
|
be3a58aff1 | ||
|
eaf42f3c72 | ||
|
189f3fd68e | ||
|
7543508570 | ||
|
e1962acd4e | ||
|
710a0b3ea3 | ||
|
2df9230902 | ||
|
423345d517 | ||
|
5a76d541a2 | ||
|
065feb3ff9 | ||
|
b0334d6b4f | ||
|
ee51bf26fa | ||
|
812edebfb7 | ||
|
31192fc08e | ||
|
3433f61ccb | ||
|
84fdba604d | ||
|
b12405dbc7 | ||
|
3e9682fe49 | ||
|
33be961aa0 | ||
|
860a370e8f | ||
|
a4a5b069ec | ||
|
c382536f47 | ||
|
b5e6f34cd9 | ||
|
ce518043e9 | ||
|
58fa8eabb7 | ||
|
b2c5f8fb48 | ||
|
01018630c9 | ||
|
f5d28a95b0 | ||
|
204e3b1fe0 | ||
|
6fc269b62a | ||
|
348979c13d | ||
|
5d2e144624 | ||
|
de039dcc7c | ||
|
6d4fdb1f15 | ||
|
5cef0d2035 | ||
|
8a979d6871 | ||
|
30f522351e | ||
|
a6803e6a18 | ||
|
05f9ef7134 | ||
|
fc8d0c54e9 | ||
|
5de54906f0 | ||
|
8f3f7d1e5e | ||
|
5741c8d8ee | ||
|
6007978e7b | ||
|
bd646cff52 | ||
|
95264e2152 | ||
|
6422bdb5ec | ||
|
7572bc050b | ||
|
bc59342e1a | ||
|
9e90b27ba1 | ||
|
e419c2cd3b | ||
|
183d1afcaa | ||
|
99d83673f5 | ||
|
2a69eb051d | ||
|
5540a0f8e0 | ||
|
730e1140e3 | ||
|
76ea1de0ab | ||
|
c04642f987 | ||
|
b4d36e3235 | ||
|
b9a40be9b4 | ||
|
00f639de7b | ||
|
84ce92896e | ||
|
dd3330d7c9 | ||
|
d639e107ec | ||
|
d72498a9c3 | ||
|
61fa4f006a | ||
|
9c1baf0fd7 | ||
|
fe04f59ca2 | ||
|
9207b13224 | ||
|
29d40fd3d6 | ||
|
0ebcb3f3a0 | ||
|
c2841cb6e2 | ||
|
f7ec97b88e | ||
|
b6cd02bacb | ||
|
52ed8bfaa1 | ||
|
8f0643a14c | ||
|
31ab3d93a2 | ||
|
89ae1c3221 | ||
|
3f33d89572 | ||
|
90f8498a44 | ||
|
2753f8ccc8 | ||
|
18d4b7f358 | ||
|
978d883abb | ||
|
d0e3c2c136 | ||
|
fe6dd5a8f7 | ||
|
33f9333f13 | ||
|
51ffab0045 | ||
|
4ad0d4ceeb | ||
|
4ff993fc1b | ||
|
3c0fd43f85 | ||
|
c92d4933cc | ||
|
9f19202152 | ||
|
e7795fe7ce | ||
|
9223781797 | ||
|
e76c673e2e | ||
|
ebac54aa9e | ||
|
d968392b4d | ||
|
05a86ca3b0 | ||
|
c0fde5d5fd | ||
|
40e61e4d1e | ||
|
ff35f65064 | ||
|
ac3c49e548 | ||
|
27fc256745 | ||
|
6643c904d5 | ||
|
ba088f6bdc | ||
|
84b6dd7e5f | ||
|
e46d8d329d | ||
|
a702142a34 | ||
|
c20fed43cd | ||
|
303b823847 | ||
|
4f402465bf | ||
|
917880e2bf | ||
|
db36318ad0 | ||
|
4f5a8f6983 | ||
|
3914515199 | ||
|
3c2e75b52a | ||
|
7c26569d93 | ||
|
30303647f0 | ||
|
284368b9d6 | ||
|
432482160d | ||
|
1609fa292d | ||
|
0fe4cbc17f | ||
|
98b3aacde4 | ||
|
0a2589b5e0 | ||
|
35fef8333a | ||
|
65b0698ef7 | ||
|
9e3141d9d3 | ||
|
688d022f42 | ||
|
ab0dae6003 | ||
|
64b053c997 | ||
|
1f87b25709 | ||
|
9f20ff7b9e | ||
|
139eb17bb7 | ||
|
b4d4336ef4 | ||
|
5815d21427 | ||
|
7dae1fe48c | ||
|
ec04f177d0 | ||
|
efc2e6e570 | ||
|
62e609c10c | ||
|
7e96098e29 | ||
|
ee667ac897 | ||
|
d227912ee8 | ||
|
68cba0cb26 | ||
|
cbe9833975 | ||
|
7b4ef7a101 | ||
|
f993d91865 | ||
|
94f4062b29 | ||
|
a66c4170a9 | ||
|
9b5b058925 | ||
|
341962ae74 | ||
|
4da589acba | ||
|
3e6fd7e8fd | ||
|
dc9b1c37b1 | ||
|
dc397755d5 | ||
|
4ff986f578 | ||
|
2578a2b9fc | ||
|
5de4780753 | ||
|
2ff5871ff4 | ||
|
5153413f7a | ||
|
a9a28859d4 | ||
|
62921c066c | ||
|
3e5247187c | ||
|
75d957e9e1 | ||
|
1b9507d93d | ||
|
16d8b0bf78 | ||
|
5a0c9763d1 | ||
|
5c001df380 | ||
|
e36da01264 | ||
|
deb556fbf0 | ||
|
574749daeb | ||
|
42b7782927 | ||
|
cdf3aa27df | ||
|
560704c9f3 | ||
|
3f3d88696b | ||
|
acab3b048d | ||
|
a08dce82c2 | ||
|
332b310809 | ||
|
dfcce400a4 | ||
|
f1c2f7baae | ||
|
7d4909dc06 | ||
|
cf12223b25 | ||
|
530e5bca87 | ||
|
26acd8a5e4 | ||
|
4282cf459e | ||
|
228e0f58a8 | ||
|
fe64174ca8 | ||
|
77315a014c | ||
|
c02be62ea1 | ||
|
5614f80b89 | ||
|
4e3ac92d05 | ||
|
571a6df993 | ||
|
296bf434b0 | ||
|
ab6835d849 | ||
|
271ac6b57e | ||
|
7a173877b7 | ||
|
41956a8b90 | ||
|
773d246a7e | ||
|
f165b8ece4 | ||
|
a33c875d2f | ||
|
1dc14c0f38 | ||
|
a4f48205fb | ||
|
1a8a8da7bf | ||
|
653305d461 | ||
|
cfaf24bd45 | ||
|
7a831c3e28 |
147
.appveyor.yml
147
.appveyor.yml
@@ -1,147 +0,0 @@
|
|||||||
build: false
|
|
||||||
clone_folder: c:\projects\phpbb
|
|
||||||
version: '{build}'
|
|
||||||
|
|
||||||
services:
|
|
||||||
- iis
|
|
||||||
|
|
||||||
environment:
|
|
||||||
COMPOSER_AUTH:
|
|
||||||
secure: '{"github-oauth": {"github.com": "zvq38wk7sRe87Y9W2OCYXcK7WKQDsig7GRIUDHGmxm6ZQRK8JswPbi8JoJQbFhM+"}}'
|
|
||||||
matrix:
|
|
||||||
- db: mssql
|
|
||||||
db_version: sql2012sp1
|
|
||||||
php: 7.0
|
|
||||||
- db: mssql
|
|
||||||
db_version: sql2014
|
|
||||||
php: 7.0
|
|
||||||
- db: mssql
|
|
||||||
db_version: sql2016
|
|
||||||
php: 7.1.12
|
|
||||||
# - 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 = "4.1.6.1"
|
|
||||||
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-vc14-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-vc14-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
|
|
||||||
|
|
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register)
|
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)
|
2. [Create a ticket (unless there already is one)](http://tracker.phpbb.com/secure/CreateIssue!default.jspa)
|
||||||
3. Read our [Coding guidelines](https://wiki.phpbb.com/Coding_guidelines) and [Git Contribution Guidelines](http://wiki.phpbb.com/Git)
|
3. Read our [Coding guidelines](https://area51.phpbb.com/docs/dev/master/development/coding_guidelines.html) and [Git Contribution Guidelines](https://area51.phpbb.com/docs/dev/master/development/git.html)
|
||||||
4. Send us a pull request
|
4. Send us a pull request
|
||||||
|
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,9 +1,9 @@
|
|||||||
Checklist:
|
Checklist:
|
||||||
|
|
||||||
- [ ] Correct branch: master for new features; 3.2.x for fixes
|
- [ ] Correct branch: master for new features; 3.3.x for fixes
|
||||||
- [ ] Tests pass
|
- [ ] Tests pass
|
||||||
- [ ] Code follows coding guidelines: [master](https://area51.phpbb.com/docs/dev/master/development/coding_guidelines.html) 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.2.x/development/git.html)
|
- [ ] Commit follows commit message [format](https://area51.phpbb.com/docs/dev/3.3.x/development/git.html)
|
||||||
|
|
||||||
Tracker ticket (set the ticket ID to **your ticket ID**):
|
Tracker ticket (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>
|
@@ -1,14 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<phpunit backupGlobals="true"
|
<phpunit backupGlobals="true"
|
||||||
backupStaticAttributes="true"
|
backupStaticAttributes="false"
|
||||||
colors="true"
|
colors="true"
|
||||||
convertErrorsToExceptions="true"
|
convertErrorsToExceptions="true"
|
||||||
convertNoticesToExceptions="true"
|
convertNoticesToExceptions="true"
|
||||||
convertWarningsToExceptions="true"
|
convertWarningsToExceptions="true"
|
||||||
processIsolation="false"
|
processIsolation="false"
|
||||||
stopOnFailure="false"
|
stopOnFailure="false"
|
||||||
syntaxCheck="true"
|
|
||||||
strict="true"
|
|
||||||
verbose="true"
|
verbose="true"
|
||||||
bootstrap="../tests/bootstrap.php">
|
bootstrap="../tests/bootstrap.php">
|
||||||
<testsuites>
|
<testsuites>
|
||||||
@@ -16,13 +14,9 @@
|
|||||||
<directory suffix="_test.php">../tests</directory>
|
<directory suffix="_test.php">../tests</directory>
|
||||||
<exclude>../tests/functional</exclude>
|
<exclude>../tests/functional</exclude>
|
||||||
<exclude>../tests/lint_test.php</exclude>
|
<exclude>../tests/lint_test.php</exclude>
|
||||||
<exclude>../tests/ui</exclude>
|
|
||||||
</testsuite>
|
</testsuite>
|
||||||
<testsuite name="phpBB Functional Tests">
|
<testsuite name="phpBB Functional Tests">
|
||||||
<directory suffix="_test.php" phpVersion="5.3.19" phpVersionOperator=">=">../tests/functional</directory>
|
<directory suffix="_test.php">../tests/functional</directory>
|
||||||
</testsuite>
|
|
||||||
<testsuite name="phpBB UI Tests">
|
|
||||||
<directory suffix="_test.php" phpVersion="5.3.19" phpVersionOperator=">=">../tests/ui</directory>
|
|
||||||
</testsuite>
|
</testsuite>
|
||||||
</testsuites>
|
</testsuites>
|
||||||
|
|
||||||
@@ -33,13 +27,14 @@
|
|||||||
</groups>
|
</groups>
|
||||||
|
|
||||||
<php>
|
<php>
|
||||||
<server name="PHPBB_TEST_DBMS" value="phpbb\db\driver\mysql" />
|
<server name="PHPBB_TEST_DBMS" value="phpbb\db\driver\mysqli" />
|
||||||
<server name="PHPBB_TEST_DBHOST" value="0.0.0.0" />
|
<server name="PHPBB_TEST_DBHOST" value="0.0.0.0" />
|
||||||
<server name="PHPBB_TEST_DBPORT" value="3306" />
|
<server name="PHPBB_TEST_DBPORT" value="3306" />
|
||||||
<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
|
<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
|
||||||
<server name="PHPBB_TEST_DBUSER" value="root" />
|
<server name="PHPBB_TEST_DBUSER" value="root" />
|
||||||
<server name="PHPBB_TEST_DBPASSWD" value="" />
|
<server name="PHPBB_TEST_DBPASSWD" value="" />
|
||||||
<server name="PHPBB_TEST_REDIS_HOST" value="localhost" />
|
<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_TEST_TABLE_PREFIX" value="phpbb_"/>
|
||||||
<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
|
<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
|
||||||
</php>
|
</php>
|
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
|
81
.github/setup-webserver.sh
vendored
Executable file
81
.github/setup-webserver.sh
vendored
Executable file
@@ -0,0 +1,81 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# This file is part of the phpBB Forum Software package.
|
||||||
|
#
|
||||||
|
# @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||||
|
# @license GNU General Public License, version 2 (GPL-2.0)
|
||||||
|
#
|
||||||
|
# For full copyright and license information, please see
|
||||||
|
# the docs/CREDITS.txt file.
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y nginx coreutils
|
||||||
|
|
||||||
|
sudo service nginx stop
|
||||||
|
|
||||||
|
DIR=$(dirname "$0")
|
||||||
|
USER=$(whoami)
|
||||||
|
PHPBB_ROOT_PATH=$(realpath "$DIR/../phpBB")
|
||||||
|
NGINX_SITE_CONF="/etc/nginx/sites-enabled/default"
|
||||||
|
NGINX_CONF="/etc/nginx/nginx.conf"
|
||||||
|
APP_SOCK=$(realpath "$DIR")/php-app.sock
|
||||||
|
NGINX_PHP_CONF="$DIR/nginx-php.conf"
|
||||||
|
|
||||||
|
# php-fpm
|
||||||
|
PHP_FPM_BIN="/usr/sbin/php-fpm$PHP_VERSION"
|
||||||
|
PHP_FPM_CONF="$DIR/php-fpm.conf"
|
||||||
|
|
||||||
|
if [ ! -f $PHP_FPM_BIN ] && [ "$PHP_VERSION" == '8.1' ] && [ -f "/usr/bin/php-fpm" ]
|
||||||
|
then
|
||||||
|
PHP_FPM_BIN="/usr/bin/php-fpm"
|
||||||
|
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
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- 3.3.x
|
||||||
|
- master
|
||||||
|
|
||||||
|
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
|
||||||
|
env:
|
||||||
|
BRANCH: ${{ github.event.pull_request.base.sha }}
|
||||||
|
if: github.event_name == 'pull_request'
|
||||||
|
run: |
|
||||||
|
git-tools/commit-msg-hook-range.sh $BRANCH..$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
|
4
.gitignore
vendored
4
.gitignore
vendored
@@ -16,6 +16,9 @@
|
|||||||
/phpBB/store/*
|
/phpBB/store/*
|
||||||
/phpBB/styles/*
|
/phpBB/styles/*
|
||||||
!/phpBB/styles/prosilver
|
!/phpBB/styles/prosilver
|
||||||
|
/phpBB/styles/prosilver/theme/*/
|
||||||
|
!/phpBB/styles/prosilver/theme/en
|
||||||
|
!/phpBB/styles/prosilver/theme/images
|
||||||
!/phpBB/styles/all
|
!/phpBB/styles/all
|
||||||
node_modules
|
node_modules
|
||||||
/phpBB/vendor
|
/phpBB/vendor
|
||||||
@@ -26,3 +29,4 @@ node_modules
|
|||||||
/vagrant/phpbb-install-config.yml
|
/vagrant/phpbb-install-config.yml
|
||||||
.vagrant
|
.vagrant
|
||||||
.idea
|
.idea
|
||||||
|
*.DS_Store*
|
||||||
|
54
.travis.yml
54
.travis.yml
@@ -1,54 +0,0 @@
|
|||||||
language: php
|
|
||||||
dist: trusty
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- php: 5.4
|
|
||||||
env: DB=none;NOTESTS=1
|
|
||||||
- php: 5.4
|
|
||||||
env: DB=mysqli # MyISAM
|
|
||||||
- php: 5.4
|
|
||||||
env: DB=mysql
|
|
||||||
- php: 5.4
|
|
||||||
env: DB=mariadb
|
|
||||||
- php: 5.4
|
|
||||||
env: DB=postgres
|
|
||||||
- php: 5.4
|
|
||||||
env: DB=sqlite3
|
|
||||||
- php: 5.4
|
|
||||||
env: DB=mysqli;SLOWTESTS=1
|
|
||||||
- php: 5.5
|
|
||||||
env: DB=mysqli
|
|
||||||
- php: 5.6
|
|
||||||
env: DB=mysqli
|
|
||||||
- php: 7.0
|
|
||||||
env: DB=mysqli
|
|
||||||
- php: 7.1
|
|
||||||
env: DB=mysqli
|
|
||||||
- php: 7.2
|
|
||||||
env: DB=mysqli
|
|
||||||
- php: nightly
|
|
||||||
env: DB=mysqli
|
|
||||||
allow_failures:
|
|
||||||
- php: nightly
|
|
||||||
fast_finish: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
- redis-server
|
|
||||||
|
|
||||||
install:
|
|
||||||
- travis/setup-phpbb.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- travis/setup-database.sh $DB $TRAVIS_PHP_VERSION $NOTESTS
|
|
||||||
- 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)
|
[](https://www.phpbb.com)
|
||||||
|
|
||||||
## ABOUT
|
|
||||||
|
|
||||||
phpBB is a free open-source bulletin board written in PHP.
|
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.
|
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)
|
||||||
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)
|
|
||||||
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)
|
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
|
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:
|
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
|
Branch | Description | Github Actions |
|
||||||
---------- | -------- | ------- | -----------
|
------- | ----------- | -------------- |
|
||||||
[](http://travis-ci.org/phpbb/phpbb) | [](https://ci.appveyor.com/project/phpBB/phpbb/branch/master) | **master** | Latest development version
|
**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
|
**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
|
|
||||||
|
|
||||||
## LICENSE
|
## 📜 License
|
||||||
|
|
||||||
[GNU General Public License v2](http://opensource.org/licenses/gpl-2.0.php)
|
[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="../">
|
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
||||||
<!-- a few settings for the build -->
|
<!-- a few settings for the build -->
|
||||||
<property name="newversion" value="3.2.11" />
|
<property name="newversion" value="3.3.3" />
|
||||||
<property name="prevversion" value="3.2.10" />
|
<property name="prevversion" value="3.3.2" />
|
||||||
<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.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, 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.3-RC1" />
|
||||||
<!-- no configuration should be needed beyond this point -->
|
<!-- no configuration should be needed beyond this point -->
|
||||||
|
|
||||||
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
||||||
@@ -81,28 +81,36 @@
|
|||||||
--ignore=${project.basedir}/phpBB/phpbb/db/migration/data/v30x/*
|
--ignore=${project.basedir}/phpBB/phpbb/db/migration/data/v30x/*
|
||||||
phpBB/phpbb"
|
phpBB/phpbb"
|
||||||
dir="." returnProperty="retval-php-strict" passthru="true" />
|
dir="." returnProperty="retval-php-strict" passthru="true" />
|
||||||
|
<php function="preg_replace" returnProperty="sniffIgnoreList">
|
||||||
|
<param value="/\s+/"/>
|
||||||
|
<param value=""/>
|
||||||
|
<param value="${project.basedir}/phpBB/cache/*,
|
||||||
|
${project.basedir}/phpBB/develop/*,
|
||||||
|
${project.basedir}/phpBB/ext/*,
|
||||||
|
${project.basedir}/phpBB/includes/diff/*.php,
|
||||||
|
${project.basedir}/phpBB/includes/sphinxapi.php,
|
||||||
|
${project.basedir}/phpBB/includes/utf/data/*,
|
||||||
|
${project.basedir}/phpBB/install/data/*,
|
||||||
|
${project.basedir}/phpBB/install/database_update.php,
|
||||||
|
${project.basedir}/phpBB/phpbb/*,
|
||||||
|
${project.basedir}/phpBB/vendor/*,
|
||||||
|
${project.basedir}/phpBB/vendor-ext/*,
|
||||||
|
${project.basedir}/phpBB/config.php,
|
||||||
|
${project.basedir}/phpBB/config_dev.php,
|
||||||
|
${project.basedir}/phpBB/config_test.php"/>
|
||||||
|
</php>
|
||||||
<exec command="phpBB/vendor/bin/phpcs
|
<exec command="phpBB/vendor/bin/phpcs
|
||||||
-s -p
|
-s -p
|
||||||
--extensions=php
|
--extensions=php
|
||||||
--standard=build/code_sniffer/ruleset-php-legacy-core.xml
|
--standard=build/code_sniffer/ruleset-php-legacy-core.xml
|
||||||
--ignore=${project.basedir}/phpBB/cache/*
|
--ignore=${sniffIgnoreList}
|
||||||
--ignore=${project.basedir}/phpBB/develop/*
|
|
||||||
--ignore=${project.basedir}/phpBB/ext/*
|
|
||||||
--ignore=${project.basedir}/phpBB/includes/diff/*.php
|
|
||||||
--ignore=${project.basedir}/phpBB/includes/sphinxapi.php
|
|
||||||
--ignore=${project.basedir}/phpBB/includes/utf/data/*
|
|
||||||
--ignore=${project.basedir}/phpBB/install/data/*
|
|
||||||
--ignore=${project.basedir}/phpBB/install/database_update.php
|
|
||||||
--ignore=${project.basedir}/phpBB/phpbb/*
|
|
||||||
--ignore=${project.basedir}/phpBB/vendor/*
|
|
||||||
phpBB"
|
phpBB"
|
||||||
dir="." returnProperty="retval-php-legacy" passthru="true" />
|
dir="." returnProperty="retval-php-legacy" passthru="true" />
|
||||||
<exec command="phpBB/vendor/bin/phpcs
|
<exec command="phpBB/vendor/bin/phpcs
|
||||||
-s -p
|
-s -p
|
||||||
--extensions=php
|
--extensions=php
|
||||||
--standard=build/code_sniffer/ruleset-php-extensions.xml
|
--standard=build/code_sniffer/ruleset-php-extensions.xml
|
||||||
--ignore=${project.basedir}/phpBB/ext/*/tests/*
|
--ignore=${project.basedir}/phpBB/ext/*/tests/*,${project.basedir}/phpBB/ext/*/vendor/*
|
||||||
--ignore=${project.basedir}/phpBB/ext/*/vendor/*
|
|
||||||
phpBB/ext"
|
phpBB/ext"
|
||||||
dir="." returnProperty="retval-php-ext" passthru="true" />
|
dir="." returnProperty="retval-php-ext" passthru="true" />
|
||||||
<if>
|
<if>
|
||||||
@@ -120,13 +128,13 @@
|
|||||||
<!-- Builds docs for current branch into build/api/output/master -->
|
<!-- Builds docs for current branch into build/api/output/master -->
|
||||||
<target name="docs">
|
<target name="docs">
|
||||||
<exec dir="."
|
<exec dir="."
|
||||||
command="phpBB/vendor/bin/sami.php update build/sami-checkout.conf.php"
|
command="php doctum.phar update build/doctum-checkout.conf.php"
|
||||||
passthru="true" />
|
passthru="true" />
|
||||||
</target>
|
</target>
|
||||||
<!-- Builds docs for multiple branches/tags into build/api/output/$branch -->
|
<!-- Builds docs for multiple branches/tags into build/api/output/$branch -->
|
||||||
<target name="docs-all">
|
<target name="docs-all">
|
||||||
<exec dir="."
|
<exec dir="."
|
||||||
command="phpBB/vendor/bin/sami.php update build/sami-all.conf.php"
|
command="php doctum.phar update build/doctum-all.conf.php"
|
||||||
passthru="true" />
|
passthru="true" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
@@ -1,16 +1,16 @@
|
|||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* This file is part of the phpBB Forum Software package.
|
* This file is part of the phpBB Forum Software package.
|
||||||
*
|
*
|
||||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||||
*
|
*
|
||||||
* For full copyright and license information, please see
|
* For full copyright and license information, please see
|
||||||
* the docs/CREDITS.txt file.
|
* the docs/CREDITS.txt file.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($_SERVER['argc'] != 2)
|
if ($_SERVER['argc'] != 2)
|
||||||
{
|
{
|
||||||
@@ -18,21 +18,31 @@ if ($_SERVER['argc'] != 2)
|
|||||||
exit(1);
|
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)
|
$query = 'project IN (PHPBB3, SECURITY)
|
||||||
AND resolution = Fixed
|
AND resolution = Fixed
|
||||||
AND fixVersion = "' . $fixVersion . '"
|
AND fixVersion = "' . $fixVersion . '"
|
||||||
AND status IN ("Unverified Fix", Closed)';
|
AND status IN ("Unverified Fix", Closed)';
|
||||||
|
|
||||||
$url = 'http://tracker.phpbb.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=' . urlencode($query) . '&tempMax=1000';
|
$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));
|
$xml = simplexml_load_string(file_get_contents($url));
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($xml->xpath('//item') as $item)
|
foreach ($xml->xpath('//item') as $item)
|
||||||
{
|
{
|
||||||
$key = (string) $item->key;
|
$key = (string) $item->key;
|
||||||
|
|
||||||
$keyUrl = 'http://tracker.phpbb.com/browse/' . $key;
|
$keyUrl = 'https://tracker.phpbb.com/browse/' . $key;
|
||||||
$keyLink = '<a href="' . $keyUrl . '">' . $key . '</a>';
|
$keyLink = '<a href="' . $keyUrl . '">' . $key . '</a>';
|
||||||
|
|
||||||
$value = str_replace($key, $keyLink, htmlspecialchars($item->title));
|
$value = str_replace($key, $keyLink, htmlspecialchars($item->title));
|
||||||
|
@@ -11,6 +11,9 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use PHP_CodeSniffer\Files\File;
|
||||||
|
use PHP_CodeSniffer\Sniffs\Sniff;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks that each PHP source file contains a valid header as defined by the
|
* Checks that each PHP source file contains a valid header as defined by the
|
||||||
* phpBB Coding Guidelines.
|
* phpBB Coding Guidelines.
|
||||||
@@ -18,7 +21,7 @@
|
|||||||
* @package code_sniffer
|
* @package code_sniffer
|
||||||
* @author Manuel Pichler <mapi@phpundercontrol.org>
|
* @author Manuel Pichler <mapi@phpundercontrol.org>
|
||||||
*/
|
*/
|
||||||
class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
class phpbb_Sniffs_Commenting_FileCommentSniff implements Sniff
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Returns an array of tokens this test wants to listen for.
|
* Returns an array of tokens this test wants to listen for.
|
||||||
@@ -33,13 +36,13 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
|||||||
/**
|
/**
|
||||||
* Processes this test, when one of its tokens is encountered.
|
* Processes this test, when one of its tokens is encountered.
|
||||||
*
|
*
|
||||||
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
|
* @param File $phpcsFile The file being scanned.
|
||||||
* @param int $stackPtr The position of the current token
|
* @param int $stackPtr The position of the current token
|
||||||
* in the stack passed in $tokens.
|
* in the stack passed in $tokens.
|
||||||
*
|
*
|
||||||
* @return null
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
|
public function process(File $phpcsFile, $stackPtr): void
|
||||||
{
|
{
|
||||||
// We are only interested in the first file comment.
|
// We are only interested in the first file comment.
|
||||||
if ($stackPtr !== 0)
|
if ($stackPtr !== 0)
|
||||||
@@ -62,7 +65,7 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
|||||||
// Mark as error if this is not a doc comment
|
// Mark as error if this is not a doc comment
|
||||||
else if ($start === false || $tokens[$start]['code'] !== T_DOC_COMMENT_OPEN_TAG)
|
else if ($start === false || $tokens[$start]['code'] !== T_DOC_COMMENT_OPEN_TAG)
|
||||||
{
|
{
|
||||||
$phpcsFile->addError('Missing required file doc comment.', $stackPtr);
|
$phpcsFile->addError('Missing required file doc comment.', $stackPtr, 'MissingComment');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +85,7 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
|||||||
if ($tokens[$token]['column'] === 1 && (($tokens[$token]['content'] !== '*' && $tokens[$token]['content'] !== ' ') || ($tokens[$token]['content'] === ' ' && $tokens[$token + 1]['content'] !== '*')))
|
if ($tokens[$token]['column'] === 1 && (($tokens[$token]['content'] !== '*' && $tokens[$token]['content'] !== ' ') || ($tokens[$token]['content'] === ' ' && $tokens[$token + 1]['content'] !== '*')))
|
||||||
{
|
{
|
||||||
$message = 'The file doc comment should not be indented.';
|
$message = 'The file doc comment should not be indented.';
|
||||||
$phpcsFile->addWarning($message, $token);
|
$phpcsFile->addWarning($message, $token, 'CommentIndented');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,13 +98,13 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
|||||||
if (!(($tokens[$start + 2]['content'] !== '*' && $tokens[$start + 4]['content'] !== '*') || ($tokens[$start + 3]['content'] !== '*' && $tokens[$start + 6]['content'] !== '*')))
|
if (!(($tokens[$start + 2]['content'] !== '*' && $tokens[$start + 4]['content'] !== '*') || ($tokens[$start + 3]['content'] !== '*' && $tokens[$start + 6]['content'] !== '*')))
|
||||||
{
|
{
|
||||||
$message = 'The first file comment line should be empty.';
|
$message = 'The first file comment line should be empty.';
|
||||||
$phpcsFile->addWarning($message, ($start + 1));
|
$phpcsFile->addWarning($message, ($start + 1), 'CommentFirstNotEmpty');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($tokens[$end - 3]['content'] !== '*' && $tokens[$end - 6]['content'] !== '*')
|
if ($tokens[$end - 3]['content'] !== '*' && $tokens[$end - 6]['content'] !== '*')
|
||||||
{
|
{
|
||||||
$message = 'The last file comment line should be empty.';
|
$message = 'The last file comment line should be empty.';
|
||||||
$phpcsFile->addWarning($message, $end - 1);
|
$phpcsFile->addWarning($message, $end - 1, 'CommentLastNotEmpty');
|
||||||
}
|
}
|
||||||
|
|
||||||
//$this->processPackage($phpcsFile, $start, $tags);
|
//$this->processPackage($phpcsFile, $start, $tags);
|
||||||
@@ -113,59 +116,59 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
|||||||
/**
|
/**
|
||||||
* Checks that the tags array contains a valid package tag
|
* Checks that the tags array contains a valid package tag
|
||||||
*
|
*
|
||||||
* @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
|
* @param File $phpcsFile The context source file instance.
|
||||||
* @param integer The stack pointer for the first comment token.
|
* @param integer The stack pointer for the first comment token.
|
||||||
* @param array(string=>array) $tags The found file doc comment tags.
|
* @param array(string=>array) $tags The found file doc comment tags.
|
||||||
*
|
*
|
||||||
* @return null
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function processPackage(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
|
protected function processPackage(File $phpcsFile, $ptr, $tags): void
|
||||||
{
|
{
|
||||||
if (!isset($tags['package']))
|
if (!isset($tags['package']))
|
||||||
{
|
{
|
||||||
$message = 'Missing require @package tag in file doc comment.';
|
$message = 'Missing require @package tag in file doc comment.';
|
||||||
$phpcsFile->addError($message, $ptr);
|
$phpcsFile->addError($message, $ptr, 'MissingTagPackage');
|
||||||
}
|
}
|
||||||
else if (preg_match('/^([\w]+)$/', $tags['package'][0]) === 0)
|
else if (preg_match('/^([\w]+)$/', $tags['package'][0]) === 0)
|
||||||
{
|
{
|
||||||
$message = 'Invalid content found for @package tag.';
|
$message = 'Invalid content found for @package tag.';
|
||||||
$phpcsFile->addWarning($message, $tags['package'][1]);
|
$phpcsFile->addWarning($message, $tags['package'][1], 'InvalidTagPackage');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks that the tags array contains a valid version tag
|
* Checks that the tags array contains a valid version tag
|
||||||
*
|
*
|
||||||
* @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
|
* @param File $phpcsFile The context source file instance.
|
||||||
* @param integer The stack pointer for the first comment token.
|
* @param integer The stack pointer for the first comment token.
|
||||||
* @param array(string=>array) $tags The found file doc comment tags.
|
* @param array(string=>array) $tags The found file doc comment tags.
|
||||||
*
|
*
|
||||||
* @return null
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function processVersion(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
|
protected function processVersion(File $phpcsFile, $ptr, $tags): void
|
||||||
{
|
{
|
||||||
if (!isset($tags['version']))
|
if (!isset($tags['version']))
|
||||||
{
|
{
|
||||||
$message = 'Missing require @version tag in file doc comment.';
|
$message = 'Missing require @version tag in file doc comment.';
|
||||||
$phpcsFile->addError($message, $ptr);
|
$phpcsFile->addError($message, $ptr, 'MissingTagVersion');
|
||||||
}
|
}
|
||||||
else if (preg_match('/^\$Id:[^\$]+\$$/', $tags['version'][0]) === 0)
|
else if (preg_match('/^\$Id:[^\$]+\$$/', $tags['version'][0]) === 0)
|
||||||
{
|
{
|
||||||
$message = 'Invalid content found for @version tag, use "$Id: $".';
|
$message = 'Invalid content found for @version tag, use "$Id: $".';
|
||||||
$phpcsFile->addError($message, $tags['version'][1]);
|
$phpcsFile->addError($message, $tags['version'][1], 'InvalidTagVersion');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks that the tags array contains a valid copyright tag
|
* Checks that the tags array contains a valid copyright tag
|
||||||
*
|
*
|
||||||
* @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
|
* @param File $phpcsFile The context source file instance.
|
||||||
* @param integer The stack pointer for the first comment token.
|
* @param integer The stack pointer for the first comment token.
|
||||||
* @param array(string=>array) $tags The found file doc comment tags.
|
* @param array(string=>array) $tags The found file doc comment tags.
|
||||||
*
|
*
|
||||||
* @return null
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function processCopyright(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
|
protected function processCopyright(File $phpcsFile, $ptr, $tags): void
|
||||||
{
|
{
|
||||||
$copyright = '(c) phpBB Limited <https://www.phpbb.com>';
|
$copyright = '(c) phpBB Limited <https://www.phpbb.com>';
|
||||||
$tokens = $phpcsFile->getTokens();
|
$tokens = $phpcsFile->getTokens();
|
||||||
@@ -177,7 +180,7 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
|||||||
if ($tokens[$tag + 2]['content'] !== $copyright)
|
if ($tokens[$tag + 2]['content'] !== $copyright)
|
||||||
{
|
{
|
||||||
$message = 'Invalid content found for the first @copyright tag, use "' . $copyright . '".';
|
$message = 'Invalid content found for the first @copyright tag, use "' . $copyright . '".';
|
||||||
$phpcsFile->addError($message, $tags['copyright'][0][1]);
|
$phpcsFile->addError($message, $tags['copyright'][0][1], 'InvalidTagCopyright');
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -185,19 +188,19 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
|||||||
}
|
}
|
||||||
|
|
||||||
$message = 'Missing require @copyright tag in file doc comment.';
|
$message = 'Missing require @copyright tag in file doc comment.';
|
||||||
$phpcsFile->addError($message, $ptr);
|
$phpcsFile->addError($message, $ptr, 'MissingTagCopyright');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks that the tags array contains a valid license tag
|
* Checks that the tags array contains a valid license tag
|
||||||
*
|
*
|
||||||
* @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
|
* @param File $phpcsFile The context source file instance.
|
||||||
* @param integer The stack pointer for the first comment token.
|
* @param integer The stack pointer for the first comment token.
|
||||||
* @param array(string=>array) $tags The found file doc comment tags.
|
* @param array(string=>array) $tags The found file doc comment tags.
|
||||||
*
|
*
|
||||||
* @return null
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function processLicense(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
|
protected function processLicense(File $phpcsFile, $ptr, $tags): void
|
||||||
{
|
{
|
||||||
$license = 'GNU General Public License, version 2 (GPL-2.0)';
|
$license = 'GNU General Public License, version 2 (GPL-2.0)';
|
||||||
$tokens = $phpcsFile->getTokens();
|
$tokens = $phpcsFile->getTokens();
|
||||||
@@ -210,7 +213,7 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
|||||||
if ($found)
|
if ($found)
|
||||||
{
|
{
|
||||||
$message = 'It must be only one @license tag in file doc comment.';
|
$message = 'It must be only one @license tag in file doc comment.';
|
||||||
$phpcsFile->addError($message, $ptr);
|
$phpcsFile->addError($message, $ptr, 'MultiTagVersion');
|
||||||
}
|
}
|
||||||
|
|
||||||
$found = true;
|
$found = true;
|
||||||
@@ -218,7 +221,7 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
|||||||
if ($tokens[$tag + 2]['content'] !== $license)
|
if ($tokens[$tag + 2]['content'] !== $license)
|
||||||
{
|
{
|
||||||
$message = 'Invalid content found for @license tag, use "' . $license . '".';
|
$message = 'Invalid content found for @license tag, use "' . $license . '".';
|
||||||
$phpcsFile->addError($message, $tags['license'][0][1]);
|
$phpcsFile->addError($message, $tags['license'][0][1], 'InvalidTagLicense');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -226,7 +229,7 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
|||||||
if (!$found)
|
if (!$found)
|
||||||
{
|
{
|
||||||
$message = 'Missing require @license tag in file doc comment.';
|
$message = 'Missing require @license tag in file doc comment.';
|
||||||
$phpcsFile->addError($message, $ptr);
|
$phpcsFile->addError($message, $ptr, 'MissingTagLicense');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -11,11 +11,14 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use PHP_CodeSniffer\Files\File;
|
||||||
|
use PHP_CodeSniffer\Sniffs\Sniff;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks that the opening brace of a control structures is on the line after.
|
* Checks that the opening brace of a control structures is on the line after.
|
||||||
* From Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff
|
* From Generic_Sniffs_Functions_OpeningFunctionBraceBsdAllmanSniff
|
||||||
*/
|
*/
|
||||||
class phpbb_Sniffs_ControlStructures_OpeningBraceBsdAllmanSniff implements PHP_CodeSniffer_Sniff
|
class phpbb_Sniffs_ControlStructures_OpeningBraceBsdAllmanSniff implements Sniff
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Registers the tokens that this sniff wants to listen for.
|
* Registers the tokens that this sniff wants to listen for.
|
||||||
@@ -36,13 +39,13 @@ class phpbb_Sniffs_ControlStructures_OpeningBraceBsdAllmanSniff implements PHP_C
|
|||||||
/**
|
/**
|
||||||
* Processes this test, when one of its tokens is encountered.
|
* Processes this test, when one of its tokens is encountered.
|
||||||
*
|
*
|
||||||
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
|
* @param File $phpcsFile The file being scanned.
|
||||||
* @param int $stackPtr The position of the current token in the
|
* @param int $stackPtr The position of the current token in the
|
||||||
* stack passed in $tokens.
|
* stack passed in $tokens.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
|
public function process(File $phpcsFile, $stackPtr)
|
||||||
{
|
{
|
||||||
$tokens = $phpcsFile->getTokens();
|
$tokens = $phpcsFile->getTokens();
|
||||||
|
|
||||||
|
@@ -11,11 +11,14 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use PHP_CodeSniffer\Files\File;
|
||||||
|
use PHP_CodeSniffer\Sniffs\Sniff;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks that there is exactly one space between the keyword and the opening
|
* Checks that there is exactly one space between the keyword and the opening
|
||||||
* parenthesis of a control structures.
|
* parenthesis of a control structures.
|
||||||
*/
|
*/
|
||||||
class phpbb_Sniffs_ControlStructures_OpeningParenthesisSniff implements PHP_CodeSniffer_Sniff
|
class phpbb_Sniffs_ControlStructures_OpeningParenthesisSniff implements Sniff
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Registers the tokens that this sniff wants to listen for.
|
* Registers the tokens that this sniff wants to listen for.
|
||||||
@@ -36,13 +39,13 @@ class phpbb_Sniffs_ControlStructures_OpeningParenthesisSniff implements PHP_Code
|
|||||||
/**
|
/**
|
||||||
* Processes this test, when one of its tokens is encountered.
|
* Processes this test, when one of its tokens is encountered.
|
||||||
*
|
*
|
||||||
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
|
* @param File $phpcsFile The file being scanned.
|
||||||
* @param int $stackPtr The position of the current token in the
|
* @param int $stackPtr The position of the current token in the
|
||||||
* stack passed in $tokens.
|
* stack passed in $tokens.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
|
public function process(File $phpcsFile, $stackPtr)
|
||||||
{
|
{
|
||||||
$tokens = $phpcsFile->getTokens();
|
$tokens = $phpcsFile->getTokens();
|
||||||
|
|
||||||
|
@@ -11,26 +11,42 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use PHP_CodeSniffer\Files\File;
|
||||||
|
use PHP_CodeSniffer\Sniffs\Sniff;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks that each use statement is used.
|
* Checks that each use statement is used.
|
||||||
*/
|
*/
|
||||||
class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
class phpbb_Sniffs_Namespaces_UnusedUseSniff implements Sniff
|
||||||
{
|
{
|
||||||
|
const FIND = [
|
||||||
|
T_NS_SEPARATOR,
|
||||||
|
T_STRING,
|
||||||
|
T_WHITESPACE,
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function register()
|
public function register()
|
||||||
{
|
{
|
||||||
return array(T_USE);
|
return [T_USE];
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function check($phpcsFile, $found_name, $full_name, $short_name, $line)
|
protected function check(File $phpcsFile, $found_name, $full_name, $short_name, $stack_pointer)
|
||||||
{
|
{
|
||||||
|
$found_name_normalized = ltrim($found_name, '\\');
|
||||||
|
$full_name = ltrim($full_name, '\\');
|
||||||
|
|
||||||
if ($found_name === $full_name)
|
$is_global = ($full_name === $short_name);
|
||||||
|
$unnecessarily_fully_qualified = ($is_global)
|
||||||
|
? ($found_name_normalized !== $found_name && $found_name_normalized === $short_name)
|
||||||
|
: ($found_name_normalized === $full_name);
|
||||||
|
|
||||||
|
if ($unnecessarily_fully_qualified)
|
||||||
{
|
{
|
||||||
$error = 'Either use statement or full name must be used.';
|
$error = 'Either use statement or full name must be used.';
|
||||||
$phpcsFile->addError($error, $line, 'FullName');
|
$phpcsFile->addError($error, $stack_pointer, 'FullName');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($found_name === $short_name)
|
if ($found_name === $short_name)
|
||||||
@@ -44,7 +60,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
|
public function process(File $phpcsFile, $stackPtr)
|
||||||
{
|
{
|
||||||
if ($this->should_ignore_use($phpcsFile, $stackPtr) === true)
|
if ($this->should_ignore_use($phpcsFile, $stackPtr) === true)
|
||||||
{
|
{
|
||||||
@@ -55,27 +71,50 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
|
|
||||||
$class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($stackPtr + 1));
|
$class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($stackPtr + 1));
|
||||||
|
|
||||||
$find = array(
|
$class_name_end = $phpcsFile->findNext(self::FIND, ($stackPtr + 1), null, true);
|
||||||
T_NS_SEPARATOR,
|
|
||||||
T_STRING,
|
|
||||||
T_WHITESPACE,
|
|
||||||
);
|
|
||||||
|
|
||||||
$class_name_end = $phpcsFile->findNext($find, ($stackPtr + 1), null, true);
|
|
||||||
|
|
||||||
$aliasing_as_position = $phpcsFile->findNext(T_AS, $class_name_end, null, false, null, true);
|
$aliasing_as_position = $phpcsFile->findNext(T_AS, $class_name_end, null, false, null, true);
|
||||||
if ($aliasing_as_position !== false)
|
if ($aliasing_as_position !== false)
|
||||||
{
|
{
|
||||||
$alias_position = $phpcsFile->findNext(T_STRING, $aliasing_as_position, null, false, null, true);
|
$alias_position = $phpcsFile->findNext(T_STRING, $aliasing_as_position, null, false, null, true);
|
||||||
$class_name_short = $tokens[$alias_position]['content'];
|
$name_short = $tokens[$alias_position]['content'];
|
||||||
$class_name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start - 1));
|
$name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start - 1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$class_name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start));
|
$name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start));
|
||||||
$class_name_short = $tokens[$class_name_end - 1]['content'];
|
$name_short = $tokens[$class_name_end - 1]['content'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($tokens[$class_name_start]['content'] === 'function'
|
||||||
|
&& $tokens[$class_name_start + 1]['code'] === T_WHITESPACE)
|
||||||
|
{
|
||||||
|
$class_name_start += 2;
|
||||||
|
$name_full = $phpcsFile->getTokensAsString(
|
||||||
|
$class_name_start,
|
||||||
|
($class_name_end - $class_name_start - (int) ($aliasing_as_position !== false))
|
||||||
|
);
|
||||||
|
$ok = $this->findFunctionUsage($phpcsFile, $stackPtr, $tokens, $name_full, $name_short);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ok = $this->findClassUsage($phpcsFile, $stackPtr, $tokens, $name_full, $name_short);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($name_full[0] === '\\')
|
||||||
|
{
|
||||||
|
$phpcsFile->addError("There must not be a leading '\\' in use statements.", $stackPtr, 'Malformed');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$ok)
|
||||||
|
{
|
||||||
|
$error = 'There must not be unused USE statements.';
|
||||||
|
$phpcsFile->addError($error, $stackPtr, 'Unused');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function findClassUsage(File $phpcsFile, $stackPtr, $tokens, $class_name_full, $class_name_short)
|
||||||
|
{
|
||||||
$ok = false;
|
$ok = false;
|
||||||
|
|
||||||
// Checks in simple statements (new, instanceof and extends)
|
// Checks in simple statements (new, instanceof and extends)
|
||||||
@@ -92,11 +131,11 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$simple_class_name_end = $phpcsFile->findNext($find, ($simple_statement + 1), null, true);
|
$simple_class_name_end = $phpcsFile->findNext(self::FIND, ($simple_statement + 1), null, true);
|
||||||
|
|
||||||
$simple_class_name = trim($phpcsFile->getTokensAsString($simple_class_name_start, ($simple_class_name_end - $simple_class_name_start)));
|
$simple_class_name = trim($phpcsFile->getTokensAsString($simple_class_name_start, ($simple_class_name_end - $simple_class_name_start)));
|
||||||
|
|
||||||
$ok = $this->check($phpcsFile, $simple_class_name, $class_name_full, $class_name_short, $simple_statement) ? true : $ok;
|
$ok = $this->check($phpcsFile, $simple_class_name, $class_name_full, $class_name_short, $simple_statement) || $ok;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,12 +145,12 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
{
|
{
|
||||||
$old_paamayim_nekudotayim = $paamayim_nekudotayim;
|
$old_paamayim_nekudotayim = $paamayim_nekudotayim;
|
||||||
|
|
||||||
$paamayim_nekudotayim_class_name_start = $phpcsFile->findPrevious($find, $paamayim_nekudotayim - 1, null, true);
|
$paamayim_nekudotayim_class_name_start = $phpcsFile->findPrevious(self::FIND, $paamayim_nekudotayim - 1, null, true);
|
||||||
$paamayim_nekudotayim_class_name_end = $paamayim_nekudotayim - 1;
|
$paamayim_nekudotayim_class_name_end = $paamayim_nekudotayim - 1;
|
||||||
|
|
||||||
$paamayim_nekudotayim_class_name = trim($phpcsFile->getTokensAsString($paamayim_nekudotayim_class_name_start + 1, ($paamayim_nekudotayim_class_name_end - $paamayim_nekudotayim_class_name_start)));
|
$paamayim_nekudotayim_class_name = trim($phpcsFile->getTokensAsString($paamayim_nekudotayim_class_name_start + 1, ($paamayim_nekudotayim_class_name_end - $paamayim_nekudotayim_class_name_start)));
|
||||||
|
|
||||||
$ok = $this->check($phpcsFile, $paamayim_nekudotayim_class_name, $class_name_full, $class_name_short, $paamayim_nekudotayim) ? true : $ok;
|
$ok = $this->check($phpcsFile, $paamayim_nekudotayim_class_name, $class_name_full, $class_name_short, $paamayim_nekudotayim) || $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checks in implements
|
// Checks in implements
|
||||||
@@ -126,11 +165,11 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
$old_implemented_class = $implemented_class;
|
$old_implemented_class = $implemented_class;
|
||||||
|
|
||||||
$implements_class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($implemented_class - 1));
|
$implements_class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($implemented_class - 1));
|
||||||
$implements_class_name_end = $phpcsFile->findNext($find, ($implemented_class - 1), null, true);
|
$implements_class_name_end = $phpcsFile->findNext(self::FIND, ($implemented_class - 1), null, true);
|
||||||
|
|
||||||
$implements_class_name = trim($phpcsFile->getTokensAsString($implements_class_name_start, ($implements_class_name_end - $implements_class_name_start)));
|
$implements_class_name = trim($phpcsFile->getTokensAsString($implements_class_name_start, ($implements_class_name_end - $implements_class_name_start)));
|
||||||
|
|
||||||
$ok = $this->check($phpcsFile, $implements_class_name, $class_name_full, $class_name_short, $implements) ? true : $ok;
|
$ok = $this->check($phpcsFile, $implements_class_name, $class_name_full, $class_name_short, $implements) || $ok;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,7 +177,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
while (($docblock = $phpcsFile->findNext(T_DOC_COMMENT_CLOSE_TAG, ($old_docblock + 1))) !== false)
|
while (($docblock = $phpcsFile->findNext(T_DOC_COMMENT_CLOSE_TAG, ($old_docblock + 1))) !== false)
|
||||||
{
|
{
|
||||||
$old_docblock = $docblock;
|
$old_docblock = $docblock;
|
||||||
$ok = $this->checkDocblock($phpcsFile, $docblock, $tokens, $class_name_full, $class_name_short) ? true : $ok;
|
$ok = $this->checkDocblock($phpcsFile, $docblock, $tokens, $class_name_full, $class_name_short) || $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checks in type hinting
|
// Checks in type hinting
|
||||||
@@ -151,7 +190,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
$params = $phpcsFile->getMethodParameters($function_declaration);
|
$params = $phpcsFile->getMethodParameters($function_declaration);
|
||||||
foreach ($params as $param)
|
foreach ($params as $param)
|
||||||
{
|
{
|
||||||
$ok = $this->check($phpcsFile, $param['type_hint'], $class_name_full, $class_name_short, $function_declaration) ? true : $ok;
|
$ok = $this->check($phpcsFile, $param['type_hint'], $class_name_full, $class_name_short, $function_declaration) || $ok;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,30 +201,118 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
$old_catch = $catch;
|
$old_catch = $catch;
|
||||||
|
|
||||||
$caught_class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), $catch + 1);
|
$caught_class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), $catch + 1);
|
||||||
$caught_class_name_end = $phpcsFile->findNext($find, $caught_class_name_start + 1, null, true);
|
$caught_class_name_end = $phpcsFile->findNext(self::FIND, $caught_class_name_start + 1, null, true);
|
||||||
|
|
||||||
$caught_class_name = trim($phpcsFile->getTokensAsString($caught_class_name_start, ($caught_class_name_end - $caught_class_name_start)));
|
$caught_class_name = trim($phpcsFile->getTokensAsString($caught_class_name_start, ($caught_class_name_end - $caught_class_name_start)));
|
||||||
|
|
||||||
$ok = $this->check($phpcsFile, $caught_class_name, $class_name_full, $class_name_short, $catch) ? true : $ok;
|
$ok = $this->check($phpcsFile, $caught_class_name, $class_name_full, $class_name_short, $catch) || $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$ok)
|
$old_use = $stackPtr;
|
||||||
|
while (($use = $phpcsFile->findNext(T_USE, ($old_use + 1))) !== false)
|
||||||
{
|
{
|
||||||
$error = 'There must not be unused USE statements.';
|
$old_use = $use;
|
||||||
$phpcsFile->addError($error, $stackPtr, 'Unused');
|
|
||||||
|
// Needs to be inside a class and must not be inside a function scope.
|
||||||
|
if (!$phpcsFile->hasCondition($use, [T_CLASS, T_TRAIT]) || $phpcsFile->hasCondition($use, T_FUNCTION))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$next = $phpcsFile->findNext(T_WHITESPACE, ($use + 1), null, true, null, true);
|
||||||
|
if ($tokens[$next]['code'] === T_OPEN_PARENTHESIS)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), $use + 1, null, false, null, true);
|
||||||
|
$class_name_end = $phpcsFile->findNext(self::FIND, $class_name_start + 1, null, true, null, true);
|
||||||
|
$found_name = trim($phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start)));
|
||||||
|
|
||||||
|
$ok = $this->check($phpcsFile, $found_name, $class_name_full, $class_name_short, $use) || $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function findFunctionUsage(File $phpcsFile, $stackPtr, $tokens, $name_full, $name_short)
|
||||||
|
{
|
||||||
|
$ok = false;
|
||||||
|
$position = $phpcsFile->findNext(T_OPEN_PARENTHESIS, $stackPtr + 1);
|
||||||
|
while ($position !== false)
|
||||||
|
{
|
||||||
|
$function_name_end = $position;
|
||||||
|
$found_start = 1 + $phpcsFile->findPrevious(
|
||||||
|
[T_NS_SEPARATOR, T_STRING, T_WHITESPACE],
|
||||||
|
$function_name_end - 1,
|
||||||
|
null,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$position = $phpcsFile->findNext(T_OPEN_PARENTHESIS, $position + 1);
|
||||||
|
if ($found_start === null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$function_name_start = $found_start;
|
||||||
|
|
||||||
|
// Trim the output.
|
||||||
|
while ($tokens[$function_name_start]['code'] === T_WHITESPACE && $function_name_start < $function_name_end)
|
||||||
|
{
|
||||||
|
++$function_name_start;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ($tokens[$function_name_end]['code'] === T_WHITESPACE && $function_name_end > $function_name_start)
|
||||||
|
{
|
||||||
|
--$function_name_end;
|
||||||
|
}
|
||||||
|
|
||||||
|
$function_name_length = $function_name_end - $function_name_start;
|
||||||
|
|
||||||
|
// Filter out control structures, built in type constructors, etc.
|
||||||
|
if ($function_name_length <= 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This doesn't seem to be valid PHP, where is the opening tag?
|
||||||
|
if ($found_start === 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$previous_token = $found_start - 1;
|
||||||
|
$filter = [
|
||||||
|
T_FUNCTION, // Function declaration
|
||||||
|
T_OBJECT_OPERATOR, // Method call
|
||||||
|
T_DOUBLE_COLON, // Static method call
|
||||||
|
T_NEW, // Constructors
|
||||||
|
];
|
||||||
|
|
||||||
|
// Filter out calls to methods and function declarations.
|
||||||
|
if (in_array($tokens[$previous_token]['code'], $filter))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$function_name = $phpcsFile->getTokensAsString($function_name_start, $function_name_length);
|
||||||
|
$ok = $this->check($phpcsFile, $function_name, $name_full, $name_short, $function_name_start) || $ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if this use statement is part of the namespace block.
|
* Check if this use statement is part of the namespace block.
|
||||||
*
|
*
|
||||||
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
|
* @param File $phpcsFile The file being scanned.
|
||||||
* @param int $stackPtr The position of the current token in
|
* @param int $stackPtr The position of the current token in
|
||||||
* the stack passed in $tokens.
|
* the stack passed in $tokens.
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
private function should_ignore_use(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
|
private function should_ignore_use(File $phpcsFile, $stackPtr)
|
||||||
{
|
{
|
||||||
$tokens = $phpcsFile->getTokens();
|
$tokens = $phpcsFile->getTokens();
|
||||||
|
|
||||||
@@ -207,7 +334,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param PHP_CodeSniffer_File $phpcsFile
|
* @param File $phpcsFile
|
||||||
* @param int $field
|
* @param int $field
|
||||||
* @param array $tokens
|
* @param array $tokens
|
||||||
* @param string $class_name_full
|
* @param string $class_name_full
|
||||||
@@ -216,7 +343,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
private function checkDocblock(PHP_CodeSniffer_File $phpcsFile, $comment_end, $tokens, $class_name_full, $class_name_short)
|
private function checkDocblock(File $phpcsFile, $comment_end, $tokens, $class_name_full, $class_name_short)
|
||||||
{
|
{
|
||||||
$ok = false;
|
$ok = false;
|
||||||
|
|
||||||
@@ -244,7 +371,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
|||||||
$classes = explode('|', str_replace('[]', '', $classes));
|
$classes = explode('|', str_replace('[]', '', $classes));
|
||||||
foreach ($classes as $class)
|
foreach ($classes as $class)
|
||||||
{
|
{
|
||||||
$ok = $this->check($phpcsFile, $class, $class_name_full, $class_name_short, $tokens[$tag + 2]['line']) ? true : $ok;
|
$ok = $this->check($phpcsFile, $class, $class_name_full, $class_name_short, $tag + 2) || $ok;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -11,11 +11,11 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace phpbb\db;
|
require __DIR__ . '/doctum-checkout.conf.php';
|
||||||
|
|
||||||
/**
|
$config['versions'] = Doctum\Version\GitVersionCollection::create(__DIR__ . '/../')
|
||||||
* @deprecated 3.2.0-dev (To be removed 3.3.0) use \phpbb\db\tools\tools instead
|
->add('3.3.x')
|
||||||
*/
|
->add('master')
|
||||||
class tools extends \phpbb\db\tools\tools
|
;
|
||||||
{
|
|
||||||
}
|
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,31 +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')
|
|
||||||
;
|
|
||||||
|
|
||||||
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' => 'enhanced',
|
|
||||||
'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
|
git config phpbb.hooks.commit-msg.fatal true
|
||||||
|
|
||||||
EXIT_STATUS=0
|
EXIT_STATUS=0
|
||||||
for COMMIT_HASH in $(git rev-list --no-merges "$COMMIT_RANGE")
|
|
||||||
|
COMMIT_HASHES=$(git rev-list --no-merges "$COMMIT_RANGE")
|
||||||
|
|
||||||
|
# If any message have been returned instead of commit hashes list
|
||||||
|
# send a non-zero exit status upstream.
|
||||||
|
if ! [[ "$COMMIT_HASHES" =~ ^[0-9a-f]{5,40} ]]
|
||||||
|
then
|
||||||
|
EXIT_STATUS=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for COMMIT_HASH in $COMMIT_HASHES
|
||||||
do
|
do
|
||||||
echo "Inspecting commit message of commit $COMMIT_HASH"
|
echo "Inspecting commit message of commit $COMMIT_HASH"
|
||||||
|
|
||||||
|
@@ -36,6 +36,13 @@ RewriteRule ^(.*)$ app.php [QSA,L]
|
|||||||
#Options +FollowSymLinks
|
#Options +FollowSymLinks
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
|
# Apache content negotation tries to interpret non-existent paths as files if
|
||||||
|
# MultiViews is enabled. This will however cause issues with paths containg
|
||||||
|
# dots, e.g. for the cron tasks
|
||||||
|
<IfModule mod_negotiation.c>
|
||||||
|
Options -MultiViews
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
|
# 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
|
# 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_host.
|
# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
|
||||||
|
6
phpBB/adm/images/phpbb_logo.svg
Normal file
6
phpBB/adm/images/phpbb_logo.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 33 KiB |
@@ -49,7 +49,6 @@ if (!$auth->acl_get('a_'))
|
|||||||
define('IN_ADMIN', true);
|
define('IN_ADMIN', true);
|
||||||
|
|
||||||
// Some oft used variables
|
// Some oft used variables
|
||||||
$safe_mode = (@ini_get('safe_mode') == '1' || strtolower(@ini_get('safe_mode')) === 'on') ? true : false;
|
|
||||||
$file_uploads = (@ini_get('file_uploads') == '1' || strtolower(@ini_get('file_uploads')) === 'on') ? true : false;
|
$file_uploads = (@ini_get('file_uploads') == '1' || strtolower(@ini_get('file_uploads')) === 'on') ? true : false;
|
||||||
$module_id = $request->variable('i', '');
|
$module_id = $request->variable('i', '');
|
||||||
$mode = $request->variable('mode', '');
|
$mode = $request->variable('mode', '');
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<dl>
|
<dl>
|
||||||
<dt><label for="avatar_upload_file">{L_UPLOAD_AVATAR_FILE}{L_COLON}</label></dt>
|
<dt><label for="avatar_upload_file">{L_UPLOAD_AVATAR_FILE}{L_COLON}</label></dt>
|
||||||
<dd><input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_UPLOAD_SIZE}" /><input type="file" name="avatar_upload_file" id="avatar_upload_file" class="inputbox autowidth" /></dd>
|
<dd><input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_UPLOAD_SIZE}" /><input type="file" name="avatar_upload_file" id="avatar_upload_file" class="inputbox autowidth" accept="{{ AVATAR_ALLOWED_EXTENSIONS }}" /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<!-- IF S_UPLOAD_AVATAR_URL -->
|
<!-- IF S_UPLOAD_AVATAR_URL -->
|
||||||
|
@@ -44,7 +44,7 @@
|
|||||||
<!-- INCLUDE acp_posting_buttons.html -->
|
<!-- INCLUDE acp_posting_buttons.html -->
|
||||||
|
|
||||||
<dl class="responsive-columns">
|
<dl class="responsive-columns">
|
||||||
<dt style="width: 90px;" id="color_palette_placeholder" data-orientation="v" data-height="12" data-width="15" data-bbcode="true">
|
<dt style="width: 90px;" id="color_palette_placeholder" data-color-palette="v" data-height="12" data-width="15" data-bbcode="true">
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px;">
|
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px;">
|
||||||
|
@@ -1,40 +1,40 @@
|
|||||||
<!-- INCLUDE overall_header.html -->
|
{% INCLUDE 'overall_header.html' %}
|
||||||
|
|
||||||
<a id="maincontent"></a>
|
<a id="maincontent"></a>
|
||||||
|
|
||||||
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
<h1>{{ lang('EXTENSIONS_ADMIN') }}</h1>
|
||||||
|
|
||||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
<p>{{ lang('EXTENSIONS_EXPLAIN') }}</p>
|
||||||
<p>{L_EXTENSION_DELETE_DATA_EXPLAIN}</p>
|
<p>{{ lang('EXTENSION_DELETE_DATA_EXPLAIN') }}</p>
|
||||||
|
|
||||||
<!-- IF MIGRATOR_ERROR -->
|
{% if MIGRATOR_ERROR %}
|
||||||
<div class="errorbox">
|
|
||||||
<p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
|
|
||||||
<p>{MIGRATOR_ERROR}</p>
|
|
||||||
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
|
||||||
</div>
|
|
||||||
<!-- ELSEIF PRE -->
|
|
||||||
<div class="errorbox">
|
|
||||||
<p>{L_CONFIRM_MESSAGE}</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<form id="acp_extensions" method="post" action="{U_PURGE}">
|
|
||||||
<fieldset class="submit-buttons">
|
|
||||||
<legend>{L_EXTENSION_DELETE_DATA}</legend>
|
|
||||||
<input class="button1" type="submit" name="delete_data" value="{L_EXTENSION_DELETE_DATA}" />
|
|
||||||
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
<!-- ELSEIF S_NEXT_STEP -->
|
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<p>{L_EXTENSION_DELETE_DATA_IN_PROGRESS}</p>
|
<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>
|
</div>
|
||||||
<!-- ELSE -->
|
{% elseif S_PRE_STEP %}
|
||||||
<div class="successbox">
|
<div class="errorbox">
|
||||||
<p>{L_EXTENSION_DELETE_DATA_SUCCESS}</p>
|
<p>{{ CONFIRM_MESSAGE }}</p>
|
||||||
<br />
|
|
||||||
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
<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' %}
|
||||||
|
@@ -1,34 +1,34 @@
|
|||||||
<!-- INCLUDE overall_header.html -->
|
{% INCLUDE 'overall_header.html' %}
|
||||||
|
|
||||||
<a id="maincontent"></a>
|
<a id="maincontent"></a>
|
||||||
|
|
||||||
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
<h1>{{ lang('EXTENSIONS_ADMIN') }}</h1>
|
||||||
|
|
||||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
<p>{{ lang('EXTENSIONS_EXPLAIN') }}</p>
|
||||||
<p>{L_EXTENSION_DISABLE_EXPLAIN}</p>
|
<p>{{ lang('EXTENSION_DISABLE_EXPLAIN') }}</p>
|
||||||
|
|
||||||
<!-- IF PRE -->
|
{% if S_PRE_STEP %}
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<h2>{L_CONFIRM}</h2>
|
<h2>{{ lang('CONFIRM') }}</h2>
|
||||||
<p>{L_CONFIRM_MESSAGE}</p>
|
<p>{{ CONFIRM_MESSAGE }}</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<form id="acp_extensions" method="post" action="{U_DISABLE}">
|
<form id="acp_extensions" method="post" action="{{ U_DISABLE }}">
|
||||||
<fieldset class="submit-buttons">
|
<fieldset class="submit-buttons">
|
||||||
<input class="button1" type="submit" name="disable" value="{L_EXTENSION_DISABLE}" />
|
<input class="button1" type="submit" name="disable" value="{{ lang('EXTENSION_DISABLE') }}">
|
||||||
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
<input class="button2" type="submit" name="cancel" value="{{ lang('CANCEL') }}">
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
<!-- ELSEIF S_NEXT_STEP -->
|
{% elseif S_NEXT_STEP %}
|
||||||
<div class="successbox notice">
|
<div class="successbox notice">
|
||||||
<p>{L_EXTENSION_DISABLE_IN_PROGRESS}</p>
|
<p>{{ lang('EXTENSION_DISABLE_IN_PROGRESS') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ELSE -->
|
{% else %}
|
||||||
<div class="successbox">
|
<div class="successbox">
|
||||||
<p>{L_EXTENSION_DISABLE_SUCCESS}</p>
|
<p>{{ lang('EXTENSION_DISABLE_SUCCESS') }}</p>
|
||||||
<br />
|
<br>
|
||||||
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
{% endif %}
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
{% INCLUDE 'overall_footer.html' %}
|
||||||
|
@@ -1,40 +1,40 @@
|
|||||||
<!-- INCLUDE overall_header.html -->
|
{% INCLUDE 'overall_header.html' %}
|
||||||
|
|
||||||
<a id="maincontent"></a>
|
<a id="maincontent"></a>
|
||||||
|
|
||||||
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
<h1>{{ lang('EXTENSIONS_ADMIN') }}</h1>
|
||||||
|
|
||||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
<p>{{ lang('EXTENSIONS_EXPLAIN') }}</p>
|
||||||
<p>{L_EXTENSION_ENABLE_EXPLAIN}</p>
|
<p>{{ lang('EXTENSION_ENABLE_EXPLAIN') }}</p>
|
||||||
|
|
||||||
<!-- IF MIGRATOR_ERROR -->
|
{% if MIGRATOR_ERROR %}
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
|
<p><strong>{{ lang('MIGRATION_EXCEPTION_ERROR') }}</strong></p>
|
||||||
<p>{MIGRATOR_ERROR}</p>
|
<p>{{ MIGRATOR_ERROR }}</p>
|
||||||
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ELSEIF PRE -->
|
{% elseif S_PRE_STEP %}
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<h2>{L_CONFIRM}</h2>
|
<h2>{{ lang('CONFIRM') }}</h2>
|
||||||
<p>{L_CONFIRM_MESSAGE}</p>
|
<p>{{ CONFIRM_MESSAGE }}</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<form id="acp_extensions" method="post" action="{U_ENABLE}">
|
<form id="acp_extensions" method="post" action="{{ U_ENABLE }}">
|
||||||
<fieldset class="submit-buttons">
|
<fieldset class="submit-buttons">
|
||||||
<input class="button1" type="submit" name="enable" value="{L_EXTENSION_ENABLE}" />
|
<input class="button1" type="submit" name="enable" value="{{ lang('EXTENSION_ENABLE') }}">
|
||||||
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
<input class="button2" type="submit" name="cancel" value="{{ lang('CANCEL') }}">
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
<!-- ELSEIF S_NEXT_STEP -->
|
{% elseif S_NEXT_STEP %}
|
||||||
<div class="successbox notice">
|
<div class="successbox notice">
|
||||||
<p>{L_EXTENSION_ENABLE_IN_PROGRESS}</p>
|
<p>{{ lang('EXTENSION_ENABLE_IN_PROGRESS') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ELSE -->
|
{% else %}
|
||||||
<div class="successbox">
|
<div class="successbox">
|
||||||
<p>{L_EXTENSION_ENABLE_SUCCESS}</p>
|
<p>{{ lang('EXTENSION_ENABLE_SUCCESS') }}</p>
|
||||||
<br />
|
<br>
|
||||||
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
{% endif %}
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
{% INCLUDE 'overall_footer.html' %}
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
||||||
|
|
||||||
<fieldset class="quick">
|
<fieldset class="quick">
|
||||||
<span class="small"><a href="https://www.phpbb.com/go/customise/extensions/3.2" target="_blank">{L_BROWSE_EXTENSIONS_DATABASE}</a> • <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE_ALL}</a> • <a href="javascript:phpbb.toggleDisplay('version_check_settings');">{L_SETTINGS}</a></span>
|
<span class="small"><a href="https://www.phpbb.com/go/customise/extensions/3.3" target="_blank">{L_BROWSE_EXTENSIONS_DATABASE}</a> • <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE_ALL}</a> • <a href="javascript:phpbb.toggleDisplay('version_check_settings');">{L_SETTINGS}</a></span>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<form id="version_check_settings" method="post" action="{U_ACTION}" style="display:none">
|
<form id="version_check_settings" method="post" action="{U_ACTION}" style="display:none">
|
||||||
|
@@ -210,6 +210,11 @@
|
|||||||
<dd><label><input type="radio" class="radio" name="display_subforum_list" value="1"<!-- IF S_DISPLAY_SUBFORUM_LIST --> id="display_subforum_list" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
<dd><label><input type="radio" class="radio" name="display_subforum_list" value="1"<!-- IF S_DISPLAY_SUBFORUM_LIST --> id="display_subforum_list" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||||
<label><input type="radio" class="radio" name="display_subforum_list" value="0"<!-- IF not S_DISPLAY_SUBFORUM_LIST --> id="display_subforum_list" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
<label><input type="radio" class="radio" name="display_subforum_list" value="0"<!-- IF not S_DISPLAY_SUBFORUM_LIST --> id="display_subforum_list" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><label for="display_subforum_limit">{L_LIMIT_SUBFORUMS}{L_COLON}</label><br /><span>{L_LIMIT_SUBFORUMS_EXPLAIN}</span></dt>
|
||||||
|
<dd><label><input type="radio" class="radio" name="display_subforum_limit" value="1"<!-- IF S_DISPLAY_SUBFORUM_LIMIT --> id="display_subforum_limit" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||||
|
<label><input type="radio" class="radio" name="display_subforum_limit" value="0"<!-- IF not S_DISPLAY_SUBFORUM_LIMIT --> id="display_subforum_limit" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||||
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="display_on_index">{L_LIST_INDEX}{L_COLON}</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
|
<dt><label for="display_on_index">{L_LIST_INDEX}{L_COLON}</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
|
||||||
<dd><label><input type="radio" class="radio" name="display_on_index" value="1"<!-- IF S_DISPLAY_ON_INDEX --> id="display_on_index" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
<dd><label><input type="radio" class="radio" name="display_on_index" value="1"<!-- IF S_DISPLAY_ON_INDEX --> id="display_on_index" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||||
|
@@ -100,7 +100,7 @@
|
|||||||
<input name="group_colour" type="text" id="group_colour" value="{GROUP_COLOUR}" size="6" maxlength="6" />
|
<input name="group_colour" type="text" id="group_colour" value="{GROUP_COLOUR}" size="6" maxlength="6" />
|
||||||
<!-- IF GROUP_COLOUR --> <span style="background-color: #{GROUP_COLOUR}"> </span><!-- ENDIF --> <span>
|
<!-- IF GROUP_COLOUR --> <span style="background-color: #{GROUP_COLOUR}"> </span><!-- ENDIF --> <span>
|
||||||
[ <a href="#" id="color_palette_toggle">{L_COLOUR_SWATCH}</a> ]</span>
|
[ <a href="#" id="color_palette_toggle">{L_COLOUR_SWATCH}</a> ]</span>
|
||||||
<div id="color_palette_placeholder" style="display: none;" data-orientation="h" data-height="12" data-width="15" data-target="#group_colour"></div>
|
<div id="color_palette_placeholder" style="display: none;" data-color-palette="h" data-height="12" data-width="15" data-target="#group_colour"></div>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
|
@@ -38,11 +38,13 @@
|
|||||||
<dd>{L_SEND_STATISTICS_LONG}</dd>
|
<dd>{L_SEND_STATISTICS_LONG}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
<script>
|
||||||
|
var statsData = {{ S_STATS_DATA }};
|
||||||
|
</script>
|
||||||
<!-- EVENT acp_help_phpbb_stats_after -->
|
<!-- EVENT acp_help_phpbb_stats_after -->
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||||
<p class="submit-buttons">
|
<p class="submit-buttons">
|
||||||
<input type="hidden" name="systemdata" value="{RAW_DATA}" />
|
|
||||||
<input type="hidden" name="help_send_statistics_time" value="{COLLECT_STATS_TIME}" />
|
<input type="hidden" name="help_send_statistics_time" value="{COLLECT_STATS_TIME}" />
|
||||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||||
</p>
|
</p>
|
||||||
@@ -54,7 +56,11 @@
|
|||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||||
<p class="submit-buttons">
|
<p class="submit-buttons">
|
||||||
<input type="hidden" name="systemdata" value="{RAW_DATA}" />
|
{% for providers in providers %}
|
||||||
|
{% for values in providers.values %}
|
||||||
|
<input type="hidden" name="{{ providers.NAME }}[{{ values.KEY }}]" value="{{ values.VALUE }}" />
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
<input class="button1" type="submit" id="submit_stats" name="submit" value="{L_SEND_STATISTICS}" />
|
<input class="button1" type="submit" id="submit_stats" name="submit" value="{L_SEND_STATISTICS}" />
|
||||||
</p>
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
@@ -69,7 +69,7 @@
|
|||||||
<p>{L_ACP_LANGUAGE_PACKS_EXPLAIN}</p>
|
<p>{L_ACP_LANGUAGE_PACKS_EXPLAIN}</p>
|
||||||
|
|
||||||
<fieldset class="quick">
|
<fieldset class="quick">
|
||||||
<span class="small"><a href="https://www.phpbb.com/go/customise/language-packs/3.2" target="_blank">{L_BROWSE_LANGUAGE_PACKS_DATABASE}</a></span>
|
<span class="small"><a href="https://www.phpbb.com/go/customise/language-packs/3.3" target="_blank">{L_BROWSE_LANGUAGE_PACKS_DATABASE}</a></span>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<table class="table1 zebra-table">
|
<table class="table1 zebra-table">
|
||||||
|
@@ -78,6 +78,13 @@
|
|||||||
<p>{L_ERROR_MBSTRING_HTTP_OUTPUT_EXPLAIN}</p>
|
<p>{L_ERROR_MBSTRING_HTTP_OUTPUT_EXPLAIN}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
|
{% if S_DEFAULT_CHARSET_FAIL %}
|
||||||
|
<div class="errorbox">
|
||||||
|
<h3>{{ lang('ERROR_DEFAULT_CHARSET') }}</h3>
|
||||||
|
<p>{{ lang('ERROR_DEFAULT_CHARSET_EXPLAIN') }}</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<!-- IF S_WRITABLE_CONFIG -->
|
<!-- IF S_WRITABLE_CONFIG -->
|
||||||
@@ -94,89 +101,116 @@
|
|||||||
|
|
||||||
<!-- EVENT acp_main_notice_after -->
|
<!-- EVENT acp_main_notice_after -->
|
||||||
|
|
||||||
<table class="table1 two-columns no-header" data-no-responsive-header="true">
|
<div class="lside">
|
||||||
<caption>{L_FORUM_STATS}</caption>
|
<table class="table2 zebra-table no-header" data-no-responsive-header="true">
|
||||||
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
|
<thead>
|
||||||
<thead>
|
<tr>
|
||||||
<tr>
|
<th>{{ lang('STATISTIC') }}</th>
|
||||||
<th>{L_STATISTIC}</th>
|
<th>{{ lang('VALUE') }}</th>
|
||||||
<th>{L_VALUE}</th>
|
</tr>
|
||||||
<th>{L_STATISTIC}</th>
|
</thead>
|
||||||
<th>{L_VALUE}</th>
|
|
||||||
</tr>
|
<tbody>
|
||||||
</thead>
|
<tr>
|
||||||
<tbody>
|
<td class="tabled">{{ lang('BOARD_STARTED') ~ lang('COLON') }}</td>
|
||||||
<tr>
|
<td class="tabled"><strong>{{ START_DATE }}</strong></td>
|
||||||
<td>{L_NUMBER_POSTS}{L_COLON} </td>
|
</tr>
|
||||||
<td><strong>{TOTAL_POSTS}</strong></td>
|
<tr>
|
||||||
<td>{L_POSTS_PER_DAY}{L_COLON} </td>
|
<td class="tabled">{{ lang('AVATAR_DIR_SIZE') ~ lang('COLON') }}</td>
|
||||||
<td><strong>{POSTS_PER_DAY}</strong></td>
|
<td class="tabled"><strong>{{ AVATAR_DIR_SIZE }}</strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{L_NUMBER_TOPICS}{L_COLON} </td>
|
<td class="tabled">{{ lang('DATABASE_SIZE') ~ lang('COLON') }}</td>
|
||||||
<td><strong>{TOTAL_TOPICS}</strong></td>
|
<td class="tabled"><strong>{{ DBSIZE }}</strong></td>
|
||||||
<td>{L_TOPICS_PER_DAY}{L_COLON} </td>
|
</tr>
|
||||||
<td><strong>{TOPICS_PER_DAY}</strong></td>
|
<tr>
|
||||||
</tr>
|
<td class="tabled">{{ lang('UPLOAD_DIR_SIZE') ~ lang('COLON') }}</td>
|
||||||
<tr>
|
<td class="tabled"><strong>{{ UPLOAD_DIR_SIZE }}</strong></td>
|
||||||
<td>{L_NUMBER_USERS}{L_COLON} </td>
|
</tr>
|
||||||
<td><strong>{TOTAL_USERS}</strong></td>
|
<tr>
|
||||||
<td>{L_USERS_PER_DAY}{L_COLON} </td>
|
<td class="tabled">{{ lang('DATABASE_SERVER_INFO') ~ lang('COLON') }}</td>
|
||||||
<td><strong>{USERS_PER_DAY}</strong></td>
|
<td class="tabled"><strong>{{ DATABASE_INFO }}</strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{L_NUMBER_FILES}{L_COLON} </td>
|
<td class="tabled">{{ lang('GZIP_COMPRESSION') ~ lang('COLON') }}</td>
|
||||||
<td><strong>{TOTAL_FILES}</strong></td>
|
<td class="tabled"><strong>{{ GZIP_COMPRESSION }}</strong></td>
|
||||||
<td>{L_FILES_PER_DAY}{L_COLON} </td>
|
</tr>
|
||||||
<td><strong>{FILES_PER_DAY}</strong></td>
|
<tr>
|
||||||
</tr>
|
<td class="tabled">{{ lang('PHP_VERSION') ~ lang('COLON') }}</td>
|
||||||
<tr>
|
<td class="tabled"><strong>{{ PHP_VERSION_INFO }}</strong></td>
|
||||||
<td>{L_BOARD_STARTED}{L_COLON} </td>
|
</tr>
|
||||||
<td><strong>{START_DATE}</strong></td>
|
<tr>
|
||||||
<td>{L_AVATAR_DIR_SIZE}{L_COLON} </td>
|
{% if S_TOTAL_ORPHAN %}
|
||||||
<td><strong>{AVATAR_DIR_SIZE}</strong></td>
|
<td class="tabled">{{ lang('NUMBER_ORPHAN') ~ lang('COLON') }}</td>
|
||||||
</tr>
|
<td class="tabled">
|
||||||
<tr>
|
{% if TOTAL_ORPHAN > 0 %}
|
||||||
<td>{L_DATABASE_SIZE}{L_COLON} </td>
|
<a href="{{ U_ATTACH_ORPHAN }}" title="{{ lang('MORE_INFORMATION') }}"><strong>{{ TOTAL_ORPHAN }}</strong></a>
|
||||||
<td><strong>{DBSIZE}</strong></td>
|
{% else %}
|
||||||
<td>{L_UPLOAD_DIR_SIZE}{L_COLON} </td>
|
<strong>{{ TOTAL_ORPHAN }}</strong>
|
||||||
<td><strong>{UPLOAD_DIR_SIZE}</strong></td>
|
{% endif %}
|
||||||
</tr>
|
</td>
|
||||||
<tr>
|
{% else %}
|
||||||
<td>{L_DATABASE_SERVER_INFO}{L_COLON} </td>
|
{% endif %}
|
||||||
<td><strong>{DATABASE_INFO}</strong></td>
|
</tr>
|
||||||
<td>{L_GZIP_COMPRESSION}{L_COLON} </td>
|
{% if S_VERSIONCHECK %}
|
||||||
<td><strong>{GZIP_COMPRESSION}</strong></td>
|
<tr>
|
||||||
</tr>
|
<td class="tabled">{{ lang('BOARD_VERSION') ~ lang('COLON') }}</td>
|
||||||
<tr>
|
<td class="tabled">
|
||||||
<td>{L_PHP_VERSION}{L_COLON} </td>
|
<strong><a href="{{ U_VERSIONCHECK }}" {% if S_VERSION_UP_TO_DATE %}style="color: #228822;" {% elseif not S_VERSIONCHECK_FAIL %}style="color: #BC2A4D;" {% endif %}title="{{ lang('MORE_INFORMATION') }}">{{ BOARD_VERSION }}</a></strong> [ <a href="{{ U_VERSIONCHECK_FORCE }}">{{ lang('VERSIONCHECK_FORCE_UPDATE') }}</a> ]
|
||||||
<td><strong>{PHP_VERSION_INFO}</strong></td>
|
</td>
|
||||||
<!-- IF S_TOTAL_ORPHAN -->
|
</tr>
|
||||||
<td>{L_NUMBER_ORPHAN}{L_COLON} </td>
|
{% endif %}
|
||||||
<td>
|
</tbody>
|
||||||
<!-- IF TOTAL_ORPHAN > 0 -->
|
</table>
|
||||||
<a href="{U_ATTACH_ORPHAN}" title="{L_MORE_INFORMATION}"><strong>{TOTAL_ORPHAN}</strong></a>
|
|
||||||
<!-- ELSE -->
|
<table class="table2 zebra-table no-header" data-no-responsive-header="true">
|
||||||
<strong>{TOTAL_ORPHAN}</strong>
|
<thead>
|
||||||
<!-- ENDIF -->
|
<tr>
|
||||||
</td>
|
<th>{{ lang('STATISTIC') }}</th>
|
||||||
<!-- ELSE -->
|
<th>{{ lang('VALUE') }}</th>
|
||||||
<td> </td>
|
</tr>
|
||||||
<td> </td>
|
</thead>
|
||||||
<!-- ENDIF -->
|
|
||||||
</tr>
|
<tbody>
|
||||||
<!-- IF S_VERSIONCHECK -->
|
<tr>
|
||||||
<tr>
|
<td class="tabled">{{ lang('NUMBER_POSTS') ~ lang('COLON') }}</td>
|
||||||
<td>{L_BOARD_VERSION}{L_COLON} </td>
|
<td class="tabled"><strong>{{ TOTAL_POSTS }}</strong></td>
|
||||||
<td>
|
</tr>
|
||||||
<strong><a href="{U_VERSIONCHECK}" <!-- IF S_VERSION_UP_TO_DATE -->style="color: #228822;" <!-- ELSEIF not S_VERSIONCHECK_FAIL -->style="color: #BC2A4D;" <!-- ENDIF -->title="{L_MORE_INFORMATION}">{BOARD_VERSION}</a></strong> [ <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> ]
|
<tr>
|
||||||
</td>
|
<td class="tabled">{{ lang('POSTS_PER_DAY') ~ lang('COLON') }}</td>
|
||||||
<td> </td>
|
<td class="tabled"><strong>{{ POSTS_PER_DAY }}</strong></td>
|
||||||
<td> </td>
|
</tr>
|
||||||
</tr>
|
<tr>
|
||||||
<!-- ENDIF -->
|
<td class="tabled">{{ lang('NUMBER_TOPICS') ~ lang('COLON') }}</td>
|
||||||
</tbody>
|
<td class="tabled"><strong>{{ TOTAL_TOPICS }}</strong></td>
|
||||||
</table>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tabled">{{ lang('TOPICS_PER_DAY') ~ lang('COLON') }}</td>
|
||||||
|
<td class="tabled"><strong>{{ TOPICS_PER_DAY }}</strong></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tabled">{{ lang('NUMBER_USERS') ~ lang('COLON') }}</td>
|
||||||
|
<td class="tabled"><strong>{{ TOTAL_USERS }}</strong></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tabled">{{ lang('USERS_PER_DAY') ~ lang('COLON') }}</td>
|
||||||
|
<td class="tabled"><strong>{{ USERS_PER_DAY }}</strong></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tabled">{{ lang('NUMBER_FILES') ~ lang('COLON') }}</td>
|
||||||
|
<td class="tabled"><strong>{{ TOTAL_FILES }}</strong></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tabled">{{ lang('FILES_PER_DAY') ~ lang('COLON') }}</td>
|
||||||
|
<td class="tabled"><strong>{{ FILES_PER_DAY }}</strong></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tabled"> </td>
|
||||||
|
<td class="tabled"> </td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- IF S_ACTION_OPTIONS -->
|
<!-- IF S_ACTION_OPTIONS -->
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
@@ -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>
|
<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>
|
<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>
|
||||||
|
<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>
|
<dl>
|
||||||
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}{L_COLON}</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
|
<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>
|
<dd><input id="search_store_results" type="number" min="0" max="999999" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
|
||||||
@@ -95,7 +102,7 @@
|
|||||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||||
<p class="submit-buttons">
|
<p class="submit-buttons">
|
||||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
<input class="button2" type="submit" id="cancel" name="cancel" value="{L_CANCEL}" />
|
||||||
</p>
|
</p>
|
||||||
{S_FORM_TOKEN}
|
{S_FORM_TOKEN}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
<!-- IF L_EXPLAIN --><p>{L_EXPLAIN}</p><!-- ENDIF -->
|
<!-- IF L_EXPLAIN --><p>{L_EXPLAIN}</p><!-- ENDIF -->
|
||||||
|
|
||||||
<fieldset class="quick">
|
<fieldset class="quick">
|
||||||
<span class="small"><a href="https://www.phpbb.com/go/customise/styles/3.2" target="_blank">{L_BROWSE_STYLES_DATABASE}</a></span>
|
<span class="small"><a href="https://www.phpbb.com/go/customise/styles/3.3" target="_blank">{L_BROWSE_STYLES_DATABASE}</a></span>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<form id="acp_styles" method="post" action="{U_ACTION}">
|
<form id="acp_styles" method="post" action="{U_ACTION}">
|
||||||
@@ -96,6 +96,7 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_STYLE_NAME}</th>
|
<th>{L_STYLE_NAME}</th>
|
||||||
|
<th width="10%" style="white-space: nowrap; text-align: center;">{{ lang('STYLE_VERSION') }}</th>
|
||||||
<th width="10%" style="white-space: nowrap; text-align: center;">{L_STYLE_PHPBB_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 -->
|
<!-- 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>
|
<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>
|
<span class="style-path"><br />{L_STYLE_PATH}{L_COLON} {styles_list.STYLE_PATH_FULL}</span>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
</td>
|
</td>
|
||||||
|
<td class="{$ROW_CLASS} users">{{ styles_list.STYLE_VERSION }}</td>
|
||||||
<td class="{$ROW_CLASS} users">{styles_list.STYLE_PHPBB_VERSION}</td>
|
<td class="{$ROW_CLASS} users">{styles_list.STYLE_PHPBB_VERSION}</td>
|
||||||
<!-- IF not STYLES_LIST_HIDE_COUNT -->
|
<!-- IF not STYLES_LIST_HIDE_COUNT -->
|
||||||
<td class="{$ROW_CLASS} users">{styles_list.USERS}</td>
|
<td class="{$ROW_CLASS} users">{styles_list.USERS}</td>
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
<!-- INCLUDE acp_posting_buttons.html -->
|
<!-- INCLUDE acp_posting_buttons.html -->
|
||||||
|
|
||||||
<dl class="responsive-columns">
|
<dl class="responsive-columns">
|
||||||
<dt style="width: 90px;" id="color_palette_placeholder" data-orientation="v" data-height="12" data-width="15" data-bbcode="true">
|
<dt style="width: 90px;" id="color_palette_placeholder" data-color-palette="v" data-height="12" data-width="15" data-bbcode="true">
|
||||||
</dt>
|
</dt>
|
||||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px;"><textarea name="signature" rows="10" cols="60" style="width: 95%;" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();" data-bbcode="true">{SIGNATURE}</textarea></dd>
|
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px;"><textarea name="signature" rows="10" cols="60" style="width: 95%;" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();" data-bbcode="true">{SIGNATURE}</textarea></dd>
|
||||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px; margin-top: 5px;">
|
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px; margin-top: 5px;">
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
/* phpBB 3.2 Admin Style Sheet
|
/* phpBB 3.3 Admin Style Sheet
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
Original author: subBlue ( http://www.subblue.com/ )
|
Original author: subBlue ( http://www.subblue.com/ )
|
||||||
Copyright (c) phpBB Limited <https://www.phpbb.com>
|
Copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||||
@@ -191,7 +191,7 @@ li {
|
|||||||
|
|
||||||
#page-header {
|
#page-header {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
background: url("../images/phpbb_logo.png") top left no-repeat;
|
background: url("../images/phpbb_logo.svg") top left no-repeat;
|
||||||
height: 54px;
|
height: 54px;
|
||||||
font-size: 0.85em;
|
font-size: 0.85em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
@@ -199,7 +199,7 @@ li {
|
|||||||
|
|
||||||
.rtl #page-header {
|
.rtl #page-header {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
background: url("../images/phpbb_logo.png") top right no-repeat;
|
background: url("../images/phpbb_logo.svg") top right no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
#page-header h1 {
|
#page-header h1 {
|
||||||
@@ -723,9 +723,25 @@ td {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.table1 {
|
.table1 {
|
||||||
border-collapse: separate;
|
|
||||||
border-spacing: 1px;
|
|
||||||
clear: both;
|
clear: both;
|
||||||
|
border-spacing: 1px;
|
||||||
|
border-collapse: separate;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table2 {
|
||||||
|
display: inline-block;
|
||||||
|
border-spacing: 1px;
|
||||||
|
border-collapse: separate;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lside {
|
||||||
|
display: flex;
|
||||||
|
align-items: stretch;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabled {
|
||||||
|
width: 1%;
|
||||||
}
|
}
|
||||||
|
|
||||||
dt#color_palette_placeholder table {
|
dt#color_palette_placeholder table {
|
||||||
@@ -2628,7 +2644,7 @@ fieldset.permissions .padding {
|
|||||||
.send-stats-tile h2 {
|
.send-stats-tile h2 {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding-bottom: 1em;
|
padding-bottom: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.send-stats-tile i {
|
.send-stats-tile i {
|
||||||
|
@@ -169,7 +169,7 @@ function parse_document(container)
|
|||||||
ul = $this.children(),
|
ul = $this.children(),
|
||||||
tabs = ul.children().not('[data-skip-responsive]'),
|
tabs = ul.children().not('[data-skip-responsive]'),
|
||||||
links = tabs.children('a'),
|
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'),
|
menu = item.find('.dropdown-contents'),
|
||||||
maxHeight = 0,
|
maxHeight = 0,
|
||||||
lastWidth = false,
|
lastWidth = false,
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
/* global phpbb */
|
/* global phpbb, statsData */
|
||||||
|
|
||||||
(function($) { // Avoid conflicts with other libraries
|
(function($) { // Avoid conflicts with other libraries
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ phpbb.prepareSendStats = function () {
|
|||||||
var $sendStatisticsSuccess = $('<input />', {
|
var $sendStatisticsSuccess = $('<input />', {
|
||||||
type: 'hidden',
|
type: 'hidden',
|
||||||
name: 'send_statistics_response',
|
name: 'send_statistics_response',
|
||||||
value: res
|
value: JSON.stringify(res)
|
||||||
});
|
});
|
||||||
$sendStatisticsSuccess.appendTo('p.submit-buttons');
|
$sendStatisticsSuccess.appendTo('p.submit-buttons');
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ phpbb.prepareSendStats = function () {
|
|||||||
$.ajax({
|
$.ajax({
|
||||||
url: $this.attr('data-ajax-action').replace('&', '&'),
|
url: $this.attr('data-ajax-action').replace('&', '&'),
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: 'systemdata=' + encodeURIComponent($this.find('input[name=systemdata]').val()),
|
data: statsData,
|
||||||
success: returnHandler,
|
success: returnHandler,
|
||||||
error: errorHandler,
|
error: errorHandler,
|
||||||
cache: false
|
cache: false
|
||||||
|
@@ -5,8 +5,9 @@
|
|||||||
<div>{L_RECAPTCHA_NOSCRIPT}</div>
|
<div>{L_RECAPTCHA_NOSCRIPT}</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
|
||||||
|
{L_RECAPTCHA_INVISIBLE}
|
||||||
<script src="{RECAPTCHA_SERVER}.js?hl={LA_RECAPTCHA_LANG}" async defer></script>
|
<script src="{RECAPTCHA_SERVER}.js?hl={LA_RECAPTCHA_LANG}" async defer></script>
|
||||||
<div class="g-recaptcha" data-sitekey="{RECAPTCHA_PUBKEY}"></div>
|
<div class="g-recaptcha" data-sitekey="{RECAPTCHA_PUBKEY}" data-size="invisible"></div>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<!-- ELSE -->
|
<!-- ELSE -->
|
||||||
|
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>
|
||||||
|
|
||||||
<script src="{T_JQUERY_LINK}"></script>
|
<script src="{T_JQUERY_LINK}"></script>
|
||||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery.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>
|
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||||
<!-- INCLUDEJS admin.js -->
|
<!-- INCLUDEJS admin.js -->
|
||||||
{$SCRIPTS}
|
{$SCRIPTS}
|
||||||
|
@@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="{T_JQUERY_LINK}"></script>
|
<script src="{T_JQUERY_LINK}"></script>
|
||||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery.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>
|
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||||
<!-- INCLUDEJS ajax.js -->
|
<!-- INCLUDEJS ajax.js -->
|
||||||
<!-- INCLUDEJS admin.js -->
|
<!-- INCLUDEJS admin.js -->
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<h1>{L_ACP_FORUM_PERMISSIONS_COPY}</h1>
|
<h1>{L_ACP_FORUM_PERMISSIONS_COPY}</h1>
|
||||||
|
|
||||||
{L_ACP_FORUM_PERMISSIONS_COPY_EXPLAIN}
|
<p>{L_ACP_FORUM_PERMISSIONS_COPY_EXPLAIN}</p>
|
||||||
|
|
||||||
<form id="forum_perm_copy" method="post" action="{U_ACTION}">
|
<form id="forum_perm_copy" method="post" action="{U_ACTION}">
|
||||||
|
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="{T_JQUERY_LINK}"></script>
|
<script src="{T_JQUERY_LINK}"></script>
|
||||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery.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>
|
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||||
|
|
||||||
<!-- EVENT acp_simple_footer_after -->
|
<!-- EVENT acp_simple_footer_after -->
|
||||||
|
12
phpBB/assets/cookieconsent/cookieconsent.min.css
vendored
12
phpBB/assets/cookieconsent/cookieconsent.min.css
vendored
@@ -1,6 +1,6 @@
|
|||||||
.cc-window{opacity:1;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{transition:transform 1s ease}.cc-animate.cc-revoke.cc-top{transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-bottom,.cc-animate.cc-revoke.cc-active.cc-top,.cc-revoke:hover{transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;transition:max-height 1s}
|
.cc-window{opacity:1;-webkit-transition:opacity 1s ease;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{-webkit-transition:transform 1s ease;-webkit-transition:-webkit-transform 1s ease;transition:-webkit-transform 1s ease;transition:transform 1s ease;transition:transform 1s ease,-webkit-transform 1s ease}.cc-animate.cc-revoke.cc-top{-webkit-transform:translateY(-2em);transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{-webkit-transform:translateY(2em);transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-top{-webkit-transform:translateY(0);transform:translateY(0)}.cc-animate.cc-revoke.cc-active.cc-bottom{-webkit-transform:translateY(0);transform:translateY(0)}.cc-revoke:hover{-webkit-transform:translateY(0);transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;-webkit-transition:max-height 1s;transition:max-height 1s}
|
||||||
.cc-link,.cc-revoke:hover{text-decoration:underline}.cc-revoke,.cc-window{position:fixed;overflow:hidden;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-banner .cc-btn:last-child{min-width:140px}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1}
|
.cc-revoke,.cc-window{position:fixed;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-revoke:hover{text-decoration:underline}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em;text-decoration:underline}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1}
|
||||||
.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-ms-flex:1;flex:1}.cc-window.cc-banner{-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{-ms-flex:1;flex:1}.cc-compliance{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-compliance>.cc-btn{-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em}
|
.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-webkit-box-flex:1;-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em}
|
||||||
@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-ms-flex:1;flex:1}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-ms-flex-align:unset;align-items:unset}}
|
@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-webkit-box-align:unset;-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}}
|
||||||
.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block}
|
.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-webkit-box-flex:0;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block}
|
||||||
.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em 2em 1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}
|
.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em;margin-bottom:1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}
|
File diff suppressed because one or more lines are too long
@@ -11,7 +11,9 @@ phpbb.alertTime = 100;
|
|||||||
var keymap = {
|
var keymap = {
|
||||||
TAB: 9,
|
TAB: 9,
|
||||||
ENTER: 13,
|
ENTER: 13,
|
||||||
ESC: 27
|
ESC: 27,
|
||||||
|
ARROW_UP: 38,
|
||||||
|
ARROW_DOWN: 40
|
||||||
};
|
};
|
||||||
|
|
||||||
var $dark = $('#darkenwrapper');
|
var $dark = $('#darkenwrapper');
|
||||||
@@ -561,7 +563,7 @@ phpbb.search.setValue = function($input, value, multiline) {
|
|||||||
phpbb.search.setValueOnClick = function($input, value, $row, $container) {
|
phpbb.search.setValueOnClick = function($input, value, $row, $container) {
|
||||||
$row.click(function() {
|
$row.click(function() {
|
||||||
phpbb.search.setValue($input, value.result, $input.attr('data-multiline'));
|
phpbb.search.setValue($input, value.result, $input.attr('data-multiline'));
|
||||||
$container.hide();
|
phpbb.search.closeResults($input, $container);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -575,7 +577,7 @@ phpbb.search.setValueOnClick = function($input, value, $row, $container) {
|
|||||||
* @param {object} event Onkeyup event object.
|
* @param {object} event Onkeyup event object.
|
||||||
* @param {function} sendRequest Function to execute AJAX request.
|
* @param {function} sendRequest Function to execute AJAX request.
|
||||||
*
|
*
|
||||||
* @returns {bool} Returns false.
|
* @returns {boolean} Returns false.
|
||||||
*/
|
*/
|
||||||
phpbb.search.filter = function(data, event, sendRequest) {
|
phpbb.search.filter = function(data, event, sendRequest) {
|
||||||
var $this = $(this),
|
var $this = $(this),
|
||||||
@@ -584,9 +586,16 @@ phpbb.search.filter = function(data, event, sendRequest) {
|
|||||||
searchID = $this.attr('data-results'),
|
searchID = $this.attr('data-results'),
|
||||||
keyword = phpbb.search.getKeyword($this, data[dataName], $this.attr('data-multiline')),
|
keyword = phpbb.search.getKeyword($this, data[dataName], $this.attr('data-multiline')),
|
||||||
cache = phpbb.search.cache.get(searchID),
|
cache = phpbb.search.cache.get(searchID),
|
||||||
|
key = event.keyCode || event.which,
|
||||||
proceed = true;
|
proceed = true;
|
||||||
data[dataName] = keyword;
|
data[dataName] = keyword;
|
||||||
|
|
||||||
|
// No need to search if enter was pressed
|
||||||
|
// for selecting a value from the results.
|
||||||
|
if (key === keymap.ENTER) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (cache.timeout) {
|
if (cache.timeout) {
|
||||||
clearTimeout(cache.timeout);
|
clearTimeout(cache.timeout);
|
||||||
}
|
}
|
||||||
@@ -697,22 +706,108 @@ phpbb.search.showResults = function(results, $input, $container, callback) {
|
|||||||
row.appendTo($resultContainer).show();
|
row.appendTo($resultContainer).show();
|
||||||
});
|
});
|
||||||
$container.show();
|
$container.show();
|
||||||
|
|
||||||
|
phpbb.search.navigateResults($input, $container, $resultContainer);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear search results.
|
* Clear search results.
|
||||||
*
|
*
|
||||||
* @param {jQuery} $container Search results container.
|
* @param {jQuery} $container Search results container.
|
||||||
*/
|
*/
|
||||||
phpbb.search.clearResults = function($container) {
|
phpbb.search.clearResults = function($container) {
|
||||||
$container.children(':not(.search-result-tpl)').remove();
|
$container.children(':not(.search-result-tpl)').remove();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Close search results.
|
||||||
|
*
|
||||||
|
* @param {jQuery} $input Search input|textarea.
|
||||||
|
* @param {jQuery} $container Search results container.
|
||||||
|
*/
|
||||||
|
phpbb.search.closeResults = function($input, $container) {
|
||||||
|
$input.off('.phpbb.search');
|
||||||
|
$container.hide();
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Navigate search results.
|
||||||
|
*
|
||||||
|
* @param {jQuery} $input Search input|textarea.
|
||||||
|
* @param {jQuery} $container Search results container.
|
||||||
|
* @param {jQuery} $resultContainer Search results list container.
|
||||||
|
*/
|
||||||
|
phpbb.search.navigateResults = function($input, $container, $resultContainer) {
|
||||||
|
// Add a namespace to the event (.phpbb.search),
|
||||||
|
// so it can be unbound specifically later on.
|
||||||
|
// Rebind it, to ensure the event is 'dynamic'.
|
||||||
|
$input.off('.phpbb.search');
|
||||||
|
$input.on('keydown.phpbb.search', function(event) {
|
||||||
|
var key = event.keyCode || event.which,
|
||||||
|
$active = $resultContainer.children('.active');
|
||||||
|
|
||||||
|
switch (key) {
|
||||||
|
// Close the results
|
||||||
|
case keymap.ESC:
|
||||||
|
phpbb.search.closeResults($input, $container);
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Set the value for the selected result
|
||||||
|
case keymap.ENTER:
|
||||||
|
if ($active.length) {
|
||||||
|
var value = $active.find('.search-result > span').text();
|
||||||
|
|
||||||
|
phpbb.search.setValue($input, value, $input.attr('data-multiline'));
|
||||||
|
}
|
||||||
|
|
||||||
|
phpbb.search.closeResults($input, $container);
|
||||||
|
|
||||||
|
// Do not submit the form
|
||||||
|
event.preventDefault();
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Navigate the results
|
||||||
|
case keymap.ARROW_DOWN:
|
||||||
|
case keymap.ARROW_UP:
|
||||||
|
var up = key === keymap.ARROW_UP,
|
||||||
|
$children = $resultContainer.children();
|
||||||
|
|
||||||
|
if (!$active.length) {
|
||||||
|
if (up) {
|
||||||
|
$children.last().addClass('active');
|
||||||
|
} else {
|
||||||
|
$children.first().addClass('active');
|
||||||
|
}
|
||||||
|
} else if ($children.length > 1) {
|
||||||
|
if (up) {
|
||||||
|
if ($active.is(':first-child')) {
|
||||||
|
$children.last().addClass('active');
|
||||||
|
} else {
|
||||||
|
$active.prev().addClass('active');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($active.is(':last-child')) {
|
||||||
|
$children.first().addClass('active');
|
||||||
|
} else {
|
||||||
|
$active.next().addClass('active');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$active.removeClass('active');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do not change cursor position in the input element
|
||||||
|
event.preventDefault();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
$('#phpbb').click(function() {
|
$('#phpbb').click(function() {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
|
|
||||||
if (!$this.is('.live-search') && !$this.parents().is('.live-search')) {
|
if (!$this.is('.live-search') && !$this.parents().is('.live-search')) {
|
||||||
$('.live-search').hide();
|
phpbb.search.closeResults($('input, textarea'), $('.live-search'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1495,7 +1590,7 @@ phpbb.colorPalette = function(dir, width, height) {
|
|||||||
* @param {jQuery} el jQuery object for the palette container.
|
* @param {jQuery} el jQuery object for the palette container.
|
||||||
*/
|
*/
|
||||||
phpbb.registerPalette = function(el) {
|
phpbb.registerPalette = function(el) {
|
||||||
var orientation = el.attr('data-orientation'),
|
var orientation = el.attr('data-color-palette') || el.attr('data-orientation'), // data-orientation kept for backwards compat.
|
||||||
height = el.attr('data-height'),
|
height = el.attr('data-height'),
|
||||||
width = el.attr('data-width'),
|
width = el.attr('data-width'),
|
||||||
target = el.attr('data-target'),
|
target = el.attr('data-target'),
|
||||||
@@ -1653,19 +1748,100 @@ phpbb.lazyLoadAvatars = function loadAvatars() {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
phpbb.recaptcha = {
|
||||||
|
button: null,
|
||||||
|
ready: false,
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
// And now we submit the form.
|
||||||
|
phpbb.recaptcha.submitForm();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// Regular version 2 execution
|
||||||
|
grecaptcha.execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// reCAPTCHA v2 doesn't accept callback functions nested inside objects
|
||||||
|
// so we need to make this helper functions here
|
||||||
|
window.phpbbRecaptchaOnLoad = function() {
|
||||||
|
phpbb.recaptcha.load();
|
||||||
|
};
|
||||||
|
|
||||||
|
window.phpbbRecaptchaOnSubmit = function() {
|
||||||
|
phpbb.recaptcha.submitForm();
|
||||||
|
};
|
||||||
|
|
||||||
$(window).on('load', phpbb.lazyLoadAvatars);
|
$(window).on('load', phpbb.lazyLoadAvatars);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Apply code editor to all textarea elements with data-bbcode attribute
|
* Apply code editor to all textarea elements with data-bbcode attribute
|
||||||
*/
|
*/
|
||||||
$(function() {
|
$(function() {
|
||||||
|
// reCAPTCHA v3 needs to be initialized
|
||||||
|
if (phpbb.recaptcha.v3.length) {
|
||||||
|
phpbb.recaptcha.load();
|
||||||
|
}
|
||||||
|
|
||||||
$('textarea[data-bbcode]').each(function() {
|
$('textarea[data-bbcode]').each(function() {
|
||||||
phpbb.applyCodeEditor(this);
|
phpbb.applyCodeEditor(this);
|
||||||
});
|
});
|
||||||
|
|
||||||
phpbb.registerPageDropdowns();
|
phpbb.registerPageDropdowns();
|
||||||
|
|
||||||
$('[data-orientation]').each(function() {
|
$('[data-color-palette], [data-orientation]').each(function() {
|
||||||
phpbb.registerPalette($(this));
|
phpbb.registerPalette($(this));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
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
5
phpBB/assets/javascript/jquery.min.js
vendored
5
phpBB/assets/javascript/jquery.min.js
vendored
File diff suppressed because one or more lines are too long
22
phpBB/cache/.htaccess
vendored
22
phpBB/cache/.htaccess
vendored
@@ -1,33 +1,25 @@
|
|||||||
# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
|
# 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
|
# 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_host.
|
# disabled) and a new "Require" syntax has been introduced to mod_authz_core.
|
||||||
# We could just conditionally provide both versions, but unfortunately Apache
|
# We could just conditionally provide both versions, but unfortunately Apache
|
||||||
# does not explicitly tell us its version if the module mod_version is not
|
# 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
|
# 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.
|
# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
|
||||||
<IfModule mod_version.c>
|
<IfModule mod_version.c>
|
||||||
<IfVersion < 2.4>
|
<IfVersion < 2.4>
|
||||||
<Files "*">
|
Order Allow,Deny
|
||||||
Order Allow,Deny
|
Deny from All
|
||||||
Deny from All
|
|
||||||
</Files>
|
|
||||||
</IfVersion>
|
</IfVersion>
|
||||||
<IfVersion >= 2.4>
|
<IfVersion >= 2.4>
|
||||||
<Files "*">
|
Require all denied
|
||||||
Require all denied
|
|
||||||
</Files>
|
|
||||||
</IfVersion>
|
</IfVersion>
|
||||||
</IfModule>
|
</IfModule>
|
||||||
<IfModule !mod_version.c>
|
<IfModule !mod_version.c>
|
||||||
<IfModule !mod_authz_core.c>
|
<IfModule !mod_authz_core.c>
|
||||||
<Files "*">
|
Order Allow,Deny
|
||||||
Order Allow,Deny
|
Deny from All
|
||||||
Deny from All
|
|
||||||
</Files>
|
|
||||||
</IfModule>
|
</IfModule>
|
||||||
<IfModule mod_authz_core.c>
|
<IfModule mod_authz_core.c>
|
||||||
<Files "*">
|
Require all denied
|
||||||
Require all denied
|
|
||||||
</Files>
|
|
||||||
</IfModule>
|
</IfModule>
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Minimum Requirement: PHP 5.4.0
|
* Minimum Requirement: PHP 7.1.3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('IN_PHPBB'))
|
if (!defined('IN_PHPBB'))
|
||||||
@@ -132,6 +132,8 @@ catch (InvalidArgumentException $e)
|
|||||||
$phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
|
$phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
|
||||||
$phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver'));
|
$phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver'));
|
||||||
|
|
||||||
|
$phpbb_container->get('dbal.conn')->set_debug_sql_explain($phpbb_container->getParameter('debug.sql_explain'));
|
||||||
|
$phpbb_container->get('dbal.conn')->set_debug_load_time($phpbb_container->getParameter('debug.load_time'));
|
||||||
require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx);
|
require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx);
|
||||||
|
|
||||||
register_compatibility_globals();
|
register_compatibility_globals();
|
||||||
|
@@ -25,51 +25,53 @@
|
|||||||
"phpbb/phpbb-core": "self.version"
|
"phpbb/phpbb-core": "self.version"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.4",
|
"php": "^7.1.3",
|
||||||
"bantu/ini-get-wrapper": "1.0.*",
|
"ext-json": "*",
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"bantu/ini-get-wrapper": "~1.0",
|
||||||
|
"composer/package-versions-deprecated": "^1.11",
|
||||||
"google/recaptcha": "~1.1",
|
"google/recaptcha": "~1.1",
|
||||||
"guzzlehttp/guzzle": "~5.3",
|
"guzzlehttp/guzzle": "~6.3",
|
||||||
"lusitanian/oauth": "^0.8.1",
|
"lusitanian/oauth": "^0.8.1",
|
||||||
"marc1706/fast-image-size": "^1.1",
|
"marc1706/fast-image-size": "^1.1",
|
||||||
"paragonie/random_compat": "^2.0",
|
|
||||||
"patchwork/utf8": "^1.1",
|
"patchwork/utf8": "^1.1",
|
||||||
"s9e/text-formatter": "^1.3",
|
"s9e/text-formatter": "^2.0",
|
||||||
"symfony/config": "^2.8",
|
"symfony/config": "~3.4",
|
||||||
"symfony/console": "^2.8",
|
"symfony/console": "~3.4",
|
||||||
"symfony/debug": "^2.8",
|
"symfony/debug": "~3.4",
|
||||||
"symfony/dependency-injection": "^2.8",
|
"symfony/dependency-injection": "~3.4",
|
||||||
"symfony/event-dispatcher": "^2.8",
|
"symfony/event-dispatcher": "~3.4",
|
||||||
"symfony/filesystem": "^2.8",
|
"symfony/filesystem": "~3.4",
|
||||||
"symfony/finder": "^2.8",
|
"symfony/finder": "~3.4",
|
||||||
"symfony/http-foundation": "^2.8",
|
"symfony/http-foundation": "~3.4",
|
||||||
"symfony/http-kernel": "^2.8",
|
"symfony/http-kernel": "~3.4",
|
||||||
"symfony/proxy-manager-bridge": "^2.8",
|
"symfony/process": "^3.4",
|
||||||
"symfony/routing": "^2.8",
|
"symfony/proxy-manager-bridge": "~3.4",
|
||||||
"symfony/twig-bridge": "^2.8",
|
"symfony/routing": "~3.4",
|
||||||
"symfony/yaml": "^2.8",
|
"symfony/twig-bridge": "~3.4",
|
||||||
"twig/twig": "^1.0"
|
"symfony/yaml": "~3.4",
|
||||||
|
"twig/twig": "^1.0 || ^2.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fabpot/goutte": "~2.0",
|
"fabpot/goutte": "~3.2",
|
||||||
"facebook/webdriver": "~1.1",
|
"php-webdriver/webdriver": "~1.8",
|
||||||
"laravel/homestead": "~2.2",
|
"laravel/homestead": "~7.0",
|
||||||
"phing/phing": "2.4.*",
|
"phing/phing": "~2.4",
|
||||||
"phpunit/dbunit": "1.3.*",
|
"phpunit/dbunit": "~4.0",
|
||||||
"phpunit/phpunit": "^4.1",
|
"phpunit/phpunit": "^7.0",
|
||||||
"sami/sami": "1.*",
|
"squizlabs/php_codesniffer": "~3.4",
|
||||||
"squizlabs/php_codesniffer": "2.*",
|
"symfony/browser-kit": "~3.4",
|
||||||
"symfony/browser-kit": "^2.8",
|
"symfony/css-selector": "~3.4",
|
||||||
"symfony/css-selector": "^2.8",
|
"symfony/dom-crawler": "~3.4"
|
||||||
"symfony/dom-crawler": "^2.8"
|
|
||||||
},
|
},
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "3.2.x-dev"
|
"dev-master": "3.3.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "5.4.7"
|
"php": "7.1.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
3847
phpBB/composer.lock
generated
3847
phpBB/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,33 +1,25 @@
|
|||||||
# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
|
# 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
|
# 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_host.
|
# disabled) and a new "Require" syntax has been introduced to mod_authz_core.
|
||||||
# We could just conditionally provide both versions, but unfortunately Apache
|
# We could just conditionally provide both versions, but unfortunately Apache
|
||||||
# does not explicitly tell us its version if the module mod_version is not
|
# 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
|
# 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.
|
# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
|
||||||
<IfModule mod_version.c>
|
<IfModule mod_version.c>
|
||||||
<IfVersion < 2.4>
|
<IfVersion < 2.4>
|
||||||
<Files "*">
|
Order Allow,Deny
|
||||||
Order Allow,Deny
|
Deny from All
|
||||||
Deny from All
|
|
||||||
</Files>
|
|
||||||
</IfVersion>
|
</IfVersion>
|
||||||
<IfVersion >= 2.4>
|
<IfVersion >= 2.4>
|
||||||
<Files "*">
|
Require all denied
|
||||||
Require all denied
|
|
||||||
</Files>
|
|
||||||
</IfVersion>
|
</IfVersion>
|
||||||
</IfModule>
|
</IfModule>
|
||||||
<IfModule !mod_version.c>
|
<IfModule !mod_version.c>
|
||||||
<IfModule !mod_authz_core.c>
|
<IfModule !mod_authz_core.c>
|
||||||
<Files "*">
|
Order Allow,Deny
|
||||||
Order Allow,Deny
|
Deny from All
|
||||||
Deny from All
|
|
||||||
</Files>
|
|
||||||
</IfModule>
|
</IfModule>
|
||||||
<IfModule mod_authz_core.c>
|
<IfModule mod_authz_core.c>
|
||||||
<Files "*">
|
Require all denied
|
||||||
Require all denied
|
|
||||||
</Files>
|
|
||||||
</IfModule>
|
</IfModule>
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
@@ -14,6 +14,8 @@ parameters:
|
|||||||
|
|
||||||
# List of default password driver types
|
# List of default password driver types
|
||||||
passwords.algorithms:
|
passwords.algorithms:
|
||||||
|
- passwords.driver.argon2id
|
||||||
|
- passwords.driver.argon2i
|
||||||
- passwords.driver.bcrypt_2y
|
- passwords.driver.bcrypt_2y
|
||||||
- passwords.driver.bcrypt
|
- passwords.driver.bcrypt
|
||||||
- passwords.driver.salted_md5
|
- passwords.driver.salted_md5
|
||||||
|
@@ -27,6 +27,7 @@ imports:
|
|||||||
- { resource: services_text_formatter.yml }
|
- { resource: services_text_formatter.yml }
|
||||||
- { resource: services_text_reparser.yml }
|
- { resource: services_text_reparser.yml }
|
||||||
- { resource: services_twig.yml }
|
- { resource: services_twig.yml }
|
||||||
|
- { resource: services_ucp.yml }
|
||||||
- { resource: services_user.yml }
|
- { resource: services_user.yml }
|
||||||
|
|
||||||
- { resource: tables.yml }
|
- { resource: tables.yml }
|
||||||
@@ -84,12 +85,22 @@ services:
|
|||||||
controller.helper:
|
controller.helper:
|
||||||
class: phpbb\controller\helper
|
class: phpbb\controller\helper
|
||||||
arguments:
|
arguments:
|
||||||
- '@template'
|
- '@auth'
|
||||||
- '@user'
|
- '@cache.driver'
|
||||||
- '@config'
|
- '@config'
|
||||||
- '@symfony_request'
|
- '@cron.manager'
|
||||||
|
- '@dbal.conn'
|
||||||
|
- '@dispatcher'
|
||||||
|
- '@language'
|
||||||
- '@request'
|
- '@request'
|
||||||
- '@routing.helper'
|
- '@routing.helper'
|
||||||
|
- '@symfony_request'
|
||||||
|
- '@template'
|
||||||
|
- '@user'
|
||||||
|
- '%core.root_path%'
|
||||||
|
- '%core.adm_relative_path%'
|
||||||
|
- '%core.php_ext%'
|
||||||
|
- '%debug.sql_explain%'
|
||||||
|
|
||||||
controller.resolver:
|
controller.resolver:
|
||||||
class: phpbb\controller\resolver
|
class: phpbb\controller\resolver
|
||||||
|
@@ -15,12 +15,12 @@ services:
|
|||||||
auth.provider.db:
|
auth.provider.db:
|
||||||
class: phpbb\auth\provider\db
|
class: phpbb\auth\provider\db
|
||||||
arguments:
|
arguments:
|
||||||
- '@dbal.conn'
|
- '@captcha.factory'
|
||||||
- '@config'
|
- '@config'
|
||||||
|
- '@dbal.conn'
|
||||||
- '@passwords.manager'
|
- '@passwords.manager'
|
||||||
- '@request'
|
- '@request'
|
||||||
- '@user'
|
- '@user'
|
||||||
- '@service_container'
|
|
||||||
- '%core.root_path%'
|
- '%core.root_path%'
|
||||||
- '%core.php_ext%'
|
- '%core.php_ext%'
|
||||||
tags:
|
tags:
|
||||||
@@ -29,9 +29,9 @@ services:
|
|||||||
auth.provider.apache:
|
auth.provider.apache:
|
||||||
class: phpbb\auth\provider\apache
|
class: phpbb\auth\provider\apache
|
||||||
arguments:
|
arguments:
|
||||||
- '@dbal.conn'
|
|
||||||
- '@config'
|
- '@config'
|
||||||
- '@passwords.manager'
|
- '@dbal.conn'
|
||||||
|
- '@language'
|
||||||
- '@request'
|
- '@request'
|
||||||
- '@user'
|
- '@user'
|
||||||
- '%core.root_path%'
|
- '%core.root_path%'
|
||||||
@@ -42,9 +42,9 @@ services:
|
|||||||
auth.provider.ldap:
|
auth.provider.ldap:
|
||||||
class: phpbb\auth\provider\ldap
|
class: phpbb\auth\provider\ldap
|
||||||
arguments:
|
arguments:
|
||||||
- '@dbal.conn'
|
|
||||||
- '@config'
|
- '@config'
|
||||||
- '@passwords.manager'
|
- '@dbal.conn'
|
||||||
|
- '@language'
|
||||||
- '@user'
|
- '@user'
|
||||||
tags:
|
tags:
|
||||||
- { name: auth.provider }
|
- { name: auth.provider }
|
||||||
@@ -52,18 +52,18 @@ services:
|
|||||||
auth.provider.oauth:
|
auth.provider.oauth:
|
||||||
class: phpbb\auth\provider\oauth\oauth
|
class: phpbb\auth\provider\oauth\oauth
|
||||||
arguments:
|
arguments:
|
||||||
- '@dbal.conn'
|
|
||||||
- '@config'
|
- '@config'
|
||||||
- '@passwords.manager'
|
- '@dbal.conn'
|
||||||
|
- '@auth.provider.db'
|
||||||
|
- '@dispatcher'
|
||||||
|
- '@language'
|
||||||
- '@request'
|
- '@request'
|
||||||
|
- '@auth.provider.oauth.service_collection'
|
||||||
- '@user'
|
- '@user'
|
||||||
- '%tables.auth_provider_oauth_token_storage%'
|
- '%tables.auth_provider_oauth_token_storage%'
|
||||||
- '%tables.auth_provider_oauth_states%'
|
- '%tables.auth_provider_oauth_states%'
|
||||||
- '%tables.auth_provider_oauth_account_assoc%'
|
- '%tables.auth_provider_oauth_account_assoc%'
|
||||||
- '@auth.provider.oauth.service_collection'
|
|
||||||
- '%tables.users%'
|
- '%tables.users%'
|
||||||
- '@service_container'
|
|
||||||
- '@dispatcher'
|
|
||||||
- '%core.root_path%'
|
- '%core.root_path%'
|
||||||
- '%core.php_ext%'
|
- '%core.php_ext%'
|
||||||
tags:
|
tags:
|
||||||
|
@@ -57,3 +57,11 @@ services:
|
|||||||
- [set_name, [core.captcha.plugins.recaptcha]]
|
- [set_name, [core.captcha.plugins.recaptcha]]
|
||||||
tags:
|
tags:
|
||||||
- { name: captcha.plugins }
|
- { 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 }
|
||||||
|
@@ -162,14 +162,6 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
- { name: console.command }
|
- { name: console.command }
|
||||||
|
|
||||||
console.command.fixup.recalculate_email_hash:
|
|
||||||
class: phpbb\console\command\fixup\recalculate_email_hash
|
|
||||||
arguments:
|
|
||||||
- '@user'
|
|
||||||
- '@dbal.conn'
|
|
||||||
tags:
|
|
||||||
- { name: console.command }
|
|
||||||
|
|
||||||
console.command.fixup.update_hashes:
|
console.command.fixup.update_hashes:
|
||||||
class: phpbb\console\command\fixup\update_hashes
|
class: phpbb\console\command\fixup\update_hashes
|
||||||
arguments:
|
arguments:
|
||||||
|
@@ -2,7 +2,8 @@ services:
|
|||||||
cron.manager:
|
cron.manager:
|
||||||
class: phpbb\cron\manager
|
class: phpbb\cron\manager
|
||||||
arguments:
|
arguments:
|
||||||
- '@cron.task_collection'
|
- '@service_container'
|
||||||
|
- '@routing.helper'
|
||||||
- '%core.root_path%'
|
- '%core.root_path%'
|
||||||
- '%core.php_ext%'
|
- '%core.php_ext%'
|
||||||
|
|
||||||
@@ -13,6 +14,18 @@ services:
|
|||||||
- '@config'
|
- '@config'
|
||||||
- '@dbal.conn'
|
- '@dbal.conn'
|
||||||
|
|
||||||
|
cron.controller:
|
||||||
|
class: phpbb\cron\controller\cron
|
||||||
|
|
||||||
|
cron.event_listener:
|
||||||
|
class: phpbb\cron\event\cron_runner_listener
|
||||||
|
arguments:
|
||||||
|
- '@cron.lock_db'
|
||||||
|
- '@cron.manager'
|
||||||
|
- '@request'
|
||||||
|
tags:
|
||||||
|
- { name: kernel.event_subscriber }
|
||||||
|
|
||||||
# ----- Cron tasks -----
|
# ----- Cron tasks -----
|
||||||
cron.task_collection:
|
cron.task_collection:
|
||||||
class: phpbb\di\service_collection
|
class: phpbb\di\service_collection
|
||||||
|
@@ -12,11 +12,13 @@ services:
|
|||||||
- '@user'
|
- '@user'
|
||||||
- '@auth'
|
- '@auth'
|
||||||
- '@dispatcher'
|
- '@dispatcher'
|
||||||
|
- '@language'
|
||||||
- '%core.php_ext%'
|
- '%core.php_ext%'
|
||||||
|
|
||||||
feed.helper:
|
feed.helper:
|
||||||
class: phpbb\feed\helper
|
class: phpbb\feed\helper
|
||||||
arguments:
|
arguments:
|
||||||
|
- '@auth'
|
||||||
- '@config'
|
- '@config'
|
||||||
- '@service_container'
|
- '@service_container'
|
||||||
- '@path_helper'
|
- '@path_helper'
|
||||||
|
@@ -176,6 +176,16 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
- { name: notification.type }
|
- { 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 -----
|
# ----- Notification's methods -----
|
||||||
# Service MUST NOT be shared for all the plugins to work.
|
# Service MUST NOT be shared for all the plugins to work.
|
||||||
notification.method_collection:
|
notification.method_collection:
|
||||||
@@ -206,8 +216,10 @@ services:
|
|||||||
- '@user_loader'
|
- '@user_loader'
|
||||||
- '@user'
|
- '@user'
|
||||||
- '@config'
|
- '@config'
|
||||||
|
- '@dbal.conn'
|
||||||
- '%core.root_path%'
|
- '%core.root_path%'
|
||||||
- '%core.php_ext%'
|
- '%core.php_ext%'
|
||||||
|
- '%tables.notification_emails%'
|
||||||
tags:
|
tags:
|
||||||
- { name: notification.method }
|
- { name: notification.method }
|
||||||
|
|
||||||
|
@@ -1,4 +1,7 @@
|
|||||||
parameters:
|
parameters:
|
||||||
|
passwords.driver.argon2_memory_cost: 65536
|
||||||
|
passwords.driver.argon2_threads: 2
|
||||||
|
passwords.driver.argon2_time_cost: 4
|
||||||
passwords.driver.bcrypt_cost: 10
|
passwords.driver.bcrypt_cost: 10
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -27,6 +30,23 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
- { name: service_collection, tag: passwords.driver }
|
- { name: service_collection, tag: passwords.driver }
|
||||||
|
|
||||||
|
passwords.driver.argon2i:
|
||||||
|
class: phpbb\passwords\driver\argon2i
|
||||||
|
arguments:
|
||||||
|
- '@config'
|
||||||
|
- '@passwords.driver_helper'
|
||||||
|
- '%passwords.driver.argon2_memory_cost%'
|
||||||
|
- '%passwords.driver.argon2_threads%'
|
||||||
|
- '%passwords.driver.argon2_time_cost%'
|
||||||
|
tags:
|
||||||
|
- { name: passwords.driver }
|
||||||
|
|
||||||
|
passwords.driver.argon2id:
|
||||||
|
class: phpbb\passwords\driver\argon2id
|
||||||
|
parent: passwords.driver.argon2i
|
||||||
|
tags:
|
||||||
|
- { name: passwords.driver }
|
||||||
|
|
||||||
passwords.driver.bcrypt:
|
passwords.driver.bcrypt:
|
||||||
class: phpbb\passwords\driver\bcrypt
|
class: phpbb\passwords\driver\bcrypt
|
||||||
arguments:
|
arguments:
|
||||||
|
@@ -61,15 +61,6 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
- { name: profilefield.type }
|
- { name: profilefield.type }
|
||||||
|
|
||||||
profilefields.type.googleplus:
|
|
||||||
class: phpbb\profilefields\type\type_googleplus
|
|
||||||
arguments:
|
|
||||||
- '@request'
|
|
||||||
- '@template'
|
|
||||||
- '@user'
|
|
||||||
tags:
|
|
||||||
- { name: profilefield.type }
|
|
||||||
|
|
||||||
profilefields.type.int:
|
profilefields.type.int:
|
||||||
class: phpbb\profilefields\type\type_int
|
class: phpbb\profilefields\type\type_int
|
||||||
arguments:
|
arguments:
|
||||||
|
@@ -12,8 +12,6 @@ services:
|
|||||||
class: Symfony\Component\HttpKernel\EventListener\RouterListener
|
class: Symfony\Component\HttpKernel\EventListener\RouterListener
|
||||||
arguments:
|
arguments:
|
||||||
- '@router'
|
- '@router'
|
||||||
- null
|
|
||||||
- null
|
|
||||||
- '@request_stack'
|
- '@request_stack'
|
||||||
tags:
|
tags:
|
||||||
- { name: kernel.event_subscriber }
|
- { name: kernel.event_subscriber }
|
||||||
|
@@ -4,6 +4,11 @@ parameters:
|
|||||||
text_formatter.cache.renderer.key: _text_formatter_renderer
|
text_formatter.cache.renderer.key: _text_formatter_renderer
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
text_formatter.acp_utils:
|
||||||
|
class: phpbb\textformatter\s9e\acp_utils
|
||||||
|
arguments:
|
||||||
|
- '@text_formatter.s9e.factory'
|
||||||
|
|
||||||
text_formatter.cache:
|
text_formatter.cache:
|
||||||
alias: text_formatter.s9e.factory
|
alias: text_formatter.s9e.factory
|
||||||
|
|
||||||
|
@@ -73,6 +73,7 @@ services:
|
|||||||
class: phpbb\textreparser\plugins\poll_option
|
class: phpbb\textreparser\plugins\poll_option
|
||||||
arguments:
|
arguments:
|
||||||
- '@dbal.conn'
|
- '@dbal.conn'
|
||||||
|
- '%tables.poll_options%'
|
||||||
calls:
|
calls:
|
||||||
- [set_name, [poll_option]]
|
- [set_name, [poll_option]]
|
||||||
tags:
|
tags:
|
||||||
|
@@ -38,10 +38,23 @@ services:
|
|||||||
class: phpbb\template\twig\extension
|
class: phpbb\template\twig\extension
|
||||||
arguments:
|
arguments:
|
||||||
- '@template_context'
|
- '@template_context'
|
||||||
|
- '@template.twig.environment'
|
||||||
- '@language'
|
- '@language'
|
||||||
tags:
|
tags:
|
||||||
- { name: twig.extension }
|
- { name: twig.extension }
|
||||||
|
|
||||||
|
template.twig.extensions.avatar:
|
||||||
|
class: phpbb\template\twig\extension\avatar
|
||||||
|
tags:
|
||||||
|
- { name: twig.extension }
|
||||||
|
|
||||||
|
template.twig.extensions.config:
|
||||||
|
class: phpbb\template\twig\extension\config
|
||||||
|
arguments:
|
||||||
|
- '@config'
|
||||||
|
tags:
|
||||||
|
- { name: twig.extension }
|
||||||
|
|
||||||
template.twig.extensions.routing:
|
template.twig.extensions.routing:
|
||||||
class: phpbb\template\twig\extension\routing
|
class: phpbb\template\twig\extension\routing
|
||||||
arguments:
|
arguments:
|
||||||
@@ -49,8 +62,13 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
- { name: twig.extension }
|
- { name: twig.extension }
|
||||||
|
|
||||||
|
template.twig.extensions.username:
|
||||||
|
class: phpbb\template\twig\extension\username
|
||||||
|
tags:
|
||||||
|
- { name: twig.extension }
|
||||||
|
|
||||||
template.twig.extensions.debug:
|
template.twig.extensions.debug:
|
||||||
class: Twig_Extension_Debug
|
class: Twig\Extension\DebugExtension
|
||||||
|
|
||||||
template:
|
template:
|
||||||
class: phpbb\template\twig\twig
|
class: phpbb\template\twig\twig
|
||||||
|
17
phpBB/config/default/container/services_ucp.yml
Normal file
17
phpBB/config/default/container/services_ucp.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
services:
|
||||||
|
phpbb.ucp.controller.reset_password:
|
||||||
|
class: phpbb\ucp\controller\reset_password
|
||||||
|
arguments:
|
||||||
|
- '@config'
|
||||||
|
- '@dbal.conn'
|
||||||
|
- '@dispatcher'
|
||||||
|
- '@controller.helper'
|
||||||
|
- '@language'
|
||||||
|
- '@log'
|
||||||
|
- '@passwords.manager'
|
||||||
|
- '@request'
|
||||||
|
- '@template'
|
||||||
|
- '@user'
|
||||||
|
- '%tables.users%'
|
||||||
|
- '%core.root_path%'
|
||||||
|
- '%core.php_ext%'
|
@@ -35,6 +35,7 @@ parameters:
|
|||||||
tables.migrations: '%core.table_prefix%migrations'
|
tables.migrations: '%core.table_prefix%migrations'
|
||||||
tables.moderator_cache: '%core.table_prefix%moderator_cache'
|
tables.moderator_cache: '%core.table_prefix%moderator_cache'
|
||||||
tables.modules: '%core.table_prefix%modules'
|
tables.modules: '%core.table_prefix%modules'
|
||||||
|
tables.notification_emails: '%core.table_prefix%notification_emails'
|
||||||
tables.notification_types: '%core.table_prefix%notification_types'
|
tables.notification_types: '%core.table_prefix%notification_types'
|
||||||
tables.notifications: '%core.table_prefix%notifications'
|
tables.notifications: '%core.table_prefix%notifications'
|
||||||
tables.poll_options: '%core.table_prefix%poll_options'
|
tables.poll_options: '%core.table_prefix%poll_options'
|
||||||
|
3
phpBB/config/default/routing/cron.yml
Normal file
3
phpBB/config/default/routing/cron.yml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
phpbb_cron_run:
|
||||||
|
path: /{cron_type}
|
||||||
|
defaults: { _controller: cron.controller:handle }
|
@@ -8,6 +8,10 @@
|
|||||||
# instantiate the 'foo_service' service and call the 'method' method.
|
# instantiate the 'foo_service' service and call the 'method' method.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
phpbb_cron_routing:
|
||||||
|
resource: cron.yml
|
||||||
|
prefix: /cron
|
||||||
|
|
||||||
phpbb_feed_routing:
|
phpbb_feed_routing:
|
||||||
resource: feed.yml
|
resource: feed.yml
|
||||||
prefix: /feed
|
prefix: /feed
|
||||||
@@ -22,3 +26,7 @@ phpbb_help_routing:
|
|||||||
|
|
||||||
phpbb_report_routing:
|
phpbb_report_routing:
|
||||||
resource: report.yml
|
resource: report.yml
|
||||||
|
|
||||||
|
phpbb_ucp_routing:
|
||||||
|
resource: ucp.yml
|
||||||
|
prefix: /user
|
||||||
|
7
phpBB/config/default/routing/ucp.yml
Normal file
7
phpBB/config/default/routing/ucp.yml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
phpbb_ucp_reset_password_controller:
|
||||||
|
path: /reset_password
|
||||||
|
defaults: { _controller: phpbb.ucp.controller.reset_password:reset }
|
||||||
|
|
||||||
|
phpbb_ucp_forgot_password_controller:
|
||||||
|
path: /forgot_password
|
||||||
|
defaults: { _controller: phpbb.ucp.controller.reset_password:request }
|
@@ -3,11 +3,19 @@ imports:
|
|||||||
|
|
||||||
core:
|
core:
|
||||||
require_dev_dependencies: true
|
require_dev_dependencies: true
|
||||||
|
allow_install_dir: true
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
exceptions: true
|
exceptions: true
|
||||||
|
load_time: true
|
||||||
|
sql_explain: true
|
||||||
|
memory: true
|
||||||
|
show_errors: true
|
||||||
|
|
||||||
twig:
|
twig:
|
||||||
debug: true
|
debug: true
|
||||||
auto_reload: true
|
auto_reload: true
|
||||||
enable_debug_extension: true
|
enable_debug_extension: true
|
||||||
|
|
||||||
|
session:
|
||||||
|
log_errors: true
|
||||||
|
@@ -3,3 +3,4 @@ imports:
|
|||||||
|
|
||||||
core:
|
core:
|
||||||
require_dev_dependencies: true
|
require_dev_dependencies: true
|
||||||
|
allow_install_dir: true
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user