1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-09-08 07:10:51 +02:00

Compare commits

...

1139 Commits

Author SHA1 Message Date
Marc Alexander
1b11013988 Merge pull request #4899 from rubencm/ticket/15286
[ticket/15286] Use storage in attachments
2018-05-14 21:59:05 +02:00
Rubén Calvo
246cc01507 [ticket/15286] Remove double semicolon
PHPBB3-15286
2018-05-08 14:17:17 +02:00
Rubén Calvo
ed2165342f [ticket/15286] Remove thumbnail if there is an error
PHPBB3-15286
2018-05-01 14:40:02 +02:00
Rubén Calvo
f80c59cb05 [ticket/15286] Fix tests after rebase
PHPBB3-15286
2018-05-01 14:40:02 +02:00
Rubén Calvo
6bd01d1506 [ticket/15286] Add event to allow redirects
PHPBB3-15286
2018-05-01 10:47:11 +02:00
Rubén Calvo
3c295abd66 [ticket/15286] Remove download_mode
PHPBB3-15286
2018-05-01 10:47:11 +02:00
Rubén Calvo
5111d8a339 [ticket/15286] Update tests
PHPBB3-15286
2018-05-01 10:47:11 +02:00
Rubén Calvo
a176fa56ef [ticket/15286] Fix tests
PHPBB3-15286
2018-05-01 10:47:11 +02:00
Rubén Calvo
ef43dbdcca [ticket/15286] Update use storage in avatars
PHPBB3-15286
2018-05-01 10:47:11 +02:00
Rubén Calvo
e564ca6e60 [ticket/15286] Fix tests
PHPBB3-15286
2018-05-01 10:47:11 +02:00
Rubén Calvo
e749e06042 [ticket/15286] Use storage in attachments
PHPBB3-15286
2018-05-01 10:47:11 +02:00
Marc Alexander
1c9798320e Merge pull request #5212 from hanakin/ticket/15647
[ticket/15647] fix post font-size and line-height
2018-04-23 13:49:54 +02:00
Marc Alexander
23dcc948f2 Merge pull request #5211 from JoshyPHP/ticket/15646
[ticket/15646] Add support for Argon2i passwords
2018-04-22 10:08:54 +02:00
Michael Miday
ba1eda7d95 [ticket/15647] fix post font-size and line-height
PHPBB3-15647
2018-04-18 18:34:20 -04:00
JoshyPHP
e2ae8560f5 [ticket/15646] Made Argon2i the default password driver
PHPBB3-15646
2018-04-18 22:44:21 +02:00
JoshyPHP
9e7b10164a [ticket/15646] Added support for Argon2i passwords
PHPBB3-15646
2018-04-18 21:10:26 +02:00
Derky
0d2960bd5e Merge branch '3.2.x' 2018-03-30 21:05:09 +02:00
Marc Alexander
f3338b2874 Merge branch '3.2.x' 2018-03-26 21:20:21 +02:00
Marc Alexander
c706883e44 Merge branch '3.2.x' 2018-02-28 21:21:27 +01:00
Marc Alexander
7dc4eea66b Merge branch '3.2.x' 2018-02-28 21:03:03 +01:00
Marc Alexander
7be590d325 Merge branch '3.2.x' 2018-02-24 19:17:39 +01:00
Marc Alexander
a03fa03dd5 Merge branch '3.2.x' 2018-02-24 18:55:09 +01:00
Marc Alexander
f43184d0a7 Merge branch '3.2.x' 2018-02-22 20:34:28 +01:00
Marc Alexander
98d4065f58 Merge branch '3.2.x' 2018-02-22 20:06:53 +01:00
Marc Alexander
7cc319875c Merge branch '3.2.x' 2018-02-22 19:49:09 +01:00
Marc Alexander
2b8c8973e9 Merge branch '3.2.x' 2018-02-21 21:14:07 +01:00
Marc Alexander
47c1538272 Merge branch '3.2.x' 2018-02-21 20:55:24 +01:00
Marc Alexander
9380d8b51a Merge remote-tracking branch 'hanakin/ticket/15535' 2018-02-21 19:27:29 +01:00
Michael Miday
025d40a63d [ticket/15565] remove improper font-sizes
PHPBB3-15565
2018-02-21 19:24:51 +01:00
Marc Alexander
7786b78e94 Merge branch '3.2.x' 2018-02-21 19:06:00 +01:00
Marc Alexander
2470dcbc20 Merge branch '3.2.x' 2018-02-20 20:00:27 +01:00
Marc Alexander
09718a565b Merge branch '3.2.x' 2018-02-19 21:27:07 +01:00
Marc Alexander
03c6e0e17e Merge branch '3.2.x' 2018-02-19 19:44:18 +01:00
Marc Alexander
ee62c66035 Merge branch '3.2.x' 2018-02-19 08:03:58 +01:00
Marc Alexander
f201afc9df Merge branch '3.2.x' 2018-02-19 07:55:17 +01:00
Marc Alexander
0e6a293e2c Merge branch '3.2.x' 2018-02-18 17:10:26 +01:00
Marc Alexander
009ae0dfac Merge pull request #4966 from VSEphpbb/ticket/15369
[ticket/15369] Update composer
2018-02-17 16:31:53 +01:00
Marc Alexander
00a35827b0 Merge branch '3.2.x' 2018-02-14 20:11:44 +01:00
Marc Alexander
7e2cde0844 Merge branch '3.2.x' 2018-01-31 19:59:07 +01:00
Marc Alexander
798843dc18 Merge branch '3.2.x' 2018-01-29 18:53:57 +01:00
Marc Alexander
4981f4cddd Merge branch '3.2.x' 2018-01-27 12:58:26 +01:00
Marc Alexander
dac735f89d Merge branch '3.2.x' 2018-01-27 12:55:04 +01:00
Marc Alexander
aecb6e6372 Merge branch '3.2.x' 2018-01-25 21:23:57 +01:00
Marc Alexander
a24a8a6757 Merge branch '3.2.x' 2018-01-25 18:44:22 +01:00
Marc Alexander
2053399085 Merge branch '3.2.x' 2018-01-24 23:35:53 +01:00
Marc Alexander
4b4f256817 Merge branch '3.2.x' 2018-01-24 19:19:34 +01:00
Marc Alexander
ca537a691d Merge branch '3.2.x' 2018-01-24 19:16:28 +01:00
Marc Alexander
ef6b6b156d Merge branch '3.2.x' 2018-01-24 19:09:29 +01:00
Marc Alexander
18cd315071 Merge branch '3.2.x' 2018-01-24 18:40:09 +01:00
Marc Alexander
ef0680fd19 Merge branch '3.2.x' 2018-01-24 18:32:19 +01:00
Marc Alexander
2113e998d1 Merge branch '3.2.x' 2018-01-24 18:12:21 +01:00
Marc Alexander
d0c93d56ad Merge branch '3.2.x' 2018-01-20 19:57:38 +01:00
Marc Alexander
e0f9794126 Merge branch '3.2.x' 2018-01-20 19:52:18 +01:00
Marc Alexander
c6dbfeadee Merge branch '3.2.x' 2018-01-20 19:50:15 +01:00
Marc Alexander
8b03b9ded2 Merge branch '3.2.x' 2018-01-20 19:45:50 +01:00
Marc Alexander
77d02d4d24 Merge branch '3.2.x' 2018-01-20 18:40:35 +01:00
Marc Alexander
39945aec10 Merge branch '3.2.x' 2018-01-19 12:20:57 +01:00
Marc Alexander
82ccc43767 Merge branch '3.2.x' 2018-01-17 23:06:19 +01:00
Marc Alexander
ab65accebc Merge branch '3.2.x' 2018-01-16 21:34:23 +01:00
Derky
6ac85a371a Merge branch '3.2.x' 2018-01-12 07:32:13 +01:00
Derky
3d409d4932 Merge branch '3.2.x' 2018-01-11 21:45:46 +01:00
Marc Alexander
4bf3290c23 Merge branch '3.2.x' 2018-01-11 21:33:44 +01:00
Derky
beed8821ff Merge branch '3.2.x' 2018-01-11 21:03:20 +01:00
Marc Alexander
6b221ae4cb Merge branch '3.2.x' 2018-01-07 19:30:41 +01:00
Matt Friedman
a2e603c058 [ticket/15369] Fix php_exporter tests
PHPBB3-15369
2018-01-06 11:01:40 -08:00
Matt Friedman
6ad1188b65 [ticket/15369] Fix tests
PHPBB3-15369
2018-01-06 10:37:39 -08:00
Matt Friedman
a6b45ff0fd [ticket/15369] Update composer to 1.6.x
PHPBB3-15369
2018-01-06 09:36:16 -08:00
Derky
7560ffcbe9 Merge branch '3.2.x' 2018-01-05 22:52:33 +01:00
Derky
7d5276e7dc Merge branch '3.2.x' 2018-01-04 21:46:38 +01:00
Matt Friedman
3c143e7ae8 [ticket/15369] Update composer to 1.5
PHPBB3-15369
2018-01-02 12:27:41 -08:00
Marc Alexander
9e3432cd7b Merge branch '3.2.x' 2017-12-28 22:06:33 +01:00
Marc Alexander
7bb7bbc54c Merge branch '3.2.x' 2017-12-28 14:51:05 +01:00
Marc Alexander
3232c27ece Merge branch '3.2.x' 2017-12-28 11:15:36 +01:00
Marc Alexander
f9da4f10ae Merge pull request #5017 from Elsensee/ticket/15339-33
[ticket/15339] Use manual method when adding modules
2017-12-28 11:14:13 +01:00
Marc Alexander
ea1d911508 Merge branch '3.2.x' 2017-12-28 10:43:31 +01:00
Marc Alexander
19c8112e99 Merge branch '3.2.x' 2017-12-28 08:29:32 +01:00
Marc Alexander
15033667da Merge branch '3.2.x' 2017-12-28 08:22:40 +01:00
Marc Alexander
3ccba88948 Merge branch '3.2.x' 2017-12-27 21:37:18 +01:00
Marc Alexander
a12ad9c914 Merge branch '3.2.x' 2017-12-27 21:31:36 +01:00
Marc Alexander
59c7a5506b Merge branch '3.2.x' 2017-12-27 21:27:15 +01:00
Marc Alexander
475b85200b Merge branch '3.2.x' 2017-12-27 21:14:02 +01:00
Marc Alexander
f0284ddbdf Merge branch '3.2.x' 2017-12-27 20:56:51 +01:00
Marc Alexander
a89fdabb35 Merge branch '3.2.x' 2017-12-27 20:44:44 +01:00
Marc Alexander
3bc3c7febc Merge branch '3.2.x' 2017-12-27 20:28:14 +01:00
Derky
c94c2a1ec2 Merge branch '3.2.x' 2017-12-27 19:32:20 +01:00
Marc Alexander
6b98cc9ae8 Merge pull request #5065 from rubencm/ticket/15400
[ticket/15400] Make app.php routes work in vagrant
2017-12-27 19:27:03 +01:00
Marc Alexander
a4a57b5860 Merge branch '3.2.x' 2017-12-27 19:14:03 +01:00
Marc Alexander
c596383592 Merge branch '3.2.x' 2017-12-27 19:08:16 +01:00
Marc Alexander
52cde712f2 Merge branch '3.2.x' 2017-12-27 18:39:20 +01:00
Marc Alexander
1656ca4011 Merge branch '3.2.x' 2017-12-27 18:16:29 +01:00
Marc Alexander
93beaa8a3a Merge branch '3.2.x' 2017-12-27 14:39:46 +01:00
Oliver Schramm
1702219629 Merge branch 'ticket/15339' into ticket/15339-33 2017-12-24 19:55:46 +01:00
Marc Alexander
843586a93f Merge branch '3.2.x' 2017-12-23 13:23:07 +01:00
Marc Alexander
7ef4be39a5 Merge branch '3.2.x' 2017-12-22 19:52:21 +01:00
Rubén Calvo
a4a928b156 [ticket/15400] Make app.php routes work in vagrant
PHPBB3-15400
2017-12-20 20:35:26 +01:00
Marc Alexander
20984af029 Merge branch '3.2.x' 2017-12-18 21:13:19 +01:00
Derk
b9e2e53c33 Merge pull request #5062 from vinny/ticket/15484
[ticket/15484] Remove empty lines from includes/ucp/ucp_register.php
2017-12-18 07:43:37 +01:00
vinny
68f8ec60fc [ticket/15484] Remove multiple empty lines at includes/ucp/ucp_register.php
PHPBB3-15484
2017-12-18 02:32:51 -03:00
Derky
bcbfd75719 Merge branch '3.2.x' 2017-12-18 00:07:13 +01:00
Marc Alexander
730e472fb3 Merge branch '3.2.x' 2017-12-17 21:37:57 +01:00
Marc Alexander
dfdb02c933 Merge branch '3.2.x' 2017-12-17 16:22:01 +01:00
Marc Alexander
2b7c498f40 Merge branch '3.2.x' 2017-12-17 16:13:10 +01:00
Marc Alexander
10f1e2d1fa Merge branch '3.2.x' 2017-12-10 10:45:03 +01:00
Derk
9a5d03ce72 Merge pull request #4962 from rubencm/ticket/14972
[ticket/14972] replace all occurrences of sizeof() with the count()
2017-12-03 23:58:34 +01:00
Derky
f70801856a Merge branch '3.2.x' 2017-12-03 23:06:09 +01:00
Marc Alexander
0568c4a502 Merge branch '3.2.x' 2017-12-03 17:49:43 +01:00
MichaelC
156dd4a05b Merge branch '3.2.x'
* 3.2.x:
  [ticket/15460] Fix group name displayed in the manage users ACP module
2017-11-26 22:12:44 +00:00
MichaelC
ddc9b720ad Merge branch '3.2.x'
* 3.2.x:
  [ticket/15463] Add MichaelC and Hanakin to the dev credits
2017-11-26 21:57:07 +00:00
Marc Alexander
66c4c6748f Merge branch '3.2.x' 2017-11-26 22:04:01 +01:00
Marc Alexander
206c6b2185 Merge branch '3.2.x' 2017-11-26 18:33:59 +01:00
Derky
1dd447c4aa Merge branch '3.2.x' 2017-11-21 14:10:06 +01:00
Marc Alexander
c123254242 Merge branch '3.2.x' 2017-11-16 22:11:11 +01:00
Máté Bartus
cd757469a6 Merge branch '3.2.x' 2017-11-15 21:45:10 +01:00
Marc Alexander
ded043baab Merge pull request #5000 from hanakin/ticket/15402
[ticket/15402] repurpose tweaks.css
2017-11-05 11:50:06 +01:00
Marc Alexander
7bb40cf5d7 Merge branch '3.2.x' 2017-11-05 11:06:20 +01:00
Marc Alexander
9448cb07c6 Merge pull request #5005 from hanakin/ticket/15404
[ticket/15404] autoprefix browser compatibility
2017-11-04 14:46:30 +01:00
Michael Miday
9a1acae8af [ticket/15404] fix gradients
PHPBB3-15404
2017-11-04 11:43:09 +01:00
Marc Alexander
7ad6e50af2 Merge branch '3.2.x' 2017-11-02 21:36:24 +01:00
Marc Alexander
968d483d39 Merge pull request #5006 from hanakin/ticket/15406
[ticket/15406] Fix/standardize bidi.css classes
2017-11-02 21:22:04 +01:00
Marc Alexander
7c141954bf Merge branch '3.2.x' 2017-11-02 21:14:19 +01:00
Marc Alexander
4523eb0812 Merge branch '3.2.x' 2017-11-01 21:33:40 +01:00
Marc Alexander
0a929155b1 Merge pull request #5028 from marc1706/ticket/15387
[ticket/15387] Fix CSS for master branch
2017-11-01 19:45:55 +01:00
Marc Alexander
2312af57c6 [ticket/15387] Fix CSS for master branch
PHPBB3-15387
2017-11-01 19:08:17 +01:00
Marc Alexander
c309b4cd8d Merge branch '3.2.x' 2017-11-01 18:02:14 +01:00
Marc Alexander
91caee664a Merge branch '3.2.x' 2017-11-01 16:08:46 +01:00
Marc Alexander
1926f1a3a8 Merge pull request #5010 from hanakin/ticket/15414
[ticket/15414] Remove useless redundant css properties
2017-11-01 16:03:31 +01:00
Marc Alexander
d7f9b9bc07 Merge pull request #5011 from rxu/ticket/15415
[ticket/15415] Fix styling in ucp_notifications.html
2017-11-01 16:02:11 +01:00
Marc Alexander
a3fd51ae47 Merge branch '3.2.x' 2017-11-01 15:59:09 +01:00
Marc Alexander
dbca73f468 Merge branch '3.2.x' 2017-11-01 15:51:31 +01:00
Marc Alexander
f75fdc69b3 Merge branch '3.2.x' 2017-11-01 15:45:15 +01:00
Marc Alexander
51b8974312 Merge branch '3.2.x' 2017-11-01 13:21:37 +01:00
Marc Alexander
54d5d9329a Merge branch '3.2.x' 2017-11-01 13:19:50 +01:00
Marc Alexander
e157d8890b Merge pull request #5020 from marc1706/ticket/15424
[ticket/15424] Multiple typo fixes in docs & comments
2017-11-01 12:27:13 +01:00
Marc Alexander
14cb1b9cfc Merge branch '3.2.x' 2017-11-01 12:19:46 +01:00
Marc Alexander
c1fb27a68a Merge pull request #5001 from hanakin/ticket/15403
[ticket/15403] Add useful front-end build tools
2017-11-01 11:07:57 +01:00
Marc Alexander
6259789e02 Merge branch '3.2.x' 2017-11-01 10:40:01 +01:00
Marc Alexander
28df230f8d Merge branch '3.2.x' 2017-10-31 16:13:39 +01:00
Marc Alexander
c6e8a5ddee Merge branch '3.2.x' 2017-10-31 15:51:24 +01:00
Marc Alexander
a51741df41 Merge branch '3.2.x' 2017-10-31 15:47:14 +01:00
Marc Alexander
330b06b3e8 Merge pull request #5021 from marc1706/ticket/15245
[ticket/15245] Fix tests after merging into master
2017-10-31 15:09:55 +01:00
Marc Alexander
f5467c560a Merge branch '3.2.x' 2017-10-31 14:17:32 +01:00
Marc Alexander
dee88e28e0 [ticket/15245] Fix tests after merging into master
PHPBB3-15245
2017-10-31 14:11:17 +01:00
Marc Alexander
cc52dc9a7e Merge branch '3.2.x' 2017-10-31 12:58:44 +01:00
Marc Alexander
ea23d456d5 Merge branch '3.2.x' 2017-10-31 09:58:33 +01:00
Marc Alexander
0c009e3feb Merge pull request #4959 from rubencm/ticket/15366
[ticket/15366] Remove useless code
2017-10-29 22:09:49 +01:00
Marc Alexander
7a54b0631d Merge branch '3.2.x' 2017-10-29 12:49:25 +01:00
luzpaz
e13ba99c81 [ticket/15424] Multiple typo fixes in docs & comments
Fixed typos in some docs, guidelines, some non-user-facing files.

PHPBB3-15424
2017-10-29 12:44:01 +01:00
Marc Alexander
408916d24e Merge branch '3.2.x' 2017-10-29 11:34:52 +01:00
Oliver Schramm
297278a45c Merge branch 'ticket/15339' into ticket/15339-33 2017-10-28 04:00:22 +02:00
Marc Alexander
d11db17e2c Merge branch '3.2.x' 2017-10-22 10:19:35 +02:00
rxu
613cbd8654 [ticket/15415] Fix styling in ucp_notifications.html
PHPBB3-15415
2017-10-19 23:58:57 +07:00
Marc Alexander
e7fa0de888 Merge branch '3.2.x' 2017-10-18 21:11:42 +02:00
Michael Miday
817736ed3a [ticket/15414] Inline take no dimensions
PHPBB3-15414
2017-10-17 23:32:31 -04:00
Michael Miday
f9e21a81dc [ticket/15414] Inline with float
PHPBB3-15414
2017-10-17 23:31:58 -04:00
Michael Miday
8b76c54240 [ticket/15404] Add missing non-vendors
PHPBB3-15404
2017-10-17 23:27:02 -04:00
Michael Miday
2c58e7a8a9 [ticket/15404] fix errors
PHPBB3-15404
2017-10-17 23:26:26 -04:00
Marc Alexander
f2f1037e8d Merge branch '3.2.x' 2017-10-17 21:16:15 +02:00
Marc Alexander
867d0bfb2f Merge branch '3.2.x' 2017-10-17 21:01:25 +02:00
Marc Alexander
5338b7a361 Merge branch '3.2.x' 2017-10-17 19:54:24 +02:00
Marc Alexander
b60f30ca66 Merge pull request #5007 from vinny/ticket/15411
[ticket/15411] Use lowercase in hex color code
2017-10-17 12:05:32 +02:00
vinny
40247dcd1b [ticket/15411] Use lowercase in hex color code
PHPBB3-15411
2017-10-17 03:54:08 -03:00
Michael Miday
1a5c75ef35 [ticket/15406] Remove deprecated fucky code
PHPBB3-15406
2017-10-16 23:59:21 -04:00
Michael Miday
01d05c2ccb [ticket/15406] Fix missing .rtl class
PHPBB3-15406
2017-10-16 23:58:46 -04:00
Marc Alexander
d509bd9baa Merge pull request #4947 from rubencm/ticket/15289-2
[ticket/15289] Allow to configure storage from acp
2017-10-16 21:05:01 +02:00
Michael Miday
83079a89c7 [ticket/15404] autoprefix browser compatability
PHPBB3-15404
2017-10-16 12:42:46 -04:00
Michael Miday
a59db22959 [ticket/15402] repurpose tweaks.css
PHPBB3-15402
2017-10-16 12:32:54 -04:00
Michael Miday
919d2879c3 [ticket/15403] Add useful gulp methods
PHPBB3-15403
2017-10-16 12:31:18 -04:00
Michael Miday
a97ae96eda [ticket/15403] Add node modules
PHPBB3-15403
2017-10-16 12:30:48 -04:00
Marc Alexander
3dc1cde5c6 Merge branch '3.2.x' 2017-10-15 21:32:26 +02:00
Marc Alexander
d80b2d4236 Merge pull request #4946 from Nicofuma/ticket/15357
[ticket/15357] Requires composer/installers in phpBB core for extensions
2017-10-15 20:48:09 +02:00
Marc Alexander
21ccc97cf8 Merge branch '3.2.x' 2017-10-15 20:42:05 +02:00
Marc Alexander
052b55624b Merge pull request #4626 from hanakin/ticket/14976
[ticket/14976] Convert all ems to px
2017-10-15 10:06:39 +02:00
Marc Alexander
c3939580b3 Merge branch '3.2.x' 2017-10-13 19:39:46 +02:00
Michael Miday
b7c3318541 [ticket/14976] fix error
PHPBB3-14976
2017-10-13 00:16:48 -04:00
Michael Miday
dbcd54d523 [ticket/14976] refactor fieldset.fields1 dd
PHPBB3-14976
2017-10-13 00:16:30 -04:00
Marc Alexander
d64ce15ecf Merge branch '3.2.x' 2017-10-11 21:00:38 +02:00
hanakin
a408180c4a [ticket/14976] fix errors
PHPBB3-14976
2017-10-11 14:51:16 -04:00
hanakin
f7baa94d44 [ticket/14976] Fix content.css
PHPBB3-14976
2017-10-11 14:50:32 -04:00
hanakin
4ddc9a89fe [ticket/14976] more fixes in content.css
PHPBB3-14976
2017-10-11 14:50:32 -04:00
hanakin
8a312b01fb [ticket/14976] fix errors
PHPBB3-14976
2017-10-11 14:50:32 -04:00
hanakin
f268e07935 [ticket/14976] fix common.css and ignore normalize
PHPBB3-14976
2017-10-11 14:50:32 -04:00
hanakin
c51b613015 [ticket/14976] Allow px line-heights for prosilver
PHPBB3-14976
2017-10-11 14:50:32 -04:00
hanakin
a3372e628a [ticket/14976] Fix linting
PHPBB3-14976
2017-10-11 14:50:32 -04:00
hanakin
036d00f872 [ticket/14976] Some cleanup
PHPBB3-14976
2017-10-11 14:50:32 -04:00
hanakin
3652a9cae6 [ticket/14976] More conversions
PHPBB3-14976
2017-10-11 14:50:32 -04:00
hanakin
3b5fa30bb5 [ticket/14976] Fix icon line-height
PHPBB3-14976
2017-10-11 14:49:49 -04:00
hanakin
dbf1987bb3 [ticket/14976] more em converstions and size fixes
PHPBB3-14976
2017-10-11 14:49:49 -04:00
hanakin
725805e7ed [ticket/14976] Some more em conversions
PHPBB3-14976
2017-10-11 14:48:33 -04:00
hanakin
980a9a6f69 [ticket/14976] Start converting ems
PHPBB3-14976
2017-10-11 14:48:33 -04:00
Marc Alexander
0e6a0aae8f Merge pull request #4987 from hanakin/ticket/14336
[ticket/14336] add title text to online status icon
2017-10-11 19:13:18 +02:00
Marc Alexander
5fb7029692 Merge branch '3.2.x' 2017-10-11 19:06:52 +02:00
Marc Alexander
7998aa8381 Merge branch '3.2.x' 2017-10-11 13:29:06 +02:00
Máté Bartus
68b3da2df0 Merge pull request #4990 from rubencm/ticket/15377
[ticket/15377] Fix INCLUDECSS and INCLUDEJS
2017-10-09 21:12:08 +02:00
Máté Bartus
eb0122b8ee Merge pull request #4685 from hanakin/ticket/15071
[ticket/15071] Consolidate all media queries
2017-10-09 16:15:33 +02:00
Rubén Calvo
eaeec9b50b [ticket/15377] Use __DIR__ constant
PHPBB3-15377
2017-10-09 12:31:57 +02:00
Rubén Calvo
c2d3322e82 [ticket/15377] Add test
PHPBB3-15377
2017-10-07 00:20:20 +02:00
Rubén Calvo
18c5f5c6e8 [ticket/15377] Fix INCLUDECSS and INCLUDEJS
PHPBB3-15377
2017-10-05 20:54:01 +02:00
Máté Bartus
f4ffbd5506 Merge branch '3.2.x' 2017-10-05 20:46:10 +02:00
Oliver Schramm
bba4b4fc30 Merge branch '3.2.x' 2017-10-05 15:40:28 +02:00
Oliver Schramm
8e62ea225e Merge branch '3.2.x'
Conflicts:
	phpBB/includes/ucp/ucp_notifications.php
2017-10-05 15:14:58 +02:00
Oliver Schramm
5d3cac71d5 Merge branch '3.2.x' 2017-10-05 15:00:55 +02:00
Oliver Schramm
92f25a6edc Merge branch '3.2.x' 2017-10-05 14:55:00 +02:00
Michael Miday
7d464aa0ea [ticket/14336] add title
PHPBB3-14336
2017-10-04 10:07:43 -04:00
Marc Alexander
ff52857b1e Merge branch '3.2.x' 2017-09-28 21:33:24 +02:00
Oliver Schramm
6de10bd75e Merge branch '3.2.x' 2017-09-28 18:57:57 +02:00
Michael Miday
ad67efecfa [ticket/15071] Tweak order
PHPBB3-15071
2017-09-23 11:32:02 -04:00
hanakin
98479f235b [ticket/15071] Fix cahnges
PHPBB3-15071
2017-09-23 11:24:32 -04:00
hanakin
f724017953 [ticket/15071] Consolidate all media queries
PHPBB3-15071
2017-09-23 11:17:57 -04:00
Marc Alexander
b70ba0e47c Merge branch '3.2.x' 2017-09-19 19:22:22 +02:00
Rubén Calvo
e1e2c8ae3f [ticket/14972] replace all occurrences of sizeof() with the count()
PHPBB3-14972
2017-09-17 17:05:37 +02:00
Rubén Calvo
7b4c355190 [ticket/15366] Remove useless code
PHPBB3-15366
2017-09-16 12:30:36 +02:00
Marc Alexander
024cf709c4 Merge pull request #4957 from CHItA/ticket/13214
[ticket/13214] Remove px after 0 from padding property
2017-09-15 15:45:37 +02:00
Máté Bartus
36e7446103 [ticket/13214] Remove px after 0 from padding property
PHPBB3-13214
2017-09-15 11:29:08 +02:00
Máté Bartus
711d4db968 [ticket/13214] Remove .idea files added by accident on merge
PHPBB3-13214
2017-09-15 10:18:34 +02:00
Máté Bartus
ba58e9cb4c Merge branch '3.2.x' 2017-09-15 10:12:14 +02:00
Máté Bartus
905c5e3706 Merge branch '3.2.x' 2017-09-15 10:05:19 +02:00
Oliver Schramm
99306435bd Merge branch '3.2.x' 2017-09-10 15:32:28 +02:00
Máté Bartus
10f487fbf6 Merge branch '3.2.x' 2017-09-10 15:18:06 +02:00
Rubén Calvo
c10f1b38ac [ticket/15289] Add migration for storage module
PHPBB3-15289
2017-09-10 14:42:06 +02:00
Rubén Calvo
748235276e [ticket/15289] Remove permission for standard admin
PHPBB3-15289
2017-09-10 13:23:02 +02:00
Marc Alexander
9aa997b4ef Merge branch '3.2.x' 2017-09-10 13:02:15 +02:00
Rubén Calvo
cb350e20e1 [ticket/15289] Add permission for storage
PHPBB3-15289
2017-09-10 11:55:05 +02:00
Máté Bartus
5ab5e99691 Merge pull request #4719 from hanakin/ticket/14131
[ticket/14131] Completely overhaul all colors in Colours.css
2017-09-10 11:40:53 +02:00
Tristan Darricau
c6bf129ee4 [ticket/15357] Requires composer/installers in phpBB core for extensions
PHPBB3-15357
2017-09-10 11:03:31 +02:00
Rubén Calvo
246bc8cf08 [ticket/15289] Fix missing language string
PHPBB3-15289
2017-09-09 17:59:33 +02:00
Tristan Darricau
83071ee3fd Merge pull request #4895 from rubencm/ticket/15289
[ticket/15289] Allow to configure storage from acp

* github.com:phpbb/phpbb: (38 commits)
  [ticket/15289] Add phpdoc
  [ticket/15289] Remove common language from acp module
  [ticket/15289] Check form
  [ticket/15289] Use empty instead of count
  [ticket/15289] Language fixes
  [ticket/15289] Add missing files
  [ticket/15289] Use twig syntax in variables
  [ticket/15289] Use lang_defined()
  [ticket/15289] Dont use short names
  [ticket/15289] Dont use short names
  [ticket/15289] Use Twig includes
  [ticket/15289] Update acp module
  [ticket/15289] Fix comment typo
  [ticket/15289] Fix show field description
  [ticket/15289] Update event
  [ticket/15289] Remove switch since there is only one mode
  [ticket/15289] Improve error messages
  [ticket/15289] Fix code style
  [ticket/15289] Update acp storage
  [ticket/15289] Update acp storage template
  ...
2017-09-09 17:33:51 +02:00
Máté Bartus
5fccb54391 Merge branch '3.2.x' 2017-09-09 17:20:36 +02:00
Máté Bartus
72799a26ea Merge branch '3.2.x' 2017-09-09 17:11:03 +02:00
Tristan Darricau
3e18766fd6 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15149] Fix Ctrl+Submit action on posting
2017-09-09 17:09:09 +02:00
Máté Bartus
5a19307e9a Merge pull request #4938 from hanakin/ticket/15354
[ticket/15354] Use Lang Var for Loading text
2017-09-09 17:07:18 +02:00
Tristan Darricau
a33666fd32 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15355] Remove version field when no update is available
2017-09-09 17:04:32 +02:00
Rubén Calvo
2b864f51d8 [ticket/15289] Add phpdoc
PHPBB3-15289
2017-09-09 15:21:06 +02:00
hanakin
43e7261acc [ticket/14131] Fix rebase conflict
PHPBB3-14131
2017-09-09 14:13:42 +02:00
hanakin
ae7d5f1207 [ticket/14131] Fix prefixing
PHPBB3-14131
2017-09-09 14:13:42 +02:00
hanakin
cd0a2a7e63 [ticket/14131] Re-color everything consistently
PHPBB3-14131
2017-09-09 14:13:42 +02:00
Rubén Calvo
c2f508eec6 [ticket/15289] Remove common language from acp module
PHPBB3-15289
2017-09-09 14:01:08 +02:00
Tristan Darricau
870ced94eb Merge pull request #4939 from CHItA/ticket/15351
[ticket/15351] Fix missing global usage

* github.com:phpbb/phpbb:
  [ticket/15351] Fix missing global usage
2017-09-09 13:19:56 +02:00
Máté Bartus
bd7cdd2e25 [ticket/15351] Fix missing global usage
PHPBB3-15351
2017-09-09 12:58:05 +02:00
Máté Bartus
dababbb9ad Merge branch '3.2.x' 2017-09-09 12:09:50 +02:00
Michael Miday
dca07283e9 [ticket/15354] Use Lang Var
PHPBB3-15354
2017-09-09 11:20:05 +02:00
Rubén Calvo
11f13e21ac [ticket/15289] Check form
PHPBB3-15289
2017-09-08 17:01:13 +02:00
Rubén Calvo
036ae01b82 [ticket/15289] Use empty instead of count
PHPBB3-15289
2017-09-08 16:54:11 +02:00
Rubén Calvo
d7b1018110 [ticket/15289] Language fixes
PHPBB3-15289
2017-09-08 16:53:20 +02:00
Rubén Calvo
b1928d515e [ticket/15289] Add missing files
PHPBB3-15289
2017-09-08 16:27:26 +02:00
Rubén Calvo
367b84b462 [ticket/15289] Use twig syntax in variables
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
557165ac2f [ticket/15289] Use lang_defined()
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
7a0c5fcb18 [ticket/15289] Dont use short names
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
500404a921 [ticket/15289] Dont use short names
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
5420d660ba [ticket/15289] Use Twig includes
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
0628d00986 [ticket/15289] Update acp module
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
c785bfa00e [ticket/15289] Fix comment typo
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
0789a42c7a [ticket/15289] Fix show field description
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
d322404d00 [ticket/15289] Update event
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
ab2dfc2762 [ticket/15289] Remove switch since there is only one mode
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
4c9670363c [ticket/15289] Improve error messages
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
e27e51bdbf [ticket/15289] Fix code style
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
c5f3dec2f2 [ticket/15289] Update acp storage
PHPBB3-15289
2017-09-08 16:25:18 +02:00
Rubén Calvo
f36a6d845d [ticket/15289] Update acp storage template
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
fdb75ed443 [ticket/15289] Use config global
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
5be42739dc [ticket/15289] Fix radio buttons
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
da32ecb30b [ticket/15289] Remove comment
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
7f4e47d26f [ticket/15289] Update provider
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
0b75f1e46a [ticket/15289] Update acp template
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
04a34d9f4f [ticket/15289] Use macros to generate form
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
7e0845f930 [ticket/15289] Fix code style
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
ebfb71604d [ticket/15289] Use lang function in template
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
d5438dd3f2 [ticket/15289] Add event to add language
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
c3c8117f0a [ticket/15289] Update acp to be able to save data in the database
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
6e739a1d0b [ticket/15289] Fix adapter factory
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
71f9babcf1 [ticket/15289] Fix language key
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
19b99a0770 [ticket/15289] Add twig extension to generate inputs from the template
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
9fd8a6ee0f [ticket/15289] Update acp template
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
6cf97b9471 [ticket/15289] Fix selected
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
737a8f9f7d [ticket/15289] Update acp module
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
ba9f082bf4 [ticket/15289] Add acp module
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Rubén Calvo
944f9bf54e [ticket/15289] Add storage collection service
PHPBB3-15289
2017-09-08 16:22:10 +02:00
Marc Alexander
ad24ecae11 Merge pull request #4937 from rubencm/ticket/15330
[ticket/15330] Twig function to know if a language string is defined
2017-09-08 16:16:44 +02:00
Oliver Schramm
7a32f79752 Merge branch '3.2.x' 2017-09-08 16:06:52 +02:00
Oliver Schramm
da1f2fb9a9 Merge branch '3.2.x' 2017-09-08 15:02:26 +02:00
Rubén Calvo
c87b94133c [ticket/15330] Fix typo
PHPBB3-15330
2017-09-08 14:39:04 +02:00
Oliver Schramm
92f4cb442b Merge branch '3.2.x' 2017-09-08 14:22:17 +02:00
Oliver Schramm
aa15e61e4c Merge branch '3.2.x' 2017-09-08 13:53:38 +02:00
Tristan Darricau
9b2c45d892 Merge pull request #4894 from rubencm/ticket/15276
[ticket/15276] Use storage in avatars

* github.com:phpbb/phpbb: (34 commits)
  [ticket/15276] Changed annotation
  [ticket/15276] Remove unused code
  [ticket/15276] Revert some changes
  [ticket/15276] Use IniGetWrapper
  [ticket/15276] Add missing dependency
  [ticket/15276] Remove unused dependency
  [ticket/15276] Add missing properties
  [ticket/15276] Use InitGetWrapper
  [ticket/15276] Fix comments
  [ticket/15276] Fix code and add phpdoc
  [ticket/15276] Use stream_copy_to_stream
  [ticket/15276] Fix typo
  [ticket/15276] Use mimetype guesser
  [ticket/15276] Update file_info to get size of images
  [ticket/15276] Update
  [ticket/15276] Remove avatar_path
  [ticket/15276] Remove avatar_path from acp
  [ticket/15276] Use finfo to get mimetype
  [ticket/15276] Update file_info
  [ticket/15276] Fix code style
  ...
2017-09-08 13:32:38 +02:00
Rubén Calvo
21f3c53882 [ticket/15330] Twig function to know if a language string is defined
PHPBB3-15330
2017-09-08 11:56:20 +02:00
Rubén Calvo
443c5034ce [ticket/15276] Changed annotation
PHPBB3-15276
2017-09-07 16:44:01 +02:00
Rubén Calvo
a8ba4a99e3 [ticket/15276] Remove unused code
PHPBB3-15276
2017-09-07 15:10:52 +02:00
Máté Bartus
b1fe0f9dbe Merge branch '3.2.x' 2017-09-07 15:09:40 +02:00
Máté Bartus
2c56beee33 Merge pull request #4890 from hanakin/ticket/15308
[ticket/15308] Remove !important from pagination css class
2017-09-07 15:07:26 +02:00
Tristan Darricau
d7005b816c Merge branch '3.2.x'
* 3.2.x:
  [ticket/15262] Update the font-weight of buttons
2017-09-07 15:01:00 +02:00
Rubén Calvo
ed282199ac [ticket/15276] Revert some changes
PHPBB3-15276
2017-09-07 14:59:55 +02:00
Tristan Darricau
4bed192958 Merge pull request #4921 from hanakin/ticket/15343
[ticket/15343] Fix forum row inner list

* github.com:phpbb/phpbb:
  [ticket/15343] make blocks
  [ticket/15343] Fix forum row inner list
2017-09-07 14:58:26 +02:00
Rubén Calvo
9fcf30d504 [ticket/15276] Use IniGetWrapper
PHPBB3-15276
2017-09-07 14:50:55 +02:00
Tristan Darricau
51693764f9 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15309] Add margin to pagination
  [ticket/15309] Right-align responsive pagination for consistency
  [ticket/15309] Fix pagination overlap
2017-09-07 14:46:12 +02:00
Tristan Darricau
1521def486 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15333] Call callback when confirm dialog is canceled
2017-09-07 14:41:49 +02:00
Máté Bartus
049971d31d Merge branch '3.2.x' 2017-09-07 14:39:03 +02:00
Tristan Darricau
b2be15e46e Merge branch '3.2.x'
* 3.2.x:
  [ticket/15332] Don't remove dark background if fadedark is false
2017-09-07 14:36:09 +02:00
Máté Bartus
6211b69a6f Merge branch '3.2.x' 2017-09-07 14:32:51 +02:00
Tristan Darricau
1bf9d4815d Merge branch '3.2.x'
* 3.2.x:
  [ticket/15340] Update plupload to version 2.3.3
2017-09-07 14:19:26 +02:00
Tristan Darricau
d4f56b7409 Merge pull request #4923 from hanakin/ticket/15344
[ticket/15344] update and fix stylelint

* github.com:phpbb/phpbb:
  [ticket/15344] update stylelint and fix issues
2017-09-07 14:16:32 +02:00
Máté Bartus
60dba82e1d Merge branch '3.2.x' 2017-09-07 14:13:58 +02:00
Máté Bartus
6459bcf98f Merge branch '3.2.x' 2017-09-07 14:07:26 +02:00
Rubén Calvo
5ff182ce25 [ticket/15276] Add missing dependency
PHPBB3-15276
2017-09-07 13:51:35 +02:00
Rubén Calvo
b255209574 [ticket/15276] Remove unused dependency
PHPBB3-15276
2017-09-07 13:36:25 +02:00
Rubén Calvo
bb886667d2 [ticket/15276] Add missing properties
PHPBB3-15276
2017-09-07 13:35:15 +02:00
Rubén Calvo
354dda5cc8 [ticket/15276] Use InitGetWrapper
PHPBB3-15276
2017-09-07 13:29:35 +02:00
Rubén Calvo
fe20aa058f [ticket/15276] Fix comments
PHPBB3-15276
2017-09-07 13:15:19 +02:00
Marc Alexander
a6fb569fa9 Merge branch '3.2.x' 2017-09-06 19:07:35 +02:00
Michael Miday
30fa0c9474 [ticket/15344] update stylelint and fix issues
PHPBB3-15344
2017-09-02 15:44:47 -04:00
Michael Miday
40b2e3c1d4 [ticket/15343] make blocks
PHPBB3-15343
2017-09-01 06:30:44 -04:00
Michael Miday
95e5f9cfe0 [ticket/15343] Fix forum row inner list
PHPBB3-15343
2017-08-30 17:41:33 -04:00
Michael Miday
cff4e1e7fb [ticket/15308] Unqualify selectors
PHPBB3-15308
2017-08-30 17:12:19 -04:00
Rubén Calvo
da3c9b3de7 [ticket/15276] Fix code and add phpdoc
PHPBB3-15276
2017-08-28 17:55:19 +02:00
Rubén Calvo
28060a8468 [ticket/15276] Use stream_copy_to_stream
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
87229e1a77 [ticket/15276] Fix typo
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
c3e9aa1c18 [ticket/15276] Use mimetype guesser
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
09856aeb26 [ticket/15276] Update file_info to get size of images
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
3c60333725 [ticket/15276] Update
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
2afada5a5a [ticket/15276] Remove avatar_path
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
0ff80fead8 [ticket/15276] Remove avatar_path from acp
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
090ed9bf79 [ticket/15276] Use finfo to get mimetype
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
400e663347 [ticket/15276] Update file_info
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
8d7336e57c [ticket/15276] Fix code style
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
8a47fd4120 [ticket/15276] Remove old code
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
006990f1d0 [ticket/15276] Fix file_info errors
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
9e018e7c12 [ticket/15276] Use streams
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
946f0348a2 [ticket/15276] Add methods to get file info
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
4c5114c14d [ticket/15276] Use storage to download avatar
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
286b1bbe33 [ticket/15276] Change adapter to provider in config_name
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
89f4e12f85 [ticket/15276] Add service to collection
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
5a25a6b69f [ticket/15276] Remove empty line
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
ee094dd0de [ticket/15276] Remove annotation
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
929e32e80d [ticket/15276] Use storage in avatar test
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
41af01b1ee [ticket/15276] Rename exception
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
ef00bb4da5 [ticket/15276] Resolve conflicts
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
0417482d55 [ticket/15276] Fix migration
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Rubén Calvo
4ed0de9f41 [ticket/15276] Use storage in avatars
PHPBB3-15276
2017-08-25 15:31:58 +02:00
Tristan Darricau
d8fb94245f Merge pull request #4893 from rubencm/ticket/15305
[ticket/15305] Add streams for storage

* github.com:phpbb/phpbb:
  [ticket/15305] Update phpdoc
  [ticket/15305] Remove not_implemented exception
  [ticket/15305] Close stream before throwing an exception
  [ticket/15305] Update annotations
  [ticket/15305] Remove not_implemented exception in streams
  [ticket/15305] Use streams in filespec
  [ticket/15305] Throw exception if stream_copy_to_stream() fail
  [ticket/15305] Use php://temp stream instead of tmpfile()
  [ticket/15305] Revert open in w+b mode
  [ticket/15305] Fix typo
  [ticket/15305] Open file in w+b mode
  [ticket/15305] Open file in binary mode
  [ticket/15305] Simulate streams if they are not implemented
  [ticket/15305] Use an aditional interface for streams
  [ticket/15305] Fix streams
  [ticket/15305] Add tests
  [ticket/15305] Update PHPDoc
  [ticket/15305] Add streams
2017-08-25 15:28:37 +02:00
Rubén Calvo
89bb359361 [ticket/15305] Update phpdoc
PHPBB3-15305
2017-08-25 15:11:21 +02:00
Rubén Calvo
6c3756a1b3 [ticket/15305] Remove not_implemented exception
PHPBB3-15305
2017-08-24 17:42:31 +02:00
Rubén Calvo
0ec50e9055 [ticket/15305] Close stream before throwing an exception
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
b311bb6411 [ticket/15305] Update annotations
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
dbd80a950a [ticket/15305] Remove not_implemented exception in streams
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
55f3452e2d [ticket/15305] Use streams in filespec
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
d89df35959 [ticket/15305] Throw exception if stream_copy_to_stream() fail
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
98ad1e4971 [ticket/15305] Use php://temp stream instead of tmpfile()
The tmpfile() return a file resource, but is not in binary mode.

PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
4a4e5d13b1 [ticket/15305] Revert open in w+b mode
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
e87daeb952 [ticket/15305] Fix typo
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
9d8e0080b9 [ticket/15305] Open file in w+b mode
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
c28100be1c [ticket/15305] Open file in binary mode
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
b9e22b4da4 [ticket/15305] Simulate streams if they are not implemented
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
c93c2d4007 [ticket/15305] Use an aditional interface for streams
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
cd2bae63cb [ticket/15305] Fix streams
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
9b7a5fc2a5 [ticket/15305] Add tests
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
dedd7648cd [ticket/15305] Update PHPDoc
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Rubén Calvo
8ffb14b305 [ticket/15305] Add streams
PHPBB3-15305
2017-08-23 17:18:53 +02:00
Tristan Darricau
c17db782f8 Merge pull request #4917 from vinny/ticket/15336
[ticket/15336] Fix travis fail in bidi.css

* github.com:phpbb/phpbb:
  [ticket/15336] Fix travis fail in bidi.css
2017-08-23 14:52:04 +02:00
Vinny
9fc4052697 [ticket/15336] Fix travis fail in bidi.css
PHPBB3-15336
2017-08-23 04:17:33 -03:00
Marc Alexander
52d356da88 Merge branch '3.2.x' 2017-08-13 16:15:43 +02:00
Marc Alexander
5519bf05f1 Merge branch '3.2.x' 2017-08-13 16:10:30 +02:00
Marc Alexander
53a0c8a4e0 Merge branch '3.2.x' 2017-08-13 16:06:03 +02:00
Marc Alexander
cdd58d997b Merge branch '3.2.x' 2017-08-13 15:59:46 +02:00
Tristan Darricau
5e97463651 Merge branch '3.2.x'
* 3.2.x:
  [PHPBB3-15247] Add support for php v7 APCu cache API
2017-08-06 12:07:53 +02:00
Tristan Darricau
6cdf94197f Merge pull request #4871 from javiexin/ticket/15274
[ticket/15274] Allow "custom" migrations to use parameters

* github.com:phpbb/phpbb:
  [ticket/15274] Allow "custom" migrations to use parameters
  [ticket/15274] Allow "custom" migrations to use parameters
2017-08-06 12:04:07 +02:00
Tristan Darricau
07c12f2d1e Merge pull request #4875 from rubencm/ticket/15287
[ticket/15287] Factory to build storage from DI

* github.com:phpbb/phpbb:
  [ticket/15287] Change adapter to provider in config_name
  [ticket/15287] Launch exception if storage is not available
  [ticket/15287] Add is_available method
  [ticket/15287] Fix annotation return type
  [ticket/15287] Fix variable name
  [ticket/15287] Fix method name
  [ticket/15287] Ensures that the target file directory exists
  [ticket/15287] Rename class
  [ticket/15287] Load the adapter lazily
  [ticket/15287] Travis
  [ticket/15287] Remove unused argument
  [ticket/15287] Travis
  [ticket/15287] Fix code style
  [ticket/15287] Add PHPDoc
  [ticket/15287] Remove unused services
  [ticket/15287] Add filespec for storage
  [ticket/15287] Add services
  [ticket/15287] Update test
  [ticket/15287] Apply suggested change
  [ticket/15287] Update storage
2017-08-06 12:02:25 +02:00
Tristan Darricau
85cecd8764 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15292] Reduce bluriness for forum and topic icons
2017-08-06 12:01:05 +02:00
Tristan Darricau
c59ef8bd2f Merge branch '3.2.x'
* 3.2.x:
  [ticket/15304] Update s9e/text-formatter dependency
2017-08-06 11:52:08 +02:00
Tristan Darricau
8422d1551b Merge branch '3.2.x'
* 3.2.x:
  [ticket/15303] Correctly refer to $memcached and not $memcache
2017-08-06 11:32:56 +02:00
Rubén Calvo
42dcce34de [ticket/15287] Change adapter to provider in config_name
PHPBB3-15287
2017-07-28 15:32:15 +02:00
Marc Alexander
d4bb31d240 Merge pull request #4883 from VSEphpbb/ticket/15295
[ticket/15295] Restore tests on mysql and myisam
2017-07-27 18:59:15 +02:00
Matt Friedman
bc93feba66 [ticket/15295] Restore tests on mysql and myisam
PHPBB3-15295
2017-07-26 12:24:57 -07:00
Máté Bartus
ec9b52f86e Merge pull request #4866 from Nicofuma/ticket/15258
[ticket/15258] Adds a method to get a service by class in service_collection
2017-07-26 17:42:53 +02:00
Tristan Darricau
29f48475aa [ticket/15258] Adds a method to get a service by class in service_collection
PHPBB3-15258
2017-07-26 13:16:51 +02:00
Tristan Darricau
3de15aa6f0 Merge pull request #4878 from rxu/ticket/14972
[ticket/14972] Add PHP 7.2 to the test matrix

* github.com:phpbb/phpbb:
  [ticket/14972] Add PHP 7.2 to the test matrix
2017-07-26 13:11:35 +02:00
Tristan Darricau
ca260d41e5 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15293] Prevent continuing to database update on incomplete file update
2017-07-26 13:09:30 +02:00
Rubén Calvo
e41d4b0d0c [ticket/15287] Launch exception if storage is not available
PHPBB3-15287
2017-07-24 09:42:29 +02:00
Rubén Calvo
ba8cda4d05 [ticket/15287] Add is_available method
PHPBB3-15287
2017-07-24 09:29:57 +02:00
rxu
a0434284d5 [ticket/14972] Add PHP 7.2 to the test matrix
PHPBB3-14972
2017-07-23 01:30:42 +07:00
Rubén Calvo
23e67da331 [ticket/15287] Fix annotation return type
PHPBB3-15287
2017-07-21 20:23:38 +02:00
Rubén Calvo
a09a50670c [ticket/15287] Fix variable name
PHPBB3-15287
2017-07-21 19:29:22 +02:00
Rubén Calvo
8d7e8d4311 [ticket/15287] Fix method name
PHPBB3-15287
2017-07-21 19:29:12 +02:00
Rubén Calvo
2a19e213e8 [ticket/15287] Ensures that the target file directory exists
PHPBB3-15287
2017-07-21 19:28:54 +02:00
Rubén Calvo
e2b02c15a5 [ticket/15287] Rename class
PHPBB3-15287
2017-07-21 19:28:46 +02:00
Rubén Calvo
69bfc48dd2 [ticket/15287] Load the adapter lazily
PHPBB3-15287
2017-07-21 19:28:32 +02:00
Rubén Calvo
18ca46a66c [ticket/15287] Travis
PHPBB3-15287
2017-07-21 19:28:23 +02:00
Rubén Calvo
3e89fdca6d [ticket/15287] Remove unused argument
PHPBB3-15287
2017-07-21 19:28:12 +02:00
Rubén Calvo
4d37063cd7 [ticket/15287] Travis
PHPBB3-15287
2017-07-21 19:28:01 +02:00
Rubén Calvo
a710bc616a [ticket/15287] Fix code style
PHPBB3-15287
2017-07-21 19:27:47 +02:00
Rubén Calvo
ff86178667 [ticket/15287] Add PHPDoc
PHPBB3-15287
2017-07-21 19:27:38 +02:00
Rubén Calvo
67f1f85146 [ticket/15287] Remove unused services
PHPBB3-15287
2017-07-21 19:27:26 +02:00
Rubén Calvo
1dbf75c32c [ticket/15287] Add filespec for storage
PHPBB3-15287
2017-07-21 19:27:12 +02:00
Rubén Calvo
440ef369ca [ticket/15287] Add services
PHPBB3-15287
2017-07-21 19:26:58 +02:00
Rubén Calvo
95ebd5d894 [ticket/15287] Update test
PHPBB3-15287
2017-07-21 19:26:45 +02:00
Rubén Calvo
5897876f2f [ticket/15287] Apply suggested change
PHPBB3-15287
2017-07-21 19:26:27 +02:00
Rubén Calvo
af21b8b6c1 [ticket/15287] Update storage
PHPBB3-15287
2017-07-21 19:26:00 +02:00
Tristan Darricau
51d42b2ced Merge pull request #4859 from rubencm/ticket/15253
[ticket/15253] Add storage abstraction

* github.com:phpbb/phpbb: (26 commits)
  [ticket/15253] Fix code style
  [ticket/15253] Fix rebase
  [ticket/15253] Add create dir method
  [ticket/15253] Remove delete dir method
  [ticket/15253] Fix get contents method
  [ticket/15253] PHP 7.2 compatibility
  [ticket/15253] Fix method visibility
  [ticket/15253] Add old tests
  [ticket/15253] Fix code
  [ticket/15253] Add missing return
  [ticket/15253] Make symfony_filesystem variable static
  [ticket/15253] Fix test for <php7.0
  [ticket/15253] Replace realpath with helper
  [ticket/15253] Update tests
  [ticket/15253] Update imports
  [ticket/15253] Add language strings
  [ticket/15253] Fix code style
  [ticket/15253] Move storage helper to filesystem
  [ticket/15253] Move storage helper to filesystem
  [ticket/15253] Add experimental annotation
  ...
2017-07-20 21:09:10 +02:00
Rubén Calvo
3399594946 [ticket/15253] Fix code style
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
c3a422bdeb [ticket/15253] Fix rebase
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
c18c40aaa5 [ticket/15253] Add create dir method
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
b8483c582d [ticket/15253] Remove delete dir method
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
30e0015ca9 [ticket/15253] Fix get contents method
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
01a28d0bd4 [ticket/15253] PHP 7.2 compatibility
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
9b28b21f9a [ticket/15253] Fix method visibility
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
7bf1a27db4 [ticket/15253] Add old tests
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
436410761d [ticket/15253] Fix code
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
a01d33b1fa [ticket/15253] Add missing return
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
9de384fb22 [ticket/15253] Make symfony_filesystem variable static
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
425fb5b09d [ticket/15253] Fix test for <php7.0
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
9ff25b5970 [ticket/15253] Replace realpath with helper
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
45334eadb6 [ticket/15253] Update tests
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
b1755d9dac [ticket/15253] Update imports
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
8bbec30748 [ticket/15253] Add language strings
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
94ee3dc8b0 [ticket/15253] Fix code style
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
de288be1b3 [ticket/15253] Move storage helper to filesystem
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
603a8c51da [ticket/15253] Move storage helper to filesystem
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
8dbbf74550 [ticket/15253] Add experimental annotation
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
ecb79539f4 [ticket/15253] Use storage helper methods instead of filesystem methods
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
21c9b0eeae [ticket/15253] Fix coding style
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
91163d7ec3 [ticket/15253] Update test
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
afb804fe1e [ticket/15253] Fix exception route
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
0d14c85630 [ticket/15253] Use path from adapter
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Rubén Calvo
334b44057d [ticket/15253] Add storage abstraction
PHPBB3-15253
2017-07-20 19:55:52 +02:00
Marc Alexander
2482ec6897 Merge branch '3.2.x' 2017-07-20 19:50:19 +02:00
Tristan Darricau
35962a0508 Merge pull request #4862 from rxu/ticket/14972-new
[ticket/14972] PHP 7.2 compatibility

* github.com:phpbb/phpbb:
  [ticket/14972] Temporarily pull PHP nightly build out of allowed tests failures
  [ticket/14972] replace all occurrences of sizeof() with the count()
  [ticket/14972] Fix find_key_index method
  [ticket/14972] Update tests matrix to reflect bumping PHP version requirement
  [ticket/14972] Fix test_collection_with_mask test
  [ticket/14972] Avoid using self as constant in tests
  [ticket/14972] Fix create_insert_array() declaration in admin_activate_user
  [ticket/14972] Fix use of deprecated media attachment constants
  [ticket/14972] Migrate from deprecated getMock() method to createMock()
  [ticket/14972] Fix sizeof calls
  [ticket/14972] Bump PHP requirements to 5.6. Update dependencies.
2017-07-18 10:25:24 +02:00
Tristan Darricau
60efaef3cb Merge pull request #4870 from rubencm/ticket/15269
[ticket/15269] Set development environment and enable all debugs when installing with vagrant

* github.com:phpbb/phpbb:
  [ticket/15269] Don't enable DEBUG_CONTAINER by default
  [ticket/15269] Remove comment only if is the beginning of a line
  [ticket/15269] Set development environment and enable all debugs with vagrant
2017-07-18 10:22:59 +02:00
Rubén Calvo
60f175046d [ticket/15269] Don't enable DEBUG_CONTAINER by default
PHPBB3-15269
2017-07-17 21:09:35 +02:00
rxu
765768f139 [ticket/14972] Temporarily pull PHP nightly build out of allowed tests failures
PHPBB3-14972
2017-07-17 18:44:45 +07:00
rxu
797234e416 [ticket/14972] replace all occurrences of sizeof() with the count()
PHPBB3-14972
2017-07-17 16:57:00 +07:00
rxu
67a65e3788 [ticket/14972] Fix find_key_index method
PHPBB3-14972
2017-07-17 16:56:58 +07:00
rxu
e336a62fa3 [ticket/14972] Update tests matrix to reflect bumping PHP version requirement
PHPBB3-14972
2017-07-17 16:56:57 +07:00
rxu
0552666cf5 [ticket/14972] Fix test_collection_with_mask test
In PHP 7.2, the severity of the message “Use of undefined constant” was raised
from E_NOTICE to E_WARNING, so calling $array[ITEM] causes warning caught by
error collector. Use undefined offset notice to get an empty message as such.

PHPBB3-14972
2017-07-17 16:56:57 +07:00
rxu
221004b21b [ticket/14972] Avoid using self as constant in tests
PHPBB3-14972
2017-07-17 16:56:56 +07:00
rxu
efd8e35a6b [ticket/14972] Fix create_insert_array() declaration in admin_activate_user
PHPBB3-14972
2017-07-17 16:56:56 +07:00
rxu
003a9a6d25 [ticket/14972] Fix use of deprecated media attachment constants
PHPBB3-14972
2017-07-17 16:56:55 +07:00
rxu
e3859d894d [ticket/14972] Migrate from deprecated getMock() method to createMock()
PHPBB3-14972
2017-07-17 16:56:55 +07:00
rxu
055a5f8040 [ticket/14972] Fix sizeof calls
As of PHP 7.2, only arrays and objects implementing the Countable interface
should be passed as a count() or sizeof() parameter.
See https://github.com/php/php-src/blob/php-7.2.0alpha2/UPGRADING#L197-L198
Also, sizeof() seems to be sheduled for deprecation, see
https://wiki.php.net/rfc/deprecations_php_7_2#suggested_deprecations

PHPBB3-14972
2017-07-17 16:56:54 +07:00
rxu
07c6e821d5 [ticket/14972] Bump PHP requirements to 5.6. Update dependencies.
Also bump to PHP 7.2 compatible versions: PHPUnit to 5.7, Guzzle to 6.3.

PHPBB3-14972
2017-07-17 16:56:53 +07:00
Marc Alexander
f101532c09 Merge branch '3.2.x' 2017-07-16 21:42:30 +02:00
javiexin
55d5ed79fb [ticket/15274] Allow "custom" migrations to use parameters
Remove references in migration tool.

PHPBB3-15274
2017-07-16 11:58:54 +02:00
javiexin
563a6680eb [ticket/15274] Allow "custom" migrations to use parameters
Add the possibility to have custom migrations with parameters,
allowing the use of a single function for several uses.

PHPBB3-15274
2017-07-15 18:49:13 +02:00
Rubén Calvo
2a31978aff [ticket/15269] Remove comment only if is the beginning of a line
PHPBB3-15269
2017-07-12 12:07:13 +02:00
Rubén Calvo
f9a5787fc9 [ticket/15269] Set development environment and enable all debugs with vagrant
PHPBB3-15269
2017-07-12 12:06:47 +02:00
Marc Alexander
8514e8be73 Merge branch '3.2.x' 2017-07-11 21:30:04 +02:00
Marc Alexander
324d1e3c55 Merge branch '3.2.x' 2017-07-11 21:19:00 +02:00
Marc Alexander
5e24508280 Merge branch '3.2.x' 2017-06-25 21:27:09 +02:00
Marc Alexander
848cc8c5e6 Merge branch '3.2.x' 2017-06-25 17:27:50 +02:00
Marc Alexander
6b55ae7573 Merge branch '3.2.x' 2017-06-25 15:12:39 +02:00
Marc Alexander
c876392b98 Merge branch '3.2.x' 2017-06-25 14:13:58 +02:00
Marc Alexander
797bde42aa Merge branch '3.2.x' 2017-06-25 11:07:13 +02:00
Marc Alexander
fd9a084386 Merge branch '3.2.x' 2017-06-25 10:32:43 +02:00
Marc Alexander
3b8a155de0 Merge pull request #4848 from rubencm/ticket/15203
[ticket/15203] Include missing constants in web installer
2017-06-25 10:29:49 +02:00
Marc Alexander
1660f7e52c Merge branch '3.2.x' 2017-06-25 10:24:15 +02:00
Marc Alexander
1b3bdddfd1 Merge branch '3.2.x' 2017-06-25 10:10:14 +02:00
Marc Alexander
976d799ff2 Merge branch '3.2.x' 2017-06-24 21:42:54 +02:00
Marc Alexander
d77c018d7f Merge branch '3.2.x' 2017-06-24 21:32:14 +02:00
Marc Alexander
059c08181e Merge branch '3.2.x' 2017-06-16 20:18:55 +02:00
Marc Alexander
011aa0a125 Merge branch '3.2.x' 2017-06-16 19:49:13 +02:00
Rubén Calvo
833a4c9e95 [ticket/15203] Remove require since is already in startup.php
PHPBB3-15203
2017-06-14 08:37:12 +02:00
Rubén Calvo
0f941a8db2 [ticket/15203] Include missing constants in web installer
PHPBB3-15203
2017-06-14 06:12:02 +02:00
Marc Alexander
b51d809491 Merge pull request #4846 from rxu/ticket/15179
[ticket/15179] Fix indentation
2017-06-11 21:39:45 +02:00
rxu
467ff41e84 [ticket/15179] Fix indentation
PHPBB3-15179
2017-06-12 02:04:30 +07:00
Marc Alexander
a44f31ec42 Merge branch '3.2.x' 2017-06-11 19:09:02 +02:00
Marc Alexander
70e30a0591 Merge pull request #4741 from flash1452/ticket/11515
[ticket/11515] Extra check after acquiring locks.
2017-06-11 16:40:48 +02:00
Tristan Darricau
5e6d8f44c9 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15219] Add console command for updating hashes to bcrypt
  [ticket/15219] Add missing space
  [ticket/15219] Update hashes to bcrypt with cron
2017-06-06 09:33:57 +02:00
Marc Alexander
cfa56ed3b8 Merge branch '3.2.x' 2017-06-05 11:57:37 +02:00
Marc Alexander
c0abca3c1a Merge pull request #4836 from hanakin/ticket/15234
[ticket/15234] quickfix notification avatar sizes
2017-06-05 11:55:06 +02:00
Marc Alexander
92195ede52 Merge branch '3.2.x' 2017-06-05 11:53:07 +02:00
Marc Alexander
1377f13f36 Merge branch '3.2.x' 2017-06-05 11:44:13 +02:00
Marc Alexander
47684bd684 Merge branch '3.2.x' 2017-06-05 11:19:26 +02:00
Marc Alexander
970c44b05f Merge branch '3.2.x' 2017-06-05 11:16:35 +02:00
Marc Alexander
a58d032bf9 Merge branch '3.2.x' 2017-06-05 11:13:43 +02:00
Marc Alexander
509ea30aa2 Merge branch '3.2.x' 2017-06-05 11:02:49 +02:00
Marc Alexander
df2a0e0b00 Merge branch '3.2.x' 2017-06-05 10:54:46 +02:00
Marc Alexander
cfafc32694 Merge branch '3.2.x' 2017-06-03 11:43:13 +02:00
Marc Alexander
2a8f3e0101 Merge branch '3.2.x' 2017-06-03 11:37:10 +02:00
Michael Miday
686a8e6d3a [ticket/15234] patch avatar sizes
PHPBB3-15234
2017-06-01 16:35:21 -04:00
Marc Alexander
9a18d3e79c Merge branch '3.2.x' 2017-05-30 19:10:22 +02:00
Marc Alexander
145a3a2c75 Merge branch '3.2.x' 2017-05-29 12:14:10 +02:00
Marc Alexander
0a3d290551 Merge branch '3.2.x' 2017-05-25 21:50:23 +02:00
Marc Alexander
cb3ce2b19a Merge branch '3.2.x' 2017-05-25 19:38:02 +02:00
Marc Alexander
36763ab244 Merge branch '3.2.x' 2017-05-25 08:52:49 +02:00
Marc Alexander
ee95103ced Merge branch '3.2.x' 2017-05-21 16:42:17 +02:00
Marc Alexander
0d1c6d46af Merge branch '3.2.x' 2017-05-21 16:33:08 +02:00
Marc Alexander
3c9843dc42 Merge branch '3.2.x' 2017-05-21 14:20:12 +02:00
Marc Alexander
f9ceb05f2c Merge branch '3.2.x' 2017-05-21 12:49:23 +02:00
Vishal Pandey
fa108176e5 [ticket/11515] If condition changes
Duplicate return statements removed.

PHPBB3-11515
2017-05-14 12:08:20 +05:30
Vishal Pandey
8897dbf9fe [ticket/11515] Inverted Logic
Inverted the logic to raise exception inside if.

PHPBB3-11515
2017-05-14 11:47:48 +05:30
Tristan Darricau
52dd4895c8 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15226] Add index for latest topics to topics table
2017-05-12 17:27:06 +02:00
Máté Bartus
e87e2a76b1 Merge pull request #4827 from rxu/ticket/15220
[ticket/15220] Fix undefined variable $phpbb_root_path in acp_extensions.php
2017-05-09 08:58:18 +02:00
Máté Bartus
f6ac6701ff Merge pull request #4820 from marc1706/ticket/15213
[ticket/15213] Fix stylelint failures
2017-05-09 08:41:48 +02:00
Tristan Darricau
985d822706 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15221] add missing commas
2017-05-08 14:56:01 +02:00
Tristan Darricau
0af7fc6e08 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15222] Fix a typo in generate_text_for_display_test.php
2017-05-08 14:52:00 +02:00
rxu
2485db81a3 [ticket/15220] Fix undefined variable $phpbb_root_path in acp_extensions.php
PHPBB3-15220
2017-05-07 10:03:19 +07:00
Marc Alexander
5f09e0ec0a [ticket/15213] Fix stylelint failures
PHPBB3-15213
2017-05-02 13:55:36 -04:00
Marc Alexander
cf603f7025 Merge branch '3.2.x' 2017-05-02 13:16:39 -04:00
Marc Alexander
d8e11c7983 Merge branch '3.2.x' 2017-04-30 20:36:15 -04:00
Tristan Darricau
d6f5231324 Merge branch '3.2.x'
* 3.2.x:
2017-04-28 11:30:36 +02:00
Marc Alexander
e60306d1e1 Merge pull request #4801 from hanakin/ticket/15156
[ticket/15156] Simplify user online notification
2017-04-27 17:04:18 -04:00
Marc Alexander
b98b039056 Merge branch '3.2.x' 2017-04-27 10:04:12 -04:00
Marc Alexander
bd1206d45f Merge branch '3.2.x' 2017-04-27 09:36:14 -04:00
Marc Alexander
183ec7c05f Merge branch '3.2.x' 2017-04-26 19:58:51 -04:00
Marc Alexander
a7a7757e30 Merge branch '3.2.x' 2017-04-26 19:54:02 -04:00
Marc Alexander
630320d9d2 Merge branch '3.2.x' 2017-04-26 19:30:53 -04:00
Marc Alexander
47231fe435 Merge branch '3.2.x' 2017-04-26 19:08:30 -04:00
Marc Alexander
2cf47ffaa1 Merge pull request #3909 from Nicofuma/ticket/11150
[ticket/11150] Install extensions through composer
2017-04-26 09:49:37 -04:00
Marc Alexander
df473d2a7e Merge pull request #4808 from hanakin/ticket/15192
[ticket/15192] Fix dropdown-extended & notification code
2017-04-26 09:35:19 -04:00
hanakin
077a3c1fa1 [ticket/15156] remove old img and fix language.css
PHPBB3-15156
2017-04-25 20:48:07 -04:00
hanakin
0b818b0739 [ticket/15192] fix stupid test issue
PHPBB3-15192
2017-04-25 18:32:25 -04:00
hanakin
5c36c41f06 [ticket/15192] use proper scope for overides
PHPBB3-15192
2017-04-25 18:30:09 -04:00
hanakin
323f187ccf [ticket/15192] Cleanup selectors and proper scope
PHPBB3-15192
2017-04-25 18:07:21 -04:00
hanakin
308b0778cf [ticket/15192] Fix js selectors
PHPBB3-15192
2017-04-25 18:06:44 -04:00
hanakin
5e6ba1e466 [ticket/15192] relocate class properly
PHPBB3-15192
2017-04-25 18:04:06 -04:00
Tristan Darricau
1f9a269d78 [ticket/11150] Makes the customisation db lync dynamic
PHPBB3-11150
2017-04-23 21:09:59 +02:00
Tristan Darricau
5376f676bf [ticket/11150] Handle composer context transparently
PHPBB3-11150
2017-04-23 21:01:16 +02:00
Tristan Darricau
69571f9cef [ticket/11150] Fix comments
PHPBB3-11150
2017-04-23 21:01:15 +02:00
Tristan Darricau
31953496ee [ticket/11150] More CSS fixes
PHPBB3-11150
2017-04-23 21:01:15 +02:00
Tristan Darricau
9314e533c8 [ticket/11150] Fix rebase conflicts
PHPBB3-11150
2017-04-23 21:01:15 +02:00
Tristan Darricau
a49663a10f [ticket/11150] Silly CSS changes
PHPBB3-11150
2017-04-23 21:01:15 +02:00
Tristan Darricau
ab162b2fa6 [ticket/11150] Do not generate actions links in templates
PHPBB3-11150
2017-04-23 21:01:15 +02:00
Tristan Darricau
d59b26dcec [ticket/11150] Add comments + ignore invaid repositories URLs
PHPBB3-11150
2017-04-23 21:01:15 +02:00
Tristan Darricau
fbf11d61aa [ticket/11150] Updates deps + fix various issues
PHPBB3-11150
2017-04-23 21:01:14 +02:00
Tristan Darricau
87ce6cadaf [ticket/11150] Fix wording
PHPBB3-11150
2017-04-23 21:01:14 +02:00
Tristan Darricau
efe37cd5a8 [ticket/11150] Wording
PHPBB3-11150
2017-04-23 21:01:14 +02:00
Tristan Darricau
ed32ab89ad [ticket/11150] Removes outdated TODO
PHPBB3-11150
2017-04-23 21:01:14 +02:00
Tristan Darricau
60bf9af27a [ticket/11150] Fix illegal uage if $_SERVER when viewing the catalog
PHPBB3-11150
2017-04-23 21:01:14 +02:00
Tristan Darricau
4599799fba [ticket/11150] Improves requirements check
PHPBB3-11150
2017-04-23 21:01:14 +02:00
Tristan Darricau
16d3fa49a1 [ticket/11150] Add composer-ext.* and vendor-ext/
PHPBB3-11150
2017-04-23 21:01:13 +02:00
Tristan Darricau
1703b678d0 [ticket/11150] Skip invalid extensions, not the whole list
PHPBB3-11150
2017-04-23 21:01:13 +02:00
Tristan Darricau
5f4aa4f416 [ticket/11150] Uses PHPBB_VERSION, not the composer.json one
PHPBB3-11150
2017-04-23 21:01:13 +02:00
Tristan Darricau
ce12b7799f [ticket/11150] Ignore vendor-ext in the sniffer
PHPBB3-11150
2017-04-23 21:01:13 +02:00
Tristan Darricau
fad379813f [ticket/11150] Always display an error message
PHPBB3-11150
2017-04-23 21:01:13 +02:00
Tristan Darricau
f6eb17048a [ticket/11150] Initialize the errors array in the translate trait
PHPBB3-11150
2017-04-23 21:01:13 +02:00
Tristan Darricau
1c9ecd084c [ticket/11150] CS
PHPBB3-11150
2017-04-23 21:01:12 +02:00
Tristan Darricau
43038a65de [ticket/11150] Update tests
PHPBB3-11150
2017-04-23 21:01:12 +02:00
Tristan Darricau
718ca44a06 [ticket/11150] CS
PHPBB3-11150
2017-04-23 21:01:12 +02:00
Tristan Darricau
4617037feb [ticket/11150] Console liek output
PHPBB3-11150
2017-04-23 21:01:12 +02:00
Tristan Darricau
6571067719 [ticket/11150] Case insentitive sort
PHPBB3-11150
2017-04-23 21:01:12 +02:00
Tristan Darricau
b5136e4976 [ticket/11150] Fix CS
PHPBB3-11150
2017-04-23 21:01:11 +02:00
Tristan Darricau
ea4a4acee0 [ticket/11150] CS and wording
PHPBB3-11150
2017-04-23 21:01:11 +02:00
Tristan Darricau
8ea2ecf835 [ticket/11150] Disable packagist and add titania
PHPBB3-11150
2017-04-23 21:01:11 +02:00
Tristan Darricau
7958dca09d [ticket/11150] Load vendor/ext-autoload.php
PHPBB3-11150
2017-04-23 21:01:11 +02:00
Tristan Darricau
e71e6224f5 [ticket/11150] Remove 'Update' and 'Remove' actions in the catalog
PHPBB3-11150
2017-04-23 21:01:11 +02:00
Tristan Darricau
bac391c282 [ticket/11150] CS
PHPBB3-11150
2017-04-23 21:01:11 +02:00
Tristan Darricau
8b96fc7d04 [ticket/11150] Add missing config entries
PHPBB3-11150
2017-04-23 21:01:10 +02:00
Tristan Darricau
65cd20539f [ticket/11150] Purge on remove by default
PHPBB3-11150
2017-04-23 21:01:10 +02:00
Tristan Darricau
b10719d03d [ticket/11150] Don't display remove for enabled extensions
PHPBB3-11150
2017-04-23 21:01:10 +02:00
Tristan Darricau
ba0f151c39 [ticket/11150] Adds an overflow to composer output
PHPBB3-11150
2017-04-23 21:01:10 +02:00
Tristan Darricau
0926e94955 [ticket/11150] CS
PHPBB3-11150
2017-04-23 21:01:10 +02:00
Tristan Darricau
dbfe2d7947 [ticket/11150] Yellow => Orange in composer output
PHPBB3-11150
2017-04-23 21:01:09 +02:00
Tristan Darricau
fc1d79cf47 [ticket/11150] Correctly enable/purge extensions
PHPBB3-11150
2017-04-23 21:01:09 +02:00
Tristan Darricau
60086b5c41 [ticket/11150] Add language key
PHPBB3-11150
2017-04-23 21:01:09 +02:00
Tristan Darricau
9a836b5901 [ticket/11150] Makes composer output level configurable
PHPBB3-11150
2017-04-23 21:01:09 +02:00
Tristan Darricau
972f3a7ff4 [ticket/11150] Fix Html output formatter
PHPBB3-11150
2017-04-23 21:01:09 +02:00
Tristan Darricau
317c90cf48 [ticket/11150] Makes minimum-stability configurable
PHPBB3-11150
2017-04-23 21:01:09 +02:00
Tristan Darricau
6bbd8486b2 [ticket/11150] Filter out versions incompatibles with the minimum stability flag
PHPBB3-11150
2017-04-23 21:01:08 +02:00
Tristan Darricau
a5a678c0d8 [ticket/11150] Translate Enabling/disabling extension
PHPBB3-11150
2017-04-23 21:01:08 +02:00
Tristan Darricau
ab60adb60c [ticket/11150] Add html output formatter
PHPBB3-11150
2017-04-23 21:01:08 +02:00
Tristan Darricau
c88c692ad6 [ticket/11150] Use json instead of serialize
PHPBB3-11150
2017-04-23 21:01:08 +02:00
Tristan Darricau
f1e80830b7 [ticket/11150] Wording
PHPBB3-11150
2017-04-23 21:01:08 +02:00
Tristan Darricau
38a58df41b [ticket/11150] Gallery => Catalog
PHPBB3-11150
2017-04-23 21:01:08 +02:00
Tristan Darricau
963eea33a9 [ticket/11150] Move composer output
PHPBB3-11150
2017-04-23 21:01:07 +02:00
Tristan Darricau
560d4729f9 [ticket/11150] Small fix
PHPBB3-11150
2017-04-23 21:01:07 +02:00
Tristan Darricau
178f0e1639 [ticket/11150] Tweak gallery actions
PHPBB3-11150
2017-04-23 21:01:07 +02:00
Tristan Darricau
35b0543da9 [ticket/11150] Uses percentages instead of fixed column size
PHPBB3-11150
2017-04-23 21:01:07 +02:00
Tristan Darricau
1acef8d268 [ticket/11150] Updates CLI wording
PHPBB3-11150
2017-04-23 21:01:07 +02:00
Tristan Darricau
31931134aa [ticket/11150] Composer is using $_SERVER for some git stuff
PHPBB3-11150
2017-04-23 21:01:07 +02:00
Tristan Darricau
cc0a762866 [ticket/11150] Disable if directories not writable
PHPBB3-11150
2017-04-23 21:01:06 +02:00
Tristan Darricau
0a809fb90e [ticket/11150] Add missing language keys
PHPBB3-11150
2017-04-23 21:01:06 +02:00
Tristan Darricau
9b69cd74ae [ticket/11150] Language keys
PHPBB3-11150
2017-04-23 21:01:06 +02:00
Tristan Darricau
46972aa4c7 [ticket/11150] Enforce enable on install and purge on remove options
PHPBB3-11150
2017-04-23 21:01:06 +02:00
Tristan Darricau
8f1d254191 [ticket/11150] Repositories settings - end
PHPBB3-11150
2017-04-23 21:01:06 +02:00
Tristan Darricau
b75087a433 [ticket/11150] Repositories settings, beginning
PHPBB3-11150
2017-04-23 21:01:06 +02:00
Tristan Darricau
3640302afd [ticket/11150] Set settings
PHPBB3-11150
2017-04-23 21:01:05 +02:00
Tristan Darricau
3d363a7bb3 [ticket/11150] Gallery pagination
PHPBB3-11150
2017-04-23 21:01:05 +02:00
Tristan Darricau
3a1f2ad3ff [ticket/11150] Sorts extensions by display name
PHPBB3-11150
2017-04-23 21:01:05 +02:00
Tristan Darricau
8db408a21c [ticket/11150] Resize actions column
PHPBB3-11150
2017-04-23 21:01:05 +02:00
Tristan Darricau
bf5462e708 [ticket/11150] Resizes some columns
PHPBB3-11150
2017-04-23 21:01:05 +02:00
Tristan Darricau
f6a867af5f [ticket/11150] Move homepage and display package name
PHPBB3-11150
2017-04-23 21:01:05 +02:00
Tristan Darricau
c12cfdad9d [ticket/11150] Move actions to a dedicated collumn in the gallery
PHPBB3-11150
2017-04-23 21:01:04 +02:00
Tristan Darricau
76a9bb2275 [ticket/11150] Display extensions with the display_name in the gallery
PHPBB3-11150
2017-04-23 21:01:04 +02:00
Tristan Darricau
88b32580dc [ticket/11150] Add Remove && Update buttons
PHPBB3-11150
2017-04-23 21:01:04 +02:00
Tristan Darricau
d6618397bf [ticket/11150] Better pre/post action handling, restore ext.json in case of err
PHPBB3-11150
2017-04-23 21:01:04 +02:00
Tristan Darricau
51916def9c [ticket/11150] Display extension status in "gallery"
PHPBB3-11150
2017-04-23 21:01:04 +02:00
Tristan Darricau
a32d429f1e [ticket/11150] Restore the cwd before using the autoloader in case of error
PHPBB3-11150
2017-04-23 21:01:03 +02:00
Tristan Darricau
50b2989cf0 [ticket/11150] PHP 5.4 compatibility
PHPBB3-11150
2017-04-23 21:01:03 +02:00
Tristan Darricau
d5672303a3 [ticket/11150] Install from ACP
PHPBB3-11150
2017-04-23 21:01:03 +02:00
Tristan Darricau
6a15ad1368 [ticket/11150] Implement install extension link in ACP
PHPBB3-11150
2017-04-23 21:01:03 +02:00
Tristan Darricau
adb8d30d98 [ticket/11150] Add ACP gallery
PHPBB3-11150
2017-04-23 21:01:03 +02:00
Tristan Darricau
c49cd29e96 [ticket/11150] Cache the list of available packages for 24 hours
PHPBB3-11150
2017-04-23 21:01:03 +02:00
Tristan Darricau
8b1284594b [ticket/11150] Use a trait to translate composer and introduce web_io
PHPBB3-11150
2017-04-23 21:01:02 +02:00
Tristan Darricau
8a1ca4375e [ticket/11150] Preserve original requirements and avoid finally
PHPBB3-11150
2017-04-23 21:01:02 +02:00
Tristan Darricau
e3fadc1fc7 [ticket/11150] Display and translate composer output
PHPBB3-11150
2017-04-23 21:01:02 +02:00
Tristan Darricau
00229c20f0 [ticket/11150] Add extension:start-managing command
PHPBB3-11150
2017-04-23 21:01:02 +02:00
Tristan Darricau
779c9c8552 [ticket/11150] Preserve every packages of every phpbb types in composer-ext.json
PHPBB3-11150
2017-04-23 21:01:02 +02:00
Tristan Darricau
540bac3ba4 [ticket/11150] Better version normalization
PHPBB3-11150
2017-04-23 21:01:02 +02:00
Tristan Darricau
ac129f34d3 [ticket/11150] Do not override extensions installed manually
PHPBB3-11150
2017-04-23 21:01:01 +02:00
Tristan Darricau
fbb85e2f4f [ticket/11150] Add ability to manage extensions through composer
PHPBB3-11150
2017-04-23 21:01:01 +02:00
Tristan Darricau
712626d845 Merge branch '3.2.x'
* 3.2.x:
  [ticket/8116] Add missing new line
  [ticket/8116] Correctly get other users who posted under IP
  [ticket/8116] Improve code and add tests for helper functions
  [ticket/8116] Add pagination for IP tables on post info
2017-04-21 23:55:13 +02:00
Tristan Darricau
1844b8ca2a Merge branch '3.2.x'
* 3.2.x:
  [ticket/15011] Use exception interface for 3.2
2017-04-21 23:51:42 +02:00
Tristan Darricau
bdbac7b4c9 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15144] Attachment icon display should only occur
2017-04-20 12:55:14 +02:00
hanakin
522b73cd46 [ticket/15156] Fix profile page
PHPBB3-15156
2017-04-19 19:21:36 -04:00
Tristan Darricau
f21662ab95 Merge branch '3.2.x'
* 3.2.x:
  [ticket/13608] Add core.ucp_restore_permissions event
2017-04-19 23:09:05 +02:00
Tristan Darricau
fb328548f4 Merge branch '3.2.x'
* 3.2.x:
  [ticket/13609] Add core.ucp_switch_permissions event
2017-04-19 23:04:46 +02:00
Tristan Darricau
edf6aefd2a Merge branch '3.2.x'
* 3.2.x:
  [ticket/7336] Index first post when splitting topics
  [ticket/7336] Add tests for indexing first post after splitting topics
2017-04-19 23:02:03 +02:00
Tristan Darricau
f579e75be0 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15146] Date profile field validation incorrect
2017-04-19 22:53:00 +02:00
Tristan Darricau
69b703f1ad Merge branch '3.2.x'
* 3.2.x:
  [ticket/13735] Fix input type number for Firefox in prosilver
2017-04-19 22:20:21 +02:00
hanakin
9f71c1baff [ticket/15109] Add icon to member profile
PHPBB3-15109
2017-04-19 15:26:31 -04:00
hanakin
4ffb033978 [ticket/15156] Add icon to pm profile
PHPBB3-15156
2017-04-19 14:51:47 -04:00
hanakin
c730702570 [ticket/15156] Add icon to post profile
PHPBB3-15156
2017-04-19 14:35:15 -04:00
hanakin
e34ad7c4a9 [ticket/15156] Set icon color
PHPBB3-15156
2017-04-19 14:32:25 -04:00
hanakin
e678880492 [ticket/15156] Remove online styles
PHPBB3-15156
2017-04-19 14:10:34 -04:00
Tristan Darricau
57b122cc16 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15151] Use redirected link for consistency
  [ticket/15151] ACP Cookie settings explanatory text
  [ticket/15151] ACP Cookie settings add explanatory text where it was missing
2017-04-19 17:08:28 +02:00
Tristan Darricau
1e14328493 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15158] Update oauth to v0.8.10
2017-04-18 23:54:27 +02:00
Tristan Darricau
3a59ba17e5 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15173] Fix message area resizing lag
2017-04-18 23:49:00 +02:00
Tristan Darricau
446bfd9680 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15174] Split timeout message to extra method and set timeout to 60s
  [ticket/15174] Increase timeout for loading indicator
2017-04-18 23:43:03 +02:00
Tristan Darricau
ea1222f3bb Merge branch '3.2.x'
* 3.2.x:
  [ticket/15163] Escape curly braces in smilies HTML attributes
2017-04-18 23:37:01 +02:00
Tristan Darricau
5566d03718 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15084] fix wrong order of breadcrumbs on module management
2017-04-18 23:25:44 +02:00
Tristan Darricau
d4df27b567 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15079] Parse message before inserting it into drafts table
2017-04-18 23:20:05 +02:00
Tristan Darricau
451a7ce43c Merge branch '3.2.x'
* 3.2.x:
  [ticket/15097] New 'Installed software' lead section
  [ticket/15097] Resolve travis-ci error
  [ticket/15097] Resolve travis-ci error
  [ticket/15097] Add PHP version to Board statistics
  [ticket/15097] Add PHP version to Board statistics
2017-04-18 23:15:10 +02:00
Tristan Darricau
19cbb8fa9d Merge branch '3.2.x'
* 3.2.x:
  [ticket/15108] Remove duplicate code in request->context
2017-04-18 23:10:41 +02:00
Tristan Darricau
a4d1c60b00 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15103] Update fast-image-size to 1.1.3
2017-04-18 23:07:41 +02:00
Tristan Darricau
5e12ca7929 Merge pull request #4773 from VSEphpbb/ticket/15154
[ticket/15154] Load compatibility globals into the CLI installer

* github.com:phpbb/phpbb:
  [ticket/15154] Load compatibility globals into the CLI installer
2017-04-18 23:05:52 +02:00
Marc Alexander
31e258c8c3 Merge branch '3.2.x' 2017-04-18 21:46:48 +02:00
Marc Alexander
38b44ea5fc Merge branch '3.2.x' 2017-04-18 20:38:46 +02:00
Marc Alexander
a87727ba47 Merge branch '3.2.x' 2017-04-17 12:02:22 +02:00
Marc Alexander
4206e25b2a Merge branch '3.2.x' 2017-04-17 11:51:16 +02:00
Marc Alexander
465ceab1e6 Merge branch '3.2.x' 2017-04-16 19:41:19 +02:00
Marc Alexander
1b9380040c Merge branch '3.2.x' 2017-04-16 17:35:48 +02:00
Marc Alexander
473f8bc0a6 Merge branch '3.2.x' 2017-04-16 15:14:23 +02:00
Marc Alexander
c92c2aa2f4 Merge branch '3.2.x' 2017-04-16 11:42:53 +02:00
Tristan Darricau
905e189c77 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15090] Ensure send stats module exists before removing
2017-04-16 10:22:01 +02:00
Marc Alexander
58929bdccd Merge branch '3.2.x' 2017-04-15 18:19:16 +02:00
Marc Alexander
fba8595421 Merge branch '3.2.x' 2017-04-11 21:28:08 +02:00
Marc Alexander
4a657d0732 Merge branch '3.2.x' 2017-04-09 14:11:10 +02:00
Marc Alexander
08b55af93f Merge pull request #4785 from hanakin/patch-3
[ticket/15160] correct path of node_modules
2017-04-02 10:40:07 +02:00
hanakin
bf5d0fc468 [ticket/15160] correct gitignore node_modules path
PHPBB3-15160
2017-03-31 17:36:02 -04:00
Marc Alexander
798dda2cbc Merge branch '3.2.x' 2017-03-28 19:42:59 +02:00
Matt Friedman
a10129e6f4 [ticket/15154] Load compatibility globals into the CLI installer
PHPBB3-15154
2017-03-26 23:40:24 -07:00
Marc Alexander
c95a4820b5 Merge pull request #4772 from VSEphpbb/ticket/15153
[ticket/15153] Update to newer homestead for vagrant
2017-03-27 08:14:09 +02:00
Matt Friedman
c6321fc61b [ticket/15153] Update to newer homestead for vagrant
PHPBB3-15153
2017-03-26 16:31:59 -07:00
Marc Alexander
835d8f429d Merge pull request #4727 from hanakin/ticket/15116
[ticket/15116] Fix admin errors
2017-03-26 22:39:45 +02:00
Marc Alexander
e2a746c644 Merge branch '3.2.x' 2017-03-26 17:12:43 +02:00
hanakin
75e4b235b4 [ticket/15116] turn on adm tests
PHPBB3-15116
2017-03-25 17:41:05 -04:00
hanakin
6dc1bdc1ca [ticket/15116] fix new errors after rc update
PHPBB3-15116
2017-03-25 17:40:15 -04:00
hanakin
f0e07ceb90 [ticket/15116] Fix admin errors
PHPBB3-15116
2017-03-25 17:37:58 -04:00
Marc Alexander
f36d5691c8 Merge pull request #4726 from hanakin/ticket/15115
[ticket/15115] Update CSS error checking Stylelintrc file
2017-03-25 16:48:05 +01:00
Michael Miday
84fdd1a5d4 [ticket/15115] Fix typo
PHPBB3-15115
2017-03-25 16:47:51 +01:00
Marc Alexander
f23ff335c7 Merge branch '3.2.x' 2017-03-25 16:37:37 +01:00
Marc Alexander
097f77dc66 Merge branch '3.2.x' 2017-03-25 11:30:35 +01:00
hanakin
74fcd60afe [ticket/15115] Update grads & single line rules
PHPBB3-15115
2017-03-24 20:33:24 -04:00
hanakin
1f224233c7 [ticket/15115] Fix test paths
PHPBB3-15115
2017-03-24 20:01:10 -04:00
hanakin
3173b46315 [ticket/15115] fix stylelintrc error
PHPBB3-15115
2017-03-24 20:01:10 -04:00
hanakin
79f865bd56 [ticket/15115] Fix errors
PHPBB3-15115
2017-03-24 20:01:10 -04:00
hanakin
ae85c9e91d [ticket/15115] minor order adjustments
PHPBB3-15115
2017-03-24 20:01:09 -04:00
hanakin
09dbd30541 [ticket/15115] Small tweak to orders
PHPBB3-15115
2017-03-24 20:01:09 -04:00
hanakin
3b67065d89 [ticket/15115] Update tests to run on proprer dir
PHPBB3-15115
2017-03-24 20:01:09 -04:00
hanakin
8f25f40321 [ticket/15115] Fix print.css errors
PHPBB3-15115
2017-03-24 20:01:09 -04:00
hanakin
9f5dc941dc [ticket/15115] Slight tweaks to rc and sorting file
PHPBB3-15115
2017-03-24 20:01:09 -04:00
hanakin
f1ad532a56 [ticket/15115] pkg.json must be in root
PHPBB3-15115
2017-03-24 20:01:09 -04:00
hanakin
c6f2f00a78 [ticket/15115] more prep for rebase
PHPBB3-15115
2017-03-24 20:01:09 -04:00
hanakin
8713c71776 [ticket/15115] prep for rebase
PHPBB3-15115
2017-03-24 20:01:09 -04:00
hanakin
ec71279a77 [ticket/15115] Fix errors
PHPBB3-15115
2017-03-24 20:01:09 -04:00
hanakin
2ca1402476 [ticket/15115] Update stylelintrc & pkg.json files
PHPBB3-15115
2017-03-24 20:01:09 -04:00
hanakin
6102a3f6ae [ticket/15115] Add .postcss-sorting.json file
allow for editors to auto sort on save
https://github.com/hudochenkov/postcss-sorting#usage

PHPBB3-15115
2017-03-24 20:01:09 -04:00
Tristan Darricau
e4c13af894 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15143] Fix display of version update in ACP
2017-03-24 23:20:08 +01:00
Tristan Darricau
1f1baf3e30 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15135] Correctly pass exception arguments and add back link again
  [ticket/15135] Parse language files in acp_extensions instead of md manager
2017-03-24 23:08:02 +01:00
Tristan Darricau
9b6fa7421b Merge branch '3.2.x'
* 3.2.x:
  [ticket/15137] Missed one language string change
  [ticket/15137] Global announcements can stick for a non-zero number of days
2017-03-21 16:29:38 +01:00
Tristan Darricau
d64726815c Merge branch '3.2.x'
* 3.2.x:
  [ticket/15102] Missing parameter calling version_check
2017-03-19 18:53:22 +01:00
Tristan Darricau
e0bdec4709 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14758] Improve the ACP Parameter wording
2017-03-19 18:49:59 +01:00
Tristan Darricau
7d0692eff3 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14806] Fix ACP test emails authentication failure
2017-03-19 18:45:39 +01:00
Tristan Darricau
0d701f0bd1 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14928] fixing valid stability %s
2017-03-19 18:39:10 +01:00
Tristan Darricau
e2701bd28b Merge branch '3.2.x'
* 3.2.x:
  [ticket/15123] modified return error codes
  [ticket/15123] modified language strings
  [ticket/15123] modified language string
  [ticket/15123] removed blank spaces
  [ticket/15123] add check before enable or disable extension
2017-03-19 18:17:45 +01:00
Tristan Darricau
c3f20c34bd Merge branch '3.2.x'
* 3.2.x:
  [ticket/15122] Add cache driver for memcached
2017-03-19 18:15:00 +01:00
Tristan Darricau
9c49aebfe9 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14974] make cookie notice configurable via language files
2017-03-19 18:11:43 +01:00
Tristan Darricau
d81afd4af1 Merge branch '3.2.x'
* 3.2.x:
  [ticket/13558] Change options prefix and add settings precautions.
  [ticket/13558] Make SSL context specific options more SMTP general
  [ticket/13558] Add smtp SSL context configuration options
2017-03-19 18:10:46 +01:00
Tristan Darricau
b8e9b0e934 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14844] Add CSS classes for strong and italics text to BBCodes
2017-03-19 18:02:02 +01:00
Marc Alexander
644182398f Merge pull request #4704 from hanakin/ticket/14095
[ticket/14095] Pure CSS loader...No Image
2017-03-19 17:27:47 +01:00
Marc Alexander
0dc61deb77 Merge branch '3.2.x' 2017-03-19 16:01:42 +01:00
Marc Alexander
adc2ea3f0c Merge branch '3.2.x' 2017-03-19 15:53:27 +01:00
Marc Alexander
218466b40e Merge branch '3.2.x' 2017-03-19 15:28:26 +01:00
Marc Alexander
811a58377e Merge branch '3.2.x' 2017-03-19 00:11:41 +01:00
Marc Alexander
02c584636f Merge branch '3.2.x' 2017-03-19 00:07:30 +01:00
Marc Alexander
6676aefa36 Merge branch '3.2.x' 2017-03-19 00:01:38 +01:00
Vishal Pandey
f18743eb50 [ticket/11515] Refactoring changes.
Refactoring the code as suggested.

PHPBB3-11515
2017-03-18 22:37:16 +05:30
Marc Alexander
7c59f084a6 Merge pull request #3937 from hanakin/ticket/14204
[ticket/14204]Fix form buttons to use consistent button codebase
2017-03-18 14:35:38 +01:00
Vishal Pandey
b98acb9409 [ticket/11515] Refactoring the patch.
Removing else conditions.

PHPBB3-11515
2017-03-14 17:19:41 +05:30
Vishal Pandey
4f71a75df1 [ticket/11515] Space between if and braces
Exactly one space between if and opening brace.

PHPBB3-11515
2017-03-14 02:27:18 +05:30
Vishal Pandey
1ba32e1b7a [ticket/11515] Change If...else statement struct
Modifications in if-else structure.

PHPBB3-11515
2017-03-14 02:16:18 +05:30
Vishal Pandey
9063556a57 [ticket/11515] Extra check after acquiring locks.
Add additional check to flock.php and db.php to ensure lock aquiring.

PHPBB3-11515
2017-03-14 00:57:28 +05:30
Oliver Schramm
b4478676b5 Merge pull request #4731 from Rishabh04-02/ticket/15120
[ticket/15120] Semicolon missing
2017-03-11 01:03:56 +01:00
Rishabh04-02
e077bd70a4 [ticket/15120] Semicolon missing
PHPBB3-15120
2017-03-10 11:00:46 +05:30
Marc Alexander
1eb364b8d3 Merge pull request #4627 from hanakin/ticket/14981
[ticket/14981] Update nomalize.css to v5.0
2017-03-09 22:22:03 +01:00
Marc Alexander
f7a58e0a6a Merge branch '3.2.x' 2017-03-09 22:11:59 +01:00
Marc Alexander
a96f55ec15 Merge branch 'ticket/14970' 2017-03-08 21:45:52 +01:00
Marc Alexander
18641e822e Merge branch '3.2.x' 2017-03-08 21:29:20 +01:00
Marc Alexander
173ca21ca1 Merge branch '3.2.x' 2017-03-08 21:27:15 +01:00
Marc Alexander
6ce33c2e69 Merge branch '3.2.x' 2017-03-08 21:24:51 +01:00
Marc Alexander
8921c3a3b8 Merge branch '3.2.x' 2017-03-08 21:21:21 +01:00
Marc Alexander
37ee22a0e6 Merge branch '3.2.x' 2017-03-08 21:09:40 +01:00
Marc Alexander
0097a575ec [ticket/14970] Also run stylelint against admin css
PHPBB3-14970
2017-03-08 20:59:16 +01:00
hanakin
978c2a6a28 [ticket/14095] Update admin.css
PHPBB3-14095
2017-02-23 17:44:05 -05:00
hanakin
e4df5ea53f [ticket/14095] Cleanup/simplify JS
PHPBB3-14095
2017-02-23 17:44:05 -05:00
hanakin
c9bf006a09 [ticket/14095] Add to all footers by default
PHPBB3-14095
2017-02-23 17:44:05 -05:00
hanakin
b19103c5e3 [ticket/14095] Use gmd animated svg spinner
PHPBB3-14095
2017-02-23 17:44:05 -05:00
hanakin
2872d6aa1f [ticket/14095] Update design a little
PHPBB3-14095
2017-02-23 17:44:05 -05:00
hanakin
072ac9fdca [ticket/14095] keyframes supported by all browsers
PHPBB3-14095
2017-02-23 17:44:05 -05:00
hanakin
920ea3018d [ticket/14095] Faster & simpler
PHPBB3-14095
2017-02-23 17:44:05 -05:00
hanakin
f02e755756 [ticket/14095] Display it properly on darkened bg
PHPBB3-14095
2017-02-23 17:44:05 -05:00
hanakin
8b9a5848f6 [ticket/14095] use the var
PHPBB3-14095
2017-02-23 17:44:05 -05:00
hanakin
3d7319d308 [ticket/14095] Add text for screen reader
PHPBB3-14095
2017-02-23 17:44:05 -05:00
hanakin
cf738f05e5 [ticket/14095] Swap out everything
PHPBB3-14095
2017-02-23 17:44:05 -05:00
Marc Alexander
54d60dc8b1 [ticket/14970] Fix issues noted by stylelint
PHPBB3-14970
2017-02-23 22:27:42 +01:00
Marc Alexander
967817143d Merge branch '3.2.x' 2017-02-23 22:21:25 +01:00
Marc Alexander
4365d85b38 Merge branch '3.2.x' 2017-02-22 21:54:10 +01:00
Marc Alexander
fa2d1eb8b1 [ticket/14970] Remove unneeded parameters from check-stylesheet.sh
PHPBB3-14970
2017-02-22 21:46:07 +01:00
Marc Alexander
ccd4aed3c8 [ticket/14970] Add stylelint-order as dependency
PHPBB3-14970
2017-02-22 21:46:07 +01:00
Marc Alexander
dcf83ce60b [ticket/14970] Update package.json definitions for bugs & homepage
PHPBB3-14970
2017-02-22 21:46:07 +01:00
Marc Alexander
6a8f20a788 [ticket/14970] Do not output node install output in stylelint
PHPBB3-14970
2017-02-22 21:46:07 +01:00
Marc Alexander
f872020c1a [ticket/14970] Try using newer node version
PHPBB3-14970
2017-02-22 21:46:07 +01:00
Marc Alexander
1be84e0233 [ticket/14970] Run stylelint on travis
PHPBB3-14970
2017-02-22 21:46:07 +01:00
Marc Alexander
47caa97ff2 [ticket/14970] Fixed issues picked up by stylelint
PHPBB3-14970
2017-02-22 21:46:07 +01:00
Marc Alexander
67bc5f93ce [ticket/14970] Add stylelint to package.json
PHPBB3-14970
2017-02-22 21:44:15 +01:00
Marc Alexander
c8dcf82b3e [ticket/14970] Ignore node_modules directory
PHPBB3-14970
2017-02-22 21:44:15 +01:00
Marc Alexander
9ac840f853 [ticket/14970] Add package.json for phpBB
PHPBB3-14970
2017-02-22 21:44:15 +01:00
Marc Alexander
d956ac418d Merge branch '3.2.x' 2017-02-22 11:09:30 +01:00
Marc Alexander
cfeea80a8c Merge branch '3.2.x' 2017-02-21 22:08:21 +01:00
Marc Alexander
7794696317 Merge branch '3.2.x' 2017-02-21 21:14:34 +01:00
Marc Alexander
e24d3a6ade Merge branch '3.2.x' 2017-02-19 21:47:10 +01:00
Marc Alexander
38c3ded1f8 Merge branch '3.2.x' 2017-02-19 10:06:45 +01:00
hanakin
1c85634778 [ticket/14204] Add new refactored code
PHPBB3-14204
2017-02-17 14:24:11 -05:00
hanakin
2b52a13a3f [ticket/14204] Remove old code
PHPBB3-14204
2017-02-17 14:23:48 -05:00
hanakin
c0b22b380f [ticket/14204] Add new classes
PHPBB3-14204
2017-02-17 14:23:14 -05:00
Marc Alexander
277fcba26e Merge branch '3.2.x' 2017-02-11 22:04:07 +01:00
Marc Alexander
30c8e40b9b Merge branch '3.2.x' 2017-02-11 21:48:42 +01:00
Tristan Darricau
f11fd2b726 Merge branch '3.2.x'
* 3.2.x:
  [ticket/13250] Use faster str_replace() instead of preg_replace()
  [ticket/13250] Replace slashes in cache file names
2017-02-05 18:11:28 +01:00
Tristan Darricau
95ad20c994 Merge branch '3.2.x'
* 3.2.x:
  [ticket/13601] Add core.acl_clear_prefetch_after event
2017-02-05 18:06:04 +01:00
Tristan Darricau
608cf8a38b Merge branch '3.2.x'
* 3.2.x:
  [ticket/15059] Preserve code line breaks and scroll overflow
2017-02-05 17:53:30 +01:00
Tristan Darricau
bb132cceb3 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15062] Update to Rhea version the CSS files
2017-02-05 17:38:16 +01:00
Máté Bartus
e906b2c609 Merge branch '3.2.x' 2017-01-29 14:43:15 +01:00
Máté Bartus
f890ba3913 Merge branch '3.2.x' 2017-01-29 14:34:13 +01:00
Marc Alexander
4e0e52d2f8 Merge branch '3.2.x' 2017-01-28 11:09:30 +01:00
Marc Alexander
5f6133ac7f Merge branch '3.2.x' 2017-01-27 19:00:37 +01:00
Marc Alexander
674584f319 Merge branch '3.2.x' 2017-01-25 10:06:30 +01:00
Tristan Darricau
a6eec874af Merge branch '3.2.x'
* 3.2.x:
  [ticket/11076] Also state min PHP version when visiting forum website
  [ticket/11076] Also add notice about unsupported version to installer
2017-01-22 23:35:40 +01:00
Tristan Darricau
51be7891e2 Merge branch '3.2.x'
* 3.2.x:
  Use SSL in version check for extension
2017-01-22 23:32:13 +01:00
Tristan Darricau
007bb90e05 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15036] Unlink install_config during functional testing
2017-01-22 23:30:25 +01:00
Tristan Darricau
8d0fe34a06 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14997] Fixing topiclist_row_topic_title_after position
2017-01-22 23:29:18 +01:00
Tristan Darricau
7f82d28f6f Merge branch '3.2.x'
* 3.2.x:
  [ticket/14968] Use earlier version as written in comment
  [ticket/14968] Update docblock and ensure method returns array
  [ticket/14968] Display possible upgrade on acp index and update page
  [ticket/14968] Add method for retrieving updates on current branch
2017-01-22 23:16:23 +01:00
Tristan Darricau
aa7ca1993d Merge branch '3.2.x'
* 3.2.x:
  [ticket/15006] Pass inherit settings to form and use correct button
2017-01-22 23:07:53 +01:00
Tristan Darricau
34866b2db1 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15015] Use correct explain string for enable email settings
2017-01-22 23:06:53 +01:00
Marc Alexander
574dac7667 Merge branch '3.2.x' 2017-01-22 23:02:47 +01:00
Marc Alexander
defcb1c46f Merge branch '3.2.x' 2017-01-22 23:00:12 +01:00
Marc Alexander
e0412085a6 Merge branch '3.2.x' 2017-01-21 11:56:21 +01:00
Tristan Darricau
a2a26f04e7 Merge branch '3.2.x'
* 3.2.x:
  [ticket/11611] Remove no longer used file for setting up git repository
2017-01-20 20:55:28 +01:00
Marc Alexander
5e06278f62 Merge branch '3.2.x' 2017-01-17 21:55:09 +01:00
Tristan Darricau
3d61d2b370 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15011] Output meaningful errors when validating all metadata
  [ticket/11076] State current and minimum required versions in old PHP notice
2017-01-15 18:16:45 +01:00
Marc Alexander
7973984821 Merge branch '3.2.x' 2017-01-15 14:06:13 +01:00
Tristan Darricau
51500977b2 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14989] Allow more admin-configurable schemes in post links
2017-01-15 12:36:29 +01:00
Tristan Darricau
6fe1605137 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14985] Added functional tests for BBCodes and smilies
  [ticket/14985] Decode HTML special chars in plain text columns
2017-01-15 12:08:06 +01:00
Tristan Darricau
567034e306 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15011] Fix 3.2.x merge
  [ticket/15011] Error not checked on metadata load failure
2017-01-15 12:01:26 +01:00
Tristan Darricau
84e6b87acd Merge branch '3.2.x'
* 3.2.x:
  [ticket/14984] Correct wrong arrow direction in PM inbox
2017-01-15 11:40:26 +01:00
Tristan Darricau
ba0aff0a40 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15002] Show topic icons in search results
2017-01-15 11:36:47 +01:00
Tristan Darricau
d9e6a06729 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14999] Correct Next PM Iconography
2017-01-15 11:27:03 +01:00
Tristan Darricau
891fa43442 Merge branch '3.2.x'
* 3.2.x:
  [ticket/15012] Use valid constructor in ftp_file_updater
2017-01-15 11:25:59 +01:00
Marc Alexander
d882911bf5 Merge branch '3.2.x' 2017-01-15 00:25:32 +01:00
Marc Alexander
605fd40914 Merge branch '3.2.x' 2017-01-15 00:13:50 +01:00
Marc Alexander
ad0e26d6ea Merge branch '3.2.x' 2017-01-14 14:59:30 +01:00
hanakin
82830baa16 [ticket/14981] Update nomalize.css to v5.0
PHPBB3-14981
2017-01-09 11:05:44 -05:00
Marc Alexander
6b2e277a27 Merge branch '3.2.x' 2017-01-08 20:53:56 +01:00
Tristan Darricau
fb5f33f190 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14971] Add on_page test with the string arguments
  [ticket/14971] Fix pagination PHP warning on PHP 7.1
2017-01-08 18:35:29 +01:00
Tristan Darricau
118824fd26 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14967] Add cookie notice migration fixing invalid previous one
2017-01-08 18:06:22 +01:00
Marc Alexander
1d0bb70f78 Merge pull request #4509 from hanakin/ticket/14865
[ticket/14865] Use Stylelint for managing CSS
2017-01-08 14:02:28 +01:00
Marc Alexander
a5384fa7a6 Merge branch '3.2.x' 2017-01-07 17:20:39 +01:00
Marc Alexander
8d58d1814f Merge branch '3.2.x' 2017-01-07 17:08:30 +01:00
Marc Alexander
663bdda53c Merge branch '3.2.x' 2017-01-07 00:20:22 +01:00
Marc Alexander
f8d5b3c417 Merge branch '3.2.x' 2017-01-07 00:18:43 +01:00
Marc Alexander
c0fb367d0a Merge branch '3.2.x' 2017-01-07 00:16:49 +01:00
Marc Alexander
710d3e921c Merge branch '3.2.x' 2017-01-06 15:29:45 +01:00
Marc Alexander
49b2269155 Merge branch '3.2.x' 2017-01-06 13:53:43 +01:00
Marc Alexander
a187c46072 Merge branch '3.2.x' 2017-01-06 01:14:13 +01:00
Marc Alexander
839fec4a0c Merge branch '3.2.x' 2017-01-06 01:12:43 +01:00
Marc Alexander
0543413626 Merge branch '3.2.x' 2017-01-06 01:06:10 +01:00
Marc Alexander
93567727fe Merge branch '3.2.x' 2017-01-04 22:16:47 +01:00
Marc Alexander
13d0549e59 Merge branch '3.2.x' 2017-01-04 21:50:47 +01:00
Marc Alexander
ee3cf0af0f Merge branch '3.2.x' 2017-01-04 21:07:36 +01:00
Marc Alexander
0f19c507e2 Merge branch '3.2.x' 2017-01-04 20:31:50 +01:00
Marc Alexander
ac1bf79904 Merge branch '3.2.x' 2017-01-04 20:12:03 +01:00
Marc Alexander
3fef34a541 Merge branch '3.2.x' 2017-01-04 17:48:56 +01:00
Marc Alexander
e5cc7b6631 Merge branch '3.2.x' 2017-01-04 17:44:15 +01:00
Marc Alexander
5c2b9e0e37 Merge branch '3.2.x' 2017-01-04 17:30:05 +01:00
Marc Alexander
b5ad21debc Merge branch '3.2.x' 2017-01-02 22:55:25 +01:00
Tristan Darricau
387d76aa09 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14953] Use ORDER_BY instead of incorrect ORDER for sql query
2017-01-02 22:47:51 +01:00
Tristan Darricau
bab707a00d Merge branch '3.2.x' 2016-12-30 10:22:24 +01:00
Tristan Darricau
c12b4320eb Merge branch '3.2.x' 2016-12-30 10:06:29 +01:00
Tristan Darricau
5ff0e4ec7d Merge branch '3.2.x' 2016-12-29 18:27:59 +01:00
Tristan Darricau
b81aaee17f Merge branch '3.2.x' 2016-12-29 18:18:54 +01:00
Marc Alexander
7eddb02568 Merge branch '3.2.x' 2016-12-28 22:24:12 +01:00
Marc Alexander
f3750fbfea Merge branch '3.2.x' 2016-12-28 22:15:29 +01:00
Marc Alexander
4ca90795af Merge branch '3.2.x' 2016-12-28 22:12:48 +01:00
Marc Alexander
27c5997e87 Merge branch '3.2.x' 2016-12-25 15:52:42 +01:00
Marc Alexander
a4911c59fb Merge branch '3.2.x' 2016-12-25 11:58:01 +01:00
Máté Bartus
c0493c2e81 Merge branch '3.2.x' 2016-12-24 12:53:20 +01:00
Marc Alexander
aba8a664ce Merge branch '3.2.x' 2016-12-20 20:27:42 +01:00
Marc Alexander
006961c8a4 Merge branch '3.2.x' 2016-12-18 21:10:29 +01:00
Marc Alexander
585195a646 Merge branch '3.2.x' 2016-12-18 21:07:27 +01:00
Marc Alexander
6d2f549417 Merge branch '3.2.x' 2016-12-18 21:01:22 +01:00
Marc Alexander
9e998e1830 Merge branch '3.2.x' 2016-12-18 20:50:59 +01:00
Marc Alexander
7da6b23ebe Merge branch '3.2.x' 2016-12-18 20:47:50 +01:00
Marc Alexander
1f7c2afbab Merge branch '3.2.x' 2016-12-18 20:40:51 +01:00
Marc Alexander
1ccc214afb Merge branch '3.2.x' 2016-12-18 19:34:19 +01:00
Máté Bartus
afd511674e Merge branch '3.2.x' 2016-12-18 19:09:12 +01:00
Marc Alexander
a56d25b437 Merge branch '3.2.x' 2016-12-18 16:23:04 +01:00
Marc Alexander
33f8ace91c Merge branch '3.2.x' 2016-12-18 15:46:57 +01:00
Marc Alexander
3848c7e8e6 Merge branch '3.2.x' 2016-12-18 10:44:21 +01:00
Marc Alexander
84d7371167 Merge branch '3.2.x' 2016-12-17 23:39:09 +01:00
Marc Alexander
20752848ff Merge branch '3.2.x' 2016-12-17 16:41:59 +01:00
Marc Alexander
36c6c1fa55 Merge branch '3.2.x' 2016-12-17 16:27:07 +01:00
Marc Alexander
2ddaf5dc2d Merge branch '3.2.x' 2016-12-17 15:58:19 +01:00
Marc Alexander
5dc31fd03d Merge branch '3.2.x' 2016-12-12 22:09:40 +01:00
Tristan Darricau
d1959cb731 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14887] ACP profile step one lang specific event
2016-12-11 20:43:42 +01:00
Tristan Darricau
41f4de72f5 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14889] Missing method in profile fields type interface
2016-12-11 20:41:45 +01:00
Tristan Darricau
84d6f2fafb Merge branch '3.2.x'
* 3.2.x:
  [ticket/14893] Fix undefined variable on reporting PM notification
2016-12-11 20:28:26 +01:00
Tristan Darricau
9744352053 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14893] Fix undefined variable on reporting PM notification
2016-12-11 20:26:45 +01:00
Tristan Darricau
58734f960d Merge branch '3.2.x'
* 3.2.x:
  [ticket/14895] Fix broken tests
  [ticket/14895] Fix issues in CLI classes
  [ticket/14895] Use SymfonyStyle in all CLI
  [ticket/14895] Use SymfonyIO styling
  [ticket/14895] CLI reparser:list should display proper list
2016-12-11 20:25:12 +01:00
Tristan Darricau
37f786b3b7 erge branch '3.2.x'
* 3.2.x:
  [ticket/14855] Update notification and PM alert bubbles
  [ticket/14855] Update notification and PM alert bubbles
  [ticket/14855] Update notification and PM alert bubbles
2016-12-11 20:16:35 +01:00
Tristan Darricau
cb3dd0bce5 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14901] Remove notice for extension without version check
2016-12-11 20:09:18 +01:00
Tristan Darricau
5374acd04c Merge branch '3.2.x'
* 3.2.x:
  [ticket/14906] Delete redundant sig key in user_cache_data array
2016-12-11 19:51:59 +01:00
Tristan Darricau
31dbdfe6b6 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14910] Fixes typo PLease to Please in EXTENSION_NOT_INSTALLED
2016-12-11 19:49:40 +01:00
Marc Alexander
e1b62c5f72 Merge branch '3.2.x' 2016-12-11 15:59:22 +01:00
Marc Alexander
ad4a61dcd5 Merge branch '3.2.x' 2016-12-10 23:02:14 +01:00
Marc Alexander
5ac8059bad Merge branch '3.2.x' 2016-12-10 13:38:05 +01:00
Marc Alexander
02769c3d7e Merge branch '3.2.x' 2016-12-10 00:34:14 +01:00
Marc Alexander
86257feb33 Merge branch '3.2.x' 2016-12-10 00:30:07 +01:00
Marc Alexander
e9ccc41336 Merge branch '3.2.x' 2016-12-09 20:48:17 +01:00
Máté Bartus
c5f5ab2c3f Merge branch '3.2.x' 2016-12-09 12:44:44 +01:00
Marc Alexander
1de4b6d260 Merge branch '3.2.x' 2016-12-08 22:00:45 +01:00
Máté Bartus
e5baca179d Merge branch '3.2.x' 2016-12-08 20:56:04 +01:00
Marc Alexander
101584bc0f Merge branch '3.2.x' 2016-12-08 20:32:19 +01:00
Marc Alexander
bc6ce4c4af Merge branch '3.2.x' 2016-12-06 15:18:02 +01:00
Marc Alexander
2a4d88f07f Merge branch '3.2.x' 2016-12-05 19:15:41 +01:00
Marc Alexander
e75fa8d834 Merge branch '3.2.x' 2016-12-05 18:13:36 +01:00
Tristan Darricau
874f31fc52 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14888] Missing check for disabled profile field types
2016-12-04 10:31:35 +01:00
Marc Alexander
e978a5e5ec Merge branch '3.2.x' 2016-12-03 16:02:00 +01:00
Marc Alexander
b85c8afabb Merge branch '3.2.x' 2016-12-03 15:54:16 +01:00
Tristan Darricau
c36ac7703a Merge branch '3.2.x'
* 3.2.x: (47 commits)
  [ticket/14492] Add user service to installer & only instantiate if needed
  [ticket/14492] Fix redirection to help phpBB page
  [ticket/14492] Encode URI components in systemdata for stats
  [ticket/14492] Always update the time the stats were sent
  [ticket/14492] Update versions in files
  [ticket/14492] Add missing event variable
  [ticket/14492] Don't explicitly pass data providers by refs
  [ticket/14492] Update phpBB version and fix miscellaneous code issues
  [ticket/14492] Install all extensions if 'all' is specified for extensions
  [ticket/14492] Checkout master if viglink tag does not exist for latest version
  [ticket/14492] Add language variables for updating extensions
  [ticket/14492] Prevent timeouts in install & update extensions tasks
  [ticket/14492] Use same list for checking if extension should be updated
  [ticket/14492] Add missing config to schema_data.sql
  [ticket/14492] Unify version check for installing default extensions
  [ticket/14492] Use extension manager instead of finder and add try/catch
  [ticket/14492] Checkout viglink for each version depending on tags
  [ticket/14492] Remove unused use statement
  [ticket/14492] Redirect to help phpBB page after installation
  [ticket/14492] Properly retrieve version updating from
  ...
2016-12-03 14:42:32 +01:00
Tristan Darricau
e064fd0d6d Merge branch '3.2.x'
* 3.2.x:
  [ticket/14733] Make sure detect_algorithm() works correctly and add tests
  [ticket/14733] Extend passwords driver_interface in rehashable_driver_interface
  [ticket/14733] Use new interface to preserve backwards compatibility
  [ticket/14733] Use default cost factor in bcrypt constructor
  [ticket/14733] Support increasing hashing cost factor
2016-12-03 14:08:01 +01:00
Tristan Darricau
054d0d158b Merge branch '3.2.x'
* 3.2.x:
2016-12-03 13:32:43 +01:00
Tristan Darricau
97c6b88a1c Merge branch '3.2.x'
* 3.2.x:
  [ticket/9590] Update permissions with correct permission role
  [ticket/9590] Correctly update submit size and replace all forum_id[]
  [ticket/9590] Further deduplicate code for form data
  [ticket/9590] Preserve selected forums after previous page redirect
  [ticket/9590] Support ajax submit of permissions for specific forums
  [ticket/9590] Correctly set roles and refresh page using POST
  [ticket/9590] Submit permissions form in chunks when using "Apply all"
2016-12-03 13:17:07 +01:00
Tristan Darricau
4ae6cb9789 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14736] Reset role dropdown when modifying permissions
2016-12-03 13:03:18 +01:00
Tristan Darricau
6aa4f0e9d1 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14884] Remove duplicate span from navbar_header
2016-12-03 12:42:36 +01:00
Tristan Darricau
51ec271748 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14885] Use \n instead of \r for output_handler messages
  [ticket/14885] Add a line break when writing to the migrator output file
2016-12-03 12:36:26 +01:00
Tristan Darricau
b7061af193 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14875] Add raw_variable() to request mock
  [ticket/14875] Move raw_variable() method to request_interface
  [ticket/14875] Use raw_variable() method in _variable() to get raw data
  [ticket/14875] Add method for raw input to request and add to installer
  [ticket/14875] Add method for untrimmed input to ajax iohandler
2016-12-03 12:33:05 +01:00
Marc Alexander
19d136f62d Merge branch '3.2.x' 2016-12-02 16:39:56 +01:00
Marc Alexander
92b6991d0e Merge branch '3.2.x' 2016-12-02 11:50:56 +01:00
Marc Alexander
58a7ac9b5b Merge branch '3.2.x' 2016-12-02 11:27:00 +01:00
Marc Alexander
2019d750c4 Merge branch '3.2.x' 2016-12-01 13:23:11 +01:00
Marc Alexander
ece91e92c3 Merge branch '3.2.x' 2016-12-01 11:41:25 +01:00
Marc Alexander
08209af201 Merge branch '3.2.x' 2016-11-27 20:49:25 +01:00
Marc Alexander
7fb6d3e414 Merge branch '3.2.x' 2016-11-27 20:45:14 +01:00
Marc Alexander
79bc8752ea Merge branch '3.2.x' 2016-11-26 16:41:34 +01:00
hanakin
e79e0efc9e [ticket/14865] Mask remaining issues with print
PHPBB3-14865
2016-11-25 00:28:09 +01:00
hanakin
58d50129ce [ticket/14865] Mask remaining issues in responsive
PHPBB3-14865
2016-11-25 00:27:46 +01:00
hanakin
4d5b955a61 [ticket/18465] Fix badge color
PHPBB3-14865
2016-11-25 00:26:53 +01:00
hanakin
52ddce75f6 [ticket/14865] Remove duplicate from responsive
PHPBB3-14865
2016-11-25 00:26:17 +01:00
hanakin
154552dfa4 [ticket/14865] Fix comments in responsive
PHPBB3-14865
2016-11-25 00:25:41 +01:00
hanakin
6010bc298e [ticket/14865] Mask remaining issues with tweaks
PHPBB3-14865
2016-11-25 00:24:52 +01:00
Tristan Darricau
fd6de052ef Merge branch '3.2.x'
* 3.2.x:
  [ticket/14867] Revert back to twig 1.26.* and update dependencies
2016-11-24 14:23:24 +01:00
Tristan Darricau
28ef544521 Merge branch '3.2.x'
* 3.2.x:
  [ticket/9211] Use different icon for link subforum in forum legend
2016-11-24 14:16:40 +01:00
Tristan Darricau
ce1f5eeffd Merge branch '3.2.x'
* 3.2.x:
  [ticket/14750] Remove html5 invalid attributes from attachment file input
2016-11-24 14:15:32 +01:00
hanakin
fc056cf717 [ticket/14865] Remove spacer overqualified div
PHPBB3-14865
2016-11-24 13:32:14 +01:00
hanakin
298353146d [ticket/14865] Mask remaining issues with links
PHPBB3-14865
2016-11-24 13:32:13 +01:00
hanakin
53b82f28f7 [ticket/14865] Mask remaining issues with forms
PHPBB3-14865
2016-11-24 13:32:11 +01:00
hanakin
628005e730 [ticket/14865] Mask remaining issues with cp
PHPBB3-14865
2016-11-24 13:32:09 +01:00
hanakin
507428e5dc [ticket/14865] Mask remaining issues with contnet
PHPBB3-14865
2016-11-24 13:32:09 +01:00
hanakin
cc258f09eb [ticket/14865] Move colors from content to colours
PHPBB3-14865
2016-11-24 13:32:08 +01:00
hanakin
abcc7efff1 [ticket/14865] Mask remaining issues with common
PHPBB3-14865
2016-11-24 13:32:07 +01:00
hanakin
30d3d5c696 [ticket/14865] Remove duplicate code from common
PHPBB3-14865
2016-11-24 13:32:07 +01:00
hanakin
e69f9e5847 [ticket/14865] Mask remaining issues with colours
PHPBB3-14865
2016-11-24 13:32:06 +01:00
hanakin
80e5f6f187 [ticket/14865] Remove duplicate code from colours
PHPBB3-14865
2016-11-24 13:30:19 +01:00
hanakin
c5fa60cd78 [ticket/14865] Mask remaining issue with buttons
PHPBB3-14865
2016-11-24 13:30:19 +01:00
hanakin
7c85e16c40 [ticket/14865] Mask remaining issues with bidi
PHPBB3-14865
2016-11-24 13:30:19 +01:00
hanakin
9dcd206ab3 [ticket/14865] Standardize comments a little
PHPBB3-14865
2016-11-24 13:30:19 +01:00
hanakin
452261e806 [ticket/14865] Fix all fixable linting issues
PHPBB3-14865
2016-11-24 13:30:19 +01:00
hanakin
39572a3aa0 [ticket/14865] Add stylelint file
PHPBB3-14865
2016-11-24 13:30:19 +01:00
Marc Alexander
8b5806c002 Merge branch '3.2.x' 2016-11-20 15:23:23 +01:00
Marc Alexander
dcd8540f3c Merge branch '3.2.x' 2016-11-20 13:18:34 +01:00
Marc Alexander
5474aec55f Merge branch '3.2.x' 2016-11-20 12:58:04 +01:00
Marc Alexander
7aba483d61 Merge branch '3.2.x' 2016-11-20 09:46:37 +01:00
Marc Alexander
82960414f7 Merge branch '3.2.x' 2016-11-17 09:56:59 +01:00
Marc Alexander
32667f6290 Merge branch '3.2.x' 2016-11-16 21:57:49 +01:00
Marc Alexander
d5a6ae7290 Merge branch '3.2.x' 2016-11-16 21:53:33 +01:00
Tristan Darricau
462fb7b296 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14716] Update dependencies to latest versions
2016-11-14 21:36:34 +01:00
Tristan Darricau
361ec09956 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14831] Rename migration and replace preg_replace() with simpler methods
  [ticket/14831] Compare depends_on for migrations and remove prefixless names
  [ticket/14831] Add migration for deduplicating entries and fix typo
  [ticket/14831] Add method for getting valid migration name
  [ticket/14831] Fall back to possible migration names instead of adding prefix
  [ticket/14831] Make sure migrations always start with backslash
2016-11-14 21:22:16 +01:00
Marc Alexander
3bde3cf45a Merge branch '3.2.x' 2016-11-13 21:29:38 +01:00
Marc Alexander
fa9182c133 Merge branch '3.2.x' 2016-11-12 19:41:20 +01:00
Marc Alexander
ccf06c25a5 Merge branch '3.2.x' 2016-11-12 19:27:12 +01:00
Marc Alexander
221a8beb07 Merge branch '3.2.x' 2016-11-12 17:14:42 +01:00
Marc Alexander
5451c7fea9 Merge branch '3.2.x' 2016-11-12 17:10:39 +01:00
Marc Alexander
90cd9fc18f Merge branch '3.2.x' 2016-11-12 16:17:34 +01:00
Marc Alexander
577fb0c39c Merge branch '3.2.x' 2016-11-12 13:55:53 +01:00
Marc Alexander
0759b591fb Merge branch '3.2.x' 2016-11-12 13:47:46 +01:00
Marc Alexander
6b6b740dcb Merge branch '3.2.x' 2016-11-12 13:44:36 +01:00
Tristan Darricau
3364a54f39 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14795] Use maximum topic views instead of adding up views in merge
2016-11-06 15:47:56 +01:00
Tristan Darricau
79dd364b9c Merge branch '3.2.x'
* 3.2.x:
  [ticket/11483] Add tests for generating user act key on force reactivate
  [ticket/11483] Generate user act key if database entry is empty
2016-11-06 15:42:05 +01:00
Marc Alexander
0cb72ed6c5 Merge branch '3.2.x' 2016-11-05 21:36:27 +01:00
Máté Bartus
65d09b1dce Merge branch '3.2.x' 2016-11-02 10:02:09 +01:00
Marc Alexander
890fe72e48 Merge branch '3.2.x' 2016-10-28 21:06:54 +02:00
Tristan Darricau
c563fe3cc5 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14818] Optimize generate_board_url function
2016-10-24 23:08:11 +02:00
Tristan Darricau
e1234a92be Merge branch '3.2.x'
* 3.2.x:
  [ticket/14831] Optimize code construction
  [ticket/14831] Add more tests against UCP modules
  [ticket/14831] Add more tests, better name for $e placeholder
  [ticket/14831] Do not throw exception on the module existence checking
  [ticket/14831] Fix module migrator tool
2016-10-24 22:24:28 +02:00
Marc Alexander
773099d761 Merge branch '3.2.x' 2016-10-24 18:21:19 +02:00
Marc Alexander
84db7a66ee Merge branch '3.2.x' 2016-10-23 11:48:59 +02:00
Máté Bartus
e030ddc1b2 Merge branch '3.2.x' 2016-10-20 18:35:40 +02:00
Marc Alexander
47b6e7edf4 Merge branch '3.2.x' 2016-10-12 21:44:07 +02:00
Marc Alexander
8f4ea4c495 Merge branch '3.2.x' 2016-10-10 21:39:21 +02:00
Marc Alexander
54ca672dde Merge branch '3.2.x' 2016-10-09 15:58:33 +02:00
Tristan Darricau
d94c03d084 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14802] Add test for empty/blank lines in poll options
  [ticket/14802] Empty/blank lines should not be additional poll options
2016-10-03 20:21:46 +02:00
Tristan Darricau
10ae96c9b6 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14786] Add mcp_forum_actions_before/after events
2016-10-02 18:13:13 +02:00
Tristan Darricau
3375ce16eb Merge branch '3.2.x'
* 3.2.x:
  [ticket/14787] Add 1 more parameter to the core.search_modify_url_parameters
2016-10-02 18:08:26 +02:00
Tristan Darricau
2602c2d29c Merge branch '3.2.x'
* 3.2.x:
  [ticket/14801] Highlighting utf8 strings in search results
2016-10-02 17:44:59 +02:00
Tristan Darricau
bd71c3d8e2 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14789] Remove obsolete check_form_key() and add missing hashes
  [ticket/14789] Move form key checks to where they actually do something
2016-10-02 17:18:35 +02:00
Tristan Darricau
a0c508b926 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14805] Ignore platform requirements while building packages
2016-10-02 17:14:58 +02:00
Marc Alexander
c30a2b27a5 Merge branch '3.2.x' 2016-10-01 16:58:15 +01:00
Marc Alexander
89f3e5d29e Merge branch '3.2.x' 2016-10-01 11:07:46 +01:00
Marc Alexander
0b1d7cc53f Merge branch '3.2.x' 2016-09-30 21:49:41 +01:00
Tristan Darricau
ab84605991 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14799] purge_notifications() should not leave open transactions.
2016-09-28 20:58:39 +02:00
Tristan Darricau
c4812a2d83 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14797] Support PHP 7.1 and clearly state support for latest versions
2016-09-25 17:26:32 +02:00
Tristan Darricau
a713f5159a Merge branch '3.2.x'
* 3.2.x:
  [ticket/10809] Reflect MSSQL removal in docs files
  [ticket/10809] Remove MSSQL support
2016-09-25 17:19:18 +02:00
Marc Alexander
e2431502d1 Merge branch '3.2.x' 2016-09-24 21:45:36 +02:00
Marc Alexander
531d23935a Merge branch '3.2.x' 2016-09-24 13:04:27 +02:00
Marc Alexander
62e288bc90 Merge branch '3.2.x' 2016-09-24 11:50:20 +02:00
Tristan Darricau
f9b7bbafac Merge branch '3.2.x'
* 3.2.x:
  [ticket/14484] Remove duplicate methods and no longer needed calls
  [ticket/14484] Remove invalid code caused by merge conflict
  [ticket/14484] Properly enable extensions in UI tests
  [ticket/14484] Move facebook/webdriver back to tests dir composer.json
  [ticket/14484] Move facebook webdriver to main composer.json
2016-09-24 10:31:48 +02:00
Marc Alexander
1b57fed387 Merge branch '3.2.x' 2016-09-24 10:28:42 +02:00
Marc Alexander
8b17274d7f Merge branch '3.2.x' 2016-09-24 10:04:38 +02:00
Marc Alexander
173adc1053 Merge branch '3.2.x' 2016-09-24 09:56:33 +02:00
Marc Alexander
4fffe2eb4d Merge branch '3.2.x' 2016-09-24 09:42:21 +02:00
Marc Alexander
f79aabb866 Merge branch '3.2.x' 2016-09-24 09:36:08 +02:00
Marc Alexander
b15517e700 Merge branch '3.2.x' 2016-09-23 21:10:29 +02:00
Marc Alexander
bbb1ff325b Merge branch '3.2.x' 2016-09-23 20:55:24 +02:00
Marc Alexander
1b82a9d608 Merge branch '3.2.x' 2016-09-22 21:26:38 +02:00
Marc Alexander
8c53b369d4 Merge branch '3.2.x' 2016-09-22 21:24:02 +02:00
Máté Bartus
a94c4ce0dd Merge branch '3.2.x'
* 3.2.x:
  [ticket/14791] Get form tokens from correct button in search test base
2016-09-22 10:16:22 +02:00
Tristan Darricau
9df5a7e7da Merge branch '3.2.x'
* 3.2.x:
  [ticket/14787] Add more parameters to the core.search_modify_url_parameters
2016-09-18 21:25:19 +02:00
Tristan Darricau
3c2b7d026b Merge branch '3.2.x'
* 3.2.x:
  [ticket/14789] Add form tokens to tests and uncomment add_form_key
  [ticket/14789] Add link hashes and form tokens to all acp links/buttons
2016-09-18 21:17:18 +02:00
Tristan Darricau
b12ab19ecd Merge branch '3.2.x'
* 3.2.x:
  [ticket/14788] Update CREDITS.txt
2016-09-18 13:28:42 +02:00
Marc Alexander
3fdeb74e02 Merge branch '3.2.x' 2016-09-18 13:08:55 +02:00
Marc Alexander
ce3d46c19a Merge branch '3.2.x' 2016-09-17 16:27:57 +02:00
Marc Alexander
ea4a0e3439 Merge branch '3.2.x' 2016-09-17 13:00:24 +02:00
Marc Alexander
d21d2bca87 Merge branch '3.2.x' 2016-09-17 08:54:08 +02:00
Marc Alexander
ca7fdf4e5b Merge branch '3.2.x' 2016-09-17 00:05:13 +02:00
Andreas Fischer
4c54237e3e Merge branch '3.2.x'
* 3.2.x:
  [ticket/14782] Use the $select variable in "Your Posts" search
2016-09-15 19:30:55 +02:00
Marc Alexander
53d96f66e5 Merge branch '3.2.x' 2016-09-14 20:51:42 +02:00
Marc Alexander
c571d99c0f Merge pull request #4441 from Nicofuma/ticket/14769
[ticket/14769] Fix CLI installer configuration compatibility with SF 3
2016-09-13 21:39:59 +02:00
Tristan Darricau
6d7d7d4c0f Revert "Deploy on Heroku"
This reverts commit 89842299d7.
2016-09-13 01:04:26 +02:00
Tristan Darricau
89842299d7 Deploy on Heroku 2016-09-13 01:01:01 +02:00
Tristan Darricau
d9aea27c75 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14774] Support partial downloads of attachments
2016-09-11 13:59:08 +02:00
Tristan Darricau
b8260cadf0 [ticket/14769] Fix CLI installer configuration compatibility with SF 3
PHPBB3-14769
2016-09-11 13:41:33 +02:00
Marc Alexander
6f31d334e0 Merge branch '3.2.x' 2016-09-11 11:08:41 +02:00
Marc Alexander
38866f927c Merge branch '3.2.x' 2016-09-09 23:39:25 +02:00
Marc Alexander
0fdb72dd29 Merge branch '3.2.x' 2016-09-07 21:25:35 +02:00
Marc Alexander
66e481c501 Merge branch '3.2.x' 2016-09-06 21:50:28 +02:00
Marc Alexander
d13ef57ff4 Merge branch '3.2.x' 2016-09-06 21:45:52 +02:00
Marc Alexander
b8423ed6ff Merge branch '3.2.x' 2016-09-04 17:47:57 +02:00
Tristan Darricau
a94cb72b8e Merge branch '3.2.x'
* 3.2.x:
  [ticket/14763] Specify correct class for local files class type
2016-09-03 14:54:05 +02:00
Marc Alexander
0fd39234eb Merge pull request #4431 from VSEphpbb/ticket/14761
[ticket/14761] myisam tests should be setup on PHP 5.5 (5.4 removed)
2016-09-02 19:26:28 +02:00
Matt Friedman
55d927493c [ticket/14761] myisam should be setup on PHP 5.5 (5.4 removed)
PHPBB3-14761
2016-09-01 20:35:35 -07:00
Tristan Darricau
c61465dbe7 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14727] Event core.search_modify_submit_parameters

 Conflicts:
	phpBB/search.php
2016-09-01 16:25:13 +02:00
Tristan Darricau
e6be2e558f Merge branch '3.2.x'
* 3.2.x:
  [ticket/10961] Send HTTP 403 when applicable
2016-09-01 14:54:06 +02:00
Tristan Darricau
0c91160856 Merge pull request #4412 from Senky/ticket/14573
[ticket/14573] Extend breadcrumb to support more pages

* Senky/ticket/14573:
  [ticket/14573] Add Whoisonline breadcrumbs
  [ticket/14573] Add Memberlist breadcrumbs
  [ticket/14573] Add MCP breadcrumbs
  [ticket/14573] Add UCP breadcrumbs
  [ticket/14573] Add Search breadcrumbs
  [ticket/14573] Add FAQ breadcrumbs
2016-09-01 14:50:15 +02:00
Marc Alexander
7a9f8ddee9 Merge branch '3.2.x' 2016-08-31 21:42:15 +02:00
Tristan Darricau
9e53c7e0c3 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14673] Changes wrong language variable in mcp_forum
2016-08-31 19:08:27 +02:00
Tristan Darricau
7919cf7462 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14588] fix header search rtl
2016-08-31 19:04:28 +02:00
Marc Alexander
a08b078440 Merge branch '3.2.x' 2016-08-28 15:54:33 +02:00
Marc Alexander
a78a334a0d Merge branch '3.2.x' 2016-08-28 15:45:10 +02:00
Marc Alexander
e740552bfb Merge branch '3.2.x' 2016-08-28 00:12:57 +02:00
Crizzo
aaf45d12ec Merge branch '3.2.x' 2016-08-27 16:20:15 +02:00
Andreas Fischer
6d12b454cb Merge branch '3.2.x'
* 3.2.x:
  [ticket/14749] Adds missing } in mcp_forum.html to TOPIC_DELETED
2016-08-22 22:05:52 +02:00
Marc Alexander
34b3e4b8e2 Merge branch '3.2.x' 2016-08-21 19:04:20 +02:00
Marc Alexander
229816ebe8 Merge branch '3.2.x' 2016-08-21 18:57:37 +02:00
Marc Alexander
c3681a259c Merge branch '3.2.x' 2016-08-21 10:07:40 +02:00
Marc Alexander
8783ede6e0 Merge branch '3.2.x' 2016-08-21 09:51:28 +02:00
Marc Alexander
f10d68c07e Merge branch '3.2.x' 2016-08-21 09:45:02 +02:00
Marc Alexander
dc2777e769 Merge branch '3.2.x' 2016-08-16 21:02:56 +02:00
Marc Alexander
9dbe47ba8e Merge branch '3.2.x' 2016-08-16 20:49:36 +02:00
Jakub Senko
6260beb3f2 [ticket/14573] Add Whoisonline breadcrumbs
PHPBB3-14573
2016-08-15 18:12:20 +02:00
Jakub Senko
51a744fda5 [ticket/14573] Add Memberlist breadcrumbs
PHPBB3-14573
2016-08-15 18:09:23 +02:00
Jakub Senko
10e7c88877 [ticket/14573] Add MCP breadcrumbs
PHPBB3-14573
2016-08-15 17:35:32 +02:00
Jakub Senko
5292f9c091 [ticket/14573] Add UCP breadcrumbs
PHPBB3-14573
2016-08-15 17:34:33 +02:00
Jakub Senko
fc0714721e [ticket/14573] Add Search breadcrumbs
PHPBB3-14573
2016-08-15 17:25:22 +02:00
Jakub Senko
3870b221d6 [ticket/14573] Add FAQ breadcrumbs
PHPBB3-14573
2016-08-15 17:20:20 +02:00
Marc Alexander
0df1d39c1f Merge branch '3.2.x' 2016-08-13 23:14:11 +02:00
Marc Alexander
c8bdd0a67c Merge pull request #4232 from CHItA/ticket/14542
[ticket/14542] Move cron to controller
2016-08-08 09:44:52 +02:00
Máté Bartus
8c137a5658 [ticket/14542] Add missing dockblocks
PHPBB3-14542
2016-08-07 22:03:21 +02:00
Marc Alexander
5acb831f19 Merge pull request #4282 from CHItA/ticket/14584
[ticket/14548] Move deprecated globals and functions
2016-08-07 21:02:17 +02:00
Máté Bartus
447f094871 [ticket/14542] Fix tests
PHPBB3-14542
2016-08-05 23:03:35 +02:00
Máté Bartus
6eecc26e31 [ticket/14542] Move cron to controller
PHPBB3-14542
2016-08-05 22:50:54 +02:00
Máté Bartus
6ca10fc85a Merge branch '3.2.x' 2016-08-05 21:29:27 +02:00
Marc Alexander
e2207c65e7 Merge branch '3.2.x' 2016-08-05 20:18:54 +02:00
Marc Alexander
d74e85ffd9 Merge branch '3.2.x' 2016-08-04 20:47:33 +02:00
Marc Alexander
81f0d912b0 Merge branch '3.2.x' 2016-08-03 22:21:47 +02:00
Marc Alexander
94e6479c93 Merge branch '3.2.x' 2016-08-03 21:54:38 +02:00
Marc Alexander
da15d435bf Merge branch '3.2.x' 2016-08-01 20:42:16 +02:00
Marc Alexander
4cd89dcda7 Merge branch '3.2.x' 2016-07-31 15:39:10 +02:00
Oliver Schramm
46045eb9b0 Merge branch '3.2.x' 2016-07-30 23:23:00 +02:00
Máté Bartus
832722417a Merge pull request #4350 from marc1706/ticket/14670
[ticket/14670] Use symfony 3.x in master branch
2016-07-29 17:51:50 +02:00
Máté Bartus
e9f28ea22c [ticket/14584] Change all to be removed tags to 4.0
PHPBB3-14584
2016-07-29 17:48:26 +02:00
Máté Bartus
54e5d41359 [ticket/14548] Move deprecated globals and functions
PHPBB3-14584
2016-07-29 17:48:00 +02:00
Andreas Fischer
0dc13c720c Merge branch '3.2.x'
* 3.2.x:
  [ticket/14652] Fix typos in core.index_modify_birthdays_list vars descriptions
2016-07-29 09:41:51 +02:00
Marc Alexander
224b0bb8d2 [ticket/14670] Set shared flag instead of defining prototype scope
The prototype scope was deprecated in symfony 2.8 and removed in 3.0.

PHPBB3-14670
2016-07-24 21:52:05 +02:00
Marc Alexander
402292cb07 [ticket/14670] Do not backup static attributes
This seems to cause issues with the UI tests as the backed up
static web driver does not seem to be properly initialized.

PHPBB3-14670
2016-07-24 19:30:02 +02:00
Marc Alexander
6d2a9805db Merge branch '3.2.x' 2016-07-24 19:15:53 +02:00
Marc Alexander
e1f9c946ef [ticket/14670] Modify service definition for RouterListener
PHPBB3-14670
2016-07-23 17:54:45 +02:00
Marc Alexander
d66e8cba23 [ticket/14670] Fix typo in .travis.yml
PHPBB3-14670
2016-07-23 17:13:54 +02:00
Marc Alexander
74abce31bc [ticket/14670] Remove usage of prototype scope in tests
In this specific case, the mock container builder is used which does not
even support setting the scope.

PHPBB3-14670
2016-07-23 17:13:54 +02:00
Marc Alexander
b93bdfb1c3 [ticket/14670] Add new travis builds and PHP 5.5 requirement
PHPBB3-14670
2016-07-23 17:13:54 +02:00
Marc Alexander
42b6dc38c5 [ticket/14670] Fix incompatibilities with container definitions
PHPBB3-14670
2016-07-23 17:13:54 +02:00
Marc Alexander
59a228f7cd [ticket/14670] Use symfony 3.1 in master branch
Removed sami as it doesn't have a version compatible
with symfony 3.x.

PHPBB3-14670
2016-07-23 17:13:54 +02:00
Máté Bartus
96617e8e46 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14717] Quote strings beginning with @ or % in yaml definitions
2016-07-23 16:57:56 +02:00
Marc Alexander
0628735f57 Merge branch '3.2.x' 2016-07-21 22:05:23 +02:00
Marc Alexander
83fadbe697 Merge branch '3.2.x' 2016-07-20 20:25:08 +02:00
Máté Bartus
0336bef2d9 Merge branch '3.2.x' 2016-07-19 19:24:52 +02:00
Máté Bartus
5760099618 Merge branch '3.2.x' 2016-07-19 10:20:21 +02:00
Marc Alexander
c5bfcb4c48 Merge branch '3.2.x' 2016-07-18 20:40:41 +02:00
Marc Alexander
c14d7d719e Merge branch '3.2.x' 2016-07-17 22:10:12 +02:00
Marc Alexander
cff33d6c39 Merge branch '3.2.x' 2016-07-17 17:52:09 +02:00
Marc Alexander
7eb8d8fcae Merge branch '3.2.x' 2016-07-17 15:57:33 +02:00
Marc Alexander
8760a1fd51 Merge branch '3.2.x' 2016-07-17 15:54:19 +02:00
Marc Alexander
ae6e5a6c20 Merge branch '3.2.x' 2016-07-17 15:52:46 +02:00
Marc Alexander
3816b5e54b Merge branch '3.2.x' 2016-07-17 11:06:54 +02:00
Marc Alexander
007aeb5dec Merge branch '3.2.x' 2016-07-17 11:05:34 +02:00
Marc Alexander
9227ade5e3 Merge branch '3.2.x' 2016-07-17 10:56:59 +02:00
Crizzo
95124db4c9 Merge branch '3.2.x' 2016-07-16 23:45:54 +02:00
Marc Alexander
1c20bc33a5 Merge branch '3.2.x' 2016-07-16 21:25:53 +02:00
Marc Alexander
305efd648b Merge branch '3.2.x' 2016-07-16 19:49:31 +02:00
Marc Alexander
4e840fee16 Merge branch '3.2.x'
Conflicts:
	phpBB/composer.lock
2016-07-14 20:23:27 +02:00
Marc Alexander
96406f9b2e Merge branch '3.2.x' 2016-07-14 20:14:30 +02:00
Marc Alexander
c880d73fe8 Merge branch '3.2.x' 2016-07-14 20:11:54 +02:00
Andreas Fischer
c2860cbabb Merge branch '3.2.x'
* 3.2.x:
  [ticket/14665] Remove invalid syntax in report_id_auto_increment migration
2016-07-10 20:06:48 +02:00
Andreas Fischer
a4f575c322 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14689] Build API docs for 3.2.x
2016-07-08 14:12:52 +02:00
Marc Alexander
113738fce9 Merge branch '3.2.x' 2016-07-07 19:20:42 +02:00
Marc Alexander
cd45922186 Merge branch '3.2.x' 2016-07-06 19:30:26 +02:00
Marc Alexander
fc8a7013d6 Merge branch '3.2.x' 2016-07-06 19:24:08 +02:00
Marc Alexander
983d9a629b Merge branch '3.2.x' 2016-07-06 19:19:21 +02:00
Marc Alexander
46aa5e65e4 Merge branch '3.2.x' 2016-06-28 21:10:18 +02:00
Marc Alexander
c9716a8b63 Merge branch '3.2.x' 2016-06-27 22:06:08 +02:00
Tristan Darricau
fe9df5b76b [Release 3.2.0-RC1] Restore versions in master
This reverts commit 37cf178c0c.
2016-06-27 21:59:53 +02:00
Tristan Darricau
926d55bc02 Merge branch '3.2.x'
* 3.2.x:
  [Release 3.2.0-RC1] Update version to 3.2.0-RC2-dev
2016-06-27 21:58:43 +02:00
Tristan Darricau
f9d251943b Merge branch '3.2.x'
* 3.2.x:
  [prep-release-3.2.0-RC1] Update changelog
  [prep-release-3.2.0-RC1] Add migration
  [prep-release-3.2.0-RC1] Update schema.json
  [prep-release-3.2.0-RC1] Update version to 3.2.0-RC1
2016-06-27 21:56:21 +02:00
Marc Alexander
8bdbca3f52 Merge branch '3.2.x' 2016-06-26 10:27:26 +02:00
Marc Alexander
155d24107a Merge branch '3.2.x'
Conflicts:
	phpBB/composer.lock
2016-06-20 21:24:46 +02:00
Máté Bartus
1dc622e921 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14660] Remove redundant empty line in ucp_profile.php
2016-06-20 10:14:18 +02:00
Marc Alexander
871a97b4b3 Merge branch '3.2.x' 2016-06-19 22:33:37 +02:00
Marc Alexander
9e7f5e9d86 Merge branch '3.2.x' 2016-06-19 22:07:44 +02:00
Marc Alexander
f9a38cafb2 Merge branch '3.2.x'
Conflicts:
	phpBB/language/en/install.php
2016-06-19 18:57:52 +02:00
Marc Alexander
9b748631ed Merge branch '3.2.x' 2016-06-19 18:38:25 +02:00
Marc Alexander
f8978f23a6 Merge branch '3.2.x' 2016-06-19 18:25:37 +02:00
Marc Alexander
a6863249a1 Merge branch '3.2.x' 2016-06-19 18:07:55 +02:00
Marc Alexander
2a0c4a8fa9 Merge branch '3.2.x' 2016-06-19 17:55:37 +02:00
Marc Alexander
74f36bc1c9 Merge branch '3.2.x' 2016-06-19 17:49:10 +02:00
Marc Alexander
ff2c9202bc Merge branch '3.2.x' 2016-06-19 17:46:15 +02:00
Marc Alexander
f1306cf9ff Merge branch '3.2.x' 2016-06-19 17:21:20 +02:00
Marc Alexander
4296e0a329 Merge branch '3.2.x' 2016-06-13 22:08:19 +02:00
Andreas Fischer
83682fe4cf Merge branch '3.2.x'
* 3.2.x:
  [ticket/14291] Do not update filesize if displaying thumbnail
2016-06-11 13:45:58 +02:00
Marc Alexander
36e78f4aba Merge branch '3.2.x' 2016-06-08 20:47:20 +02:00
Marc Alexander
34d44d58c3 Merge branch '3.2.x' 2016-06-08 20:32:30 +02:00
Marc Alexander
1bf58c654a Merge branch '3.2.x' 2016-06-04 16:16:22 +02:00
Marc Alexander
401e78c5b0 Merge branch '3.2.x' 2016-05-31 21:43:21 +02:00
Marc Alexander
b465df321c Merge branch '3.2.x' 2016-05-28 09:59:55 +02:00
Marc Alexander
57733f84e5 Merge branch '3.2.x' 2016-05-27 22:14:00 +02:00
Marc Alexander
51d80174b1 Merge branch '3.2.x' 2016-05-27 21:10:51 +02:00
Máté Bartus
1d9e8e4485 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14650] Semi-colon instead of slash to make Matt happy
  [ticket/14650] Move CONTRIBUTING.md and add pull request template
2016-05-27 13:29:26 +02:00
Marc Alexander
89371294bf Merge branch '3.2.x' 2016-05-26 15:47:25 +02:00
Marc Alexander
682aa32af1 Merge branch '3.2.x' 2016-05-24 21:47:56 +02:00
Máté Bartus
8afbb3fb76 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14645] Language pack not reconised when using a symlink
2016-05-22 21:44:48 +02:00
Marc Alexander
4cf0b56d7a Merge branch '3.2.x' 2016-05-16 14:05:29 +02:00
Máté Bartus
3c1cd4f478 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14624] Remove no longer existing event argumemt
2016-05-16 12:12:04 +02:00
Marc Alexander
c24b29cc36 Merge branch '3.2.x' 2016-05-15 23:57:47 +02:00
Tristan Darricau
ddcd458167 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14595] Added smtp_port where places where smtp_host exists. PHPBB3-14595
  [ticket/14595] Added SMTP port to getConfigTreeBuilder PHPBB3-14595
2016-05-15 10:20:38 +02:00
Marc Alexander
b70b9714dd Merge branch '3.2.x' 2016-05-12 19:18:31 +02:00
Tristan Darricau
c43fabf502 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14619] Updates 3.1.x/ascraeus to 3.2.x/rhea
2016-05-02 21:19:58 +02:00
Tristan Darricau
7c8f383bf2 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14607] Add missing auto_increment to report_id
2016-05-02 21:14:35 +02:00
Tristan Darricau
21bd3b7c0a Merge branch '3.2.x'
* 3.2.x:
  [ticket/13969] Remove obsolute language files
2016-04-29 20:16:48 +02:00
Tristan Darricau
d70a9fb81e Merge branch '3.2.x'
* 3.2.x:
2016-04-29 20:11:42 +02:00
Tristan Darricau
6949ee162d erge branch 'prep-release-3.2.0-b2'
* prep-release-3.2.0-b2:
  [prep-release-3.2.0-b2] Add schema.json
  [prep-release-3.2.0-b2] Add changelog for 3.2.0-b2
  [prep-release-3.2.0-b2] Add migration for 3.2.0-b2
  [prep-release-3.2.0-b2] Update version to 3.2.0-b2
2016-04-28 21:51:23 +02:00
Marc Alexander
682c44cee4 Merge branch '3.2.x' 2016-04-23 23:04:13 +02:00
Joas Schilling
4b51590520 Merge branch '3.2.x' 2016-04-16 12:51:06 +02:00
Tristan Darricau
36c87313a4 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14589] Fix @var usage
2016-04-13 19:14:18 +02:00
Tristan Darricau
3a028ef067 Merge pull request #4288 from CHItA/ticket/14601
[ticket/14601] Fix composer.lock

* CHItA/ticket/14601:
  [ticket/14601] Fix composer.lock
2016-04-13 19:06:46 +02:00
Máté Bartus
caf63ba86b [ticket/14601] Fix composer.lock
PHPBB3-14601
2016-04-13 10:52:12 +02:00
Máté Bartus
3a44ac1690 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14598] Support vars docblock in sniffer
2016-04-13 10:20:39 +02:00
Máté Bartus
13a3e99848 Merge branch '3.2.x'
* 3.2.x:
  [ticket/13616] Fix CS + constant in the core extension
  [ticket/13616] Fix UI tests
  [ticket/13616] Cleanup globals after installing the board in func tests
  [ticket/13616] Updates direct call to twig environment constructor
  [ticket/13616] Uses a php 5.4 compatible version
  [ticket/13616] Uses symfony/proxy-manager-bridge to lazy load twig lexer

Conflicts:
	phpBB/composer.lock
2016-04-13 10:14:47 +02:00
Tristan Darricau
94853ba2dd Merge branch '3.2.x'
* 3.2.x:
  [ticket/14589] Fix grammatical errors in language strings
  [ticket/14589] Add error messages for failable installer requirements
2016-04-12 11:27:03 +02:00
Marc Alexander
ffcde0c95a Merge branch '3.2.x' 2016-04-11 21:27:20 +02:00
Joas Schilling
4a1d1dd6a5 Merge branch '3.2.x' 2016-04-09 19:53:57 +02:00
Joas Schilling
c03d9d9acc Merge branch '3.2.x'
* 3.2.x:
  [ticket/14587] Remove sectionGroup from web.config
2016-04-08 16:35:18 +02:00
Marc Alexander
662fbc7cde Merge branch '3.2.x' 2016-04-07 21:59:44 +02:00
Marc Alexander
76af1c608c Merge branch '3.2.x' 2016-04-06 21:00:41 +02:00
Marc Alexander
a6c90643fd Merge branch '3.2.x' 2016-04-06 20:54:57 +02:00
Tristan Darricau
4ded3864cd Merge branch '3.2.x'
* 3.2.x:
  [ticket/14559] Remove attachment BBCode tags from the quoted message
2016-04-03 16:34:46 +02:00
Tristan Darricau
b1085b7dcb Merge branch '3.2.x'
* 3.2.x:
  [ticket/14561] Remove requires for functions in tests
  [ticket/14561] Small change to progress bar output
  [ticket/14561] Fix function docblock in activate command
  [ticket/14561] Add a progress bar to reclean command
  [ticket/14561] Use the user loader where appropriate
  [ticket/14561] Add extra help explaining reclean command
  [ticket/14561] Import classes with use statements
  [ticket/14561] Remove unused use statements
  [ticket/14561] Refactor tests
  [ticket/14561] Reclean usernames command
  [ticket/14561] User activate command
  [ticket/14561] User delete command
2016-04-03 16:32:25 +02:00
Tristan Darricau
71c4ffceec Merge branch '3.2.x'
* 3.2.x:
  [ticket/13502] Also cover passing object to resolver in tests
  [ticket/13502] Test getArguments() method of controller resolver
  [ticket/13502] Fix coding style
  [ticket/13502] Controller resolver should handle callable functions and objects
2016-04-03 16:04:59 +02:00
Tristan Darricau
3c89a69701 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14532] Do not escape column default in mssql
2016-04-03 16:03:07 +02:00
Tristan Darricau
e2372b369b Merge branch '3.2.x'
* 3.2.x:
  [ticket/14260] Added regression test
2016-04-03 15:51:57 +02:00
Marc Alexander
0eefec86a5 Merge branch '3.2.x' 2016-04-03 10:28:19 +02:00
Tristan Darricau
92fdc14208 Merge branch '3.2.x'
* 3.2.x:
  Revert "[ticket/14562] Language fallback for extension permissions"
  [ticket/14562] Language fallback for extension permissions (3.2.x)
  [ticket/14562] Language fallback for extension permissions
2016-04-02 13:13:01 +02:00
Tristan Darricau
93f932b80f [ticket/14495] Revert changes in master
PHPBB3-14495
2016-04-02 12:12:24 +02:00
Tristan Darricau
2b5037ee96 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14495] Specify correct version numbers in 3.2.x
2016-04-02 12:09:40 +02:00
Tristan Darricau
b81be8f71e Merge branch '3.2.x'
* 3.2.x:
  [ticket/14577] Do not calculate size of array in for loop
2016-04-02 12:07:15 +02:00
Tristan Darricau
49c3da0cb9 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14393] Fix db update progress bar
  [ticket/14393] Fix init for conflict archive
  [ticket/14393] Fix updater behaviour
2016-03-31 22:50:47 +02:00
Tristan Darricau
cae1e4127a Merge branch '3.2.x'
* 3.2.x:
  [ticket/14576] Move common required files to bootstrap
2016-03-31 22:42:55 +02:00
Marc Alexander
7d5e052e97 Merge branch '3.2.x' 2016-03-31 12:30:20 +02:00
Marc Alexander
be5175d451 Merge branch '3.2.x' 2016-03-30 21:04:14 +02:00
Marc Alexander
073cf35422 Merge branch '3.2.x' 2016-03-30 19:01:12 +02:00
Marc Alexander
4ddf69f0f1 Merge branch '3.2.x' 2016-03-30 10:04:57 +02:00
Máté Bartus
646c2e40a2 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14568] Update the repository readme
2016-03-28 19:27:21 +02:00
Marc Alexander
d298e7f5a1 Merge branch '3.2.x' 2016-03-28 00:28:36 +02:00
Tristan Darricau
32c7209887 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14329] Add missing ACP language vars
2016-03-27 16:41:38 +02:00
Tristan Darricau
1fba54ab2e Merge branch '3.2.x'
* 3.2.x:
  [ticket/14272] Allow input of floats for filesize
  [ticket/14272] Use input type number instead of text in avatars
  [ticket/14272] Assign min and max values for avatar driver settings
  [ticket/14272] Define min and max values for avatar width and height
  [ticket/14272] Disable not toggled form elements
  [ticket/14272] Make sure phpbb_avatar_manager was defined
  [ticket/14272] Remove useless check
  [ticket/14272] Fix invalid or missing min/max settings
  [ticket/14272] Assign min/max for all allowed types
  [ticket/14272] Only use maxlength and size for allowed input elements
2016-03-27 13:34:57 +02:00
Tristan Darricau
c13c7c28ad Merge branch '3.2.x'
* 3.2.x:
  [ticket/14481] Add tests for x_forwarded_proto header
  [ticket/14481] Use port 443 if https is specified in x-forwarded-proto
  [ticket/14481] Respect HTTP_X_FORWARDED headers for implying https
2016-03-27 12:56:06 +02:00
Marc Alexander
475b92e28e Merge branch '3.2.x' 2016-03-27 12:40:41 +02:00
Marc Alexander
4924e225d7 Merge branch '3.2.x' 2016-03-27 12:37:32 +02:00
Marc Alexander
42c923ba5a Merge branch '3.2.x' 2016-03-27 12:35:08 +02:00
Tristan Darricau
9467b602a8 Merge branch '3.2.x'
* 3.2.x: (26 commits)
  [ticket/12684] Use a switch statement for readability
  [ticket/12684] Refactor a test
  [ticket/12684] Use interactive method correctly
  [ticket/12684] Extract interactivity to a method
  [ticket/12684] Update option help
  [ticket/12684] Add extended help for the user:add command
  [ticket/12684] Add shorthand alternates to the options
  [ticket/12684] Remove whitespace
  [ticket/12684] Add an error on user creation failure
  [ticket/12684] Remove unnecessary null arguments
  [ticket/12684] Additional clean up
  [ticket/12684] Allowed to use $this in enclosure
  [ticket/12684] Move all lang keys to cli
  [ticket/12684] Fix a few mistakes and clean it up
  [ticket/12684] Some code clean up
  [ticket/12684] Another little fix
  [ticket/12684] Fix tests
  [ticket/12684] Update to use non-deprecated methods
  [ticket/12684] Add send email option
  [ticket/12684] Add input validation
  ...
2016-03-26 19:38:59 +01:00
Tristan Darricau
8e15967a66 Merge branch '3.2.x'
* 3.2.x:
  [ticket/13013] Explain to user explicitl what "participate more" means
2016-03-26 19:21:49 +01:00
Tristan Darricau
053f89fa07 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14134] Fix Okay in a comment.
  [ticket/14134] Fix code comments.
  [ticket/14134] Send warning notification PM in user's language.
2016-03-26 18:59:35 +01:00
Tristan Darricau
cb84946d7b Merge branch '3.2.x'
* 3.2.x:
2016-03-25 11:56:16 +01:00
Tristan Darricau
ce24e46879 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14437] Make sure attachments array is properly ordered before processing
  [ticket/14437] Preserve attachment ID order by ordering by attach_id
  [ticket/14437] Sort attachments after assigning inline attachments
  [ticket/14437] Correctly assume index from attachment display order
2016-03-25 11:49:57 +01:00
Tristan Darricau
a54b528bc6 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14497] Do not check for doctype on index and use correct return
  [ticket/14497] Add test for visiting installer
  [ticket/14497] Use nginx sample config in travis tests
  [ticket/14497] Support second app.php script in install folder
2016-03-25 11:46:16 +01:00
Tristan Darricau
06186ea250 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14241] Log fatal captcha error to error log
  [ticket/14241] Prevent empty q&a as a result of improper settings
2016-03-25 11:43:39 +01:00
Tristan Darricau
5d118581ce Merge branch '3.2.x'
* 3.2.x:
  [ticket/14527] Decode automatically generated postlink without prefix
  [ticket/14527] Add tests for reverted improper fix
  [ticket/14527] Retrieve link URL from href and not link text
2016-03-25 11:35:47 +01:00
Tristan Darricau
e7cf42da8c Merge branch '3.2.x'
* 3.2.x:
  [ticket/13630] Prevent empty parameter select_single
2016-03-25 11:21:29 +01:00
Tristan Darricau
dfd7426be4 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14530] Only generate text again if sig was parsed for storage
  [ticket/14530] Add accidentally removed sig_parsed flag
2016-03-25 11:14:33 +01:00
Tristan Darricau
ba9e9ecfa3 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14290] Correctly use modified since header
2016-03-25 11:11:09 +01:00
Tristan Darricau
3bb78d3b85 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14381] Set the mode in message parser to "reparse"
2016-03-25 11:03:47 +01:00
Marc Alexander
5bb1a98125 Merge branch '3.2.x' 2016-03-24 21:15:21 +01:00
Tristan Darricau
80e4bc9ec0 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14136] Add back X-UA-Compatible meta tag
2016-03-24 18:00:48 +01:00
Tristan Darricau
b0d105c8e0 Merge branch '3.2.x'
* 3.2.x:
  [ticket/14536] Force unix time stamps to be integer
2016-03-24 17:54:14 +01:00
Marc Alexander
46faec12fa Merge branch '3.2.x' 2016-03-24 17:22:39 +01:00
Marc Alexander
4d69df687a Merge branch '3.2.x' 2016-03-24 16:33:19 +01:00
Marc Alexander
f729e51ba8 Merge branch '3.2.x' 2016-03-24 15:22:42 +01:00
Marc Alexander
1aedf3ab60 Merge branch '3.2.x' 2016-03-24 11:49:35 +01:00
424 changed files with 15116 additions and 5512 deletions

5
.gitignore vendored
View File

@@ -17,7 +17,12 @@
/phpBB/styles/*
!/phpBB/styles/prosilver
!/phpBB/styles/all
node_modules
/phpBB/vendor
/phpBB/vendor-ext/*
!/phpBB/vendor-ext/.git-keep
/phpBB/composer-ext.json
/phpBB/composer-ext.lock
/tests/phpbb_unit_tests.sqlite*
/tests/test_config*.php
/tests/tmp/*

243
.postcss-sorting.json Normal file
View File

@@ -0,0 +1,243 @@
{
"order": [
"custom-properties",
"dollar-variables",
{
"type": "at-rule",
"name": "include"
},
"declarations",
"rules",
{
"type": "at-rule",
"name": "media"
}
],
"properties-order": [
{
"emptyLineBefore": false,
"properties": [
"font",
"font-family",
"font-size",
"font-weight",
"font-style",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-effect",
"font-emphasize",
"font-emphasize-position",
"font-emphasize-style",
"font-smooth",
"font-smoothing",
"line-height",
"text-align",
"text-align-last",
"vertical-align",
"white-space",
"text-decoration",
"text-emphasis",
"text-emphasis-color",
"text-emphasis-style",
"text-emphasis-position",
"text-indent",
"text-justify",
"letter-spacing",
"word-spacing",
"writing-mode",
"text-outline",
"text-transform",
"text-size-adjust",
"text-wrap",
"text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"word-wrap",
"word-break",
"tab-size",
"hyphens"
]
},
{
"emptyLineBefore": false,
"properties": [
"background",
"background-color",
"background-image",
"background-repeat",
"background-attachment",
"background-position",
"background-position-x",
"background-position-y",
"background-clip",
"background-origin",
"background-size",
"interpolation-mode",
"filter",
"border",
"border-width",
"border-style",
"border-color",
"border-top",
"border-top-width",
"border-top-style",
"border-top-color",
"border-right",
"border-right-width",
"border-right-style",
"border-right-color",
"border-bottom",
"border-bottom-width",
"border-bottom-style",
"border-bottom-color",
"border-left",
"border-left-width",
"border-left-style",
"border-left-color",
"border-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"border-image",
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"tap-highlight-color"
]
},
{
"emptyLineBefore": false,
"properties": [
"box-decoration-break",
"box-shadow",
"text-shadow"
]
},
{
"emptyLineBefore": false,
"properties": [
"color",
"opacity"
]
},
{
"emptyLineBefore": false,
"properties": [
"position",
"z-index",
"top",
"right",
"bottom",
"left"
]
},
{
"emptyLineBefore": false,
"properties": [
"display",
"visibility",
"float",
"clear",
"overflow",
"overflow-x",
"overflow-y",
"overflow-scrolling",
"clip",
"zoom",
"flex",
"flex-direction",
"flex-order",
"flex-pack",
"flex-align",
"flex-basis",
"flex-grow",
"flex-shrink",
"flex-wrap",
"justify-content",
"align-items",
"align-self"
]
},
{
"emptyLineBefore": false,
"properties": [
"box-sizing",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left"
]
},
{
"emptyLineBefore": false,
"properties": [
"table-layout",
"empty-cells",
"caption-side",
"border-spacing",
"border-collapse",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image"
]
},
{
"emptyLineBefore": false,
"properties": [
"content",
"quotes",
"counter-reset",
"counter-increment",
"resize",
"cursor",
"touch-callout",
"touch-action",
"user-select",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"transition",
"transition-delay",
"transition-timing-function",
"transition-duration",
"transition-property",
"transform",
"transform-origin",
"animation",
"animation-name",
"animation-duration",
"animation-play-state",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"pointer-events"
]
}
],
"unspecified-properties-position": "bottomAlphabetical"
}

391
.stylelintrc Normal file
View File

@@ -0,0 +1,391 @@
{
"plugins": [
"stylelint-order"
],
"ignoreFiles": [
"./phpBB/styles/prosilver/theme/normalize.css",
],
"rules": {
"at-rule-name-case": "lower",
"at-rule-name-newline-after": "always-multi-line",
"at-rule-name-space-after": "always-single-line",
"at-rule-no-vendor-prefix": true,
"at-rule-semicolon-newline-after": "always",
"block-closing-brace-newline-after": [
"always", {
"ignoreAtRules": ["if", "else"]
}
],
"block-closing-brace-newline-before": "always-multi-line",
"block-closing-brace-space-before": "always-single-line",
"block-no-empty": true,
"block-opening-brace-newline-after": "always-multi-line",
"block-opening-brace-space-after": "always-single-line",
"block-opening-brace-space-before": "always",
"color-hex-case": "lower",
"color-hex-length": "long",
"color-named": "never",
"color-no-invalid-hex": true,
"comment-empty-line-before": [
"always", {
"except": ["first-nested"],
"ignore": ["stylelint-commands"]
}
],
"comment-whitespace-inside": "always",
"declaration-bang-space-after": "never",
"declaration-bang-space-before": "always",
"declaration-block-no-shorthand-property-overrides": true,
"declaration-block-semicolon-newline-after": "always-multi-line",
"declaration-block-semicolon-newline-before": "never-multi-line",
"declaration-block-semicolon-space-after": "always-single-line",
"declaration-block-semicolon-space-before": "never",
"declaration-block-trailing-semicolon": "always",
"declaration-block-single-line-max-declarations": 1,
"declaration-block-no-duplicate-properties": [
true, {
"ignore": ["consecutive-duplicates-with-different-values"]
}
],
"declaration-colon-newline-after": "always-multi-line",
"declaration-colon-space-after": "always-single-line",
"declaration-colon-space-before": "never",
"declaration-empty-line-before": "never",
"declaration-property-unit-blacklist": {
"line-height": ["rem", "em", "%"]
},
"declaration-property-unit-whitelist": {
"height": ["px", "%", "vh"],
"width": ["px", "%", "vw"],
"font-size": ["px", "rem", "%"],
"margin-left": ["px", "rem", "%"],
"margin-right": ["px", "rem", "%"],
"margin-top": ["px", "rem", "%"],
"margin-bottom": ["px", "rem", "%"],
"padding-left": ["px", "rem"],
"padding-right": ["px", "rem"],
"padding-top": ["px", "rem"],
"padding-bottom": ["px", "rem"],
"letter-spacing": ["em"],
"word-spacing": ["em"]
},
"font-family-name-quotes": "always-where-recommended",
"function-calc-no-unspaced-operator": true,
"function-comma-newline-after": "never-multi-line",
"function-comma-newline-before": "never-multi-line",
"function-comma-space-after": "always-single-line",
"function-comma-space-before": "never-single-line",
"function-linear-gradient-no-nonstandard-direction": true,
"function-max-empty-lines": 5,
"function-name-case": "lower",
"function-parentheses-newline-inside": "always-multi-line",
"function-parentheses-space-inside": "never-single-line",
"function-url-quotes": "always",
"function-whitespace-after": "always",
"indentation": "tab",
"length-zero-no-unit": true,
"max-empty-lines": 10,
"max-line-length": 180,
"max-nesting-depth": 4,
"media-feature-colon-space-after": "always",
"media-feature-colon-space-before": "never",
"media-feature-name-case": "lower",
"media-feature-parentheses-space-inside": "never",
"media-feature-range-operator-space-after": "always",
"media-feature-range-operator-space-before": "always",
"media-query-list-comma-newline-after": "always-multi-line",
"media-query-list-comma-newline-before": "never-multi-line",
"media-query-list-comma-space-after": "always-single-line",
"media-query-list-comma-space-before": "never",
"no-duplicate-selectors": true,
"no-empty-source": true,
"no-eol-whitespace": true,
"no-extra-semicolons": true,
"no-missing-end-of-source-newline": true,
"no-unknown-animations": true,
"number-leading-zero": "always",
"number-max-precision": 10,
"number-no-trailing-zeros": true,
"property-case": "lower",
"property-no-unknown": true,
"rule-empty-line-before": ["always-multi-line", {
"ignore": ["after-comment"],
"except": ["first-nested"]
}],
"selector-attribute-brackets-space-inside": "never",
"selector-attribute-operator-space-after": "never",
"selector-attribute-operator-space-before": "never",
"selector-attribute-quotes": "always",
"selector-combinator-space-after": "always",
"selector-combinator-space-before": "always",
"selector-list-comma-newline-after": "always",
"selector-list-comma-space-before": "never",
"selector-max-empty-lines": 5,
"selector-max-compound-selectors": 5,
"selector-pseudo-class-case": "lower",
"selector-pseudo-class-no-unknown": true,
"selector-pseudo-class-parentheses-space-inside": "never",
"selector-pseudo-element-case": "lower",
"selector-pseudo-element-colon-notation": "single",
"selector-pseudo-element-no-unknown": true,
"selector-type-case": "lower",
"selector-type-no-unknown": true,
"selector-descendant-combinator-no-non-space": true,
"selector-max-id": 0,
"selector-no-qualifying-type": [
true, {
"ignore": ["attribute"]
}
],
"shorthand-property-no-redundant-values": true,
"string-no-newline": true,
"string-quotes": "double",
"unit-case": "lower",
"unit-no-unknown": true,
"value-list-comma-newline-after": "always-multi-line",
"value-list-comma-newline-before": "never-multi-line",
"value-list-comma-space-after": "always-single-line",
"value-list-comma-space-before": "never",
"order/declaration-block-order": [
"custom-properties",
"dollar-variables",
{
"type": "at-rule",
"name": "include"
},
"declarations",
"rules",
{
"type": "at-rule",
"name": "media"
}
],
"order/declaration-block-properties-specified-order": [
[
"font",
"font-family",
"font-size",
"font-weight",
"font-style",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-effect",
"font-emphasize",
"font-emphasize-position",
"font-emphasize-style",
"font-smooth",
"font-smoothing",
"line-height",
"text-align",
"text-align-last",
"vertical-align",
"white-space",
"text-decoration",
"text-emphasis",
"text-emphasis-color",
"text-emphasis-style",
"text-emphasis-position",
"text-indent",
"text-justify",
"letter-spacing",
"word-spacing",
"writing-mode",
"text-outline",
"text-transform",
"text-size-adjust",
"text-wrap",
"text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"word-wrap",
"word-break",
"tab-size",
"hyphens",
"background",
"background-color",
"background-image",
"background-repeat",
"background-attachment",
"background-position",
"background-position-x",
"background-position-y",
"background-clip",
"background-origin",
"background-size",
"interpolation-mode",
"filter",
"border",
"border-width",
"border-style",
"border-color",
"border-top",
"border-top-width",
"border-top-style",
"border-top-color",
"border-right",
"border-right-width",
"border-right-style",
"border-right-color",
"border-bottom",
"border-bottom-width",
"border-bottom-style",
"border-bottom-color",
"border-left",
"border-left-width",
"border-left-style",
"border-left-color",
"border-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"border-image",
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"tap-highlight-color",
"box-decoration-break",
"box-shadow",
"text-shadow",
"color",
"opacity",
"position",
"z-index",
"top",
"right",
"bottom",
"left",
"display",
"visibility",
"float",
"clear",
"overflow",
"overflow-x",
"overflow-y",
"overflow-scrolling",
"clip",
"zoom",
"flex",
"flex-direction",
"flex-order",
"flex-pack",
"flex-align",
"flex-basis",
"flex-grow",
"flex-shrink",
"flex-wrap",
"justify-content",
"align-items",
"align-self",
"box-sizing",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"table-layout",
"empty-cells",
"caption-side",
"border-spacing",
"border-collapse",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image",
"content",
"quotes",
"counter-reset",
"counter-increment",
"resize",
"cursor",
"touch-callout",
"touch-action",
"user-select",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"transition",
"transition-delay",
"transition-timing-function",
"transition-duration",
"transition-property",
"transform",
"transform-origin",
"animation",
"animation-name",
"animation-duration",
"animation-play-state",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"pointer-events"
],
{ unspecified: "bottomAlphabetical" }
]
}
}

View File

@@ -4,24 +4,20 @@ dist: precise
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
env: DB=none;NOTESTS=1
- php: 5.6
env: DB=mariadb
- php: 5.6
env: DB=postgres
- php: 5.6
env: DB=sqlite3
- php: 5.6
env: DB=mysqli;SLOWTESTS=1
- php: 5.6
env: DB=mysqli # MyISAM
- php: 5.6
env: DB=mysql
- php: 7.0
env: DB=mysqli
- php: 7.1
@@ -34,6 +30,11 @@ matrix:
- php: nightly
fast_finish: true
addons:
apt:
sources:
- node
services:
- redis-server
@@ -49,6 +50,7 @@ script:
- 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 ./
- travis/check-stylesheet.sh $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"

View File

@@ -2,7 +2,7 @@
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
<!-- a few settings for the build -->
<property name="newversion" value="3.2.4-dev" />
<property name="newversion" value="3.3.0-a1-dev" />
<property name="prevversion" value="3.2.2" />
<property name="olderversions" value="3.0.14, 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" />
<!-- no configuration should be needed beyond this point -->
@@ -95,6 +95,7 @@
--ignore=${project.basedir}/phpBB/install/database_update.php
--ignore=${project.basedir}/phpBB/phpbb/*
--ignore=${project.basedir}/phpBB/vendor/*
--ignore=${project.basedir}/phpBB/vendor-ext/*
phpBB"
dir="." returnProperty="retval-php-legacy" passthru="true" />
<exec command="phpBB/vendor/bin/phpcs

Binary file not shown.

71
gulpfile.js Normal file
View File

@@ -0,0 +1,71 @@
'use strict';
const del = require('del');
const gulp = require('gulp');
const autoprefixer = require('gulp-autoprefixer');
const sass = require('gulp-sass');
const rename = require('gulp-rename');
const sourcemaps = require('gulp-sourcemaps');
const cssnano = require('gulp-cssnano');
const postcss = require('gulp-postcss');
const stylefmt = require('gulp-stylefmt');
const sorting = require('postcss-sorting');
const atimport = require('postcss-import');
const torem = require('postcss-pxtorem');
const sortOrder = require('./.postcss-sorting.json');
const pkg = require('./package.json');
// Config
const build = {
css: './phpBB/styles/prosilver/theme/',
};
const AUTOPREFIXER_BROWSERS = [
'> 1%',
'last 2 versions'
];
gulp.task('css', () => {
const css = gulp
.src(build.css + '*.css')
.pipe(autoprefixer(AUTOPREFIXER_BROWSERS))
.pipe(
postcss([
sorting(sortOrder)
])
)
.pipe(stylefmt())
.pipe(gulp.dest(build.css));
return css;
});
gulp.task('clean', () => {
del(['dist']);
});
gulp.task('minify', () => {
const css = gulp
.src(build.css + '/bidi.css')
.pipe(sourcemaps.init())
.pipe(
postcss([
atimport()
])
)
.pipe(cssnano())
.pipe(rename({
suffix: '.min',
extname: '.css'
}))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest(build.css));
return css;
});
gulp.task('watch', () => {
gulp.watch('phpBB/styles/prosilver/theme/*.css', ['css']);
});
gulp.task('default', ['css', 'watch']);

52
package.json Normal file
View File

@@ -0,0 +1,52 @@
{
"name": "phpbb",
"version": "3.3.0-dev",
"description": "phpBB Forum Software application",
"main": " ",
"directories": {
"doc": "docs"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/phpbb/phpbb.git"
},
"browserslist": [
"> 1%",
"last 2 versions"
],
"keywords": [
"phpBB",
"phpbb",
"forum",
"php",
"software",
"community"
],
"author": "",
"license": "GPL-2.0",
"bugs": {
"url": "https://tracker.phpbb.com"
},
"homepage": "https://www.phpbb.com",
"devDependencies": {
"stylelint": "8.0.0",
"stylelint-order": "0.3.0"
},
"dependencies": {
"del": "^3.0.0",
"gulp": "^3.9.1",
"gulp-autoprefixer": "^4.0.0",
"gulp-cssnano": "^2.1.2",
"gulp-postcss": "^7.0.0",
"gulp-rename": "^1.2.2",
"gulp-sass": "^3.1.0",
"gulp-sourcemaps": "^2.6.1",
"gulp-stylefmt": "^1.1.0",
"postcss-import": "^11.0.0",
"postcss-pxtorem": "^4.0.1",
"postcss-sorting": "^3.0.2"
}
}

View File

@@ -0,0 +1,130 @@
{% include('overall_header.html') %}
<a id="maincontent"></a>
<h1>{{ lang( 'EXTENSIONS_CATALOG') }}</h1>
<p>{{ lang( 'EXTENSIONS_CATALOG_EXPLAIN') }}</p>
<fieldset class="quick quick-left">
<span class="small"><a href="https://www.phpbb.com/go/customise/extensions/{{ PHPBB_MAJOR }}" target="_blank">{{ lang('BROWSE_EXTENSIONS_DATABASE') }}</a> &bull; <a href="javascript:phpbb.toggleDisplay('catalog_settings');">{{ lang('SETTINGS') }}</a></span>
</fieldset>
{% if pagination is defined %}
<div class="pagination top-pagination">
{% include('pagination.html') %}
</div>
{% endif %}
<form id="catalog_settings" method="post" action="{{ U_ACTION }}" style="display:none">
<fieldset style="clear: both;">
<legend>{{ lang('EXTENSIONS_CATALOG_SETTINGS') }}</legend>
<dl>
<dt><label for="enable_on_install">{{ lang('ENABLE_ON_INSTALL') }}{{ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" id="enable_on_install" name="enable_on_install" class="radio" value="1"{% if settings.enable_on_install %} checked="checked" {% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="enable_on_install" class="radio" value="0"{% if not settings.enable_on_install %} checked="checked" {% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt><label for="purge_on_remove">{{ lang('PURGE_ON_REMOVE') }}{{ lang('COLON') }}</label></dt>
<dd>
<label><input type="radio" id="purge_on_remove" name="purge_on_remove" class="radio" value="1"{% if settings.purge_on_remove %} checked="checked" {% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="purge_on_remove" class="radio" value="0"{% if not settings.purge_on_remove %} checked="checked" {% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt>
<label for="repositories">{{ lang('COMPOSER_REPOSITORIES') }}{{ lang('COLON') }}</label><br />
<span class="explain">
{{ lang('COMPOSER_REPOSITORIES_EXPLAIN') }}
</span>
</dt>
<dd>
<textarea id="repositories" name="repositories" rows="5" cols="30">{{ settings.repositories|join('\n') }}</textarea>
</dd>
</dl>
<dl>
<dt>
<label for="enable_packagist">{{ lang('ENABLE_PACKAGIST') }}{{ lang('COLON') }}</label><br />
<span class="explain">
<strong class="error">{{ lang('WARNING') }}{{ lang('COLON') }}</strong> {{ lang('ENABLE_PACKAGIST_EXPLAIN') }}
</span>
</dt>
<dd>
<label><input type="radio" id="enable_packagist" name="enable_packagist" class="radio" value="1"{% if settings.enable_packagist %} checked="checked" {% endif %} /> {{ lang('YES') }}</label>
<label><input type="radio" name="enable_packagist" class="radio" value="0"{% if not settings.enable_packagist %} checked="checked" {% endif %} /> {{ lang('NO') }}</label>
</dd>
</dl>
<dl>
<dt>
<label for="minimum_stability">{{ lang('COMPOSER_MINIMUM_STABILITY') }}{{ lang('COLON') }}</label><br />
<span class="explain">
<strong class="error">{{ lang('WARNING') }}{{ lang('COLON') }}</strong> {{ lang('COMPOSER_MINIMUM_STABILITY_EXPLAIN') }}
</span>
</dt>
<dd>
<select id="minimum_stability" name="minimum_stability">
{% for stability in settings.stabilities %}
<option value="{{ stability }}"{% if stability === settings.minimum_stability %} selected='selected'{% endif %}>{{ lang('STABILITY_' ~ stability|upper) }}</option>
{% endfor %}
</select>
</dd>
</dl>
<p class="submit-buttons">
<input class="button1" type="submit" name="update" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" name="reset" value="{{ lang('RESET') }}" />
<input type="hidden" name="action" value="set_catalog_settings" />
{{ S_FORM_TOKEN }}
</p>
</fieldset>
</form>
{% if extensions is empty %}
<tr>
<td colspan="4"><div class="errorbox notice">{{ lang('NO_EXTENSION_AVAILABLE') }}</div></td>
</tr>
{% else %}
<table class="table1">
<col class="row1" ><col class="row1" ><col class="row1" ><col class="row2" >
<thead>
<tr>
<th style="width: 25%;">{{ lang("EXTENSION_NAME") }}</th>
<th style="text-align: center; width: 10%;">{{ lang("VERSION") }}</th>
<th>{{ lang("DESCRIPTION") }}</th>
<th style="text-align: center; width: 15%;">{{ lang("EXTENSION_ACTIONS") }}</th>
</tr>
</thead>
<tbody>
{% for extension in extensions %}
<tr>
<td>
<strong>{{ extension.display_name }}</strong><br />
{{ extension.name }}
</td>
<td style="text-align: center">{{ extension.version }}</td>
<td>{{ extension.description }} &bull; <a href="{{ extension.url }}">{{ lang('HOMEPAGE') }}</a></td>
<td style="text-align: center">
{% if extension.name in managed_extensions %}
<span style="color: #228822;">{{ lang('INSTALLED') }}</span>
{% elseif extension.name in installed_extensions -%}
<span style="color: #BC2A4D;">{{ lang('INSTALLED_MANUALLY') }}</span>
(<a href="{{ U_ACTION }}&amp;action=manage&amp;extension={{ extension.composer_name|url_encode }}">{{ lang('MANAGE') }}</a>)
{% elseif not enabled -%}
<a href="{{ U_ACTION }}&amp;action=install&amp;extension={{ extension.composer_name|url_encode }}">{{ lang('INSTALL') }}</a>
{%- endif -%}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% if pagination is defined %}
<div class="pagination bottom-pagination">
{% include('pagination.html') %}
</div>
{% endif %}
{% include('overall_footer.html') %}

View File

@@ -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> &bull; <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE_ALL}</a> &bull; <a href="javascript:phpbb.toggleDisplay('version_check_settings');">{L_SETTINGS}</a></span>
<span class="small"><a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE_ALL}</a> &bull; <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">
@@ -60,7 +60,7 @@
<td style="text-align: center;"><a href="{enabled.U_DETAILS}">{L_DETAILS}</a></td>
<td style="text-align: center;">
<!-- BEGIN actions -->
<a href="{enabled.actions.U_ACTION}"<!-- IF enabled.actions.L_ACTION_EXPLAIN --> title="{enabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{enabled.actions.L_ACTION}</a>
<a href="{enabled.actions.U_ACTION}"<!-- IF enabled.actions.L_ACTION_EXPLAIN --> title="{enabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF --><!-- IF enabled.actions.COLOR --> style="color: {enabled.actions.COLOR};"<!-- ENDIF -->>{enabled.actions.L_ACTION}</a>
<!-- IF not enabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF -->
<!-- END actions -->
</td>
@@ -88,7 +88,7 @@
</td>
<td style="text-align: center;">
<!-- BEGIN actions -->
<a href="{disabled.actions.U_ACTION}"<!-- IF disabled.actions.L_ACTION_EXPLAIN --> title="{disabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{disabled.actions.L_ACTION}</a>
<a href="{disabled.actions.U_ACTION}"<!-- IF disabled.actions.L_ACTION_EXPLAIN --> title="{disabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF --><!-- IF disabled.actions.COLOR --> style="color: {disabled.actions.COLOR};"<!-- ENDIF -->>{disabled.actions.L_ACTION}</a>
<!-- IF not disabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF -->
<!-- END actions -->
</td>

View File

@@ -0,0 +1,76 @@
{% include 'overall_header.html' %}
<a id="maincontent"></a>
<h1>{{ lang('STORAGE_TITLE') }}</h1>
<p>{{ lang('STORAGE_TITLE_EXPLAIN') }}</p>
<form id="acp_storage" method="post" action="{{ U_ACTION }}">
{% for storage in STORAGES %}
<fieldset>
<legend>{{ lang('STORAGE_' ~ storage.get_name | upper ~ '_TITLE') }}</legend>
<dl>
<dt><label for="{{ storage.get_name }}">{{ lang('STORAGE_SELECT') }}{{ lang('COLON') }}</label><br /><span>{{ lang('STORAGE_SELECT_DESC') }}</span></dt>
<dd>
<select id="{{ storage.get_name }}" name="{{ storage.get_name }}[provider]" data-togglable-settings="true">
{% for provider in PROVIDERS if provider.is_available %}
<option value="{{ get_class(provider) }}"{{ attribute(config, 'storage\\' ~ storage.get_name ~ '\\provider') == get_class(provider) ? ' selected' : '' }} data-toggle-setting="#{{ storage.get_name }}_{{ provider.get_name }}_settings">
{{ lang('STORAGE_ADAPTER_' ~ provider.get_name | upper ~ '_NAME') }}
</option>
{% endfor %}
</select>
</dd>
</dl>
</fieldset>
{% for provider in PROVIDERS if provider.is_available %}
<fieldset id="{{ storage.get_name }}_{{ provider.get_name }}_settings">
<legend>{{ lang('STORAGE_' ~ storage.get_name | upper ~ '_TITLE') }} - {{ lang('STORAGE_ADAPTER_' ~ provider.get_name | upper ~ '_NAME') }}</legend>
{% for name, options in provider.get_options %}
{% set title = 'STORAGE_ADAPTER_' ~ provider.get_name | upper ~ '_OPTION_' ~ name | upper %}
{% set description = 'STORAGE_ADAPTER_' ~ provider.get_name | upper ~ '_OPTION_' ~ name | upper ~ '_EXPLAIN' %}
{% set input_id = storage.get_name ~ '_' ~ provider.get_name ~ '_' ~ name %}
{% set input_type = options['type'] %}
{% set input_name = storage.get_name ~ '[' ~ name ~ ']' %}
{% set input_value = attribute(config, 'storage\\' ~ storage.get_name ~ '\\config\\' ~ name) %}
<dl>
<dt>
<label for="{{ input_id }}}">{{ lang(title) }}{{ lang('COLON') }}</label>
{% if lang_defined(description) %}
<br /><span>{{ lang(description) }}</span>
{% endif %}
</dt>
<dd>
{% if input_type in ['text', 'password', 'email'] %}
<input id="{{ input_id }}" type="{{ input_type }}" name="{{ input_name }}" value="{{ input_value }}" maxlength="{{ options['maxlength'] ?: 255 }}" />
{% elseif input_type == 'textarea' %}
<textarea id="{{ input_id }}" name="{{ input_name }}">{{ input_value }}</textarea>
{% elseif input_type == 'radio' %}
{% for option_name, option_value in options['options'] %}
<input type="radio" name="{{ input_name }}" value="{{ option_value }}" class="radio"{% if loop.first %} id="{{ input_id }}"{% endif %}{{ (option_value == input_value) ? ' checked="checked"' }}> {{ lang(option_name) }}
{% endfor %}
{% elseif input_type == 'select' %}
<select name="{{ input_name }}" id="{{ input_id }}">
{% for option_name, option_value in options['options'] %}
<option value="{{ option_value }}"{{ (option_value == input_value) ? ' selected' }}>{{ lang(option_name) }}</option>
{% endfor %}
</select>
{% endif %}
</dd>
</dl>
{% endfor %}
</fieldset>
{% endfor %}
{% endfor %}
<fieldset class="submit-buttons">
<legend>{{ lang('SUBMIT') }}</legend>
<input class="button1" type="submit" id="submit" name="submit" value="{{ lang('SUBMIT') }}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{{ lang('RESET') }}" />
{{ S_FORM_TOKEN }}
</fieldset>
</form>
{% include 'overall_footer.html' %}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,14 @@
<!-- INCLUDE overall_header.html -->
<div {% if S_USER_NOTICE %}class="successbox"{% else %}class="errorbox"{% endif %}>
<h3>{{ MESSAGE_TITLE }}</h3>
<p>{{ MESSAGE_TEXT }}</p>
</div>
<div>
<fieldset class="console-output">
<pre>{{ MESSAGE_DETAIL }}</pre>
</fieldset>
</div>
<!-- INCLUDE overall_footer.html -->

View File

@@ -20,7 +20,14 @@
<div id="darkenwrapper" data-ajax-error-title="{L_AJAX_ERROR_TITLE}" data-ajax-error-text="{L_AJAX_ERROR_TEXT}" data-ajax-error-text-abort="{L_AJAX_ERROR_TEXT_ABORT}" data-ajax-error-text-timeout="{L_AJAX_ERROR_TEXT_TIMEOUT}" data-ajax-error-text-parsererror="{L_AJAX_ERROR_TEXT_PARSERERROR}">
<div id="darken">&nbsp;</div>
</div>
<div id="loading_indicator"></div>
<div id="loading_indicator" class="loading_indicator">
<div class="loader">
<svg class="spinner" width="48px" height="48px" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg" aria-labelledby="loader-title" role="img">
<title id="loader-title">{L_LOADING}</title>
<circle class="spinner-path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
</svg>
</div>
</div>
<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>

View File

@@ -27,11 +27,7 @@ phpbb.isTouch = (window && typeof window.ontouchstart !== 'undefined');
*/
phpbb.loadingIndicator = function() {
if (!$loadingIndicator) {
$loadingIndicator = $('<div />', {
'id': 'loading_indicator',
'class': 'loading_indicator'
});
$loadingIndicator.appendTo('#page-footer');
$loadingIndicator = $('#loading_indicator');
}
if (!$loadingIndicator.is(':visible')) {

View File

@@ -71,6 +71,11 @@ require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx);
register_compatibility_globals();
if (@is_file($phpbb_root_path . $config['exts_composer_vendor_dir'] . '/autoload.php'))
{
require_once($phpbb_root_path . $config['exts_composer_vendor_dir'] . '/autoload.php');
}
/** @var \phpbb\language\language $language */
$language = $phpbb_container->get('language');
$language->set_default_language($phpbb_container->get('config')['default_lang']);

View File

@@ -65,8 +65,7 @@ if (!defined('PHPBB_INSTALLED'))
// Eliminate . and .. from the path
require($phpbb_root_path . 'phpbb/filesystem.' . $phpEx);
$phpbb_filesystem = new phpbb\filesystem\filesystem();
$script_path = $phpbb_filesystem->clean_path($script_path);
$script_path = \phpbb\filesystem\helper::clean_path($script_path);
$url = (($secure) ? 'https://' : 'http://') . $server_name;
@@ -136,6 +135,11 @@ require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx);
register_compatibility_globals();
if (@is_file($phpbb_root_path . $config['exts_composer_vendor_dir'] . '/autoload.php'))
{
require_once($phpbb_root_path . $config['exts_composer_vendor_dir'] . '/autoload.php');
}
// Add own hook handler
require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
$phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('template', 'display')));

0
phpBB/composer-ext.json Normal file
View File

0
phpBB/composer-ext.lock Normal file
View File

View File

@@ -25,51 +25,52 @@
"phpbb/phpbb-core": "self.version"
},
"require": {
"php": ">=5.4",
"php": ">=5.6",
"bantu/ini-get-wrapper": "1.0.*",
"composer/composer": "^1.6",
"composer/installers": "^1.4",
"google/recaptcha": "~1.1",
"guzzlehttp/guzzle": "~5.3",
"guzzlehttp/guzzle": "~6.3",
"lusitanian/oauth": "^0.8.1",
"marc1706/fast-image-size": "^1.1",
"paragonie/random_compat": "^1.4",
"patchwork/utf8": "^1.1",
"s9e/text-formatter": "~0.13.0",
"symfony/config": "^2.8",
"symfony/console": "^2.8",
"symfony/debug": "^2.8",
"symfony/dependency-injection": "^2.8",
"symfony/event-dispatcher": "^2.8",
"symfony/filesystem": "^2.8",
"symfony/finder": "^2.8",
"symfony/http-foundation": "^2.8",
"symfony/http-kernel": "^2.8",
"symfony/proxy-manager-bridge": "^2.8",
"symfony/routing": "^2.8",
"symfony/twig-bridge": "^2.8",
"symfony/yaml": "^2.8",
"symfony/config": "~3.1",
"symfony/console": "~3.1",
"symfony/debug": "~3.1",
"symfony/dependency-injection": "~3.1",
"symfony/event-dispatcher": "~3.1",
"symfony/filesystem": "~3.1",
"symfony/finder": "~3.1",
"symfony/http-foundation": "~3.1",
"symfony/http-kernel": "~3.1",
"symfony/proxy-manager-bridge": "~3.1",
"symfony/routing": "~3.1",
"symfony/twig-bridge": "~3.1",
"symfony/yaml": "~3.1",
"twig/twig": "^1.0"
},
"require-dev": {
"fabpot/goutte": "~2.0",
"fabpot/goutte": "~3.1",
"facebook/webdriver": "~1.1",
"laravel/homestead": "~2.2",
"laravel/homestead": "~4.0",
"phing/phing": "2.4.*",
"phpunit/dbunit": "1.3.*",
"phpunit/phpunit": "^4.1",
"sami/sami": "1.*",
"phpunit/dbunit": "~2.0",
"phpunit/phpunit": "^5.7",
"squizlabs/php_codesniffer": "2.*",
"symfony/browser-kit": "^2.8",
"symfony/css-selector": "^2.8",
"symfony/dom-crawler": "^2.8"
"symfony/browser-kit": "~3.1",
"symfony/css-selector": "~3.1",
"symfony/dom-crawler": "~3.1"
},
"extra": {
"branch-alias": {
"dev-master": "3.2.x-dev"
"dev-master": "3.3.x-dev"
}
},
"config": {
"platform": {
"php": "5.4.7"
"php": "5.6"
}
}
}

2339
phpBB/composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -14,6 +14,7 @@ parameters:
# List of default password driver types
passwords.algorithms:
- passwords.driver.argon2i
- passwords.driver.bcrypt_2y
- passwords.driver.bcrypt
- passwords.driver.salted_md5

View File

@@ -8,6 +8,7 @@ imports:
- { resource: services_cron.yml }
- { resource: services_db.yml }
- { resource: services_event.yml }
- { resource: services_extensions.yml }
- { resource: services_feed.yml }
- { resource: services_files.yml }
- { resource: services_filesystem.yml }
@@ -24,6 +25,7 @@ imports:
- { resource: services_profilefield.yml }
- { resource: services_report.yml }
- { resource: services_routing.yml }
- { resource: services_storage.yml }
- { resource: services_text_formatter.yml }
- { resource: services_text_reparser.yml }
- { resource: services_twig.yml }
@@ -98,25 +100,12 @@ services:
- '%core.root_path%'
- '@template'
ext.manager:
class: phpbb\extension\manager
arguments:
- '@service_container'
- '@dbal.conn'
- '@config'
- '@filesystem'
- '%tables.ext%'
- '%core.root_path%'
- '%core.php_ext%'
- '@cache'
file_downloader:
class: phpbb\file_downloader
file_locator:
class: phpbb\routing\file_locator
arguments:
- '@filesystem'
- '%core.root_path%'
group_helper:
@@ -140,7 +129,6 @@ services:
class: phpbb\path_helper
arguments:
- '@symfony_request'
- '@filesystem'
- '@request'
- '%core.root_path%'
- '%core.php_ext%'

View File

@@ -6,9 +6,8 @@ services:
- '@config'
- '@dbal.conn'
- '@dispatcher'
- '@filesystem'
- '@attachment.resync'
- '%core.root_path%'
- '@storage.attachment'
attachment.manager:
class: phpbb\attachment\manager
@@ -36,5 +35,5 @@ services:
- '@mimetype.guesser'
- '@dispatcher'
- '@plupload'
- '@storage.attachment'
- '@user'
- '%core.root_path%'

View File

@@ -61,11 +61,11 @@ services:
- '@config'
- '%core.root_path%'
- '%core.php_ext%'
- '@filesystem'
- '@storage.avatar'
- '@path_helper'
- '@dispatcher'
- '@files.factory'
- '@cache.driver'
- '@php_ini'
calls:
- [set_name, [avatar.driver.upload]]
tags:

View File

@@ -140,6 +140,33 @@ services:
tags:
- { name: console.command }
console.command.extension.install:
class: phpbb\console\command\extension\install
arguments:
- '@user'
- '@ext.composer.manager'
- '@language'
tags:
- { name: console.command }
console.command.extension.list_available:
class: phpbb\console\command\extension\list_available
arguments:
- '@user'
- '@ext.composer.manager'
- '@language'
tags:
- { name: console.command }
console.command.extension.manage:
class: phpbb\console\command\extension\manage
arguments:
- '@user'
- '@ext.composer.manager'
- '@language'
tags:
- { name: console.command }
console.command.extension.purge:
class: phpbb\console\command\extension\purge
arguments:
@@ -149,6 +176,15 @@ services:
tags:
- { name: console.command }
console.command.extension.remove:
class: phpbb\console\command\extension\remove
arguments:
- '@user'
- '@ext.composer.manager'
- '@language'
tags:
- { name: console.command }
console.command.extension.show:
class: phpbb\console\command\extension\show
arguments:
@@ -158,6 +194,15 @@ services:
tags:
- { name: console.command }
console.command.extension.update:
class: phpbb\console\command\extension\update
arguments:
- '@user'
- '@ext.composer.manager'
- '@language'
tags:
- { name: console.command }
console.command.fixup.recalculate_email_hash:
class: phpbb\console\command\fixup\recalculate_email_hash
arguments:

View File

@@ -68,5 +68,3 @@ services:
viewonline_helper:
class: phpbb\viewonline_helper
arguments:
- '@filesystem'

View File

@@ -3,6 +3,7 @@ services:
class: phpbb\cron\manager
arguments:
- '@cron.task_collection'
- '@routing.helper'
- '%core.root_path%'
- '%core.php_ext%'
@@ -13,6 +14,18 @@ services:
- '@config'
- '@dbal.conn'
cron.controller:
class: phpbb\cron\controller\cron
cron.event_listener:
class: phpbb\cron\event\cron_runner_listener
arguments:
- '@cron.lock_db'
- '@cron.manager'
- '@request'
tags:
- { name: kernel.event_subscriber }
# ----- Cron tasks -----
cron.task_collection:
class: phpbb\di\service_collection

View File

@@ -0,0 +1,47 @@
services:
ext.manager:
class: phpbb\extension\manager
arguments:
- '@service_container'
- '@dbal.conn'
- '@config'
- '%tables.ext%'
- '%core.root_path%'
- '%core.php_ext%'
- '@cache'
ext.composer.installer:
class: phpbb\composer\installer
arguments:
- '%core.root_path%'
- '@filesystem'
- '@request'
- '@config'
ext.composer.manager:
class: phpbb\composer\extension_manager
arguments:
- '@ext.composer.installer'
- '@cache.driver'
- '@ext.manager'
- '@filesystem'
- phpbb-extension
- EXTENSIONS_
- '%core.root_path%'
- '@config'
style.composer.manager:
class: phpbb\composer\manager
arguments:
- '@ext.composer.installer'
- '@cache.driver'
- phpbb-style
- STYLES_
lang.composer.manager:
class: phpbb\composer\manager
arguments:
- '@ext.composer.installer'
- '@cache.driver'
- phpbb-language
- LANGUAGES_

View File

@@ -16,6 +16,16 @@ services:
- '@mimetype.guesser'
- '@plupload'
files.filespec_storage:
class: phpbb\files\filespec_storage
shared: false
arguments:
- '@language'
- '@php_ini'
- '@upload_imagesize'
- '@mimetype.guesser'
- '@plupload'
files.upload:
class: phpbb\files\upload
shared: false
@@ -36,6 +46,16 @@ services:
- '@plupload'
- '@request'
files.types.form_storage:
class: phpbb\files\types\form_storage
shared: false
arguments:
- '@files.factory'
- '@language'
- '@php_ini'
- '@plupload'
- '@request'
files.types.local:
class: phpbb\files\types\local
shared: false
@@ -55,3 +75,14 @@ services:
- '@php_ini'
- '@request'
- '%core.root_path%'
files.types.remote_storage:
class: phpbb\files\types\remote_storage
shared: false
arguments:
- '@config'
- '@files.factory'
- '@language'
- '@php_ini'
- '@request'
- '%core.root_path%'

View File

@@ -1,4 +1,7 @@
parameters:
passwords.driver.argon2_memory_cost: 1024
passwords.driver.argon2_threads: 2
passwords.driver.argon2_time_cost: 2
passwords.driver.bcrypt_cost: 10
services:
@@ -27,6 +30,17 @@ services:
tags:
- { name: service_collection, tag: passwords.driver }
passwords.driver.argon2i:
class: phpbb\passwords\driver\argon2i
arguments:
- '@config'
- '@passwords.driver_helper'
- '%passwords.driver.argon2_memory_cost%'
- '%passwords.driver.argon2_threads%'
- '%passwords.driver.argon2_time_cost%'
tags:
- { name: passwords.driver }
passwords.driver.bcrypt:
class: phpbb\passwords\driver\bcrypt
arguments:

View File

@@ -12,8 +12,6 @@ services:
class: Symfony\Component\HttpKernel\EventListener\RouterListener
arguments:
- '@router'
- null
- null
- '@request_stack'
tags:
- { name: kernel.event_subscriber }
@@ -25,7 +23,6 @@ services:
- '@router'
- '@symfony_request'
- '@request'
- '@filesystem'
- '%core.root_path%'
- '%core.php_ext%'

View File

@@ -0,0 +1,67 @@
services:
# Storages
storage.attachment:
class: phpbb\storage\storage
arguments:
- '@storage.adapter.factory'
- 'attachment'
tags:
- { name: storage }
storage.avatar:
class: phpbb\storage\storage
arguments:
- '@storage.adapter.factory'
- 'avatar'
tags:
- { name: storage }
# Factory
storage.adapter.factory:
class: phpbb\storage\adapter_factory
arguments:
- '@config'
- '@storage.adapter_collection'
- '@storage.provider_collection'
# Collections
storage.storage_collection:
class: phpbb\di\service_collection
arguments:
- '@service_container'
tags:
- { name: service_collection, tag: storage }
storage.adapter_collection:
class: phpbb\di\service_collection
arguments:
- '@service_container'
tags:
- { name: service_collection, tag: storage.adapter, class_name_aware: true }
storage.provider_collection:
class: phpbb\di\service_collection
arguments:
- '@service_container'
tags:
- { name: service_collection, tag: storage.provider, class_name_aware: true }
# Adapters
storage.adapter.local:
class: phpbb\storage\adapter\local
shared: false
arguments:
- '@filesystem'
- '@upload_imagesize'
- '@mimetype.guesser'
- '%core.root_path%'
tags:
- { name: storage.adapter }
# Providers
storage.provider.local:
class: phpbb\storage\provider\local
arguments:
tags:
- { name: storage.provider }

View File

@@ -15,6 +15,7 @@ services:
- []
calls:
- [setLexer, ['@template.twig.lexer']]
- [addGlobal, ['config', '@config']]
template.twig.lexer:
class: phpbb\template\twig\lexer
@@ -24,8 +25,6 @@ services:
template.twig.loader:
class: phpbb\template\twig\loader
arguments:
- '@filesystem'
template.twig.extensions.collection:
class: phpbb\di\service_collection

View File

@@ -0,0 +1,3 @@
phpbb_cron_run:
path: /{cron_type}
defaults: { _controller: cron.controller:handle }

View File

@@ -8,6 +8,10 @@
# instantiate the 'foo_service' service and call the 'method' method.
#
phpbb_cron_routing:
resource: cron.yml
prefix: /cron
phpbb_feed_routing:
resource: feed.yml
prefix: /feed

View File

@@ -11,3 +11,7 @@ core:
debug: true
auto_reload: true
enable_debug_extension: true
extensions:
composer_debug: true
composer_verbose: true

View File

@@ -31,7 +31,6 @@ services:
file_locator:
class: phpbb\routing\file_locator
arguments:
- '@filesystem'
- '%core.root_path%'
kernel_exception_subscriber:
@@ -50,7 +49,6 @@ services:
class: phpbb\path_helper
arguments:
- '@symfony_request'
- '@filesystem'
- '@request'
- '%core.root_path%'
- '%core.php_ext%'

View File

@@ -11,10 +11,11 @@
*
*/
use Symfony\Component\HttpFoundation\RedirectResponse;
/**
*/
define('IN_PHPBB', true);
define('IN_CRON', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
@@ -23,62 +24,14 @@ include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin(false);
$auth->acl($user->data);
function output_image()
{
// Output transparent gif
header('Cache-Control: no-cache');
header('Content-type: image/gif');
header('Content-length: 43');
echo base64_decode('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
// Flush here to prevent browser from showing the page as loading while
// running cron.
flush();
}
// Thanks to various fatal errors and lack of try/finally, it is quite easy to leave
// the cron lock locked, especially when working on cron-related code.
//
// Attempt to alleviate the problem by doing setup outside of the lock as much as possible.
$cron_type = $request->variable('cron_type', '');
// Comment this line out for debugging so the page does not return an image.
output_image();
$get_params_array = $request->get_super_global(\phpbb\request\request_interface::GET);
/* @var $cron_lock \phpbb\lock\db */
$cron_lock = $phpbb_container->get('cron.lock_db');
if ($cron_lock->acquire())
{
/* @var $cron \phpbb\cron\manager */
$cron = $phpbb_container->get('cron.manager');
$task = $cron->find_task($cron_type);
if ($task)
{
/**
* This event enables you to catch the task before it runs
*
* @event core.cron_run_before
* @var \phpbb\cron\task\wrapper task Current Cron task
* @since 3.1.8-RC1
*/
$vars = array(
'task',
);
extract($phpbb_dispatcher->trigger_event('core.cron_run_before', compact($vars)));
if ($task->is_parametrized())
{
$task->parse_parameters($request);
}
if ($task->is_ready())
{
$task->run();
}
}
$cron_lock->release();
}
garbage_collection();
/** @var \phpbb\controller\helper $controller_helper */
$controller_helper = $phpbb_container->get('controller.helper');
$response = new RedirectResponse(
$controller_helper->route('phpbb_cron_run', $get_params_array),
301
);
$response->send();

View File

@@ -19,7 +19,7 @@ $auth->acl($user->data);
$user->setup();
$echos = 0;
if (!isset($config['avatar_salt']))
{
$cache->purge();
@@ -30,6 +30,11 @@ if (!isset($config['avatar_salt']))
die('database not up to date');
}
if (!isset($config['storage\\avatar\\config\\path']) || $config['storage\\avatar\\config\\path'] !== 'phpbb\\storage\\provider\\local')
{
die('use local provider');
}
// let's start with the users using a group_avatar.
$sql = 'SELECT group_id, group_avatar
FROM ' . GROUPS_TABLE . '
@@ -46,16 +51,16 @@ while ($row = $db->sql_fetchrow($result))
{
$new_avatar_name = adjust_avatar($row['group_avatar'], 'g' . $row['group_id']);
$group_avatars[] = $new_avatar_name;
// failure is probably due to the avatar name already being adjusted
if ($new_avatar_name !== false)
{
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_avatar = '" . $db->sql_escape($new_avatar_name) . "'
WHERE user_avatar = '" . $db->sql_escape($row['group_avatar']) . "'
WHERE user_avatar = '" . $db->sql_escape($row['group_avatar']) . "'
AND user_avatar_type = " . AVATAR_UPLOAD;
$db->sql_query($sql);
$sql = 'UPDATE ' . GROUPS_TABLE . "
SET group_avatar = '" . $db->sql_escape($new_avatar_name) . "'
WHERE group_id = {$row['group_id']}";
@@ -80,8 +85,8 @@ while ($row = $db->sql_fetchrow($result))
$db->sql_freeresult($result);
$sql = 'SELECT user_id, username, user_avatar, user_avatar_type
FROM ' . USERS_TABLE . '
WHERE user_avatar_type = ' . AVATAR_UPLOAD . '
FROM ' . USERS_TABLE . '
WHERE user_avatar_type = ' . AVATAR_UPLOAD . '
AND ' . $db->sql_in_set('user_avatar', $group_avatars, true, true);
$result = $db->sql_query($sql);
@@ -108,7 +113,7 @@ while ($row = $db->sql_fetchrow($result))
$db->sql_query($sql);
echo '<br /> Failed updating user ' . $row['user_id'] . "\n";
}
if ($echos > 200)
{
echo '<br />' . "\n";
@@ -131,8 +136,8 @@ $db->sql_close();
function adjust_avatar($old_name, $midfix)
{
global $config, $phpbb_root_path;
$avatar_path = $phpbb_root_path . $config['avatar_path'];
$avatar_path = $phpbb_root_path . $config['storage\\avatar\\config\\path'];
$extension = strtolower(substr(strrchr($old_name, '.'), 1));
$new_name = $config['avatar_salt'] . '_' . $midfix . '.' . $extension;

View File

@@ -44,7 +44,7 @@ require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
$phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx);
$phpbb_class_loader->register();
$finder = new \phpbb\finder(new \phpbb\filesystem\filesystem(), $phpbb_root_path);
$finder = new \phpbb\finder($phpbb_root_path);
$classes = $finder->core_path('phpbb/')
->directory('/db/migration/data')
->get_classes();

View File

@@ -62,7 +62,7 @@ echo "USE $dbname;$newline$newline";
@set_time_limit(0);
$finder = new \phpbb\finder(new \phpbb\filesystem\filesystem(), $phpbb_root_path);
$finder = new \phpbb\finder($phpbb_root_path);
$classes = $finder->core_path('phpbb/')
->directory('/db/migration/data')
->get_classes();

View File

@@ -83,10 +83,10 @@ prosilver by subBlue Design, Tom Beddard, (c) 2004 phpBB Limited
phpBB contains code from the following applications:
LGPL licenced:
LGPL licensed:
Smarty (c) 2001, 2002 by ispi of Lincoln, Inc, http://smarty.php.net/
GPL licenced:
GPL licensed:
phpMyAdmin (c) 2001, 2003 phpMyAdmin Devel team, http://www.phpmyadmin.net/
Jabber Class (c) 2006 Flyspray.org, http://www.flyspray.org/
Chora (c) 2000-2006, The Horde Project. http://horde.org/chora/
@@ -100,6 +100,6 @@ Pear (c) 2001-2004 PHP Group, http://pear.php.net
Text_Diff-0.2.1 http://pear.php.net/package/Text_Diff
MIT licenced:
MIT licensed:
Symfony2 (c) 2004-2011 Fabien Potencier, https://symfony.com/
Cookie Consent (c) 2015 Silktide Ltd, https://cookieconsent.insites.com

View File

@@ -4,7 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="keywords" content="" />
<meta name="description" content="phpBB 3.2.x Readme" />
<meta name="description" content="phpBB 3.3.x Readme" />
<title>phpBB &bull; Readme</title>
<link href="assets/css/stylesheet.css" rel="stylesheet" type="text/css" media="screen" />
@@ -21,7 +21,7 @@
<div id="doc-description">
<a href="../index.php" id="logo"><img src="assets/images/site_logo.gif" alt="" /></a>
<h1>phpBB 3.2.x Readme</h1>
<h1>phpBB 3.3.x Readme</h1>
<p style="display: none;"><a href="#start_here">Skip</a></p>
</div>
@@ -323,7 +323,7 @@
<div class="content">
<p>phpBB 3.2.x takes advantage of new features added in PHP 5.4. We recommend that you upgrade to the latest stable release of PHP to run phpBB. The minimum version required is PHP 5.4.7 and the maximum supported version is the latest stable version of PHP.</p>
<p>phpBB 3.2.x takes advantage of new features added in PHP 5.5.9. We recommend that you upgrade to the latest stable release of PHP to run phpBB. The minimum version required is PHP 5.5.9 and the maximum supported version is the latest stable version of PHP.</p>
<p>Please remember that running any application on a development (unstable, e.g. a beta release) version of PHP can lead to strange/unexpected results which may appear to be bugs in the application. Therefore, we recommend you upgrade to the newest stable version of PHP before running phpBB. If you are running a development version of PHP please check any bugs you find on a system running a stable release before submitting.</p>

View File

@@ -264,7 +264,6 @@ PHPBB_QA (Set board to QA-Mode, which means the updater also c
<li>{T_SUPER_TEMPLATE_PATH} - styles/xxx/template</li>
<li>{T_IMAGES_PATH} - images/</li>
<li>{T_SMILIES_PATH} - $config['smilies_path']/</li>
<li>{T_AVATAR_PATH} - $config['avatar_path']/</li>
<li>{T_AVATAR_GALLERY_PATH} - $config['avatar_gallery_path']/</li>
<li>{T_ICONS_PATH} - $config['icons_path']/</li>
<li>{T_RANKS_PATH} - $config['ranks_path']/</li>
@@ -1211,7 +1210,7 @@ parent = prosilver</pre>
&lt;td class=&quot;gensmall&quot;&gt;TEST&lt;/td&gt;
</pre></div>
<p>Try to match text class types with existing useage, e.g. don't use the nav class where viewtopic uses gensmall for example.</p>
<p>Try to match text class types with existing usage, e.g. don't use the nav class where viewtopic uses gensmall for example.</p>
<p>Row colours/classes are now defined by the template, use an <code>IF S_ROW_COUNT</code> switch, see viewtopic or viewforum for an example.</p>
@@ -1223,7 +1222,7 @@ parent = prosilver</pre>
<p>The separate catXXXX and thXXX classes are gone. When defining a header cell just use <code>&lt;th&gt;</code> rather than <code>&lt;th class="thHead"&gt;</code> etc. Similarly for cat, don't use <code>&lt;td class="catLeft"&gt;</code> use <code>&lt;td class="cat"&gt;</code> etc.</p>
<p>Try to retain consistency of basic layout and class useage, i.e. _EXPLAIN text should generally be placed below the title it explains, e.g. <code>{L_POST_USERNAME}&lt;br /&gt;&lt;span class="gensmall"&gt;{L_POST_USERNAME_EXPLAIN}&lt;/span&gt;</code> is the typical way of handling this ... there may be exceptions and this isn't a hard and fast rule.</p>
<p>Try to retain consistency of basic layout and class usage, i.e. _EXPLAIN text should generally be placed below the title it explains, e.g. <code>{L_POST_USERNAME}&lt;br /&gt;&lt;span class="gensmall"&gt;{L_POST_USERNAME_EXPLAIN}&lt;/span&gt;</code> is the typical way of handling this ... there may be exceptions and this isn't a hard and fast rule.</p>
<p>Try to keep template conditional and other statements tabbed in line with the block to which they refer.</p>
@@ -1767,7 +1766,7 @@ This may span multiple lines.
<p>The <a href="http://en.wikipedia.org/wiki/Universal_Character_Set">Universal Character Set (UCS)</a> described in ISO/IEC 10646 consists of a large amount of characters. Each of them has a unique name and a code point which is an integer number. <a href="http://en.wikipedia.org/wiki/Unicode">Unicode</a> - which is an industry standard - complements the Universal Character Set with further information about the characters' properties and alternative character encodings. More information on Unicode can be found on the <a href="http://www.unicode.org/">Unicode Consortium's website</a>. One of the Unicode encodings is the <a href="http://en.wikipedia.org/wiki/UTF-8">8-bit Unicode Transformation Format (UTF-8)</a>. It encodes characters with up to four bytes aiming for maximum compatibility with the <a href="http://en.wikipedia.org/wiki/ASCII">American Standard Code for Information Interchange</a> which is a 7-bit encoding of a relatively small subset of the UCS.</p>
<h4>phpBB's use of Unicode</h4>
<p>Unfortunately PHP does not faciliate the use of Unicode prior to version 6. Most functions simply treat strings as sequences of bytes assuming that each character takes up exactly one byte. This behaviour still allows for storing UTF-8 encoded text in PHP strings but many operations on strings have unexpected results. To circumvent this problem we have created some alternative functions to PHP's native string operations which use code points instead of bytes. These functions can be found in <code>/includes/utf/utf_tools.php</code>. They are also covered in the <a href="http://area51.phpbb.com/docs/code/">phpBB3 Sourcecode Documentation</a>. A lot of native PHP functions still work with UTF-8 as long as you stick to certain restrictions. For example <code>explode</code> still works as long as the first and the last character of the delimiter string are ASCII characters.</p>
<p>Unfortunately PHP does not facilitate the use of Unicode prior to version 6. Most functions simply treat strings as sequences of bytes assuming that each character takes up exactly one byte. This behaviour still allows for storing UTF-8 encoded text in PHP strings but many operations on strings have unexpected results. To circumvent this problem we have created some alternative functions to PHP's native string operations which use code points instead of bytes. These functions can be found in <code>/includes/utf/utf_tools.php</code>. They are also covered in the <a href="http://area51.phpbb.com/docs/code/">phpBB3 Sourcecode Documentation</a>. A lot of native PHP functions still work with UTF-8 as long as you stick to certain restrictions. For example <code>explode</code> still works as long as the first and the last character of the delimiter string are ASCII characters.</p>
<p>phpBB only uses the ASCII and the UTF-8 character encodings. Still all Strings are UTF-8 encoded because ASCII is a subset of UTF-8. The only exceptions to this rule are code sections which deal with external systems which use other encodings and character sets. Such external data should be converted to UTF-8 using the <code>utf8_recode()</code> function supplied with phpBB. It supports a variety of other character sets and encodings, a full list can be found below.</p>
@@ -1848,7 +1847,7 @@ if (utf8_case_fold_nfc($string1) == utf8_case_fold_nfc($string2))
<p>The <abbr title="Internet Engineering Task Force">IETF</abbr> recently published <a href="http://tools.ietf.org/html/rfc4646">RFC 4646</a> for tags used to identify languages, which in combination with <a href="http://tools.ietf.org/html/rfc4647">RFC 4647</a> obseletes the older <a href="http://tools.ietf.org/html/rfc3066">RFC 3006</a> and older-still <a href="http://tools.ietf.org/html/rfc1766">RFC 1766</a>. <a href="http://tools.ietf.org/html/rfc4646">RFC 4646</a> uses <a href="http://www.loc.gov/standards/iso639-2/php/English_list.php">ISO 639-1/ISO 639-2</a>, <a href="http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html">ISO 3166-1 alpha-2</a>, <a href="http://www.unicode.org/iso15924/iso15924-codes.html">ISO 15924</a> and <a href="http://unstats.un.org/unsd/methods/m49/m49.htm">UN M.49</a> to define a language tag. Each complete tag is composed of subtags which are not case sensitive and can also be empty.</p>
<p>Ordering of the subtags in the case that they are all non-empty is: <code>language</code>-<code>script</code>-<code>region</code>-<code>variant</code>-<code>extension</code>-<code>privateuse</code>. Should any subtag be empty, its corresponding hyphen would also be ommited. Thus, the language tag for English will be <code>en</code> <strong>and not</strong> <code>en-----</code>.</p>
<p>Ordering of the subtags in the case that they are all non-empty is: <code>language</code>-<code>script</code>-<code>region</code>-<code>variant</code>-<code>extension</code>-<code>privateuse</code>. Should any subtag be empty, its corresponding hyphen would also be omitted. Thus, the language tag for English will be <code>en</code> <strong>and not</strong> <code>en-----</code>.</p>
<p>Most language tags consist of a two- or three-letter language subtag (from <a href="http://www.loc.gov/standards/iso639-2/php/English_list.php">ISO 639-1/ISO 639-2</a>). Sometimes, this is followed by a two-letter or three-digit region subtag (from <a href="http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html">ISO 3166-1 alpha-2</a> or <a href="http://unstats.un.org/unsd/methods/m49/m49.htm">UN M.49</a>). Some examples are:</p>
@@ -1902,7 +1901,7 @@ if (utf8_case_fold_nfc($string1) == utf8_case_fold_nfc($string2))
<p>The ultimate aim of a language tag is to convey the needed <strong>useful distingushing information</strong>, whilst keeping it as <strong>short as possible</strong>. So for example, use <code>en</code>, <code>fr</code> and <code>ja</code> as opposed to <code>en-GB</code>, <code>fr-FR</code> and <code>ja-JP</code>, since we know English, French and Japanese are the native language of Great Britain, France and Japan respectively.</p>
<p>Next is the <a href="http://www.unicode.org/iso15924/iso15924-codes.html">ISO 15924</a> language script code and when one should or shouldn't use it. For example, whilst <code>en-Latn</code> is syntaxically correct for describing English written with Latin script, real world English writing is <strong>more-or-less exclusively in the Latin script</strong>. For such languages like English that are written in a single script, the <a href="http://www.iana.org/assignments/language-subtag-registry"><abbr title="Internet Assigned Numbers Authority">IANA</abbr> Language Subtag Registry</a> has a "Suppress-Script" field meaning the script code <strong>should be ommitted</strong> unless a specific language tag requires a specific script code. Some languages are <strong>written in more than one script</strong> and in such cases, the script code <strong>is encouraged</strong> since an end-user may be able to read their language in one script, but not the other. Some examples are:</p>
<p>Next is the <a href="http://www.unicode.org/iso15924/iso15924-codes.html">ISO 15924</a> language script code and when one should or shouldn't use it. For example, whilst <code>en-Latn</code> is syntaxically correct for describing English written with Latin script, real world English writing is <strong>more-or-less exclusively in the Latin script</strong>. For such languages like English that are written in a single script, the <a href="http://www.iana.org/assignments/language-subtag-registry"><abbr title="Internet Assigned Numbers Authority">IANA</abbr> Language Subtag Registry</a> has a "Suppress-Script" field meaning the script code <strong>should be omitted</strong> unless a specific language tag requires a specific script code. Some languages are <strong>written in more than one script</strong> and in such cases, the script code <strong>is encouraged</strong> since an end-user may be able to read their language in one script, but not the other. Some examples are:</p>
<table>
<caption>Examples of using a language subtag in combination with a script subtag</caption>
@@ -1967,7 +1966,7 @@ if (utf8_case_fold_nfc($string1) == utf8_case_fold_nfc($string2))
</tbody>
</table>
<p>Usage of the three-digit <a href="http://unstats.un.org/unsd/methods/m49/m49.htm">UN M.49</a> code over the two-letter <a href="http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html">ISO 3166-1 alpha-2</a> code should hapen if a macro-geographical entity is required and/or the <a href="http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html">ISO 3166-1 alpha-2</a> is ambiguous.</p>
<p>Usage of the three-digit <a href="http://unstats.un.org/unsd/methods/m49/m49.htm">UN M.49</a> code over the two-letter <a href="http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html">ISO 3166-1 alpha-2</a> code should happen if a macro-geographical entity is required and/or the <a href="http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html">ISO 3166-1 alpha-2</a> is ambiguous.</p>
<p>Examples of English using marco-geographical regions:</p>

View File

@@ -164,13 +164,13 @@ acp_group_options_before
===
* Location: adm/style/acp_groups.html
* Since: 3.1.0-b4
* Purpose: Add addtional options to group settings (before GROUP_FOUNDER_MANAGE)
* Purpose: Add additional options to group settings (before GROUP_FOUNDER_MANAGE)
acp_group_options_after
===
* Location: adm/style/acp_groups.html
* Since: 3.1.0-b4
* Purpose: Add addtional options to group settings (after GROUP_RECEIVE_PM)
* Purpose: Add additional options to group settings (after GROUP_RECEIVE_PM)
acp_groups_find_username_append
===

View File

@@ -3,17 +3,8 @@
# from your system's lighttpd.conf.
# Tested with lighttpd 1.4.35
# If you want to use the X-Sendfile feature,
# uncomment the 'allow-x-send-file' for the fastcgi
# server below and add the following to your config.php
#
# define('PHPBB_ENABLE_X_SENDFILE', true);
#
# See http://blog.lighttpd.net/articles/2006/07/02/x-sendfile
# for the details on X-Sendfile.
# Load moules
server.modules += (
server.modules += (
"mod_access",
"mod_fastcgi",
"mod_rewrite",
@@ -32,11 +23,11 @@ $HTTP["host"] == "www.myforums.com" {
server.name = "www.myforums.com"
server.document-root = "/path/to/phpbb"
server.dir-listing = "disable"
index-file.names = ( "index.php", "index.htm", "index.html" )
accesslog.filename = "/var/log/lighttpd/access-www.myforums.com.log"
# Deny access to internal phpbb files.
# Deny access to internal phpbb files.
$HTTP["url"] =~ "^/(config\.php|common\.php|cache|files|images/avatars/upload|includes|phpbb|store|vendor)" {
url.access-deny = ( "" )
}
@@ -45,12 +36,12 @@ $HTTP["host"] == "www.myforums.com" {
$HTTP["url"] =~ "/\.svn|/\.git" {
url.access-deny = ( "" )
}
# Deny access to apache configuration files.
$HTTP["url"] =~ "/\.htaccess|/\.htpasswd|/\.htgroups" {
url.access-deny = ( "" )
}
# The following 3 lines will rewrite URLs passed through the front controller
# to not require app.php in the actual URL. In other words, a controller is
# by default accessed at /app.php/my/controller, but can also be accessed at
@@ -58,14 +49,14 @@ $HTTP["host"] == "www.myforums.com" {
url.rewrite-if-not-file = (
"^/(.*)$" => "/app.php/$1"
)
fastcgi.server = ( ".php" =>
fastcgi.server = ( ".php" =>
((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket",
"max-procs" => 4,
"idle-timeout" => 30,
"bin-environment" => (
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "10",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),

View File

@@ -3,14 +3,6 @@
# from your system's nginx.conf.
# Tested with nginx 0.8.35.
# If you want to use the X-Accel-Redirect feature,
# add the following to your config.php.
#
# define('PHPBB_ENABLE_X_ACCEL_REDIRECT', true);
#
# See http://wiki.nginx.org/XSendfile for the details
# on X-Accel-Redirect.
http {
# Compression - requires gzip and gzip static modules.
gzip on;

View File

@@ -99,6 +99,11 @@ if (isset($_GET['avatar']))
/* @var $phpbb_avatar_manager \phpbb\avatar\manager */
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
if (@is_file($phpbb_root_path . $config['exts_composer_vendor_dir'] . '/autoload.php'))
{
require_once($phpbb_root_path . $config['exts_composer_vendor_dir'] . '/autoload.php');
}
$filename = $request->variable('avatar', '');
$avatar_group = false;
$exit = false;
@@ -249,7 +254,6 @@ else
}
}
$download_mode = (int) $extensions[$attachment['extension']]['download_mode'];
$display_cat = $extensions[$attachment['extension']]['display_cat'];
if (($display_cat == ATTACHMENT_CATEGORY_IMAGE || $display_cat == ATTACHMENT_CATEGORY_THUMB) && !$user->optionget('viewimg'))
@@ -262,6 +266,8 @@ else
$display_cat = ATTACHMENT_CATEGORY_NONE;
}
$redirect = '';
/**
* Event to modify data before sending file to browser
*
@@ -269,21 +275,22 @@ else
* @var int attach_id The attachment ID
* @var array attachment Array with attachment data
* @var int display_cat Attachment category
* @var int download_mode File extension specific download mode
* @var array extensions Array with file extensions data
* @var string mode Download mode
* @var bool thumbnail Flag indicating if the file is a thumbnail
* @var string redirect Do a redirection instead of reading the file
* @since 3.1.6-RC1
* @changed 3.1.7-RC1 Fixing wrong name of a variable (replacing "extension" by "extensions")
* @changed 3.3.0-a1 Add redirect variable
*/
$vars = array(
'attach_id',
'attachment',
'display_cat',
'download_mode',
'extensions',
'mode',
'thumbnail',
'redirect',
);
extract($phpbb_dispatcher->trigger_event('core.download_file_send_to_browser_before', compact($vars)));
@@ -304,23 +311,15 @@ else
}
else
{
// Determine the 'presenting'-method
if ($download_mode == PHYSICAL_LINK)
if (!empty($redirect))
{
// This presenting method should no longer be used
if (!@is_dir($phpbb_root_path . $config['upload_path']))
{
send_status_line(500, 'Internal Server Error');
trigger_error($user->lang['PHYSICAL_DOWNLOAD_NOT_POSSIBLE']);
}
redirect($phpbb_root_path . $config['upload_path'] . '/' . $attachment['physical_filename']);
file_gc();
redirect($redirect, false, true);
}
else
{
send_file_to_browser($attachment, $config['upload_path'], $display_cat);
file_gc();
send_file_to_browser($attachment, $display_cat);
}
file_gc();
}
}

View File

@@ -147,7 +147,6 @@ class acp_attachments
'allow_attachments' => array('lang' => 'ALLOW_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
'allow_pm_attach' => array('lang' => 'ALLOW_PM_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
'upload_path' => array('lang' => 'UPLOAD_DIR', 'validate' => 'wpath', 'type' => 'text:25:100', 'explain' => true),
'display_order' => array('lang' => 'DISPLAY_ORDER', 'validate' => 'bool', 'type' => 'custom', 'method' => 'display_order', 'explain' => true),
'attachment_quota' => array('lang' => 'ATTACH_QUOTA', 'validate' => 'string', 'type' => 'custom', 'method' => 'max_filesize', 'explain' => true),
'max_filesize' => array('lang' => 'ATTACH_MAX_FILESIZE', 'validate' => 'string', 'type' => 'custom', 'method' => 'max_filesize', 'explain' => true),
@@ -223,9 +222,6 @@ class acp_attachments
{
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_CONFIG_ATTACH');
// Check Settings
$this->test_upload($error, $this->new_config['upload_path'], false);
if (!count($error))
{
trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
@@ -590,11 +586,6 @@ class acp_attachments
'allow_in_pm' => ($allow_in_pm) ? 1 : 0,
);
if ($action == 'add')
{
$group_ary['download_mode'] = INLINE_LINK;
}
$sql = ($action == 'add') ? 'INSERT INTO ' . EXTENSION_GROUPS_TABLE . ' ' : 'UPDATE ' . EXTENSION_GROUPS_TABLE . ' SET ';
$sql .= $db->sql_build_array((($action == 'add') ? 'INSERT' : 'UPDATE'), $group_ary);
$sql .= ($action == 'edit') ? " WHERE group_id = $group_id" : '';
@@ -1536,50 +1527,6 @@ class acp_attachments
return $imagick;
}
/**
* Test Settings
*/
function test_upload(&$error, $upload_dir, $create_directory = false)
{
global $user, $phpbb_root_path;
// Does the target directory exist, is it a directory and writable.
if ($create_directory)
{
if (!file_exists($phpbb_root_path . $upload_dir))
{
@mkdir($phpbb_root_path . $upload_dir, 0777);
try
{
$this->filesystem->phpbb_chmod($phpbb_root_path . $upload_dir, CHMOD_READ | CHMOD_WRITE);
}
catch (\phpbb\filesystem\exception\filesystem_exception $e)
{
// Do nothing
}
}
}
if (!file_exists($phpbb_root_path . $upload_dir))
{
$error[] = sprintf($user->lang['NO_UPLOAD_DIR'], $upload_dir);
return;
}
if (!is_dir($phpbb_root_path . $upload_dir))
{
$error[] = sprintf($user->lang['UPLOAD_NOT_DIR'], $upload_dir);
return;
}
if (!$this->filesystem->is_writable($phpbb_root_path . $upload_dir))
{
$error[] = sprintf($user->lang['NO_WRITE_UPLOAD'], $upload_dir);
return;
}
}
/**
* Perform operations on sites for external linking
*/

View File

@@ -24,23 +24,35 @@ if (!defined('IN_PHPBB'))
class acp_extensions
{
var $u_action;
var $tpl_name;
var $page_title;
public $u_action;
private $db;
/** @var phpbb\config\config */
private $config;
/** @var \phpbb\template\twig\twig */
private $template;
private $user;
private $log;
/** @var \phpbb\request\request */
private $request;
private $phpbb_dispatcher;
private $ext_manager;
function main()
/** @var \phpbb\extension\manager */
private $ext_manager;
private $u_catalog_action;
/** @var string */
private $phpbb_root_path;
function main($id, $mode)
{
// Start the page
global $config, $user, $template, $request, $phpbb_extension_manager, $phpbb_root_path, $phpbb_log, $phpbb_dispatcher;
global $config, $user, $template, $request, $phpbb_extension_manager, $db, $phpbb_log, $phpbb_dispatcher, $phpbb_root_path;
$this->db = $db;
$this->config = $config;
$this->template = $template;
$this->user = $user;
@@ -48,8 +60,24 @@ class acp_extensions
$this->log = $phpbb_log;
$this->phpbb_dispatcher = $phpbb_dispatcher;
$this->ext_manager = $phpbb_extension_manager;
$this->phpbb_root_path = $phpbb_root_path;
$this->user->add_lang(array('install', 'acp/extensions', 'migrator'));
$this->user->add_lang(['install', 'acp/extensions', 'migrator']);
switch ($mode)
{
case 'catalog':
$this->catalog_mode($id, $mode);
break;
default:
$this->main_mode($id, $mode);
break;
}
}
public function main_mode($id, $mode)
{
global $phpbb_extension_manager, $phpbb_container, $phpbb_admin_path, $phpEx;
$this->page_title = 'ACP_EXTENSIONS';
@@ -110,6 +138,8 @@ class acp_extensions
}
}
$this->u_catalog_action = append_sid("{$phpbb_admin_path}index.$phpEx", "i=$id&amp;mode=catalog");
// What are we doing?
switch ($action)
{
@@ -133,7 +163,7 @@ class acp_extensions
$this->config->set('extension_force_unstable', false);
trigger_error($this->user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
}
break;
break;
case 'list':
default:
@@ -143,15 +173,27 @@ class acp_extensions
trigger_error($this->user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
}
$this->list_enabled_exts();
$this->list_disabled_exts();
$this->list_available_exts();
/** @var \phpbb\composer\manager $composer_manager */
$composer_manager = $phpbb_container->get('ext.composer.manager');
$managed_packages = [];
if ($composer_manager->check_requirements())
{
$managed_packages = $composer_manager->get_managed_packages();
}
$this->list_enabled_exts($phpbb_extension_manager, $managed_packages);
$this->list_disabled_exts($phpbb_extension_manager, $managed_packages);
$this->list_available_exts($phpbb_extension_manager, $managed_packages);
$this->template->assign_vars(array(
'U_VERSIONCHECK_FORCE' => $this->u_action . '&amp;action=list&amp;versioncheck_force=1',
'FORCE_UNSTABLE' => $this->config['extension_force_unstable'],
'U_ACTION' => $this->u_action,
'MANAGED_EXTENSIONS' => $managed_packages,
'U_CATALOG_ACTION' => $this->u_catalog_action,
));
$this->request->disable_super_globals();
$this->tpl_name = 'acp_ext_list';
break;
@@ -223,7 +265,7 @@ class acp_extensions
'name' => 'adm',
'ext_path' => 'adm/style/',
),
), array($phpbb_root_path . 'adm/style'));
), array($this->phpbb_root_path . 'adm/style'));
$this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_EXT_ENABLE', time(), array($ext_name));
}
@@ -391,11 +433,340 @@ class acp_extensions
}
/**
* Lists all the enabled extensions and dumps to the template
*
* @return null
*/
public function list_enabled_exts()
* Handles the catalog mode of the extensions list
*
* @param string $id
* @param string $mode
*/
public function catalog_mode($id, $mode)
{
global $phpbb_container;
$action = $this->request->variable('action', 'list');
/** @var \phpbb\language\language $language */
$language = $phpbb_container->get('language');
/** @var \phpbb\composer\manager $composer_manager */
$composer_manager = $phpbb_container->get('ext.composer.manager');
/** @var \phpbb\extension\manager $extensions_manager */
$extensions_manager = $phpbb_container->get('ext.manager');
if (!$composer_manager->check_requirements())
{
$this->page_title = 'ACP_EXTENSIONS_CATALOG';
$this->tpl_name = 'message_body';
$this->template->assign_vars([
'MESSAGE_TITLE' => $language->lang('EXTENSIONS_CATALOG_NOT_AVAILABLE'),
'MESSAGE_TEXT' => $language->lang('EXTENSIONS_COMPOSER_NOT_WRITABLE'),
]);
return;
}
switch ($action)
{
case 'install':
$this->page_title = 'ACP_EXTENSIONS_INSTALL';
$extension = $this->request->variable('extension', '');
if (empty($extension))
{
redirect($this->u_action);
}
$formatter = new \phpbb\composer\io\html_output_formatter([
'warning' => new \Symfony\Component\Console\Formatter\OutputFormatterStyle('black', 'yellow')
]);
$composer_io = new \phpbb\composer\io\web_io($language, '', $phpbb_container->getParameter('extensions.composer.output'), $formatter);
try
{
$composer_manager->install((array) $extension, $composer_io);
}
catch (\phpbb\exception\runtime_exception $e)
{
$this->display_composer_exception($language, $e, $composer_io);
return;
}
$this->tpl_name = 'detailed_message_body';
$this->template->assign_vars(array(
'MESSAGE_TITLE' => $language->lang('ACP_EXTENSIONS_INSTALL'),
'MESSAGE_TEXT' => $language->lang('EXTENSIONS_INSTALLED') . adm_back_link($this->u_action),
'MESSAGE_DETAIL' => $composer_io->getOutput(),
'MESSAGE_DETAIL_LEGEND' => $language->lang('COMPOSER_OUTPUT'),
'S_USER_NOTICE' => true,
)
);
break;
case 'remove':
$this->page_title = 'ACP_EXTENSIONS_REMOVE';
$extension = $this->request->variable('extension', '');
if (empty($extension))
{
redirect($this->u_action);
}
$formatter = new \phpbb\composer\io\html_output_formatter([
'warning' => new \Symfony\Component\Console\Formatter\OutputFormatterStyle('black', 'yellow')
]);
$composer_io = new \phpbb\composer\io\web_io($language, '', $phpbb_container->getParameter('extensions.composer.output'), $formatter);
try
{
$composer_manager->remove((array) $extension, $composer_io);
}
catch (\phpbb\exception\runtime_exception $e)
{
$this->display_composer_exception($language, $e, $composer_io);
return;
}
$this->tpl_name = 'detailed_message_body';
$this->template->assign_vars(array(
'MESSAGE_TITLE' => $language->lang('ACP_EXTENSIONS_REMOVE'),
'MESSAGE_TEXT' => $language->lang('EXTENSIONS_REMOVED') . adm_back_link($this->u_action),
'MESSAGE_DETAIL' => $composer_io->getOutput(),
'MESSAGE_DETAIL_LEGEND' => $language->lang('COMPOSER_OUTPUT'),
'S_USER_NOTICE' => true,
)
);
break;
case 'update':
$this->page_title = 'ACP_EXTENSIONS_UPDATE';
$extension = $this->request->variable('extension', '');
if (empty($extension))
{
redirect($this->u_action);
}
$formatter = new \phpbb\composer\io\html_output_formatter([
'warning' => new \Symfony\Component\Console\Formatter\OutputFormatterStyle('black', 'yellow')
]);
$composer_io = new \phpbb\composer\io\web_io($language, '', $phpbb_container->getParameter('extensions.composer.output'), $formatter);
try
{
$composer_manager->update((array) $extension, $composer_io);
}
catch (\phpbb\exception\runtime_exception $e)
{
$this->display_composer_exception($language, $e, $composer_io);
return;
}
$this->tpl_name = 'detailed_message_body';
$this->template->assign_vars(array(
'MESSAGE_TITLE' => $language->lang('ACP_EXTENSIONS_UPDATE'),
'MESSAGE_TEXT' => $language->lang('EXTENSIONS_UPDATED') . adm_back_link($this->u_action),
'MESSAGE_DETAIL' => $composer_io->getOutput(),
'MESSAGE_DETAIL_LEGEND' => $language->lang('COMPOSER_OUTPUT'),
'S_USER_NOTICE' => true,
)
);
break;
case 'manage':
$this->page_title = 'ACP_EXTENSIONS_MANAGE';
$extension = $this->request->variable('extension', '');
if (empty($extension))
{
redirect($this->u_action);
}
$formatter = new \phpbb\composer\io\html_output_formatter([
'warning' => new \Symfony\Component\Console\Formatter\OutputFormatterStyle('black', 'yellow')
]);
$composer_io = new \phpbb\composer\io\web_io($language, '', $phpbb_container->getParameter('extensions.composer.output'), $formatter);
try
{
$composer_manager->start_managing($extension, $composer_io);
}
catch (\phpbb\exception\runtime_exception $e)
{
$this->display_composer_exception($language, $e, $composer_io);
return;
}
$this->tpl_name = 'detailed_message_body';
$this->template->assign_vars(array(
'MESSAGE_TITLE' => $language->lang('ACP_EXTENSIONS_MANAGE'),
'MESSAGE_TEXT' => $language->lang('EXTENSION_MANAGED_SUCCESS', $extension) . adm_back_link($this->u_action),
'MESSAGE_DETAIL' => $composer_io->getOutput(),
'MESSAGE_DETAIL_LEGEND' => $language->lang('COMPOSER_OUTPUT'),
'S_USER_NOTICE' => true,
)
);
break;
case 'list':
default:
if (!$this->config['exts_composer_packagist'] && $this->request->is_set('enable_packagist') && confirm_box(true))
{
$this->config->set('exts_composer_packagist', true);
$composer_manager->reset_cache();
trigger_error($language->lang('CONFIG_UPDATED') . adm_back_link($this->u_action));
}
$submit = $this->request->is_set('update');
if ($submit)
{
if (!check_form_key('catalog_settings'))
{
trigger_error($language->lang('FORM_INVALID') . adm_back_link($this->u_action), E_USER_WARNING);
}
$enable_packagist = $this->request->variable('enable_packagist', false);
$enable_on_install = $this->request->variable('enable_on_install', false);
$purge_on_remove = $this->request->variable('purge_on_remove', false);
$minimum_stability = $this->request->variable('minimum_stability', 'stable');
$repositories = array_unique(
array_filter(
array_map(
'trim',
explode("\n", $this->request->variable('repositories', ''))
)
)
);
$previous_minimum_stability = $this->config['exts_composer_minimum_stability'];
$previous_repositories = $this->config['exts_composer_repositories'];
$previous_enable_packagist = $this->config['exts_composer_packagist'];
$this->config->set('exts_composer_enable_on_install', $enable_on_install);
$this->config->set('exts_composer_purge_on_remove', $purge_on_remove);
$this->config->set('exts_composer_minimum_stability', $minimum_stability);
$this->config->set('exts_composer_repositories', json_encode($repositories, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
if ($minimum_stability != $previous_minimum_stability
|| $repositories != $previous_repositories
|| $enable_packagist != $previous_enable_packagist)
{
$composer_manager->reset_cache();
}
if (!$this->config['exts_composer_packagist'] && $enable_packagist)
{
$s_hidden_fields = build_hidden_fields(array(
'enable_packagist' => $enable_packagist
));
confirm_box(false, $language->lang('ENABLE_PACKAGIST_CONFIRM'), $s_hidden_fields);
}
else
{
$this->config->set('exts_composer_packagist', $enable_packagist);
trigger_error($language->lang('CONFIG_UPDATED') . adm_back_link($this->u_action));
}
}
/** @var \phpbb\composer\extension_manager $manager */
$manager = $phpbb_container->get('ext.composer.manager');
/** @var \phpbb\pagination $pagination */
$pagination = $phpbb_container->get('pagination');
$start = $this->request->variable('start', 0);
$base_url = $this->u_action;
$available_extensions = $manager->get_available_packages();
$managed_packages = $manager->get_managed_packages();
$extensions = array_slice($available_extensions, $start, 20);
$pagination->generate_template_pagination($base_url, 'pagination', 'start', count($available_extensions), 20, $start);
$this->page_title = 'ACP_EXTENSIONS_CATALOG';
$this->tpl_name = 'acp_ext_catalog';
$this->template->assign_vars([
'extensions' => $extensions,
'managed_extensions' => array_keys($managed_packages),
'installed_extensions' => array_keys($extensions_manager->all_available()),
'U_ACTION' => $this->u_action,
'settings' => [
'enable_packagist' => $this->config['exts_composer_packagist'],
'enable_on_install' => $this->config['exts_composer_enable_on_install'],
'purge_on_remove' => $this->config['exts_composer_purge_on_remove'],
'minimum_stability' => $this->config['exts_composer_minimum_stability'],
'stabilities' => array_keys(\Composer\Package\BasePackage::$stabilities),
'repositories' => json_decode($this->config['exts_composer_repositories'], true),
],
]);
add_form_key('catalog_settings');
break;
}
}
/**
* Display an exception raised by the composer manager
*
* @param \phpbb\language\language $language
* @param \phpbb\exception\runtime_exception $e
* @param \phpbb\composer\io\web_io $composer_io
*/
private function display_composer_exception(\phpbb\language\language $language, \phpbb\exception\runtime_exception $e, \phpbb\composer\io\web_io $composer_io)
{
$this->tpl_name = 'detailed_message_body';
if ($e->getPrevious())
{
$message_title = $language->lang_array($e->getMessage(), $e->get_parameters());
if ($e->getPrevious() instanceof \phpbb\exception\exception_interface)
{
$message_text = $language->lang_array($e->getPrevious()->getMessage(), $e->getPrevious()->get_parameters()) . adm_back_link($this->u_action);
}
else
{
$message_text = $e->getPrevious()->getMessage() . adm_back_link($this->u_action);
}
}
else
{
$message_title = $language->lang('INFORMATION');
$message_text = $language->lang_array($e->getMessage(), $e->get_parameters()) . adm_back_link($this->u_action);
}
$this->template->assign_vars(array(
'MESSAGE_TITLE' => $message_title,
'MESSAGE_TEXT' => $message_text,
'MESSAGE_DETAIL' => $composer_io->getOutput(),
'MESSAGE_DETAIL_LEGEND' => $language->lang('COMPOSER_OUTPUT'),
'S_USER_ERROR' => true,
)
);
}
/**
* Lists all the enabled extensions and dumps to the template
*
* @param \phpbb\extension\manager $phpbb_extension_manager An instance of the extension manager
* @param array $managed_packages List of managed packages
*
* @return null
*/
public function list_enabled_exts(\phpbb\extension\manager $phpbb_extension_manager, array $managed_packages)
{
$enabled_extension_meta_data = array();
@@ -409,6 +780,7 @@ class acp_extensions
$enabled_extension_meta_data[$name] = array(
'META_DISPLAY_NAME' => $md_manager->get_metadata('display-name'),
'META_VERSION' => $meta['version'],
'META_NAME' => $md_manager->get_metadata('name'),
);
if (isset($meta['extra']['version-check']))
@@ -458,15 +830,29 @@ class acp_extensions
$this->output_actions('enabled', array(
'DISABLE' => $this->u_action . '&amp;action=disable_pre&amp;ext_name=' . urlencode($name),
));
if (isset($managed_packages[$block_vars['META_NAME']]))
{
$this->output_actions('enabled', [
'UPDATE' => $this->u_catalog_action . '&amp;action=update&amp;extension=' . urlencode($block_vars['META_NAME']),
'REMOVE' => [
'url' => $this->u_catalog_action . '&amp;action=remove&amp;extension=' . urlencode($block_vars['META_NAME']),
'color' => '#BC2A4D;',
]
]);
}
}
}
/**
* Lists all the disabled extensions and dumps to the template
*
* @return null
*/
public function list_disabled_exts()
* Lists all the disabled extensions and dumps to the template
*
* @param \phpbb\extension\manager $phpbb_extension_manager An instance of the extension manager
* @param array $managed_packages List of managed packages
*
* @return null
*/
public function list_disabled_exts(\phpbb\extension\manager $phpbb_extension_manager, array $managed_packages)
{
$disabled_extension_meta_data = array();
@@ -480,6 +866,7 @@ class acp_extensions
$disabled_extension_meta_data[$name] = array(
'META_DISPLAY_NAME' => $md_manager->get_metadata('display-name'),
'META_VERSION' => $meta['version'],
'META_NAME' => $md_manager->get_metadata('name'),
);
if (isset($meta['extra']['version-check']))
@@ -527,15 +914,29 @@ class acp_extensions
'ENABLE' => $this->u_action . '&amp;action=enable_pre&amp;ext_name=' . urlencode($name),
'DELETE_DATA' => $this->u_action . '&amp;action=delete_data_pre&amp;ext_name=' . urlencode($name),
));
if (isset($managed_packages[$block_vars['META_NAME']]))
{
$this->output_actions('disabled', [
'UPDATE' => $this->u_catalog_action . '&amp;action=update&amp;extension=' . urlencode($block_vars['META_NAME']),
'REMOVE' => [
'url' => $this->u_catalog_action . '&amp;action=remove&amp;extension=' . urlencode($block_vars['META_NAME']),
'color' => '#BC2A4D;',
]
]);
}
}
}
/**
* Lists all the available extensions and dumps to the template
*
* @return null
*/
public function list_available_exts()
* Lists all the available extensions and dumps to the template
*
* @param \phpbb\extension\manager $phpbb_extension_manager An instance of the extension manager
* @param array $managed_packages List of managed packages
*
* @return null
*/
public function list_available_exts(\phpbb\extension\manager $phpbb_extension_manager, array $managed_packages)
{
$uninstalled = array_diff_key($this->ext_manager->all_available(), $this->ext_manager->all_configured());
@@ -551,6 +952,7 @@ class acp_extensions
$available_extension_meta_data[$name] = array(
'META_DISPLAY_NAME' => $md_manager->get_metadata('display-name'),
'META_VERSION' => $meta['version'],
'META_NAME' => $md_manager->get_metadata('name'),
);
if (isset($meta['extra']['version-check']))
@@ -604,13 +1006,26 @@ class acp_extensions
*/
private function output_actions($block, $actions)
{
foreach ($actions as $lang => $url)
foreach ($actions as $lang => $options)
{
$this->template->assign_block_vars($block . '.actions', array(
$url = $options;
if (is_array($options))
{
$url = $options['url'];
}
$vars = array(
'L_ACTION' => $this->user->lang('EXTENSION_' . $lang),
'L_ACTION_EXPLAIN' => (isset($this->user->lang['EXTENSION_' . $lang . '_EXPLAIN'])) ? $this->user->lang('EXTENSION_' . $lang . '_EXPLAIN') : '',
'U_ACTION' => $url,
));
);
if (isset($options['color']))
{
$vars['COLOR'] = $options['color'];
}
$this->template->assign_block_vars($block . '.actions', $vars);
}
}

View File

@@ -502,26 +502,8 @@ class acp_main
$upload_dir_size = get_formatted_filesize($config['upload_dir_size']);
$avatar_dir_size = 0;
if ($avatar_dir = @opendir($phpbb_root_path . $config['avatar_path']))
{
while (($file = readdir($avatar_dir)) !== false)
{
if ($file[0] != '.' && $file != 'CVS' && strpos($file, 'index.') === false)
{
$avatar_dir_size += filesize($phpbb_root_path . $config['avatar_path'] . '/' . $file);
}
}
closedir($avatar_dir);
$avatar_dir_size = get_formatted_filesize($avatar_dir_size);
}
else
{
// Couldn't open Avatar dir.
$avatar_dir_size = $user->lang['NOT_AVAILABLE'];
}
// Couldn't open Avatar dir.
$avatar_dir_size = $user->lang['NOT_AVAILABLE'];
if ($posts_per_day > $total_posts)
{

View File

@@ -0,0 +1,318 @@
<?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.
*
*/
/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}
class acp_storage
{
/** @var \phpbb\config $config */
protected $config;
/** @var \phpbb\language\language $lang */
protected $lang;
/** @var \phpbb\request\request */
protected $request;
/** @var \phpbb\template\template */
protected $template;
/** @var \phpbb\user */
protected $user;
/** @var \phpbb\di\service_collection */
protected $provider_collection;
/** @var \phpbb\di\service_collection */
protected $storage_collection;
/** @var string */
public $page_title;
/** @var string */
public $tpl_name;
/** @var string */
public $u_action;
/**
* @param string $id
* @param string $mode
*/
public function main($id, $mode)
{
global $phpbb_container, $phpbb_dispatcher;
$this->config = $phpbb_container->get('config');
$this->lang = $phpbb_container->get('language');
$this->request = $phpbb_container->get('request');
$this->template = $phpbb_container->get('template');
$this->user = $phpbb_container->get('user');
$this->provider_collection = $phpbb_container->get('storage.provider_collection');
$this->storage_collection = $phpbb_container->get('storage.storage_collection');
// Add necesary language files
$this->lang->add_lang(['acp/storage']);
/**
* Add language strings
*
* @event core.acp_storage_load
* @since 3.3.0-a1
*/
$phpbb_dispatcher->dispatch('core.acp_storage_load');
$this->overview($id, $mode);
}
/**
* @param string $id
* @param string $mode
*/
public function overview($id, $mode)
{
$form_key = 'acp_storage';
add_form_key($form_key);
// Template from adm/style
$this->tpl_name = 'acp_storage';
// Set page title
$this->page_title = 'STORAGE_TITLE';
if ($this->request->is_set_post('submit'))
{
$modified_storages = [];
$messages = [];
if (!check_form_key($form_key))
{
$messages[] = $this->lang->lang('FORM_INVALID');
}
foreach ($this->storage_collection as $storage)
{
$storage_name = $storage->get_name();
$options = $this->get_provider_options($this->get_current_provider($storage_name));
$modified = false;
// Check if provider have been modified
if ($this->get_new_provider($storage_name) != $this->get_current_provider($storage_name))
{
$modified = true;
}
// Check if options have been modified
if (!$modified)
{
foreach (array_keys($options) as $definition)
{
if ($this->get_new_definition($storage_name, $definition) != $this->get_current_definition($storage_name, $definition))
{
$modified = true;
break;
}
}
}
// If the storage have been modified, validate options
if ($modified)
{
$modified_storages[] = $storage_name;
$this->validate_data($storage_name, $messages);
}
}
if (!empty($modified_storages))
{
if (empty($messages))
{
foreach ($modified_storages as $storage_name)
{
$this->update_storage_config($storage_name);
}
trigger_error($this->lang->lang('STORAGE_UPDATE_SUCCESSFUL') . adm_back_link($this->u_action), E_USER_NOTICE);
}
else
{
trigger_error(implode('<br />', $messages) . adm_back_link($this->u_action), E_USER_WARNING);
}
}
// If there is no errors
trigger_error($this->lang->lang('STORAGE_NO_CHANGES') . adm_back_link($this->u_action), E_USER_WARNING);
}
$this->template->assign_vars(array(
'STORAGES' => $this->storage_collection,
'PROVIDERS' => $this->provider_collection,
));
}
/**
* Get the current provider from config
*
* @param string $key Storage name
* @return string The current provider
*/
protected function get_current_provider($storage_name)
{
return $this->config['storage\\' . $storage_name . '\\provider'];
}
/**
* Get the new provider from the request
*
* @param string $key Storage name
* @return string The new provider
*/
protected function get_new_provider($storage_name)
{
return $this->request->variable([$storage_name, 'provider'], '');
}
/**
* Get adapter definitions from a provider
*
* @param string $provider Provider class
* @return array Adapter definitions
*/
protected function get_provider_options($provider)
{
return $this->provider_collection->get_by_class($provider)->get_options();
}
/**
* Get the current value of the definition of a storage from config
*
* @param string $storage_name Storage name
* @param string $definition Definition
* @return string Definition value
*/
protected function get_current_definition($storage_name, $definition)
{
return $this->config['storage\\' . $storage_name . '\\config\\' . $definition];
}
/**
* Get the new value of the definition of a storage from the request
*
* @param string $storage_name Storage name
* @param string $definition Definition
* @return string Definition value
*/
protected function get_new_definition($storage_name, $definition)
{
return $this->request->variable([$storage_name, $definition], '');
}
/**
* Validates data
*
* @param string $storage_name Storage name
* @param array $messages Reference to messages array
*/
protected function validate_data($storage_name, &$messages)
{
$storage_title = $this->lang->lang('STORAGE_' . strtoupper($storage_name) . '_TITLE');
// Check if provider exists
try
{
$new_provider = $this->provider_collection->get_by_class($this->get_new_provider($storage_name));
}
catch (\Exception $e)
{
$messages[] = $this->lang->lang('STORAGE_PROVIDER_NOT_EXISTS', $storage_title);
return;
}
// Check if provider is available
if (!$new_provider->is_available())
{
$messages[] = $this->lang->lang('STORAGE_PROVIDER_NOT_AVAILABLE', $storage_title);
return;
}
// Check options
$new_options = $this->get_provider_options($this->get_new_provider($storage_name));
foreach ($new_options as $definition_key => $definition_value)
{
$provider = $this->provider_collection->get_by_class($this->get_new_provider($storage_name));
$definition_title = $this->lang->lang('STORAGE_ADAPTER_' . strtoupper($provider->get_name()) . '_OPTION_' . strtoupper($definition_key));
$value = $this->get_new_definition($storage_name, $definition_key);
switch ($definition_value['type'])
{
case 'email':
if (!filter_var($value, FILTER_VALIDATE_EMAIL))
{
$messages[] = $this->lang->lang('STORAGE_FORM_TYPE_EMAIL_INCORRECT_FORMAT', $definition_title, $storage_title);
}
case 'text':
case 'password':
$maxlength = isset($definition_value['maxlength']) ? $definition_value['maxlength'] : 255;
if (strlen($value) > $maxlength)
{
$messages[] = $this->lang->lang('STORAGE_FORM_TYPE_TEXT_TOO_LONG', $definition_title, $storage_title);
}
break;
case 'radio':
case 'select':
if (!in_array($value, array_values($definition_value['options'])))
{
$messages[] = $this->lang->lang('STORAGE_FORM_TYPE_SELECT_NOT_AVAILABLE', $definition_title, $storage_title);
}
break;
}
}
}
/**
* Updates an storage with the info provided in the form
*
* @param string $storage_name Storage name
*/
protected function update_storage_config($storage_name)
{
$current_options = $this->get_provider_options($this->get_current_provider($storage_name));
// Remove old storage config
foreach (array_keys($current_options) as $definition)
{
$this->config->delete('storage\\' . $storage_name . '\\config\\' . $definition);
}
// Update provider
$this->config->set('storage\\' . $storage_name . '\\provider', $this->get_new_provider($storage_name));
// Set new storage config
$new_options = $this->get_provider_options($this->get_new_provider($storage_name));
foreach (array_keys($new_options) as $definition)
{
$this->config->set('storage\\' . $storage_name . '\\config\\' . $definition, $this->get_new_definition($storage_name, $definition));
}
}
}

View File

@@ -20,6 +20,7 @@ class acp_extensions_info
'title' => 'ACP_EXTENSION_MANAGEMENT',
'modes' => array(
'main' => array('title' => 'ACP_EXTENSIONS', 'auth' => 'acl_a_extensions', 'cat' => array('ACP_EXTENSION_MANAGEMENT')),
'catalog' => array('title' => 'ACP_EXTENSIONS_CATALOG', 'auth' => 'acl_a_extensions', 'cat' => array('ACP_EXTENSION_MANAGEMENT')),
),
);
}

View File

@@ -0,0 +1,34 @@
<?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.
*
*/
class acp_storage_info
{
function module()
{
return array(
'filename' => 'acp_storage',
'title' => 'ACP_STORAGE_SETTINGS',
'modes' => array(
'settings' => array('title' => 'ACP_STORAGE_SETTINGS', 'auth' => 'acl_a_storage', 'cat' => array('ACP_SERVER_CONFIGURATION')),
),
);
}
function install()
{
}
function uninstall()
{
}
}

View File

@@ -156,9 +156,7 @@ class bbcode
$phpbb_container->get('path_helper'),
$phpbb_container->getParameter('core.cache_dir'),
$phpbb_container->get('ext.manager'),
new \phpbb\template\twig\loader(
$phpbb_filesystem
)
new \phpbb\template\twig\loader()
),
$phpbb_container->getParameter('core.cache_dir'),
$phpbb_container->get('user'),

View File

@@ -18,6 +18,13 @@ if (!defined('IN_PHPBB'))
exit;
}
//
// Deprecated globals
//
define('ATTACHMENT_CATEGORY_WM', 2); // Windows Media Files - Streaming - @deprecated 3.2
define('ATTACHMENT_CATEGORY_RM', 3); // Real Media Files - Streaming - @deprecated 3.2
define('ATTACHMENT_CATEGORY_QUICKTIME', 6); // Quicktime/Mov files - @deprecated 3.2
/**
* Sets compatibility globals in the global scope
*

View File

@@ -28,7 +28,7 @@ if (!defined('IN_PHPBB'))
*/
// phpBB Version
@define('PHPBB_VERSION', '3.2.4-dev');
@define('PHPBB_VERSION', '3.3.0-a1-dev');
// QA-related
// define('PHPBB_QA', 1);
@@ -157,11 +157,6 @@ define('FULL_FOLDER_NONE', -3);
define('FULL_FOLDER_DELETE', -2);
define('FULL_FOLDER_HOLD', -1);
// Download Modes - Attachments
define('INLINE_LINK', 1);
// This mode is only used internally to allow modders extending the attachment functionality
define('PHYSICAL_LINK', 2);
// Confirm types
define('CONFIRM_REG', 1);
define('CONFIRM_LOGIN', 2);
@@ -171,11 +166,8 @@ define('CONFIRM_REPORT', 4);
// Categories - Attachments
define('ATTACHMENT_CATEGORY_NONE', 0);
define('ATTACHMENT_CATEGORY_IMAGE', 1); // Inline Images
define('ATTACHMENT_CATEGORY_WM', 2); // Windows Media Files - Streaming - @deprecated 3.2
define('ATTACHMENT_CATEGORY_RM', 3); // Real Media Files - Streaming - @deprecated 3.2
define('ATTACHMENT_CATEGORY_THUMB', 4); // Not used within the database, only while displaying posts
define('ATTACHMENT_CATEGORY_FLASH', 5); // Flash/SWF files
define('ATTACHMENT_CATEGORY_QUICKTIME', 6); // Quicktime/Mov files - @deprecated 3.2
// BBCode UID length
define('BBCODE_UID_LEN', 8);

View File

@@ -51,18 +51,6 @@ function phpbb_load_extensions_autoloaders($phpbb_root_path)
}
}
/**
* Casts a variable to the given type.
*
* @deprecated
*/
function set_var(&$result, $var, $type, $multibyte = false)
{
// no need for dependency injection here, if you have the object, call the method yourself!
$type_cast_helper = new \phpbb\request\type_cast_helper();
$type_cast_helper->set_var($result, $var, $type, $multibyte);
}
/**
* Generates an alphanumeric random string of given length
*
@@ -3497,15 +3485,7 @@ function phpbb_filter_root_path($errfile)
if (empty($root_path))
{
if ($phpbb_filesystem)
{
$root_path = $phpbb_filesystem->realpath(dirname(__FILE__) . '/../');
}
else
{
$filesystem = new \phpbb\filesystem\filesystem();
$root_path = $filesystem->realpath(dirname(__FILE__) . '/../');
}
$root_path = \phpbb\filesystem\helper::realpath(dirname(__FILE__) . '/../');
}
return str_replace(array($root_path, '\\'), array('[ROOT]', '/'), $errfile);
@@ -4342,6 +4322,9 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
$controller_helper = $phpbb_container->get('controller.helper');
$notification_mark_hash = generate_link_hash('mark_all_notifications_read');
$phpbb_version_parts = explode('.', PHPBB_VERSION, 3);
$phpbb_major = $phpbb_version_parts[0] . '.' . $phpbb_version_parts[1];
// The following assigns all _common_ variables that may be used at any point in a template.
$template->assign_vars(array(
'SITENAME' => $config['sitename'],
@@ -4375,6 +4358,8 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
'SESSION_ID' => $user->session_id,
'ROOT_PATH' => $web_path,
'BOARD_URL' => $board_url,
'PHPBB_VERSION' => PHPBB_VERSION,
'PHPBB_MAJOR' => $phpbb_major,
'L_LOGIN_LOGOUT' => $l_login_logout,
'L_INDEX' => ($config['board_index_text'] !== '') ? $config['board_index_text'] : $user->lang['FORUM_INDEX'],
@@ -4450,11 +4435,9 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
'T_SUPER_TEMPLATE_PATH' => "{$web_path}styles/" . rawurlencode($user->style['style_path']) . '/template',
'T_IMAGES_PATH' => "{$web_path}images/",
'T_SMILIES_PATH' => "{$web_path}{$config['smilies_path']}/",
'T_AVATAR_PATH' => "{$web_path}{$config['avatar_path']}/",
'T_AVATAR_GALLERY_PATH' => "{$web_path}{$config['avatar_gallery_path']}/",
'T_ICONS_PATH' => "{$web_path}{$config['icons_path']}/",
'T_RANKS_PATH' => "{$web_path}{$config['ranks_path']}/",
'T_UPLOAD_PATH' => "{$web_path}{$config['upload_path']}/",
'T_STYLESHEET_LINK' => "{$web_path}styles/" . rawurlencode($user->style['style_path']) . '/theme/stylesheet.css?assets_version=' . $config['assets_version'],
'T_STYLESHEET_LANG_LINK'=> "{$web_path}styles/" . rawurlencode($user->style['style_path']) . '/theme/' . $user->lang_name . '/stylesheet.css?assets_version=' . $config['assets_version'],
'T_FONT_AWESOME_LINK' => !empty($config['allow_cdn']) && !empty($config['load_font_awesome_url']) ? $config['load_font_awesome_url'] : "{$web_path}assets/css/font-awesome.min.css?assets_version=" . $config['assets_version'],
@@ -4468,11 +4451,9 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
'T_SUPER_TEMPLATE_NAME' => rawurlencode((isset($user->style['style_parent_tree']) && $user->style['style_parent_tree']) ? $user->style['style_parent_tree'] : $user->style['style_path']),
'T_IMAGES' => 'images',
'T_SMILIES' => $config['smilies_path'],
'T_AVATAR' => $config['avatar_path'],
'T_AVATAR_GALLERY' => $config['avatar_gallery_path'],
'T_ICONS' => $config['icons_path'],
'T_RANKS' => $config['ranks_path'],
'T_UPLOAD' => $config['upload_path'],
'SITE_LOGO_IMG' => $user->img('site_logo'),
));

View File

@@ -66,6 +66,9 @@ function adm_page_header($page_title)
}
}
$phpbb_version_parts = explode('.', PHPBB_VERSION, 3);
$phpbb_major = $phpbb_version_parts[0] . '.' . $phpbb_version_parts[1];
$template->assign_vars(array(
'PAGE_TITLE' => $page_title,
'USERNAME' => $user->data['username'],
@@ -75,6 +78,8 @@ function adm_page_header($page_title)
'SESSION_ID' => $user->session_id,
'ROOT_PATH' => $phpbb_root_path,
'ADMIN_ROOT_PATH' => $phpbb_admin_path,
'PHPBB_VERSION' => PHPBB_VERSION,
'PHPBB_MAJOR' => $phpbb_major,
'U_LOGOUT' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout'),
'U_ADM_LOGOUT' => append_sid("{$phpbb_admin_path}index.$phpEx", 'action=admlogout'),
@@ -83,11 +88,9 @@ function adm_page_header($page_title)
'T_IMAGES_PATH' => "{$phpbb_root_path}images/",
'T_SMILIES_PATH' => "{$phpbb_root_path}{$config['smilies_path']}/",
'T_AVATAR_PATH' => "{$phpbb_root_path}{$config['avatar_path']}/",
'T_AVATAR_GALLERY_PATH' => "{$phpbb_root_path}{$config['avatar_gallery_path']}/",
'T_ICONS_PATH' => "{$phpbb_root_path}{$config['icons_path']}/",
'T_RANKS_PATH' => "{$phpbb_root_path}{$config['ranks_path']}/",
'T_UPLOAD_PATH' => "{$phpbb_root_path}{$config['upload_path']}/",
'T_FONT_AWESOME_LINK' => !empty($config['allow_cdn']) && !empty($config['load_font_awesome_url']) ? $config['load_font_awesome_url'] : "{$phpbb_root_path}assets/css/font-awesome.min.css?assets_version=" . $config['assets_version'],
'T_ASSETS_VERSION' => $config['assets_version'],

View File

@@ -1160,28 +1160,6 @@ function delete_posts($where_type, $where_ids, $auto_sync = true, $posted_sync =
return count($post_ids);
}
/**
* Delete Attachments
*
* @deprecated 3.2.0-a1 (To be removed: 3.4.0)
*
* @param string $mode can be: post|message|topic|attach|user
* @param mixed $ids can be: post_ids, message_ids, topic_ids, attach_ids, user_ids
* @param bool $resync set this to false if you are deleting posts or topics
*/
function delete_attachments($mode, $ids, $resync = true)
{
global $phpbb_container;
/** @var \phpbb\attachment\manager $attachment_manager */
$attachment_manager = $phpbb_container->get('attachment.manager');
$num_deleted = $attachment_manager->delete($mode, $ids, $resync);
unset($attachment_manager);
return $num_deleted;
}
/**
* Deletes shadow topics pointing to a specified forum.
*
@@ -1293,23 +1271,6 @@ function update_posted_info(&$topic_ids)
$db->sql_multi_insert(TOPICS_POSTED_TABLE, $sql_ary);
}
/**
* Delete attached file
*
* @deprecated 3.2.0-a1 (To be removed: 3.4.0)
*/
function phpbb_unlink($filename, $mode = 'file', $entry_removed = false)
{
global $phpbb_container;
/** @var \phpbb\attachment\manager $attachment_manager */
$attachment_manager = $phpbb_container->get('attachment.manager');
$unlink = $attachment_manager->unlink($filename, $mode, $entry_removed);
unset($attachment_manager);
return $unlink;
}
/**
* All-encompasing sync function
*

View File

@@ -22,7 +22,7 @@ if (!defined('IN_PHPBB'))
/**
* Get user avatar
*
* @deprecated 3.1.0-a1 (To be removed: 3.3.0)
* @deprecated 3.1.0-a1 (To be removed: 4.0.0)
*
* @param string $avatar Users assigned avatar name
* @param int $avatar_type Type of avatar
@@ -50,7 +50,7 @@ function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $
/**
* Hash the password
*
* @deprecated 3.1.0-a2 (To be removed: 3.3.0)
* @deprecated 3.1.0-a2 (To be removed: 4.0.0)
*
* @param string $password Password to be hashed
*
@@ -68,7 +68,7 @@ function phpbb_hash($password)
/**
* Check for correct password
*
* @deprecated 3.1.0-a2 (To be removed: 3.3.0)
* @deprecated 3.1.0-a2 (To be removed: 4.0.0)
*
* @param string $password The password in plain text
* @param string $hash The stored password hash
@@ -87,45 +87,16 @@ function phpbb_check_hash($password, $hash)
/**
* Eliminates useless . and .. components from specified path.
*
* Deprecated, use filesystem class instead
* Deprecated, use storage helper class instead
*
* @param string $path Path to clean
* @return string Cleaned path
*
* @deprecated 3.1.0 (To be removed: 3.3.0)
* @deprecated 3.1.0 (To be removed: 4.0.0)
*/
function phpbb_clean_path($path)
{
global $phpbb_path_helper, $phpbb_container;
if (!$phpbb_path_helper && $phpbb_container)
{
/* @var $phpbb_path_helper \phpbb\path_helper */
$phpbb_path_helper = $phpbb_container->get('path_helper');
}
else if (!$phpbb_path_helper)
{
global $phpbb_root_path, $phpEx;
// The container is not yet loaded, use a new instance
if (!class_exists('\phpbb\path_helper'))
{
require($phpbb_root_path . 'phpbb/path_helper.' . $phpEx);
}
$request = new phpbb\request\request();
$phpbb_path_helper = new phpbb\path_helper(
new phpbb\symfony_request(
$request
),
new phpbb\filesystem\filesystem(),
$request,
$phpbb_root_path,
$phpEx
);
}
return $phpbb_path_helper->clean_path($path);
return \phpbb\filesystem\helper::clean_path($path);
}
/**
@@ -136,7 +107,7 @@ function phpbb_clean_path($path)
*
* @return string Returns the options for timezone selector only
*
* @deprecated 3.1.0 (To be removed: 3.3.0)
* @deprecated 3.1.0 (To be removed: 4.0.0)
*/
function tz_select($default = '', $truncate = false)
{
@@ -150,7 +121,7 @@ function tz_select($default = '', $truncate = false)
* via admin_permissions. Changes of usernames and group names
* must be carried through for the moderators table.
*
* @deprecated 3.1.0 (To be removed: 3.3.0)
* @deprecated 3.1.0 (To be removed: 4.0.0)
* @return null
*/
function cache_moderators()
@@ -162,7 +133,7 @@ function cache_moderators()
/**
* Removes moderators and administrators from foe lists.
*
* @deprecated 3.1.0 (To be removed: 3.3.0)
* @deprecated 3.1.0 (To be removed: 4.0.0)
* @param array|bool $group_id If an array, remove all members of this group from foe lists, or false to ignore
* @param array|bool $user_id If an array, remove this user from foe lists, or false to ignore
* @return null
@@ -182,7 +153,7 @@ function update_foes($group_id = false, $user_id = false)
* @param string &$rank_img the rank image as full img tag is stored here after execution
* @param string &$rank_img_src the rank image source is stored here after execution
*
* @deprecated 3.1.0-RC5 (To be removed: 3.3.0)
* @deprecated 3.1.0-RC5 (To be removed: 4.0.0)
*
* Note: since we do not want to break backwards-compatibility, this function will only properly assign ranks to guests if you call it for them with user_posts == false
*/
@@ -232,7 +203,7 @@ function get_remote_file($host, $directory, $filename, &$errstr, &$errno, $port
*
* @return int|bool Returns the log_id, if the entry was added to the database, false otherwise.
*
* @deprecated 3.1.0 (To be removed: 3.3.0)
* @deprecated 3.1.0 (To be removed: 4.0.0)
*/
function add_log()
{
@@ -280,7 +251,7 @@ function add_log()
*
* @return null
*
* @deprecated 3.1.0 (To be removed: 3.3.0)
* @deprecated 3.1.0 (To be removed: 4.0.0)
*/
function set_config($config_name, $config_value, $is_dynamic = false, \phpbb\config\config $set_config = null)
{
@@ -310,7 +281,7 @@ function set_config($config_name, $config_value, $is_dynamic = false, \phpbb\con
*
* @return null
*
* @deprecated 3.1.0 (To be removed: 3.3.0)
* @deprecated 3.1.0 (To be removed: 4.0.0)
*/
function set_config_count($config_name, $increment, $is_dynamic = false, \phpbb\config\config $set_config = null)
{
@@ -331,7 +302,7 @@ function set_config_count($config_name, $increment, $is_dynamic = false, \phpbb\
* See {@link \phpbb\request\request_interface::variable \phpbb\request\request_interface::variable} for
* documentation of this function's use.
*
* @deprecated 3.1.0 (To be removed: 3.3.0)
* @deprecated 3.1.0 (To be removed: 4.0.0)
* @param mixed $var_name The form variable's name from which data shall be retrieved.
* If the value is an array this may be an array of indizes which will give
* direct access to a value at any depth. E.g. if the value of "var" is array(1 => "a")
@@ -389,7 +360,7 @@ function request_var($var_name, $default, $multibyte = false, $cookie = false, $
/**
* Get tables of a database
*
* @deprecated 3.1.0 (To be removed: 3.3.0)
* @deprecated 3.1.0 (To be removed: 4.0.0)
*/
function get_tables(&$db)
{
@@ -463,25 +434,21 @@ function phpbb_is_writable($file)
* @param string $path Path to check absoluteness of
* @return boolean
*
* @deprecated 3.2.0-dev use \phpbb\filesystem\filesystem::is_absolute_path() instead
* @deprecated 3.2.0-dev use \phpbb\filesystem\helper::is_absolute_path() instead
*/
function phpbb_is_absolute($path)
{
global $phpbb_filesystem;
return $phpbb_filesystem->is_absolute_path($path);
return \phpbb\filesystem\helper::is_absolute_path($path);
}
/**
* A wrapper for realpath
*
* @deprecated 3.2.0-dev use \phpbb\filesystem\filesystem::realpath() instead
* @deprecated 3.2.0-dev use \phpbb\filesystem\helper::realpath() instead
*/
function phpbb_realpath($path)
{
global $phpbb_filesystem;
return $phpbb_filesystem->realpath($path);
return \phpbb\filesystem\helper::realpath($path);
}
/**
@@ -492,7 +459,7 @@ function phpbb_realpath($path)
* @param $number int|float The number we want to get the plural case for. Float numbers are floored.
* @return int The plural-case we need to use for the number plural-rule combination
*
* @deprecated 3.2.0-dev (To be removed: 3.3.0)
* @deprecated 3.2.0-dev (To be removed: 4.0.0)
*/
function phpbb_get_plural_form($rule, $number)
{
@@ -511,3 +478,93 @@ function phpbb_pcre_utf8_support()
{
return true;
}
/**
* Casts a variable to the given type.
*
* @deprecated 3.1 (To be removed 4.0.0)
*/
function set_var(&$result, $var, $type, $multibyte = false)
{
// no need for dependency injection here, if you have the object, call the method yourself!
$type_cast_helper = new \phpbb\request\type_cast_helper();
$type_cast_helper->set_var($result, $var, $type, $multibyte);
}
/**
* Delete Attachments
*
* @deprecated 3.2.0-a1 (To be removed: 4.0.0)
*
* @param string $mode can be: post|message|topic|attach|user
* @param mixed $ids can be: post_ids, message_ids, topic_ids, attach_ids, user_ids
* @param bool $resync set this to false if you are deleting posts or topics
*/
function delete_attachments($mode, $ids, $resync = true)
{
global $phpbb_container;
/** @var \phpbb\attachment\manager $attachment_manager */
$attachment_manager = $phpbb_container->get('attachment.manager');
$num_deleted = $attachment_manager->delete($mode, $ids, $resync);
unset($attachment_manager);
return $num_deleted;
}
/**
* Delete attached file
*
* @deprecated 3.2.0-a1 (To be removed: 4.0.0)
*/
function phpbb_unlink($filename, $mode = 'file', $entry_removed = false)
{
global $phpbb_container;
/** @var \phpbb\attachment\manager $attachment_manager */
$attachment_manager = $phpbb_container->get('attachment.manager');
$unlink = $attachment_manager->unlink($filename, $mode, $entry_removed);
unset($attachment_manager);
return $unlink;
}
/**
* Display reasons
*
* @deprecated 3.2.0-dev (To be removed: 4.0.0)
*/
function display_reasons($reason_id = 0)
{
global $phpbb_container;
$phpbb_container->get('phpbb.report.report_reason_list_provider')->display_reasons($reason_id);
}
/**
* Upload Attachment - filedata is generated here
* Uses upload class
*
* @deprecated 3.2.0-a1 (To be removed: 4.0.0)
*
* @param string $form_name The form name of the file upload input
* @param int $forum_id The id of the forum
* @param bool $local Whether the file is local or not
* @param string $local_storage The path to the local file
* @param bool $is_message Whether it is a PM or not
* @param array $local_filedata A filespec object created for the local file
*
* @return array File data array
*/
function upload_attachment($form_name, $forum_id, $local = false, $local_storage = '', $is_message = false, $local_filedata = false)
{
global $phpbb_container;
/** @var \phpbb\attachment\manager $attachment_manager */
$attachment_manager = $phpbb_container->get('attachment.manager');
$file = $attachment_manager->upload($form_name, $forum_id, $local, $local_storage, $is_message, $local_filedata);
unset($attachment_manager);
return $file;
}

View File

@@ -1086,6 +1086,9 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a
global $template, $cache, $user, $phpbb_dispatcher;
global $extensions, $config, $phpbb_root_path, $phpEx;
global $phpbb_container;
$attachment_storage = $phpbb_container->get('storage.attachment');
//
$compiled_attachments = array();
@@ -1163,7 +1166,7 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a
// Some basics...
$attachment['extension'] = strtolower(trim($attachment['extension']));
$filename = $phpbb_root_path . $config['upload_path'] . '/' . utf8_basename($attachment['physical_filename']);
$filename = utf8_basename($attachment['physical_filename']);
$upload_icon = '';
@@ -1219,17 +1222,16 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a
{
if ($config['img_link_width'] || $config['img_link_height'])
{
$dimension = @getimagesize($filename);
try
{
$file_info = $storage_attachment->file_info($filename);
// If the dimensions could not be determined or the image being 0x0 we display it as a link for safety purposes
if ($dimension === false || empty($dimension[0]) || empty($dimension[1]))
$display_cat = ($file_info->image_width <= $config['img_link_width'] && $file_info->image_height <= $config['img_link_height']) ? ATTACHMENT_CATEGORY_IMAGE : ATTACHMENT_CATEGORY_NONE;
}
catch (\Exception $e)
{
$display_cat = ATTACHMENT_CATEGORY_NONE;
}
else
{
$display_cat = ($dimension[0] <= $config['img_link_width'] && $dimension[1] <= $config['img_link_height']) ? ATTACHMENT_CATEGORY_IMAGE : ATTACHMENT_CATEGORY_NONE;
}
}
}
else
@@ -1283,7 +1285,18 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a
// Macromedia Flash Files
case ATTACHMENT_CATEGORY_FLASH:
list($width, $height) = @getimagesize($filename);
try
{
$file_info = $storage_attachment->file_info($filename);
$width = $file_info->image_width;
$height = $file_info->image_height;
}
catch (\Exception $e)
{
$width = 0;
$height = 0;
}
$block_array += array(
'S_FLASH_FILE' => true,

View File

@@ -496,7 +496,7 @@ function import_attachment_files($category_name = '')
$sql = 'SELECT config_value AS upload_path
FROM ' . CONFIG_TABLE . "
WHERE config_name = 'upload_path'";
WHERE config_name = 'storage\\attachment\\config\\path'";
$result = $db->sql_query($sql);
$config['upload_path'] = $db->sql_fetchfield('upload_path');
$db->sql_freeresult($result);

View File

@@ -1148,18 +1148,6 @@ function display_custom_bbcodes()
$phpbb_dispatcher->dispatch('core.display_custom_bbcodes');
}
/**
* Display reasons
*
* @deprecated 3.2.0-dev
*/
function display_reasons($reason_id = 0)
{
global $phpbb_container;
$phpbb_container->get('phpbb.report.report_reason_list_provider')->display_reasons($reason_id);
}
/**
* Display user activity (action forum/topic)
*/

View File

@@ -25,30 +25,27 @@ if (!defined('IN_PHPBB'))
*/
function send_avatar_to_browser($file, $browser)
{
global $config, $phpbb_root_path;
global $config, $phpbb_container;
$storage = $phpbb_container->get('storage.avatar');
$prefix = $config['avatar_salt'] . '_';
$image_dir = $config['avatar_path'];
$file_path = $prefix . $file;
// Adjust image_dir path (no trailing slash)
if (substr($image_dir, -1, 1) == '/' || substr($image_dir, -1, 1) == '\\')
if ($storage->exists($file_path) && !headers_sent())
{
$image_dir = substr($image_dir, 0, -1) . '/';
}
$image_dir = str_replace(array('../', '..\\', './', '.\\'), '', $image_dir);
$file_info = $storage->file_info($file_path);
if ($image_dir && ($image_dir[0] == '/' || $image_dir[0] == '\\'))
{
$image_dir = '';
}
$file_path = $phpbb_root_path . $image_dir . '/' . $prefix . $file;
if ((@file_exists($file_path) && @is_readable($file_path)) && !headers_sent())
{
header('Cache-Control: public');
$image_data = @getimagesize($file_path);
header('Content-Type: ' . image_type_to_mime_type($image_data[2]));
try
{
header('Content-Type: ' . $file_info->mimetype);
}
catch (\phpbb\storage\exception\exception $e)
{
// Just don't send this header
}
if ((strpos(strtolower($browser), 'msie') !== false) && !phpbb_is_greater_ie_version($browser, 7))
{
@@ -69,24 +66,26 @@ function send_avatar_to_browser($file, $browser)
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 31536000) . ' GMT');
}
$size = @filesize($file_path);
if ($size)
try
{
header("Content-Length: $size");
header('Content-Length: ' . $file_info->size);
}
catch (\phpbb\storage\exception\exception $e)
{
// Just don't send this header
}
if (@readfile($file_path) == false)
try
{
$fp = @fopen($file_path, 'rb');
if ($fp !== false)
{
while (!feof($fp))
{
echo fread($fp, 8192);
}
fclose($fp);
}
$fp = $storage->read_stream($file_path);
$output = fopen('php://output', 'w+b');
stream_copy_to_stream($fp, $output);
fclose($fp);
fclose($output);
}
catch (\Exception $e)
{
// Send nothing
}
flush();
@@ -122,13 +121,15 @@ function wrap_img_in_html($src, $title)
/**
* Send file to browser
*/
function send_file_to_browser($attachment, $upload_dir, $category)
function send_file_to_browser($attachment, $category)
{
global $user, $db, $phpbb_dispatcher, $phpbb_root_path, $request;
global $user, $db, $phpbb_dispatcher, $request, $phpbb_container;
$filename = $phpbb_root_path . $upload_dir . '/' . $attachment['physical_filename'];
$storage = $phpbb_container->get('storage.attachment');
if (!@file_exists($filename))
$filename = $attachment['physical_filename'];
if (!$storage->exists($filename))
{
send_status_line(404, 'Not Found');
trigger_error('ERROR_NO_ATTACHMENT');
@@ -147,14 +148,21 @@ function send_file_to_browser($attachment, $upload_dir, $category)
}
// Now send the File Contents to the Browser
$size = @filesize($filename);
try
{
$file_info = $storage->file_info($filename);
$size = $file_info->size;
}
catch (\Exception $e)
{
$size = 0;
}
/**
* Event to alter attachment before it is sent to browser.
*
* @event core.send_file_to_browser_before
* @var array attachment Attachment data
* @var string upload_dir Relative path of upload directory
* @var int category Attachment category
* @var string filename Path to file, including filename
* @var int size File size
@@ -162,7 +170,6 @@ function send_file_to_browser($attachment, $upload_dir, $category)
*/
$vars = array(
'attachment',
'upload_dir',
'category',
'filename',
'size',
@@ -172,15 +179,8 @@ function send_file_to_browser($attachment, $upload_dir, $category)
// To correctly display further errors we need to make sure we are using the correct headers for both (unsetting content-length may not work)
// Check if headers already sent or not able to get the file contents.
if (headers_sent() || !@file_exists($filename) || !@is_readable($filename))
if (headers_sent())
{
// PHP track_errors setting On?
if (!empty($php_errormsg))
{
send_status_line(500, 'Internal Server Error');
trigger_error($user->lang['UNABLE_TO_DELIVER_FILE'] . '<br />' . sprintf($user->lang['TRACKED_PHP_ERROR'], $php_errormsg));
}
send_status_line(500, 'Internal Server Error');
trigger_error('UNABLE_TO_DELIVER_FILE');
}
@@ -236,24 +236,6 @@ function send_file_to_browser($attachment, $upload_dir, $category)
if (!set_modified_headers($attachment['filetime'], $user->browser))
{
// We make sure those have to be enabled manually by defining a constant
// because of the potential disclosure of full attachment path
// in case support for features is absent in the webserver software.
if (defined('PHPBB_ENABLE_X_ACCEL_REDIRECT') && PHPBB_ENABLE_X_ACCEL_REDIRECT)
{
// X-Accel-Redirect - http://wiki.nginx.org/XSendfile
header('X-Accel-Redirect: ' . $user->page['root_script_path'] . $upload_dir . '/' . $attachment['physical_filename']);
exit;
}
else if (defined('PHPBB_ENABLE_X_SENDFILE') && PHPBB_ENABLE_X_SENDFILE && !phpbb_http_byte_range($size))
{
// X-Sendfile - http://blog.lighttpd.net/articles/2006/07/02/x-sendfile
// Lighttpd's X-Sendfile does not support range requests as of 1.4.26
// and always requires an absolute path.
header('X-Sendfile: ' . dirname(__FILE__) . "/../$upload_dir/{$attachment['physical_filename']}");
exit;
}
if ($size)
{
header("Content-Length: $size");
@@ -262,7 +244,7 @@ function send_file_to_browser($attachment, $upload_dir, $category)
// Try to deliver in chunks
@set_time_limit(0);
$fp = @fopen($filename, 'rb');
$fp = $storage->read_stream($filename);
if ($fp !== false)
{
@@ -292,10 +274,6 @@ function send_file_to_browser($attachment, $upload_dir, $category)
}
fclose($fp);
}
else
{
@readfile($filename);
}
flush();
}

View File

@@ -700,9 +700,7 @@ class messenger
$phpbb_container->get('path_helper'),
$phpbb_container->getParameter('core.template.cache_path'),
$phpbb_container->get('ext.manager'),
new \phpbb\template\twig\loader(
$phpbb_container->get('filesystem')
),
new \phpbb\template\twig\loader(),
$phpbb_dispatcher,
array()
);

View File

@@ -933,6 +933,14 @@ class p_master
'U_TITLE' => $u_title
);
if (isset($this->module_cache['parents'][$item_ary['id']]) || $item_ary['id'] == $this->p_id)
{
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $item_ary['lang'],
'U_VIEW_FORUM' => $u_title,
));
}
$template->assign_block_vars($use_tabular_offset, array_merge($tpl_ary, array_change_key_case($item_ary, CASE_UPPER)));
}

View File

@@ -395,34 +395,6 @@ function posting_gen_topic_types($forum_id, $cur_topic_type = POST_NORMAL)
//
// Attachment related functions
//
/**
* Upload Attachment - filedata is generated here
* Uses upload class
*
* @deprecated 3.2.0-a1 (To be removed: 3.4.0)
*
* @param string $form_name The form name of the file upload input
* @param int $forum_id The id of the forum
* @param bool $local Whether the file is local or not
* @param string $local_storage The path to the local file
* @param bool $is_message Whether it is a PM or not
* @param array $local_filedata A filespec object created for the local file
*
* @return array File data array
*/
function upload_attachment($form_name, $forum_id, $local = false, $local_storage = '', $is_message = false, $local_filedata = false)
{
global $phpbb_container;
/** @var \phpbb\attachment\manager $attachment_manager */
$attachment_manager = $phpbb_container->get('attachment.manager');
$file = $attachment_manager->upload($form_name, $forum_id, $local, $local_storage, $is_message, $local_filedata);
unset($attachment_manager);
return $file;
}
/**
* Calculate the needed size for Thumbnail
*/
@@ -1470,6 +1442,8 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll_ary, &$data
{
global $db, $auth, $user, $config, $phpEx, $phpbb_root_path, $phpbb_container, $phpbb_dispatcher, $phpbb_log, $request;
$attachment_storage = $phpbb_container->get('storage.attachment');
$poll = $poll_ary;
$data = $data_ary;
/**
@@ -2058,7 +2032,7 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll_ary, &$data
else
{
// insert attachment into db
if (!@file_exists($phpbb_root_path . $config['upload_path'] . '/' . utf8_basename($orphan_rows[$attach_row['attach_id']]['physical_filename'])))
if (!$attachment_storage->exists(utf8_basename($orphan_rows[$attach_row['attach_id']]['physical_filename'])))
{
continue;
}

View File

@@ -1614,6 +1614,8 @@ function submit_pm($mode, $subject, &$data_ary, $put_in_outbox = true)
{
global $db, $auth, $config, $user, $phpbb_root_path, $phpbb_container, $phpbb_dispatcher, $request;
$attachment_storage = $phpbb_container->get('storage.attachment');
// We do not handle erasing pms here
if ($mode == 'delete')
{
@@ -1881,7 +1883,7 @@ function submit_pm($mode, $subject, &$data_ary, $put_in_outbox = true)
else
{
// insert attachment into db
if (!@file_exists($phpbb_root_path . $config['upload_path'] . '/' . utf8_basename($orphan_rows[$attach_row['attach_id']]['physical_filename'])))
if (!$attachment_storage->exists(utf8_basename($orphan_rows[$attach_row['attach_id']]['physical_filename'])))
{
continue;
}

View File

@@ -2179,7 +2179,9 @@ function phpbb_style_is_active($style_id)
*/
function avatar_delete($mode, $row, $clean_db = false)
{
global $phpbb_root_path, $config;
global $config, $phpbb_container;
$storage = $phpbb_container->get('storage.avatar');
// Check if the users avatar is actually *not* a group avatar
if ($mode == 'user')
@@ -2196,11 +2198,16 @@ function avatar_delete($mode, $row, $clean_db = false)
}
$filename = get_avatar_filename($row[$mode . '_avatar']);
if (file_exists($phpbb_root_path . $config['avatar_path'] . '/' . $filename))
try
{
@unlink($phpbb_root_path . $config['avatar_path'] . '/' . $filename);
$storage->delete($filename);
return true;
}
catch (\phpbb\storage\exception\exception $e)
{
// Fail is covered by return statement below
}
return false;
}
@@ -2520,7 +2527,9 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow
*/
function group_correct_avatar($group_id, $old_entry)
{
global $config, $db, $phpbb_root_path;
global $config, $db, $phpbb_container;
$storage = $phpbb_container->get('storage.avatar');
$group_id = (int) $group_id;
$ext = substr(strrchr($old_entry, '.'), 1);
@@ -2528,14 +2537,19 @@ function group_correct_avatar($group_id, $old_entry)
$new_filename = $config['avatar_salt'] . "_g$group_id.$ext";
$new_entry = 'g' . $group_id . '_' . substr(time(), -5) . ".$ext";
$avatar_path = $phpbb_root_path . $config['avatar_path'];
if (@rename($avatar_path . '/'. $old_filename, $avatar_path . '/' . $new_filename))
try
{
$this->storage->rename($old_filename, $new_filename);
$sql = 'UPDATE ' . GROUPS_TABLE . '
SET group_avatar = \'' . $db->sql_escape($new_entry) . "'
WHERE group_id = $group_id";
$db->sql_query($sql);
}
catch (\phpbb\storage\exception\exception $e)
{
// If rename fail, dont execute the query
}
}

View File

@@ -434,8 +434,8 @@ class ucp_groups
'GROUP_DESC_DISP' => generate_text_for_display($group_row['group_desc'], $group_row['group_desc_uid'], $group_row['group_desc_bitfield'], $group_row['group_desc_options']),
'GROUP_TYPE' => $group_row['group_type'],
'AVATAR' => (empty($avatar) ? '<img src="' . $phpbb_admin_path . 'images/no_avatar.gif" alt="" />' : $avatar),
'AVATAR_IMAGE' => (empty($avatar) ? '<img src="' . $phpbb_admin_path . 'images/no_avatar.gif" alt="" />' : $avatar),
'AVATAR' => (empty($avatar) ? '<img class="avatar" src="' . $phpbb_admin_path . 'images/no_avatar.gif" alt="" />' : $avatar),
'AVATAR_IMAGE' => (empty($avatar) ? '<img class="avatar" src="' . $phpbb_admin_path . 'images/no_avatar.gif" alt="" />' : $avatar),
'AVATAR_WIDTH' => (isset($group_row['group_avatar_width'])) ? $group_row['group_avatar_width'] : '',
'AVATAR_HEIGHT' => (isset($group_row['group_avatar_height'])) ? $group_row['group_avatar_height'] : '',
));

View File

@@ -281,7 +281,7 @@ class convertor
$bad_folders = array();
$local_paths = array(
'avatar_path' => path($config['avatar_path']),
'avatar_path' => path($config['storage\\avatar\\config\\path']),
'avatar_gallery_path' => path($config['avatar_gallery_path']),
'icons_path' => path($config['icons_path']),
'ranks_path' => path($config['ranks_path']),

View File

@@ -38,7 +38,7 @@ $dbms = $phpbb_config_php_file->convert_30_dbms_to_31($dbms);
$convertor_data = array(
'forum_name' => 'phpBB 2.0.x',
'version' => '1.0.3',
'phpbb_version' => '3.2.3',
'phpbb_version' => '3.3.0-a1-dev',
'author' => '<a href="https://www.phpbb.com/">phpBB Limited</a>',
'dbms' => $dbms,
'dbhost' => $dbhost,
@@ -439,7 +439,6 @@ if (!$get_info)
array('group_name', 'extension_groups.group_name', array('function1' => 'phpbb_set_encoding', 'function2' => 'utf8_htmlspecialchars')),
array('cat_id', 'extension_groups.cat_id', 'phpbb_attachment_category'),
array('allow_group', 'extension_groups.allow_group', ''),
array('download_mode', 1, ''),
array('upload_icon', '', ''),
array('max_filesize', 'extension_groups.max_filesize', ''),
array('allowed_forums', 'extension_groups.forum_permissions', 'phpbb_attachment_forum_perms'),

View File

@@ -23,7 +23,7 @@ if (php_sapi_name() !== 'cli')
define('IN_PHPBB', true);
define('IN_INSTALL', true);
define('PHPBB_ENVIRONMENT', 'production');
define('PHPBB_VERSION', '3.2.3-RC1');
define('PHPBB_VERSION', '3.3.0-a1-dev');
$phpbb_root_path = __DIR__ . '/../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);

View File

@@ -55,7 +55,6 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('avatar_max_height'
INSERT INTO phpbb_config (config_name, config_value) VALUES ('avatar_max_width', '90');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('avatar_min_height', '20');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('avatar_min_width', '20');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('avatar_path', 'images/avatars/upload');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('avatar_salt', 'phpbb_avatar');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('board_contact', 'contact@yourdomain.tld');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('board_contact_name', '');
@@ -278,11 +277,20 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('teampage_forums',
INSERT INTO phpbb_config (config_name, config_value) VALUES ('topics_per_page', '25');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('use_system_cron', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.2.4-dev');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.3.0-a1-dev');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('exts_composer_repositories', '[]');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('exts_composer_packagist', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('exts_composer_json_file', 'composer-ext.json');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('exts_composer_vendor_dir', 'vendor-ext/');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('exts_composer_enable_on_install', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('exts_composer_purge_on_remove', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('storage\attachment\provider', 'phpbb\storage\provider\local');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('storage\attachment\config\path', 'files');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('storage\avatar\provider', 'phpbb\storage\provider\local');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('storage\avatar\config\path', 'images/avatars/upload');
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('cache_last_gc', '0', 1);
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('cron_lock', '0', 1);
@@ -402,6 +410,7 @@ INSERT INTO phpbb_acl_options (auth_option, is_global) VALUES ('a_reasons', 1);
INSERT INTO phpbb_acl_options (auth_option, is_global) VALUES ('a_roles', 1);
INSERT INTO phpbb_acl_options (auth_option, is_global) VALUES ('a_search', 1);
INSERT INTO phpbb_acl_options (auth_option, is_global) VALUES ('a_server', 1);
INSERT INTO phpbb_acl_options (auth_option, is_global) VALUES ('a_storage', 1);
INSERT INTO phpbb_acl_options (auth_option, is_global) VALUES ('a_styles', 1);
INSERT INTO phpbb_acl_options (auth_option, is_global) VALUES ('a_switchperm', 1);
INSERT INTO phpbb_acl_options (auth_option, is_global) VALUES ('a_uauth', 1);
@@ -721,12 +730,12 @@ INSERT INTO phpbb_reports_reasons (reason_title, reason_description, reason_orde
INSERT INTO phpbb_reports_reasons (reason_title, reason_description, reason_order) VALUES ('other', '{L_REPORT_OTHER}', 4);
# -- extension_groups
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, download_mode, upload_icon, max_filesize, allowed_forums) VALUES ('IMAGES', 1, 1, 1, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, download_mode, upload_icon, max_filesize, allowed_forums) VALUES ('ARCHIVES', 0, 1, 1, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, download_mode, upload_icon, max_filesize, allowed_forums) VALUES ('PLAIN_TEXT', 0, 0, 1, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, download_mode, upload_icon, max_filesize, allowed_forums) VALUES ('DOCUMENTS', 0, 0, 1, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, download_mode, upload_icon, max_filesize, allowed_forums) VALUES ('FLASH_FILES', 5, 0, 1, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, download_mode, upload_icon, max_filesize, allowed_forums) VALUES ('DOWNLOADABLE_FILES', 0, 0, 1, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon, max_filesize, allowed_forums) VALUES ('IMAGES', 1, 1, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon, max_filesize, allowed_forums) VALUES ('ARCHIVES', 0, 1, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon, max_filesize, allowed_forums) VALUES ('PLAIN_TEXT', 0, 0, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon, max_filesize, allowed_forums) VALUES ('DOCUMENTS', 0, 0, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon, max_filesize, allowed_forums) VALUES ('FLASH_FILES', 5, 0, '', 0, '');
INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon, max_filesize, allowed_forums) VALUES ('DOWNLOADABLE_FILES', 0, 0, '', 0, '');
# -- extensions
INSERT INTO phpbb_extensions (group_id, extension) VALUES (1, 'gif');

View File

@@ -120,6 +120,7 @@ $phpbb_adm_relative_path = (isset($phpbb_adm_relative_path)) ? $phpbb_adm_relati
$phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : $phpbb_root_path . $phpbb_adm_relative_path;
// Include files
phpbb_require_updated('includes/compatibility_globals.' . $phpEx, $phpbb_root_path);
phpbb_require_updated('includes/functions.' . $phpEx, $phpbb_root_path);
phpbb_require_updated('includes/functions_content.' . $phpEx, $phpbb_root_path);
phpbb_include_updated('includes/functions_compatibility.' . $phpEx, $phpbb_root_path);

View File

@@ -88,6 +88,11 @@ $lang = array_merge($lang, array(
'ACP_EXTENSION_GROUPS' => 'Manage attachment extension groups',
'ACP_EXTENSION_MANAGEMENT' => 'Extension management',
'ACP_EXTENSIONS' => 'Manage extensions',
'ACP_EXTENSIONS_CATALOG' => 'Extensions catalog',
'ACP_EXTENSIONS_INSTALL' => 'Install extensions',
'ACP_EXTENSIONS_REMOVE' => 'Remove extensions',
'ACP_EXTENSIONS_UPDATE' => 'Update extensions',
'ACP_EXTENSIONS_MANAGE' => 'Manage extension automatically',
'ACP_FORUM_BASED_PERMISSIONS' => 'Forum based permissions',
'ACP_FORUM_LOGS' => 'Forum logs',
@@ -173,6 +178,9 @@ $lang = array_merge($lang, array(
'ACP_SERVER_SETTINGS' => 'Server settings',
'ACP_SIGNATURE_SETTINGS' => 'Signature settings',
'ACP_SMILIES' => 'Smilies',
'ACP_STORAGE_SETTINGS' => 'Storage settings',
'ACP_STYLE_MANAGEMENT' => 'Style management',
'ACP_STYLES' => 'Styles',
'ACP_STYLES_CACHE' => 'Purge Cache',
@@ -240,6 +248,17 @@ $lang = array_merge($lang, array(
'EXCEPTION' => 'Exception',
'COLOUR_SWATCH' => 'Web-safe colour swatch',
'COMPOSER_UNSUPPORTED_OPERATION' => 'Operation unsupported for the package type “%s”.',
'COMPOSER_UPDATING_DEPENDENCIES' => 'Updating packages',
'COMPOSER_LOADING_REPOSITORIES' => 'Loading remote repositories with package information',
'COMPOSER_ERROR_CONFLICT' => 'Your requirements could not be resolved to an installable set of packages.',
'COMPOSER_REPOSITORY_UNAVAILABLE' => 'An error occurred while fetching the repository %s.',
'COMPOSER_INSTALLING_PACKAGE' => ' - Installing %1$s (%2$s)',
'COMPOSER_DELETING' => ' - Deleting %s',
'COMPOSER_UPDATE_NOTHING' => 'Nothing to update',
'COMPOSER_OUTPUT' => 'Composer output',
'CONFIG_UPDATED' => 'Configuration updated successfully.',
'CRON_LOCK_ERROR' => 'Could not obtain cron lock.',
'CRON_NO_SUCH_TASK' => 'Could not find cron task “%s”.',
@@ -372,7 +391,7 @@ $lang = array_merge($lang, array(
'DATABASE_SERVER_INFO' => 'Database server',
'DATABASE_SIZE' => 'Database size',
// Enviroment configuration checks, mbstring related
// Environment configuration checks, mbstring related
'ERROR_MBSTRING_FUNC_OVERLOAD' => 'Function overloading is improperly configured',
'ERROR_MBSTRING_FUNC_OVERLOAD_EXPLAIN' => '<var>mbstring.func_overload</var> must be set to either 0 or 4. You can check the current value on the <samp>PHP information</samp> page.',
'ERROR_MBSTRING_ENCODING_TRANSLATION' => 'Transparent character encoding is improperly configured',

View File

@@ -35,6 +35,22 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'EXTENSION_ALREADY_INSTALLED' => 'The “%s” extension has already been installed.',
'EXTENSION_ALREADY_INSTALLED_MANUALLY' => 'The “%s” extension has already been installed manually.',
'EXTENSION_ALREADY_MANAGED' => 'The “%s” extension is already managed.',
'EXTENSION_CANNOT_MANAGE_FILESYSTEM_ERROR' => 'The “%s” extension cannot be managed because the existing files could not be removed from the filesystem.',
'EXTENSION_CANNOT_MANAGE_INSTALL_ERROR' => 'The “%s” extension could not be installed. The prior installation of this extension has been restored.',
'EXTENSION_MANAGED_WITH_CLEAN_ERROR' => 'The “%1$s” extension has been installed but an error occurred and the old files could not be removed. You might want to delete the “%2$s” files manually.',
'EXTENSION_MANAGED_WITH_ENABLE_ERROR' => 'The “%s” extension has been installed but an error occurred while enabling it.',
'EXTENSION_NOT_INSTALLED' => 'The “%s” extension is not installed.',
'ENABLING_EXTENSIONS' => 'Enabling extensions',
'DISABLING_EXTENSIONS' => 'Disabling extensions',
'EXTENSIONS_CATALOG' => 'Extensions Catalog',
'EXTENSIONS_CATALOG_EXPLAIN' => 'Here you can browse all of the extensions available for your phpBB board. Extensions can easily be installed or removed with just a click. Adjust the settings to allow instant enabling and purging of extensions.',
'EXTENSION' => 'Extension',
'EXTENSIONS' => 'Extensions',
'EXTENSIONS_ADMIN' => 'Extensions Manager',
@@ -43,7 +59,6 @@ $lang = array_merge($lang, array(
'EXTENSION_NOT_AVAILABLE' => 'The selected extension is not available for this board, please verify your phpBB and PHP versions are allowed (see the details page).',
'EXTENSION_DIR_INVALID' => 'The selected extension has an invalid directory structure and cannot be enabled.',
'EXTENSION_NOT_ENABLEABLE' => 'The selected extension cannot be enabled, please verify the extensions requirements.',
'EXTENSION_NOT_INSTALLED' => 'The extension %s is not available. Please check that you have installed it correctly.',
'DETAILS' => 'Details',
@@ -53,6 +68,8 @@ $lang = array_merge($lang, array(
'EXTENSION_DELETE_DATA' => 'Delete data',
'EXTENSION_DISABLE' => 'Disable',
'EXTENSION_ENABLE' => 'Enable',
'EXTENSION_UPDATE' => 'Update',
'EXTENSION_REMOVE' => 'Remove',
'EXTENSION_DELETE_DATA_EXPLAIN' => 'Deleting an extensions data removes all of its data and settings. The extension files are retained so it can be enabled again.',
'EXTENSION_DISABLE_EXPLAIN' => 'Disabling an extension retains its files, data and settings but removes any functionality added by the extension.',
@@ -94,6 +111,9 @@ $lang = array_merge($lang, array(
'EXTENSION_ENABLE_CONFIRM' => 'Are you sure that you wish to enable the “%s” extension?',
'EXTENSION_FORCE_UNSTABLE_CONFIRM' => 'Are you sure that you wish to force the use of unstable version?',
'INSTALLED' => 'Installed',
'INSTALLED_MANUALLY' => 'Installed manually',
'RETURN_TO_EXTENSION_LIST' => 'Return to the extension list',
'EXT_DETAILS' => 'Extension Details',
@@ -130,4 +150,32 @@ $lang = array_merge($lang, array(
'META_FIELD_NOT_SET' => 'Required meta field %s has not been set.',
'META_FIELD_INVALID' => 'Meta field %s is invalid.',
'EXTENSIONS_CATALOG_SETTINGS' => 'Extensions catalog settings',
'ENABLE_ON_INSTALL' => 'Enable extensions while installing',
'PURGE_ON_REMOVE' => 'Purge extensions while removing',
'ENABLE_PACKAGIST' => 'Search packagist',
'ENABLE_PACKAGIST_EXPLAIN' => 'Search packagist for phpBB extensions. Beware that packagist may contain extensions not validated by the phpBB Extension Customisations Team.',
'ENABLE_PACKAGIST_CONFIRM' => 'Are you sure you want to search packagist?',
'COMPOSER_REPOSITORIES' => 'Repositories',
'COMPOSER_REPOSITORIES_EXPLAIN' => 'Add URLs to Composer repositories of phpBB extensions to search here, one per line (must be the base url of the packages.json file).',
'NO_EXTENSION_AVAILABLE' => 'There are no extension available for your board',
'EXTENSION_MANAGED_SUCCESS' => 'The extension %s is now being managed automatically.',
'EXTENSIONS_INSTALLED' => 'Extensions successfully installed.',
'EXTENSIONS_REMOVED' => 'Extensions successfully removed.',
'EXTENSIONS_UPDATED' => 'Extensions successfully updated.',
'EXTENSIONS_CATALOG_NOT_AVAILABLE' => 'The extensions catalog is not available',
'EXTENSIONS_COMPOSER_NOT_WRITABLE' => 'In order to use the catalog, the following files and directories must be writable: ext/ vendor-ext/ composer-ext.json and composer-ext.lock',
'STABILITY_STABLE' => 'stable',
'STABILITY_RC' => 'RC',
'STABILITY_BETA' => 'beta',
'STABILITY_ALPHA' => 'alpha',
'STABILITY_DEV' => 'dev',
'COMPOSER_MINIMUM_STABILITY' => 'Minimum stability',
'COMPOSER_MINIMUM_STABILITY_EXPLAIN' => 'Always use <samp>stable</samp> versions on a live forum. Non-stable versions may still be in development and could cause unexpected problems with your forum and should only be used for development purposes in local or staging environments.',
));

View File

@@ -200,6 +200,7 @@ $lang = array_merge($lang, array(
'ACL_A_ROLES' => 'Can manage roles',
'ACL_A_SWITCHPERM' => 'Can use others permissions',
'ACL_A_STORAGE' => 'Can manage storages',
'ACL_A_STYLES' => 'Can manage styles',
'ACL_A_EXTENSIONS' => 'Can manage extensions',
'ACL_A_VIEWLOGS' => 'Can view logs',

View File

@@ -0,0 +1,64 @@
<?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.
*
*/
/**
* DO NOT CHANGE
*/
if (!defined('IN_PHPBB'))
{
exit;
}
if (empty($lang) || !is_array($lang))
{
$lang = array();
}
// DEVELOPERS PLEASE NOTE
//
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
//
// Placeholders can now contain order information, e.g. instead of
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
// translators to re-order the output of data while ensuring it remains correct
//
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
// equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
// Template
'STORAGE_TITLE' => 'Storage Settings',
'STORAGE_TITLE_EXPLAIN' => 'Change storage providers for the file storage types of phpBB. Choose local or remote providers to store files added to or created by phpBB.',
'STORAGE_SELECT' => 'Select storage',
'STORAGE_SELECT_DESC' => 'Select a storage from the list.',
// Storage names
'STORAGE_ATTACHMENT_TITLE' => 'Attachments storage',
'STORAGE_AVATAR_TITLE' => 'Avatars storage',
'STORAGE_BACKUP_TITLE' => 'Backup storage',
// Local adapter
'STORAGE_ADAPTER_LOCAL_NAME' => 'Local',
'STORAGE_ADAPTER_LOCAL_OPTION_PATH' => 'Path',
// Form validation
'STORAGE_UPDATE_SUCCESSFUL' => 'All storage types were successfully updated.',
'STORAGE_NO_CHANGES' => 'No changes have been applied.',
'STORAGE_PROVIDER_NOT_EXISTS' => 'Provider selected for %s doesnt exist.',
'STORAGE_PROVIDER_NOT_AVAILABLE' => 'Provider selected for %s is not available.',
'STORAGE_FORM_TYPE_EMAIL_INCORRECT_FORMAT' => 'Incorrect email for %s of %s.',
'STORAGE_FORM_TYPE_TEXT_TOO_LONG' => 'Text is too long for %s of %s.',
'STORAGE_FORM_TYPE_SELECT_NOT_AVAILABLE' => 'Selected value is not available for %s of %s.',
));

View File

@@ -164,6 +164,18 @@ $lang = array_merge($lang, array(
1 => 'Re-cleaning complete. %d username was cleaned.',
2 => 'Re-cleaning complete. %d usernames were cleaned.',
],
'CLI_DESCRIPTION_EXTENSION_MANAGE' => 'Manages an extension',
'CLI_DESCRIPTION_EXTENSION_MANAGE_ARGUMENT' => 'Extension to manage',
'CLI_DESCRIPTION_EXTENSION_INSTALL' => 'Install the specified extension(s).',
'CLI_DESCRIPTION_EXTENSION_INSTALL_OPTION_ENABLE' => 'Enable extension(s) after installation',
'CLI_DESCRIPTION_EXTENSION_INSTALL_ARGUMENT' => 'Extension(s) to install, e.g.: vendor/package',
'CLI_DESCRIPTION_EXTENSION_LIST_AVAILABLE' => 'List extensions available for installation.',
'CLI_DESCRIPTION_EXTENSION_REMOVE' => 'Remove the specified extension(s).',
'CLI_DESCRIPTION_EXTENSION_REMOVE_OPTION_PURGE' => 'Purge extension(s) when removing them',
'CLI_DESCRIPTION_EXTENSION_REMOVE_ARGUMENT' => 'Extension(s) to remove, e.g.: vendor/package',
'CLI_DESCRIPTION_EXTENSION_UPDATE' => 'Update the specified extension(s).',
'CLI_DESCRIPTION_EXTENSION_UPDATE_ARGUMENT' => 'Extension(s) to update, e.g.: vendor/package',
));
// Additional help for commands.

View File

@@ -157,6 +157,7 @@ $lang = array_merge($lang, array(
'BYTES_SHORT' => 'B',
'CANCEL' => 'Cancel',
'CANNOT_RENAME_FILE' => 'Cannot rename %s',
'CHANGE' => 'Change',
'CHANGE_FONT_SIZE' => 'Change font size',
'CHANGING_PREFERENCES' => 'Changing board preferences',
@@ -372,7 +373,7 @@ $lang = array_merge($lang, array(
'LDAP_SEARCH_FAILED' => 'An error occurred while searching the LDAP directory.',
'LEGEND' => 'Legend',
'LIVE_SEARCHES_NOT_ALLOWED' => 'Live searches are not allowed.',
'LOADING' => 'Loading',
'LOADING' => 'Loading...',
'LOCATION' => 'Location',
'LOCK_POST' => 'Lock post',
'LOCK_POST_EXPLAIN' => 'Prevent editing',
@@ -484,7 +485,7 @@ $lang = array_merge($lang, array(
'NOTIFICATION_TOPIC_IN_QUEUE' => '<strong>Topic approval</strong> request by %1$s:',
'NOTIFICATION_TYPE_NOT_EXIST' => 'The notification type "%s" is missing from the file system.',
'NOTIFICATION_ADMIN_ACTIVATE_USER' => '<strong>Activation required</strong> for deactivated or newly registered user: “%1$s”',
// Used in conjuction with NOTIFICATION_BOOKMARK and NOTIFICATION_POST.
// Used in conjunction with NOTIFICATION_BOOKMARK and NOTIFICATION_POST.
'NOTIFICATION_MANY_OTHERS' => 'others',
'NOTIFICATION_X_OTHERS' => array(
2 => '%d others',
@@ -731,6 +732,19 @@ $lang = array_merge($lang, array(
'SUBJECT' => 'Subject',
'SUBMIT' => 'Submit',
'STORAGE_ADAPTER_NOT_AVAILABLE' => 'Selected storage is not available.',
'STORAGE_FILE_EXISTS' => 'File already exists.',
'STORAGE_FILE_NO_EXIST' => 'File does not exist.',
'STORAGE_CANNOT_WRITE_FILE' => 'Can not write to file.',
'STORAGE_CANNOT_READ_FILE' => 'Can not read file.',
'STORAGE_CANNOT_DELETE' => 'Can not delete file or folder.',
'STORAGE_CANNOT_RENAME' => 'Can not rename file or folder.',
'STORAGE_CANNOT_COPY' => 'Can not copy file or folder.',
'STORAGE_CANNOT_COPY_RESOURCE' => 'Can not copy resource.',
'STORAGE_CANNOT_CREATE_DIR' => 'Can not create directory.',
'STORAGE_CANNOT_OPEN_FILE' => 'Can not open file.',
'STORAGE_CANNOT_CREATE_FILE' => 'Can not create file.',
'TB' => 'TB',
'TERMS_USE' => 'Terms of use',
'TEST_CONNECTION' => 'Test connection',

View File

@@ -220,7 +220,7 @@ $lang = array_merge($lang, array(
'UPDATE_INCOMPLETE_MORE' => 'Please read the information below in order to fix this error.',
'UPDATE_INCOMPLETE_EXPLAIN' => '<h1>Incomplete update</h1>
<p>We noticed that the last update of your phpBB installation hasnt been completed. Visit the <a href="%1$s" title="%1$s">database updater</a>, ensure <em>Update database only</em> is selected and click on <strong>Submit</strong>. Don\'t forget to delete the "install"-directory after you have updated the database sucessfully.</p>',
<p>We noticed that the last update of your phpBB installation hasnt been completed. Visit the <a href="%1$s" title="%1$s">database updater</a>, ensure <em>Update database only</em> is selected and click on <strong>Submit</strong>. Don\'t forget to delete the "install"-directory after you have updated the database successfully.</p>',
//
// Server data
@@ -565,7 +565,7 @@ $lang = array_merge($lang, array(
// Finish conversion
'CONVERT_COMPLETE' => 'Conversion completed',
'CONVERT_COMPLETE_EXPLAIN' => 'You have now successfully converted your board to phpBB 3.2. You can now login and <a href="../">access your board</a>. Please ensure that the settings were transferred correctly before enabling your board by deleting the install directory. Remember that help on using phpBB is available online via the <a href="https://www.phpbb.com/support/docs/en/3.2/ug/">Documentation</a> and the <a href="https://www.phpbb.com/community/viewforum.php?f=466">support forums</a>.',
'CONVERT_COMPLETE_EXPLAIN' => 'You have now successfully converted your board to phpBB 3.3. You can now login and <a href="../">access your board</a>. Please ensure that the settings were transferred correctly before enabling your board by deleting the install directory. Remember that help on using phpBB is available online via the <a href="https://www.phpbb.com/support/docs/en/3.3/ug/">Documentation</a> and the <a href="https://www.phpbb.com/community/viewforum.php?f=466">support forums</a>.',
'CONV_ERROR_ATTACH_FTP_DIR' => 'FTP upload for attachments is enabled at the old board. Please disable the FTP upload option and make sure a valid upload directory is specified, then copy all attachment files to this new web accessible directory. Once you have done this, restart the convertor.',
'CONV_ERROR_CONFIG_EMPTY' => 'There is no configuration information available for the conversion.',

View File

@@ -308,6 +308,11 @@ $vars = array(
);
extract($phpbb_dispatcher->trigger_event('core.modify_mcp_modules_display_option', compact($vars)));
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $user->lang('MCP'),
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}mcp.$phpEx"),
));
// Load and execute the relevant module
$module->load_active();

View File

@@ -364,6 +364,11 @@ switch ($mode)
}
}
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $page_title,
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=team"),
));
$template->assign_vars(array(
'PM_IMG' => $user->img('icon_contact_pm', $user->lang['SEND_PRIVATE_MESSAGE']))
);
@@ -461,6 +466,11 @@ switch ($mode)
break;
}
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $page_title,
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=contact&amp;action=$action&amp;u=$user_id"),
));
// Send vars to the template
$template->assign_vars(array(
'IM_CONTACT' => $row[$sql_field],
@@ -788,6 +798,15 @@ switch ($mode)
$page_title = sprintf($user->lang['VIEWING_PROFILE'], $member['username']);
$template_html = 'memberlist_view.html';
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $user->lang('MEMBERLIST'),
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}memberlist.$phpEx"),
));
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $member['username'],
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=viewprofile&u=$user_id"),
));
break;
case 'contactadmin':
@@ -837,6 +856,41 @@ switch ($mode)
$template_html = $form->get_template_file();
$form->render($template);
if ($user_id)
{
$navlink_name = $user->lang('SEND_EMAIL');
$navlink_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=email&u=$user_id");
}
else if ($topic_id)
{
$sql = 'SELECT f.parent_id, f.forum_parents, f.left_id, f.right_id, f.forum_type, f.forum_name, f.forum_id, f.forum_desc, f.forum_desc_uid, f.forum_desc_bitfield, f.forum_desc_options, f.forum_options, t.topic_title
FROM ' . FORUMS_TABLE . ' as f,
' . TOPICS_TABLE . ' as t
WHERE t.forum_id = f.forum_id';
$result = $db->sql_query($sql);
$topic_data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
generate_forum_nav($topic_data);
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $topic_data['topic_title'],
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "t=$topic_id"),
));
$navlink_name = $user->lang('EMAIL_TOPIC');
$navlink_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=email&t=$topic_id");
}
else if ($mode === 'contactadmin')
{
$navlink_name = $user->lang('CONTACT_ADMIN');
$navlink_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=contactadmin");
}
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $navlink_name,
'U_VIEW_FORUM' => $navlink_url,
));
break;
case 'livesearch':
@@ -874,6 +928,11 @@ switch ($mode)
$page_title = $user->lang['MEMBERLIST'];
$template_html = 'memberlist_body.html';
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $page_title,
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}memberlist.$phpEx"),
));
/* @var $pagination \phpbb\pagination */
$pagination = $phpbb_container->get('pagination');
@@ -1179,6 +1238,11 @@ switch ($mode)
unset($module);
}
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $group_helper->get_name($group_row['group_name']),
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=group&amp;g=$group_id"),
));
$template->assign_vars(array(
'GROUP_DESC' => generate_text_for_display($group_row['group_desc'], $group_row['group_desc_uid'], $group_row['group_desc_bitfield'], $group_row['group_desc_options']),
'GROUP_NAME' => $group_helper->get_name($group_row['group_name']),

View File

@@ -16,7 +16,7 @@ namespace phpbb\attachment;
use \phpbb\config\config;
use \phpbb\db\driver\driver_interface;
use \phpbb\event\dispatcher;
use \phpbb\filesystem\filesystem;
use \phpbb\storage\storage;
/**
* Attachment delete class
@@ -32,14 +32,11 @@ class delete
/** @var dispatcher */
protected $dispatcher;
/** @var filesystem */
protected $filesystem;
/** @var resync */
protected $resync;
/** @var string phpBB root path */
protected $phpbb_root_path;
/** @var storage */
protected $storage;
/** @var array Attachement IDs */
protected $ids;
@@ -71,18 +68,16 @@ class delete
* @param config $config
* @param driver_interface $db
* @param dispatcher $dispatcher
* @param filesystem $filesystem
* @param resync $resync
* @param string $phpbb_root_path
* @param storage $storage
*/
public function __construct(config $config, driver_interface $db, dispatcher $dispatcher, filesystem $filesystem, resync $resync, $phpbb_root_path)
public function __construct(config $config, driver_interface $db, dispatcher $dispatcher, resync $resync, storage $storage)
{
$this->config = $config;
$this->db = $db;
$this->dispatcher = $dispatcher;
$this->filesystem = $filesystem;
$this->resync = $resync;
$this->phpbb_root_path = $phpbb_root_path;
$this->storage = $storage;
}
/**
@@ -161,8 +156,8 @@ class delete
return 0;
}
// Delete attachments from filesystem
$this->remove_from_filesystem();
// Delete attachments from storage
$this->remove_from_storage();
// If we do not resync, we do not need to adjust any message, post, topic or user entries
if (!$resync)
@@ -327,9 +322,9 @@ class delete
}
/**
* Delete attachments from filesystem
* Delete attachments from storage
*/
protected function remove_from_filesystem()
protected function remove_from_storage()
{
$space_removed = $files_removed = 0;
@@ -388,7 +383,7 @@ class delete
}
/**
* Delete attachment from filesystem
* Delete attachment from storage
*
* @param string $filename Filename of attachment
* @param string $mode Delete mode
@@ -412,17 +407,16 @@ class delete
}
$filename = ($mode == 'thumbnail') ? 'thumb_' . utf8_basename($filename) : utf8_basename($filename);
$filepath = $this->phpbb_root_path . $this->config['upload_path'] . '/' . $filename;
try
{
if ($this->filesystem->exists($filepath))
if ($this->storage->exists($filename))
{
$this->filesystem->remove($this->phpbb_root_path . $this->config['upload_path'] . '/' . $filename);
$this->storage->delete($filename);
return true;
}
}
catch (\phpbb\filesystem\exception\filesystem_exception $exception)
catch (\phpbb\storage\exception\exception $exception)
{
// Fail is covered by return statement below
}

View File

@@ -20,6 +20,7 @@ use \phpbb\event\dispatcher;
use \phpbb\language\language;
use \phpbb\mimetype\guesser;
use \phpbb\plupload\plupload;
use \phpbb\storage\storage;
use \phpbb\user;
/**
@@ -51,6 +52,9 @@ class upload
/** @var plupload Plupload */
protected $plupload;
/** @var storage */
protected $storage;
/** @var user */
protected $user;
@@ -77,9 +81,8 @@ class upload
* @param dispatcher $phpbb_dispatcher
* @param plupload $plupload
* @param user $user
* @param $phpbb_root_path
*/
public function __construct(auth $auth, service $cache, config $config, \phpbb\files\upload $files_upload, language $language, guesser $mimetype_guesser, dispatcher $phpbb_dispatcher, plupload $plupload, user $user, $phpbb_root_path)
public function __construct(auth $auth, service $cache, config $config, \phpbb\files\upload $files_upload, language $language, guesser $mimetype_guesser, dispatcher $phpbb_dispatcher, plupload $plupload, storage $storage, user $user)
{
$this->auth = $auth;
$this->cache = $cache;
@@ -89,8 +92,8 @@ class upload
$this->mimetype_guesser = $mimetype_guesser;
$this->phpbb_dispatcher = $phpbb_dispatcher;
$this->plupload = $plupload;
$this->storage = $storage;
$this->user = $user;
$this->phpbb_root_path = $phpbb_root_path;
}
/**
@@ -118,7 +121,7 @@ class upload
return $this->file_data;
}
$this->file = ($local) ? $this->files_upload->handle_upload('files.types.local', $local_storage, $local_filedata) : $this->files_upload->handle_upload('files.types.form', $form_name);
$this->file = ($local) ? $this->files_upload->handle_upload('files.types.local_storage', $local_storage, $local_filedata) : $this->files_upload->handle_upload('files.types.form_storage', $form_name);
if ($this->file->init_error())
{
@@ -152,10 +155,6 @@ class upload
$this->file->clean_filename('unique', $this->user->data['user_id'] . '_');
// Are we uploading an image *and* this image being within the image category?
// Only then perform additional image checks.
$this->file->move_file($this->config['upload_path'], false, !$is_image);
// Do we have to create a thumbnail?
$this->file_data['thumbnail'] = ($is_image && $this->config['img_create_thumbnail']) ? 1 : 0;
@@ -164,7 +163,7 @@ class upload
if (count($this->file->error))
{
$this->file->remove();
$this->file->remove($this->storage);
$this->file_data['error'] = array_merge($this->file_data['error'], $this->file->error);
$this->file_data['post_attach'] = false;
@@ -200,6 +199,27 @@ class upload
// Create Thumbnail
$this->create_thumbnail();
// Are we uploading an image *and* this image being within the image category?
// Only then perform additional image checks.
$this->file->move_file($this->storage, false, !$is_image);
if (count($this->file->error))
{
$this->file->remove($this->storage);
// Remove thumbnail if exists
$thumbnail_file = 'thumb_' . $this->file->get('realname');
if ($this->storage->exists($thumbnail_file))
{
$this->storage->delete($thumbnail_file);
}
$this->file_data['error'] = array_merge($this->file_data['error'], $this->file->error);
$this->file_data['post_attach'] = false;
return $this->file_data;
}
return $this->file_data;
}
@@ -212,10 +232,18 @@ class upload
{
if ($this->file_data['thumbnail'])
{
$source = $this->file->get('destination_file');
$destination = $this->file->get('destination_path') . '/thumb_' . $this->file->get('realname');
$source = $this->file->get('filename');
$destination_name = 'thumb_' . $this->file->get('realname');
$destination = sys_get_temp_dir() . '/' . $destination_name;
if (!create_thumbnail($source, $destination, $this->file->get('mimetype')))
if (create_thumbnail($source, $destination, $this->file->get('mimetype')))
{
// Move the thumbnail from temp folder to the storage
$fp = fopen($destination, 'rb');
$this->storage->write_stream($destination_name, $fp);
fclose($fp);
}
else
{
$this->file_data['thumbnail'] = 0;
}
@@ -253,7 +281,7 @@ class upload
// Make sure the image category only holds valid images...
if ($is_image && !$this->file->is_image())
{
$this->file->remove();
$this->file->remove($this->storage);
if ($this->plupload && $this->plupload->is_active())
{
@@ -280,7 +308,7 @@ class upload
$this->file_data['error'][] = $this->language->lang('ATTACH_QUOTA_REACHED');
$this->file_data['post_attach'] = false;
$this->file->remove();
$this->file->remove($this->storage);
return false;
}
@@ -296,26 +324,6 @@ class upload
*/
protected function check_disk_space()
{
if ($free_space = @disk_free_space($this->phpbb_root_path . $this->config['upload_path']))
{
if ($free_space <= $this->file->get('filesize'))
{
if ($this->auth->acl_get('a_'))
{
$this->file_data['error'][] = $this->language->lang('ATTACH_DISK_FULL');
}
else
{
$this->file_data['error'][] = $this->language->lang('ATTACH_QUOTA_REACHED');
}
$this->file_data['post_attach'] = false;
$this->file->remove();
return false;
}
}
return true;
}

View File

@@ -274,7 +274,7 @@ class oauth extends \phpbb\auth\provider\base
$storage->set_user_id($row['user_id']);
/**
* Event is triggered after user is successfuly logged in via OAuth.
* Event is triggered after user is successfully logged in via OAuth.
*
* @event core.auth_oauth_login_after
* @var array row User row

View File

@@ -40,7 +40,7 @@ class gravatar extends \phpbb\avatar\driver\driver
*/
public function get_custom_html($user, $row, $alt = '')
{
return '<img src="' . $this->get_gravatar_url($row) . '" ' .
return '<img class="gravatar" src="' . $this->get_gravatar_url($row) . '" ' .
($row['avatar_width'] ? ('width="' . $row['avatar_width'] . '" ') : '') .
($row['avatar_height'] ? ('height="' . $row['avatar_height'] . '" ') : '') .
'alt="' . ((!empty($user->lang[$alt])) ? $user->lang[$alt] : $alt) . '" />';

View File

@@ -13,15 +13,18 @@
namespace phpbb\avatar\driver;
use bantu\IniGetWrapper\IniGetWrapper;
use \phpbb\storage\exception\exception as storage_exception;
/**
* Handles avatars uploaded to the board
*/
class upload extends \phpbb\avatar\driver\driver
{
/**
* @var \phpbb\filesystem\filesystem_interface
* @var \phpbb\storage\storage
*/
protected $filesystem;
protected $storage;
/**
* @var \phpbb\event\dispatcher_interface
@@ -33,28 +36,33 @@ class upload extends \phpbb\avatar\driver\driver
*/
protected $files_factory;
/**
* @var IniGetWrapper
*/
protected $php_ini;
/**
* Construct a driver object
*
* @param \phpbb\config\config $config phpBB configuration
* @param string $phpbb_root_path Path to the phpBB root
* @param string $php_ext PHP file extension
* @param \phpbb\filesystem\filesystem_interface $filesystem phpBB filesystem helper
* @param \phpbb\storage\storage phpBB avatar storage
* @param \phpbb\path_helper $path_helper phpBB path helper
* @param \phpbb\event\dispatcher_interface $dispatcher phpBB Event dispatcher object
* @param \phpbb\files\factory $files_factory File classes factory
* @param \phpbb\cache\driver\driver_interface $cache Cache driver
* @param IniGetWrapper $php_ini ini_get() wrapper
*/
public function __construct(\phpbb\config\config $config, $phpbb_root_path, $php_ext, \phpbb\filesystem\filesystem_interface $filesystem, \phpbb\path_helper $path_helper, \phpbb\event\dispatcher_interface $dispatcher, \phpbb\files\factory $files_factory, \phpbb\cache\driver\driver_interface $cache = null)
public function __construct(\phpbb\config\config $config, $phpbb_root_path, $php_ext, \phpbb\storage\storage $storage, \phpbb\path_helper $path_helper, \phpbb\event\dispatcher_interface $dispatcher, \phpbb\files\factory $files_factory, IniGetWrapper $php_ini)
{
$this->config = $config;
$this->phpbb_root_path = $phpbb_root_path;
$this->php_ext = $php_ext;
$this->filesystem = $filesystem;
$this->storage = $storage;
$this->path_helper = $path_helper;
$this->dispatcher = $dispatcher;
$this->files_factory = $files_factory;
$this->cache = $cache;
$this->php_ini = $php_ini;
}
/**
@@ -116,7 +124,7 @@ class upload extends \phpbb\avatar\driver\driver
if (!empty($upload_file['name']))
{
$file = $upload->handle_upload('files.types.form', 'avatar_upload_file');
$file = $upload->handle_upload('files.types.form_storage', 'avatar_upload_file');
}
else if (!empty($this->config['allow_avatar_remote_upload']) && !empty($url))
{
@@ -156,7 +164,7 @@ class upload extends \phpbb\avatar\driver\driver
return false;
}
$file = $upload->handle_upload('files.types.remote', $url);
$file = $upload->handle_upload('files.types.remote_storage', $url);
}
else
{
@@ -169,26 +177,11 @@ class upload extends \phpbb\avatar\driver\driver
// If there was an error during upload, then abort operation
if (count($file->error))
{
$file->remove();
$file->remove($this->storage);
$error = $file->error;
return false;
}
// Calculate new destination
$destination = $this->config['avatar_path'];
// Adjust destination path (no trailing slash)
if (substr($destination, -1, 1) == '/' || substr($destination, -1, 1) == '\\')
{
$destination = substr($destination, 0, -1);
}
$destination = str_replace(array('../', '..\\', './', '.\\'), '', $destination);
if ($destination && ($destination[0] == '/' || $destination[0] == "\\"))
{
$destination = '';
}
$filedata = array(
'filename' => $file->get('filename'),
'filesize' => $file->get('filesize'),
@@ -204,7 +197,6 @@ class upload extends \phpbb\avatar\driver\driver
* @event core.avatar_driver_upload_move_file_before
* @var array filedata Array containing uploaded file data
* @var \phpbb\files\filespec file Instance of filespec class
* @var string destination Destination directory where the file is going to be moved
* @var string prefix Prefix for the avatar filename
* @var array row Array with avatar row data
* @var array error Array of errors, if filled in by this event file will not be moved
@@ -215,7 +207,6 @@ class upload extends \phpbb\avatar\driver\driver
$vars = array(
'filedata',
'file',
'destination',
'prefix',
'row',
'error',
@@ -227,14 +218,14 @@ class upload extends \phpbb\avatar\driver\driver
if (!count($error))
{
// Move file and overwrite any existing image
$file->move_file($destination, true);
$file->move_file($this->storage, true);
}
// If there was an error during move, then clean up leftovers
$error = array_merge($error, $file->error);
if (count($error))
{
$file->remove();
$file->remove($this->storage);
return false;
}
@@ -260,7 +251,6 @@ class upload extends \phpbb\avatar\driver\driver
return array(
'allow_avatar_remote_upload'=> array('lang' => 'ALLOW_REMOTE_UPLOAD', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'avatar_filesize' => array('lang' => 'MAX_FILESIZE', 'validate' => 'int:0', 'type' => 'number:0', 'explain' => true, 'append' => ' ' . $user->lang['BYTES']),
'avatar_path' => array('lang' => 'AVATAR_STORAGE_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true),
);
}
@@ -271,37 +261,35 @@ class upload extends \phpbb\avatar\driver\driver
{
$error = array();
$destination = $this->config['avatar_path'];
$prefix = $this->config['avatar_salt'] . '_';
$ext = substr(strrchr($row['avatar'], '.'), 1);
$filename = $this->phpbb_root_path . $destination . '/' . $prefix . $row['id'] . '.' . $ext;
$filename = $prefix . $row['id'] . '.' . $ext;
/**
* Before deleting an existing avatar
*
* @event core.avatar_driver_upload_delete_before
* @var string destination Destination directory where the file is going to be deleted
* @var string prefix Prefix for the avatar filename
* @var array row Array with avatar row data
* @var array error Array of errors, if filled in by this event file will not be deleted
* @since 3.1.6-RC1
* @changed 3.3.0-a1 Remove destination
*/
$vars = array(
'destination',
'prefix',
'row',
'error',
);
extract($this->dispatcher->trigger_event('core.avatar_driver_upload_delete_before', compact($vars)));
if (!count($error) && $this->filesystem->exists($filename))
if (!count($error) && $this->storage->exists($filename))
{
try
{
$this->filesystem->remove($filename);
$this->storage->delete($filename);
return true;
}
catch (\phpbb\filesystem\exception\filesystem_exception $e)
catch (storage_exception $e)
{
// Fail is covered by return statement below
}
@@ -319,12 +307,12 @@ class upload extends \phpbb\avatar\driver\driver
}
/**
* Check if user is able to upload an avatar
* Check if user is able to upload an avatar to a temporary folder
*
* @return bool True if user can upload, false if not
*/
protected function can_upload()
{
return ($this->filesystem->exists($this->phpbb_root_path . $this->config['avatar_path']) && $this->filesystem->is_writable($this->phpbb_root_path . $this->config['avatar_path']) && (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on'));
return $this->php_ini->getBool('file_uploads');
}
}

View File

@@ -214,7 +214,6 @@ class service
$extensions[$extension] = array(
'display_cat' => (int) $row['cat_id'],
'download_mode' => (int) $row['download_mode'],
'upload_icon' => trim($row['upload_icon']),
'max_filesize' => (int) $row['max_filesize'],
'allow_group' => $row['allow_group'],

View File

@@ -64,7 +64,7 @@ class class_loader
/**
* Provide the class loader with a cache to store paths. If set to null, the
* the class loader will resolve paths by checking for the existance of every
* the class loader will resolve paths by checking for the existence of every
* directory in the class name every time.
*
* @param \phpbb\cache\driver\driver_interface $cache An implementation of the phpBB cache interface.

View File

@@ -0,0 +1,35 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\composer\exception;
/**
* Packaged managed with success but error occurred when cleaning the filesystem
*/
class managed_with_clean_error_exception extends managed_with_error_exception
{
/**
* Constructor
*
* @param string $prefix The language string prefix
* @param string $message The Exception message to throw (must be a language variable).
* @param array $parameters The parameters to use with the language var.
* @param \Exception $previous The previous runtime_exception used for the runtime_exception chaining.
* @param integer $code The Exception code.
*/
public function __construct($prefix, $message = '', array $parameters = [], \Exception $previous = null, $code = 0)
{
parent::__construct($prefix . $message, $parameters, $previous, $code);
}
}

View File

@@ -0,0 +1,35 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\composer\exception;
/**
* Packaged managed with success but error occurred when re-enabling the extension
*/
class managed_with_enable_error_exception extends managed_with_error_exception
{
/**
* Constructor
*
* @param string $prefix The language string prefix
* @param string $message The Exception message to throw (must be a language variable).
* @param array $parameters The parameters to use with the language var.
* @param \Exception $previous The previous runtime_exception used for the runtime_exception chaining.
* @param integer $code The Exception code.
*/
public function __construct($prefix, $message = '', array $parameters = [], \Exception $previous = null, $code = 0)
{
parent::__construct($prefix . $message, $parameters, $previous, $code);
}
}

View File

@@ -0,0 +1,35 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\composer\exception;
/**
* Packaged managed with success but errored at some point
*/
class managed_with_error_exception extends runtime_exception
{
/**
* Constructor
*
* @param string $prefix The language string prefix
* @param string $message The Exception message to throw (must be a language variable).
* @param array $parameters The parameters to use with the language var.
* @param \Exception $previous The previous runtime_exception used for the runtime_exception chaining.
* @param integer $code The Exception code.
*/
public function __construct($prefix, $message = '', array $parameters = [], \Exception $previous = null, $code = 0)
{
parent::__construct($prefix . $message, $parameters, $previous, $code);
}
}

View File

@@ -0,0 +1,37 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\composer\exception;
use phpbb\exception\runtime_exception as base;
/**
* Base class for exceptions thrown when managing packages through composer
*/
class runtime_exception extends base
{
/**
* Constructor
*
* @param string $prefix The language string prefix
* @param string $message The Exception message to throw (must be a language variable).
* @param array $parameters The parameters to use with the language var.
* @param \Exception $previous The previous runtime_exception used for the runtime_exception chaining.
* @param integer $code The Exception code.
*/
public function __construct($prefix, $message = '', array $parameters = [], \Exception $previous = null, $code = 0)
{
parent::__construct($prefix . $message, $parameters, $previous, $code);
}
}

View File

@@ -0,0 +1,316 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\composer;
use Composer\IO\IOInterface;
use phpbb\cache\driver\driver_interface;
use phpbb\composer\exception\managed_with_clean_error_exception;
use phpbb\composer\exception\managed_with_enable_error_exception;
use phpbb\composer\exception\runtime_exception;
use phpbb\config\config;
use phpbb\extension\manager as ext_manager;
use phpbb\filesystem\exception\filesystem_exception;
use phpbb\filesystem\filesystem;
/**
* Class to safely manage extensions through composer.
*/
class extension_manager extends manager
{
/**
* @var \phpbb\extension\manager
*/
protected $extension_manager;
/**
* @var \phpbb\filesystem\filesystem
*/
protected $filesystem;
/**
* @var array
*/
private $enabled_extensions;
/**
* @var bool Enables extensions when installing them?
*/
private $enable_on_install = false;
/**
* @var bool Purges extensions data when removing them?
*/
private $purge_on_remove = true;
/**
* @param installer $installer Installer object
* @param driver_interface $cache Cache object
* @param ext_manager $extension_manager phpBB extension manager
* @param filesystem $filesystem Filesystem object
* @param string $package_type Composer type of managed packages
* @param string $exception_prefix Exception prefix to use
* @param string $root_path phpBB root path
* @param config $config Config object
*/
public function __construct(installer $installer, driver_interface $cache, ext_manager $extension_manager, filesystem $filesystem, $package_type, $exception_prefix, $root_path, config $config = null)
{
$this->extension_manager = $extension_manager;
$this->filesystem = $filesystem;
$this->root_path = $root_path;
if ($config)
{
$this->enable_on_install = (bool) $config['exts_composer_enable_on_install'];
$this->purge_on_remove = (bool) $config['exts_composer_purge_on_remove'];
}
parent::__construct($installer, $cache, $package_type, $exception_prefix);
}
/**
* {@inheritdoc}
*/
public function pre_install(array $packages, IOInterface $io = null)
{
$installed_manually = array_intersect(array_keys($this->extension_manager->all_available()), array_keys($packages));
if (count($installed_manually) !== 0)
{
throw new runtime_exception($this->exception_prefix, 'ALREADY_INSTALLED_MANUALLY', [implode('|', array_keys($installed_manually))]);
}
}
/**
* {@inheritdoc}
*/
public function post_install(array $packages, IOInterface $io = null)
{
if ($this->enable_on_install)
{
$io->writeError([['ENABLING_EXTENSIONS', [], 1]], true);
foreach ($packages as $package => $version)
{
try
{
$this->extension_manager->enable($package);
}
catch (\phpbb\exception\runtime_exception $e)
{
$io->writeError([[$e->getMessage(), $e->get_parameters(), 4]], true);
}
catch (\Exception $e)
{
$io->writeError([[$e->getMessage(), [], 4]], true);
}
}
}
}
/**
* {@inheritdoc}
*/
protected function pre_update(array $packages, IOInterface $io = null)
{
$io->writeError([['DISABLING_EXTENSIONS', [], 1]], true);
$this->enabled_extensions = [];
foreach ($packages as $package => $version)
{
try
{
if ($this->extension_manager->is_enabled($package))
{
$this->enabled_extensions[] = $package;
$this->extension_manager->disable($package);
}
}
catch (\phpbb\exception\runtime_exception $e)
{
$io->writeError([[$e->getMessage(), $e->get_parameters(), 4]], true);
}
catch (\Exception $e)
{
$io->writeError([[$e->getMessage(), [], 4]], true);
}
}
}
/**
* {@inheritdoc}
*/
protected function post_update(array $packages, IOInterface $io = null)
{
$io->writeError([['ENABLING_EXTENSIONS', [], 1]], true);
foreach ($this->enabled_extensions as $package)
{
try
{
$this->extension_manager->enable($package);
}
catch (\phpbb\exception\runtime_exception $e)
{
$io->writeError([[$e->getMessage(), $e->get_parameters(), 4]], true);
}
catch (\Exception $e)
{
$io->writeError([[$e->getMessage(), [], 4]], true);
}
}
}
/**
* {@inheritdoc}
*/
public function remove(array $packages, IOInterface $io = null)
{
$packages = $this->normalize_version($packages);
$not_installed = array_diff(array_keys($packages), array_keys($this->extension_manager->all_available()));
if (count($not_installed) !== 0)
{
throw new runtime_exception($this->exception_prefix, 'NOT_INSTALLED', [implode('|', array_keys($not_installed))]);
}
parent::remove($packages, $io);
}
/**
* {@inheritdoc}
*/
public function pre_remove(array $packages, IOInterface $io = null)
{
if ($this->purge_on_remove)
{
$io->writeError([['DISABLING_EXTENSIONS', [], 1]], true);
}
foreach ($packages as $package => $version)
{
try
{
if ($this->extension_manager->is_enabled($package))
{
if ($this->purge_on_remove)
{
$this->extension_manager->purge($package);
}
else
{
$this->extension_manager->disable($package);
}
}
}
catch (\phpbb\exception\runtime_exception $e)
{
$io->writeError([[$e->getMessage(), $e->get_parameters(), 4]], true);
}
catch (\Exception $e)
{
$io->writeError([[$e->getMessage(), [], 4]], true);
}
}
}
/**
* {@inheritdoc}
*/
public function start_managing($package, $io)
{
if (!$this->extension_manager->is_available($package))
{
throw new runtime_exception($this->exception_prefix, 'NOT_INSTALLED', [$package]);
}
if ($this->is_managed($package))
{
throw new runtime_exception($this->exception_prefix, 'ALREADY_MANAGED', [$package]);
}
$enabled = false;
if ($this->extension_manager->is_enabled($package))
{
$enabled = true;
$io->writeError([['DISABLING_EXTENSIONS', [], 1]], true);
$this->extension_manager->disable($package);
}
$ext_path = $this->extension_manager->get_extension_path($package, true);
$backup_path = rtrim($ext_path, '/') . '__backup__';
try
{
$this->filesystem->rename($ext_path, $backup_path);
}
catch (filesystem_exception $e)
{
throw new runtime_exception($this->exception_prefix, 'CANNOT_MANAGE_FILESYSTEM_ERROR', [$package], $e);
}
try
{
$this->install((array) $package, $io);
$this->filesystem->remove($backup_path);
}
catch (runtime_exception $e)
{
$this->filesystem->rename($backup_path, $ext_path);
throw new runtime_exception($this->exception_prefix, 'CANNOT_MANAGE_INSTALL_ERROR', [$package], $e);
}
catch (filesystem_exception $e)
{
throw new managed_with_clean_error_exception($this->exception_prefix, 'MANAGED_WITH_CLEAN_ERROR', [$package, $backup_path], $e);
}
if ($enabled)
{
try
{
$io->writeError([['ENABLING_EXTENSIONS', [], 1]], true);
$this->extension_manager->enable($package);
}
catch (\Exception $e)
{
throw new managed_with_enable_error_exception($this->exception_prefix, 'MANAGED_WITH_ENABLE_ERROR', [$package], $e);
}
}
}
/**
* {@inheritdoc}
*/
public function check_requirements()
{
return parent::check_requirements() && $this->filesystem->is_writable($this->root_path . 'ext/');
}
/**
* Enable the extensions when installing
*
* Warning: Only the explicitly required extensions will be enabled
*
* @param bool $enable
*/
public function set_enable_on_install($enable)
{
$this->enable_on_install = $enable;
}
/**
* Purge the extension when disabling it
*
* @param bool $purge
*/
public function set_purge_on_remove($purge)
{
$this->purge_on_remove = $purge;
}
}

View File

@@ -0,0 +1,711 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\composer;
use Composer\Composer;
use Composer\Factory;
use Composer\IO\IOInterface;
use Composer\IO\NullIO;
use Composer\Json\JsonFile;
use Composer\Package\BasePackage;
use Composer\Package\CompletePackage;
use Composer\Repository\ComposerRepository;
use Composer\Semver\Constraint\ConstraintInterface;
use Composer\Util\RemoteFilesystem;
use phpbb\composer\io\null_io;
use phpbb\config\config;
use phpbb\exception\runtime_exception;
use phpbb\filesystem\filesystem;
use phpbb\request\request;
use Seld\JsonLint\ParsingException;
use phpbb\filesystem\helper as filesystem_helper;
/**
* Class to install packages through composer while freezing core dependencies.
*/
class installer
{
const PHPBB_TYPES = 'phpbb-extension,phpbb-style,phpbb-language';
/**
* @var array Repositories to look packages from
*/
protected $repositories = [];
/**
* @var bool Indicates whether packagist usage is allowed or not
*/
protected $packagist = false;
/**
* @var string Composer filename used to manage the packages
*/
protected $composer_filename = 'composer-ext.json';
/**
* @var string Directory where to install packages vendors
*/
protected $packages_vendor_dir = 'vendor-ext/';
/**
* @var string Minimum stability
*/
protected $minimum_stability = 'stable';
/**
* @var string phpBB root path
*/
protected $root_path;
/**
* @var string Stores the original working directory in case it has been changed through move_to_root()
*/
private $original_cwd;
/**
* @var array Stores the content of the ext json file before generate_ext_json_file() overrides it
*/
private $ext_json_file_backup;
/**
* @var request phpBB request object
*/
private $request;
/**
* @param string $root_path phpBB root path
* @param filesystem $filesystem Filesystem object
* @param request $request phpBB request object
* @param config $config Config object
*/
public function __construct($root_path, filesystem $filesystem, request $request, config $config = null)
{
if ($config)
{
$repositories = json_decode($config['exts_composer_repositories'], true);
if (is_array($repositories) && !empty($repositories))
{
$this->repositories = (array) $repositories;
}
$this->packagist = (bool) $config['exts_composer_packagist'];
$this->composer_filename = $config['exts_composer_json_file'];
$this->packages_vendor_dir = $config['exts_composer_vendor_dir'];
$this->minimum_stability = $config['exts_composer_minimum_stability'];
}
$this->root_path = $root_path;
$this->request = $request;
putenv('COMPOSER_HOME=' . filesystem_helper::realpath($root_path) . '/store/composer');
}
/**
* Update the current installed set of packages
*
* @param array $packages Packages to install.
* Each entry may be a name or an array associating a version constraint to a name
* @param array $whitelist White-listed packages (packages that can be installed/updated/removed)
* @param IOInterface $io IO object used for the output
*
* @throws runtime_exception
*/
public function install(array $packages, $whitelist, IOInterface $io = null)
{
$this->wrap(function() use ($packages, $whitelist, $io) {
$this->do_install($packages, $whitelist, $io);
});
}
/**
* Update the current installed set of packages
*
* /!\ Doesn't change the current working directory
*
* @param array $packages Packages to install.
* Each entry may be a name or an array associating a version constraint to a name
* @param array $whitelist White-listed packages (packages that can be installed/updated/removed)
* @param IOInterface $io IO object used for the output
*
* @throws runtime_exception
*/
protected function do_install(array $packages, $whitelist, IOInterface $io = null)
{
if (!$io)
{
$io = new null_io();
}
$this->generate_ext_json_file($packages);
$composer = Factory::create($io, $this->get_composer_ext_json_filename(), false);
$install = \Composer\Installer::create($io, $composer);
$composer->getDownloadManager()->setOutputProgress(false);
$install
->setVerbose(true)
->setPreferSource(false)
->setPreferDist(true)
->setDevMode(false)
->setUpdate(true)
->setUpdateWhitelist($whitelist)
->setWhitelistDependencies(false)
->setIgnorePlatformRequirements(false)
->setOptimizeAutoloader(true)
->setDumpAutoloader(true)
->setPreferStable(true)
->setRunScripts(false)
->setDryRun(false);
try
{
$result = $install->run();
}
catch (\Exception $e)
{
$this->restore_ext_json_file();
throw new runtime_exception('COMPOSER_CANNOT_INSTALL', [], $e);
}
if ($result !== 0)
{
$this->restore_ext_json_file();
throw new runtime_exception($io->get_composer_error(), []);
}
}
/**
* Returns the list of currently installed packages
*
* @param string|array $types Returns only the packages with the given type(s)
*
* @return array The installed packages associated to their version.
*
* @throws runtime_exception
*/
public function get_installed_packages($types)
{
return $this->wrap(function() use ($types) {
return $this->do_get_installed_packages($types);
});
}
/**
* Returns the list of currently installed packages
*
* /!\ Doesn't change the current working directory
*
* @param string|array $types Returns only the packages with the given type(s)
*
* @return array The installed packages associated to their version.
*/
protected function do_get_installed_packages($types)
{
$types = (array) $types;
try
{
$io = new NullIO();
$composer = Factory::create($io, $this->get_composer_ext_json_filename(), false);
$installed = [];
/** @var \Composer\Package\Link[] $required_links */
$required_links = $composer->getPackage()->getRequires();
$installed_packages = $composer->getRepositoryManager()->getLocalRepository()->getCanonicalPackages();
foreach ($installed_packages as $package)
{
if (in_array($package->getType(), $types, true))
{
$version = array_key_exists($package->getName(), $required_links) ?
$required_links[$package->getName()]->getPrettyConstraint() : '*';
$installed[$package->getName()] = $version;
}
}
return $installed;
}
catch (\Exception $e)
{
return [];
}
}
/**
* Gets the list of the available packages of the configured type in the configured repositories
*
* /!\ Doesn't change the current working directory
*
* @param string $type Returns only the packages with the given type
*
* @return array The name of the available packages, associated to their definition. Ordered by name.
*
* @throws runtime_exception
*/
public function get_available_packages($type)
{
return $this->wrap(function() use ($type) {
return $this->do_get_available_packages($type);
});
}
/**
* Gets the list of the available packages of the configured type in the configured repositories
*
* @param string $type Returns only the packages with the given type
*
* @return array The name of the available packages, associated to their definition. Ordered by name.
*/
protected function do_get_available_packages($type)
{
try
{
$this->generate_ext_json_file($this->do_get_installed_packages(explode(',', self::PHPBB_TYPES)));
$io = new NullIO();
$composer = Factory::create($io, $this->get_composer_ext_json_filename(), false);
/** @var ConstraintInterface $core_constraint */
$core_constraint = $composer->getPackage()->getRequires()['phpbb/phpbb']->getConstraint();
$core_stability = $composer->getPackage()->getMinimumStability();
$available = [];
$compatible_packages = [];
$repositories = $composer->getRepositoryManager()->getRepositories();
/** @var \Composer\Repository\RepositoryInterface $repository */
foreach ($repositories as $repository)
{
try
{
if ($repository instanceof ComposerRepository && $repository->hasProviders())
{
// Special case for packagist which exposes an api to retrieve all packages of a given type.
// For the others composer repositories with providers we can't do anything. It would be too slow.
$r = new \ReflectionObject($repository);
$repo_url = $r->getProperty('url');
$repo_url->setAccessible(true);
if ($repo_url->getValue($repository) === 'http://packagist.org')
{
$url = 'https://packagist.org/packages/list.json?type=' . $type;
$rfs = new RemoteFilesystem($io);
$hostname = parse_url($url, PHP_URL_HOST) ?: $url;
$json = $rfs->getContents($hostname, $url, false);
/** @var \Composer\Package\PackageInterface $package */
foreach (JsonFile::parseJson($json, $url)['packageNames'] as $package)
{
$versions = $repository->findPackages($package);
$compatible_packages = $this->get_compatible_versions($compatible_packages, $core_constraint, $core_stability, $package, $versions);
}
}
}
else
{
// Pre-filter repo packages by their type
$packages = [];
/** @var \Composer\Package\PackageInterface $package */
foreach ($repository->getPackages() as $package)
{
if ($package->getType() === $type)
{
$packages[$package->getName()][] = $package;
}
}
// Filter the compatibles versions
foreach ($packages as $package => $versions)
{
$compatible_packages = $this->get_compatible_versions($compatible_packages, $core_constraint, $core_stability, $package, $versions);
}
}
}
catch (\Exception $e)
{
// If a repo fails, just skip it.
continue;
}
}
foreach ($compatible_packages as $name => $versions)
{
// Determine the highest version of the package
/** @var CompletePackage $highest_version */
$highest_version = null;
/** @var CompletePackage $version */
foreach ($versions as $version)
{
if (!$highest_version || version_compare($version->getVersion(), $highest_version->getVersion(), '>'))
{
$highest_version = $version;
}
}
// Generates the entry
$available[$name] = [];
$available[$name]['name'] = $highest_version->getPrettyName();
$available[$name]['display_name'] = $highest_version->getExtra()['display-name'];
$available[$name]['composer_name'] = $highest_version->getName();
$available[$name]['version'] = $highest_version->getPrettyVersion();
if ($version instanceof CompletePackage)
{
$available[$name]['description'] = $highest_version->getDescription();
$available[$name]['url'] = $highest_version->getHomepage();
$available[$name]['authors'] = $highest_version->getAuthors();
}
else
{
$available[$name]['description'] = '';
$available[$name]['url'] = '';
$available[$name]['authors'] = [];
}
}
usort($available, function($a, $b)
{
return strcasecmp($a['display_name'], $b['display_name']);
});
return $available;
}
catch (\Exception $e)
{
return [];
}
}
/**
* Checks the requirements of the manager and returns true if it can be used.
*
* @return bool
*/
public function check_requirements()
{
$filesystem = new \phpbb\filesystem\filesystem();
return $filesystem->is_writable([
$this->root_path . $this->composer_filename,
$this->root_path . $this->packages_vendor_dir,
$this->root_path . substr($this->composer_filename, 0, -5) . '.lock',
]);
}
/**
* Updates $compatible_packages with the versions of $versions compatibles with the $core_constraint
*
* @param array $compatible_packages List of compatibles versions
* @param ConstraintInterface $core_constraint Constraint against the phpBB version
* @param string $core_stability Core stability
* @param string $package_name Considered package
* @param array $versions List of available versions
*
* @return array
*/
private function get_compatible_versions(array $compatible_packages, ConstraintInterface $core_constraint, $core_stability, $package_name, array $versions)
{
$core_stability_value = BasePackage::$stabilities[$core_stability];
/** @var \Composer\Package\PackageInterface $version */
foreach ($versions as $version)
{
try
{
if (BasePackage::$stabilities[$version->getStability()] > $core_stability_value)
{
continue;
}
if (array_key_exists('phpbb/phpbb', $version->getRequires()))
{
/** @var ConstraintInterface $package_constraint */
$package_constraint = $version->getRequires()['phpbb/phpbb']->getConstraint();
if (!$package_constraint->matches($core_constraint))
{
continue;
}
}
$compatible_packages[$package_name][] = $version;
}
catch (\Exception $e)
{
// Do nothing (to log when a true debug logger is available)
}
}
return $compatible_packages;
}
/**
* Generates and write the json file used to install the set of packages
*
* @param array $packages Packages to update.
* Each entry may be a name or an array associating a version constraint to a name
*/
protected function generate_ext_json_file(array $packages)
{
$io = new NullIO();
$composer = Factory::create($io, null, false);
$core_packages = $this->get_core_packages($composer);
$ext_json_data = [
'require' => array_merge(
['php' => $this->get_core_php_requirement($composer)],
$core_packages,
$this->get_extra_dependencies(),
$packages),
'replace' => $core_packages,
'repositories' => $this->get_composer_repositories(),
'config' => [
'vendor-dir'=> $this->packages_vendor_dir,
],
'minimum-stability' => $this->minimum_stability,
];
$this->ext_json_file_backup = null;
$json_file = new JsonFile($this->get_composer_ext_json_filename());
try
{
$ext_json_file_backup = $json_file->read();
}
catch (ParsingException $e)
{
$ext_json_file_backup = '{}';
$lockFile = new JsonFile(substr($this->get_composer_ext_json_filename(), 0, -5) . '.lock');
$lockFile->write([]);
}
$json_file->write($ext_json_data);
$this->ext_json_file_backup = $ext_json_file_backup;
}
/**
* Restore the json file overridden by generate_ext_json_file()
*/
protected function restore_ext_json_file()
{
if ($this->ext_json_file_backup)
{
try
{
$json_file = new JsonFile($this->get_composer_ext_json_filename());
$json_file->write($this->ext_json_file_backup);
}
catch (\Exception $e)
{
}
$this->ext_json_file_backup = null;
}
}
/**
* Get the core installed packages
*
* @param Composer $composer Composer object to load the dependencies
* @return array The core packages with their version
*/
protected function get_core_packages(Composer $composer)
{
$core_deps = [];
$packages = $composer->getRepositoryManager()->getLocalRepository()->getCanonicalPackages();
foreach ($packages as $package)
{
$core_deps[$package->getName()] = $package->getPrettyVersion();
}
$core_deps['phpbb/phpbb'] = PHPBB_VERSION;
return $core_deps;
}
/**
* Get the PHP version required by the core
*
* @param Composer $composer Composer object to load the dependencies
* @return string The PHP version required by the core
*/
protected function get_core_php_requirement(Composer $composer)
{
return $composer->getLocker()->getLockData()['platform']['php'];
}
/**
* Generate the repositories entry of the packages json file
*
* @return array repositories entry
*/
protected function get_composer_repositories()
{
$repositories = [];
if (!$this->packagist)
{
$repositories[]['packagist'] = false;
}
foreach ($this->repositories as $repository)
{
if (preg_match('#^' . get_preg_expression('url') . '$#iu', $repository))
{
$repositories[] = [
'type' => 'composer',
'url' => $repository,
];
}
}
return $repositories;
}
/**
* Get the name of the json file used for the packages.
*
* @return string The json filename
*/
protected function get_composer_ext_json_filename()
{
return $this->composer_filename;
}
/**
* Get extra dependencies required to install the packages
*
* @return array Array of composer dependencies
*/
protected function get_extra_dependencies()
{
return [];
}
/**
* Sets the customs repositories
*
* @param array $repositories An array of composer repositories to use
*/
public function set_repositories(array $repositories)
{
$this->repositories = $repositories;
}
/**
* Allow or disallow packagist
*
* @param boolean $packagist
*/
public function set_packagist($packagist)
{
$this->packagist = $packagist;
}
/**
* Sets the name of the managed packages' json file
*
* @param string $composer_filename
*/
public function set_composer_filename($composer_filename)
{
$this->composer_filename = $composer_filename;
}
/**
* Sets the location of the managed packages' vendors
*
* @param string $packages_vendor_dir
*/
public function set_packages_vendor_dir($packages_vendor_dir)
{
$this->packages_vendor_dir = $packages_vendor_dir;
}
/**
* Sets the phpBB root path
*
* @param string $root_path
*/
public function set_root_path($root_path)
{
$this->root_path = $root_path;
}
/**
* Change the current directory to phpBB root
*/
protected function move_to_root()
{
if ($this->original_cwd === null)
{
$this->original_cwd = getcwd();
chdir($this->root_path);
}
}
/**
* Restore the current working directory if move_to_root() have been called
*/
protected function restore_cwd()
{
if ($this->original_cwd)
{
chdir($this->original_cwd);
$this->original_cwd = null;
}
}
/**
* Wraps a callable in order to adjust the context needed by composer
*
* @param callable $callable
*
* @return mixed
*/
protected function wrap(callable $callable)
{
// The composer installers works with a path relative to the current directory
$this->move_to_root();
// The composer installers uses some super globals
$super_globals = $this->request->super_globals_disabled();
$this->request->enable_super_globals();
try
{
return $callable();
}
finally
{
$this->restore_cwd();
if ($super_globals)
{
$this->request->disable_super_globals();
}
}
}
}

View File

@@ -0,0 +1,40 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\composer\io;
use Composer\IO\ConsoleIO;
use phpbb\language\language;
use Symfony\Component\Console\Helper\HelperSet;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class console_io extends ConsoleIO implements io_interface
{
use translate_composer_trait;
/**
* Constructor.
*
* @param InputInterface $input The input instance
* @param OutputInterface $output The output instance
* @param HelperSet $helperSet The helperSet instance
* @param language $language Language object
*/
public function __construct(InputInterface $input, OutputInterface $output, HelperSet $helperSet, language $language)
{
$this->language = $language;
parent::__construct($input, $output, $helperSet);
}
}

Some files were not shown because too many files have changed in this diff Show More