mirror of
https://github.com/phpbb/phpbb.git
synced 2025-09-06 22:30:44 +02:00
Compare commits
2581 Commits
release-3.
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
|
cd36a68645 | ||
|
5225ac8a9a | ||
|
aaaef71b60 | ||
|
1fe8bbf47a | ||
|
67c41633a2 | ||
|
92cebdd624 | ||
|
7017c73156 | ||
|
2e025be53a | ||
|
2126738598 | ||
|
99286b1fdd | ||
|
64717d0270 | ||
|
f197662653 | ||
|
e080a8533d | ||
|
f84e03f646 | ||
|
7c02b58114 | ||
|
12256eabb6 | ||
|
9b1bae858f | ||
|
db3c143b73 | ||
|
ea19638f4e | ||
|
89b07af756 | ||
|
7275f9e7f1 | ||
|
8fbbaf97ab | ||
|
b8a3d8f25d | ||
|
495986ff5d | ||
|
3ed3abb446 | ||
|
ca8c402796 | ||
|
fafe250b0d | ||
|
256ea96cd9 | ||
|
5cdd22e058 | ||
|
47e30a2e21 | ||
|
040c2e9b78 | ||
|
2c661205e4 | ||
|
b5d2ff4074 | ||
|
b3d93a09f2 | ||
|
2f72950d2d | ||
|
064a96ec07 | ||
|
a8feaeafe8 | ||
|
fc83f213d5 | ||
|
5e3dd4b55e | ||
|
53e5113893 | ||
|
f930f8821f | ||
|
b84b875cd2 | ||
|
bc4a787470 | ||
|
c6ef628589 | ||
|
d4415d4ad8 | ||
|
2b92ff372b | ||
|
c410c9bc47 | ||
|
52f625a88c | ||
|
feea7958f7 | ||
|
c61c130596 | ||
|
59a95a3c35 | ||
|
60af39b38c | ||
|
8376012f9a | ||
|
dd6e110210 | ||
|
898075f0f8 | ||
|
3308318524 | ||
|
54c27e3e67 | ||
|
54156dd9d8 | ||
|
8084d977fb | ||
|
997f1b92cf | ||
|
e1069bcbde | ||
|
9e22bc8691 | ||
|
751b0e2ede | ||
|
b9f7c3ff6e | ||
|
0d84769d66 | ||
|
cd9aea32b9 | ||
|
a12a6f52ae | ||
|
9739fabd68 | ||
|
32ce101541 | ||
|
89d2fcf5ed | ||
|
5e10b02103 | ||
|
1ce11e39e1 | ||
|
aed2d00373 | ||
|
691a891634 | ||
|
33af6d0f0a | ||
|
7a034a8c1e | ||
|
4d857c4be7 | ||
|
3ee1efe7e0 | ||
|
6fa019e23a | ||
|
9b2f42748c | ||
|
e53102fead | ||
|
87c1e631ef | ||
|
8c982c7aa0 | ||
|
8cfec5370a | ||
|
6cc0fe5f95 | ||
|
16b27be2d0 | ||
|
0dd053eeba | ||
|
4ed0201ffe | ||
|
19aadeefda | ||
|
8ca00c529e | ||
|
e138328be1 | ||
|
faec4417f4 | ||
|
34f27a1670 | ||
|
028340ee52 | ||
|
e86daaede6 | ||
|
91f2f2c6f1 | ||
|
5a3a91b464 | ||
|
1f972f0ee7 | ||
|
2e37b2dc2d | ||
|
8d6a9245c1 | ||
|
1a8950d01b | ||
|
b4fa01e943 | ||
|
cd057c126a | ||
|
377ebacf0d | ||
|
fb2d1c2a28 | ||
|
da2364b2c1 | ||
|
a5899494b9 | ||
|
86e009ad15 | ||
|
cc60a63f22 | ||
|
4044900c69 | ||
|
e84cf2e5ba | ||
|
e78664d68b | ||
|
a466be10c2 | ||
|
4e5b9b23de | ||
|
9bc98278fe | ||
|
33a789e030 | ||
|
c9db94f91c | ||
|
3cf83f1a62 | ||
|
d0344b9318 | ||
|
4072dd0246 | ||
|
6a6d83c674 | ||
|
94fe538100 | ||
|
4f9252568a | ||
|
5017dbd58d | ||
|
c4fcbc2cbd | ||
|
3be1e3029e | ||
|
7992b3f476 | ||
|
9dc25510a1 | ||
|
420f494628 | ||
|
8e4559f49f | ||
|
0fe95a032b | ||
|
9446db9cde | ||
|
adea3e734a | ||
|
919ff4575b | ||
|
ee56f0fe7d | ||
|
893dad0297 | ||
|
d08843853e | ||
|
97356d9879 | ||
|
9f09dec049 | ||
|
8a3164aaf7 | ||
|
6caf2f83ad | ||
|
4805e705ad | ||
|
9bf6e7f32e | ||
|
c93381ff04 | ||
|
88b79aba00 | ||
|
9c6df33e3b | ||
|
605726a4d7 | ||
|
3103e99dc7 | ||
|
a8c93ff661 | ||
|
1f4eac13b9 | ||
|
5e43f6195c | ||
|
6846eeaa48 | ||
|
b602b57b02 | ||
|
ba487a24dc | ||
|
015c9313a7 | ||
|
e7c81cd1a6 | ||
|
bf7936380a | ||
|
3f56bbb9d1 | ||
|
44d0a3a716 | ||
|
999122acdb | ||
|
c785c4b716 | ||
|
b305070e0a | ||
|
99634d4c05 | ||
|
fad1c652c0 | ||
|
1df74005a8 | ||
|
c7856ce162 | ||
|
cccf01447f | ||
|
ddc3eaa5bf | ||
|
65fa73855c | ||
|
391e4943d9 | ||
|
6801f7949f | ||
|
710aa10905 | ||
|
4a78202f96 | ||
|
d6a591cde3 | ||
|
4e447cc91a | ||
|
ec75f1741b | ||
|
af38f9d6c8 | ||
|
4614d3d92b | ||
|
866a4dc6d4 | ||
|
492352f652 | ||
|
1d05f722cb | ||
|
c1b88de806 | ||
|
89168c507b | ||
|
7a69c0f98c | ||
|
8cc6075d92 | ||
|
03b36d46c3 | ||
|
8104a446d4 | ||
|
aff3852568 | ||
|
39905eaf4b | ||
|
534cef94c9 | ||
|
a0ced790e2 | ||
|
0537365cac | ||
|
6e34e3c24e | ||
|
fecf3306f3 | ||
|
39db7005cd | ||
|
e956629735 | ||
|
89ca3f087e | ||
|
29d137cc5e | ||
|
88a11c1377 | ||
|
69b895caae | ||
|
d7f433fbf7 | ||
|
4d00c4c8af | ||
|
1e6c5cd381 | ||
|
0fbc5a3d83 | ||
|
3bfb2b3f69 | ||
|
337d876df7 | ||
|
8246023e0f | ||
|
b28b94b1f1 | ||
|
baf4bd7b5c | ||
|
81126dc97e | ||
|
391f80d480 | ||
|
febe44ed79 | ||
|
ede9a6815a | ||
|
2801415c1c | ||
|
dd029ed592 | ||
|
1d4fbd240e | ||
|
7275cdd152 | ||
|
b1e6fad38a | ||
|
9671a00214 | ||
|
d17b15a545 | ||
|
f841a0a1b8 | ||
|
7472d300b6 | ||
|
06ef03f8d6 | ||
|
40322bb1b6 | ||
|
6218c2e120 | ||
|
afbf7aadd2 | ||
|
a860a3310a | ||
|
ca24013470 | ||
|
99734fc648 | ||
|
3547f0bf0e | ||
|
01a22e7223 | ||
|
2145938d74 | ||
|
62a8741494 | ||
|
13155bf846 | ||
|
4d966d1762 | ||
|
056fb494b1 | ||
|
da7c9f6a7c | ||
|
73eb54bf54 | ||
|
6af8872ef3 | ||
|
a3070bedeb | ||
|
a12f903e93 | ||
|
d4cb357b26 | ||
|
b6e31e3664 | ||
|
7355ee623a | ||
|
a7385f0fbe | ||
|
c5814ddfaa | ||
|
96c439bf10 | ||
|
7a21a9032e | ||
|
1619014120 | ||
|
0a4d062e16 | ||
|
dda2dfecb3 | ||
|
b29c0ca153 | ||
|
c0296d10db | ||
|
4f3f91dfc3 | ||
|
52c931a8b6 | ||
|
9ca70432d9 | ||
|
1fbb807cc7 | ||
|
98f446df67 | ||
|
43b9254d1d | ||
|
97034e0776 | ||
|
02e5a7afc4 | ||
|
7efddcef54 | ||
|
ea36b83ee9 | ||
|
59cece1a0a | ||
|
e5fa23c3c0 | ||
|
9a7d88362f | ||
|
7f6c859b0d | ||
|
441a5a2175 | ||
|
ceca69d121 | ||
|
6a72d0305b | ||
|
7a8d9671c2 | ||
|
5b3d238804 | ||
|
1860a06eab | ||
|
1862992ca7 | ||
|
95fa6cceee | ||
|
19076de94c | ||
|
27289cbfad | ||
|
3d76942cdf | ||
|
51cc7202f8 | ||
|
303a933403 | ||
|
54b54c41c6 | ||
|
59e50d6d53 | ||
|
2a1656e7b3 | ||
|
12ce75b5f5 | ||
|
b82d90eb39 | ||
|
f302440297 | ||
|
848021c743 | ||
|
c4b4e1d7a9 | ||
|
ed33f06235 | ||
|
643845306a | ||
|
95511540ea | ||
|
b3b5fcc874 | ||
|
1b4ba00a73 | ||
|
8caf2e7c59 | ||
|
a87a60c108 | ||
|
5b5502390d | ||
|
1db2d9c3c1 | ||
|
5ef0105a5f | ||
|
e8421dbab1 | ||
|
e0197d711f | ||
|
11563ce971 | ||
|
bbcac37e30 | ||
|
8c25f3a9f7 | ||
|
e371f3eac7 | ||
|
dc7012864b | ||
|
cd53106ec3 | ||
|
86af3a2ba4 | ||
|
a6d4b460f1 | ||
|
975ad95bff | ||
|
61c59bdc91 | ||
|
79efbcaa4e | ||
|
8cc0e5438a | ||
|
2c8be65dcf | ||
|
c3598d0d58 | ||
|
92a2c08616 | ||
|
e5b43eabe1 | ||
|
a8be17dd4d | ||
|
170ddeaf63 | ||
|
8db200d75f | ||
|
3638b36849 | ||
|
8804cf885b | ||
|
ad23388043 | ||
|
79a8ed4677 | ||
|
5eeb213b12 | ||
|
75df7c202e | ||
|
2ef37a8e77 | ||
|
acbcb18226 | ||
|
5d0fd9f73a | ||
|
47c583516b | ||
|
91c6edf092 | ||
|
c2873cbc01 | ||
|
a1f1c0cc9d | ||
|
f46ebf5bec | ||
|
6dd7b7e8b5 | ||
|
721a39502a | ||
|
b01a956461 | ||
|
364c6d328a | ||
|
f7487e4e5c | ||
|
84b414a4f0 | ||
|
3f9e6c6013 | ||
|
e855f5cba4 | ||
|
90fccff6f1 | ||
|
a380c78e1e | ||
|
a6a18f2c59 | ||
|
6efebf7571 | ||
|
c7c3adf762 | ||
|
2e29bb48fa | ||
|
e1fc0a9059 | ||
|
c846dd5666 | ||
|
19a5900db5 | ||
|
5de8c3dc3c | ||
|
3ae0d347c9 | ||
|
2244635a41 | ||
|
68bd4e9faa | ||
|
8c12c46869 | ||
|
aecd1fa04e | ||
|
ac781e570f | ||
|
f28eed7f30 | ||
|
2869e04756 | ||
|
4446888eb2 | ||
|
7783912e93 | ||
|
ccac4c5fe8 | ||
|
a18681cfe4 | ||
|
096dad1767 | ||
|
068f8eed25 | ||
|
dd62829f96 | ||
|
be2959fbab | ||
|
7acdef7c01 | ||
|
bd0b6fbdab | ||
|
c83b4c21a4 | ||
|
9d22731d03 | ||
|
7b5ad8bb74 | ||
|
af98278590 | ||
|
bef2a4bc41 | ||
|
f24396ac0d | ||
|
b7f57eb556 | ||
|
c452c83855 | ||
|
c9b32463de | ||
|
1177f843c5 | ||
|
cdca28eb3f | ||
|
5169a947f4 | ||
|
6a95f34d0c | ||
|
11083e59ed | ||
|
6b45c7bd5f | ||
|
c5ec036b84 | ||
|
e2cfc01964 | ||
|
f007aef3d8 | ||
|
5ad1ae4e7b | ||
|
32586407d1 | ||
|
233b2fdade | ||
|
ea7e07c1a4 | ||
|
acf0885948 | ||
|
d8ef094a9a | ||
|
c925e8ef58 | ||
|
3f518c9263 | ||
|
8a746b457d | ||
|
0502b9cc22 | ||
|
6a0b1333da | ||
|
d05abc0807 | ||
|
b734fed853 | ||
|
67f80c7942 | ||
|
bb24d619d2 | ||
|
62f59fa59d | ||
|
adacf21edb | ||
|
314ab17edd | ||
|
49974a169b | ||
|
3bb58556ea | ||
|
98713a7cbe | ||
|
43e503e0ee | ||
|
37518342c6 | ||
|
81d582a2d2 | ||
|
bcea34ee7c | ||
|
3ff99a9eb1 | ||
|
20fbe0e254 | ||
|
e22f431660 | ||
|
9c8f2007d9 | ||
|
62a45d86ec | ||
|
3e0b20820a | ||
|
2dc8e61a72 | ||
|
47321954b7 | ||
|
ecc79ea2ec | ||
|
710740d6be | ||
|
de3c0f274c | ||
|
b215f13f04 | ||
|
950d8b8a13 | ||
|
31fc85153e | ||
|
782b0758ef | ||
|
21c5c5a336 | ||
|
f861f1fb9a | ||
|
7f79849146 | ||
|
db9f54bee5 | ||
|
134482f6c2 | ||
|
9051b28e14 | ||
|
1f76aa65f3 | ||
|
a641a992f6 | ||
|
8c334f0c10 | ||
|
ecd7b14171 | ||
|
65a1ed0f82 | ||
|
f6a8981028 | ||
|
bd1033be68 | ||
|
6eb357b421 | ||
|
1482efc927 | ||
|
908245686e | ||
|
70337e99fa | ||
|
1ecc2e042b | ||
|
bcc75099ab | ||
|
2c66f69c51 | ||
|
e1a6ed45bb | ||
|
3d5639a844 | ||
|
705cc6ee6b | ||
|
808be852c4 | ||
|
95496ebd38 | ||
|
574de287e7 | ||
|
e79afc6293 | ||
|
8e5be03fe9 | ||
|
b6f4f30015 | ||
|
222c7cd74b | ||
|
2d0e727f33 | ||
|
4ce8224c2c | ||
|
9d2fae3285 | ||
|
47f7a81b41 | ||
|
e49a6e06a8 | ||
|
4d5db19feb | ||
|
e8afa29013 | ||
|
1e6ed3f0f5 | ||
|
c99bfe116f | ||
|
03824189e4 | ||
|
645e662b11 | ||
|
1d22f001e6 | ||
|
718d2dc77e | ||
|
92425fcb46 | ||
|
7d48254cc9 | ||
|
c4efe5d0fa | ||
|
50a917ab4c | ||
|
736b619294 | ||
|
a8ffd339fe | ||
|
0897d3e381 | ||
|
5b84c51d81 | ||
|
e0b4f3ff37 | ||
|
4721007c02 | ||
|
f6b4031a96 | ||
|
39d89c8dbc | ||
|
8f2d84f4dc | ||
|
fe49e110bd | ||
|
6d46c08191 | ||
|
95bbebeb22 | ||
|
e3752b70e2 | ||
|
b45bd3ace7 | ||
|
8d5a624c8d | ||
|
29a3b6c792 | ||
|
78679ed001 | ||
|
2919b147d8 | ||
|
f514c5eafb | ||
|
2d1ce7dc24 | ||
|
026a143e42 | ||
|
9417c1803e | ||
|
6ebd64521b | ||
|
b3edc0884f | ||
|
48ce6a9a68 | ||
|
bf5f0bb8f7 | ||
|
b978fd9dc6 | ||
|
ae7f38331d | ||
|
3a21109f89 | ||
|
5d18ad678b | ||
|
2ea22ee387 | ||
|
37c7e0a6d0 | ||
|
22f7f491c5 | ||
|
60d6727974 | ||
|
86bbd05608 | ||
|
516d0f5b27 | ||
|
40d825d1c6 | ||
|
9ff92f2c36 | ||
|
740b2ffbf2 | ||
|
6728497434 | ||
|
9d2ab88c69 | ||
|
7a310cc7d9 | ||
|
20d4a86016 | ||
|
f3d3b493f7 | ||
|
448b6a7d49 | ||
|
8c9d26db1f | ||
|
e4fc9bb0b1 | ||
|
66cbf2607b | ||
|
2a90ce1935 | ||
|
b06746460e | ||
|
374a3a2005 | ||
|
84453ed957 | ||
|
8f21a055ad | ||
|
ed2f948bf5 | ||
|
5424cbd7f9 | ||
|
4ce2643bdb | ||
|
b5d1573acd | ||
|
784f0d5f3b | ||
|
c492b51b54 | ||
|
bd1c3c87b7 | ||
|
71e8f68102 | ||
|
76e1a46512 | ||
|
8467a95127 | ||
|
ae8aee0e60 | ||
|
b25fbc73d9 | ||
|
c499025623 | ||
|
91a5a73dca | ||
|
9f316bd255 | ||
|
0daf4b6b1c | ||
|
3ab6059b56 | ||
|
8e599e23a0 | ||
|
ecf6acd730 | ||
|
bb8768b604 | ||
|
1ee1dbb629 | ||
|
7d37b650a4 | ||
|
6c15f72371 | ||
|
552587dbb2 | ||
|
0602fa2316 | ||
|
9cc910cb34 | ||
|
61fa45e5de | ||
|
9cf8bd25cb | ||
|
fc89dfff9e | ||
|
84c43093b1 | ||
|
c2b0533fb8 | ||
|
513e62f61d | ||
|
2fd4dbb685 | ||
|
6f183a831c | ||
|
c543400955 | ||
|
2c4b862648 | ||
|
ddf5de8349 | ||
|
5b0d5d6b6e | ||
|
8ceff6d039 | ||
|
fb8ebe54f7 | ||
|
859ce03462 | ||
|
009efef3c9 | ||
|
ffbd1abd87 | ||
|
6e5cb747b0 | ||
|
b48d3328fe | ||
|
9da049748a | ||
|
63b7da3b60 | ||
|
72557dee52 | ||
|
2f2782ed1e | ||
|
7bc06c54c4 | ||
|
57e2a32d4c | ||
|
fa0c4ebab9 | ||
|
524156de78 | ||
|
3865bf48ff | ||
|
89b215f681 | ||
|
f315d887bb | ||
|
3d162e88c3 | ||
|
7d3ff8c7f2 | ||
|
e75a19c099 | ||
|
7925512bda | ||
|
b83538e4c5 | ||
|
d9dd8cfecf | ||
|
0d45825016 | ||
|
f6c6b13fcb | ||
|
0171263d8e | ||
|
c76fef342d | ||
|
2f245faee4 | ||
|
9c39ad3ff4 | ||
|
53d966cd64 | ||
|
bec46db5b9 | ||
|
3cddd9b58e | ||
|
a757904e8f | ||
|
937305bc41 | ||
|
7e1529c7df | ||
|
82da2e133b | ||
|
e7160c92f0 | ||
|
cbc51bc8e8 | ||
|
6738076f72 | ||
|
8afcaaddab | ||
|
a298411fa1 | ||
|
e0967e89a7 | ||
|
a0feca9711 | ||
|
c9a4f2a01a | ||
|
144dc69370 | ||
|
5e52ada169 | ||
|
2108029812 | ||
|
bcea90c896 | ||
|
6e56b79e8a | ||
|
be4afc49ff | ||
|
dba60740f6 | ||
|
0208dbf985 | ||
|
2d548a026f | ||
|
0bfb746991 | ||
|
fd8cb2a0e8 | ||
|
b3e7c01ab6 | ||
|
3d8f7ee33b | ||
|
8830354555 | ||
|
cb894cee42 | ||
|
8382b36823 | ||
|
91e0e84387 | ||
|
7ceb436021 | ||
|
2c2ee90d58 | ||
|
f95802c211 | ||
|
e9851c14f8 | ||
|
94f9a5342a | ||
|
63a0a6516c | ||
|
9db70086dd | ||
|
c37e8ae8b9 | ||
|
d6427e777c | ||
|
3f97a557a6 | ||
|
dfbde48dcf | ||
|
e769ac7941 | ||
|
8992277ce8 | ||
|
1b2819065a | ||
|
97ddf7e008 | ||
|
f67e2b9fe0 | ||
|
23caeec1cf | ||
|
202a453282 | ||
|
8013bb369a | ||
|
8536c437c4 | ||
|
9762cbf94f | ||
|
a1b994a8cd | ||
|
ef22a029b2 | ||
|
b3e3d9642e | ||
|
452f2cd086 | ||
|
e0c5c0047d | ||
|
2a1a22dffe | ||
|
67da9e0e85 | ||
|
c2c2c3f62b | ||
|
bff3c7c7af | ||
|
e2f21b3dd3 | ||
|
6c9ecf1cc8 | ||
|
4f282db6e2 | ||
|
d6e1989e1f | ||
|
4729be9e96 | ||
|
bb020c3e6b | ||
|
c22cacf9bd | ||
|
0907087ee3 | ||
|
1e985dc4f0 | ||
|
5b82ca23d3 | ||
|
2cdebe57af | ||
|
5cbe25d415 | ||
|
d764888393 | ||
|
1710a38ced | ||
|
ba75aa9d0c | ||
|
cbf98a2d7d | ||
|
7210cb8e99 | ||
|
ee3a3ef5fa | ||
|
888bc86608 | ||
|
b9b50a108b | ||
|
022b58f986 | ||
|
557160f158 | ||
|
ea5028cf2a | ||
|
4e8b104543 | ||
|
146d72468f | ||
|
f711133580 | ||
|
cd42c0e306 | ||
|
c0511d54fd | ||
|
ec3a2fa063 | ||
|
5a55891d06 | ||
|
f602f99b1a | ||
|
80708022e6 | ||
|
01cb8b3a9b | ||
|
c6fe6d49bc | ||
|
1d398ee2c3 | ||
|
812ba990ac | ||
|
5d270319e5 | ||
|
5d66d4c91f | ||
|
eefd3c0197 | ||
|
cdd9600c60 | ||
|
9ff962e86d | ||
|
5a5236760e | ||
|
62115f378a | ||
|
d88dff51fb | ||
|
3d1874adcc | ||
|
5197883379 | ||
|
cd235dfd42 | ||
|
67f1c63926 | ||
|
fb525f7cdc | ||
|
f1c178b544 | ||
|
eb754e3a84 | ||
|
0fe7972d0d | ||
|
6d55fec093 | ||
|
5a66012c6c | ||
|
3521d2e9fa | ||
|
597f001e42 | ||
|
8a8893fbd3 | ||
|
39c3a6c3e5 | ||
|
4b2c253427 | ||
|
f98653d2c9 | ||
|
c521f1d6a7 | ||
|
17104fde04 | ||
|
2f14cc832c | ||
|
585728bc23 | ||
|
22c3b7edd6 | ||
|
fa73b0b250 | ||
|
d82715372b | ||
|
084675c4f3 | ||
|
0a6421939b | ||
|
d5ca3dc132 | ||
|
adcbe0a2b1 | ||
|
556f7adab1 | ||
|
d3afd6ec68 | ||
|
fe9f5e3386 | ||
|
743d83ef71 | ||
|
76c18255b6 | ||
|
a6b1c27a5d | ||
|
783cea8d52 | ||
|
a7810bc279 | ||
|
dd7a184926 | ||
|
7cbcf4351b | ||
|
3957161124 | ||
|
840173a21e | ||
|
66e9832f5e | ||
|
67ad602041 | ||
|
7716961f07 | ||
|
6876559ceb | ||
|
fe38280a1a | ||
|
fff200b1d8 | ||
|
cc753db132 | ||
|
ec565de6cb | ||
|
fc631040fd | ||
|
615d5eaa77 | ||
|
72c4c18364 | ||
|
4c4debf004 | ||
|
7323e4467b | ||
|
c954249dfa | ||
|
f6a7fe168a | ||
|
659e1e4a26 | ||
|
632bcdd2da | ||
|
fb62d22013 | ||
|
58ea656fd8 | ||
|
16d8698e1b | ||
|
d8ae6cea75 | ||
|
dc40572312 | ||
|
3c014ccb2b | ||
|
bd22a92d68 | ||
|
40c2fa7e5e | ||
|
604b3f49b7 | ||
|
f6cbc7e80b | ||
|
0417599344 | ||
|
c694e86422 | ||
|
a951ca4489 | ||
|
794ad66896 | ||
|
857cec0509 | ||
|
d3472cd4a1 | ||
|
d6078821c5 | ||
|
21019fac66 | ||
|
03c6ed32fb | ||
|
1f98477c22 | ||
|
c8351d6d20 | ||
|
54eef1153f | ||
|
88d257f04b | ||
|
a55b96c9f6 | ||
|
14d96d0086 | ||
|
8ad14af39c | ||
|
52217bd4e4 | ||
|
dfdb92d3ab | ||
|
358a5d8b46 | ||
|
dcfddb8445 | ||
|
fa14375a65 | ||
|
b494e6b043 | ||
|
46d0cf7bb4 | ||
|
00849941c3 | ||
|
36554f3ce8 | ||
|
2cb7e510dc | ||
|
d80367c5fc | ||
|
6b92f23c81 | ||
|
4698d20fb4 | ||
|
f4287e1f56 | ||
|
0d68cebea8 | ||
|
5e351dad53 | ||
|
2db4dc8c96 | ||
|
856fcf7554 | ||
|
242476c290 | ||
|
3caa31bf58 | ||
|
9c5f338d3c | ||
|
43eeb008fa | ||
|
0be63a81c7 | ||
|
5b0406cfdc | ||
|
ca62538ce3 | ||
|
fb3f811cf3 | ||
|
192c1d81b8 | ||
|
d451f4180e | ||
|
5df37895d8 | ||
|
d83eefaf14 | ||
|
0d2e9455aa | ||
|
8bd35d47ad | ||
|
c728889e0e | ||
|
4de62a3712 | ||
|
c141962dc8 | ||
|
93796bb474 | ||
|
619820a059 | ||
|
3be5ab3a5c | ||
|
7f29daf0d4 | ||
|
9a23f187ce | ||
|
8b21096919 | ||
|
4dada87d32 | ||
|
322f8eabd6 | ||
|
2b17ecf196 | ||
|
1484f8ce91 | ||
|
52cb565eef | ||
|
a755103350 | ||
|
414e17a089 | ||
|
fedfc330ef | ||
|
8a8a05e31c | ||
|
8e2dd65c6e | ||
|
02f54ef219 | ||
|
aa76f6b9f2 | ||
|
eff277a872 | ||
|
e56088f921 | ||
|
269f9251a2 | ||
|
ca2a380d03 | ||
|
a2ab14d9d5 | ||
|
0d3dd61ad4 | ||
|
13aa1ff760 | ||
|
7870c48ced | ||
|
5d0f7229e3 | ||
|
bd407fd866 | ||
|
98515e7c7d | ||
|
34d415a6b3 | ||
|
c1ce0153ea | ||
|
9de41ce44c | ||
|
9efa7c1a8c | ||
|
762d9fcf7b | ||
|
62333f0ca2 | ||
|
1ac142347e | ||
|
1d54d60f04 | ||
|
fef1996b3d | ||
|
0bc9d87891 | ||
|
3bbe0f1d4e | ||
|
55d9154b01 | ||
|
6cd54639b5 | ||
|
7ef87e3fbd | ||
|
68122fca27 | ||
|
f340e8ca04 | ||
|
da4b446ac6 | ||
|
7d18ecd1bf | ||
|
b3199265a2 | ||
|
05a58e8942 | ||
|
1c724d0860 | ||
|
76f2305b84 | ||
|
0daf6ccbcb | ||
|
c903381154 | ||
|
0ae8710132 | ||
|
ebc4912ada | ||
|
663e611fae | ||
|
f4a1d4ef02 | ||
|
fe97d19c66 | ||
|
d7ccd22383 | ||
|
bda6b55047 | ||
|
15e1d87527 | ||
|
922f75b004 | ||
|
f729887320 | ||
|
fc75ca40c3 | ||
|
3e97ed915a | ||
|
ecfd198c3f | ||
|
7a1231a32f | ||
|
e10ea1fcf3 | ||
|
2a8239075e | ||
|
f28b1fd178 | ||
|
800bd98ae6 | ||
|
c45df4e820 | ||
|
fa636e35e0 | ||
|
02e6e6cf48 | ||
|
bcbe6339ec | ||
|
eb4186add4 | ||
|
fdc827e066 | ||
|
58ef28e914 | ||
|
40027e054c | ||
|
1a029a71e5 | ||
|
0766a10ad3 | ||
|
ad43169065 | ||
|
3be435561a | ||
|
93f3323074 | ||
|
a378e0eb0c | ||
|
8e5a635bfb | ||
|
50177914a8 | ||
|
f3093a3740 | ||
|
9a753a269f | ||
|
69bf5a8403 | ||
|
1dd6d583d0 | ||
|
2c04ce7a61 | ||
|
df49e0e993 | ||
|
f269ddacce | ||
|
4d9118447b | ||
|
114ed8bec1 | ||
|
96bc21aa6b | ||
|
034feb87cd | ||
|
193d54c4eb | ||
|
4aa3a80558 | ||
|
2060f00f95 | ||
|
05cf78b589 | ||
|
361e97d097 | ||
|
9da3adeda9 | ||
|
bd4887f660 | ||
|
befab4f3c1 | ||
|
b1c6b3bc94 | ||
|
0ba0a9cbd3 | ||
|
ab3d8ade72 | ||
|
acd824d432 | ||
|
d0197a94fb | ||
|
f59246ea25 | ||
|
55c4fd644c | ||
|
ecbb37e0ba | ||
|
70c289fef0 | ||
|
80a6a58a84 | ||
|
87dfa9a061 | ||
|
39d700b87a | ||
|
b2affdff5b | ||
|
3ce8510f88 | ||
|
bc869f8ec3 | ||
|
39b3db9e27 | ||
|
fabb5bc7e6 | ||
|
b0b78ee144 | ||
|
d0e2023a63 | ||
|
65065bf315 | ||
|
868c5bd114 | ||
|
3905227758 | ||
|
cfea05c2b4 | ||
|
0951e204c9 | ||
|
a91b1d2f26 | ||
|
e8f5e62c44 | ||
|
fb94245943 | ||
|
d3224c420a | ||
|
2afa989500 | ||
|
946da08304 | ||
|
33306a0699 | ||
|
5a33a141af | ||
|
e7186f41ed | ||
|
79b09577eb | ||
|
ce28527cde | ||
|
8a54793ede | ||
|
b69507be8a | ||
|
a7bfe9afed | ||
|
59900357a7 | ||
|
8c79e9a61e | ||
|
bb20f3966f | ||
|
201a5b6e06 | ||
|
8bb9a9803b | ||
|
b7b3282649 | ||
|
6e05cb38f6 | ||
|
a4c69a8f43 | ||
|
47fcf3403f | ||
|
6f96f8b01e | ||
|
6ab2821c34 | ||
|
29b775f22c | ||
|
78c3b8bb86 | ||
|
d1dfbe8ce5 | ||
|
8ab866e7f4 | ||
|
de834b65e8 | ||
|
2d1e8dc8a0 | ||
|
b5a1c54ab2 | ||
|
5e23959e12 | ||
|
5ae963cb34 | ||
|
b33e95f1e7 | ||
|
9ba0560696 | ||
|
e05876a5f6 | ||
|
afae9421f6 | ||
|
f72e847c17 | ||
|
cf40048f67 | ||
|
0df96f101b | ||
|
8591108451 | ||
|
cc67e8b26f | ||
|
97a4114265 | ||
|
e19dac0658 | ||
|
481ca6190e | ||
|
642b774530 | ||
|
4d5e8df8e6 | ||
|
568a74e22c | ||
|
7b062b76c7 | ||
|
3392f3aa09 | ||
|
af6eebaa1a | ||
|
f8acf53f72 | ||
|
73c133c91d | ||
|
0ac066aac7 | ||
|
65d825b62c | ||
|
e9bea9dec0 | ||
|
6cab65efb0 | ||
|
8ef8df4b18 | ||
|
6a24d72183 | ||
|
e65c0171e4 | ||
|
0ce55e897d | ||
|
fe7c833c8b | ||
|
1aca32454f | ||
|
86fcde5d07 | ||
|
8195035363 | ||
|
eb7019d54a | ||
|
ab5ab01496 | ||
|
9d2c1f7602 | ||
|
195f6460e0 | ||
|
e9a6f46bef | ||
|
5331a555f6 | ||
|
3bd612ad81 | ||
|
dcae4f330e | ||
|
642f990fbc | ||
|
7268c5ebfb | ||
|
68e6e8ca90 | ||
|
fa13f06e64 | ||
|
e2ced58517 | ||
|
838e488134 | ||
|
555624decf | ||
|
528b1b10b7 | ||
|
e9e9ab8919 | ||
|
f4f749f130 | ||
|
c66dd87f68 | ||
|
3b3dfebd82 | ||
|
5afda415d1 | ||
|
7481cf9ffe | ||
|
bb6d4d67d5 | ||
|
22331c8951 | ||
|
6db29a7ae1 | ||
|
c27b049ca0 | ||
|
bb32ec38da | ||
|
d40cb5f618 | ||
|
599adb3003 | ||
|
13914b91df | ||
|
01284ef6a0 | ||
|
7f9792b571 | ||
|
5882a9a3a2 | ||
|
a673858e13 | ||
|
c27a6472af | ||
|
4a4f62f29e | ||
|
aae5852ad3 | ||
|
e01c998758 | ||
|
2df69fc3ed | ||
|
3757caf449 | ||
|
ce97122c6d | ||
|
4eda5218d5 | ||
|
a37f82bb9d | ||
|
d0ca73caf8 | ||
|
ec66a42664 | ||
|
3bfeacaa88 | ||
|
ec49bd2d69 | ||
|
d69049d6be | ||
|
2dd571bc5d | ||
|
73741e547b | ||
|
362541c2b1 | ||
|
bd29de880d | ||
|
466abd7a3d | ||
|
7df35e8131 | ||
|
02253134c9 | ||
|
e420c9c895 | ||
|
697e4963db | ||
|
c5d83ef715 | ||
|
1c3585f575 | ||
|
09e308a06d | ||
|
fabe9ce56b | ||
|
1f8149706c | ||
|
7dd0c7296f | ||
|
868bc3a069 | ||
|
bb43e732c8 | ||
|
79ea63f164 | ||
|
1169e1915d | ||
|
1b439cb6a0 | ||
|
61e263ba8d | ||
|
f958ea921c | ||
|
38c26c8c44 | ||
|
6c0e17480c | ||
|
919597bfcf | ||
|
8a8403ff8a | ||
|
7330cdee2c | ||
|
b8b6625872 | ||
|
1b50650267 | ||
|
6be65cb512 | ||
|
7e60a3c075 | ||
|
cb0583df1d | ||
|
56ddf5827f | ||
|
9433ff449a | ||
|
c44b366350 | ||
|
0857237fbb | ||
|
27a95675d0 | ||
|
f74a4e6e9b | ||
|
504901ccb6 | ||
|
281330b1d0 | ||
|
48db45f85b | ||
|
a414584f4b | ||
|
c8e92608fd | ||
|
47b1973cb6 | ||
|
b8bab30684 | ||
|
d9e07b3b29 | ||
|
9a72f39ff3 | ||
|
d1aefbea62 | ||
|
87d0888fee | ||
|
af97a8312c | ||
|
a8d2b819c4 | ||
|
ed974c2c84 | ||
|
1a9c7fe9ca | ||
|
38c3552908 | ||
|
0bfe270078 | ||
|
8a4d7685f7 | ||
|
a88a68f8a6 | ||
|
9c590dae7b | ||
|
6fc6e7ced2 | ||
|
277f7d906d | ||
|
cdcb787991 | ||
|
ae4575369c | ||
|
8ae115f9bd | ||
|
d591b4d2da | ||
|
be74893e02 | ||
|
45a00f1a93 | ||
|
a2a199b48e | ||
|
6326b6b631 | ||
|
dbdbf23bea | ||
|
00f5732a0d | ||
|
3ecd2f150d | ||
|
b29a011186 | ||
|
20d64270a4 | ||
|
15c1975f6e | ||
|
008e313652 | ||
|
a65877cd7e | ||
|
e30d10288d | ||
|
a0c8df6679 | ||
|
a43cdbac54 | ||
|
0cf4212835 | ||
|
c11cb57c66 | ||
|
2fd174d7cf | ||
|
c55d59e70a | ||
|
009bc4a1a3 | ||
|
a12b70468f | ||
|
8c8655863e | ||
|
e174f1475f | ||
|
cdd3441ead | ||
|
20f68ef013 | ||
|
976516a559 | ||
|
39b0ac4fda | ||
|
7d1aa37f50 | ||
|
8ab730f47d | ||
|
6b5b413025 | ||
|
6f99cf0fd5 | ||
|
77745e466d | ||
|
f671d7559a | ||
|
eb141e88fb | ||
|
f3598d2f4d | ||
|
691496af3c | ||
|
3de74e58b7 | ||
|
628d39931f | ||
|
a5314f57af | ||
|
6f4d1cda13 | ||
|
0e69bcc282 | ||
|
bd23583431 | ||
|
e0a7676c3f | ||
|
09ce2ab70e | ||
|
52f50287e9 | ||
|
0f51a85d8f | ||
|
0ecc72e945 | ||
|
66990474b9 | ||
|
da77c9e744 | ||
|
c251ab51c0 | ||
|
502982154d | ||
|
bf36dd2036 | ||
|
ebc889baea | ||
|
14cd51056b | ||
|
1dc5c4f98f | ||
|
95080106e0 | ||
|
7e8ef278fe | ||
|
6bdebe22ed | ||
|
29450d8893 | ||
|
e979194a0e | ||
|
e10331f988 | ||
|
573a1b7d35 | ||
|
335535e73b | ||
|
0e4ce1f978 | ||
|
565a287d20 | ||
|
f4b9a7143c | ||
|
66436bd9f7 | ||
|
724b3682d1 | ||
|
7767648520 | ||
|
64ce9d2218 | ||
|
cd85541e19 | ||
|
c1583fa001 | ||
|
5842b8416e | ||
|
3e296a4a90 | ||
|
8a03e0d670 | ||
|
46cee69804 | ||
|
ec6335bdfd | ||
|
28c24c8c45 | ||
|
b90e2c6300 | ||
|
6b47cbb4c5 | ||
|
43ce44cb3b | ||
|
f9d4e11a27 | ||
|
8956654288 | ||
|
5bc0e89871 | ||
|
d16b240749 | ||
|
73c355b92a | ||
|
34629afda0 | ||
|
d2fb48ce49 | ||
|
b5943a430f | ||
|
43d75d712f | ||
|
51be1ad2c1 | ||
|
15a7a77bb6 | ||
|
f68bdb9e08 | ||
|
b4a900c993 | ||
|
dfc43e819e | ||
|
07bf18168f | ||
|
5ca9674ced | ||
|
154ebc24c2 | ||
|
3e128d06f4 | ||
|
453adbcd5c | ||
|
04e15e6555 | ||
|
db119a60e6 | ||
|
d927154217 | ||
|
275ef147f6 | ||
|
8566f81d4f | ||
|
74eefdb4f1 | ||
|
c90e562367 | ||
|
f4c45f3f21 | ||
|
99dbea1469 | ||
|
33666c7817 | ||
|
c7be5d25d0 | ||
|
c990818200 | ||
|
6cab639d8e | ||
|
21dbabe6f2 | ||
|
fe9254790c | ||
|
cbe63da1f7 | ||
|
c190451098 | ||
|
551a018613 | ||
|
45f0c77761 | ||
|
6e89799b05 | ||
|
8877688ee4 | ||
|
669c45125c | ||
|
876dc581a8 | ||
|
a267db851a | ||
|
26c150090a | ||
|
4926ff0992 | ||
|
39c6d11ed6 | ||
|
5b5a29849e | ||
|
b9123cad7c | ||
|
43e3b3e328 | ||
|
7149349e25 | ||
|
9080a0e778 | ||
|
d26e0423f7 | ||
|
b602e0c014 | ||
|
29d44973a7 | ||
|
903185a69c | ||
|
84cd7e496b | ||
|
b3f3886cd9 | ||
|
b1e1ee7d55 | ||
|
b60322f729 | ||
|
b89539a70e | ||
|
78ea308608 | ||
|
d7435d02d3 | ||
|
3539f9372d | ||
|
0e15eb4f00 | ||
|
119261dc5d | ||
|
2c0509a5c7 | ||
|
443b931b36 | ||
|
8c6ef3f0fd | ||
|
0fa0013a69 | ||
|
8f4c87ad49 | ||
|
5842c912a9 | ||
|
c6412a186c | ||
|
e72e6679a3 | ||
|
0788754a5f | ||
|
f5e7233162 | ||
|
a37f95e7db | ||
|
20490b0618 | ||
|
8b1f69c1a3 | ||
|
f830f0f6df | ||
|
4721a4ae19 | ||
|
c4a5099e56 | ||
|
be343298e8 | ||
|
54017bcf63 | ||
|
90a4ea4f9b | ||
|
6b5cbe3768 | ||
|
46b4a74549 | ||
|
feb94b446a | ||
|
879362c5b5 | ||
|
1e7fc0f7df | ||
|
8df557f621 | ||
|
8b8606349e | ||
|
2b8b04dd55 | ||
|
b23c4dacb9 | ||
|
f703f3f20e | ||
|
2d39d34ab5 | ||
|
671efc0726 | ||
|
d17b554666 | ||
|
7557af0594 | ||
|
9f4a240f91 | ||
|
07576eb338 | ||
|
c61946329c | ||
|
cc3afd87aa | ||
|
858d9271e3 | ||
|
5aa4aae0f5 | ||
|
82240cb661 | ||
|
f3664b07d2 | ||
|
a3e0117ff0 | ||
|
e5f88a1462 | ||
|
95d873574c | ||
|
d35b3b4792 | ||
|
c8e5c36c1d | ||
|
01b966c664 | ||
|
0c63f03db4 | ||
|
962d3f1df0 | ||
|
0198029ea6 | ||
|
b0e7221b3a | ||
|
f6b121758b | ||
|
4c0a1ec0a0 | ||
|
8dd76e6e2f | ||
|
edf27fdac5 | ||
|
1c2f65f268 | ||
|
b732b4d8c8 | ||
|
291b865f17 | ||
|
f57a7826a8 | ||
|
e5c80e46b0 | ||
|
a66e640499 | ||
|
24fab91694 | ||
|
5881a24faa | ||
|
3b82c8cb10 | ||
|
b9919f7c88 | ||
|
2e9b3fc31e | ||
|
0a089c8656 | ||
|
a82afd6ccf | ||
|
4fc58068c9 | ||
|
fccae1009b | ||
|
5dac5fdb3b | ||
|
ddc8e5c712 | ||
|
3c07c8c2a0 | ||
|
c97a9b0b19 | ||
|
57326be5bf | ||
|
7e589a529d | ||
|
6afa29eb5c | ||
|
d7c3d59799 | ||
|
1c8e7a3483 | ||
|
a88e640924 | ||
|
3c27aa2f2e | ||
|
0614a1a57f | ||
|
447a5391ed | ||
|
7345f1ce2e | ||
|
75abae80fd | ||
|
70513f8da4 | ||
|
d5acfc5c2f | ||
|
83c886781d | ||
|
1215c3ddbf | ||
|
ea1a4ffbb8 | ||
|
cada6f294d | ||
|
4ade2789f6 | ||
|
c06f224ace | ||
|
bb21336191 | ||
|
d32030a374 | ||
|
adf10ef492 | ||
|
6788d82316 | ||
|
a470f0a6db | ||
|
3feafaade6 | ||
|
8ed41ea525 | ||
|
558f672634 | ||
|
ca4ce6b2f5 | ||
|
9a8d8f5b0c | ||
|
6f61d70b72 | ||
|
ffe201be36 | ||
|
8943c34572 | ||
|
dc5add2b8d | ||
|
10a4d74190 | ||
|
94419d4573 | ||
|
f59419ed7e | ||
|
457f13ad0b | ||
|
aea5c3545c | ||
|
d1d7ed1381 | ||
|
44caadc723 | ||
|
7c21eb84ea | ||
|
07cbc847f0 | ||
|
f6fae7b536 | ||
|
ba04bc9d22 | ||
|
1946d81ab3 | ||
|
e263405a81 | ||
|
300f887c02 | ||
|
2ee9d4f101 | ||
|
255c79a8f7 | ||
|
6f0f366780 | ||
|
1e607a8041 | ||
|
49845c1155 | ||
|
f6e9e043d8 | ||
|
75c25556aa | ||
|
8a040f3fbc | ||
|
07b2046685 | ||
|
90c15aeebc | ||
|
884f48faf6 | ||
|
081d16d907 | ||
|
b795b8a040 | ||
|
dbb9cbe280 | ||
|
3b1f936dcf | ||
|
d334072722 | ||
|
62a390582c | ||
|
a4b104c1da | ||
|
b823a94124 | ||
|
2451c0a815 | ||
|
725e82f6df | ||
|
4334b446b5 | ||
|
34595c02ba | ||
|
1d49ddd86f | ||
|
cdb252faaa | ||
|
5f4522e55b | ||
|
b1f0276307 | ||
|
5ce1e1e7df | ||
|
2ed21c98d5 | ||
|
f3815b7bc8 | ||
|
49b4156cfd | ||
|
486413731a | ||
|
9715054102 | ||
|
7735f22562 | ||
|
d8e441b079 | ||
|
d75952394f | ||
|
af012e8b5a | ||
|
b6a320503e | ||
|
9a919d8fa3 | ||
|
b4ecdae8e4 | ||
|
0ca20b14f5 | ||
|
e1ee0dfec1 | ||
|
685c41689e | ||
|
8fcb5dcc4d | ||
|
c606055df2 | ||
|
a4855decb8 | ||
|
86cf600d9e | ||
|
852959cf2b | ||
|
a5f1ff43b5 | ||
|
d836677342 | ||
|
b1eaaea89a | ||
|
11f2c076f6 | ||
|
10c038d8f3 | ||
|
3d4af04927 | ||
|
1af967b00e | ||
|
b5993fc2a3 | ||
|
a29d2e1149 | ||
|
9cd1277d70 | ||
|
ee2a59ad59 | ||
|
e05efe8280 | ||
|
ee33976d1d | ||
|
d0d1fd189b | ||
|
76cca33525 | ||
|
8bdc3940b1 | ||
|
31cbb60a38 | ||
|
582919804a | ||
|
eaa597a430 | ||
|
a6c5def4f4 | ||
|
13f5997554 | ||
|
846df59882 | ||
|
2d2c0ab6cd | ||
|
5625078cfe | ||
|
9e7dc9433a | ||
|
87fe2847f0 | ||
|
5c1782a605 | ||
|
115d0e794e | ||
|
ee4620ef9e | ||
|
5fb5228591 | ||
|
54ab1f1e80 | ||
|
b07fb709ba | ||
|
96a7e04ea5 | ||
|
2fea7969d3 | ||
|
d668f3a3c3 | ||
|
9749aa936c | ||
|
e2cc1aec26 | ||
|
e6624c1fd5 | ||
|
3bb2edd53d | ||
|
7de24bad2e | ||
|
297ac8ef4c | ||
|
cd995ff45f | ||
|
e61761e9af | ||
|
c927c31391 | ||
|
2dbcad7840 | ||
|
d2a344af5d | ||
|
9d5f9606a4 | ||
|
4094d62613 | ||
|
ceaf6fcffe | ||
|
e72ae0a4b2 | ||
|
28620b7d93 | ||
|
65cfd74b98 | ||
|
11e2cd925b | ||
|
f7797b89ed | ||
|
7d80314235 | ||
|
3d9845ebed | ||
|
b3d07e26fc | ||
|
9b12a923f5 | ||
|
eff3b08d49 | ||
|
1f22248965 | ||
|
68677b8525 | ||
|
8e538eebc5 | ||
|
5bc7723feb | ||
|
18e75202d7 | ||
|
11cf09b41a | ||
|
908d04d0e8 | ||
|
e7c028eed6 | ||
|
8bdad7d73e | ||
|
12a624330f | ||
|
d7be6e037b | ||
|
1d90ddc0a9 | ||
|
830d16943b | ||
|
0b03fa963a | ||
|
a1617548cf | ||
|
2bfea20007 | ||
|
843e3ae849 | ||
|
6f36a478a5 | ||
|
880deabac1 | ||
|
eba65f57ab | ||
|
7f4badc947 | ||
|
ebd9d0fe25 | ||
|
bb5cf54e61 | ||
|
ff5fe30407 | ||
|
50ca72e53c | ||
|
21f0a2b1b8 | ||
|
d25b55b93a | ||
|
e599bb2a7b | ||
|
f26e20e1e9 | ||
|
5d5f34518d | ||
|
a2fa918da2 | ||
|
531f5dd9da | ||
|
1b7c42bf53 | ||
|
eecd0b91c5 | ||
|
9854db9120 | ||
|
aeac3df4a1 | ||
|
75c03dd81e | ||
|
f69d9e9559 | ||
|
11d7b71959 | ||
|
126b17898d | ||
|
8d00784dfe | ||
|
17d4dcc30b | ||
|
16dbbdb34c | ||
|
433a23feb4 | ||
|
c747d1d225 | ||
|
d4293866b3 | ||
|
9fa058a8bd | ||
|
4591cf9afa | ||
|
ed34079452 | ||
|
f6b47e2ee3 | ||
|
e900104e10 | ||
|
944a748cb6 | ||
|
eb8ace14c8 | ||
|
1b8193ab8b | ||
|
ed9cbc89c1 | ||
|
2fdd46b364 | ||
|
4f39da4343 | ||
|
a2a0038368 | ||
|
22417e3d9c | ||
|
4fb9c1cd98 | ||
|
cb833db5fb | ||
|
4f007321e1 | ||
|
3aa4b67173 | ||
|
25c80df156 | ||
|
e7a6ed20e8 | ||
|
502407a1dd | ||
|
03757a0663 | ||
|
f0f1cd37dd | ||
|
83ccccb565 | ||
|
b83de54bb4 | ||
|
261bf416ee | ||
|
a0ffbfce31 | ||
|
82abd358a5 | ||
|
d50d1101fb | ||
|
f0ebd6da0f | ||
|
9f033cbf6d | ||
|
b3f80239c1 | ||
|
0f3dbe1a30 | ||
|
4ed854c818 | ||
|
b0586b4f4d | ||
|
f866a8fd1b | ||
|
dce0441ecf | ||
|
29c9621137 | ||
|
46b70ded94 | ||
|
20fb9385f5 | ||
|
fcca5c5b58 | ||
|
36c370947c | ||
|
fa099867a8 | ||
|
88277e2d21 | ||
|
48eb74cfcd | ||
|
db5121511d | ||
|
c7dd7d42c6 | ||
|
0806d34eee | ||
|
b9193f35c1 | ||
|
43e5337a0a | ||
|
1ae812d172 | ||
|
dd93bb1aad | ||
|
bf58fafd76 | ||
|
693d008851 | ||
|
737155a43a | ||
|
53b3b1bb40 | ||
|
97e9357153 | ||
|
706a10d4cf | ||
|
ec694bf8bd | ||
|
372a3bfcde | ||
|
cfdc1ef62a | ||
|
7ae7502146 | ||
|
7a294b5fcd | ||
|
79287abd7b | ||
|
cf450bd01f | ||
|
7e5d0b9ec8 | ||
|
314dfb294a | ||
|
6705adf47b | ||
|
d8dac3f80e | ||
|
16dad60eef | ||
|
7ef52f723c | ||
|
374dc92e8f | ||
|
3c91126806 | ||
|
803ed6050f | ||
|
7336678454 | ||
|
6ee537b3f2 | ||
|
f3a9301483 | ||
|
5aba63d5aa | ||
|
a3276c3ffe | ||
|
4956dc3197 | ||
|
b1c5ad6a61 | ||
|
364461b58f | ||
|
74a747d455 | ||
|
036871cd95 | ||
|
580126cff3 | ||
|
71a1c9fee7 | ||
|
80de9f6a68 | ||
|
c71d4c364a | ||
|
dcab076221 | ||
|
94808e2cbc | ||
|
82e61f501a | ||
|
37fddf8eef | ||
|
3669849368 | ||
|
ebf7e9f45f | ||
|
d000717d34 | ||
|
d191eed760 | ||
|
a750372a03 | ||
|
5dfba1b064 | ||
|
72747ed686 | ||
|
c7898ac3e4 | ||
|
c70d024f5f | ||
|
7cf148ea13 | ||
|
41f287fbea | ||
|
3ae799f4de | ||
|
3e5090e792 | ||
|
48d038ead4 | ||
|
8bcff3ac74 | ||
|
202478d108 | ||
|
6320da67e4 | ||
|
c44c398626 | ||
|
186a3d40c6 | ||
|
230472de45 | ||
|
790e77de01 | ||
|
7286532656 | ||
|
b85c7be5ac | ||
|
5eae76b209 | ||
|
7d90f84306 | ||
|
3e4f18bed2 | ||
|
e31da34324 | ||
|
6c85564cc1 | ||
|
8cfe6a900c | ||
|
2ebbcbe233 | ||
|
4e2e36df60 | ||
|
4bee15d0fa | ||
|
b1596ffecb | ||
|
b9fccc9fce | ||
|
9345bc1610 | ||
|
78ae67ae28 | ||
|
e880d2c12a | ||
|
044d327818 | ||
|
cc9b29488f | ||
|
8fe5063a35 | ||
|
843887fcb9 | ||
|
91a60f871a | ||
|
225c313bb3 | ||
|
abc6e9a7bc | ||
|
16070b5543 | ||
|
0afd410ae7 | ||
|
faca59b3a6 | ||
|
9b6149d3ac | ||
|
4c05257783 | ||
|
e6a84dcb60 | ||
|
1f3e073894 | ||
|
dbc164e131 | ||
|
16a163662b | ||
|
67a8d8ca90 | ||
|
0e974eb49a | ||
|
d5f9e3a05e | ||
|
d181713832 | ||
|
ffb0adfc59 | ||
|
a83b8e7792 | ||
|
2f7a9c6a00 | ||
|
4051bf2466 | ||
|
a0251ec1d9 | ||
|
84f01ed0da | ||
|
9ddb1bdddb | ||
|
d26622e992 | ||
|
0b3eb2f9ea | ||
|
1a9ab15f26 | ||
|
581139ab15 | ||
|
8e54e5cc79 | ||
|
26c4dfb9d7 | ||
|
fce796517b | ||
|
d4681145dc | ||
|
2733ce0712 | ||
|
bcc90133a8 | ||
|
611b3c4e46 | ||
|
ac43c5c8bd | ||
|
b786dbc5d7 | ||
|
0efeef46e1 | ||
|
4b890cff12 | ||
|
fd5ac318a5 | ||
|
2926ceba6a | ||
|
581fe4ec83 | ||
|
02689df8f7 | ||
|
d9749d5bb0 | ||
|
4b376de3bf | ||
|
b7492a7b6f | ||
|
4a950750f4 | ||
|
59afb76df4 | ||
|
e584ce4010 | ||
|
5813b5fbee | ||
|
6758190afd | ||
|
d659276749 | ||
|
8be1ad4568 | ||
|
0fc6fbf916 | ||
|
8ffbd66cba | ||
|
ff3458ff03 | ||
|
5be4cca408 | ||
|
3009e7ffbe | ||
|
1f00e160ab | ||
|
d7425b4998 | ||
|
186384e514 | ||
|
41918b8afa | ||
|
e6c45623ea | ||
|
8c42a9d900 | ||
|
17f8134a3b | ||
|
d3749538f1 | ||
|
f9a364074d | ||
|
3002cee42a | ||
|
cb0f4790ae | ||
|
6be6b69110 | ||
|
f26e83e4c6 | ||
|
37ccd29558 | ||
|
55c493cd7d | ||
|
5ef225381d | ||
|
1056cd9ca2 | ||
|
9c980256bf | ||
|
8b4892b96b | ||
|
68326c6aa1 | ||
|
1a4739aed9 | ||
|
670dbaba1b | ||
|
6d71748e9a | ||
|
3089770fec | ||
|
5d5c3481b7 | ||
|
d48e0f7f13 | ||
|
3837d2cfee | ||
|
ac6676a144 | ||
|
03e15166c7 | ||
|
3986273fdb | ||
|
c7ed162a06 | ||
|
417271f573 | ||
|
cbbba2dcc7 | ||
|
6b7d9af0c2 | ||
|
5ed02c2149 | ||
|
3be57cea04 | ||
|
dac910d27a | ||
|
380b7d0a98 | ||
|
bc045fd19b | ||
|
7b70984ef3 | ||
|
c37e696c1c | ||
|
c7d47e34e8 | ||
|
fd7524858c | ||
|
d6f5b5ef6c | ||
|
86085f96ab | ||
|
a8e2f4256b | ||
|
8b7e0563a5 | ||
|
3e9c2ea025 | ||
|
bf96786cda | ||
|
960e5af71c | ||
|
679f3b0c76 | ||
|
db83419ea3 | ||
|
f7ac1d2629 | ||
|
b8e86975a4 | ||
|
c435c55657 | ||
|
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 | ||
|
7b428641f0 | ||
|
e0e410e8a2 | ||
|
0641c209d7 | ||
|
dba351702d | ||
|
5e5042e52a | ||
|
4679433ae1 | ||
|
3e22a2eebd | ||
|
79a6648b99 | ||
|
8dbda26623 | ||
|
04204c7ec6 | ||
|
5d6f8c8bd9 | ||
|
79bc1ba9ce | ||
|
7ea063100e | ||
|
0a8b2eb58e | ||
|
56bff6380e | ||
|
85837d48b2 | ||
|
ba17f16dc8 | ||
|
a340c362bc | ||
|
46a68d37ee | ||
|
e9fc3ed22e | ||
|
cbb5e6f765 | ||
|
219955fa6c | ||
|
95a696c4da | ||
|
85910fe5bc | ||
|
76b4a2faab | ||
|
0b39e4e854 | ||
|
78ce646c69 | ||
|
51f0c16b5f | ||
|
4ae43c7970 | ||
|
912eb28223 | ||
|
7df08fe12e | ||
|
729e2f5d08 | ||
|
e2de342d3a | ||
|
b14c7c3511 | ||
|
c2997ada7a | ||
|
6ccffec906 | ||
|
00682db8a6 | ||
|
0a7e98951b | ||
|
b6a99e7dca | ||
|
f09f5bc51c | ||
|
ce35aa8b0b | ||
|
930895f563 | ||
|
75e4fcd2e9 | ||
|
9887a9d76c | ||
|
b40fe17d93 | ||
|
1a2e5f6ee6 | ||
|
163aac74db | ||
|
d87fc02774 | ||
|
be17a8417d | ||
|
ff25d0a508 | ||
|
c569d0dabc | ||
|
d136a8a907 | ||
|
404768a607 | ||
|
e95e387188 | ||
|
9cb1119d1e | ||
|
1e67ffee1d | ||
|
c0eee6d153 | ||
|
40a69b8edf | ||
|
1b20430399 | ||
|
0e8e8c7b14 | ||
|
2cdc2e751e | ||
|
7ae8f98ec6 | ||
|
eb0195dd7c | ||
|
b6f400a014 | ||
|
28fd9457e9 | ||
|
b8616fe9ac | ||
|
6a7ed40b05 | ||
|
4e816b58c6 | ||
|
f985f42dc2 | ||
|
734c1cd5bd | ||
|
95880a5f49 | ||
|
90a8e1dd1c | ||
|
ade88f020e | ||
|
fe7118aea0 | ||
|
396a8214db | ||
|
b0b3810aab | ||
|
fa18778c91 | ||
|
a8fb843ded | ||
|
6e757eea94 | ||
|
dfcc744275 | ||
|
e78632767c | ||
|
cf7c3dcab5 | ||
|
77da8b6507 | ||
|
23fd522dbb | ||
|
06c894ff7f | ||
|
f0bf54f9eb | ||
|
e75071fbd2 | ||
|
4e3b22b332 | ||
|
0a133fe009 | ||
|
801214f0ee | ||
|
ebdb38857c | ||
|
4008800527 | ||
|
cbbc64a54f | ||
|
6df8b7f367 | ||
|
49ea5a4091 | ||
|
90d425478b | ||
|
d9f9360c5b | ||
|
6b6a24ffb3 | ||
|
8b6776eed2 | ||
|
a671eaf25d | ||
|
829ac4062d | ||
|
33785d0fd3 | ||
|
1ba0ae6e85 | ||
|
6eb0041453 | ||
|
465d0b1a4c | ||
|
b149e50bf1 | ||
|
6105260a8e | ||
|
2f220a07d1 | ||
|
32cc32c76a | ||
|
c5ae114315 | ||
|
bea1df7759 | ||
|
5ff519c7b2 | ||
|
eb13694b25 | ||
|
fed05012c0 | ||
|
84e0f5a2eb | ||
|
ab7345d96d | ||
|
1001584c1b | ||
|
8c2d0c8c36 | ||
|
29957a92ef | ||
|
1f669a31a0 | ||
|
7df6e137f1 | ||
|
dcf733a1e7 | ||
|
1aaeb2bca9 | ||
|
6f48b3c044 | ||
|
c75c13e555 | ||
|
b80cbd0e7d | ||
|
4ce8604700 | ||
|
4cda76b5c0 | ||
|
281d5435bd | ||
|
9270cca8c2 | ||
|
367b0bc208 | ||
|
fb7498617c | ||
|
f7e51ca875 | ||
|
e8b4304c1b | ||
|
bd02c5bd08 | ||
|
d9a773cb62 | ||
|
6b85faf7da | ||
|
94653b565f | ||
|
5c73f471f5 | ||
|
6c71f30723 | ||
|
a34334b74e | ||
|
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 | ||
|
a84e4b5ab4 | ||
|
f4935ef500 | ||
|
9217b85c68 | ||
|
ba945496b4 | ||
|
4ddd3511de | ||
|
ae08036b2c | ||
|
16941ff495 | ||
|
942bfd6506 | ||
|
a028dfab12 | ||
|
70044669e0 | ||
|
914199d50f | ||
|
344b603f42 | ||
|
7e8c6d8c0d | ||
|
a4edb41e3f | ||
|
9454377e55 | ||
|
53aa79cd29 | ||
|
c9284e1c68 | ||
|
813a55b01d | ||
|
1ef43bc1a1 | ||
|
0b2a0cc9b4 | ||
|
13932e9aba | ||
|
680acb45e2 | ||
|
fcff807834 | ||
|
84decb2875 | ||
|
281049eafd | ||
|
c9c7df735c | ||
|
81cbefdae5 | ||
|
4e285db71a | ||
|
a7c02304a5 | ||
|
f0afccb173 | ||
|
d1822e821a | ||
|
28ff362ec0 | ||
|
8160a8a1ef | ||
|
f8967fec78 | ||
|
ce93b22410 | ||
|
2ef7530857 | ||
|
177cc22683 | ||
|
41728f2258 | ||
|
bcac30c8bb | ||
|
78c1957e48 | ||
|
ccc21a8c94 | ||
|
b94464d063 | ||
|
08842e6ba5 | ||
|
ae00da85ec | ||
|
6757450a0f | ||
|
a9a44c295f | ||
|
88d94a7c19 | ||
|
4abdfd1709 | ||
|
6600fc6cad | ||
|
d186df8cb4 | ||
|
6e20cd5d22 | ||
|
cf898133a4 | ||
|
56e2f1a3f6 | ||
|
850ea776d9 | ||
|
c31216e493 | ||
|
32accc18e7 | ||
|
ecf4da2df0 | ||
|
2a32d74d20 | ||
|
6f6b8d046b | ||
|
2224a76c24 | ||
|
776a7302a4 | ||
|
954c0ddf3e | ||
|
f84cc449b9 | ||
|
a1e8282e67 | ||
|
d613984660 | ||
|
4db585a4cb | ||
|
dcafa6a711 | ||
|
f920336be4 | ||
|
3e23adf030 | ||
|
01e64dbc9c | ||
|
cc8d6a5a01 | ||
|
b4f9c44b30 | ||
|
5bd3b7ec37 | ||
|
8048d817ca | ||
|
2e7d58c63b | ||
|
bf359d153d | ||
|
29d4367043 | ||
|
73537bcc7d | ||
|
4cdfb3f4ed | ||
|
454ea081f1 | ||
|
88ec8cdcc6 | ||
|
694a90c18e | ||
|
8bc056ebe6 | ||
|
42e278e1c3 | ||
|
79be901cea | ||
|
26215517dd | ||
|
31aeac5745 | ||
|
59f489c01f | ||
|
6c8d006336 | ||
|
56477a8f7c | ||
|
525c940385 | ||
|
2762b93e4a | ||
|
b0465a6202 | ||
|
54c684051b | ||
|
7a3e351178 | ||
|
29a77ea10d | ||
|
0b843505e8 | ||
|
9c15594fe4 | ||
|
5080c3e088 | ||
|
0f1643374e | ||
|
62a68def57 | ||
|
815cb84ea5 | ||
|
f3d89e0e08 | ||
|
d4652c1b20 | ||
|
e59af343b8 | ||
|
7dd822942a | ||
|
9a992a4866 | ||
|
826cc9751a | ||
|
2d8c5efbd2 | ||
|
f5f03d24e9 | ||
|
93a472f08e | ||
|
6de0c7bc66 | ||
|
3975983481 | ||
|
ecb39bc435 | ||
|
49ac98ffdb | ||
|
a8f2b461d4 | ||
|
6a79083c43 | ||
|
14d83139ce | ||
|
64304c8364 | ||
|
78f0ec8ea7 | ||
|
da6be75a18 | ||
|
a4436fb54d | ||
|
fffcb2a6af | ||
|
b563b7d26f | ||
|
463807fcf0 | ||
|
66016db386 | ||
|
aec25f24ae | ||
|
6cc16af75f | ||
|
af84fb71e0 | ||
|
3fbdb2f345 | ||
|
ec306b0301 | ||
|
fa5df79515 | ||
|
c0bd3122e0 | ||
|
89e95941b1 | ||
|
37de0f96d1 | ||
|
964c212f03 | ||
|
1de4a65e58 | ||
|
ebd958c728 | ||
|
4555817a8b | ||
|
54fff02f95 | ||
|
0a5d167441 | ||
|
784938e68b | ||
|
b8f76a9330 | ||
|
3947970d0b | ||
|
38e5913338 | ||
|
08ee5a608b | ||
|
48522fd938 | ||
|
0cbf06780e | ||
|
fe052fccd4 | ||
|
96335c0402 | ||
|
0854c7226d | ||
|
bf6f1cac8f | ||
|
5fe3719f13 | ||
|
a84dfe716b | ||
|
9e772d1421 | ||
|
ba92e7d2d6 | ||
|
fa5a0d5e21 | ||
|
d18e547332 | ||
|
cefdf8bf19 | ||
|
eee18f3747 | ||
|
e991df195b | ||
|
1d1d963c14 | ||
|
cfea54f8f3 | ||
|
0a5599697f | ||
|
f41c51d1ec | ||
|
4ad288c544 | ||
|
997098d02a | ||
|
6e75b8bb3c | ||
|
fe030f67ef | ||
|
276f350bcb | ||
|
3f852a3233 | ||
|
f21c5f9fef | ||
|
b6e5a5fca8 | ||
|
82a04debca | ||
|
2975eef976 | ||
|
159c1d16d8 | ||
|
9cb22f008d | ||
|
c86e771dfe | ||
|
170dc2a63b | ||
|
ed7b44d59e | ||
|
e8dcf27ee3 | ||
|
8339269919 | ||
|
d880443ea2 | ||
|
5307da11b6 | ||
|
b4d4709726 | ||
|
2f85fc53dc | ||
|
6ada02b060 | ||
|
90722a3c66 | ||
|
a02524e7fc | ||
|
2e634e9f96 | ||
|
207b678896 | ||
|
e086d4039e | ||
|
51205febe3 | ||
|
d4e623ffee | ||
|
6078f58343 | ||
|
6440f97a4f | ||
|
be3a58aff1 | ||
|
0ffd0d1924 | ||
|
eaf42f3c72 | ||
|
cd6a0026d5 | ||
|
189f3fd68e | ||
|
221a91a26f | ||
|
cd75b712d4 | ||
|
b30822ea80 | ||
|
81fd854983 | ||
|
7543508570 | ||
|
4084939620 | ||
|
792882ef63 | ||
|
e1962acd4e | ||
|
636fc7fad7 | ||
|
710a0b3ea3 | ||
|
b53f95e577 | ||
|
6b04fda0f3 | ||
|
2df9230902 | ||
|
f567b2bb69 | ||
|
8ac4f955ca | ||
|
01d0457f67 | ||
|
5cd0aad3c6 | ||
|
4d640555ef | ||
|
cf96967677 | ||
|
423345d517 | ||
|
5a76d541a2 | ||
|
ae62bc4642 | ||
|
c281604d0b | ||
|
065feb3ff9 | ||
|
acb5794d50 | ||
|
b0334d6b4f | ||
|
ee51bf26fa | ||
|
812edebfb7 | ||
|
65ff149fc9 | ||
|
31192fc08e | ||
|
79bcb20ac5 | ||
|
179f5c75ed | ||
|
1a00b4a565 | ||
|
3433f61ccb | ||
|
d06e9745c2 | ||
|
84fdba604d | ||
|
1b4f82cd1d | ||
|
b12405dbc7 | ||
|
978d1976b0 | ||
|
3e9682fe49 | ||
|
33be961aa0 | ||
|
860a370e8f | ||
|
a4a5b069ec | ||
|
7a54701612 | ||
|
2bb08f853e | ||
|
c382536f47 | ||
|
b59e101d8d | ||
|
a12d93b8b8 | ||
|
b5e6f34cd9 | ||
|
a4ad94ef5c | ||
|
ce518043e9 | ||
|
d3c3dc24fe | ||
|
58fa8eabb7 | ||
|
7c559b2912 | ||
|
b2c5f8fb48 | ||
|
d738397e6f | ||
|
01018630c9 | ||
|
f5d28a95b0 | ||
|
204e3b1fe0 | ||
|
6559bb9511 | ||
|
90dcd1a0f4 | ||
|
6fc269b62a | ||
|
0e2c927551 | ||
|
348979c13d | ||
|
091e195717 | ||
|
5d2e144624 | ||
|
17c6cd3676 | ||
|
17ef8a0369 | ||
|
2f8b9fb549 | ||
|
b9f78d64d7 | ||
|
30f8e5d638 | ||
|
f75577e5f8 | ||
|
c934d3fcfd | ||
|
b5a997ce18 | ||
|
cdf4f5ef85 | ||
|
1dbb570284 | ||
|
e33e572741 | ||
|
6787f6706e | ||
|
0184865c5c | ||
|
e0395fa2f2 | ||
|
191008daff | ||
|
ef3b2a3f24 | ||
|
6876fcb46a | ||
|
621747c7bc | ||
|
de039dcc7c | ||
|
9e9bdb69b5 | ||
|
caa767e5a8 | ||
|
caf5ee42fd | ||
|
d0b50b9ca1 | ||
|
3002c1b22a | ||
|
1be392a16a | ||
|
6d4fdb1f15 | ||
|
ab6fd30d0d | ||
|
5cef0d2035 | ||
|
70f09a60c7 | ||
|
8a979d6871 | ||
|
a393a23a08 | ||
|
30f522351e | ||
|
7f50c26941 | ||
|
a6803e6a18 | ||
|
2a0b38cac0 | ||
|
05f9ef7134 | ||
|
ca705af91d | ||
|
fc8d0c54e9 | ||
|
c0917c2862 | ||
|
5de54906f0 | ||
|
cfd4aab7b7 | ||
|
8f3f7d1e5e | ||
|
951b097761 | ||
|
5741c8d8ee | ||
|
46ea774950 | ||
|
6007978e7b | ||
|
de308ea321 | ||
|
608cf00aea | ||
|
aad8ffff51 | ||
|
79d033082e | ||
|
bd646cff52 | ||
|
7ca740bec8 | ||
|
a91b37d8f2 | ||
|
95264e2152 | ||
|
4babe93a5d | ||
|
6422bdb5ec | ||
|
7572bc050b | ||
|
bc59342e1a | ||
|
4f44145301 | ||
|
9e90b27ba1 | ||
|
d673527331 | ||
|
34a6493fb5 | ||
|
ed2123fa61 | ||
|
e419c2cd3b | ||
|
183d1afcaa | ||
|
ddc9a4dff6 | ||
|
99d83673f5 | ||
|
5e4f4b2dc6 | ||
|
25176d4588 | ||
|
fe796267c1 | ||
|
a563b616e0 | ||
|
2a69eb051d | ||
|
0d4cd552fe | ||
|
5540a0f8e0 | ||
|
3632a0f4f2 | ||
|
730e1140e3 | ||
|
0a89c53658 | ||
|
76ea1de0ab | ||
|
fa1952fd08 | ||
|
9e985af1e8 | ||
|
0c3ff0419c | ||
|
c04642f987 | ||
|
97e92f52d7 | ||
|
b4d36e3235 | ||
|
95ab325251 | ||
|
b9a40be9b4 | ||
|
d0ef8695e4 | ||
|
9c47e0eee8 | ||
|
11475e5366 | ||
|
a614e646d1 | ||
|
a535b6449a | ||
|
2c281e50e0 | ||
|
2b1102e372 | ||
|
c01e604998 | ||
|
00f639de7b | ||
|
f6beabc593 | ||
|
964cc30548 | ||
|
bba9de8c9c | ||
|
e3b76bce37 | ||
|
84ce92896e | ||
|
84ef70b42f | ||
|
3208c41da8 | ||
|
72be8e0870 | ||
|
dd3330d7c9 | ||
|
d639e107ec | ||
|
d72498a9c3 | ||
|
61fa4f006a | ||
|
9c1baf0fd7 | ||
|
fe04f59ca2 | ||
|
9207b13224 | ||
|
8142257e31 | ||
|
29d40fd3d6 | ||
|
fdc04cb9ec | ||
|
0ebcb3f3a0 | ||
|
d6a6e86975 | ||
|
275d6ee050 | ||
|
c2841cb6e2 | ||
|
f7ec97b88e | ||
|
b6cd02bacb | ||
|
52ed8bfaa1 | ||
|
8f0643a14c | ||
|
31ab3d93a2 | ||
|
89ae1c3221 | ||
|
3f33d89572 | ||
|
7c6e660694 | ||
|
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 | ||
|
fd0d9e9967 | ||
|
5c42851730 | ||
|
411f4ac817 | ||
|
abc9d746c7 | ||
|
4282cf459e | ||
|
228e0f58a8 | ||
|
fe64174ca8 | ||
|
77315a014c | ||
|
c02be62ea1 | ||
|
5614f80b89 | ||
|
4e3ac92d05 | ||
|
571a6df993 | ||
|
296bf434b0 | ||
|
ab6835d849 | ||
|
271ac6b57e | ||
|
7a173877b7 | ||
|
41956a8b90 | ||
|
773d246a7e | ||
|
f165b8ece4 | ||
|
a33c875d2f | ||
|
1dc14c0f38 | ||
|
a4f48205fb | ||
|
1a8a8da7bf | ||
|
653305d461 | ||
|
cfaf24bd45 | ||
|
7a831c3e28 | ||
|
61bdccbfd8 | ||
|
07767ab3e6 | ||
|
9434e4fa88 | ||
|
294e87015f | ||
|
22e3c67864 | ||
|
0d3b393ca6 | ||
|
af7412f3cb | ||
|
417e18b39d | ||
|
4b6bdbe558 | ||
|
3c822556c1 | ||
|
dc10853356 | ||
|
0bf0f4d32b | ||
|
ccf5575dd8 | ||
|
21b5256740 | ||
|
b2f3f72eca | ||
|
eb1896e6f7 | ||
|
af6dcdd6e6 | ||
|
70b7777743 | ||
|
540a6b7d2e | ||
|
055d7658db | ||
|
06a95487fe | ||
|
bd2ddc1d2e | ||
|
446c0459c9 | ||
|
37e3e9711c | ||
|
0a3fb27d47 | ||
|
6098503080 | ||
|
00a260dc00 | ||
|
b76e5a9c18 | ||
|
a0dfc35cb9 | ||
|
d999e9bf8b | ||
|
f7a208d103 | ||
|
f2489a4c00 | ||
|
22ca7474ea | ||
|
5262e3bb55 | ||
|
423e9c4ac0 | ||
|
c631db62d5 | ||
|
b8de0fc47e | ||
|
fe22deb5d5 | ||
|
45e1aff14a | ||
|
479201a3a1 | ||
|
214cf2c011 | ||
|
daf58a13c2 | ||
|
813789c644 | ||
|
f6c93a81d3 | ||
|
f023dd590f | ||
|
50cec4d54c | ||
|
e2e3d402a2 | ||
|
d79eb72fc1 | ||
|
d356fa9f97 | ||
|
a1baf106d6 | ||
|
b6f6930eb5 | ||
|
04d825ec2d |
143
.appveyor.yml
143
.appveyor.yml
@@ -1,143 +0,0 @@
|
||||
build: false
|
||||
clone_folder: c:\projects\phpbb
|
||||
version: '{build}'
|
||||
|
||||
services:
|
||||
- iis
|
||||
|
||||
environment:
|
||||
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
|
||||
cinst -y php --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 cinst -y --force mariadb
|
||||
$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 cinst -y sqlite
|
||||
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
|
||||
cinst -y phantomjs
|
||||
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 -y urlrewrite
|
||||
- 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)
|
||||
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
|
||||
|
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,9 +1,9 @@
|
||||
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
|
||||
- [ ] 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)
|
||||
- [ ] Commit follows commit message [format](https://area51.phpbb.com/docs/dev/3.2.x/development/git.html)
|
||||
- [ ] Code follows coding guidelines: [master](https://area51.phpbb.com/docs/master/coding-guidelines.html) and [3.3.x](https://area51.phpbb.com/docs/dev/3.3.x/development/coding_guidelines.html)
|
||||
- [ ] Commit follows commit message [format](https://area51.phpbb.com/docs/dev/3.3.x/development/git.html)
|
||||
|
||||
Tracker ticket (set the ticket ID to **your ticket ID**):
|
||||
|
||||
|
27
.github/check-doctum-parse-errors.sh
vendored
Executable file
27
.github/check-doctum-parse-errors.sh
vendored
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This file is part of the phpBB Forum Software package.
|
||||
#
|
||||
# @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
# @license GNU General Public License, version 2 (GPL-2.0)
|
||||
#
|
||||
# For full copyright and license information, please see
|
||||
# the docs/CREDITS.txt file.
|
||||
#
|
||||
set -e
|
||||
|
||||
if [ ! -f doctum.phar ]; then
|
||||
# Download the latest (5.x.x) release if the file does not exist
|
||||
# Remove it to update your phar
|
||||
curl -O https://doctum.long-term.support/releases/5/doctum.phar
|
||||
rm -f doctum.phar.sha256
|
||||
curl -O https://doctum.long-term.support/releases/5/doctum.phar.sha256
|
||||
sha256sum --strict --check doctum.phar.sha256
|
||||
rm -f doctum.phar.sha256
|
||||
chmod +x ./doctum.phar
|
||||
# You can fetch the latest (5.x.x) version code here:
|
||||
# https://doctum.long-term.support/releases/5/VERSION
|
||||
fi
|
||||
# Show the version to inform users of the script
|
||||
./doctum.phar version --text
|
||||
./doctum.phar parse build/doctum-checkout.conf.php -v
|
63
.github/check-executable-files.sh
vendored
Executable file
63
.github/check-executable-files.sh
vendored
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This file is part of the phpBB Forum Software package.
|
||||
#
|
||||
# @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
# @license GNU General Public License, version 2 (GPL-2.0)
|
||||
#
|
||||
# For full copyright and license information, please see
|
||||
# the docs/CREDITS.txt file.
|
||||
#
|
||||
set -e
|
||||
|
||||
root="$1"
|
||||
path="${root}phpBB/"
|
||||
|
||||
# Check the permissions of the files
|
||||
|
||||
# The following variables MUST NOT contain any wildcard
|
||||
# Directories to skip
|
||||
directories_skipped="-path ${path}develop -o -path ${path}vendor"
|
||||
|
||||
# Files to skip
|
||||
files_skipped="-false"
|
||||
|
||||
# Files which have to be executable
|
||||
executable_files="-path ${path}bin/* -o -path ${path}install/phpbbcli.php"
|
||||
|
||||
incorrect_files=$( \
|
||||
find ${path} \
|
||||
'(' \
|
||||
'(' \
|
||||
${directories_skipped} \
|
||||
')' \
|
||||
-a -type d -prune -a -type f \
|
||||
')' -o \
|
||||
'(' \
|
||||
-type f -a \
|
||||
-not '(' \
|
||||
${files_skipped} \
|
||||
')' -a \
|
||||
'(' \
|
||||
'(' \
|
||||
'(' \
|
||||
${executable_files} \
|
||||
')' -a \
|
||||
-not -perm /100 \
|
||||
')' -o \
|
||||
'(' \
|
||||
-not '(' \
|
||||
${executable_files} \
|
||||
')' -a \
|
||||
-perm /111 \
|
||||
')' \
|
||||
')' \
|
||||
')' \
|
||||
)
|
||||
|
||||
if [ "${incorrect_files}" != '' ]
|
||||
then
|
||||
echo "The following files do not have proper permissions:";
|
||||
ls -la ${incorrect_files}
|
||||
exit 1;
|
||||
fi
|
14
.github/check-image-icc-profiles.sh
vendored
Executable file
14
.github/check-image-icc-profiles.sh
vendored
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This file is part of the phpBB Forum Software package.
|
||||
#
|
||||
# @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
# @license GNU General Public License, version 2 (GPL-2.0)
|
||||
#
|
||||
# For full copyright and license information, please see
|
||||
# the docs/CREDITS.txt file.
|
||||
#
|
||||
set -e
|
||||
|
||||
find . -type f -a -iregex '.*\.\(gif\|jpg\|jpeg\|png\)$' -a -not -wholename '*vendor/*' | \
|
||||
parallel --gnu --keep-order 'phpBB/develop/strip_icc_profiles.sh {}'
|
64
.github/ext-check-executable-files.sh
vendored
Executable file
64
.github/ext-check-executable-files.sh
vendored
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This file is part of the phpBB Forum Software package.
|
||||
#
|
||||
# @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
# @license GNU General Public License, version 2 (GPL-2.0)
|
||||
#
|
||||
# For full copyright and license information, please see
|
||||
# the docs/CREDITS.txt file.
|
||||
#
|
||||
set -e
|
||||
|
||||
root="$1"
|
||||
extname="$2"
|
||||
path="${root}phpBB/ext/${extname}/"
|
||||
|
||||
# Check the permissions of the files
|
||||
|
||||
# The following variables MUST NOT contain any wildcard
|
||||
# Directories to skip
|
||||
directories_skipped="-path ${path}develop -o -path ${path}vendor -o -path ${path}.git"
|
||||
|
||||
# Files to skip
|
||||
files_skipped="-false"
|
||||
|
||||
# Files which have to be executable
|
||||
executable_files="-path ${path}bin/* -o -path ${path}install/phpbbcli.php"
|
||||
|
||||
incorrect_files=$( \
|
||||
find ${path} \
|
||||
'(' \
|
||||
'(' \
|
||||
${directories_skipped} \
|
||||
')' \
|
||||
-a -type d -prune -a -type f \
|
||||
')' -o \
|
||||
'(' \
|
||||
-type f -a \
|
||||
-not '(' \
|
||||
${files_skipped} \
|
||||
')' -a \
|
||||
'(' \
|
||||
'(' \
|
||||
'(' \
|
||||
${executable_files} \
|
||||
')' -a \
|
||||
-not -perm /100 \
|
||||
')' -o \
|
||||
'(' \
|
||||
-not '(' \
|
||||
${executable_files} \
|
||||
')' -a \
|
||||
-perm /111 \
|
||||
')' \
|
||||
')' \
|
||||
')' \
|
||||
)
|
||||
|
||||
if [ "${incorrect_files}" != '' ]
|
||||
then
|
||||
echo "The following files do not have proper permissions:";
|
||||
ls -la ${incorrect_files}
|
||||
exit 1;
|
||||
fi
|
25
.github/ext-sniff.sh
vendored
Executable file
25
.github/ext-sniff.sh
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This file is part of the phpBB Forum Software package.
|
||||
#
|
||||
# @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
# @license GNU General Public License, version 2 (GPL-2.0)
|
||||
#
|
||||
# For full copyright and license information, please see
|
||||
# the docs/CREDITS.txt file.
|
||||
#
|
||||
set -e
|
||||
set -x
|
||||
|
||||
EXTNAME=$1
|
||||
NOTESTS=$2
|
||||
|
||||
if [ "$NOTESTS" == "1" ]
|
||||
then
|
||||
phpBB/vendor/bin/phpcs \
|
||||
-s \
|
||||
--extensions=php \
|
||||
--standard=build/code_sniffer/ruleset-php-extensions.xml \
|
||||
--ignore=*/"$EXTNAME"/tests/*,*/"$EXTNAME"/vendor/* \
|
||||
phpBB/ext/"$EXTNAME"
|
||||
fi
|
41
.github/ldap/base.ldif
vendored
Normal file
41
.github/ldap/base.ldif
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
dn: dc=example,dc=com
|
||||
objectClass: top
|
||||
objectClass: dcObject
|
||||
objectClass: organization
|
||||
o: example
|
||||
dc: example
|
||||
|
||||
dn: ou=foo,dc=example,dc=com
|
||||
objectClass: organizationalUnit
|
||||
ou: foo
|
||||
|
||||
dn: cn=admin,dc=example,dc=com
|
||||
objectClass: simpleSecurityObject
|
||||
objectClass: organizationalRole
|
||||
cn: admin
|
||||
description: LDAP administrator
|
||||
userPassword:: e1NTSEF9NytMR2gveUxTMzdsc3RRd1V1dENZSVA0TWdYdm9SdDY=
|
||||
|
||||
dn: ou=group,dc=example,dc=com
|
||||
objectClass: organizationalUnit
|
||||
ou: group
|
||||
|
||||
dn: cn=admin,ou=foo,dc=example,dc=com
|
||||
objectClass: posixAccount
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: organizationalPerson
|
||||
objectClass: person
|
||||
loginShell: /bin/bash
|
||||
homeDirectory: /home/admin
|
||||
uid: admin
|
||||
cn: admin
|
||||
uidNumber: 10000
|
||||
gidNumber: 10000
|
||||
sn: admin
|
||||
mail: admin@example.com
|
||||
userPassword:: e1NTSEF9WHpueGZURHZZc21JSkl6czdMVXBjdCtWYTA1dlMzVlQ=
|
||||
|
||||
dn: cn=admin,ou=group,dc=example,dc=com
|
||||
objectClass: posixGroup
|
||||
gidNumber: 10000
|
||||
cn: admin
|
17
.github/ldap/slapd.conf
vendored
Normal file
17
.github/ldap/slapd.conf
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
# See slapd.conf(5) for details on configuration options.
|
||||
include /etc/ldap/schema/core.schema
|
||||
include /etc/ldap/schema/cosine.schema
|
||||
include /etc/ldap/schema/inetorgperson.schema
|
||||
include /etc/ldap/schema/nis.schema
|
||||
|
||||
pidfile /var/tmp/slapd/slapd.pid
|
||||
argsfile /var/tmp/slapd/slapd.args
|
||||
|
||||
modulepath /usr/lib/openldap
|
||||
|
||||
database ldif
|
||||
directory /var/tmp/slapd
|
||||
|
||||
suffix "dc=example,dc=com"
|
||||
rootdn "cn=admin,dc=example,dc=com"
|
||||
rootpw adminadmin
|
16
.github/phing-sniff.sh
vendored
Executable file
16
.github/phing-sniff.sh
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This file is part of the phpBB Forum Software package.
|
||||
#
|
||||
# @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
# @license GNU General Public License, version 2 (GPL-2.0)
|
||||
#
|
||||
# For full copyright and license information, please see
|
||||
# the docs/CREDITS.txt file.
|
||||
#
|
||||
set -e
|
||||
set -x
|
||||
|
||||
cd build
|
||||
../phpBB/vendor/bin/phing sniff
|
||||
cd ..
|
39
.github/phpunit-mariadb-github.xml
vendored
Normal file
39
.github/phpunit-mariadb-github.xml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit backupGlobals="true"
|
||||
backupStaticAttributes="false"
|
||||
colors="true"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="false"
|
||||
verbose="true"
|
||||
bootstrap="../tests/bootstrap.php">
|
||||
<testsuites>
|
||||
<testsuite name="phpBB Test Suite">
|
||||
<directory suffix="_test.php">../tests</directory>
|
||||
<exclude>../tests/functional</exclude>
|
||||
<exclude>../tests/lint_test.php</exclude>
|
||||
</testsuite>
|
||||
<testsuite name="phpBB Functional Tests">
|
||||
<directory suffix="_test.php">../tests/functional</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<groups>
|
||||
<exclude>
|
||||
<group>slow</group>
|
||||
</exclude>
|
||||
</groups>
|
||||
|
||||
<php>
|
||||
<server name="PHPBB_TEST_DBMS" value="mysqli" />
|
||||
<server name="PHPBB_TEST_DBHOST" value="0.0.0.0" />
|
||||
<server name="PHPBB_TEST_DBPORT" value="3306" />
|
||||
<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
|
||||
<server name="PHPBB_TEST_DBUSER" value="root" />
|
||||
<server name="PHPBB_TEST_DBPASSWD" value="" />
|
||||
<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
|
||||
<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
|
||||
</php>
|
||||
</phpunit>
|
41
.github/phpunit-mssql-github.xml
vendored
Normal file
41
.github/phpunit-mssql-github.xml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit backupGlobals="true"
|
||||
backupStaticAttributes="false"
|
||||
colors="true"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="false"
|
||||
verbose="true"
|
||||
bootstrap="../tests/bootstrap.php">
|
||||
<testsuites>
|
||||
<testsuite name="phpBB Test Suite">
|
||||
<directory suffix="_test.php">../tests</directory>
|
||||
<exclude>../tests/functional</exclude>
|
||||
<exclude>../tests/lint_test.php</exclude>
|
||||
</testsuite>
|
||||
<testsuite name="phpBB Functional Tests">
|
||||
<directory suffix="_test.php">../tests/functional</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<groups>
|
||||
<exclude>
|
||||
<group>slow</group>
|
||||
</exclude>
|
||||
</groups>
|
||||
|
||||
<php>
|
||||
<server name="PHPBB_TEST_DBMS" value="phpbb\db\driver\mssqlnative" />
|
||||
<server name="PHPBB_TEST_DBHOST" value="127.0.0.1" />
|
||||
<server name="PHPBB_TEST_DBPORT" value="" />
|
||||
<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
|
||||
<server name="PHPBB_TEST_DBUSER" value="sa" />
|
||||
<server name="PHPBB_TEST_DBPASSWD" value="Pssw0rd_12" />
|
||||
<server name="PHPBB_TEST_REDIS_HOST" value="localhost" />
|
||||
<server name="PHPBB_TEST_MEMCACHED_HOST" value="localhost" />
|
||||
<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
|
||||
<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
|
||||
</php>
|
||||
</phpunit>
|
@@ -1,14 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit backupGlobals="true"
|
||||
backupStaticAttributes="true"
|
||||
backupStaticAttributes="false"
|
||||
colors="true"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="false"
|
||||
syntaxCheck="true"
|
||||
strict="true"
|
||||
verbose="true"
|
||||
bootstrap="../tests/bootstrap.php">
|
||||
<testsuites>
|
||||
@@ -16,13 +14,9 @@
|
||||
<directory suffix="_test.php">../tests</directory>
|
||||
<exclude>../tests/functional</exclude>
|
||||
<exclude>../tests/lint_test.php</exclude>
|
||||
<exclude>../tests/ui</exclude>
|
||||
</testsuite>
|
||||
<testsuite name="phpBB Functional Tests">
|
||||
<directory suffix="_test.php" phpVersion="5.3.19" phpVersionOperator=">=">../tests/functional</directory>
|
||||
</testsuite>
|
||||
<testsuite name="phpBB UI Tests">
|
||||
<directory suffix="_test.php" phpVersion="5.3.19" phpVersionOperator=">=">../tests/ui</directory>
|
||||
<directory suffix="_test.php">../tests/functional</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
@@ -33,13 +27,14 @@
|
||||
</groups>
|
||||
|
||||
<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_DBPORT" value="3306" />
|
||||
<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
|
||||
<server name="PHPBB_TEST_DBUSER" value="root" />
|
||||
<server name="PHPBB_TEST_DBPASSWD" value="" />
|
||||
<server name="PHPBB_TEST_REDIS_HOST" value="localhost" />
|
||||
<server name="PHPBB_TEST_MEMCACHED_HOST" value="localhost" />
|
||||
<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
|
||||
<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
|
||||
</php>
|
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 ] && [ -f "/usr/bin/php-fpm" ]
|
||||
then
|
||||
PHP_FPM_BIN="/usr/bin/php-fpm"
|
||||
fi
|
||||
|
||||
if [ ! -f $PHP_FPM_BIN ]
|
||||
then
|
||||
sudo apt-get install php$PHP_VERSION-fpm php$PHP_VERSION-cli \
|
||||
php$PHP_VERSION-curl php$PHP_VERSION-xml php$PHP_VERSION-mbstring \
|
||||
php$PHP_VERSION-zip php$PHP_VERSION-mysql php$PHP_VERSION-sqlite3 \
|
||||
php$PHP_VERSION-intl php$PHP_VERSION-gd php$PHP_VERSION-pgsql
|
||||
sudo service php$PHP_VERSION-fpm start
|
||||
sudo service php$PHP_VERSION-fpm status
|
||||
fi
|
||||
|
||||
echo "
|
||||
[global]
|
||||
|
||||
[ci]
|
||||
user = $USER
|
||||
group = $USER
|
||||
listen = $APP_SOCK
|
||||
listen.mode = 0666
|
||||
pm = static
|
||||
pm.max_children = 2
|
||||
|
||||
php_admin_value[memory_limit] = 128M
|
||||
" > $PHP_FPM_CONF
|
||||
|
||||
sudo $PHP_FPM_BIN \
|
||||
--fpm-config "$DIR/php-fpm.conf"
|
||||
|
||||
# nginx
|
||||
sudo sed -i "s/user www-data;/user $USER;/g" $NGINX_CONF
|
||||
sudo cp "$DIR/../phpBB/docs/nginx.sample.conf" "$NGINX_SITE_CONF"
|
||||
sudo sed -i \
|
||||
-e "s/example\.com/localhost/g" \
|
||||
-e "s|root /path/to/phpbb;|root $PHPBB_ROOT_PATH;|g" \
|
||||
$NGINX_SITE_CONF
|
||||
|
||||
# Generate FastCGI configuration for Nginx
|
||||
echo "
|
||||
upstream php {
|
||||
server unix:$APP_SOCK;
|
||||
}
|
||||
" > $NGINX_PHP_CONF
|
||||
|
||||
sudo mv "$NGINX_PHP_CONF" /etc/nginx/conf.d/php.conf
|
||||
|
||||
sudo nginx -T
|
||||
sudo service nginx start
|
580
.github/workflows/tests.yml
vendored
Normal file
580
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,580 @@
|
||||
name: Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 3.3.x
|
||||
- master
|
||||
- 'prep-release-*'
|
||||
tags:
|
||||
- 'release-*'
|
||||
pull_request:
|
||||
branches:
|
||||
- 3.3.x
|
||||
- master
|
||||
- 'prep-release-*'
|
||||
|
||||
jobs:
|
||||
# Basic checks, e.g. parse errors, commit messages, etc.
|
||||
basic-checks:
|
||||
runs-on: ubuntu-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- db: 'none'
|
||||
php: '7.2'
|
||||
NOTESTS: 1
|
||||
|
||||
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 100
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php }}
|
||||
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, mysqli, sqlite, pdo_sqlite, intl, gd, exif, iconv, sqlsrv, pdo_sqlsrv, ldap
|
||||
coverage: none
|
||||
|
||||
- name: Get Composer Cache Directory
|
||||
id: composer-cache
|
||||
env:
|
||||
PHP_VERSION: ${{ matrix.php }}
|
||||
run: |
|
||||
cd phpBB
|
||||
echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
echo "::set-output name=version::${PHP_VERSION%.*}"
|
||||
cd ..
|
||||
|
||||
- name: Cache Composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
|
||||
|
||||
- name: Setup environment for phpBB
|
||||
env:
|
||||
DB: ${{ matrix.db }}
|
||||
PHP_VERSION: ${{ matrix.php }}
|
||||
NOTESTS: '1'
|
||||
run: |
|
||||
.github/setup-phpbb.sh $DB $PHP_VERSION $NOTESTS
|
||||
|
||||
- name: Phing sniff
|
||||
run: |
|
||||
.github/phing-sniff.sh
|
||||
|
||||
- name: Check doctum parse errors
|
||||
run: |
|
||||
.github/check-doctum-parse-errors.sh
|
||||
|
||||
- name: Check image ICC profiles
|
||||
run: |
|
||||
.github/check-image-icc-profiles.sh
|
||||
|
||||
- name: Check executable files
|
||||
run: |
|
||||
.github/check-executable-files.sh ./
|
||||
|
||||
- name: Check commit message
|
||||
if: github.event_name == 'pull_request'
|
||||
run: |
|
||||
git fetch origin $GITHUB_BASE_REF &> /dev/null
|
||||
git-tools/commit-msg-hook-range.sh $(git rev-parse origin/$GITHUB_BASE_REF)..$GITHUB_SHA
|
||||
|
||||
# Tests for MySQL and MariaDB
|
||||
mysql-tests:
|
||||
runs-on: ubuntu-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"
|
||||
- php: '8.2'
|
||||
db: "mysql:5.7"
|
||||
|
||||
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: ${{ matrix.db }}
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: yes
|
||||
MYSQL_DATABASE: phpbb_tests
|
||||
ports:
|
||||
- 3306:3306
|
||||
options: >-
|
||||
--health-cmd="mysqladmin ping"
|
||||
--health-interval=10s
|
||||
--health-timeout=5s
|
||||
--health-retries=3
|
||||
|
||||
redis:
|
||||
image: redis
|
||||
options: >-
|
||||
--health-cmd "redis-cli ping"
|
||||
--health-interval 10s
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
ports:
|
||||
- 6379:6379
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@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"
|
||||
- php: '7.2'
|
||||
db: "postgres:13"
|
||||
- php: '7.3'
|
||||
db: "postgres:13"
|
||||
- php: '7.4'
|
||||
db: "postgres:13"
|
||||
- php: '8.0'
|
||||
db: "postgres:12"
|
||||
- php: '8.0'
|
||||
db: "postgres:13"
|
||||
- php: '8.1'
|
||||
db: "postgres:14"
|
||||
- php: '8.2'
|
||||
db: "postgres:14"
|
||||
|
||||
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: ${{ matrix.db != 'postgres:9.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-latest
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- php: '7.4'
|
||||
db: "postgres"
|
||||
type: 'unit'
|
||||
- php: '8.0'
|
||||
db: "postgres"
|
||||
type: 'unit'
|
||||
- php: '8.1'
|
||||
db: "postgres"
|
||||
type: 'unit'
|
||||
- php: '8.2'
|
||||
db: "postgres"
|
||||
type: 'unit'
|
||||
- php: '7.4'
|
||||
db: "postgres"
|
||||
type: 'functional'
|
||||
- php: '8.0'
|
||||
db: "postgres"
|
||||
type: 'functional'
|
||||
- php: '8.1'
|
||||
db: "postgres"
|
||||
type: 'functional'
|
||||
- php: '8.2'
|
||||
db: "postgres"
|
||||
type: 'functional'
|
||||
|
||||
name: Windows - PHP ${{ matrix.php }} - ${{ matrix.db }} - ${{ matrix.type }}
|
||||
|
||||
steps:
|
||||
- name: Prepare git for Windows
|
||||
run: |
|
||||
git config --system core.autocrlf false
|
||||
git config --system core.eol lf
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@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
|
||||
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
|
||||
cd ..
|
||||
- name: Setup database
|
||||
run: |
|
||||
$postgreSqlSvc = Get-Service "postgresql*"
|
||||
Set-Service $postgreSqlSvc.Name -StartupType manual
|
||||
$runningStatus = [System.ServiceProcess.ServiceControllerStatus]::Running
|
||||
$maxStartTimeout = New-TimeSpan -Seconds 30
|
||||
try {
|
||||
$postgreSqlSvc.Start()
|
||||
$postgreSqlSvc.WaitForStatus($runningStatus, $maxStartTimeout)
|
||||
} catch {
|
||||
$_ | select *
|
||||
}
|
||||
[System.Environment]::SetEnvironmentVariable('PATH',$Env:PATH+";${env:PGBIN}")
|
||||
$env:PGPASSWORD = 'root'
|
||||
psql -c 'ALTER SYSTEM SET hot_standby = on;' -U postgres
|
||||
psql -c 'ALTER SYSTEM SET wal_level = minimal;' -U postgres
|
||||
psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres
|
||||
psql -c 'create database phpbb_tests;' -U postgres
|
||||
Set-MpPreference -ExclusionPath "${env:PGDATA}" # Exclude PGDATA directory from Windows Defender
|
||||
Set-MpPreference -DisableRealtimeMonitoring $true
|
||||
- name: Run unit tests
|
||||
if: ${{ matrix.type == 'unit' }}
|
||||
run: |
|
||||
phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error --exclude-group functional
|
||||
- name: Run unit tests
|
||||
if: ${{ matrix.type == 'functional' }}
|
||||
run: |
|
||||
phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error --group functional
|
38
.gitignore
vendored
38
.gitignore
vendored
@@ -1,26 +1,54 @@
|
||||
*~
|
||||
/phpunit.xml
|
||||
# Excludes cache
|
||||
/phpBB/cache/*
|
||||
!/phpBB/cache/.htaccess
|
||||
!/phpBB/cache/index.html
|
||||
/phpBB/composer.phar
|
||||
|
||||
# Excludes user data
|
||||
/phpBB/config*.php*
|
||||
/phpBB/ext/*
|
||||
/phpBB/files/*
|
||||
/phpBB/images/avatars/gallery/*
|
||||
/phpBB/images/avatars/upload/*
|
||||
/phpBB/images/ranks/*
|
||||
/phpBB/install/schemas/schema.json
|
||||
/phpBB/store/*
|
||||
|
||||
# Excludes all custom langages
|
||||
/phpBB/language/*
|
||||
!/phpBB/language/en
|
||||
/phpBB/store/*
|
||||
|
||||
# Excludes all custom styles
|
||||
/phpBB/styles/*
|
||||
!/phpBB/styles/prosilver
|
||||
/phpBB/styles/prosilver/theme/*/
|
||||
!/phpBB/styles/prosilver/theme/en
|
||||
!/phpBB/styles/prosilver/theme/images
|
||||
!/phpBB/styles/all
|
||||
|
||||
# Excludes all custom env
|
||||
/phpBB/config/*
|
||||
!/phpBB/config/default
|
||||
!/phpBB/config/development
|
||||
!/phpBB/config/installer
|
||||
!/phpBB/config/production
|
||||
!/phpBB/config/test
|
||||
!/phpBB/config/.htaccess
|
||||
|
||||
# Excludes vendors
|
||||
/phpBB/vendor
|
||||
|
||||
# Excludes test / dev files
|
||||
/phpunit.xml
|
||||
/phpBB/composer.phar
|
||||
/tests/phpbb_unit_tests.sqlite*
|
||||
/tests/test_config*.php
|
||||
/tests/tmp/*
|
||||
/tests/vendor
|
||||
/vagrant/phpbb-install-config.yml
|
||||
.vagrant
|
||||
node_modules
|
||||
|
||||
# Excludes IDE / editors files
|
||||
*~
|
||||
.idea
|
||||
*.DS_Store*
|
||||
/.vscode
|
||||
|
54
.travis.yml
54
.travis.yml
@@ -1,54 +0,0 @@
|
||||
language: php
|
||||
sudo: required
|
||||
|
||||
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,40 +1,47 @@
|
||||
[](http://www.phpbb.com)
|
||||
|
||||
## ABOUT
|
||||
[<img src="phpBB/styles/all/imgs/svg/phpbb_logo_large_cosmic.svg" alt="phpBB" style="max-width:40%" width="400">](https://www.phpbb.com)
|
||||
|
||||
phpBB is a free open-source bulletin board written in PHP.
|
||||
|
||||
## COMMUNITY
|
||||
## 🧑🏻🤝🏻🧑🏽 Community
|
||||
|
||||
Get your copy of phpBB, find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the development on [area51](http://area51.phpbb.com/phpBB/index.php).
|
||||
Get your copy of phpBB, find support and lots more on [phpBB.com](https://www.phpbb.com). Discuss the development on [area51](https://area51.phpbb.com/phpBB/index.php).
|
||||
|
||||
## INSTALLING DEPENDENCIES
|
||||
## 👨💻 Contribute
|
||||
|
||||
To be able to run an installation from the repo (and not from a pre-built package) you need to run the following commands to install phpBB's dependencies.
|
||||
|
||||
cd phpBB
|
||||
php ../composer.phar install
|
||||
|
||||
|
||||
## CONTRIBUTE
|
||||
|
||||
1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register)
|
||||
2. [Create a ticket (unless there already is one)](http://tracker.phpbb.com/secure/CreateIssue!default.jspa)
|
||||
1. [Create an account on phpBB.com](https://www.phpbb.com/community/ucp.php?mode=register)
|
||||
2. [Create a ticket (unless there already is one)](https://tracker.phpbb.com/secure/CreateIssue!default.jspa)
|
||||
3. Read our [Coding guidelines](https://area51.phpbb.com/docs/dev/development/coding_guidelines.html) and [Git Contribution Guidelines](https://area51.phpbb.com/docs/dev/development/git.html)
|
||||
4. Send us a pull request
|
||||
|
||||
## VAGRANT
|
||||
### 🏗️ Setting up a development build of phpBB
|
||||
|
||||
Read our [Vagrant documentation](phpBB/docs/vagrant.md) to find out how to use Vagrant to develop and contribute to phpBB.
|
||||
To run an installation from the repo (and not from a pre-built package) on a local server, run the following commands:
|
||||
|
||||
## AUTOMATED TESTING
|
||||
- Fork phpbb/phpbb to your GitHub account, then create a local clone of it:
|
||||
```
|
||||
git clone https://github.com/your_github_name/phpbb.git
|
||||
```
|
||||
- Install phpBB's dependencies (from the root of your phpbb repo):
|
||||
```
|
||||
cd phpBB
|
||||
php ../composer.phar install
|
||||
```
|
||||
|
||||
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:
|
||||
Alternatively, you can read our [Vagrant documentation](phpBB/docs/vagrant.md) to find out how to use Vagrant to develop and contribute to phpBB.
|
||||
|
||||
* [](http://travis-ci.org/phpbb/phpbb)[](https://ci.appveyor.com/project/phpBB/phpbb/branch/master) **master** - Latest development version
|
||||
* [](http://travis-ci.org/phpbb/phpbb)[](https://ci.appveyor.com/project/phpBB/phpbb/branch/3.2.x) **3.2.x** - Development of version 3.2.x
|
||||
* [](http://travis-ci.org/phpbb/phpbb) **3.1.x** - Development of version 3.1.x
|
||||
## 📓 Documentation
|
||||
|
||||
## LICENSE
|
||||
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 GitHub Actions below:
|
||||
|
||||
Branch | Description | GitHub Actions |
|
||||
------- | ----------- | -------------- |
|
||||
**master** | Latest development version |  |
|
||||
**3.3.x** | Development of version 3.3.x |  |
|
||||
|
||||
## 📜 License
|
||||
|
||||
[GNU General Public License v2](http://opensource.org/licenses/gpl-2.0.php)
|
||||
|
@@ -2,9 +2,9 @@
|
||||
|
||||
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
||||
<!-- a few settings for the build -->
|
||||
<property name="newversion" value="3.2.6" />
|
||||
<property name="prevversion" value="3.2.5" />
|
||||
<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.6-RC1" />
|
||||
<property name="newversion" value="3.3.9-RC1" />
|
||||
<property name="prevversion" value="3.3.8" />
|
||||
<property name="olderversions" value="3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7" />
|
||||
<!-- no configuration should be needed beyond this point -->
|
||||
|
||||
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
||||
@@ -81,28 +81,36 @@
|
||||
--ignore=${project.basedir}/phpBB/phpbb/db/migration/data/v30x/*
|
||||
phpBB/phpbb"
|
||||
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
|
||||
-s -p
|
||||
--extensions=php
|
||||
--standard=build/code_sniffer/ruleset-php-legacy-core.xml
|
||||
--ignore=${project.basedir}/phpBB/cache/*
|
||||
--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/*
|
||||
--ignore=${sniffIgnoreList}
|
||||
phpBB"
|
||||
dir="." returnProperty="retval-php-legacy" passthru="true" />
|
||||
<exec command="phpBB/vendor/bin/phpcs
|
||||
-s -p
|
||||
--extensions=php
|
||||
--standard=build/code_sniffer/ruleset-php-extensions.xml
|
||||
--ignore=${project.basedir}/phpBB/ext/*/tests/*
|
||||
--ignore=${project.basedir}/phpBB/ext/*/vendor/*
|
||||
--ignore=${project.basedir}/phpBB/ext/*/tests/*,${project.basedir}/phpBB/ext/*/vendor/*
|
||||
phpBB/ext"
|
||||
dir="." returnProperty="retval-php-ext" passthru="true" />
|
||||
<if>
|
||||
@@ -120,13 +128,13 @@
|
||||
<!-- Builds docs for current branch into build/api/output/master -->
|
||||
<target name="docs">
|
||||
<exec dir="."
|
||||
command="phpBB/vendor/bin/sami.php update build/sami-checkout.conf.php"
|
||||
command="./doctum.phar update build/doctum-checkout.conf.php"
|
||||
passthru="true" />
|
||||
</target>
|
||||
<!-- Builds docs for multiple branches/tags into build/api/output/$branch -->
|
||||
<target name="docs-all">
|
||||
<exec dir="."
|
||||
command="phpBB/vendor/bin/sami.php update build/sami-all.conf.php"
|
||||
command="./doctum.phar update build/doctum-all.conf.php"
|
||||
passthru="true" />
|
||||
</target>
|
||||
|
||||
@@ -354,6 +362,8 @@
|
||||
<chmod mode="0777" file="${dir}/store" />
|
||||
<chmod mode="0777" file="${dir}/files" />
|
||||
<chmod mode="0777" file="${dir}/images/avatars/upload" />
|
||||
<!-- set permissions of executable scripts to 755 -->
|
||||
<chmod mode="0755" file="${dir}/bin/phpbbcli.php" />
|
||||
</target>
|
||||
|
||||
<target name="clean-vendor-dir">
|
||||
|
@@ -1,16 +1,16 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
if ($_SERVER['argc'] != 2)
|
||||
{
|
||||
@@ -18,40 +18,54 @@ if ($_SERVER['argc'] != 2)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$fixVersion = $_SERVER['argv'][1];
|
||||
if ($_SERVER['argv'][1] == '--stdin')
|
||||
{
|
||||
$stdIn = file_get_contents('php://stdin');
|
||||
// XML output from tracker can be directly piped to this script using:
|
||||
// cat tracker_output.xml | php build/build_changelog.php --stdin
|
||||
$xml = simplexml_load_string($stdIn);
|
||||
}
|
||||
else
|
||||
{
|
||||
$fixVersion = $_SERVER['argv'][1];
|
||||
|
||||
$query = 'project IN (PHPBB3, SECURITY)
|
||||
AND resolution = Fixed
|
||||
AND fixVersion = "' . $fixVersion . '"
|
||||
AND status IN ("Unverified Fix", Closed)';
|
||||
$query = 'project IN (PHPBB3, SECURITY)
|
||||
AND resolution = Fixed
|
||||
AND fixVersion = "' . $fixVersion . '"
|
||||
AND status IN ("Unverified Fix", Closed)';
|
||||
|
||||
$url = 'http://tracker.phpbb.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=' . urlencode($query) . '&tempMax=1000';
|
||||
$xml = simplexml_load_string(file_get_contents($url));
|
||||
$url = 'https://tracker.phpbb.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=' . urlencode($query) . '&tempMax=1000';
|
||||
$xml = simplexml_load_string(file_get_contents($url));
|
||||
}
|
||||
|
||||
$types = [];
|
||||
foreach ($xml->xpath('//item') as $item)
|
||||
{
|
||||
$key = (string) $item->key;
|
||||
|
||||
$keyUrl = 'http://tracker.phpbb.com/browse/' . $key;
|
||||
$keyUrl = 'https://tracker.phpbb.com/browse/' . $key;
|
||||
$keyLink = '<a href="' . $keyUrl . '">' . $key . '</a>';
|
||||
|
||||
$value = str_replace($key, $keyLink, htmlspecialchars($item->title));
|
||||
$value = str_replace($key, $keyLink, htmlspecialchars($item->title, ENT_COMPAT));
|
||||
$value = str_replace(']', '] -', $value);
|
||||
|
||||
$types[(string) $item->type][$key] = $value;
|
||||
}
|
||||
|
||||
ksort($types);
|
||||
foreach ($types as $type => $tickets)
|
||||
if (count($types))
|
||||
{
|
||||
echo "<h4>$type</h4>\n";
|
||||
echo "<ul>\n";
|
||||
|
||||
uksort($tickets, 'strnatcasecmp');
|
||||
|
||||
foreach ($tickets as $ticket)
|
||||
ksort($types);
|
||||
foreach ($types as $type => $tickets)
|
||||
{
|
||||
echo "<li>$ticket</li>\n";
|
||||
echo "<h4>$type</h4>\n";
|
||||
echo "<ul>\n";
|
||||
|
||||
uksort($tickets, 'strnatcasecmp');
|
||||
|
||||
foreach ($tickets as $ticket)
|
||||
{
|
||||
echo "<li>$ticket</li>\n";
|
||||
}
|
||||
echo "</ul>\n";
|
||||
}
|
||||
echo "</ul>\n";
|
||||
}
|
||||
|
@@ -43,10 +43,10 @@ class build_package
|
||||
$_before = $this->versions[count($this->versions) - 2];
|
||||
|
||||
$this->locations = array(
|
||||
'new_version' => dirname(dirname(__FILE__)) . '/phpBB/',
|
||||
'old_versions' => dirname(__FILE__) . '/old_versions/',
|
||||
'root' => dirname(__FILE__) . '/',
|
||||
'package_dir' => dirname(__FILE__) . '/new_version/'
|
||||
'new_version' => dirname(__DIR__) . '/phpBB/',
|
||||
'old_versions' => __DIR__ . '/old_versions/',
|
||||
'root' => __DIR__ . '/',
|
||||
'package_dir' => __DIR__ . '/new_version/'
|
||||
);
|
||||
|
||||
$this->package_infos = array(
|
||||
|
@@ -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
|
||||
* phpBB Coding Guidelines.
|
||||
@@ -18,7 +21,7 @@
|
||||
* @package code_sniffer
|
||||
* @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.
|
||||
@@ -33,13 +36,13 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
||||
/**
|
||||
* 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 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.
|
||||
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
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -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'] !== '*')))
|
||||
{
|
||||
$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'] !== '*')))
|
||||
{
|
||||
$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'] !== '*')
|
||||
{
|
||||
$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);
|
||||
@@ -113,59 +116,59 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
||||
/**
|
||||
* 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 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']))
|
||||
{
|
||||
$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)
|
||||
{
|
||||
$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
|
||||
*
|
||||
* @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 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']))
|
||||
{
|
||||
$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)
|
||||
{
|
||||
$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
|
||||
*
|
||||
* @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 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>';
|
||||
$tokens = $phpcsFile->getTokens();
|
||||
@@ -177,7 +180,7 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
||||
if ($tokens[$tag + 2]['content'] !== $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;
|
||||
@@ -185,19 +188,19 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
||||
}
|
||||
|
||||
$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
|
||||
*
|
||||
* @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 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)';
|
||||
$tokens = $phpcsFile->getTokens();
|
||||
@@ -210,7 +213,7 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
||||
if ($found)
|
||||
{
|
||||
$message = 'It must be only one @license tag in file doc comment.';
|
||||
$phpcsFile->addError($message, $ptr);
|
||||
$phpcsFile->addError($message, $ptr, 'MultiTagVersion');
|
||||
}
|
||||
|
||||
$found = true;
|
||||
@@ -218,7 +221,7 @@ class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
|
||||
if ($tokens[$tag + 2]['content'] !== $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)
|
||||
{
|
||||
$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.
|
||||
* 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.
|
||||
@@ -36,13 +39,13 @@ class phpbb_Sniffs_ControlStructures_OpeningBraceBsdAllmanSniff implements PHP_C
|
||||
/**
|
||||
* 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
|
||||
* stack passed in $tokens.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
|
||||
public function process(File $phpcsFile, $stackPtr)
|
||||
{
|
||||
$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
|
||||
* 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.
|
||||
@@ -36,13 +39,13 @@ class phpbb_Sniffs_ControlStructures_OpeningParenthesisSniff implements PHP_Code
|
||||
/**
|
||||
* 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
|
||||
* stack passed in $tokens.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
|
||||
public function process(File $phpcsFile, $stackPtr)
|
||||
{
|
||||
$tokens = $phpcsFile->getTokens();
|
||||
|
||||
|
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
use PHP_CodeSniffer\Files\File;
|
||||
use PHP_CodeSniffer\Sniffs\Sniff;
|
||||
|
||||
/**
|
||||
* Checks that the visibility qualifiers are placed after the static keyword
|
||||
* according to the coding guidelines
|
||||
*/
|
||||
class phpbb_Sniffs_ControlStructures_StaticKeywordSniff implements Sniff
|
||||
{
|
||||
/**
|
||||
* Registers the tokens that this sniff wants to listen for.
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
return [
|
||||
T_STATIC,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes this test, when one of its tokens is encountered.
|
||||
*
|
||||
* @param File $phpcsFile The file being scanned.
|
||||
* @param int $stackPtr The position of the current token in the stack passed in $tokens.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function process(File $phpcsFile, $stackPtr)
|
||||
{
|
||||
$tokens = $phpcsFile->getTokens();
|
||||
|
||||
$disallowed_after_tokens = [
|
||||
T_PUBLIC,
|
||||
T_PROTECTED,
|
||||
T_PRIVATE,
|
||||
];
|
||||
|
||||
if (in_array($tokens[$stackPtr + 2]['code'], $disallowed_after_tokens))
|
||||
{
|
||||
$error = 'Access specifier (e.g. public) should not follow static scope attribute. Encountered "' . $tokens[$stackPtr + 2]['content'] . '" after static';
|
||||
$phpcsFile->addWarning($error, $stackPtr, 'InvalidStaticFunctionDeclaration', [], 1);
|
||||
}
|
||||
}
|
||||
}
|
@@ -11,26 +11,42 @@
|
||||
*
|
||||
*/
|
||||
|
||||
use PHP_CodeSniffer\Files\File;
|
||||
use PHP_CodeSniffer\Sniffs\Sniff;
|
||||
|
||||
/**
|
||||
* 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}
|
||||
*/
|
||||
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.';
|
||||
$phpcsFile->addError($error, $line, 'FullName');
|
||||
$phpcsFile->addError($error, $stack_pointer, 'FullName');
|
||||
}
|
||||
|
||||
if ($found_name === $short_name)
|
||||
@@ -44,7 +60,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
|
||||
public function process(File $phpcsFile, $stackPtr)
|
||||
{
|
||||
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));
|
||||
|
||||
$find = array(
|
||||
T_NS_SEPARATOR,
|
||||
T_STRING,
|
||||
T_WHITESPACE,
|
||||
);
|
||||
|
||||
$class_name_end = $phpcsFile->findNext($find, ($stackPtr + 1), null, true);
|
||||
$class_name_end = $phpcsFile->findNext(self::FIND, ($stackPtr + 1), null, true);
|
||||
|
||||
$aliasing_as_position = $phpcsFile->findNext(T_AS, $class_name_end, null, false, null, true);
|
||||
if ($aliasing_as_position !== false)
|
||||
{
|
||||
$alias_position = $phpcsFile->findNext(T_STRING, $aliasing_as_position, null, false, null, true);
|
||||
$class_name_short = $tokens[$alias_position]['content'];
|
||||
$class_name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start - 1));
|
||||
$name_short = $tokens[$alias_position]['content'];
|
||||
$name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start - 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
$class_name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start));
|
||||
$class_name_short = $tokens[$class_name_end - 1]['content'];
|
||||
$name_full = $phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start));
|
||||
$name_short = $tokens[$class_name_end - 1]['content'];
|
||||
}
|
||||
|
||||
if ($tokens[$class_name_start]['content'] === 'function'
|
||||
&& $tokens[$class_name_start + 1]['code'] === T_WHITESPACE)
|
||||
{
|
||||
$class_name_start += 2;
|
||||
$name_full = $phpcsFile->getTokensAsString(
|
||||
$class_name_start,
|
||||
($class_name_end - $class_name_start - (int) ($aliasing_as_position !== false))
|
||||
);
|
||||
$ok = $this->findFunctionUsage($phpcsFile, $stackPtr, $tokens, $name_full, $name_short);
|
||||
}
|
||||
else
|
||||
{
|
||||
$ok = $this->findClassUsage($phpcsFile, $stackPtr, $tokens, $name_full, $name_short);
|
||||
}
|
||||
|
||||
if ($name_full[0] === '\\')
|
||||
{
|
||||
$phpcsFile->addError("There must not be a leading '\\' in use statements.", $stackPtr, 'Malformed');
|
||||
}
|
||||
|
||||
if (!$ok)
|
||||
{
|
||||
$error = 'There must not be unused USE statements.';
|
||||
$phpcsFile->addError($error, $stackPtr, 'Unused');
|
||||
}
|
||||
}
|
||||
|
||||
private function findClassUsage(File $phpcsFile, $stackPtr, $tokens, $class_name_full, $class_name_short)
|
||||
{
|
||||
$ok = false;
|
||||
|
||||
// Checks in simple statements (new, instanceof and extends)
|
||||
@@ -92,11 +131,11 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
||||
continue;
|
||||
}
|
||||
|
||||
$simple_class_name_end = $phpcsFile->findNext($find, ($simple_statement + 1), null, true);
|
||||
$simple_class_name_end = $phpcsFile->findNext(self::FIND, ($simple_statement + 1), null, true);
|
||||
|
||||
$simple_class_name = trim($phpcsFile->getTokensAsString($simple_class_name_start, ($simple_class_name_end - $simple_class_name_start)));
|
||||
|
||||
$ok = $this->check($phpcsFile, $simple_class_name, $class_name_full, $class_name_short, $simple_statement) ? true : $ok;
|
||||
$ok = $this->check($phpcsFile, $simple_class_name, $class_name_full, $class_name_short, $simple_statement) || $ok;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,12 +145,12 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
||||
{
|
||||
$old_paamayim_nekudotayim = $paamayim_nekudotayim;
|
||||
|
||||
$paamayim_nekudotayim_class_name_start = $phpcsFile->findPrevious($find, $paamayim_nekudotayim - 1, null, true);
|
||||
$paamayim_nekudotayim_class_name_start = $phpcsFile->findPrevious(self::FIND, $paamayim_nekudotayim - 1, null, true);
|
||||
$paamayim_nekudotayim_class_name_end = $paamayim_nekudotayim - 1;
|
||||
|
||||
$paamayim_nekudotayim_class_name = trim($phpcsFile->getTokensAsString($paamayim_nekudotayim_class_name_start + 1, ($paamayim_nekudotayim_class_name_end - $paamayim_nekudotayim_class_name_start)));
|
||||
|
||||
$ok = $this->check($phpcsFile, $paamayim_nekudotayim_class_name, $class_name_full, $class_name_short, $paamayim_nekudotayim) ? true : $ok;
|
||||
$ok = $this->check($phpcsFile, $paamayim_nekudotayim_class_name, $class_name_full, $class_name_short, $paamayim_nekudotayim) || $ok;
|
||||
}
|
||||
|
||||
// Checks in implements
|
||||
@@ -126,11 +165,11 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
||||
$old_implemented_class = $implemented_class;
|
||||
|
||||
$implements_class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($implemented_class - 1));
|
||||
$implements_class_name_end = $phpcsFile->findNext($find, ($implemented_class - 1), null, true);
|
||||
$implements_class_name_end = $phpcsFile->findNext(self::FIND, ($implemented_class - 1), null, true);
|
||||
|
||||
$implements_class_name = trim($phpcsFile->getTokensAsString($implements_class_name_start, ($implements_class_name_end - $implements_class_name_start)));
|
||||
|
||||
$ok = $this->check($phpcsFile, $implements_class_name, $class_name_full, $class_name_short, $implements) ? true : $ok;
|
||||
$ok = $this->check($phpcsFile, $implements_class_name, $class_name_full, $class_name_short, $implements) || $ok;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
$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
|
||||
@@ -151,7 +190,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
||||
$params = $phpcsFile->getMethodParameters($function_declaration);
|
||||
foreach ($params as $param)
|
||||
{
|
||||
$ok = $this->check($phpcsFile, $param['type_hint'], $class_name_full, $class_name_short, $function_declaration) ? true : $ok;
|
||||
$ok = $this->check($phpcsFile, $param['type_hint'], $class_name_full, $class_name_short, $function_declaration) || $ok;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,30 +201,118 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
||||
$old_catch = $catch;
|
||||
|
||||
$caught_class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), $catch + 1);
|
||||
$caught_class_name_end = $phpcsFile->findNext($find, $caught_class_name_start + 1, null, true);
|
||||
$caught_class_name_end = $phpcsFile->findNext(self::FIND, $caught_class_name_start + 1, null, true);
|
||||
|
||||
$caught_class_name = trim($phpcsFile->getTokensAsString($caught_class_name_start, ($caught_class_name_end - $caught_class_name_start)));
|
||||
|
||||
$ok = $this->check($phpcsFile, $caught_class_name, $class_name_full, $class_name_short, $catch) ? true : $ok;
|
||||
$ok = $this->check($phpcsFile, $caught_class_name, $class_name_full, $class_name_short, $catch) || $ok;
|
||||
}
|
||||
|
||||
if (!$ok)
|
||||
$old_use = $stackPtr;
|
||||
while (($use = $phpcsFile->findNext(T_USE, ($old_use + 1))) !== false)
|
||||
{
|
||||
$error = 'There must not be unused USE statements.';
|
||||
$phpcsFile->addError($error, $stackPtr, 'Unused');
|
||||
$old_use = $use;
|
||||
|
||||
// Needs to be inside a class and must not be inside a function scope.
|
||||
if (!$phpcsFile->hasCondition($use, [T_CLASS, T_TRAIT]) || $phpcsFile->hasCondition($use, T_FUNCTION))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$next = $phpcsFile->findNext(T_WHITESPACE, ($use + 1), null, true, null, true);
|
||||
if ($tokens[$next]['code'] === T_OPEN_PARENTHESIS)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$class_name_start = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), $use + 1, null, false, null, true);
|
||||
$class_name_end = $phpcsFile->findNext(self::FIND, $class_name_start + 1, null, true, null, true);
|
||||
$found_name = trim($phpcsFile->getTokensAsString($class_name_start, ($class_name_end - $class_name_start)));
|
||||
|
||||
$ok = $this->check($phpcsFile, $found_name, $class_name_full, $class_name_short, $use) || $ok;
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
|
||||
private function findFunctionUsage(File $phpcsFile, $stackPtr, $tokens, $name_full, $name_short)
|
||||
{
|
||||
$ok = false;
|
||||
$position = $phpcsFile->findNext(T_OPEN_PARENTHESIS, $stackPtr + 1);
|
||||
while ($position !== false)
|
||||
{
|
||||
$function_name_end = $position;
|
||||
$found_start = 1 + $phpcsFile->findPrevious(
|
||||
[T_NS_SEPARATOR, T_STRING, T_WHITESPACE],
|
||||
$function_name_end - 1,
|
||||
null,
|
||||
true
|
||||
);
|
||||
|
||||
$position = $phpcsFile->findNext(T_OPEN_PARENTHESIS, $position + 1);
|
||||
if ($found_start === null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$function_name_start = $found_start;
|
||||
|
||||
// Trim the output.
|
||||
while ($tokens[$function_name_start]['code'] === T_WHITESPACE && $function_name_start < $function_name_end)
|
||||
{
|
||||
++$function_name_start;
|
||||
}
|
||||
|
||||
while ($tokens[$function_name_end]['code'] === T_WHITESPACE && $function_name_end > $function_name_start)
|
||||
{
|
||||
--$function_name_end;
|
||||
}
|
||||
|
||||
$function_name_length = $function_name_end - $function_name_start;
|
||||
|
||||
// Filter out control structures, built in type constructors, etc.
|
||||
if ($function_name_length <= 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// This doesn't seem to be valid PHP, where is the opening tag?
|
||||
if ($found_start === 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$previous_token = $found_start - 1;
|
||||
$filter = [
|
||||
T_FUNCTION, // Function declaration
|
||||
T_OBJECT_OPERATOR, // Method call
|
||||
T_DOUBLE_COLON, // Static method call
|
||||
T_NEW, // Constructors
|
||||
];
|
||||
|
||||
// Filter out calls to methods and function declarations.
|
||||
if (in_array($tokens[$previous_token]['code'], $filter))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$function_name = $phpcsFile->getTokensAsString($function_name_start, $function_name_length);
|
||||
$ok = $this->check($phpcsFile, $function_name, $name_full, $name_short, $function_name_start) || $ok;
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
* the stack passed in $tokens.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function should_ignore_use(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
|
||||
private function should_ignore_use(File $phpcsFile, $stackPtr)
|
||||
{
|
||||
$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 array $tokens
|
||||
* @param string $class_name_full
|
||||
@@ -216,7 +343,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
||||
*
|
||||
* @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;
|
||||
|
||||
@@ -244,7 +371,7 @@ class phpbb_Sniffs_Namespaces_UnusedUseSniff implements PHP_CodeSniffer_Sniff
|
||||
$classes = explode('|', str_replace('[]', '', $classes));
|
||||
foreach ($classes as $class)
|
||||
{
|
||||
$ok = $this->check($phpcsFile, $class, $class_name_full, $class_name_short, $tokens[$tag + 2]['line']) ? true : $ok;
|
||||
$ok = $this->check($phpcsFile, $class, $class_name_full, $class_name_short, $tag + 2) || $ok;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -89,4 +89,7 @@
|
||||
<!-- There MUST be one space between control structure and opening parenthesis -->
|
||||
<rule ref="./phpbb/Sniffs/ControlStructures/OpeningParenthesisSniff.php" />
|
||||
|
||||
<!-- Static qualifier MUST be placed before the visibility qualifiers. -->
|
||||
<rule ref="./phpbb/Sniffs/ControlStructures/StaticKeywordSniff.php" />
|
||||
|
||||
</ruleset>
|
||||
|
21
build/doctum-all.conf.php
Normal file
21
build/doctum-all.conf.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
require __DIR__ . '/doctum-checkout.conf.php';
|
||||
|
||||
$config['versions'] = Doctum\Version\GitVersionCollection::create(__DIR__ . '/../')
|
||||
->add('3.3.x')
|
||||
->add('master')
|
||||
;
|
||||
|
||||
return new Doctum\Doctum($iterator, $config);
|
31
build/doctum-checkout.conf.php
Normal file
31
build/doctum-checkout.conf.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
$iterator = Symfony\Component\Finder\Finder::create()
|
||||
->files()
|
||||
->name('*.php')
|
||||
->in(__DIR__ . '/../phpBB/')
|
||||
->notPath('#^cache/#')
|
||||
->notPath('#^develop/#')
|
||||
->notPath('#^ext/#')
|
||||
->notPath('#^vendor/#')
|
||||
->notPath('data');
|
||||
|
||||
// This variable will be used and changed in doctum-all.conf.php
|
||||
$config = [
|
||||
'title' => 'phpBB API Documentation',
|
||||
'build_dir' => __DIR__ . '/api/output/%version%',
|
||||
'cache_dir' => __DIR__ . '/api/cache/%version%',
|
||||
];
|
||||
|
||||
return new Doctum\Doctum($iterator, $config);
|
127
build/generate_package_json.php
Normal file
127
build/generate_package_json.php
Normal file
@@ -0,0 +1,127 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
if (version_compare(PHP_VERSION, '7.0-dev', '<'))
|
||||
{
|
||||
die('generate_package_json.php requires at least PHP 7.0.');
|
||||
}
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
include_once('../phpBB/includes/functions.php');
|
||||
|
||||
$json_data = new \stdClass();
|
||||
$json_data->metadata = new stdClass();
|
||||
|
||||
$json_data->metadata->current_version_date = '';
|
||||
$json_data->metadata->current_version = '';
|
||||
$json_data->metadata->download_path = '';
|
||||
$json_data->metadata->show_update_package = true;
|
||||
$json_data->metadata->historic = false;
|
||||
|
||||
$json_data->package = [];
|
||||
|
||||
// Open build.xml
|
||||
$build_xml = simplexml_load_file('build.xml');
|
||||
$current_version = (string) $build_xml->xpath('/project/property[@name=\'newversion\']/@value')[0]->value;
|
||||
$previous_version = (string) $build_xml->xpath('/project/property[@name=\'prevversion\']/@value')[0]->value;
|
||||
$older_verions = explode(', ', (string) $build_xml->xpath('/project/property[@name=\'olderversions\']/@value')[0]->value);
|
||||
|
||||
// Clean and sort version info
|
||||
$older_verions[] = $previous_version;
|
||||
$older_verions = array_filter($older_verions, function($version) {
|
||||
preg_match(get_preg_expression('semantic_version'), $version, $matches);
|
||||
return empty($matches['prerelease']) || strpos($matches['prerelease'], 'pl') !== false;
|
||||
});
|
||||
usort($older_verions, function($version_a, $version_b)
|
||||
{
|
||||
return phpbb_version_compare($version_b, $version_a);
|
||||
});
|
||||
|
||||
// Set metadata
|
||||
$json_data->metadata->current_version = $current_version;
|
||||
$json_data->metadata->current_version_date = date('Y-m-d');
|
||||
$json_data->metadata->download_path = 'https://download.phpbb.com/pub/release/' . preg_replace('#([0-9]+\.[0-9]+)(\..+)#', '$1', $current_version) . '/' . $current_version . '/';
|
||||
|
||||
// Add package, patch files, and changed files
|
||||
phpbb_add_package_file(
|
||||
$json_data->package,
|
||||
'phpBB ' . $current_version,
|
||||
'phpBB-' . $current_version,
|
||||
'full',
|
||||
''
|
||||
);
|
||||
phpbb_add_package_file(
|
||||
$json_data->package,
|
||||
'phpBB ' . $current_version . ' Patch Files',
|
||||
'phpBB-' . $current_version . '-patch',
|
||||
'update',
|
||||
'patch'
|
||||
);
|
||||
phpbb_add_package_file(
|
||||
$json_data->package,
|
||||
'phpBB ' . $current_version . ' Changed Files',
|
||||
'phpBB-' . $current_version . '-files',
|
||||
'update',
|
||||
'files'
|
||||
);
|
||||
|
||||
// Loop through packages and assign to packages array
|
||||
foreach ($older_verions as $version)
|
||||
{
|
||||
phpbb_add_package_file(
|
||||
$json_data->package,
|
||||
'phpBB ' . $version . ' to ' . $current_version . ' Update Package',
|
||||
'phpBB-' . $version . '_to_' . $current_version,
|
||||
'update',
|
||||
'advanced_update',
|
||||
$version
|
||||
);
|
||||
}
|
||||
|
||||
echo(json_encode($json_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . "\n");
|
||||
|
||||
function phpbb_add_package_file(array &$package_list, $name, $file_name, $type, $subtype, $from = '')
|
||||
{
|
||||
if (!file_exists(__DIR__ . '/new_version/release_files/' . $file_name . '.zip'))
|
||||
{
|
||||
trigger_error('File does not exist: ' . __DIR__ . '/new_version/release_files/' . $file_name . '.zip');
|
||||
return;
|
||||
}
|
||||
|
||||
$package_file = new stdClass();
|
||||
$package_file->name = $name;
|
||||
$package_file->filename = $file_name;
|
||||
$package_file->type = $type;
|
||||
if (!empty($subtype))
|
||||
{
|
||||
$package_file->subtype = $subtype;
|
||||
}
|
||||
if (!empty($from))
|
||||
{
|
||||
$package_file->from = $from;
|
||||
}
|
||||
$package_file->files = [];
|
||||
|
||||
foreach (['zip', 'tar.bz2'] as $extension)
|
||||
{
|
||||
$file_path = 'new_version/release_files/' . $file_name . '.' . $extension;
|
||||
$filedata = new stdClass();
|
||||
$filedata->filesize = filesize($file_path);
|
||||
$filedata->checksum = trim(preg_replace('/(^\w+)(.+)/', '$1', file_get_contents($file_path . '.sha256')));
|
||||
$filedata->filetype = $extension;
|
||||
$package_file->files[] = $filedata;
|
||||
}
|
||||
|
||||
$package_list[] = $package_file;
|
||||
}
|
@@ -1,32 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
require __DIR__ . '/sami-checkout.conf.php';
|
||||
|
||||
$config['versions'] = Sami\Version\GitVersionCollection::create(__DIR__ . '/../')
|
||||
/*
|
||||
This would be nice, but currently causes various problems that need
|
||||
debugging.
|
||||
->addFromTags('release-3.0.*')
|
||||
->add('3.0.x', '3.0-next (olympus)')
|
||||
->addFromTags('release-3.1.*')
|
||||
->add('3.1.x', '3.1-next (ascraeus)')
|
||||
->add('master')
|
||||
*/
|
||||
->add('3.0.x')
|
||||
->add('3.1.x')
|
||||
->add('3.2.x')
|
||||
->add('master')
|
||||
;
|
||||
|
||||
return new Sami\Sami($iterator, $config);
|
@@ -1,44 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
// Prevent 'Class "acm" does not exist.' exception on removeClass().
|
||||
class PhpbbArrayStore extends Sami\Store\ArrayStore
|
||||
{
|
||||
public function removeClass(Sami\Project $project, $name)
|
||||
{
|
||||
unset($this->classes[$name]);
|
||||
}
|
||||
}
|
||||
|
||||
$iterator = Symfony\Component\Finder\Finder::create()
|
||||
->files()
|
||||
->name('*.php')
|
||||
->in(__DIR__ . '/../phpBB/')
|
||||
->notPath('#^cache/#')
|
||||
->notPath('#^develop/#')
|
||||
->notPath('#^ext/#')
|
||||
->notPath('#^vendor/#')
|
||||
->notPath('data')
|
||||
;
|
||||
|
||||
$config = array(
|
||||
'theme' => '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
Executable file
BIN
doctum.phar
Executable file
Binary file not shown.
@@ -24,7 +24,17 @@ COMMIT_MSG_HOOK_FATAL=$(git config --bool phpbb.hooks.commit-msg.fatal 2> /dev/n
|
||||
git config phpbb.hooks.commit-msg.fatal true
|
||||
|
||||
EXIT_STATUS=0
|
||||
for COMMIT_HASH in $(git rev-list --no-merges "$COMMIT_RANGE")
|
||||
|
||||
COMMIT_HASHES=$(git rev-list --no-merges "$COMMIT_RANGE")
|
||||
|
||||
# If any message have been returned instead of commit hashes list
|
||||
# send a non-zero exit status upstream.
|
||||
if ! [[ "$COMMIT_HASHES" =~ ^[0-9a-f]{5,40} ]]
|
||||
then
|
||||
EXIT_STATUS=1
|
||||
fi
|
||||
|
||||
for COMMIT_HASH in $COMMIT_HASHES
|
||||
do
|
||||
echo "Inspecting commit message of commit $COMMIT_HASH"
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# A hook to check syntax of a phpBB3 commit message, per:
|
||||
# * <http://wiki.phpbb.com/display/DEV/Git>
|
||||
# * <https://area51.phpbb.com/docs/dev/master/development/git.html>
|
||||
# * <http://area51.phpbb.com/phpBB/viewtopic.php?p=209919#p209919>
|
||||
#
|
||||
# This is a commit-msg hook.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
#
|
||||
# A hook to add [$branch] to the beginning of a commit message
|
||||
# if certain conditions are met.
|
||||
@@ -31,12 +31,19 @@ branch="$(echo "$branch" | sed "s/refs\/heads\///g")"
|
||||
if [ "$2" = "" ]
|
||||
then
|
||||
tail="";
|
||||
ticket_id=$(sed -E 's/(ticket\/)(security\/)?([0-9]+)(.+$)?/\3/gm;t;d' <<< "$branch");
|
||||
branch_title=$(sed -E 's/(ticket\/)(security\/)?([0-9]+)(.+$)?/\1\2\3/gm;t;d' <<< "$branch");
|
||||
|
||||
# Branch is prefixed with 'ticket/', append ticket ID to message
|
||||
if [ "$branch" != "${branch##ticket/}" ];
|
||||
if [ "security/" = "$(sed -E 's/(ticket\/)(security\/)?([0-9]+)(.+$)?/\2/gm;t;d' <<< "$branch")" ];
|
||||
then
|
||||
tail="$(printf "\n\nPHPBB3-${branch##ticket/}")";
|
||||
tail="$(printf '\n\nSECURITY-%s' "$ticket_id")";
|
||||
else
|
||||
# Branch is prefixed with 'ticket/', append ticket ID to message
|
||||
if [ "$branch" != "${branch##ticket/}" ];
|
||||
then
|
||||
tail="$(printf '\n\nPHPBB3-%s' "$ticket_id")";
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "[$branch] $tail$(cat "$1")" > "$1"
|
||||
echo "[$branch_title] $tail$(cat "$1")" > "$1"
|
||||
fi
|
||||
|
@@ -36,6 +36,13 @@ RewriteRule ^(.*)$ app.php [QSA,L]
|
||||
#Options +FollowSymLinks
|
||||
</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
|
||||
# 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.
|
||||
|
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);
|
||||
|
||||
// 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;
|
||||
$module_id = $request->variable('i', '');
|
||||
$mode = $request->variable('mode', '');
|
||||
|
@@ -29,7 +29,7 @@
|
||||
|
||||
<!-- BEGIN upload -->
|
||||
:: {upload.FILE_INFO}<br />
|
||||
<!-- IF upload.S_DENIED --><span class="error">{upload.DENIED}</span><!-- ELSEIF upload.ERROR_MSG --><span class="error">{upload.ERROR_MSG}</span><!-- ELSE --><span class="success">{L_SUCCESSFULLY_UPLOADED}</span><!-- ENDIF -->
|
||||
<!-- IF upload.S_DENIED --><span class="error">{upload.L_DENIED}</span><!-- ELSEIF upload.ERROR_MSG --><span class="error">{upload.ERROR_MSG}</span><!-- ELSE --><span class="success">{L_SUCCESSFULLY_UPLOADED}</span><!-- ENDIF -->
|
||||
<br /><br />
|
||||
<!-- END upload -->
|
||||
|
||||
@@ -50,16 +50,21 @@
|
||||
<dl>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{options.CONTENT}</dd>
|
||||
{% if (options.KEY == 'allow_attachments' and S_EMPTY_POST_GROUPS) or (options.KEY == 'allow_pm_attach' and S_EMPTY_PM_GROUPS) %}
|
||||
<dd><span class="error">{{ lang(options.KEY == 'allow_attachments' ? 'NO_EXT_GROUP_ALLOWED_POST' : 'NO_EXT_GROUP_ALLOWED_PM', U_EXTENSION_GROUPS) }}</span></dd>
|
||||
{% endif %}
|
||||
</dl>
|
||||
|
||||
<!-- ENDIF -->
|
||||
<!-- END options -->
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{L_SUBMIT}</legend>
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
<fieldset>
|
||||
<legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
<!-- IF not S_SECURE_DOWNLOADS -->
|
||||
@@ -110,7 +115,7 @@
|
||||
<!-- ELSEIF S_EXTENSION_GROUPS -->
|
||||
|
||||
<!-- IF S_EDIT_GROUP -->
|
||||
<script type="text/javascript" defer="defer">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
function update_image(newimage)
|
||||
{
|
||||
@@ -204,10 +209,13 @@
|
||||
<dd><select name="allowed_forums[]" multiple="multiple" size="8">{S_FORUM_ID_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
|
||||
@@ -308,10 +316,14 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
@@ -382,10 +394,13 @@
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF .orphan -->
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
<!-- ENDIF -->
|
||||
|
||||
{S_FORM_TOKEN}
|
||||
@@ -421,17 +436,25 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN attachments -->
|
||||
{% for attachments in attachments %}
|
||||
<tr>
|
||||
<td>
|
||||
<!-- IF attachments.S_IN_MESSAGE -->{L_EXTENSION_GROUP}{L_COLON} <strong><!-- IF attachments.EXT_GROUP_NAME -->{attachments.EXT_GROUP_NAME}<!-- ELSE -->{L_NO_EXT_GROUP}<!-- ENDIF --></strong><br />{attachments.L_DOWNLOAD_COUNT}<br />{L_IN} {L_PRIVATE_MESSAGE}
|
||||
<!-- ELSE --><a href="{attachments.U_FILE}" style="font-weight: bold;">{attachments.REAL_FILENAME}</a><br /><!-- IF attachments.COMMENT -->{attachments.COMMENT}<br /><!-- ENDIF -->{attachments.L_DOWNLOAD_COUNT}<br />{L_TOPIC}{L_COLON} <a href="{attachments.U_VIEW_TOPIC}">{attachments.TOPIC_TITLE}</a><!-- ENDIF -->
|
||||
{{ lang('EXTENSION_GROUP') ~ lang('COLON') }} <strong>{{ attachments.EXT_GROUP_NAME }}</strong>
|
||||
{% if attachments.S_IN_MESSAGE %}
|
||||
<br>{{ attachments.L_DOWNLOAD_COUNT }}
|
||||
<br>{{ lang('IN') }} {{ lang('PRIVATE_MESSAGE') }}
|
||||
{% else %}
|
||||
<br><a href="{{ attachments.U_FILE }}"><strong>{{ attachments.REAL_FILENAME }}</strong></a>
|
||||
{% if attachments.COMMENT %}<br>{{ attachments.COMMENT }}{% endif %}
|
||||
<br>{{ attachments.L_DOWNLOAD_COUNT }}
|
||||
<br>{{ lang('TOPIC') ~ lang('COLON') }} <a href="{{ attachments.U_VIEW_TOPIC }}">{{ attachments.TOPIC_TITLE }}</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{attachments.FILETIME}<br />{L_POST_BY_AUTHOR} {attachments.ATTACHMENT_POSTER}</td>
|
||||
<td class="centered-text">{attachments.FILESIZE}</td>
|
||||
<td class="centered-text"><input type="checkbox" class="radio" name="delete[{attachments.ATTACH_ID}]" /></td>
|
||||
<td>{{ attachments.FILETIME }}<br>{{ lang('POST_BY_AUTHOR') }} {{ attachments.ATTACHMENT_POSTER }}</td>
|
||||
<td class="centered-text">{{ attachments.FILESIZE }}</td>
|
||||
<td class="centered-text"><input type="checkbox" class="radio" name="delete[{{ attachments.ATTACH_ID }}]" /></td>
|
||||
</tr>
|
||||
<!-- END attachments -->
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- ELSE -->
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<dl>
|
||||
<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>
|
||||
|
||||
<!-- IF S_UPLOAD_AVATAR_URL -->
|
||||
|
@@ -8,7 +8,7 @@
|
||||
|
||||
<p>{L_EXPLAIN}</p>
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
|
||||
var ban_length = new Array();
|
||||
@@ -73,12 +73,14 @@
|
||||
<dt><label for="bangivereason">{L_BAN_GIVE_REASON}{L_COLON}</label></dt>
|
||||
<dd><input name="bangivereason" type="text" class="text medium" maxlength="255" id="bangivereason" /></dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="bansubmit" name="bansubmit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="banreset" name="banreset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="bansubmit" name="bansubmit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="banreset" name="banreset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
@@ -31,11 +31,11 @@
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_BBCODE_HELPLINE}</legend>
|
||||
<p>{L_BBCODE_HELPLINE_EXPLAIN}</p>
|
||||
<legend>{{ lang('BBCODE_HELPLINE') }}</legend>
|
||||
<p>{{ lang('BBCODE_HELPLINE_EXPLAIN') }}</p>
|
||||
<dl>
|
||||
<dt><label for="bbcode_helpline">{L_BBCODE_HELPLINE_TEXT}</label></dt>
|
||||
<dd><input type="text" id="bbcode_helpline" name="bbcode_helpline" size="60" maxlength="255" value="{BBCODE_HELPLINE}" /></dd>
|
||||
<dt><label for="bbcode_helpline">{{ lang('BBCODE_HELPLINE_TEXT') }}</label></dt>
|
||||
<dd><textarea id="bbcode_helpline" name="bbcode_helpline" cols="60" rows="4">{{ BBCODE_HELPLINE }}</textarea></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
|
||||
var form_name = 'acp_contact';
|
||||
@@ -44,7 +44,7 @@
|
||||
<!-- INCLUDE acp_posting_buttons.html -->
|
||||
|
||||
<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>
|
||||
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px;">
|
||||
@@ -66,9 +66,12 @@
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="submit" name="preview" value="{L_PREVIEW}" />
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
@@ -35,7 +35,7 @@
|
||||
|
||||
<p>{L_ACP_BACKUP_EXPLAIN}</p>
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
|
||||
function selector(bool)
|
||||
@@ -58,7 +58,6 @@
|
||||
<dl>
|
||||
<dt><label for="type">{L_BACKUP_TYPE}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="type" value="full" id="type" checked="checked" /> {L_FULL_BACKUP}</label>
|
||||
<label><input type="radio" name="type" class="radio" value="structure" /> {L_STRUCTURE_ONLY}</label>
|
||||
<label><input type="radio" class="radio" name="type" value="data" /> {L_DATA_ONLY}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
@@ -67,12 +66,6 @@
|
||||
<label><input name="method"<!-- IF methods.S_FIRST_ROW --> id="method" checked="checked"<!-- ENDIF --> type="radio" class="radio" value="{methods.TYPE}" /> {methods.TYPE}</label>
|
||||
<!-- END methods --></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="where">{L_ACTION}{L_COLON}</label></dt>
|
||||
<dd>
|
||||
<label><input id="where" type="radio" class="radio" name="where" value="store" checked="checked" /> {L_STORE_LOCAL}</label>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="table">{L_TABLE_SELECT}{L_COLON}</label></dt>
|
||||
<dd><select id="table" name="table[]" size="10" multiple="multiple">
|
||||
@@ -82,12 +75,15 @@
|
||||
</select></dd>
|
||||
<dd><a href="#" onclick="selector(true); return false;">{L_SELECT_ALL}</a> :: <a href="#" onclick="selector(false); return false;">{L_DESELECT_ALL}</a></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
@@ -1,40 +1,40 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
{% INCLUDE 'overall_header.html' %}
|
||||
|
||||
<a id="maincontent"></a>
|
||||
|
||||
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
||||
<h1>{{ lang('EXTENSIONS_ADMIN') }}</h1>
|
||||
|
||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
||||
<p>{L_EXTENSION_DELETE_DATA_EXPLAIN}</p>
|
||||
<p>{{ lang('EXTENSIONS_EXPLAIN') }}</p>
|
||||
<p>{{ lang('EXTENSION_DELETE_DATA_EXPLAIN') }}</p>
|
||||
|
||||
<!-- 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 -->
|
||||
{% if MIGRATOR_ERROR %}
|
||||
<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>
|
||||
<!-- ELSE -->
|
||||
<div class="successbox">
|
||||
<p>{L_EXTENSION_DELETE_DATA_SUCCESS}</p>
|
||||
<br />
|
||||
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
||||
{% elseif S_PRE_STEP %}
|
||||
<div class="errorbox">
|
||||
<p>{{ CONFIRM_MESSAGE }}</p>
|
||||
</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>
|
||||
|
||||
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
||||
<h1>{{ lang('EXTENSIONS_ADMIN') }}</h1>
|
||||
|
||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
||||
<p>{L_EXTENSION_DISABLE_EXPLAIN}</p>
|
||||
<p>{{ lang('EXTENSIONS_EXPLAIN') }}</p>
|
||||
<p>{{ lang('EXTENSION_DISABLE_EXPLAIN') }}</p>
|
||||
|
||||
<!-- IF PRE -->
|
||||
<fieldset>
|
||||
<h2>{L_CONFIRM}</h2>
|
||||
<p>{L_CONFIRM_MESSAGE}</p>
|
||||
</fieldset>
|
||||
{% if S_PRE_STEP %}
|
||||
<fieldset>
|
||||
<h2>{{ lang('CONFIRM') }}</h2>
|
||||
<p>{{ CONFIRM_MESSAGE }}</p>
|
||||
</fieldset>
|
||||
|
||||
<form id="acp_extensions" method="post" action="{U_DISABLE}">
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" name="disable" value="{L_EXTENSION_DISABLE}" />
|
||||
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
||||
</fieldset>
|
||||
</form>
|
||||
<!-- ELSEIF S_NEXT_STEP -->
|
||||
<form id="acp_extensions" method="post" action="{{ U_DISABLE }}">
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" name="disable" value="{{ lang('EXTENSION_DISABLE') }}">
|
||||
<input class="button2" type="submit" name="cancel" value="{{ lang('CANCEL') }}">
|
||||
</fieldset>
|
||||
</form>
|
||||
{% elseif S_NEXT_STEP %}
|
||||
<div class="successbox notice">
|
||||
<p>{L_EXTENSION_DISABLE_IN_PROGRESS}</p>
|
||||
<p>{{ lang('EXTENSION_DISABLE_IN_PROGRESS') }}</p>
|
||||
</div>
|
||||
<!-- ELSE -->
|
||||
{% else %}
|
||||
<div class="successbox">
|
||||
<p>{L_EXTENSION_DISABLE_SUCCESS}</p>
|
||||
<br />
|
||||
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
||||
<p>{{ lang('EXTENSION_DISABLE_SUCCESS') }}</p>
|
||||
<br>
|
||||
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||
</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>
|
||||
|
||||
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
||||
<h1>{{ lang('EXTENSIONS_ADMIN') }}</h1>
|
||||
|
||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
||||
<p>{L_EXTENSION_ENABLE_EXPLAIN}</p>
|
||||
<p>{{ lang('EXTENSIONS_EXPLAIN') }}</p>
|
||||
<p>{{ lang('EXTENSION_ENABLE_EXPLAIN') }}</p>
|
||||
|
||||
<!-- 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 -->
|
||||
<fieldset>
|
||||
<h2>{L_CONFIRM}</h2>
|
||||
<p>{L_CONFIRM_MESSAGE}</p>
|
||||
</fieldset>
|
||||
{% if MIGRATOR_ERROR %}
|
||||
<div class="errorbox">
|
||||
<p><strong>{{ lang('MIGRATION_EXCEPTION_ERROR') }}</strong></p>
|
||||
<p>{{ MIGRATOR_ERROR }}</p>
|
||||
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||
</div>
|
||||
{% elseif S_PRE_STEP %}
|
||||
<fieldset>
|
||||
<h2>{{ lang('CONFIRM') }}</h2>
|
||||
<p>{{ CONFIRM_MESSAGE }}</p>
|
||||
</fieldset>
|
||||
|
||||
<form id="acp_extensions" method="post" action="{U_ENABLE}">
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" name="enable" value="{L_EXTENSION_ENABLE}" />
|
||||
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
||||
</fieldset>
|
||||
</form>
|
||||
<!-- ELSEIF S_NEXT_STEP -->
|
||||
<form id="acp_extensions" method="post" action="{{ U_ENABLE }}">
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" name="enable" value="{{ lang('EXTENSION_ENABLE') }}">
|
||||
<input class="button2" type="submit" name="cancel" value="{{ lang('CANCEL') }}">
|
||||
</fieldset>
|
||||
</form>
|
||||
{% elseif S_NEXT_STEP %}
|
||||
<div class="successbox notice">
|
||||
<p>{L_EXTENSION_ENABLE_IN_PROGRESS}</p>
|
||||
<p>{{ lang('EXTENSION_ENABLE_IN_PROGRESS') }}</p>
|
||||
</div>
|
||||
<!-- ELSE -->
|
||||
{% else %}
|
||||
<div class="successbox">
|
||||
<p>{L_EXTENSION_ENABLE_SUCCESS}</p>
|
||||
<br />
|
||||
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
||||
<p>{{ lang('EXTENSION_ENABLE_SUCCESS') }}</p>
|
||||
<br>
|
||||
<p><a href="{{ U_RETURN }}">{{ lang('RETURN_TO_EXTENSION_LIST') }}</a></p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
{% endif %}
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
||||
{% INCLUDE 'overall_footer.html' %}
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
||||
|
||||
<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>
|
||||
|
||||
<form id="version_check_settings" method="post" action="{U_ACTION}" style="display:none">
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- IF S_EDIT_FORUM -->
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
/**
|
||||
* Handle displaying/hiding several options based on the forum type
|
||||
@@ -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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
@@ -405,7 +410,7 @@
|
||||
|
||||
<!-- ELSEIF S_CONTINUE_SYNC -->
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
var close_waitscreen = 0;
|
||||
// no scrollbars...
|
||||
@@ -421,7 +426,7 @@
|
||||
|
||||
<!-- ELSE -->
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
/**
|
||||
* Popup search progress bar
|
||||
@@ -447,7 +452,7 @@
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF S_RESYNCED -->
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
var close_waitscreen = 1;
|
||||
// ]]>
|
||||
|
@@ -36,10 +36,12 @@
|
||||
<dl>
|
||||
<dt><label for="group_type">{L_GROUP_TYPE}{L_COLON}</label><br /><span>{L_GROUP_TYPE_EXPLAIN}</span></dt>
|
||||
<dd>
|
||||
{% EVENT acp_group_types_prepend %}
|
||||
<label><input name="group_type" type="radio" class="radio" id="group_type" value="{GROUP_TYPE_FREE}"{GROUP_FREE} /> {L_GROUP_OPEN}</label>
|
||||
<label><input name="group_type" type="radio" class="radio" value="{GROUP_TYPE_OPEN}"{GROUP_OPEN} /> {L_GROUP_REQUEST}</label>
|
||||
<label><input name="group_type" type="radio" class="radio" value="{GROUP_TYPE_CLOSED}"{GROUP_CLOSED} /> {L_GROUP_CLOSED}</label>
|
||||
<label><input name="group_type" type="radio" class="radio" value="{GROUP_TYPE_HIDDEN}"{GROUP_HIDDEN} /> {L_GROUP_HIDDEN}</label>
|
||||
{% EVENT acp_group_types_append %}
|
||||
</dd>
|
||||
</dl>
|
||||
<!-- ELSE -->
|
||||
@@ -98,7 +100,7 @@
|
||||
<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>
|
||||
[ <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>
|
||||
</dl>
|
||||
<dl>
|
||||
|
@@ -15,13 +15,15 @@
|
||||
<label><input type="radio" name="legend_sort_groupname" class="radio" value="0"<!-- IF not LEGEND_SORT_GROUPNAME --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" name="reset" value="{L_RESET}" />
|
||||
<input type="hidden" name="action" value="set_config_legend" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" name="reset" value="{L_RESET}" />
|
||||
<input type="hidden" name="action" value="set_config_legend" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
@@ -38,10 +38,13 @@
|
||||
<dd>{L_SEND_STATISTICS_LONG}</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<script>
|
||||
var statsData = {{ S_STATS_DATA }};
|
||||
</script>
|
||||
<!-- EVENT acp_help_phpbb_stats_after -->
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<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 class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
</p>
|
||||
@@ -51,8 +54,13 @@
|
||||
</form>
|
||||
<form action="{U_COLLECT_STATS}" method="post" target="questionaire_result" id="questionnaire-form">
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<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}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- IF S_EDIT -->
|
||||
|
||||
<script type="text/javascript" defer="defer">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
<!-- IF S_ADD_CODE -->
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
<!-- BEGIN items -->
|
||||
<tr>
|
||||
|
||||
<td style="text-align: center;"><img src="{items.IMG_SRC}" alt="{items.TEXT_ALT}" title="{items.TEXT_ALT}" /><input type="hidden" name="image[{items.IMG}]" value="1" /></td>
|
||||
<td style="text-align: center;"><img src="{items.IMG_SRC}" alt="{items.TEXT_ALT}" title="{items.TEXT_ALT}" style="max-width: 160px;"><input type="hidden" name="image[{items.IMG}]" value="1" /></td>
|
||||
<td style="vertical-align: top;">[{items.IMG}]</td>
|
||||
<!-- IF S_SMILIES -->
|
||||
<td><input class="text post" type="text" name="code[{items.IMG}]" value="{items.CODE}" size="10" maxlength="50" /></td>
|
||||
|
@@ -45,7 +45,7 @@
|
||||
</tr>
|
||||
<!-- BEGINELSE -->
|
||||
<tr>
|
||||
<td colspan="6" style="text-align: center;">{L_NO_INACTIVE_USERS}</td>
|
||||
<td colspan="7" style="text-align: center;">{L_NO_INACTIVE_USERS}</td>
|
||||
</tr>
|
||||
<!-- END inactive -->
|
||||
</tbody>
|
||||
|
@@ -70,9 +70,12 @@
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
@@ -69,7 +69,7 @@
|
||||
<p>{L_ACP_LANGUAGE_PACKS_EXPLAIN}</p>
|
||||
|
||||
<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>
|
||||
|
||||
<table class="table1 zebra-table">
|
||||
|
@@ -78,6 +78,13 @@
|
||||
<p>{L_ERROR_MBSTRING_HTTP_OUTPUT_EXPLAIN}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
{% if S_DEFAULT_CHARSET_FAIL %}
|
||||
<div class="errorbox">
|
||||
<h3>{{ lang('ERROR_DEFAULT_CHARSET') }}</h3>
|
||||
<p>{{ lang('ERROR_DEFAULT_CHARSET_EXPLAIN') }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF S_WRITABLE_CONFIG -->
|
||||
@@ -94,89 +101,115 @@
|
||||
|
||||
<!-- EVENT acp_main_notice_after -->
|
||||
|
||||
<table class="table1 two-columns no-header" data-no-responsive-header="true">
|
||||
<caption>{L_FORUM_STATS}</caption>
|
||||
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{L_STATISTIC}</th>
|
||||
<th>{L_VALUE}</th>
|
||||
<th>{L_STATISTIC}</th>
|
||||
<th>{L_VALUE}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{L_NUMBER_POSTS}{L_COLON} </td>
|
||||
<td><strong>{TOTAL_POSTS}</strong></td>
|
||||
<td>{L_POSTS_PER_DAY}{L_COLON} </td>
|
||||
<td><strong>{POSTS_PER_DAY}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_NUMBER_TOPICS}{L_COLON} </td>
|
||||
<td><strong>{TOTAL_TOPICS}</strong></td>
|
||||
<td>{L_TOPICS_PER_DAY}{L_COLON} </td>
|
||||
<td><strong>{TOPICS_PER_DAY}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_NUMBER_USERS}{L_COLON} </td>
|
||||
<td><strong>{TOTAL_USERS}</strong></td>
|
||||
<td>{L_USERS_PER_DAY}{L_COLON} </td>
|
||||
<td><strong>{USERS_PER_DAY}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_NUMBER_FILES}{L_COLON} </td>
|
||||
<td><strong>{TOTAL_FILES}</strong></td>
|
||||
<td>{L_FILES_PER_DAY}{L_COLON} </td>
|
||||
<td><strong>{FILES_PER_DAY}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_BOARD_STARTED}{L_COLON} </td>
|
||||
<td><strong>{START_DATE}</strong></td>
|
||||
<td>{L_AVATAR_DIR_SIZE}{L_COLON} </td>
|
||||
<td><strong>{AVATAR_DIR_SIZE}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_DATABASE_SIZE}{L_COLON} </td>
|
||||
<td><strong>{DBSIZE}</strong></td>
|
||||
<td>{L_UPLOAD_DIR_SIZE}{L_COLON} </td>
|
||||
<td><strong>{UPLOAD_DIR_SIZE}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_DATABASE_SERVER_INFO}{L_COLON} </td>
|
||||
<td><strong>{DATABASE_INFO}</strong></td>
|
||||
<td>{L_GZIP_COMPRESSION}{L_COLON} </td>
|
||||
<td><strong>{GZIP_COMPRESSION}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_PHP_VERSION}{L_COLON} </td>
|
||||
<td><strong>{PHP_VERSION_INFO}</strong></td>
|
||||
<!-- IF S_TOTAL_ORPHAN -->
|
||||
<td>{L_NUMBER_ORPHAN}{L_COLON} </td>
|
||||
<td>
|
||||
<!-- IF TOTAL_ORPHAN > 0 -->
|
||||
<a href="{U_ATTACH_ORPHAN}" title="{L_MORE_INFORMATION}"><strong>{TOTAL_ORPHAN}</strong></a>
|
||||
<!-- ELSE -->
|
||||
<strong>{TOTAL_ORPHAN}</strong>
|
||||
<!-- ENDIF -->
|
||||
</td>
|
||||
<!-- ELSE -->
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<!-- ENDIF -->
|
||||
</tr>
|
||||
<!-- IF S_VERSIONCHECK -->
|
||||
<tr>
|
||||
<td>{L_BOARD_VERSION}{L_COLON} </td>
|
||||
<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="{L_MORE_INFORMATION}">{BOARD_VERSION}</a></strong> [ <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> ]
|
||||
</td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<!-- ENDIF -->
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="lside">
|
||||
<table class="table2 zebra-table no-header" data-no-responsive-header="true">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ lang('STATISTIC') }}</th>
|
||||
<th>{{ lang('VALUE') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('BOARD_STARTED') ~ lang('COLON') }}</td>
|
||||
<td class="tabled"><strong>{{ START_DATE }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('AVATAR_DIR_SIZE') ~ lang('COLON') }}</td>
|
||||
<td class="tabled"><strong>{{ AVATAR_DIR_SIZE }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('DATABASE_SIZE') ~ lang('COLON') }}</td>
|
||||
<td class="tabled"><strong>{{ DBSIZE }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('UPLOAD_DIR_SIZE') ~ lang('COLON') }}</td>
|
||||
<td class="tabled"><strong>{{ UPLOAD_DIR_SIZE }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('DATABASE_SERVER_INFO') ~ lang('COLON') }}</td>
|
||||
<td class="tabled"><strong>{{ DATABASE_INFO }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('GZIP_COMPRESSION') ~ lang('COLON') }}</td>
|
||||
<td class="tabled"><strong>{{ GZIP_COMPRESSION }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('PHP_VERSION') ~ lang('COLON') }}</td>
|
||||
<td class="tabled"><strong>{{ PHP_VERSION_INFO }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('NUMBER_ORPHAN') ~ lang('COLON') }}</td>
|
||||
<td class="tabled">
|
||||
{% if TOTAL_ORPHAN > 0 %}
|
||||
<a href="{{ U_ATTACH_ORPHAN }}" title="{{ lang('MORE_INFORMATION') }}"><strong>{{ TOTAL_ORPHAN }}</strong></a>
|
||||
{% else %}
|
||||
<strong>{{ TOTAL_ORPHAN }}</strong>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if S_VERSIONCHECK %}
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('BOARD_VERSION') ~ lang('COLON') }}</td>
|
||||
<td class="tabled">
|
||||
<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>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="table2 zebra-table no-header" data-no-responsive-header="true">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ lang('STATISTIC') }}</th>
|
||||
<th>{{ lang('VALUE') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('NUMBER_POSTS') ~ lang('COLON') }}</td>
|
||||
<td class="tabled"><strong>{{ TOTAL_POSTS }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('POSTS_PER_DAY') ~ lang('COLON') }}</td>
|
||||
<td class="tabled"><strong>{{ POSTS_PER_DAY }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tabled">{{ lang('NUMBER_TOPICS') ~ lang('COLON') }}</td>
|
||||
<td class="tabled"><strong>{{ TOTAL_TOPICS }}</strong></td>
|
||||
</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>
|
||||
{% if S_VERSIONCHECK %}
|
||||
<tr>
|
||||
<td class="tabled"> </td>
|
||||
<td class="tabled"> </td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- IF S_ACTION_OPTIONS -->
|
||||
<fieldset>
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- IF S_EDIT_MODULE -->
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
function display_options(value)
|
||||
{
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
<!-- IF S_EDIT -->
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
var active_pmask = '0';
|
||||
var active_fmask = '0';
|
||||
@@ -20,7 +20,7 @@
|
||||
// ]]>
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="style/permissions.js"></script>
|
||||
<script src="style/permissions.js"></script>
|
||||
|
||||
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">« {L_BACK}</a>
|
||||
|
||||
|
@@ -340,9 +340,12 @@
|
||||
<br class="responsive-hide" /><br class="responsive-hide" />
|
||||
|
||||
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
|
||||
<input class="button1" type="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" />
|
||||
<input class="button2" type="button" name="cancel" value="{L_RESET}" onclick="document.forms['set-permissions'].reset(); init_colours(active_pmask + active_fmask);" />
|
||||
{S_FORM_TOKEN}
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" />
|
||||
<input class="button2" type="button" id="reset" name="cancel" value="{L_RESET}" onclick="document.forms['set-permissions'].reset(); init_colours(active_pmask + active_fmask);" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
<br class="responsive-hide" /><br class="responsive-hide" />
|
||||
|
@@ -1,31 +1,10 @@
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
|
||||
// Define the bbCode tags
|
||||
var bbcode = new Array();
|
||||
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
|
||||
|
||||
// Helpline messages
|
||||
var help_line = {
|
||||
b: '{LA_BBCODE_B_HELP}',
|
||||
i: '{LA_BBCODE_I_HELP}',
|
||||
u: '{LA_BBCODE_U_HELP}',
|
||||
q: '{LA_BBCODE_Q_HELP}',
|
||||
c: '{LA_BBCODE_C_HELP}',
|
||||
l: '{LA_BBCODE_L_HELP}',
|
||||
o: '{LA_BBCODE_O_HELP}',
|
||||
p: '{LA_BBCODE_P_HELP}',
|
||||
w: '{LA_BBCODE_W_HELP}',
|
||||
a: '{LA_BBCODE_A_HELP}',
|
||||
s: '{LA_BBCODE_S_HELP}',
|
||||
f: '{LA_BBCODE_F_HELP}',
|
||||
y: '{LA_BBCODE_Y_HELP}',
|
||||
d: '{LA_BBCODE_D_HELP}'
|
||||
<!-- BEGIN custom_tags -->
|
||||
,cb_{custom_tags.BBCODE_ID}{L_COLON} '{custom_tags.A_BBCODE_HELPLINE}'
|
||||
<!-- END custom_tags -->
|
||||
}
|
||||
|
||||
// ]]>
|
||||
</script>
|
||||
|
||||
@@ -65,7 +44,7 @@
|
||||
</select>
|
||||
<!-- EVENT acp_posting_buttons_custom_tags_before -->
|
||||
<!-- BEGIN custom_tags -->
|
||||
<input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})" title="{custom_tags.BBCODE_HELPLINE}" />
|
||||
<input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})" title="{{ custom_tags.BBCODE_HELPLINE }}" />
|
||||
<!-- END custom_tags -->
|
||||
</div>
|
||||
<!-- EVENT acp_posting_buttons_after -->
|
||||
|
@@ -21,8 +21,11 @@
|
||||
|
||||
<!-- IF S_STEP_ONE -->
|
||||
|
||||
{% EVENT acp_profile_options_before %}
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_TITLE}</legend>
|
||||
{% EVENT acp_profile_basic_options_before %}
|
||||
<dl>
|
||||
<dt><label>{L_FIELD_TYPE}{L_COLON}</label><br /><span>{L_FIELD_TYPE_EXPLAIN}</span></dt>
|
||||
<dd><strong>{FIELD_TYPE}</strong></dd>
|
||||
@@ -43,8 +46,11 @@
|
||||
<dd><label><input type="radio" class="radio" id="field_no_view" name="field_no_view" value="0"<!-- IF not S_FIELD_NO_VIEW --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="field_no_view" value="1"<!-- IF S_FIELD_NO_VIEW --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
{% EVENT acp_profile_basic_options_after %}
|
||||
</fieldset>
|
||||
|
||||
{% EVENT acp_profile_visibility_options_before %}
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_VISIBILITY_OPTION}</legend>
|
||||
<dl>
|
||||
@@ -87,8 +93,11 @@
|
||||
<dd><input class="text medium" type="text" name="field_contact_url" id="field_contact_url" value="{FIELD_CONTACT_URL}" /> <label for="field_contact_url">{L_FIELD_CONTACT_URL}</label></dd>
|
||||
<!-- EVENT acp_profile_contact_last -->
|
||||
</dl>
|
||||
{% EVENT acp_profile_contact_after %}
|
||||
</fieldset>
|
||||
|
||||
{% EVENT acp_profile_visibility_options_after %}
|
||||
|
||||
<!-- IF S_EDIT_MODE -->
|
||||
<fieldset class="quick">
|
||||
<input class="button1" type="submit" name="save" value="{L_SAVE}" />
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<p>{L_ACP_PRUNE_USERS_EXPLAIN}</p>
|
||||
|
||||
<form id="acp_prune" method="post" action="{U_ACTION}">
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_CRITERIA}</legend>
|
||||
<dl>
|
||||
@@ -66,15 +66,19 @@
|
||||
<dd><label><input type="radio" class="radio" name="action" value="delete" /> {L_DELETE_USERS}</label>
|
||||
<label><input type="radio" class="radio" id="deactivate" name="action" value="deactivate" checked="checked" /> {L_DEACTIVATE}</label></dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input type="hidden" name="prune" value="1" />
|
||||
|
||||
<input class="button1" type="submit" id="update" name="update" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input type="hidden" name="prune" value="1" />
|
||||
|
||||
<input class="button1" type="submit" id="update" name="update" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
||||
|
@@ -6,7 +6,7 @@
|
||||
|
||||
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">« {L_BACK}</a>
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
function update_image(newimage)
|
||||
{
|
||||
@@ -85,7 +85,7 @@
|
||||
<!-- BEGIN ranks -->
|
||||
<tr>
|
||||
<!-- EVENT acp_ranks_list_column_before -->
|
||||
<td style="text-align: center;"><!-- IF ranks.S_RANK_IMAGE --><img src="{ranks.RANK_IMAGE}" alt="{ranks.RANK_TITLE}" title="{ranks.RANK_TITLE}" /><!-- ELSE --> - <!-- ENDIF --></td>
|
||||
<td style="text-align: center;"><!-- IF ranks.S_RANK_IMAGE --><img src="{ranks.RANK_IMAGE}" alt="{ranks.RANK_TITLE}" title="{ranks.RANK_TITLE}" style="max-width: 160px;"><!-- ELSE --> - <!-- ENDIF --></td>
|
||||
<td style="text-align: center;">{ranks.RANK_TITLE}</td>
|
||||
<td style="text-align: center;"><!-- IF ranks.S_SPECIAL_RANK --> - <!-- ELSE -->{ranks.MIN_POSTS}<!-- ENDIF --></td>
|
||||
<!-- EVENT acp_ranks_list_column_after -->
|
||||
|
@@ -36,6 +36,13 @@
|
||||
<dt><label for="max_num_search_keywords">{L_MAX_NUM_SEARCH_KEYWORDS}{L_COLON}</label><br /><span>{L_MAX_NUM_SEARCH_KEYWORDS_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_num_search_keywords" type="number" min="0" max="9999" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="default_search_return_chars">{{ lang('DEFAULT_SEARCH_RETURN_CHARS') ~ lang('COLON') }}</label>
|
||||
<br><span>{{ lang('DEFAULT_SEARCH_RETURN_CHARS_EXPLAIN') }}</span>
|
||||
</dt>
|
||||
<dd><input id="default_search_return_chars" name="config[default_search_return_chars]" type="number" value="{{ DEFAULT_SEARCH_RETURN_CHARS }}" min="0" max="9999"></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}{L_COLON}</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
|
||||
<dd><input id="search_store_results" type="number" min="0" max="999999" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
|
||||
@@ -59,17 +66,19 @@
|
||||
|
||||
<!-- END backend -->
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{L_SUBMIT}</legend>
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<!-- ELSEIF S_INDEX -->
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
/**
|
||||
* Popup search progress bar
|
||||
@@ -89,10 +98,12 @@
|
||||
<p>{L_CONTINUE_EXPLAIN}</p>
|
||||
|
||||
<form id="acp_search_continue" method="post" action="{U_CONTINUE_INDEXING}">
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{L_SUBMIT}</legend>
|
||||
<input class="button1" type="submit" id="continue" name="continue" value="{L_CONTINUE}" onclick="popup_progress_bar('{S_CONTINUE_INDEXING}');" />
|
||||
<input class="button2" type="submit" id="cancel" name="cancel" value="{L_CANCEL}" />
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="submit" id="cancel" name="cancel" value="{L_CANCEL}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
@@ -33,7 +33,7 @@
|
||||
<!-- IF L_EXPLAIN --><p>{L_EXPLAIN}</p><!-- ENDIF -->
|
||||
|
||||
<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>
|
||||
|
||||
<form id="acp_styles" method="post" action="{U_ACTION}">
|
||||
@@ -96,9 +96,10 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{L_STYLE_NAME}</th>
|
||||
<th width="10%" style="white-space: nowrap; text-align: center;">{L_STYLE_PHPBB_VERSION}</th>
|
||||
<!-- IF not STYLES_LIST_HIDE_COUNT --><th width="10%" style="white-space: nowrap; text-align: center;">{L_STYLE_USED_BY}</th><!-- ENDIF -->
|
||||
<th width="25%" style="white-space: nowrap; text-align: center;">{L_ACTIONS}</th>
|
||||
<th style="width: 10%; white-space: nowrap; text-align: center;">{{ lang('STYLE_VERSION') }}</th>
|
||||
<th style="width: 10%; white-space: nowrap; text-align: center;">{L_STYLE_PHPBB_VERSION}</th>
|
||||
<!-- IF not STYLES_LIST_HIDE_COUNT --><th style="width: 10%; white-space: nowrap; text-align: center;">{L_STYLE_USED_BY}</th><!-- ENDIF -->
|
||||
<th style="width: 25%; white-space: nowrap; text-align: center;">{L_ACTIONS}</th>
|
||||
{STYLES_LIST_EXTRA}
|
||||
<th> </th>
|
||||
</tr>
|
||||
@@ -130,6 +131,7 @@
|
||||
<span class="style-path"><br />{L_STYLE_PATH}{L_COLON} {styles_list.STYLE_PATH_FULL}</span>
|
||||
<!-- ENDIF -->
|
||||
</td>
|
||||
<td class="{$ROW_CLASS} users">{{ styles_list.STYLE_VERSION }}</td>
|
||||
<td class="{$ROW_CLASS} users">{styles_list.STYLE_PHPBB_VERSION}</td>
|
||||
<!-- IF not STYLES_LIST_HIDE_COUNT -->
|
||||
<td class="{$ROW_CLASS} users">{styles_list.USERS}</td>
|
||||
@@ -144,9 +146,11 @@
|
||||
<!-- END actions -->
|
||||
</td>
|
||||
{styles_list.EXTRA}
|
||||
<td class="{$ROW_CLASS} mark" width="20">
|
||||
<td class="{$ROW_CLASS} mark" style="width: 20px;">
|
||||
<!-- IF styles_list.STYLE_ID -->
|
||||
<input class="checkbox" type="checkbox" name="ids[]" value="{styles_list.STYLE_ID}" />
|
||||
{% if styles_list.STYLE_NAME !== 'prosilver' %}
|
||||
<input class="checkbox" type="checkbox" name="ids[]" value="{styles_list.STYLE_ID}" />
|
||||
{% endif %}
|
||||
<!-- ELSE -->
|
||||
<!-- IF styles_list.COMMENT != '' -->
|
||||
|
||||
|
@@ -79,7 +79,7 @@
|
||||
|
||||
<!-- IF not S_USER_FOUNDER or S_FOUNDER -->
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
|
||||
function display_reason(option)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
var default_dateformat = '{A_DEFAULT_DATEFORMAT}';
|
||||
// ]]>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
|
||||
var form_name = 'user_signature';
|
||||
@@ -26,7 +26,7 @@
|
||||
<!-- INCLUDE acp_posting_buttons.html -->
|
||||
|
||||
<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>
|
||||
<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;">
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* phpBB 3.2 Admin Style Sheet
|
||||
/* phpBB 3.3 Admin Style Sheet
|
||||
------------------------------------------------------------------------
|
||||
Original author: subBlue ( http://www.subblue.com/ )
|
||||
Copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
@@ -191,7 +191,7 @@ li {
|
||||
|
||||
#page-header {
|
||||
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;
|
||||
font-size: 0.85em;
|
||||
margin-bottom: 10px;
|
||||
@@ -199,7 +199,7 @@ li {
|
||||
|
||||
.rtl #page-header {
|
||||
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 {
|
||||
@@ -723,9 +723,25 @@ td {
|
||||
}
|
||||
|
||||
.table1 {
|
||||
border-collapse: separate;
|
||||
border-spacing: 1px;
|
||||
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 {
|
||||
@@ -2049,6 +2065,8 @@ fieldset.permissions .padding {
|
||||
}
|
||||
|
||||
.permissions-category ul {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
@@ -2102,7 +2120,6 @@ fieldset.permissions .padding {
|
||||
|
||||
.permissions-category .activetab a span.tabbg {
|
||||
background-position: 100% 0;
|
||||
padding-bottom: 7px;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
@@ -2297,6 +2314,10 @@ fieldset.permissions .padding {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.permissions-category ul {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.permissions-category a, .permissions-category a span.tabbg {
|
||||
display: block;
|
||||
float: none !important;
|
||||
@@ -2623,7 +2644,7 @@ fieldset.permissions .padding {
|
||||
.send-stats-tile h2 {
|
||||
margin-top: 0;
|
||||
text-align: center;
|
||||
padding-bottom: 1em;
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
.send-stats-tile i {
|
||||
@@ -2717,4 +2738,29 @@ fieldset.permissions .padding {
|
||||
height: 1em;
|
||||
width: 1em;
|
||||
}
|
||||
|
||||
.acp-icon {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
/* stylelint-enable declaration-property-unit-whitelist */
|
||||
|
||||
.acp-icon-move-up,
|
||||
.acp-icon-move-down {
|
||||
color: #4ba5de;
|
||||
}
|
||||
|
||||
.acp-icon-settings {
|
||||
color: #62c046;
|
||||
}
|
||||
|
||||
.acp-icon-delete {
|
||||
color: #d74558;
|
||||
}
|
||||
|
||||
.acp-icon-resync {
|
||||
color: #f69934;
|
||||
}
|
||||
|
||||
.acp-icon-disabled {
|
||||
color: #d0d0d0;
|
||||
}
|
||||
|
@@ -169,7 +169,7 @@ function parse_document(container)
|
||||
ul = $this.children(),
|
||||
tabs = ul.children().not('[data-skip-responsive]'),
|
||||
links = tabs.children('a'),
|
||||
item = ul.append('<li class="tab responsive-tab" style="display:none;"><a href="javascript:void(0);" class="responsive-tab-link"> </a><div class="dropdown tab-dropdown" style="display: none;"><div class="pointer"><div class="pointer-inner" /></div><ul class="dropdown-contents" /></div></li>').find('li.responsive-tab'),
|
||||
item = ul.append('<li class="tab responsive-tab" style="display:none;"><a href="javascript:void(0);" class="responsive-tab-link"> </a><div class="dropdown tab-dropdown" style="display: none;"><div class="pointer"><div class="pointer-inner"></div></div><ul class="dropdown-contents" /></div></li>').find('li.responsive-tab'),
|
||||
menu = item.find('.dropdown-contents'),
|
||||
maxHeight = 0,
|
||||
lastWidth = false,
|
||||
@@ -254,5 +254,10 @@ function parse_document(container)
|
||||
});
|
||||
|
||||
$('#configlist').closest('.send-stats-data-row').addClass('send-stats-data-hidden');
|
||||
|
||||
// Do not underline actions icons on hover (could not be done via CSS)
|
||||
$('.actions a:has(i.acp-icon)').mouseover(function () {
|
||||
$(this).css("text-decoration", "none");
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* global phpbb */
|
||||
/* global phpbb, statsData */
|
||||
|
||||
(function($) { // Avoid conflicts with other libraries
|
||||
|
||||
@@ -74,7 +74,7 @@ phpbb.prepareSendStats = function () {
|
||||
var $sendStatisticsSuccess = $('<input />', {
|
||||
type: 'hidden',
|
||||
name: 'send_statistics_response',
|
||||
value: res
|
||||
value: JSON.stringify(res)
|
||||
});
|
||||
$sendStatisticsSuccess.appendTo('p.submit-buttons');
|
||||
|
||||
@@ -87,7 +87,7 @@ phpbb.prepareSendStats = function () {
|
||||
$.ajax({
|
||||
url: $this.attr('data-ajax-action').replace('&', '&'),
|
||||
type: 'POST',
|
||||
data: 'systemdata=' + encodeURIComponent($this.find('input[name=systemdata]').val()),
|
||||
data: statsData,
|
||||
success: returnHandler,
|
||||
error: errorHandler,
|
||||
cache: false
|
||||
@@ -173,7 +173,9 @@ function submitPermissions() {
|
||||
var permissionSubmitSize = 0,
|
||||
permissionRequestCount = 0,
|
||||
forumIds = [],
|
||||
permissionSubmitFailed = false;
|
||||
permissionSubmitFailed = false,
|
||||
clearIndicator = true,
|
||||
$loadingIndicator;
|
||||
|
||||
if ($submitAllButton !== $submitButton) {
|
||||
fieldsetList = $form.find('fieldset#' + $submitButton.closest('fieldset.permissions').id);
|
||||
@@ -207,6 +209,8 @@ function submitPermissions() {
|
||||
}
|
||||
});
|
||||
|
||||
$loadingIndicator = phpbb.loadingIndicator();
|
||||
|
||||
/**
|
||||
* Handler for submitted permissions form chunk
|
||||
*
|
||||
@@ -222,6 +226,8 @@ function submitPermissions() {
|
||||
} else if (!permissionSubmitFailed && res.S_USER_NOTICE) {
|
||||
// Display success message at the end of submitting the form
|
||||
if (permissionRequestCount >= permissionSubmitSize) {
|
||||
clearIndicator = true;
|
||||
|
||||
var $alert = phpbb.alert(res.MESSAGE_TITLE, res.MESSAGE_TEXT);
|
||||
var $alertBoxLink = $alert.find('p.alert_text > a');
|
||||
|
||||
@@ -271,6 +277,17 @@ function submitPermissions() {
|
||||
$form.submit();
|
||||
}, res.REFRESH_DATA.time * 1000); // Server specifies time in seconds
|
||||
}
|
||||
} else {
|
||||
// Still more forms to submit, so do not clear indicator
|
||||
clearIndicator = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (clearIndicator) {
|
||||
phpbb.clearLoadingTimeout();
|
||||
|
||||
if ($loadingIndicator) {
|
||||
$loadingIndicator.fadeOut(phpbb.alertTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,7 +2,6 @@
|
||||
|
||||
<a id="maincontent"></a>
|
||||
|
||||
|
||||
<a href="<!-- IF U_LIST -->{U_LIST}<!-- ELSE -->{U_ACTION}<!-- ENDIF -->" style="float: {S_CONTENT_FLOW_END};">« {L_BACK}</a>
|
||||
|
||||
<h1>{L_QUESTIONS}</h1>
|
||||
@@ -25,15 +24,18 @@
|
||||
<td style="vertical-align: top; width: 50px; text-align: center; white-space: nowrap;">{L_ACTION}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<!-- BEGIN questions -->
|
||||
<tr>
|
||||
<td style="text-align: left;">{questions.QUESTION_TEXT}</td>
|
||||
<td style="text-align: center;">{questions.QUESTION_LANG}</td>
|
||||
<td style="text-align: center;"><a href="{questions.U_EDIT}">{ICON_EDIT}</a> <a href="{questions.U_DELETE}">{ICON_DELETE}</a></td>
|
||||
</tr>
|
||||
<!-- END questions -->
|
||||
{% for question in questions %}
|
||||
<tr>
|
||||
{# RTL is already managed by CSS #}
|
||||
<td>{{ question.QUESTION_TEXT }}</td>
|
||||
<td style="text-align: center;">{{ question.QUESTION_LANG }}</td>
|
||||
<td style="text-align: center;"><a href="{{ question.U_EDIT }}">{{ ICON_EDIT }}</a> <a href="{{ question.U_DELETE }}">{{ ICON_DELETE }}</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
<fieldset class="quick">
|
||||
<input class="button1" type="submit" name="add" value="{L_ADD}" />
|
||||
|
@@ -5,8 +5,9 @@
|
||||
<div>{L_RECAPTCHA_NOSCRIPT}</div>
|
||||
</noscript>
|
||||
|
||||
{L_RECAPTCHA_INVISIBLE}
|
||||
<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>
|
||||
</dl>
|
||||
<!-- 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' %}
|
@@ -6,12 +6,14 @@
|
||||
|
||||
<div id="page-footer">
|
||||
<div class="copyright">
|
||||
Powered by <a href="https://www.phpbb.com/">phpBB</a>® Forum Software © phpBB Limited
|
||||
{% if S_COPYRIGHT_HTML %}
|
||||
{{ CREDIT_LINE }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
<!--
|
||||
installLang = {
|
||||
title: '{LA_TIMEOUT_DETECTED_TITLE}',
|
||||
@@ -20,9 +22,9 @@ installLang = {
|
||||
//-->
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_ALLOW_CDN --><script type="text/javascript">window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery.min.js">\x3C/script>');</script><!-- ENDIF -->
|
||||
<script type="text/javascript" src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||
<script src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js">\x3C/script>');</script><!-- ENDIF -->
|
||||
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||
<!-- INCLUDEJS admin.js -->
|
||||
{$SCRIPTS}
|
||||
|
||||
|
@@ -24,7 +24,7 @@
|
||||
|
||||
<div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}">
|
||||
<a href="#" class="alert_close"></a>
|
||||
<h3 class="alert_title"></h3><p class="alert_text"></p>
|
||||
<h3 class="alert_title"> </h3><p class="alert_text"></p>
|
||||
</div>
|
||||
<div id="phpbb_confirm" class="phpbb_alert">
|
||||
<a href="#" class="alert_close"></a>
|
||||
@@ -33,9 +33,9 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_ALLOW_CDN --><script type="text/javascript">window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
|
||||
<script type="text/javascript" src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||
<script src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
|
||||
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||
<!-- INCLUDEJS ajax.js -->
|
||||
<!-- INCLUDEJS admin.js -->
|
||||
|
||||
|
@@ -10,12 +10,12 @@
|
||||
<link href="{T_FONT_AWESOME_LINK}" rel="stylesheet">
|
||||
<link href="style/admin.css?assets_version={T_ASSETS_VERSION}" rel="stylesheet" type="text/css" media="screen" />
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
var jump_page = '{LA_JUMP_PAGE}{L_COLON}';
|
||||
var on_page = '{CURRENT_PAGE}';
|
||||
var per_page = '{PER_PAGE}';
|
||||
var base_url = '{BASE_URL|e('js')}';
|
||||
var jump_page = "{{ lang_js('JUMP_PAGE') ~ lang_js('COLON') }}";
|
||||
var on_page = '{{ CURRENT_PAGE }}';
|
||||
var per_page = '{{ PER_PAGE }}';
|
||||
var base_url = "{{ BASE_URL|e('js') }}";
|
||||
|
||||
/**
|
||||
* Jump to page
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
<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}">
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
var active_pmask = '0';
|
||||
var active_fmask = '0';
|
||||
@@ -9,12 +9,14 @@
|
||||
|
||||
var role_options = new Array();
|
||||
|
||||
var no_role_assigned = "{LA_NO_ROLE_ASSIGNED}";
|
||||
|
||||
<!-- IF S_ROLE_JS_ARRAY -->
|
||||
{S_ROLE_JS_ARRAY}
|
||||
<!-- ENDIF -->
|
||||
// ]]>
|
||||
</script>
|
||||
<script type="text/javascript" src="style/permissions.js"></script>
|
||||
<script src="style/permissions.js"></script>
|
||||
|
||||
<!-- BEGIN p_mask -->
|
||||
<div class="clearfix"></div>
|
||||
|
@@ -269,8 +269,14 @@ function mark_one_option(id, field_name, s) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset role dropdown field to Select role... if an option gets changed
|
||||
*/
|
||||
* (Re)set the permission role dropdown.
|
||||
*
|
||||
* Try and match the set permissions to an existing role.
|
||||
* Otherwise reset the dropdown to "Select a role.."
|
||||
*
|
||||
* @param {string} id The fieldset identifier
|
||||
* @returns {void}
|
||||
*/
|
||||
function reset_role(id) {
|
||||
var t = document.getElementById(id);
|
||||
|
||||
@@ -278,14 +284,37 @@ function reset_role(id) {
|
||||
return;
|
||||
}
|
||||
|
||||
t.options[0].selected = true;
|
||||
// Before resetting the role dropdown, try and match any permission role
|
||||
var parent = t.parentNode,
|
||||
roleId = match_role_settings(id.replace('role', 'perm')),
|
||||
text = no_role_assigned,
|
||||
index = 0;
|
||||
|
||||
// If a role permissions was matched, grab that option's value and index
|
||||
if (roleId) {
|
||||
for (var i = 0; i < t.options.length; i++) {
|
||||
if (parseInt(t.options[i].value, 10) === roleId) {
|
||||
text = t.options[i].text;
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Update the select's value and selected index
|
||||
t.value = roleId;
|
||||
t.options[index].selected = true;
|
||||
|
||||
// Update the dropdown trigger to show the new value
|
||||
parent.querySelector('span.dropdown-trigger').innerText = text;
|
||||
parent.querySelector('input[data-name^=role]').value = roleId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load role and set options accordingly
|
||||
*/
|
||||
function set_role_settings(role_id, target_id) {
|
||||
settings = role_options[role_id];
|
||||
var settings = role_options[role_id];
|
||||
|
||||
if (!settings) {
|
||||
return;
|
||||
@@ -298,3 +327,51 @@ function set_role_settings(role_id, target_id) {
|
||||
mark_one_option(target_id, r, (settings[r] === 1) ? 'y' : 'n');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Match the set permissions against the available roles.
|
||||
*
|
||||
* @param {string} id The parent fieldset identifier
|
||||
* @return {number} The permission role identifier
|
||||
*/
|
||||
function match_role_settings(id) {
|
||||
var fieldset = document.getElementById(id),
|
||||
radios = fieldset.getElementsByTagName('input'),
|
||||
set = {};
|
||||
|
||||
// Iterate over all the radio buttons
|
||||
for (var i = 0; i < radios.length; i++) {
|
||||
var matches = radios[i].id.match(/setting\[\d+]\[\d+]\[([a-z_]+)]/);
|
||||
|
||||
// Make sure the name attribute matches, the radio is checked and it is not the "No" (-1) value.
|
||||
if (matches !== null && radios[i].checked && radios[i].value !== '-1') {
|
||||
set[matches[1]] = parseInt(radios[i].value, 10);
|
||||
}
|
||||
}
|
||||
|
||||
// Sort and stringify the 'set permissions' object
|
||||
set = sort_and_stringify(set);
|
||||
|
||||
// Iterate over the available role options and return the first match
|
||||
for (var r in role_options)
|
||||
{
|
||||
if (sort_and_stringify(role_options[r]) === set) {
|
||||
return parseInt(r, 10);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort and stringify an Object so it can be easily compared against another object.
|
||||
*
|
||||
* @param {object} obj The object to sort (by key) and stringify
|
||||
* @return {string} The sorted object as a string
|
||||
*/
|
||||
function sort_and_stringify(obj) {
|
||||
return JSON.stringify(Object.keys(obj).sort().reduce(function (result, key) {
|
||||
result[key] = obj[key];
|
||||
return result;
|
||||
}, {}));
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<!-- INCLUDE simple_header.html -->
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
/**
|
||||
* Close previously opened popup
|
||||
@@ -31,7 +31,7 @@
|
||||
<p>{L_PROGRESS_EXPLAIN}</p>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
close_popup();
|
||||
// ]]>
|
||||
|
@@ -16,9 +16,9 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_ALLOW_CDN --><script type="text/javascript">window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
|
||||
<script type="text/javascript" src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||
<script src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
|
||||
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||
|
||||
<!-- EVENT acp_simple_footer_after -->
|
||||
{$SCRIPTS}
|
||||
|
@@ -9,7 +9,7 @@
|
||||
|
||||
<link href="style/admin.css?assets_version={T_ASSETS_VERSION}" rel="stylesheet" type="text/css" media="screen" />
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
// <![CDATA[
|
||||
var jump_page = '{LA_JUMP_PAGE}{L_COLON}';
|
||||
var on_page = '{CURRENT_PAGE}';
|
||||
|
@@ -218,23 +218,6 @@ $(function() {
|
||||
|
||||
// Prepare dropdown
|
||||
phpbb.prepareRolesDropdown();
|
||||
|
||||
// Reset role drop-down on modifying permissions in advanced tab
|
||||
$('div.permissions-switch > a').on('click', function () {
|
||||
$.each($('input[type=radio][name^="setting["]'), function () {
|
||||
var $this = $(this);
|
||||
$this.on('click', function () {
|
||||
var $rolesOptions = $this.closest('fieldset.permissions').find('.roles-options'),
|
||||
rolesSelect = $rolesOptions.find('select > option')[0];
|
||||
|
||||
// Set selected setting
|
||||
$rolesOptions.children('span')
|
||||
.text(rolesSelect.text);
|
||||
$rolesOptions.children('input[type=hidden]')
|
||||
.val(rolesSelect.value);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
})(jQuery); // Avoid conflicts with other libraries
|
||||
|
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-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-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}
|
||||
@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}}
|
||||
.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-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-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-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{-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-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;-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;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}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user