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

Compare commits

...

382 Commits

Author SHA1 Message Date
Marc Alexander
b7243fad62 [prep-release-3.2.5] Update changelog for 3.2.5-RC1 2018-11-29 21:53:09 +01:00
Marc Alexander
8a1d148fa8 [prep-release-3.2.5] Add 3.2.5-RC1 migration 2018-11-29 21:47:47 +01:00
Marc Alexander
fab57f0d16 [prep-release-3.2.5] Update version numbers for 3.2.5 2018-11-29 21:46:26 +01:00
Marc Alexander
27abc18662 [prep-release-3.2.5] Update version numbers for 3.2.5-RC1 2018-11-29 21:45:51 +01:00
Marc Alexander
9e6c2251df Merge pull request #5455 from toxyy/ticket-15879
[ticket/15879] Add core.posting_modify_default_variables
2018-11-29 21:12:27 +01:00
Marc Alexander
15ba5f700d Merge pull request #5451 from vinny/ticket/15867
[ticket/15867] Add class for message field in the contact form
2018-11-29 18:59:17 +01:00
Marc Alexander
f8e1c66e81 Merge pull request #5449 from senky/ticket/15878
[ticket/15878] Add attachments to ucp_pm_view_message
2018-11-28 23:25:56 +01:00
Marc Alexander
c89f4500f0 Merge pull request #5443 from toxyy/ticket/15872
[ticket/15872] Add show_user_activity to display_user_activity_modify_actives
2018-11-28 23:21:46 +01:00
Marc Alexander
7182f5d88f Merge pull request #5427 from dark-1/ticket/15858
[ticket/15858] Unapproved User(s) appearing as Guest in Team Page
2018-11-27 22:03:36 +01:00
Marc Alexander
db7f4d4c95 Merge pull request #5450 from hubaishan/ticket/15665
[ticket/15665] Fix MSSQL crashes if upload dir>2GB
2018-11-26 21:19:42 +01:00
Marc Alexander
b8bdccbc44 Merge pull request #5432 from 3D-I/ticket/15859
[ticket/15859] Add core.viewforum_modify_topic_ordering
2018-11-25 21:17:41 +01:00
Marc Alexander
2eb2c69db9 Merge pull request #5454 from rxu/ticket/15881
[ticket/15881] Reset login keys for new password activation
2018-11-25 11:10:22 +01:00
Alec
d5147c2271 [ticket/15879] Add core.posting_modify_default_variables
Allows the modification of default variables put into post_data.
Also allows you to unset variables in post_data to inherit the default ones.

PHPBB3-15879
2018-11-24 12:56:33 -05:00
rxu
79e6636092 [ticket/15881] Reset login keys for account reactivation after password update
PHPBB3-15881
2018-11-24 11:31:32 +07:00
Marc Alexander
5179e4f93f Merge pull request #5433 from marc1706/ticket/15542
[ticket/15542] Always append assets versions to assets
2018-11-20 20:54:50 +01:00
hubaishan
dc96e70d1b [ticket/15665] fix double semicolon
PHPBB3-15665
2018-11-20 15:56:02 +03:00
hubaishan
717d4840e2 [ticket/15665] Fix MSSQL crashes if upload dir>2GB
Add cast_expr_to_bigint() to mssql_base

PHPBB3-15665
2018-11-20 13:38:15 +03:00
Jakub Senko
22b8b45f28 [ticket/15878] Add attachments to ucp_pm_view_message
PHPBB3-15878
2018-11-19 15:35:26 +01:00
Marc Alexander
6c5578a65b Merge pull request #5445 from 3D-I/ticket/15873
[ticket/15873] Add core.mcp_report_template_data
2018-11-18 20:00:07 +01:00
3D-I
bf42eae114 [ticket/15859] Add core.viewforum_modify_topic_ordering
PHPBB3-15859
2018-11-18 19:52:02 +01:00
Marc Alexander
f21a43be2f Merge pull request #5441 from 3D-I/ticket/15870
[ticket/15870] Add core.viewtopic_modify_forum_id
2018-11-18 19:50:19 +01:00
Marc Alexander
3606cce27f Merge pull request #5436 from 3D-I/ticket/15863
[ticket/15863] Add core.viewforum_modify_sort_direction
2018-11-18 19:36:14 +01:00
Marc Alexander
5b3eb2d61c Merge pull request #5442 from rxu/ticket/15871
[ticket/15871] Fix PHP 7.1+ warning in ACP extensions module
2018-11-18 12:24:16 +01:00
3D-I
fcd916cc4f [ticket/15873] Add core.mcp_report_template_data
PHPBB3-15873
2018-11-18 12:22:06 +01:00
3D-I
f3b94b118a [ticket/15870] Add core.viewtopic_modify_forum_id
PHPBB3-15870
2018-11-18 12:19:04 +01:00
3D-I
2e8315353e [ticket/15863] Add core.viewforum_modify_sort_direction
PHPBB3-15863
2018-11-18 12:14:30 +01:00
Marc Alexander
97912d74e2 Merge pull request #5448 from rxu/ticket/15875
[ticket/15875] Fix PHP fatal error on BBCode parsing
2018-11-17 22:18:08 +01:00
rxu
da9da88d11 [ticket/15875] Fix PHP fatal error on BBCode parsing
PHPBB3-15875
2018-11-18 01:33:56 +07:00
rxu
af1e8901e5 [ticket/15871] Add $php_ini to the class properties list
PHPBB3-15871
2018-11-15 21:01:17 +07:00
Alec
a2480f992d [ticket/15872] Add show_user_activity to display_user_activity_modify_actives
Add config option for toggling most active forum & topic in the user profile.

A bool was added to display_user_activity_modify_actives to achieve this.

PHPBB3-15872
2018-11-12 01:54:11 -05:00
3D-I
b8f85325d8 [ticket/15859] Add core.viewforum_modify_topic_ordering
PHPBB3-15859
2018-11-11 21:49:51 +01:00
Vinny
c4741399dd [ticket/15867] Add class for message field in the contact form
PHPBB3-15867
2018-11-11 17:08:20 -03:00
rxu
b03da3a9b2 [ticket/15871] Use php_ini service
PHPBB3-15871
2018-11-11 20:36:49 +07:00
Marc Alexander
7801bac09a Merge branch 'prep-release-3.2.4' into 3.2.x 2018-11-11 12:22:20 +01:00
Marc Alexander
023ec01611 [prep-release-3.2.4] Correctly specify dependencies 2018-11-11 10:14:16 +01:00
Marc Alexander
335b23c679 [prep-release-3.2.4] Remove phpBB 3.0.14 builds 2018-11-11 09:59:25 +01:00
rxu
720477a9da [ticket/15871] Fix PHP 7.1+ warning in ACR extensions module
PHPBB3-15871
2018-11-11 15:24:08 +07:00
Marc Alexander
1581ee9d05 [prep-release-3.2.4] Update changelog for 3.2.4 release 2018-11-10 21:35:29 +01:00
Marc Alexander
f631d6b84d [prep-release-3.2.4] Add migration for 3.2.4 2018-11-10 21:24:14 +01:00
Marc Alexander
36a8e48083 [prep-release-3.2.4] Update version numbers for 3.2.4 release 2018-11-10 21:19:49 +01:00
Marc Alexander
0dfbb60bc3 Merge pull request #42 from phpbb/ticket/security/227
[ticket/security/227] Replace ImageMagick support with thumbnail event
2018-11-10 17:04:00 +01:00
Marc Alexander
65226168ee Merge pull request #5434 from rubencm/ticket/15860
[ticket/15860] Fix format of backup files
2018-11-10 17:01:34 +01:00
Marc Alexander
c0a26e3d57 [ticket/security/227] Remove no longer needed validation tests
SECURITY-227
2018-11-07 22:04:30 +01:00
Derky
3d534a5eb6 [ticket/security/227] Change migration depends_on to 3.2.4-RC1
SECURITY-227
2018-11-04 23:18:38 +01:00
Derky
5c695d709e [ticket/security/227] Change thumbnail_created event version to 3.2.4
SECURITY-227
2018-11-04 23:17:49 +01:00
Derky
e2d26e102d [ticket/security/227] Remove "no thumbnail support" message
SECURITY-227
2018-11-04 23:10:44 +01:00
Ruben Calvo
31703585cb [ticket/15860] Unique_id() return 16 characters again
PHPBB3-15860
2018-10-31 10:41:57 +00:00
Ruben Calvo
fa1fd316fe [ticket/15860] Fix regexp
PHPBB3-15860
2018-10-30 22:56:20 +00:00
Marc Alexander
bab86aac7f [ticket/15860] Limit regexp to expected formats
PHPBB3-15860
2018-10-30 20:49:14 +00:00
Ruben Calvo
1f14f7c327 [ticket/15860] Fix format of backup files
PHPBB3-15860
2018-10-30 11:18:34 +00:00
Marc Alexander
11ae11a156 [ticket/15542] Only add assets version for relative paths
PHPBB3-15542
2018-10-29 22:57:53 +01:00
Marc Alexander
5d4fccd235 [ticket/15542] Always append assets versions to assets
PHPBB3-15542
2018-10-29 16:07:48 +01:00
3D-I
dbb476d813 [ticket/15859] Add core.viewforum_modify_topic_ordering
PHPBB3-15859
2018-10-29 01:02:16 +01:00
Marc Alexander
f4063e475d [3.2.x] Update versions to 3.2.5-dev 2018-10-28 21:55:08 +01:00
Marc Alexander
e64f96bf27 Merge branch 'prep-release-3.2.4' into 3.2.x 2018-10-28 21:52:51 +01:00
Marc Alexander
02fd679b26 [prep-release-3.2.4] Update changelog for 3.2.4-RC1 2018-10-28 20:27:10 +01:00
Marc Alexander
46bc335524 [prep-release-3.2.4] Add migration for 3.2.4-RC1 2018-10-28 20:19:07 +01:00
Marc Alexander
448d67cc30 [prep-release-3.2.4] Update versions for 3.2.4 2018-10-28 20:13:54 +01:00
Marc Alexander
d55cdc3546 [prep-release-3.2.4] Update versions for 3.2.4-RC1 2018-10-28 20:13:01 +01:00
Dark❶
9e375f32eb [ticket/15858] Unapproved User(s) appearing as Guest in Team Page
PHPBB3-15858
2018-10-29 00:28:43 +05:30
Marc Alexander
ed64a69760 Merge pull request #4223 from senky/ticket/10432
[ticket/10432] Don't require username when user forgets password
2018-10-28 19:49:38 +01:00
Ruben Calvo
dc109b1952 Merge remote-tracking branch 'marc/ticket/15857' into 3.2.x 2018-10-28 17:00:58 +00:00
Marc Alexander
09f17a438e [ticket/15857] Add rubencm to CREDITS.txt
[ci skip]

PHPBB3-15857
2018-10-28 17:50:29 +01:00
Marc Alexander
68b3c5d1f0 Merge pull request #5408 from senky/ticket/15833
[ticket/15833] Add core.avatar_manager_avatar_delete_after event
2018-10-28 16:32:46 +01:00
Marc Alexander
60414dec86 Merge pull request #5415 from senky/ticket/15838
[ticket/15838] Add core.ucp_register_register_after
2018-10-28 16:28:28 +01:00
Marc Alexander
2121b1274a Merge pull request #5416 from senky/ticket/15839
[ticket/15839] Add core.ucp_login_link_template_after
2018-10-28 16:21:24 +01:00
Jakub Senko
ddc9e318d0 [ticket/10432] Improve PASSWORD_UPDATED_IF_EXISTED lang
PHPBB3-10432
2018-10-28 16:14:26 +01:00
Jakub Senko
6a35385308 [ticket/15833] Add core.avatar_manager_avatar_delete_after event
PHPBB3-15833
2018-10-28 14:19:33 +01:00
Marc Alexander
96a68bcccb Merge pull request #5414 from senky/ticket/15837
[ticket/15837] Add core.ucp_register_welcome_email_before
2018-10-28 13:40:30 +01:00
Marc Alexander
25d42b0f10 Merge pull request #5407 from senky/ticket/15832
[ticket/15832] Add core.acp_users_avatar_sql event
2018-10-28 13:30:33 +01:00
Marc Alexander
99abb311c7 Merge pull request #5406 from senky/ticket/15831
[ticket/15831] Add core.acp_users_modify_signature_sql_ary event
2018-10-28 13:19:44 +01:00
Marc Alexander
77b7d9ba69 Merge pull request #5404 from Elsensee/ticket/15830
[ticket/15830] Move event to a more useful place
2018-10-28 12:08:45 +01:00
Jakub Senko
1d2a654ad7 [ticket/10432] Fix errors and address privacy concern
PHPBB3-10432
2018-10-28 10:12:13 +01:00
Marc Alexander
b5d36645f2 Merge pull request #5402 from 3D-I/ticket/15825
[ticket/15825] Add core.acp_manage_forums_move_content_sql_before
2018-10-28 00:16:18 +02:00
Marc Alexander
41bafd4d7d Merge pull request #5401 from dark-1/ticket/15827
[ticket/15827] Add *_username_{prepend/append} template events
2018-10-28 00:08:15 +02:00
Marc Alexander
d29d42d7b9 Merge pull request #5395 from hubaishan/ticket/15817
[ticket/15817] Fix installtion failed with Oracle
2018-10-28 00:02:38 +02:00
Marc Alexander
20393592d7 Merge pull request #5387 from senky/ticket/15593
[ticket/15593] Do not allow print view with direct URL
2018-10-27 23:48:53 +02:00
Marc Alexander
0cded66ff2 Merge pull request #5380 from senky/ticket/15619
[ticket/15619] Always display CPF legend
2018-10-27 23:43:55 +02:00
Marc Alexander
a772949162 Merge pull request #5363 from Elsensee/ticket/14656
[ticket/14656] Add List-Unsubscribe header to emails
2018-10-27 23:36:45 +02:00
Marc Alexander
628e5fbae6 Merge pull request #5399 from 3D-I/ticket/15826
[ticket/15826] Add core.mcp_main_fork_sql_after
2018-10-27 22:35:42 +02:00
Marc Alexander
7dbfc1e59c Merge pull request #5424 from rubencm/ticket/15849
[ticket/15849] Stop using php4 constructors
2018-10-27 22:33:44 +02:00
Marc Alexander
042f47fc3f Merge pull request #5420 from senky/ticket/15850
[ticket/15850] Fix "Duplicate entry" for notification types
2018-10-27 22:26:29 +02:00
3Di
379900b4ed Merge pull request #2 from phpbb/3.2.x
3.2.x
2018-10-26 18:33:30 +02:00
Marc Alexander
fd95355c61 Merge pull request #5417 from toxyy/ticket/15841
[ticket/15841] Allow postrow pm link to be modified by event
2018-10-25 08:21:38 +02:00
Oliver Schramm
2d736479d8 [ticket/15830] Add event to modify template
PHPBB3-15830
2018-10-24 00:45:26 +02:00
Oliver Schramm
5b25b3e2d5 [ticket/15830] Move event to a more useful place
PHPBB3-15830
2018-10-24 00:42:10 +02:00
Derky
d753351edc [ticket/security/227] Replace ImageMagick support with thumbnail event
SECURITY-227
2018-10-23 23:57:24 +02:00
Jakub Senko
30d1048c8e [ticket/10432] Fix for SQLite
PHPBB3-10432
2018-10-23 15:18:57 +02:00
Jakub Senko
18d8f94317 [ticket/15839] Add core.ucp_login_link_template_after
PHPBB3-15839
2018-10-22 11:13:36 +02:00
Ruben Calvo
b148bb5d70 [ticket/15849] Stop using php4 constructors
PHPBB3-15849
2018-10-21 07:02:26 +00:00
Marc Alexander
ae6c3b0d34 Merge pull request #5423 from kasimi/ticket/15852
[ticket/15852] Fix whois for IPv6 addresses
2018-10-20 20:19:10 -04:00
Marc Alexander
d017b9aa3b Merge pull request #5151 from xchwarze/mailhook
[ticket/15836] Event to send message via external transport
2018-10-20 19:56:30 -04:00
Marc Alexander
537c415009 Merge pull request #5388 from toxyy/ticket/15819
[ticket/15819] Add core event to functions_posting to modify notifications
2018-10-20 12:46:52 -04:00
Marc Alexander
fba55791c1 Merge pull request #5403 from Elsensee/ticket/14812
[ticket/14812] Prune shadow topics during system cron too
2018-10-20 12:27:13 -04:00
Marc Alexander
dbd0304c1d [ticket/15836] Rename event to have unique name
PHPBB3-15836
2018-10-20 12:23:19 -04:00
Marc Alexander
e2a6a7e83a Merge pull request #5320 from rxu/ticket/15755
[ticket/15755] Fix event vars in /phpbb/attachment/delete.php
2018-10-20 12:14:48 -04:00
Marc Alexander
7aa639f050 Merge pull request #5379 from senky/ticket/15621
[ticket/15621] Remove graphical inconsistencies
2018-10-20 11:34:57 -04:00
kasimi
7263f9bebd [ticket/15852] Fix whois for IPv6 addresses
PHPBB3-15852
2018-10-20 11:05:04 +02:00
Marc Alexander
c4ff772c91 Merge pull request #5376 from senky/ticket/15701
[ticket/15701] Display signature in MCP
2018-10-19 12:35:54 -04:00
Marc Alexander
4c2a81724a Merge pull request #5421 from senky/ticket/15848
[ticket/15848] Update plupload to 2.3.6
2018-10-19 10:36:59 -04:00
Jakub Senko
101d3b7633 [ticket/10432] Don't require username when user forgets password
PHPBB3-10432
2018-10-18 18:51:16 +02:00
Jakub Senko
e046bd7498 [ticket/15848] Update plupload to 2.3.6
PHPBB3-15848
2018-10-18 18:50:32 +02:00
Jakub Senko
175ffa869b [ticket/15850] Fix "Duplicate entry" for notification types
PHPBB3-15850
2018-10-18 18:50:17 +02:00
3D-I
b5ba220584 [ticket/15826] Add core.mcp_main_fork_sql_after
Add row array

PHPBB3-15826
2018-10-17 03:52:28 +02:00
Alec
a62141ea68 [ticket/15841] Allow postrow pm link to be modified by event
Allow postrow.contact pm link to be modified by event above
All other variables in postrow.contact can be modified by the event already
This lets you hide all contact info on a per user basis

PHPBB3-15841
2018-10-15 21:57:23 -04:00
Jakub Senko
9c636cfdbe [ticket/15837] Add core.ucp_register_welcome_email_before
PHPBB3-15837
2018-10-15 13:57:00 +02:00
Jakub Senko
f430a77731 [ticket/15838] Add core.ucp_register_register_after
PHPBB3-15838
2018-10-15 13:56:38 +02:00
Marc Alexander
7e003bf687 Merge pull request #5397 from VSEphpbb/ticket/15824
[ticket/15824] Fix and update UI framework
2018-10-13 17:06:10 -07:00
Marc Alexander
2862de45bd Merge pull request #5409 from senky/ticket/15494
[ticket/15494] Allow user to be removed from NEWLY_REGISTERED multiple times
2018-10-13 16:59:44 -07:00
Marc Alexander
dfa533af4a Merge pull request #5384 from DavidIQ/ticket/15552
[ticket/15552] Call insert_single_user when appropriate
2018-10-13 16:41:27 -07:00
Marc Alexander
4180950db7 Merge pull request #5383 from senky/ticket/15554
[ticket/15554] Add simple_footer_body_after
2018-10-13 16:37:27 -07:00
Marc Alexander
2fcf49c839 Merge pull request #5381 from senky/ticket/15616
[ticket/15616] Remove jumpbox from login_forum.html
2018-10-13 16:31:02 -07:00
Marc Alexander
5d98b66e95 Merge pull request #5375 from senky/ticket/15706
[ticket/15706] Add mcp_post_report_buttons_top_* events
2018-10-13 15:59:13 -07:00
Marc Alexander
aa7b4bdfce Merge pull request #5373 from senky/ticket/15771
[ticket/15771] Improve Q&A instructions
2018-10-13 15:56:05 -07:00
Marc Alexander
5c3dd124c4 Merge pull request #5371 from senky/ticket/15792
[ticket/15792] Add confirm_delete_body_delete_reason_before
2018-10-13 15:52:36 -07:00
Marc Alexander
e27da4a025 Merge pull request #5368 from kinerity/ticket/15803
[ticket/15803] Add events on ucp_pm_compose for additional message list actions
2018-10-13 15:49:35 -07:00
Marc Alexander
4cef4634fc Merge pull request #5367 from JimMH/3.2.x
[ticket/15788] Fix return button for Privacy Policy
2018-10-13 15:44:24 -07:00
DSR!
c67dd0c591 [ticket/15836] Event to send message via external transport
PHPBB3-15836
2018-10-13 15:14:44 -07:00
Jakub Senko
d48ffde25d [ticket/15792] Add confirm_delete_body_delete_reason_before
PHPBB3-15792
2018-10-12 10:05:41 +02:00
Jakub Senko
f9b1f9ced5 [ticket/15706] Add mcp_post_report_buttons_top_* events
PHPBB3-15706
2018-10-12 10:05:03 +02:00
Marc Alexander
ca23d199c1 Merge pull request #5412 from marc1706/ticket/15557
[ticket/15557] Update composer to latest stable & symfony to 2.8.46
2018-10-12 07:31:32 +02:00
Jakub Senko
52ffe75888 [ticket/15554] Add simple_footer_body_after
PHPBB3-15554
2018-10-11 09:30:03 +02:00
Marc Alexander
40332ecfcc Merge pull request #5374 from senky/ticket/15758
[ticket/15758] Show translated msg for INSECURE_REDIRECT
2018-10-10 22:49:08 +02:00
Jim Mossing Holsteyn
35d49f5150 [ticket/15788] Fix return button for Privacy Policy
Change the text from "Return to Login Page" to "Return to Previous page" as
the privacy policy can now be accessed through the footer so we could return
to any random previous page instead of just the login page.

PHPBB3-15788
2018-10-10 22:42:41 +02:00
Marc Alexander
97a24948e0 [ticket/15557] Update symfony to 2.8.46
PHPBB3-15557
2018-10-10 21:42:15 +02:00
Marc Alexander
f4b2849aa2 [ticket/15557] Update composer.phar to 1.7.2
PHPBB3-15557
2018-10-10 21:34:18 +02:00
Marc Alexander
937c029665 Merge pull request #5386 from senky/ticket/15809
[ticket/15809] Allow twig syntax for template events
2018-10-10 13:55:56 +02:00
Marc Alexander
2225110c0d Merge pull request #5382 from senky/ticket/15596
[ticket/15596] Migrate from data-vocabulary.org to schema.org
2018-10-09 23:04:26 +02:00
Marc Alexander
63fd22b227 Merge pull request #5378 from senky/ticket/15642
[ticket/15642] Replace > with >
2018-10-09 23:01:02 +02:00
Marc Alexander
6087f0347c Merge pull request #5377 from senky/ticket/15700
[ticket/15700] Use correct T_THEME_LANG_NAME
2018-10-09 22:58:32 +02:00
Marc Alexander
407d179702 Merge pull request #5170 from id-tarzanych/ticket/15600
[ticket/15600] Escaped ban reasons in JavaScript code of mcp_warn.html
2018-10-09 22:20:57 +02:00
Marc Alexander
6a6c1b0463 Merge pull request #5366 from kasimi/ticket/15799
[ticket/15799] Find correct poll for voting animation
2018-10-09 14:25:12 +02:00
Marc Alexander
65699d501d Merge pull request #5287 from toxyy/ticket/15719
[ticket/15719] Add core events to viewtopic to edit the post_list sql query
2018-10-09 12:09:26 +02:00
Serge Skripchuk
4a3c00d1c8 [ticket/15600] Escaped ban reasons in JavaScript code of mcp_warn.html
PHPBB3-15600
2018-10-09 11:08:30 +02:00
Marc Alexander
a9eacf43e8 Merge pull request #5394 from Elsensee/ticket/12430
[ticket/12430] Remove hilit param from topic title link
2018-10-09 08:28:50 +02:00
Marc Alexander
ae672b0c7f Merge pull request #5326 from rubencm/ticket/15762
[ticket/15762] Update type for forum_topics_per_page
2018-10-09 08:07:49 +02:00
rubencm
582c1f3562 [ticket/15762] Update migration dependency
PHPBB3-15762
2018-10-08 21:44:27 +00:00
Marc Alexander
6e61804e45 Merge pull request #5370 from senky/ticket/15805
[ticket/15805] Add result to core.login_box_redirect
2018-10-08 22:27:55 +02:00
Marc Alexander
6478e98308 Merge pull request #5355 from marc1706/ticket/15770
[ticket/15770] Make sure sphinx limits are cast to int
2018-10-08 22:24:18 +02:00
Marc Alexander
2de198e30d Merge pull request #5354 from Elsensee/ticket/15329
[ticket/15329] Parse drafts before saving them (and decode)
2018-10-08 22:21:55 +02:00
Marc Alexander
a0d2f4cab1 Merge pull request #5353 from Elsensee/ticket/15607
[ticket/15607] Skip ban and disabled checks when deleting cookies
2018-10-08 22:14:38 +02:00
Marc Alexander
8ff2a74fd9 Merge pull request #5346 from senky/ticket/15768
[ticket/15768] Add a license to a repository
2018-10-08 22:10:39 +02:00
Marc Alexander
b8c5537948 Merge pull request #5343 from senky/ticket/15716
[ticket/15716] Remove OAuth data upon user deletion
2018-10-08 22:07:35 +02:00
Marc Alexander
13fe7b3ed2 Merge pull request #5341 from senky/ticket/15742
[ticket/15742] Remove get_magic_quotes_gpc() call
2018-10-08 21:55:25 +02:00
Marc Alexander
bcd4b01071 Merge pull request #5338 from senky/ticket/15420
[ticket/15420] Only update quote notification with original author
2018-10-08 21:48:56 +02:00
Marc Alexander
2c74cb71b5 Merge pull request #5301 from senky/ticket/11500
[ticket/11500] Remove unnamed input
2018-10-08 21:42:46 +02:00
Marc Alexander
dd43c6a61e Merge pull request #5296 from MikelAlejoBR/ticket/15622
[ticket/15622] Fix quoting in PMs when BBCodes are disabled
2018-10-08 21:35:38 +02:00
Marc Alexander
e1abc3105b Merge pull request #5251 from senky/ticket/15668
[ticket/15668] Replace .load() with .on('load')
2018-10-08 21:27:07 +02:00
Marc Alexander
8bdb2ce6ba Merge pull request #5220 from senky/ticket/15662
[ticket/15662] Add $this->template to core.modify_notification_message
2018-10-08 21:23:54 +02:00
Marc Alexander
cd17633235 Merge pull request #5219 from senky/ticket/15661
[ticket/15661] Add core.viewtopic_modify_poll_ajax_data
2018-10-08 21:16:58 +02:00
Marc Alexander
3c7e8325a0 Merge pull request #5215 from Zoddo/ticket/13128
[ticket/13128] Remove deprecated Sphinx options
2018-10-08 21:12:40 +02:00
Marc Alexander
426d8ce79f Merge pull request #5152 from senky/ticket/15579
[ticket/15579] Add ucp_front events
2018-10-08 21:04:56 +02:00
Jakub Senko
c9df803d3c [ticket/15494] Allow user to be removed from NEWLY_REGISTERED multiple times
PHPBB3-15494
2018-10-08 16:00:06 +02:00
Jakub Senko
38d7ad40a3 [ticket/15832] Add core.acp_users_avatar_sql event
PHPBB3-15832
2018-10-08 15:38:14 +02:00
Jakub Senko
9d85422edb [ticket/15831] Add core.acp_users_modify_signature_sql_ary event
PHPBB3-15831
2018-10-08 15:33:42 +02:00
Matt Friedman
253b42372f [ticket/15824] Add UI test method to wait for AJAX requests
PHPBB3-15824
2018-10-03 18:50:30 -07:00
Oliver Schramm
842e40dab9 [ticket/14812] Prune shadow topics during system cron too
PHPBB3-14812
2018-10-04 01:56:52 +02:00
3D-I
35c9357d2f [ticket/15825] Add core.acp_manage_forums_move_content_sql_before
PHPBB3-15825
2018-10-02 18:19:11 +02:00
Dark❶
4fb89504a9 [ticket/15827] Add *_username_{prepend/append} template events
PHPBB3-15827
2018-10-02 14:06:35 +05:30
3D-I
710760b9e4 [ticket/15826] Add core.mcp_main_fork_sql_after
PHPBB3-15826
2018-10-02 05:59:25 +02:00
Matt Friedman
b487a3d9ef [ticket/15824] Make UI test framework correctly install exts
PHPBB3-15824
2018-10-01 17:29:13 -07:00
Matt Friedman
4a2b12a0c8 [ticket/15824] Fix cache initialization in UI framework
PHPBB3-15824
2018-10-01 13:56:37 -07:00
hubaishan
3a2374e37c [ticket/15817] Fix installtion failed with Oracle
Fix installtion failed with Oracle

PHPBB3-15817
2018-10-01 20:25:55 +03:00
Oliver Schramm
0bb87b2de1 [ticket/12430] Remove hilit param from topic title link
PHPBB3-12430
2018-10-01 17:07:28 +02:00
Alec
eb4a95f659 [ticket/15819] Add core event to functions_posting to modify notifications
Events added to allow modifying notification data before in the database.
Useful to change variables in the notification message, such as usernames.
Includes some other residual data to allow this event to be versatile.

PHPBB3-15819
2018-10-01 00:42:55 -04:00
Jakub Senko
f3f1bfcbe8 [ticket/15809] Allow twig syntax for template events
PHPBB3-15809
2018-09-30 20:54:44 +02:00
Jakub Senko
f657ee51f8 [ticket/15593] Do not allow print view with direct URL
PHPBB3-15593
2018-09-28 12:55:45 +02:00
Jakub Senko
d29d4389f9 [ticket/15758] Show translated msg for INSECURE_REDIRECT
PHPBB3-15758
2018-09-28 12:27:55 +02:00
Jakub Senko
f82e0a83d1 [ticket/15616] Add jumpbox to login_forum.html
PHPBB3-15616
2018-09-26 16:29:43 +02:00
Jakub Senko
a478063d2b [ticket/15621] Remove graphical inconsistencies
PHPBB3-15621
2018-09-26 09:17:29 +02:00
David Colón
600588d623 [ticket/15552] Call insert_single_user when appropriate
PHPBB3-15552
2018-09-25 19:20:12 -04:00
Jakub Senko
31d101e68c [ticket/15596] Migrate from data-vocabulary.org to schema.org
PHPBB3-15596
2018-09-25 16:34:17 +02:00
Jakub Senko
1081aaee3e [ticket/15619] Always display CPF legend
PHPBB3-15619
2018-09-25 16:14:46 +02:00
Jakub Senko
b9a5810716 [ticket/15642] Replace > with >
PHPBB3-15642
2018-09-25 15:39:50 +02:00
Jakub Senko
dab4c10c2f [ticket/15700] Use correct T_THEME_LANG_NAME
PHPBB3-15700
2018-09-25 15:24:34 +02:00
Jakub Senko
f251c26fe6 [ticket/15701] Display signature in MCP
PHPBB3-15701
2018-09-25 15:22:14 +02:00
Jakub Senko
d8ecb00f3d [ticket/15771] Improve Q&A instructions
PHPBB3-15771
2018-09-25 14:25:51 +02:00
Kailey Truscott
62c9996b2f [ticket/15803] Change 'object' to 'bool'
PHPBB3-15803
2018-09-25 07:42:55 -04:00
Marc Alexander
001f32da95 Merge pull request #5369 from Elsensee/ticket/15544
[ticket/15544] Delete cache through module manager
2018-09-25 13:24:36 +02:00
Jakub Senko
1d0fdc446f [ticket/15805] Add result to core.login_box_redirect
PHPBB3-15805
2018-09-24 16:09:51 +02:00
Oliver Schramm
3d2c1b8f97 [ticket/15544] Delete cache through module manager
This might fix issues with migrations since the
sql cache will be purged as well. In general, this
puts all the logic in one place, so that's good.

PHPBB3-15544
2018-09-24 02:56:07 +02:00
kinerity
eb867fc623 [ticket/15803] Global $phpbb_dispatcher
PHPBB3-15803
2018-09-23 00:33:58 -04:00
kinerity
8ed759545e [ticket/15803] Fix since version
PHPBB3-15803
2018-09-23 00:33:58 -04:00
kinerity
78732fd7c2 [ticket/15803] Add events on ucp_pm_compose for additional message list actions
Event added for the handle_message_list_actions() function in ucp_pm_compose
so that extensions can perform additional actions.

PHPBB3-15803
2018-09-22 21:28:02 -04:00
kasimi
71ae82fbef [ticket/15799] Find correct poll for voting animation
PHPBB3-15799
2018-09-21 17:50:55 +02:00
Marc Alexander
2769ab701a Merge pull request #5319 from rubencm/ticket/15751
[ticket/15751] Fix warning when update with CLI
2018-09-17 21:10:41 +02:00
Marc Alexander
9000936926 Merge pull request #5292 from rubencm/ticket/15723
[ticket/15723] Rewrite gen_rand_string() and gen_rand_string_friendly()
2018-09-17 21:01:45 +02:00
MikelAlejoBR
4396bfba65 [ticket/15622] Rename function to avoid potential future conflicts
PHPBB3-15622
2018-09-16 19:23:30 +02:00
MikelAlejoBR
e17f00fb6b [ticket/15622] Remove "since" tag as it belongs to events
PHPBB3-15622
2018-09-16 19:23:16 +02:00
Marc Alexander
9503996441 Merge pull request #5312 from senky/ticket/15541
[ticket/15541] Explicitly explain how to add lang files in core.user_…
2018-09-16 17:29:47 +02:00
Marc Alexander
a505a3adf9 Merge pull request #5309 from Zoddo/ticket/15737
[ticket/15737] Add $user_rows to core.delete_user_before
2018-09-16 17:15:24 +02:00
Marc Alexander
3bcc779e81 Merge pull request #5307 from Zoddo/ticket/15735
[ticket/15735] Add *_content_after template event
2018-09-16 17:07:56 +02:00
Marc Alexander
d3633c7f30 Merge pull request #5300 from senky/ticket/11453
[ticket/11453] Improve performance of notification.method.messenger_base
2018-09-16 16:55:49 +02:00
Marc Alexander
f08d18c99c Merge pull request #5295 from v12mike/ticket/15726
Ticket/15726 Implement selective purge in APCu cache driver
2018-09-16 16:10:25 +02:00
v12mike
5edb330366 [ticket/15726] Implement selective purge in APCu
fix indentation of comment

PHPBB3-15726
2018-09-16 16:06:00 +02:00
v12mike
33268e5a72 [ticket/15726] Implement selective purge in APCu cache driver
Edit comment

PHPBB3-15726
2018-09-16 16:05:55 +02:00
v12mike
7f1f64b1dc [ticket/15726] Implement selective purge in APCu cache driver
Fix whitespace

PHPBB3-15726
2018-09-16 16:05:51 +02:00
v12mike
bf9af92220 [ticket/15726] Implement selective purge in APCu cache driver
Correcting code formatting and whitespace

PHPBB3-15726
2018-09-16 16:05:46 +02:00
v12mike
7d4d9770cf [ticket/15726] Implement selective purge in APCu cache driver
fix file permissions

PHPBB3-15726
2018-09-16 16:05:40 +02:00
v12mike
63a3033f15 [ticket/15726] Implement selective purge in APCu cache driver
Fix whitespace

PHPBB3-15726
2018-09-16 16:05:33 +02:00
v12mike
02234783c6 [ticket/15726] Implement selective purge in APCu cache driver
The current APCu cache driver implements a global clearing of the APCu
when the phpBB cache is purged. This is inappropriate if there are other
phpBB boards, or other php applications sharing the APCu cache.

This patch changes the behviour so that only cache entries matching
the key_prefix of this board are cleared by a phpBB cache purge.

The APCu unit test script has been updated to test this behaviour.
It has also been updated so that the test case can be run individually
previously it relied on initialisations made in other test scripts.

PHPBB3-15726
2018-09-16 16:05:22 +02:00
Jakub Senko
1a284ebe8d [ticket/15579] Add ucp_front events
PHPBB3-15579
2018-09-16 14:20:49 +02:00
Jakub Senko
fbd1741107 [ticket/15661] Add core.viewtopic_modify_poll_ajax_data
PHPBB3-15661
2018-09-16 14:20:02 +02:00
Jakub Senko
0725723813 [ticket/15662] Add template
PHPBB3-15662
2018-09-16 14:19:13 +02:00
Marc Alexander
3e85190798 Merge pull request #5305 from MikelAlejoBR/ticket/15733
[ticket/15733] Remove unused code related to deprecated flood control
2018-09-16 13:14:59 +02:00
Derky
18dd250f52 Merge pull request #5362 from hubaishan/ticket/15791
[ticket/15791] fix php 7.2 count() bug in memory cache driver
2018-09-16 13:08:12 +02:00
Oliver Schramm
101681070b [ticket/14656] Add List-Unsubscribe header to emails
PHPBB3-14656
2018-09-16 12:28:34 +02:00
Marc Alexander
eb5d61044c Merge pull request #5160 from kasimi/ticket/15590
[ticket/15590] Add events core.acp_bbcodes_(modify_create|delete)_after
2018-09-16 11:27:03 +02:00
hubaishan
c7631635fa [ticket/15791] php 7.2 count() bug in memory cache driver
function `_read` in classes inherted from `memory`
may returns `false` but `$vars` must be an array

PHPBB3-15791
2018-09-16 06:38:58 +03:00
Marc Alexander
b0d55a69c7 Merge pull request #5325 from hubaishan/ticket/15612
[ticket/15612] Fix PHP7.2 count() bug in MSSQL driver
2018-09-15 17:22:37 +02:00
Tristan Darricau
404f3269dc Merge pull request #5342 from senky/ticket/15721
[ticket/15721] Make plupload more versatile
2018-09-15 17:11:39 +02:00
Tristan Darricau
88f897bc86 Merge pull request #5350 from Elsensee/ticket/15767
[ticket/15767] Fix effictively_installed condition for oauth_tokens
2018-09-15 17:05:09 +02:00
Derky
bb20a88748 Merge pull request #5352 from senky/ticket/15744-2
[ticket/15744] Remove useless sql_freeresults
2018-09-15 12:59:57 +02:00
Derky
9ea60e3478 Merge pull request #5339 from senky/ticket/15748
[ticket/15748] Fix toggle alt text
2018-09-15 12:53:11 +02:00
Jakub Senko
c38075d2c2 [ticket/15768] Add a license to a repository
PHPBB3-15768
2018-09-15 12:51:32 +02:00
Marc Alexander
4ac3c545e1 [ticket/15770] Make sure sphinx limits are cast to int
PHPBB3-15770
2018-09-14 15:02:07 +02:00
Oliver Schramm
0d7c33c1af [ticket/15329] Parse drafts before saving them (and decode)
PHPBB3-15329
2018-09-14 14:54:51 +02:00
Derky
1991df9519 Merge pull request #5349 from rubencm/ticket/15566
[ticket/15566] Set category to none if extension don't exist
2018-09-14 14:40:46 +02:00
Derky
4d5258b5a3 [ticket/15748] Trim whitespace before storing in data attribute
PHPBB3-15748
2018-09-14 11:34:14 +02:00
Oliver Schramm
204b18dd59 [ticket/15607] Skip ban and disabled checks when deleting cookies
PHPBB3-15607
2018-09-14 11:21:55 +02:00
Jakub Senko
89d1401a77 [ticket/15742] Remove addslashes_recursively()
PHPBB3-15742
2018-09-13 18:47:14 +02:00
Jakub Senko
271c9d34dc [ticket/15744] Remove useless sql_freeresults
PHPBB3-15744
2018-09-13 17:49:24 +02:00
rubencm
af5a2c4a20 [ticket/15566] Add missing variable sign
PHPBB3-15566
2018-09-13 15:26:17 +00:00
Oliver Schramm
9090ddcfb6 [ticket/15767] Fix effictively_installed condition for oauth_tokens
PHPBB3-15767
2018-09-13 15:19:11 +02:00
rubencm
0898c4c1cc [ticket/15566] Set category to none if extension don't exist
PHPBB3-15566
2018-09-13 11:55:05 +00:00
Marc Alexander
db71ca7db1 Merge branch 'prep-release-3.2.3' into 3.2.x 2018-09-10 16:11:32 +01:00
Marc Alexander
db67dc5f70 Merge branch 'ticket/15746' into prep-release-3.2.3 2018-09-10 09:35:42 +01:00
Marc Alexander
d64b9e7038 [ticket/15746] Update to Symfony 2.8.45
PHPBB3-15746
2018-09-09 23:16:43 +01:00
Marc Alexander
2c9d49bf09 Merge branch 'prep-release-3.2.3' into 3.2.x 2018-09-09 12:00:28 +01:00
Marc Alexander
ab17c854cd [prep-release-3.2.3] Update changelog with changes after 3.2.3-RC2 2018-09-09 11:03:58 +01:00
Jakub Senko
0f10c6ff6f [ticket/15716] Remove OAuth data upon user deletion
PHPBB3-15716
2018-09-06 21:34:19 +02:00
Jakub Senko
8eb48e2812 [ticket/15742] Remove get_magic_quotes_gpc() call
PHPBB3-15742
2018-09-06 14:52:35 +02:00
Jakub Senko
f2c53bfffd [ticket/15721] Make plupload more versatile
PHPBB3-15721
2018-09-06 14:26:06 +02:00
Jakub Senko
367f884d01 [ticket/15748] Fix toggle alt text
PHPBB3-15748
2018-09-04 14:41:00 +02:00
Jakub Senko
4a30818e12 [ticket/15420] Only update quote notification with original author
PHPBB3-15420
2018-09-04 14:30:19 +02:00
Marc Alexander
a72a6514e7 [prep-release-3.2.3] Fix improper version number 2018-09-01 09:22:36 +01:00
Rubén Calvo
9719d5a3d5 [ticket/15762] Update type for forum_topics_per_page in acp_forums
PHPBB3-15762
2018-08-30 19:05:12 +02:00
Rubén Calvo
b79aa3e147 [ticket/15762] Update type for forum_topics_per_page
PHPBB3-15762
2018-08-30 07:06:18 +02:00
Marc Alexander
ecfd067f37 [prep-release-3.2.3] Add 3.2.3 migration 2018-08-26 14:47:24 +02:00
Marc Alexander
4d7b16f439 [prep-release-3.2.3] Update version numbers for 3.2.3 release 2018-08-26 14:45:59 +02:00
hubaishan
b0b70589a2 [ticket/15612] Fix PHP7.2 count() bug in MSSQL driver
sqlsrv_fetch_array() function returns an array when data found,
null when no data or false on error. So we need to change null to false only.

PHPBB3-15612
2018-08-25 16:17:55 +03:00
Marc Alexander
b1d8abf3da Merge branch 'ticket/15746' into prep-release-3.2.3 2018-08-21 21:28:29 +02:00
Marc Alexander
c20d84ce17 [ticket/15746] Adjust tests after twig update
PHPBB3-15746
2018-08-21 21:25:33 +02:00
rxu
fc674873c7 [ticket/15755] Fix event vars in /phpbb/attachment/delete.php
PHPBB3-15755
2018-08-12 21:54:13 +07:00
Rubén Calvo
c912e6feaa [ticket/15751] Fix warning when update with CLI
PHPBB3-15751
2018-08-09 23:45:41 +02:00
Rubén Calvo
ced8599e30 [ticket/15723] Rewrite unique_id too
PHPBB3-15723
2018-08-08 20:36:16 +02:00
Marc Alexander
8858c86c97 [ticket/15746] Update symfony to 2.8.44 & others to latest
PHPBB3-15746
2018-08-07 11:49:00 +02:00
Marc Alexander
888683bda0 Merge pull request #5314 from Zoddo/ticket/15740
[ticket/15740] Fix hardcoded Terms/Privacy
2018-08-05 21:46:34 +02:00
Zoddo
c3d664bbfe [ticket/15740] Fix hardcoded Terms/Privacy
PHPBB3-15740
2018-08-03 18:25:27 +02:00
Marc Alexander
bd90a53589 [3.2.x] Update verions for 3.2.4-dev 2018-08-02 21:42:05 +02:00
Marc Alexander
1810688d0c Merge branch 'prep-release-3.2.3' into 3.2.x 2018-08-02 21:40:42 +02:00
MikelAlejoBR
ada8bc9da2 [ticket/15622] Refactor message link concatenation
PHPBB3-15622
2018-08-01 18:01:37 +02:00
MikelAlejoBR
521aec5923 [ticket/15622] Correct code style
PHPBB3-15622
2018-08-01 17:37:21 +02:00
MikelAlejoBR
ce2196517b [ticket/15622] Fix message link generation
Now the message link is generated in different formats depending on whether
BBCodes are allowed or not in the site.

PHPBB3-15622
2018-08-01 16:19:30 +02:00
Jakub Senko
800fbdfed2 [ticket/15541] Explicitly explain how to add lang files in core.user_setup
PHPBB3-15541
2018-08-01 14:31:19 +02:00
MikelAlejoBR
184d24bb16 [ticket/15622] Extract duplicated code
PHPBB3-15622
2018-07-31 16:06:49 +02:00
Marc Alexander
a85536d9aa [prep-release-3.2.3] Update changelog for 3.2.3-RC2 2018-07-30 21:32:27 +02:00
Marc Alexander
75c082e605 [prep-release-3.2.3] Add migration for 3.2.3-RC2 2018-07-30 21:29:19 +02:00
Marc Alexander
7fbfd7300e [prep-release-3.2.3] Update version numbers for 3.2.3-RC2 2018-07-30 21:27:09 +02:00
Marc Alexander
1e6a37431b Merge branch 'prep-release-3.2.3' into 3.2.x 2018-07-30 13:57:02 +02:00
Marc Alexander
81b02587cd Merge remote-tracking branch 'senky/ticket/11847' into prep-release-3.2.3 2018-07-30 13:56:33 +02:00
Marc Alexander
2bac84c51f Merge branch 'prep-release-3.2.3' into 3.2.x 2018-07-30 13:45:50 +02:00
Marc Alexander
0e4a38956a Merge remote-tracking branch 'rubencm/ticket/15731' into prep-release-3.2.3 2018-07-30 13:44:48 +02:00
Zoddo
70c28aace5 [ticket/15737] Add $user_rows to core.delete_user_before
It was added to core.delete_user_after in GH-4905

PHPBB3-15737
2018-07-30 13:02:06 +02:00
Jakub Senko
8276b3d337 [ticket/11847] Add depends_on() to auth_provider_oauth
PHPBB3-11847
2018-07-30 11:37:37 +02:00
Rubén Calvo
a6a3899aea [ticket/15731] Fix language string parameters
PHPBB3-15731
2018-07-30 11:20:42 +02:00
Zoddo
6cce62c0ca [ticket/15735] Add viewtopic_body_postrow_content_after template event
Needed for extensions who adds information at the end of the message
(such as moderator messages).

PHPBB3-15735
2018-07-30 00:24:56 +02:00
Zoddo
5304b7d0b3 [ticket/15735] Add search_results_content_after template event
Needed for extensions who adds information at the end of the message
(such as moderator messages).

PHPBB3-15735
2018-07-30 00:18:57 +02:00
Zoddo
614e10888c [ticket/15735] Add posting_topic_review_row_content_after template event
Needed for extensions who adds information at the end of the message
(such as moderator messages).

PHPBB3-15735
2018-07-30 00:17:52 +02:00
Zoddo
a4e2d89e03 [ticket/15735] Add posting_preview_content_after template event
Needed for extensions who adds information at the end of the message
(such as moderator messages).

PHPBB3-15735
2018-07-29 22:41:06 +02:00
MikelAlejoBR
5be990e959 [ticket/15733] Fix undeclared variable concatenation
PHPBB3-15733
2018-07-29 13:34:59 +02:00
MikelAlejoBR
e710304ef5 [ticket/15733] Correct "changed" tag version to 3.2.4-RC1
PHPBB3-15733
2018-07-29 11:59:46 +02:00
Mikel Alejo
43be40c1ae [ticket/15733] Merge related ticket PHPBB3-15697
PHPBB3-15733
2018-07-29 11:57:34 +02:00
MikelAlejoBR
a7d7dfee9c [ticket/15733] Add "changed" tag to the corresponding comment blocks
PHPBB3-15733
2018-07-28 22:22:38 +02:00
MikelAlejoBR
b2277e7bf6 [ticket/15733] Remove unused code related to deprecated flood control
PHPBB3-15733
2018-07-28 14:29:37 +02:00
MikelAlejoBR
740006ba60 [ticket/15697] Remove unused variable and corresponding input field
PHPBB3-15697
2018-07-28 13:15:31 +02:00
Jakub Senko
76982b430f [ticket/11453] Improve performance of notification.method.messenger_base
PHPBB3-11453
2018-07-27 14:29:35 +02:00
Jakub Senko
4ebd582947 [ticket/11500] Remove unnamed input
PHPBB3-11500
2018-07-26 17:17:27 +02:00
MikelAlejoBR
210c5f5a59 [ticket/15697] Remove hard coded time check when sending PMs
PHPBB3-15697
2018-07-23 17:45:48 +02:00
MikelAlejoBR
12fdfe145a [ticket/15622] Fix quoting in PMs when BBCodes are disabled
Before parsing the private message to be loaded a simple BBCode status
check is done to verify that BBCodes are enabled. Depending on that
option the quote will be formated as BBCode or as plain text, similarly
to what is done in posting.php.

PHPBB3-15622
2018-07-22 17:09:09 +02:00
Marc Alexander
04899d1efd Merge branch 'prep-release-3.2.3' into 3.2.x 2018-07-18 21:54:51 +02:00
Marc Alexander
c72d443738 Merge pull request #5232 from marc1706/ticket/15677
[ticket/15677] Update symfony  to 2.8.42, others to latest
2018-07-18 21:54:12 +02:00
Rubén Calvo
ffcfec044b [ticket/15723] Rewrite gen_rand_string() and gen_rand_string_friendly()
PHPBB3-15723
2018-07-14 11:42:32 +02:00
Toxyy
5fbd4584be [ticket/15719] Add core events to viewtopic to edit the post_list sql query
Event added in viewtopic.php so you can modify post_list sql

The query, sql limit, sql start, sort keys and days are editable

PHPBB3-15719
2018-07-09 16:54:11 -04:00
kasimi
1785b9eb47 [ticket/15590] Add events core.acp_bbcodes_(modify_create|delete)_after
PHPBB3-15590
2018-07-08 20:04:26 +02:00
Tristan Darricau
911c46cc61 Merge branch 'prep-release-3.2.3' into 3.2.x
* prep-release-3.2.3:
2018-07-08 18:50:28 +02:00
Tristan Darricau
c4cef8c427 Merge pull request #5238 from avijc/ticket/15680
[ticket/15680] Point to 3.2 documentation

* github.com:/phpbb/phpbb:
  [ticket/15680] Point to 3.2 documentation
2018-07-08 18:50:28 +02:00
Tristan Darricau
32deb50f5c Merge pull request #5238 from avijc/ticket/15680
[ticket/15680] Point to 3.2 documentation

* github.com:/phpbb/phpbb:
  [ticket/15680] Point to 3.2 documentation
2018-07-08 18:48:18 +02:00
Tristan Darricau
18f142e87d Merge pull request #5239 from avijc/ticket/15683
[ticket/15683] Better error message when commit message has CRLF

* github.com:/phpbb/phpbb:
  [ticket/15683] Better error message when commit message has CRLF
2018-07-08 18:47:37 +02:00
Tristan Darricau
3d9ae6186f Merge pull request #5244 from OxCom/ticket/15678
[ticket/15678] Fix build and cache flow for container

* github.com:/phpbb/phpbb:
  [ticket/15678] Fix build and cache flow for container
2018-07-08 18:46:33 +02:00
Tristan Darricau
7f76d91128 Merge pull request #5249 from senky/ticket/15659
[ticket/15659] Fix retrieve_block_vars()

* github.com:/phpbb/phpbb:
  [ticket/15659] Fix retrieve_block_vars()
2018-07-08 18:43:16 +02:00
Tristan Darricau
71905e50e8 Merge pull request #5250 from senky/ticket/15666
[ticket/15666] Language system is not fully supported in Twig

* github.com:/phpbb/phpbb:
  [ticket/15666] Fix array key in twig lang() call
2018-07-08 18:42:26 +02:00
Tristan Darricau
0e580d2ab0 Merge pull request #5252 from senky/ticket/15674
[ticket/15674] Edit language lines in file en\acp\profile.php

* github.com:/phpbb/phpbb:
  [ticket/15674] Improve CPF lang descriptions
2018-07-08 18:41:42 +02:00
Tristan Darricau
078d076526 Merge pull request #5253 from senky/ticket/15618
[ticket/15618] Display The team link only to users with permission

* github.com:/phpbb/phpbb:
  [ticket/15618] Display The team link only to users with permission
2018-07-08 18:41:04 +02:00
Tristan Darricau
bdd384aa37 Merge pull request #5254 from senky/ticket/15620
[ticket/15620] Use separate local avatar cache file for every lang

* github.com:/phpbb/phpbb:
  [ticket/15620] Use separate local avatar cache file for every lang
2018-07-08 18:40:22 +02:00
Tristan Darricau
e7a1e16bc5 Merge pull request #5256 from senky/ticket/13043
[ticket/13043] Improve HTML5

* github.com:/phpbb/phpbb:
  [ticket/13043] Improve HTML5
2018-07-08 18:38:53 +02:00
Tristan Darricau
e7ad97de3a Merge pull request #5257 from senky/ticket/15651
[ticket/15651] Remove unnecessary condition

* github.com:/phpbb/phpbb:
  [ticket/15651] Remove unnecessary condition
2018-07-08 18:38:13 +02:00
Tristan Darricau
90dc5519c0 Merge pull request #5258 from senky/ticket/15628
[ticket/15628] Add topic link to newtopic_notify.txt

* github.com:/phpbb/phpbb:
  [ticket/15628] Add topic link to newtopic_notify.txt
2018-07-08 18:36:58 +02:00
Tristan Darricau
e680d46865 Merge pull request #5260 from senky/ticket/15696
[ticket/15696] 'if' module tool should support calling other tools

* github.com:/phpbb/phpbb:
  [ticket/15696] Add tests
  [ticket/15696] Add support of other tools to 'if'
2018-07-08 18:36:10 +02:00
Tristan Darricau
f5e3394550 Merge pull request #5261 from senky/ticket/15670
[ticket/15670] Group forum permission: Can see forum gives NO SQL ERROR

* github.com:/phpbb/phpbb:
  [ticket/15670] Fix SQL error when !f_list_topics and f_read
2018-07-08 18:35:29 +02:00
Tristan Darricau
fca72a0f6a Merge pull request #5262 from senky/ticket/15606
[ticket/15606] Hide viewprofile link when unavailable

* github.com:/phpbb/phpbb:
  [ticket/15606] Hide viewprofile link when unavailable
2018-07-08 18:34:12 +02:00
Tristan Darricau
be15d8718d Merge pull request #5269 from 3D-I/ticket/15705
[ticket/15705] fix phpbbcli language vs PHP

* github.com:/phpbb/phpbb:
  [ticket/15705] fix phpbbcli language vs PHP
2018-07-08 18:24:55 +02:00
Tristan Darricau
b0df5e31cf Merge pull request #5277 from ghostal/ticket/15717
[ticket/15717] Using correct variable for log entry

* github.com:/phpbb/phpbb:
  [ticket/15717] Using correct variable for log entry
2018-07-08 18:21:45 +02:00
Tristan Darricau
3d4cc025e0 Merge pull request #5278 from hubaishan/ticket/15673
[ticket/15673] Fix Duplicated links in QuickLinks and main nav bar

* github.com:/phpbb/phpbb:
  [ticket/15673] Fix Duplicated links in QuickLinks and main nav bar
2018-07-08 18:19:39 +02:00
Tristan Darricau
5542070169 Merge pull request #5198 from kasimi/ticket/15637
[ticket/15637] Extract multi-line PHP event descriptions

* github.com:/phpbb/phpbb:
  [ticket/15637] Remove trailing space from description
  [ticket/15637] Preserve line breaks in event descriptions
  [ticket/15637] Updated test fixture to include complete event description
  [ticket/15637] Remove trailing space from description
  [ticket/15637] Fixed removing white-spaces from description line
  [ticket/15637] Extract all lines before the first @tag
  [ticket/15637] Extract multi-line PHP event descriptions
2018-07-08 18:14:20 +02:00
Tristan Darricau
777443d95c Merge pull request #5157 from kasimi/ticket/15583
[ticket/15583] Update session time in AJAX request only once a minute

* github.com:/phpbb/phpbb:
  [ticket/15583] Update session time in AJAX request only once a minute
  [ticket/15583] Update session time in AJAX request only once a minute
2018-07-08 18:06:16 +02:00
Tristan Darricau
9db4983f03 Merge pull request #5185 from SupSuper/ticket/15611
[ticket/15611] Fix misaligned text in responsive user profile

* github.com:/phpbb/phpbb:
  [ticket/15611] Fix misaligned text in responsive user profile
2018-07-08 18:03:59 +02:00
Marc Alexander
a3f7bc2e51 [ticket/15677] Updates for Symfony 2.8.42
PHPBB3-15677
2018-07-08 17:53:05 +02:00
Tristan Darricau
ed48b5f226 Merge pull request #5214 from ioannisbat/patch-1
[ticket/15638] Add word-break for overflowing.

* github.com:/phpbb/phpbb:
  [ticket/15638] Add word-break for overflowing.
2018-07-08 17:52:32 +02:00
Marc Alexander
bf81228d37 [ticket/15677] Update symfony to 2.8.41, others to latest
PHPBB3-15677
2018-07-08 17:49:19 +02:00
Tristan Darricau
219e85c4e0 Merge pull request #5217 from Zoddo/ticket/15656
[ticket/15656] Add "View post" link in the mod logs on the ACP

* github.com:/phpbb/phpbb:
  [ticket/15656] Add "View post" link in the mod logs on the ACP
2018-07-08 17:48:10 +02:00
Tristan Darricau
7f266a3664 Merge pull request #5229 from hubaishan/ticket/15613
[ticket/15613] Fix Notification dropdown said to be not RTL compliant

* github.com:/phpbb/phpbb:
  [ticket/15613] Fix Notification dropdown said to be not RTL compliant
2018-07-08 17:42:14 +02:00
Tristan Darricau
43d7f15a25 Merge pull request #5231 from marc1706/ticket/15676
[ticket/15676] Display privacy notice in footer & allow overriding U_PRIVACY

* github.com:/phpbb/phpbb:
  [ticket/15676] Use paragraphs and classes as suggested by hanakin
  [ticket/15676] Use twig syntax
  [ticket/15676] Simplify link text and use privacy link in cookie notice
  [ticket/15676] Display privacy notice in footer & allow overriding U_PRIVACY
2018-07-08 17:38:27 +02:00
Tristan Darricau
bc7b998632 Merge branch 'prep-release-3.2.3' into 3.2.x
* prep-release-3.2.3:
  [ticket/15676] Use paragraphs and classes as suggested by hanakin
  [ticket/15676] Use twig syntax
  [ticket/15676] Simplify link text and use privacy link in cookie notice
  [ticket/15676] Display privacy notice in footer & allow overriding U_PRIVACY
2018-07-08 17:38:27 +02:00
kasimi
eedcb3bbe1 [ticket/15637] Remove trailing space from description
PHPBB3-15637
2018-07-07 22:41:40 +02:00
kasimi
245f4df47c [ticket/15637] Preserve line breaks in event descriptions
PHPBB3-15637
2018-07-07 21:25:43 +02:00
kasimi
517c601482 [ticket/15637] Updated test fixture to include complete event description
PHPBB3-15637
2018-07-07 20:13:49 +02:00
kasimi
83a8280554 [ticket/15637] Remove trailing space from description
PHPBB3-15637
2018-07-07 20:12:35 +02:00
kasimi
1c8570d0f5 [ticket/15637] Fixed removing white-spaces from description line
PHPBB3-15637
2018-07-07 16:10:23 +02:00
kasimi
21faf69d31 [ticket/15637] Extract all lines before the first @tag
PHPBB3-15637
2018-07-07 16:09:29 +02:00
Jakub Senko
b5daa91650 [ticket/15659] Fix retrieve_block_vars()
PHPBB3-15659
2018-07-07 15:46:24 +02:00
Jakub Senko
9ee7b9b81f [ticket/15696] Add tests
PHPBB3-15696
2018-07-05 09:57:23 +02:00
hubaishan
27aba29d74 [ticket/15673] Fix Duplicated links in QuickLinks and main nav bar
Add required class to common.css

PHPBB3-15673
2018-07-04 16:40:53 +03:00
Alex Miles
a6fb2a6b8e [ticket/15717] Using correct variable for log entry
PHPBB3-15717
2018-07-04 01:23:30 +01:00
3D-I
49c1904823 [ticket/15705] fix phpbbcli language vs PHP
PHPBB3-15705
2018-06-23 20:10:33 +02:00
Marc Alexander
9b56a28be0 Merge branch 'prep-release-3.2.3' into 3.2.x 2018-06-20 22:11:15 +02:00
Marc Alexander
0925a22062 Merge pull request #5233 from rxu/ticket/15678
[ticket/15678] Fix PHP warning in filesystem.php
2018-06-20 22:08:37 +02:00
Marc Alexander
2f3bd918ac [ticket/15676] Use paragraphs and classes as suggested by hanakin
PHPBB3-15676
2018-06-20 21:50:49 +02:00
Jakub Senko
69a75da670 [ticket/15628] Add topic link to newtopic_notify.txt
PHPBB3-15628
2018-06-19 14:41:13 +02:00
Jakub Senko
f671022a6d [ticket/15674] Improve CPF lang descriptions
PHPBB3-15674
2018-06-19 14:40:21 +02:00
Marc Alexander
754945e6ff Merge pull request #5259 from rubencm/ticket/15695
[ticket/15695] Fix gen_rand_string returning less characters than expected
2018-06-19 13:32:10 +02:00
Jakub Senko
1afc0673dd [ticket/15696] Add support of other tools to 'if'
PHPBB3-15696
2018-06-19 07:49:21 +02:00
Rubén Calvo
d4d8aec02a [ticket/15695] Fix gen_rand_string returning less characters than expected
PHPBB3-15695
2018-06-18 22:38:14 +02:00
Jakub Senko
f4a6a2c2d7 [ticket/15606] Hide viewprofile link when unavailable
PHPBB3-15606
2018-06-18 18:53:41 +02:00
Jakub Senko
6deae170bd [ticket/15670] Fix SQL error when !f_list_topics and f_read
PHPBB3-15670
2018-06-18 18:38:53 +02:00
Jakub Senko
6fdb7486ad [ticket/15651] Remove unnecessary condition
module.remove internally check if the module exists

PHPBB3-15651
2018-06-18 17:31:10 +02:00
Jakub Senko
4c3cb4bc5c [ticket/13043] Improve HTML5
PHPBB3-13043
2018-06-18 13:34:02 +02:00
Jakub Senko
4544f5212c [ticket/15620] Use separate local avatar cache file for every lang
PHPBB3-15620
2018-06-18 13:10:19 +02:00
Jakub Senko
c61b9358ff [ticket/15618] Display The team link only to users with permission
PHPBB3-15618
2018-06-18 12:55:24 +02:00
Jakub Senko
5e70c9b831 [ticket/15668] Replace .load() with .on('load')
PHPBB3-15668
2018-06-18 11:58:20 +02:00
Jakub Senko
52f5e54d8a [ticket/15666] Fix array key in twig lang() call
PHPBB3-15666
2018-06-18 11:56:05 +02:00
Marc Alexander
02cbb864a5 Merge pull request #5245 from rubencm/ticket/15693
[ticket/15693] Fix get_rand_string()
2018-06-17 15:44:28 +02:00
Marc Alexander
7245bc9977 Merge branch 'prep-release-3.2.3' into 3.2.x 2018-06-17 15:40:00 +02:00
Marc Alexander
ecf19b13c8 Merge pull request #5218 from senky/ticket/15657
[ticket/15657] Add MCP queue events
2018-06-17 15:38:08 +02:00
Marc Alexander
aea56fcf57 Merge pull request #5246 from marc1706/ticket/15633
[ticket/15633] Double space to single space
2018-06-17 15:35:17 +02:00
scootergrisen
90e4eb2451 [ticket/15633] Double space to single space
Value of GROUP_MAX_RECIPIENTS_EXPLAIN key contains
double space. This removes one of the spaces.

PHPBB3-15633
2018-06-17 14:10:22 +02:00
Marc Alexander
ec87cc1f3e Merge pull request #5190 from Crizz0/ticket/15627
[ticket/15627] Reword the YES_ACCURATE_PM_BUTTON incl explaination
2018-06-17 13:27:06 +02:00
Marc Alexander
ff171f3a3b Merge pull request #5158 from kasimi/ticket/15586
[ticket/15586] Fixed adding module the automatic way without specifying modes
2018-06-17 11:35:08 +02:00
Marc Alexander
9e50e52fa5 [ticket/15693] Update tests to reflect changes to gen_rand_string()
PHPBB3-15693
2018-06-17 11:01:11 +02:00
Rubén Calvo
f75c400db4 [ticket/15693] Fix get_rand_string()
PHPBB3-15693
2018-06-15 19:22:35 +02:00
Andrii Afanasiev
7b44e2c791 [ticket/15678] Fix build and cache flow for container
1. During procedure of building container we have to check both required files
in cache: container_* and autoload_*. This files should be "fresh" and if one
of the does not exist then we have to build it and put into a cache one more
time.

2. Fix typo 'posic_getuid' does not exist, so $php_uid is alwasy was false.

PHPBB3-15678
2018-06-15 09:09:07 +02:00
Marc Alexander
8b7ae7c796 Merge branch 'prep-release-3.2.3' into 3.2.x 2018-06-12 22:35:06 +02:00
Marc Alexander
57cb513b8b Merge pull request #5191 from Crizz0/ticket/15630
[ticket/15630] ACP_COOKIE_SETTINGS_EXPLAIN change <b> to <strong>
2018-06-12 22:34:25 +02:00
Marc Alexander
2aa9fc07d3 Merge branch 'prep-release-3.2.3' into 3.2.x 2018-06-12 22:24:16 +02:00
Marc Alexander
6369637fbf Merge pull request #5192 from Crizz0/ticket/15629
[ticket/15629] Add info to RECAPTCHA_LANG and change to en-GB
2018-06-12 22:22:47 +02:00
Marc Alexander
94d64c672e Merge branch 'prep-release-3.2.3' into 3.2.x 2018-06-12 22:10:05 +02:00
Marc Alexander
32eb2f427c Merge pull request #5226 from rubencm/ticket/15504
[ticket/15504] Fix warning message
2018-06-12 22:06:55 +02:00
kasimi
8283f2393a [ticket/15583] Update session time in AJAX request only once a minute
PHPBB3-15583
2018-06-06 10:40:29 +02:00
Anssi Johansson
9068909051 [ticket/15683] Better error message when commit message has CRLF
When someone tries to do a pull request with incorrect line breaks in the
commit message, the error message as given by Travis is "Unexpected EOF
encountered". The error message should be clearer that CR/LF was the
problem. This change adds a separate check for CRLF line endings.

PHPBB3-15683
2018-06-05 22:20:19 +03:00
Anssi Johansson
5f243ad665 [ticket/15680] Point to 3.2 documentation
The old link pointed to 3.1 documentation

PHPBB3-15680
2018-06-05 21:29:47 +03:00
rxu
bd91b6be87 [ticket/15678] Fix PHP warning in filesystem.php
PHPBB3-15678
2018-06-01 22:51:53 +07:00
rxu
645ceb1bfe [ticket/15548] Fix dead link in ACP_COOKIE_SETTINGS_EXPLAIN language entry
PHPBB3-15548
2018-06-01 14:50:07 +02:00
Marc Alexander
7284bf5883 [ticket/15676] Use twig syntax
PHPBB3-15676
2018-05-31 22:26:17 +02:00
Marc Alexander
25a46ef4b3 [ticket/15676] Simplify link text and use privacy link in cookie notice
PHPBB3-15676
2018-05-31 22:15:36 +02:00
Marc Alexander
b5a79d9a9d Merge branch 'prep-release-3.2.3' into 3.2.x 2018-05-31 19:51:55 +02:00
Marc Alexander
680361e865 Merge pull request #5182 from marc1706/ticket/15604
[ticket/15604] Use HTTPS links for download SQL server drivers
2018-05-31 19:51:16 +02:00
Marc Alexander
c6a35237a2 [ticket/15676] Display privacy notice in footer & allow overriding U_PRIVACY
PHPBB3-15676
2018-05-31 09:31:33 +02:00
hubaishan
ba417ad915 [ticket/15613] Fix Notification dropdown said to be not RTL compliant
Fix Notification dropdown said to be not RTL compliant

PHPBB3-15613
2018-05-27 16:14:05 +03:00
Rubén Calvo
cc4a68f32a [ticket/15504] Fix warning message
PHPBB3-15504
2018-05-25 00:34:31 +02:00
Jakub Senko
04574c75a3 [ticket/15657] Add MCP queue events
PHPBB3-15657
2018-05-03 09:23:57 +02:00
Zoddo
f800bc09f9 [ticket/15656] Add "View post" link in the mod logs on the ACP
This link was added to the MCP view in GH-3870 (PHPBB3-9485) but I
completely forgot the ACP…

Consistency is back!

PHPBB3-15656
2018-05-01 16:32:45 +02:00
Zoddo
1f00f48e71 [ticket/13128] Remove deprecated Sphinx options
These configuration options are deprecated:
 * sql_query_info (since sphinx 2.2.2; used only by the "search" command
    which was removed; wiki need to be updated accordingly)
 * max_matches (since sphinx 2.2.3; should be set in the sphinx query)
 * charset_type (since sphinx 2.2.2; sphinx now supports only utf-8)
 * compat_sphinxql_magics (since sphinx 2.2.1)

PHPBB3-13128
2018-04-23 10:49:53 +02:00
Ioannis Batas
88a23ec40d [ticket/15638] Add word-break for overflowing.
PHPBB3-15638
2018-04-23 10:57:57 +03:00
kasimi
0aea8ecd83 [ticket/15637] Extract multi-line PHP event descriptions
PHPBB3-15637
2018-04-15 18:46:44 +02:00
Christian Schnegelberger
4bb57f9814 [ticket/15629] Add info to RECAPTCHA_LANG and change to en-GB
PHPBB3-15629
2018-04-14 11:44:12 +02:00
Christian Schnegelberger
ab8d328702 [ticket/15630] ACP_COOKIE_SETTINGS_EXPLAIN change <b> to <strong>
PHPBB3-15630
2018-04-14 11:41:02 +02:00
Christian Schnegelberger
71f2801d78 [ticket/15627] Reword the YES_ACCURATE_PM_BUTTON incl explaination
PHPBB3-15627
2018-04-11 19:24:46 +02:00
Daniel
c486634be8 [ticket/15611] Fix misaligned text in responsive user profile
Corrects misaligned header text when viewing a user profile in prosilver
mobile layout by force clearing the columns.

PHPBB3-15611
2018-04-03 13:56:50 +01:00
kasimi
02600626cc [ticket/15590] Add events core.acp_bbcodes_(modify_create|delete)_after
PHPBB3-15590
2018-03-16 12:47:19 +01:00
kasimi
aa9d24ad31 [ticket/15586] Added tests for adding modules the automatic way
PHPBB3-15586
2018-03-11 22:17:26 +01:00
kasimi
2d5fe90ed5 [ticket/15586] Fixed adding module the automatic way without specifying modes
PHPBB3-15586
2018-03-11 15:28:49 +01:00
kasimi
85eceeccbe [ticket/15583] Update session time in AJAX request only once a minute
PHPBB3-15583
2018-03-09 23:51:06 +01:00
191 changed files with 2992 additions and 1205 deletions

281
LICENSE Normal file
View File

@@ -0,0 +1,281 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS

View File

@@ -2,9 +2,9 @@
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
<!-- a few settings for the build -->
<property name="newversion" value="3.2.4-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" />
<property name="newversion" value="3.2.5-RC1" />
<property name="prevversion" value="3.2.4" />
<property name="olderversions" value="3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.2.0-a1, 3.2.0-a2, 3.2.0-b1, 3.2.0-b2, 3.2.0-RC1, 3.2.0-RC2, 3.2.0, 3.2.1, 3.2.2, 3.2.3" />
<!-- no configuration should be needed beyond this point -->
<property name="oldversions" value="${olderversions}, ${prevversion}" />

View File

@@ -33,7 +33,7 @@ class build_package
var $status_begun = false;
var $num_dots = 0;
function build_package($versions, $verbose = false)
function __construct($versions, $verbose = false)
{
$this->versions = $versions;
$this->verbose = $verbose;

Binary file not shown.

View File

@@ -147,6 +147,15 @@ then
quit $ERR_LENGTH;
fi
# Check for CR/LF line breaks
if grep -q $'\r$' "$1"
then
complain "The commit message uses CR/LF line breaks, which are not permitted." >&2
complain >&2
quit $ERR_EOF;
fi
lines=$(wc -l "$1" | awk '{ print $1; }');
expecting=header;
in_description=0;

View File

@@ -37,12 +37,6 @@
<!-- IF S_ATTACHMENT_SETTINGS -->
<!-- IF not S_THUMBNAIL_SUPPORT -->
<div class="errorbox">
<p>{L_NO_THUMBNAIL_SUPPORT}</p>
</div>
<!-- ENDIF -->
<form id="attachsettings" method="post" action="{U_ACTION}">
<!-- BEGIN options -->
<!-- IF options.S_LEGEND -->

View File

@@ -238,7 +238,7 @@
<form id="profile_fields" method="post" action="{U_ACTION}">
<fieldset class="quick">
<input class="text small" type="text" name="field_ident" /> <select name="field_type">{S_TYPE_OPTIONS}</select>
<select name="field_type">{S_TYPE_OPTIONS}</select>
<input class="button1" type="submit" name="submit" value="{L_CREATE_NEW_FIELD}" />
<input type="hidden" name="create" value="1" />
{S_FORM_TOKEN}

View File

@@ -840,6 +840,7 @@ table.zebra-table tbody tr:nth-child(odd) {
}
.row2 {
word-break: break-all;
background-color: #DCEBFE;
}

View File

@@ -935,9 +935,9 @@ phpbb.addAjaxCallback('alt_text', function() {
$anchor.each(function() {
var $this = $(this);
altText = $this.attr('data-alt-text');
$this.attr('data-alt-text', $this.text());
$this.attr('title', $.trim(altText));
$this.text(altText);
$this.attr('data-alt-text', $.trim($this.text()));
$this.attr('title', altText);
$this.children('span').text(altText);
});
});
@@ -1332,7 +1332,6 @@ phpbb.toggleDropdown = function() {
marginLeft: 0,
left: 0,
marginRight: 0,
right: 0,
maxWidth: (windowWidth - 4) + 'px'
});
@@ -1644,7 +1643,7 @@ phpbb.lazyLoadAvatars = function loadAvatars() {
});
};
$(window).load(phpbb.lazyLoadAvatars);
$(window).on('load', phpbb.lazyLoadAvatars);
/**
* Apply code editor to all textarea elements with data-bbcode attribute

View File

@@ -211,7 +211,7 @@ phpbb.plupload.updateHiddenData = function(row, attach, index) {
.attr('type', 'hidden')
.attr('name', 'attachment_data[' + index + '][' + key + ']')
.attr('value', attach[key]);
$('textarea', row).after(input);
$(row).append(input);
}
};

File diff suppressed because one or more lines are too long

View File

@@ -71,9 +71,12 @@ require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx);
register_compatibility_globals();
/** @var \phpbb\config\config $config */
$config = $phpbb_container->get('config');
/** @var \phpbb\language\language $language */
$language = $phpbb_container->get('language');
$language->set_default_language($phpbb_container->get('config')['default_lang']);
$language->set_default_language($config['default_lang']);
$language->add_lang(array('common', 'acp/common', 'cli'));
/* @var $user \phpbb\user */

453
phpBB/composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -3,6 +3,7 @@ services:
class: phpbb\avatar\manager
arguments:
- '@config'
- '@dispatcher'
- '@avatar.driver_collection'
# ----- Avatar drivers -----

View File

@@ -33,13 +33,6 @@ services:
tags:
- { name: install_obtain_data, order: 40 }
installer.obtain_data.obtain_imagick_path:
class: phpbb\install\module\obtain_data\task\obtain_imagick_path
arguments:
- '@installer.helper.config'
tags:
- { name: install_obtain_data, order: 60 }
installer.obtain_data.obtain_server_data:
class: phpbb\install\module\obtain_data\task\obtain_server_data
arguments:

View File

@@ -50,6 +50,11 @@
<ol>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#v324">Changes since 3.2.4</a></li>
<li><a href="#v324rc1">Changes since 3.2.4-RC1</a></li>
<li><a href="#v323">Changes since 3.2.3</a></li>
<li><a href="#v323rc2">Changes since 3.2.3-RC2</a></li>
<li><a href="#v323rc1">Changes since 3.2.3-RC1</a></li>
<li><a href="#v322">Changes since 3.2.2</a></li>
<li><a href="#v321">Changes since 3.2.1</a></li>
<li><a href="#v320">Changes since 3.2.0</a></li>
@@ -129,6 +134,183 @@
<div class="inner">
<div class="content">
<a name="v324"></a><h3>Changes since 3.2.4</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15665">PHPBB3-15665</a>] - MSSQL implementation crashes when upload directory &gt; 2GB</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15858">PHPBB3-15858</a>] - Unapproved User(s) appearing as Guest in Team Page.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15867">PHPBB3-15867</a>] - Contact form without class</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15871">PHPBB3-15871</a>] - PHP 7.1+ warning in ACP extensions module</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15875">PHPBB3-15875</a>] - BBCode parsing error (PHP fatal error)</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15881">PHPBB3-15881</a>] - Login keys are not reset after password update in some cases</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15542">PHPBB3-15542</a>] - Some JS files being called without assets version</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15859">PHPBB3-15859</a>] - Modify the topic ordering if needed</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15863">PHPBB3-15863</a>] - Modify the topic sort ordering from the beginning</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15870">PHPBB3-15870</a>] - Modify the forum ID to handle the correct display of viewtopic if needed</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15872">PHPBB3-15872</a>] - Add show_user_activity to display_user_activity_modify_actives</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15873">PHPBB3-15873</a>] - Event to add/modify MCP report details template data.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15878">PHPBB3-15878</a>] - Add attachment to core.ucp_pm_view_message</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15879">PHPBB3-15879</a>] - Modify attachment's poster_id for get_submitted_attachment_data</li>
</ul>
<a name="v324rc1"></a><h3>Changes since 3.2.4-RC1</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15860">PHPBB3-15860</a>] - Backups filenames arent saved in the expected format</li>
</ul>
<h4>Security Issue</h4>
<ul>
<li>[SECURITY-227] - Phar deserialization in ACP leads to Remote Code Execution</li>
</ul>
<a name="v323"></a><h3>Changes since 3.2.3</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11453">PHPBB3-11453</a>] - phpbb_notification_method_email unnecessarily loads data of banned users.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12430">PHPBB3-12430</a>] - hilit not removed from URL after search</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13043">PHPBB3-13043</a>] - Fixing HTML5 conformance</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13128">PHPBB3-13128</a>] - sql_query_info, max_matches and charset_type removed from sphinxsearch 2.2.2-beta</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14812">PHPBB3-14812</a>] - No shadow pruning with system cron enabled</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15329">PHPBB3-15329</a>] - View/Edit drafts contain underlying HTML coding</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15420">PHPBB3-15420</a>] - Quote Notification Sent for Edited Posts by Non Author</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15494">PHPBB3-15494</a>] - Users can only be removed once from newly registered users</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15507">PHPBB3-15507</a>] - PHP 7.2 Warning</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15544">PHPBB3-15544</a>] - Migrations don't delete modules in every case</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15552">PHPBB3-15552</a>] - Private Message (PM) &quot;find a member&quot; button &quot;select marked&quot; not working</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15557">PHPBB3-15557</a>] - Used composer version has bug with PHP 7.2</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15583">PHPBB3-15583</a>] - Updating session time in AJAX request ignores 60 seconds check</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15593">PHPBB3-15593</a>] - Disabling &quot;print view&quot; (permission or private messages settings) actually doesn't block the feature</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15600">PHPBB3-15600</a>] - Ban reasons are not escaped in mcp_ban.html template</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15604">PHPBB3-15604</a>] - Appveyor builds unable to download and unpack MSSQL drivers</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15606">PHPBB3-15606</a>] - Hide/Reveal 'Profile' Link According to Permission Setting</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15607">PHPBB3-15607</a>] - Board's cookies not deleted on disabled board</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15611">PHPBB3-15611</a>] - Prosilver mobile layout: Misaligned text in user profile</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15612">PHPBB3-15612</a>] - PHP warning with MSSQL on PHP 7.2</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15616">PHPBB3-15616</a>] - Jumpbox doesn't display in the login forum page (access to forum with password)</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15618">PHPBB3-15618</a>] - Team page link always appears when you are logout (anonymous), even if you don't have the permission (unlike memberlist link)</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15619">PHPBB3-15619</a>] - Legends of custom profile fields could be hidden in memberlist, when viewing an user group</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15620">PHPBB3-15620</a>] - Avatar gallery can be unusable on multilingual boards, unless people use the board default language</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15622">PHPBB3-15622</a>] - Quoting messages (while viewing one, not inside post editor) can return a wrong chain</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15637">PHPBB3-15637</a>] - Event list only has first line of PHP event description</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15651">PHPBB3-15651</a>] - Migration 'if' conditions only support booleans</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15659">PHPBB3-15659</a>] - retrieve_block_vars generates warnings in PHP 7.2</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15666">PHPBB3-15666</a>] - Language system is not fully supported in Twig</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15670">PHPBB3-15670</a>] - Group forum permission: Can see forum gives NO SQL ERROR</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15673">PHPBB3-15673</a>] - Duplicated links for (ACP,MCP,FAQ) in QuickLinks and main nav bar</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15680">PHPBB3-15680</a>] - INSTALL.html should point to 3.2 documentation instead of 3.1</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15693">PHPBB3-15693</a>] - gen_rand_string() don't return a string with the expected length</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15695">PHPBB3-15695</a>] - gen_rand_string can return less characters than expected</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15700">PHPBB3-15700</a>] - {T_THEME_LANG_NAME} template variable could be wrong when log off</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15705">PHPBB3-15705</a>] - phpbbcli language parse error in PHP &lt;= 5.5.38</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15716">PHPBB3-15716</a>] - OAuth link information remains after deleting a user, causes fatal exception</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15717">PHPBB3-15717</a>] - Old email address missing from log when user changes email address</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15723">PHPBB3-15723</a>] - gen_rand_string() return wrong number or characters sometimes</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15733">PHPBB3-15733</a>] - Remove unused variables related to deprecated flood control</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15742">PHPBB3-15742</a>] - Remove get_magic_quotes_gpc from type_cast_helper</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15751">PHPBB3-15751</a>] - Warning when update with CLI</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15755">PHPBB3-15755</a>] - Broken events in /phpbb/attachment/delete.php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15758">PHPBB3-15758</a>] - String INSECURE_REDIRECT is not shown translated</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15770">PHPBB3-15770</a>] - Sphinx assertion fails on unread posts when exceeding an offset of 999</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15788">PHPBB3-15788</a>] - Return button from privacy policy shows wrong text</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15817">PHPBB3-15817</a>] - Unable to install in Oracle 11R2 Express</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15824">PHPBB3-15824</a>] - UI test framework Broken for extensions</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15830">PHPBB3-15830</a>] - 'core.modify_notification_message' event is useless</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15849">PHPBB3-15849</a>] - PHP 7.2 compat for bitfield class</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15852">PHPBB3-15852</a>] - IPv6 address not working in Whois</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10432">PHPBB3-10432</a>] - Don't require username when user forgets password</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11500">PHPBB3-11500</a>] - on Custom profile fields the field_ident field lacks name</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12739">PHPBB3-12739</a>] - Make the font color palette in ACP same as Prosilver</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14656">PHPBB3-14656</a>] - Add a list-unsubscribe header with the unsubscribe URL</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14990">PHPBB3-14990</a>] - Add core event to the Twig environment</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15554">PHPBB3-15554</a>] - Simple footer after load js</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15579">PHPBB3-15579</a>] - Add core.ucp_main_front_modify_sql and core.ucp_main_front_modify_template_vars</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15590">PHPBB3-15590</a>] - Add PHP events after adding, updating and deleting BBCodes</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15628">PHPBB3-15628</a>] - newtopic_notify.txt does not have directly link to the new topic</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15638">PHPBB3-15638</a>] - Add word-break for overflowing.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15642">PHPBB3-15642</a>] - String to be used in HTML element contains &quot;&gt;&quot;</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15656">PHPBB3-15656</a>] - Add &quot;View post&quot; link in the mod logs on the ACP</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15661">PHPBB3-15661</a>] - Add core.viewtopic_modify_poll_ajax_data</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15662">PHPBB3-15662</a>] - Add $this-&gt;template to core.modify_notification_message</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15668">PHPBB3-15668</a>] - Change JQuery .load(fn) event to .on('load',fn)</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15674">PHPBB3-15674</a>] - Edit language lines in file en\acp\profile.php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15683">PHPBB3-15683</a>] - Better error message when commit message has CRLF</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15696">PHPBB3-15696</a>] - 'if' module tool should support calling other tools</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15706">PHPBB3-15706</a>] - [Template] - mcp_post_report_buttons_top_*</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15719">PHPBB3-15719</a>] - Add core event on viewtopic post_list query for query modification</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15726">PHPBB3-15726</a>] - Implement selective purge in APCu cache driver</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15735">PHPBB3-15735</a>] - [Template] - *_content_after (for posts)</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15737">PHPBB3-15737</a>] - [PHP] - Add $user_rows to core.delete_user_before</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15762">PHPBB3-15762</a>] - Topics per page Conformity</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15768">PHPBB3-15768</a>] - Add a license to a repository</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15771">PHPBB3-15771</a>] - Q&amp;A configuration instructions not optilmal</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15799">PHPBB3-15799</a>] - Find correct poll for voting animation</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15803">PHPBB3-15803</a>] - Add core events on ucp_pm_compose for additional message list actions</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15819">PHPBB3-15819</a>] - Add core event to functions_posting to modify notifications</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15825">PHPBB3-15825</a>] - Add core.acp_manage_forums_move_content_sql_before</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15826">PHPBB3-15826</a>] - Add core.mcp_main_fork_sql_after</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15827">PHPBB3-15827</a>] - [Template] - Add *_username_{prepend/append} template events</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15831">PHPBB3-15831</a>] - ACP signature update should trigger event</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15832">PHPBB3-15832</a>] - ACP avatar update event</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15833">PHPBB3-15833</a>] - ACP and UCP avatar delete events</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15837">PHPBB3-15837</a>] - Add core.ucp_register_welcome_email_before</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15838">PHPBB3-15838</a>] - Add core.ucp_register_register_after</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15839">PHPBB3-15839</a>] - Add core.ucp_login_link_template_after</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15841">PHPBB3-15841</a>] - Allow postrow pm link to be modified by event</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15848">PHPBB3-15848</a>] - Up-version plupload to v2.3.6 to fix image rotation issues</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15850">PHPBB3-15850</a>] - Use standard SQL cache for notification types</li>
</ul>
<h4>New Feature</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15792">PHPBB3-15792</a>] - [Template] - confirm_delete_body_delete_reason_before</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15596">PHPBB3-15596</a>] - Migrate from data-vocabulary.org to schema.org</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15621">PHPBB3-15621</a>] - Some graphical inconsistencies with colored users groups in posting, UCP and MCP</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15701">PHPBB3-15701</a>] - {SIGNATURE} variable is added in mcp_post.html but not defined in MCP</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15809">PHPBB3-15809</a>] - Allow events with twig syntax</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15857">PHPBB3-15857</a>] - Add rubencm to CREDITS.txt</li>
</ul>
<a name="v323rc2"></a><h3>Changes since 3.2.3-RC2</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15504">PHPBB3-15504</a>] - phpBB Debug warning in 3.2.2</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15740">PHPBB3-15740</a>] - Terms &amp; Privavy hardcoded</li>
</ul>
<a name="v323rc1"></a><h3>Changes since 3.2.3-RC1</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11847">PHPBB3-11847</a>] - auth_provider_oauth migration must depend on at least one migration that ensures the module tables exist as expected</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15548">PHPBB3-15548</a>] - Dead link in ACP_COOKIE_SETTINGS_EXPLAIN language entry</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15586">PHPBB3-15586</a>] - When creating a module without the modes array a missing 'module_langname' index is accessed</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15613">PHPBB3-15613</a>] - Notification dropdown said to be not RTL compliant</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15627">PHPBB3-15627</a>] - Improve wording of YES_ACCURATE_PM_BUTTON + EXPLAIN</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15678">PHPBB3-15678</a>] - PHP warning in filesystem.php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15731">PHPBB3-15731</a>] - Fix acp_search language parameters when deleting index</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15630">PHPBB3-15630</a>] - Change &lt;b&gt; to &lt;strong&gt; </li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15633">PHPBB3-15633</a>] - Remove extra space in GROUP_MAX_RECIPIENTS_EXPLAIN</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15657">PHPBB3-15657</a>] - Add core.mcp_queue_get_posts_for_posts_query_before and core.mcp_queue_get_posts_modify_post_row</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15676">PHPBB3-15676</a>] - Display privacy policy &amp; terms of use more prominently</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15677">PHPBB3-15677</a>] - Updated dependencies for 3.2.3-RC2</li>
</ul>
<a name="v322"></a><h3>Changes since 3.2.2</h3>
<h4>Bug</h4>
<ul>

View File

@@ -29,6 +29,7 @@ phpBB Developers: bantu (Andreas Fischer)
Hanakin (Michael Miday)
MichaelC (Michael Cullum)
Nicofuma (Tristan Darricau)
rubencm (Rubén Calvo)
For a list of phpBB Team members, please see:
http://www.phpbb.com/about/team/

View File

@@ -44,7 +44,7 @@
<p>
A basic overview of running phpBB can be found in the accompanying <a href="README.html">README</a> file.
Please ensure you read that document in addition to this! For more detailed information on using, installing,
updating and converting phpBB you should read <a href="https://www.phpbb.com/support/docs/en/3.1/ug/">the documentation</a>
updating and converting phpBB you should read <a href="https://www.phpbb.com/support/docs/en/3.2/ug/">the documentation</a>
available online.
</p>
</div>
@@ -159,7 +159,6 @@
<li>zlib Compression support</li>
<li>Remote FTP support</li>
<li>XML support</li>
<li>ImageMagick support</li>
<li>GD Support</li>
</ul>
</li>

View File

@@ -652,6 +652,13 @@ attachment_file_prepend
* Since: 3.1.6-RC1
* Purpose: Add custom attachment types displaying to the top of attachment block.
confirm_delete_body_delete_reason_before
===
* Locations:
+ styles/prosilver/template/confirm_delete_body.html
* Since: 3.2.4-RC1
* Purpose: Add custom text to the confirmation of a post that is deleted.
forumlist_body_category_header_after
===
* Locations:
@@ -743,6 +750,20 @@ forumlist_body_last_post_title_prepend
* Since: 3.1.0-a1
* Purpose: Add content before the post title of the latest post in a forum on the forum list.
forumlist_body_last_poster_username_append
===
* Locations:
+ styles/prosilver/template/forumlist_body.html
* Since: 3.2.4-RC1
* Purpose: Append information to last poster username of member
forumlist_body_last_poster_username_prepend
===
* Locations:
+ styles/prosilver/template/forumlist_body.html
* Since: 3.2.4-RC1
* Purpose: Prepend information to last poster username of member
forumlist_body_subforum_link_append
===
* Locations:
@@ -974,6 +995,20 @@ mcp_post_additional_options
* Since: 3.1.5-RC1
* Purpose: Add content within the list of post moderation actions
mcp_post_report_buttons_top_after
===
* Locations:
+ styles/prosilver/template/mcp_post.html
* Since: 3.2.4-RC1
* Purpose: Add content after report buttons
mcp_post_report_buttons_top_before
===
* Locations:
+ styles/prosilver/template/mcp_post.html
* Since: 3.2.4-RC1
* Purpose: Add content before report buttons
mcp_topic_options_after
===
* Locations:
@@ -1251,6 +1286,20 @@ memberlist_view_user_statistics_before
* Since: 3.1.0-a1
* Purpose: Add entries before the user statistics part of any user profile
memberlist_view_username_append
===
* Locations:
+ styles/prosilver/template/memberlist_view.html
* Since: 3.2.4-RC1
* Purpose: Append information to username of member
memberlist_view_username_prepend
===
* Locations:
+ styles/prosilver/template/memberlist_view.html
* Since: 3.2.4-RC1
* Purpose: Prepend information to username of member
memberlist_view_zebra_after
===
* Locations:
@@ -1707,6 +1756,13 @@ posting_poll_body_options_after
* Since: 3.1.4-RC1
* Purpose: Add content after the poll options on creating a poll
posting_preview_content_after
===
* Locations:
+ styles/prosilver/template/posting_preview.html
* Since: 3.2.4-RC1
* Purpose: Add content after the message content preview
posting_preview_poll_after
===
* Locations:
@@ -1714,6 +1770,13 @@ posting_preview_poll_after
* Since: 3.1.7-RC1
* Purpose: Add content after the poll preview block
posting_topic_review_row_content_after
===
* Locations:
+ styles/prosilver/template/posting_topic_review.html
* Since: 3.2.4-RC1
* Purpose: Add content after the message content in topic review
posting_topic_review_row_post_details_after
===
* Locations:
@@ -1875,6 +1938,13 @@ search_body_search_query_prepend
* Since: 3.1.7-RC1
* Purpose: Put content at the top of the search query fields set
search_results_content_after
===
* Locations:
+ styles/prosilver/template/search_results.html
* Since: 3.2.4-RC1
* Purpose: Add content after the message content in search results
search_results_header_after
===
* Locations:
@@ -1889,6 +1959,20 @@ search_results_header_before
* Since: 3.1.4-RC1
* Purpose: Add content before the header of the search results.
search_results_last_post_author_username_append
===
* Locations:
+ styles/prosilver/template/search_results.html
* Since: 3.2.4-RC1
* Purpose: Append information to last post author username of member
search_results_last_post_author_username_prepend
===
* Locations:
+ styles/prosilver/template/search_results.html
* Since: 3.2.4-RC1
* Purpose: Prepend information to last post author username of member
search_results_post_after
===
* Locations:
@@ -1896,6 +1980,20 @@ search_results_post_after
* Since: 3.1.0-b3
* Purpose: Add data after search result posts
search_results_post_author_username_append
===
* Locations:
+ styles/prosilver/template/search_results.html
* Since: 3.2.4-RC1
* Purpose: Append information to post author username of member
search_results_post_author_username_prepend
===
* Locations:
+ styles/prosilver/template/search_results.html
* Since: 3.2.4-RC1
* Purpose: Prepend information to post author username of member
search_results_post_before
===
* Locations:
@@ -1931,6 +2029,20 @@ search_results_topic_after
* Since: 3.1.0-b4
* Purpose: Add data after search result topics
search_results_topic_author_username_append
===
* Locations:
+ styles/prosilver/template/search_results.html
* Since: 3.2.4-RC1
* Purpose: Append information to topic author username of member
search_results_topic_author_username_prepend
===
* Locations:
+ styles/prosilver/template/search_results.html
* Since: 3.2.4-RC1
* Purpose: Prepend information to topic author username of member
search_results_topic_before
===
* Locations:
@@ -1950,6 +2062,13 @@ simple_footer_after
* Locations:
+ styles/prosilver/template/simple_footer.html
* Since: 3.1.0-a1
* Purpose: Add content prior to the scripts of the simple footer
simple_footer_body_after
===
* Locations:
+ styles/prosilver/template/simple_footer.html
* Since: 3.2.4-RC1
* Purpose: Add content directly prior to the `</body>` tag of the simple footer
simple_header_body_before
@@ -2343,6 +2462,34 @@ ucp_friend_list_after
* Since: 3.1.0-a4
* Purpose: Add optional elements after list of friends in UCP
viewforum_body_last_post_author_username_append
===
* Locations:
+ styles/prosilver/template/viewforum_body.html
* Since: 3.2.4-RC1
* Purpose: Append information to last post author username of member
viewforum_body_last_post_author_username_prepend
===
* Locations:
+ styles/prosilver/template/viewforum_body.html
* Since: 3.2.4-RC1
* Purpose: Prepend information to last post author username of member
viewforum_body_topic_author_username_append
===
* Locations:
+ styles/prosilver/template/viewforum_body.html
* Since: 3.2.4-RC1
* Purpose: Append information to topic author username of member
viewforum_body_topic_author_username_prepend
===
* Locations:
+ styles/prosilver/template/viewforum_body.html
* Since: 3.2.4-RC1
* Purpose: Prepend information to topic author username of member
viewforum_body_topic_row_after
===
* Locations:
@@ -2476,6 +2623,20 @@ viewforum_forum_title_before
* Since: 3.1.5-RC1
* Purpose: Add content directly before the forum title on the View forum screen
viewonline_body_username_append
===
* Locations:
+ styles/prosilver/template/viewonline_body.html
* Since: 3.2.4-RC1
* Purpose: Append information to username of member
viewonline_body_username_prepend
===
* Locations:
+ styles/prosilver/template/viewonline_body.html
* Since: 3.2.4-RC1
* Purpose: Prepend information to username of member
viewtopic_print_head_append
===
* Locations:
@@ -2653,6 +2814,13 @@ viewtopic_body_postrow_back2top_prepend
* Since: 3.1.8-RC1
* Purpose: Add content to the post's bottom directly before the back to top link
viewtopic_body_postrow_content_after
===
* Locations:
+ styles/prosilver/template/viewtopic_body.html
* Since: 3.2.4-RC1
* Purpose: Add content after the message content in topics views
viewtopic_body_postrow_custom_fields_after
===
* Locations:

View File

@@ -29,7 +29,6 @@ source source_phpbb_{SPHINX_ID}_main
AND p.post_id >= $start AND p.post_id <= $end
sql_query_post =
sql_query_post_index = UPDATE phpbb_sphinx SET max_doc_id = $maxid WHERE counter_id = 1
sql_query_info = SELECT * FROM phpbb_posts WHERE post_id = $id
sql_attr_uint = forum_id
sql_attr_uint = topic_id
sql_attr_uint = poster_id
@@ -72,7 +71,6 @@ index index_phpbb_{SPHINX_ID}_main
morphology = none
stopwords =
min_word_len = 2
charset_type = utf-8
charset_table = U+FF10..U+FF19->0..9, 0..9, U+FF41..U+FF5A->a..z, U+FF21..U+FF3A->a..z, A..Z->a..z, a..z, U+0149, U+017F, U+0138, U+00DF, U+00FF, U+00C0..U+00D6->U+00E0..U+00F6, U+00E0..U+00F6, U+00D8..U+00DE->U+00F8..U+00FE, U+00F8..U+00FE, U+0100->U+0101, U+0101, U+0102->U+0103, U+0103, U+0104->U+0105, U+0105, U+0106->U+0107, U+0107, U+0108->U+0109, U+0109, U+010A->U+010B, U+010B, U+010C->U+010D, U+010D, U+010E->U+010F, U+010F, U+0110->U+0111, U+0111, U+0112->U+0113, U+0113, U+0114->U+0115, U+0115, U+0116->U+0117, U+0117, U+0118->U+0119, U+0119, U+011A->U+011B, U+011B, U+011C->U+011D, U+011D, U+011E->U+011F, U+011F, U+0130->U+0131, U+0131, U+0132->U+0133, U+0133, U+0134->U+0135, U+0135, U+0136->U+0137, U+0137, U+0139->U+013A, U+013A, U+013B->U+013C, U+013C, U+013D->U+013E, U+013E, U+013F->U+0140, U+0140, U+0141->U+0142, U+0142, U+0143->U+0144, U+0144, U+0145->U+0146, U+0146, U+0147->U+0148, U+0148, U+014A->U+014B, U+014B, U+014C->U+014D, U+014D, U+014E->U+014F, U+014F, U+0150->U+0151, U+0151, U+0152->U+0153, U+0153, U+0154->U+0155, U+0155, U+0156->U+0157, U+0157, U+0158->U+0159, U+0159, U+015A->U+015B, U+015B, U+015C->U+015D, U+015D, U+015E->U+015F, U+015F, U+0160->U+0161, U+0161, U+0162->U+0163, U+0163, U+0164->U+0165, U+0165, U+0166->U+0167, U+0167, U+0168->U+0169, U+0169, U+016A->U+016B, U+016B, U+016C->U+016D, U+016D, U+016E->U+016F, U+016F, U+0170->U+0171, U+0171, U+0172->U+0173, U+0173, U+0174->U+0175, U+0175, U+0176->U+0177, U+0177, U+0178->U+00FF, U+00FF, U+0179->U+017A, U+017A, U+017B->U+017C, U+017C, U+017D->U+017E, U+017E, U+0410..U+042F->U+0430..U+044F, U+0430..U+044F, U+4E00..U+9FFF
min_prefix_len = 0
min_infix_len = 0
@@ -88,13 +86,11 @@ indexer
}
searchd
{
compat_sphinxql_magics = 0
listen = localhost:9312
log = {DATA_PATH}/log/searchd.log
query_log = {DATA_PATH}/log/sphinx-query.log
read_timeout = 5
max_children = 30
pid_file = {DATA_PATH}/searchd.pid
max_matches = 20000
binlog_path = {DATA_PATH}
}

View File

@@ -164,7 +164,6 @@ class acp_attachments
'img_create_thumbnail' => array('lang' => 'CREATE_THUMBNAIL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'img_max_thumb_width' => array('lang' => 'MAX_THUMB_WIDTH', 'validate' => 'int:0:999999999999999', 'type' => 'number:0:999999999999999', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
'img_min_thumb_filesize' => array('lang' => 'MIN_THUMB_FILESIZE', 'validate' => 'int:0:999999999999999', 'type' => 'number:0:999999999999999', 'explain' => true, 'append' => ' ' . $user->lang['BYTES']),
'img_imagick' => array('lang' => 'IMAGICK_PATH', 'validate' => 'absolute_path', 'type' => 'text:20:200', 'explain' => true, 'append' => '&nbsp;&nbsp;<span>[ <a href="' . $this->u_action . '&amp;action=imgmagick">' . $user->lang['SEARCH_IMAGICK'] . '</a> ]</span>'),
'img_max' => array('lang' => 'MAX_IMAGE_SIZE', 'validate' => 'int:0:9999', 'type' => 'dimension:0:9999', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
'img_link' => array('lang' => 'IMAGE_LINK_SIZE', 'validate' => 'int:0:9999', 'type' => 'dimension:0:9999', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
)
@@ -234,38 +233,6 @@ class acp_attachments
$template->assign_var('S_ATTACHMENT_SETTINGS', true);
if ($action == 'imgmagick')
{
$this->new_config['img_imagick'] = $this->search_imagemagick();
}
// We strip eventually manual added convert program, we only want the patch
if ($this->new_config['img_imagick'])
{
// Change path separator
$this->new_config['img_imagick'] = str_replace('\\', '/', $this->new_config['img_imagick']);
$this->new_config['img_imagick'] = str_replace(array('convert', '.exe'), array('', ''), $this->new_config['img_imagick']);
// Check for trailing slash
if (substr($this->new_config['img_imagick'], -1) !== '/')
{
$this->new_config['img_imagick'] .= '/';
}
}
$supported_types = get_supported_image_types();
// Check Thumbnail Support
if (!$this->new_config['img_imagick'] && (!isset($supported_types['format']) || !count($supported_types['format'])))
{
$this->new_config['img_create_thumbnail'] = 0;
}
$template->assign_vars(array(
'U_SEARCH_IMAGICK' => $this->u_action . '&amp;action=imgmagick',
'S_THUMBNAIL_SUPPORT' => (!$this->new_config['img_imagick'] && (!isset($supported_types['format']) || !count($supported_types['format']))) ? false : true)
);
// Secure Download Options - Same procedure as with banning
$allow_deny = ($this->new_config['secure_allow_deny']) ? 'ALLOWED' : 'DISALLOWED';
@@ -1270,7 +1237,7 @@ class acp_attachments
$row['extension'] = strtolower(trim((string) $row['extension']));
$comment = ($row['attach_comment'] && !$row['in_message']) ? str_replace(array("\n", "\r"), array('<br />', "\n"), $row['attach_comment']) : '';
$display_cat = $extensions[$row['extension']]['display_cat'];
$display_cat = isset($extensions[$row['extension']]['display_cat']) ? $extensions[$row['extension']]['display_cat'] : ATTACHMENT_CATEGORY_NONE;
$l_downloaded_viewed = ($display_cat == ATTACHMENT_CATEGORY_NONE) ? 'DOWNLOAD_COUNTS' : 'VIEWED_COUNTS';
$template->assign_block_vars('attachments', array(
@@ -1495,47 +1462,6 @@ class acp_attachments
return $group_select;
}
/**
* Search Imagick
*/
function search_imagemagick()
{
$imagick = '';
$exe = ((defined('PHP_OS')) && (preg_match('#^win#i', PHP_OS))) ? '.exe' : '';
$magic_home = getenv('MAGICK_HOME');
if (empty($magic_home))
{
$locations = array('C:/WINDOWS/', 'C:/WINNT/', 'C:/WINDOWS/SYSTEM/', 'C:/WINNT/SYSTEM/', 'C:/WINDOWS/SYSTEM32/', 'C:/WINNT/SYSTEM32/', '/usr/bin/', '/usr/sbin/', '/usr/local/bin/', '/usr/local/sbin/', '/opt/', '/usr/imagemagick/', '/usr/bin/imagemagick/');
$path_locations = str_replace('\\', '/', (explode(($exe) ? ';' : ':', getenv('PATH'))));
$locations = array_merge($path_locations, $locations);
foreach ($locations as $location)
{
// The path might not end properly, fudge it
if (substr($location, -1) !== '/')
{
$location .= '/';
}
if (@file_exists($location) && @is_readable($location . 'mogrify' . $exe) && @filesize($location . 'mogrify' . $exe) > 3000)
{
$imagick = str_replace('\\', '/', $location);
continue;
}
}
}
else
{
$imagick = str_replace('\\', '/', $magic_home);
}
return $imagick;
}
/**
* Test Settings
*/

View File

@@ -295,6 +295,22 @@ class acp_bbcodes
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, $log_action, false, array($data['bbcode_tag']));
/**
* Event after a BBCode has been added or updated
*
* @event core.acp_bbcodes_modify_create_after
* @var string action Type of the action: modify|create
* @var int bbcode_id The id of the added or updated bbcode
* @var array sql_ary Array with bbcode data (read only)
* @since 3.2.4-RC1
*/
$vars = array(
'action',
'bbcode_id',
'sql_ary',
);
extract($phpbb_dispatcher->trigger_event('core.acp_bbcodes_modify_create_after', compact($vars)));
trigger_error($user->lang[$lang] . adm_back_link($this->u_action));
}
else
@@ -325,10 +341,28 @@ class acp_bbcodes
{
if (confirm_box(true))
{
$bbcode_tag = $row['bbcode_tag'];
$db->sql_query('DELETE FROM ' . BBCODES_TABLE . " WHERE bbcode_id = $bbcode_id");
$cache->destroy('sql', BBCODES_TABLE);
$phpbb_container->get('text_formatter.cache')->invalidate();
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_BBCODE_DELETE', false, array($row['bbcode_tag']));
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_BBCODE_DELETE', false, array($bbcode_tag));
/**
* Event after a BBCode has been deleted
*
* @event core.acp_bbcodes_delete_after
* @var string action Type of the action: delete
* @var int bbcode_id The id of the deleted bbcode
* @var string bbcode_tag The tag of the deleted bbcode
* @since 3.2.4-RC1
*/
$vars = array(
'action',
'bbcode_id',
'bbcode_tag',
);
extract($phpbb_dispatcher->trigger_event('core.acp_bbcodes_delete_after', compact($vars)));
if ($request->is_ajax())
{

View File

@@ -203,7 +203,7 @@ class acp_database
$file = $request->variable('file', '');
$download = $request->variable('download', '');
if (!preg_match('#^backup_\d{10,}_[a-z\d]{16}\.(sql(?:\.(?:gz|bz2))?)$#', $file, $matches))
if (!preg_match('#^backup_\d{10,}_(?:[a-z\d]{16}|[a-z\d]{32})\.(sql(?:\.(?:gz|bz2))?)$#i', $file, $matches))
{
trigger_error($user->lang['BACKUP_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
}
@@ -402,7 +402,7 @@ class acp_database
{
while (($file = readdir($dh)) !== false)
{
if (preg_match('#^backup_(\d{10,})_[a-z\d]{16}\.(sql(?:\.(?:gz|bz2))?)$#', $file, $matches))
if (preg_match('#^backup_(\d{10,})_(?:[a-z\d]{16}|[a-z\d]{32})\.(sql(?:\.(?:gz|bz2))?)$#i', $file, $matches))
{
if (in_array($matches[2], $methods))
{

View File

@@ -35,11 +35,13 @@ class acp_extensions
private $request;
private $phpbb_dispatcher;
private $ext_manager;
private $phpbb_container;
private $php_ini;
function main()
{
// 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, $phpbb_root_path, $phpbb_log, $phpbb_dispatcher, $phpbb_container;
$this->config = $config;
$this->template = $template;
@@ -48,6 +50,8 @@ class acp_extensions
$this->log = $phpbb_log;
$this->phpbb_dispatcher = $phpbb_dispatcher;
$this->ext_manager = $phpbb_extension_manager;
$this->phpbb_container = $phpbb_container;
$this->php_ini = $this->phpbb_container->get('php_ini');
$this->user->add_lang(array('install', 'acp/extensions', 'migrator'));
@@ -57,7 +61,7 @@ class acp_extensions
$ext_name = $this->request->variable('ext_name', '');
// What is a safe limit of execution time? Half the max execution time should be safe.
$safe_time_limit = (ini_get('max_execution_time') / 2);
$safe_time_limit = ($this->php_ini->getNumeric('max_execution_time') / 2);
$start_time = time();
// Cancel action

View File

@@ -1012,7 +1012,7 @@ class acp_forums
}
$range_test_ary = array(
array('lang' => 'FORUM_TOPICS_PAGE', 'value' => $forum_data_ary['forum_topics_per_page'], 'column_type' => 'TINT:0'),
array('lang' => 'FORUM_TOPICS_PAGE', 'value' => $forum_data_ary['forum_topics_per_page'], 'column_type' => 'USINT:0'),
);
if (!empty($forum_data_ary['forum_image']) && !file_exists($phpbb_root_path . $forum_data_ary['forum_image']))
@@ -1541,6 +1541,16 @@ class acp_forums
$table_ary = array(LOG_TABLE, POSTS_TABLE, TOPICS_TABLE, DRAFTS_TABLE, TOPICS_TRACK_TABLE);
/**
* Perform additional actions before move forum content
*
* @event core.acp_manage_forums_move_content_sql_before
* @var array table_ary Array of tables from which forum_id will be updated
* @since 3.2.4-RC1
*/
$vars = array('table_ary');
extract($phpbb_dispatcher->trigger_event('core.acp_manage_forums_move_content_sql_before', compact($vars)));
foreach ($table_ary as $table)
{
$sql = "UPDATE $table

View File

@@ -24,7 +24,7 @@ class acp_inactive
var $u_action;
var $p_master;
function acp_inactive(&$p_master)
function __construct(&$p_master)
{
$this->p_master = &$p_master;
}

View File

@@ -151,7 +151,7 @@ class acp_logs
{
$data = array();
$checks = array('viewtopic', 'viewlogs', 'viewforum');
$checks = array('viewpost', 'viewtopic', 'viewlogs', 'viewforum');
foreach ($checks as $check)
{
if (isset($row[$check]) && $row[$check])

View File

@@ -349,7 +349,7 @@ class acp_search
$totaltime = microtime(true) - $starttime;
$rows_per_second = $row_count / $totaltime;
meta_refresh(1, append_sid($this->u_action . '&amp;action=delete&amp;skip_rows=' . $post_counter . '&amp;hash=' . generate_link_hash('acp_search')));
trigger_error($user->lang('SEARCH_INDEX_DELETE_REDIRECT', (int) $row_count, $post_counter, $rows_per_second));
trigger_error($user->lang('SEARCH_INDEX_DELETE_REDIRECT', (int) $row_count, $post_counter) . $user->lang('SEARCH_INDEX_DELETE_REDIRECT_RATE', $rows_per_second));
}
}

View File

@@ -24,7 +24,7 @@ class acp_users
var $u_action;
var $p_master;
function acp_users(&$p_master)
function __construct(&$p_master)
{
$this->p_master = &$p_master;
}
@@ -1883,6 +1883,17 @@ class acp_users
'user_avatar_height' => $result['avatar_height'],
);
/**
* Modify users preferences data before assigning it to the template
*
* @event core.acp_users_avatar_sql
* @var array user_row Array with user data
* @var array result Array with user avatar data to be updated in the DB
* @since 3.2.4-RC1
*/
$vars = array('user_row', 'result');
extract($phpbb_dispatcher->trigger_event('core.acp_users_avatar_sql', compact($vars)));
$sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $result) . '
WHERE user_id = ' . (int) $user_id;
@@ -2085,6 +2096,17 @@ class acp_users
'user_sig_bbcode_bitfield' => $bbcode_bitfield,
);
/**
* Modify user signature before it is stored in the DB
*
* @event core.acp_users_modify_signature_sql_ary
* @var array user_row Array with user data
* @var array sql_ary Array with user signature data to be updated in the DB
* @since 3.2.4-RC1
*/
$vars = array('user_row', 'sql_ary');
extract($phpbb_dispatcher->trigger_event('core.acp_users_modify_signature_sql_ary', compact($vars)));
$sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user_id;

View File

@@ -27,7 +27,7 @@ class auth_admin extends \phpbb\auth\auth
/**
* Init auth settings
*/
function auth_admin()
function __construct()
{
global $db, $cache;
@@ -819,7 +819,7 @@ class auth_admin extends \phpbb\auth\auth
// Because we just changed the options and also purged the options cache, we instantly update/regenerate it for later calls to succeed.
$this->acl_options = array();
$this->auth_admin();
$this->__construct();
return true;
}

View File

@@ -35,9 +35,18 @@ class bbcode
/**
* Constructor
* Init bbcode cache entries if bitfield is specified
*/
function bbcode($bitfield = '')
function __construct($bitfield = '')
{
$this->bbcode_set_bitfield($bitfield);
}
/**
* Init bbcode cache entries if bitfield is specified
*
* @param string $bbcode_bitfield The bbcode bitfield
*/
function bbcode_set_bitfield($bitfield = '')
{
if ($bitfield)
{

View File

@@ -28,7 +28,7 @@ if (!defined('IN_PHPBB'))
*/
// phpBB Version
@define('PHPBB_VERSION', '3.2.4-dev');
@define('PHPBB_VERSION', '3.2.5-RC1');
// QA-related
// define('PHPBB_QA', 1);

View File

@@ -50,7 +50,7 @@ class diff
* @param array &$to_content An array of strings.
* @param bool $preserve_cr If true, \r is replaced by a new line in the diff output
*/
function diff(&$from_content, &$to_content, $preserve_cr = true)
function __construct(&$from_content, &$to_content, $preserve_cr = true)
{
$diff_engine = new diff_engine();
$this->_edits = $diff_engine->diff($from_content, $to_content, $preserve_cr);
@@ -330,14 +330,14 @@ class mapped_diff extends diff
* compared when computing the diff.
* @param array $mapped_to_lines This array should have the same number of elements as $to_lines.
*/
function mapped_diff(&$from_lines, &$to_lines, &$mapped_from_lines, &$mapped_to_lines)
function __construct(&$from_lines, &$to_lines, &$mapped_from_lines, &$mapped_to_lines)
{
if (count($from_lines) != count($mapped_from_lines) || count($to_lines) != count($mapped_to_lines))
{
return false;
}
parent::diff($mapped_from_lines, $mapped_to_lines);
parent::__construct($mapped_from_lines, $mapped_to_lines);
$xi = $yi = 0;
for ($i = 0; $i < count($this->_edits); $i++)
@@ -394,7 +394,7 @@ class diff_op
*/
class diff_op_copy extends diff_op
{
function diff_op_copy($orig, $final = false)
function __construct($orig, $final = false)
{
if (!is_array($final))
{
@@ -419,7 +419,7 @@ class diff_op_copy extends diff_op
*/
class diff_op_delete extends diff_op
{
function diff_op_delete($lines)
function __construct($lines)
{
$this->orig = $lines;
$this->final = false;
@@ -440,7 +440,7 @@ class diff_op_delete extends diff_op
*/
class diff_op_add extends diff_op
{
function diff_op_add($lines)
function __construct($lines)
{
$this->final = $lines;
$this->orig = false;
@@ -461,7 +461,7 @@ class diff_op_add extends diff_op
*/
class diff_op_change extends diff_op
{
function diff_op_change($orig, $final)
function __construct($orig, $final)
{
$this->orig = $orig;
$this->final = $final;
@@ -498,7 +498,7 @@ class diff3 extends diff
* @param bool $preserve_cr If true, \r\n and bare \r are replaced by a new line
* in the diff output
*/
function diff3(&$orig, &$final1, &$final2, $preserve_cr = true)
function __construct(&$orig, &$final1, &$final2, $preserve_cr = true)
{
$diff_engine = new diff_engine();
@@ -754,7 +754,7 @@ class diff3 extends diff
*/
class diff3_op
{
function diff3_op($orig = false, $final1 = false, $final2 = false)
function __construct($orig = false, $final1 = false, $final2 = false)
{
$this->orig = $orig ? $orig : array();
$this->final1 = $final1 ? $final1 : array();
@@ -1066,7 +1066,7 @@ class diff3_op
*/
class diff3_op_copy extends diff3_op
{
function diff3_op_copy($lines = false)
function __construct($lines = false)
{
$this->orig = $lines ? $lines : array();
$this->final1 = &$this->orig;
@@ -1092,7 +1092,7 @@ class diff3_op_copy extends diff3_op
*/
class diff3_block_builder
{
function diff3_block_builder()
function __construct()
{
$this->_init();
}

View File

@@ -56,7 +56,7 @@ class diff_renderer
/**
* Constructor.
*/
function diff_renderer($params = array())
function __construct($params = array())
{
foreach ($params as $param => $value)
{

View File

@@ -66,29 +66,48 @@ function set_var(&$result, $var, $type, $multibyte = false)
/**
* Generates an alphanumeric random string of given length
*
* @param int $num_chars Length of random string, defaults to 8.
* This number should be less or equal than 64.
*
* @return string
*/
function gen_rand_string($num_chars = 8)
{
// [a, z] + [0, 9] = 36
return substr(strtoupper(base_convert(unique_id(), 16, 36)), 0, $num_chars);
$range = array_merge(range('A', 'Z'), range(0, 9));
$size = count($range);
$output = '';
for ($i = 0; $i < $num_chars; $i++)
{
$rand = random_int(0, $size-1);
$output .= $range[$rand];
}
return $output;
}
/**
* Generates a user-friendly alphanumeric random string of given length
* We remove 0 and O so users cannot confuse those in passwords etc.
*
* @param int $num_chars Length of random string, defaults to 8.
* This number should be less or equal than 64.
*
* @return string
*/
function gen_rand_string_friendly($num_chars = 8)
{
$rand_str = unique_id();
$range = array_merge(range('A', 'N'), range('P', 'Z'), range(1, 9));
$size = count($range);
// Remove Z and Y from the base_convert(), replace 0 with Z and O with Y
// [a, z] + [0, 9] - {z, y} = [a, z] + [0, 9] - {0, o} = 34
$rand_str = str_replace(array('0', 'O'), array('Z', 'Y'), strtoupper(base_convert($rand_str, 16, 34)));
$output = '';
for ($i = 0; $i < $num_chars; $i++)
{
$rand = random_int(0, $size-1);
$output .= $range[$rand];
}
return substr($rand_str, 0, $num_chars);
return $output;
}
/**
@@ -96,7 +115,7 @@ function gen_rand_string_friendly($num_chars = 8)
*/
function unique_id()
{
return bin2hex(random_bytes(8));
return strtolower(gen_rand_string(16));
}
/**
@@ -1725,14 +1744,14 @@ function redirect($url, $return = false, $disable_cd_check = false)
if ($url_parts === false)
{
// Malformed url
trigger_error('INSECURE_REDIRECT', E_USER_ERROR);
trigger_error('INSECURE_REDIRECT', E_USER_WARNING);
}
else if (!empty($url_parts['scheme']) && !empty($url_parts['host']))
{
// Attention: only able to redirect within the same domain if $disable_cd_check is false (yourdomain.com -> www.yourdomain.com will not work)
if (!$disable_cd_check && $url_parts['host'] !== $user->host)
{
trigger_error('INSECURE_REDIRECT', E_USER_ERROR);
trigger_error('INSECURE_REDIRECT', E_USER_WARNING);
}
}
else if ($url[0] == '/')
@@ -1772,13 +1791,13 @@ function redirect($url, $return = false, $disable_cd_check = false)
if (!$disable_cd_check && strpos($url, generate_board_url(true) . '/') !== 0)
{
trigger_error('INSECURE_REDIRECT', E_USER_ERROR);
trigger_error('INSECURE_REDIRECT', E_USER_WARNING);
}
// Make sure no linebreaks are there... to prevent http response splitting for PHP < 4.4.2
if (strpos(urldecode($url), "\n") !== false || strpos(urldecode($url), "\r") !== false || strpos($url, ';') !== false)
{
trigger_error('INSECURE_REDIRECT', E_USER_ERROR);
trigger_error('INSECURE_REDIRECT', E_USER_WARNING);
}
// Now, also check the protocol and for a valid url the last time...
@@ -1787,7 +1806,7 @@ function redirect($url, $return = false, $disable_cd_check = false)
if ($url_parts === false || empty($url_parts['scheme']) || !in_array($url_parts['scheme'], $allowed_protocols))
{
trigger_error('INSECURE_REDIRECT', E_USER_ERROR);
trigger_error('INSECURE_REDIRECT', E_USER_WARNING);
}
/**
@@ -2344,10 +2363,12 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
* @event core.login_box_redirect
* @var string redirect Redirect string
* @var bool admin Is admin?
* @var array result Result from auth provider
* @since 3.1.0-RC5
* @changed 3.1.9-RC1 Removed undefined return variable
* @changed 3.2.4-RC1 Added result
*/
$vars = array('redirect', 'admin');
$vars = array('redirect', 'admin', 'result');
extract($phpbb_dispatcher->trigger_event('core.login_box_redirect', compact($vars)));
// append/replace SID (may change during the session for AOL users)
@@ -2463,7 +2484,7 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
$s_hidden_fields = build_hidden_fields($s_hidden_fields);
$template->assign_vars(array(
$login_box_template_data = array(
'LOGIN_ERROR' => $err,
'LOGIN_EXPLAIN' => $l_explain,
@@ -2471,6 +2492,7 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
'U_RESEND_ACTIVATION' => ($config['require_activation'] == USER_ACTIVATION_SELF && $config['email_enable']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=resend_act') : '',
'U_TERMS_USE' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=terms'),
'U_PRIVACY' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=privacy'),
'UA_PRIVACY' => addslashes(append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=privacy')),
'S_DISPLAY_FULL_LOGIN' => ($s_display) ? true : false,
'S_HIDDEN_FIELDS' => $s_hidden_fields,
@@ -2480,7 +2502,29 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
'USERNAME_CREDENTIAL' => 'username',
'PASSWORD_CREDENTIAL' => ($admin) ? 'password_' . $credential : 'password',
));
);
/**
* Event to add/modify login box template data
*
* @event core.login_box_modify_template_data
* @var int admin Flag whether user is admin
* @var string username User name
* @var int autologin Flag whether autologin is enabled
* @var string redirect Redirect URL
* @var array login_box_template_data Array with the login box template data
* @since 3.2.3-RC2
*/
$vars = array(
'admin',
'username',
'autologin',
'redirect',
'login_box_template_data',
);
extract($phpbb_dispatcher->trigger_event('core.login_box_modify_template_data', compact($vars)));
$template->assign_vars($login_box_template_data);
page_header($user->lang['LOGIN']);
@@ -2497,7 +2541,7 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
*/
function login_forum_box($forum_data)
{
global $db, $phpbb_container, $request, $template, $user, $phpbb_dispatcher;
global $db, $phpbb_container, $request, $template, $user, $phpbb_dispatcher, $phpbb_root_path, $phpEx;
$password = $request->variable('password', '', true);
@@ -2582,6 +2626,8 @@ function login_forum_box($forum_data)
'body' => 'login_forum.html')
);
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"), $forum_data['forum_id']);
page_footer();
}
@@ -4401,9 +4447,10 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
'U_SEARCH_ACTIVE_TOPICS'=> append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=active_topics'),
'U_DELETE_COOKIES' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=delete_cookies'),
'U_CONTACT_US' => ($config['contact_admin_form_enable'] && $config['email_enable']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=contactadmin') : '',
'U_TEAM' => ($user->data['user_id'] != ANONYMOUS && !$auth->acl_get('u_viewprofile')) ? '' : append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=team'),
'U_TEAM' => (!$auth->acl_get('u_viewprofile')) ? '' : append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=team'),
'U_TERMS_USE' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=terms'),
'U_PRIVACY' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=privacy'),
'UA_PRIVACY' => addslashes(append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=privacy')),
'U_RESTORE_PERMISSIONS' => ($user->data['user_perm_from'] && $auth->acl_get('a_switchperm')) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=restore_perm') : '',
'U_FEED' => $controller_helper->route('phpbb_feed_index'),
@@ -4463,7 +4510,7 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
'S_COOKIE_NOTICE' => !empty($config['cookie_notice']),
'T_THEME_NAME' => rawurlencode($user->style['style_path']),
'T_THEME_LANG_NAME' => $user->data['user_lang'],
'T_THEME_LANG_NAME' => $user->lang_name,
'T_TEMPLATE_NAME' => $user->style['style_path'],
'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',

View File

@@ -564,9 +564,6 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
$cfg_array[$config_name] = trim($destination);
// Absolute file path
case 'absolute_path':
case 'absolute_path_writable':
// Path being relative (still prefixed by phpbb_root_path), but with the ability to escape the root dir...
case 'path':
case 'wpath':
@@ -585,7 +582,7 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
break;
}
$path = in_array($config_definition['validate'], array('wpath', 'path', 'rpath', 'rwpath')) ? $phpbb_root_path . $cfg_array[$config_name] : $cfg_array[$config_name];
$path = $phpbb_root_path . $cfg_array[$config_name];
if (!file_exists($path))
{
@@ -598,7 +595,7 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
}
// Check if the path is writable
if ($config_definition['validate'] == 'wpath' || $config_definition['validate'] == 'rwpath' || $config_definition['validate'] === 'absolute_path_writable')
if ($config_definition['validate'] == 'wpath' || $config_definition['validate'] == 'rwpath')
{
if (file_exists($path) && !$phpbb_filesystem->is_writable($path))
{

View File

@@ -210,7 +210,7 @@ class compress_zip extends compress
/**
* Constructor
*/
function compress_zip($mode, $file)
function __construct($mode, $file)
{
global $phpbb_filesystem;
@@ -569,7 +569,7 @@ class compress_tar extends compress
/**
* Constructor
*/
function compress_tar($mode, $file, $type = '')
function __construct($mode, $file, $type = '')
{
global $phpbb_filesystem;

View File

@@ -627,7 +627,7 @@ function generate_text_for_display($text, $uid, $bitfield, $flags, $censor_text
}
else
{
$bbcode->bbcode($bitfield);
$bbcode->bbcode_set_bitfield($bitfield);
}
$bbcode->bbcode_second_pass($text, $uid);
@@ -1672,7 +1672,7 @@ class bitfield
{
var $data;
function bitfield($bitfield = '')
function __construct($bitfield = '')
{
$this->data = base64_decode($bitfield);
}
@@ -1758,3 +1758,47 @@ class bitfield
$this->data = $this->data | $bitfield->get_blob();
}
}
/**
* Formats the quote according to the given BBCode status setting
*
* @param bool $bbcode_status The status of the BBCode setting
* @param array $quote_attributes The attributes of the quoted post
* @param phpbb\textformatter\utils $text_formatter_utils Text formatter utilities
* @param parse_message $message_parser Message parser class
* @param string $message_link Link of the original quoted post
*/
function phpbb_format_quote($bbcode_status, $quote_attributes, $text_formatter_utils, $message_parser, $message_link = '')
{
if ($bbcode_status)
{
$quote_text = $text_formatter_utils->generate_quote(
censor_text($message_parser->message),
$quote_attributes
);
$message_parser->message = $quote_text . "\n\n";
}
else
{
$offset = 0;
$quote_string = "&gt; ";
$message = censor_text(trim($message_parser->message));
// see if we are nesting. It's easily tricked but should work for one level of nesting
if (strpos($message, "&gt;") !== false)
{
$offset = 10;
}
$message = utf8_wordwrap($message, 75 + $offset, "\n");
$message = $quote_string . $message;
$message = str_replace("\n", "\n" . $quote_string, $message);
$message_parser->message = $quote_attributes['author'] . " " . $user->lang['WROTE'] . ":\n" . $message . "\n";
}
if ($message_link)
{
$message_parser->message = $message_link . $message_parser->message;
}
}

View File

@@ -1241,6 +1241,7 @@ function display_user_activity(&$userdata_ary)
}
$userdata = $userdata_ary;
$show_user_activity = true;
/**
* Alter list of forums and topics to display as active
*
@@ -1248,9 +1249,11 @@ function display_user_activity(&$userdata_ary)
* @var array userdata User's data
* @var array active_f_row List of active forums
* @var array active_t_row List of active posts
* @var bool show_user_activity Show user forum and topic activity
* @since 3.1.0-RC3
* @changed 3.2.5-RC1 Added show_user_activity into event
*/
$vars = array('userdata', 'active_f_row', 'active_t_row');
$vars = array('userdata', 'active_f_row', 'active_t_row', 'show_user_activity');
extract($phpbb_dispatcher->trigger_event('core.display_user_activity_modify_actives', compact($vars)));
$userdata_ary = $userdata;
unset($userdata);
@@ -1287,7 +1290,7 @@ function display_user_activity(&$userdata_ary)
'ACTIVE_TOPIC_PCT' => sprintf($l_active_pct, $active_t_pct),
'U_ACTIVE_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $active_f_id),
'U_ACTIVE_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't=' . $active_t_id),
'S_SHOW_ACTIVITY' => true)
'S_SHOW_ACTIVITY' => $show_user_activity)
);
}

View File

@@ -37,7 +37,7 @@ class messenger
/**
* Constructor
*/
function messenger($use_queue = true)
function __construct($use_queue = true)
{
global $config;
@@ -326,9 +326,26 @@ class messenger
));
$subject = $this->subject;
$message = $this->msg;
$template = $this->template;
/**
* Event to modify notification message text before parsing
* Event to modify the template before parsing
*
* @event core.modify_notification_template
* @var int method User notification method NOTIFY_EMAIL|NOTIFY_IM|NOTIFY_BOTH
* @var bool break Flag indicating if the function only formats the subject
* and the message without sending it
* @var string subject The message subject
* @var \phpbb\template\template template The (readonly) template object
* @since 3.2.4-RC1
*/
$vars = array('method', 'break', 'subject', 'template');
extract($phpbb_dispatcher->trigger_event('core.modify_notification_template', compact($vars)));
// Parse message through template
$message = trim($this->template->assign_display('body'));
/**
* Event to modify notification message text after parsing
*
* @event core.modify_notification_message
* @var int method User notification method NOTIFY_EMAIL|NOTIFY_IM|NOTIFY_BOTH
@@ -338,19 +355,12 @@ class messenger
* @var string message The message text
* @since 3.1.11-RC1
*/
$vars = array(
'method',
'break',
'subject',
'message',
);
$vars = array('method', 'break', 'subject', 'message');
extract($phpbb_dispatcher->trigger_event('core.modify_notification_message', compact($vars)));
$this->subject = $subject;
$this->msg = $message;
unset($subject, $message);
// Parse message through template
$this->msg = trim($this->template->assign_display('body'));
unset($subject, $message, $template);
// Because we use \n for newlines in the body message we need to fix line encoding errors for those admins who uploaded email template files in the wrong encoding
$this->msg = str_replace("\r\n", "\n", $this->msg);
@@ -369,6 +379,12 @@ class messenger
$this->subject = (($this->subject != '') ? $this->subject : $user->lang['NO_EMAIL_SUBJECT']);
}
if (preg_match('#^(List-Unsubscribe:(.*?))$#m', $this->msg, $match))
{
$this->extra_headers[] = $match[1];
$drop_header .= '[\r\n]*?' . preg_quote($match[1], '#');
}
if ($drop_header)
{
$this->msg = trim(preg_replace('#' . $drop_header . '#s', '', $this->msg));
@@ -517,7 +533,7 @@ class messenger
*/
function msg_email()
{
global $config;
global $config, $phpbb_dispatcher;
if (empty($config['email_enable']))
{
@@ -545,6 +561,33 @@ class messenger
$contact_name = htmlspecialchars_decode($config['board_contact_name']);
$board_contact = (($contact_name !== '') ? '"' . mail_encode($contact_name) . '" ' : '') . '<' . $config['board_contact'] . '>';
$break = false;
$addresses = $this->addresses;
$subject = $this->subject;
$msg = $this->msg;
/**
* Event to send message via external transport
*
* @event core.notification_message_email
* @var bool break Flag indicating if the function return after hook
* @var array addresses The message recipients
* @var string subject The message subject
* @var string msg The message text
* @since 3.2.4-RC1
*/
$vars = array(
'break',
'addresses',
'subject',
'msg',
);
extract($phpbb_dispatcher->trigger_event('core.notification_message_email', compact($vars)));
if ($break)
{
return true;
}
if (empty($this->replyto))
{
$this->replyto = $board_contact;
@@ -750,7 +793,7 @@ class queue
/**
* constructor
*/
function queue()
function __construct()
{
global $phpEx, $phpbb_root_path, $phpbb_filesystem, $phpbb_container;
@@ -783,7 +826,7 @@ class queue
*/
function process()
{
global $config, $phpEx, $phpbb_root_path, $user;
global $config, $phpEx, $phpbb_root_path, $user, $phpbb_dispatcher;
$lock = new \phpbb\lock\flock($this->cache_file);
$lock->acquire();
@@ -880,23 +923,45 @@ class queue
switch ($object)
{
case 'email':
$err_msg = '';
$to = (!$to) ? 'undisclosed-recipients:;' : $to;
$break = false;
/**
* Event to send message via external transport
*
* @event core.notification_message_process
* @var bool break Flag indicating if the function return after hook
* @var array addresses The message recipients
* @var string subject The message subject
* @var string msg The message text
* @since 3.2.4-RC1
*/
$vars = array(
'break',
'addresses',
'subject',
'msg',
);
extract($phpbb_dispatcher->trigger_event('core.notification_message_process', compact($vars)));
if ($config['smtp_delivery'])
if (!$break)
{
$result = smtpmail($addresses, mail_encode($subject), wordwrap(utf8_wordwrap($msg), 997, "\n", true), $err_msg, $headers);
}
else
{
$result = phpbb_mail($to, $subject, $msg, $headers, PHP_EOL, $err_msg);
}
$err_msg = '';
$to = (!$to) ? 'undisclosed-recipients:;' : $to;
if (!$result)
{
$messenger = new messenger();
$messenger->error('EMAIL', $err_msg);
continue 2;
if ($config['smtp_delivery'])
{
$result = smtpmail($addresses, mail_encode($subject), wordwrap(utf8_wordwrap($msg), 997, "\n", true), $err_msg, $headers);
}
else
{
$result = phpbb_mail($to, $subject, $msg, $headers, PHP_EOL, $err_msg);
}
if (!$result)
{
$messenger = new messenger();
$messenger->error('EMAIL', $err_msg);
continue 2;
}
}
break;
@@ -1264,7 +1329,7 @@ class smtp_class
var $backtrace = false;
var $backtrace_log = array();
function smtp_class()
function __construct()
{
// Always create a backtrace for admins to identify SMTP problems
$this->backtrace = true;

View File

@@ -40,7 +40,7 @@ class p_master
* Constuctor
* Set module include path
*/
function p_master($include_path = false)
function __construct($include_path = false)
{
global $phpbb_root_path;

View File

@@ -519,7 +519,7 @@ function get_supported_image_types($type = false)
*/
function create_thumbnail($source, $destination, $mimetype)
{
global $config, $phpbb_filesystem;
global $config, $phpbb_filesystem, $phpbb_dispatcher;
$min_filesize = (int) $config['img_min_thumb_filesize'];
$img_filesize = (file_exists($source)) ? @filesize($source) : false;
@@ -551,25 +551,31 @@ function create_thumbnail($source, $destination, $mimetype)
return false;
}
$used_imagick = false;
$thumbnail_created = false;
// Only use ImageMagick if defined and the passthru function not disabled
if ($config['img_imagick'] && function_exists('passthru'))
{
if (substr($config['img_imagick'], -1) !== '/')
{
$config['img_imagick'] .= '/';
}
/**
* Create thumbnail event to replace GD thumbnail creation with for example ImageMagick
*
* @event core.thumbnail_create_before
* @var string source Image source path
* @var string destination Thumbnail destination path
* @var string mimetype Image mime type
* @var float new_width Calculated thumbnail width
* @var float new_height Calculated thumbnail height
* @var bool thumbnail_created Set to true to skip default GD thumbnail creation
* @since 3.2.4
*/
$vars = array(
'source',
'destination',
'mimetype',
'new_width',
'new_height',
'thumbnail_created',
);
extract($phpbb_dispatcher->trigger_event('core.thumbnail_create_before', compact($vars)));
@passthru(escapeshellcmd($config['img_imagick']) . 'convert' . ((defined('PHP_OS') && preg_match('#^win#i', PHP_OS)) ? '.exe' : '') . ' -quality 85 -geometry ' . $new_width . 'x' . $new_height . ' "' . str_replace('\\', '/', $source) . '" "' . str_replace('\\', '/', $destination) . '"');
if (file_exists($destination))
{
$used_imagick = true;
}
}
if (!$used_imagick)
if (!$thumbnail_created)
{
$type = get_supported_image_types($type);
@@ -2282,6 +2288,19 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll_ary, &$data
'post_subject' => $subject,
));
/**
* This event allows you to modify the notification data upon submission
*
* @event core.modify_submit_notification_data
* @var array notification_data The notification data to be inserted in to the database
* @var array data_ary The data array with a lot of the post submission data
* @var string mode The posting mode
* @var int poster_id The poster id
* @since 3.2.4-RC1
*/
$vars = array('notification_data', 'data_ary', 'mode', 'poster_id');
extract($phpbb_dispatcher->trigger_event('core.modify_submit_notification_data', compact($vars)));
/* @var $phpbb_notifications \phpbb\notification\manager */
$phpbb_notifications = $phpbb_container->get('notification_manager');
@@ -2309,8 +2328,14 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll_ary, &$data
case 'edit_first_post':
case 'edit':
case 'edit_last_post':
if ($user->data['user_id'] == $poster_id)
{
$phpbb_notifications->update_notifications(array(
'notification.type.quote',
), $notification_data);
}
$phpbb_notifications->update_notifications(array(
'notification.type.quote',
'notification.type.bookmark',
'notification.type.topic',
'notification.type.post',

View File

@@ -38,7 +38,7 @@ class transfer
/**
* Constructor - init some basic values
*/
function transfer()
function __construct()
{
global $phpbb_root_path;
@@ -264,7 +264,7 @@ class ftp extends transfer
/**
* Standard parameters for FTP session
*/
function ftp($host, $username, $password, $root_path, $port = 21, $timeout = 10)
function __construct($host, $username, $password, $root_path, $port = 21, $timeout = 10)
{
$this->host = $host;
$this->port = $port;
@@ -512,7 +512,7 @@ class ftp_fsock extends transfer
/**
* Standard parameters for FTP session
*/
function ftp_fsock($host, $username, $password, $root_path, $port = 21, $timeout = 10)
function __construct($host, $username, $password, $root_path, $port = 21, $timeout = 10)
{
$this->host = $host;
$this->port = $port;
@@ -529,7 +529,7 @@ class ftp_fsock extends transfer
}
// Init some needed values
$this->transfer();
parent::__construct();
return;
}

View File

@@ -461,9 +461,11 @@ function user_delete($mode, $user_ids, $retain_username = true)
* @var array user_ids IDs of the deleted user
* @var mixed retain_username True if username should be retained
* or false if not
* @var array user_rows Array containing data of the deleted users
* @since 3.1.0-a1
* @changed 3.2.4-RC1 Added user_rows
*/
$vars = array('mode', 'user_ids', 'retain_username');
$vars = array('mode', 'user_ids', 'retain_username', 'user_rows');
extract($phpbb_dispatcher->trigger_event('core.delete_user_before', compact($vars)));
// Before we begin, we will remove the reports the user issued.
@@ -664,7 +666,7 @@ function user_delete($mode, $user_ids, $retain_username = true)
delete_posts('poster_id', $user_ids);
}
$table_ary = array(USERS_TABLE, USER_GROUP_TABLE, TOPICS_WATCH_TABLE, FORUMS_WATCH_TABLE, ACL_USERS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, FORUMS_TRACK_TABLE, PROFILE_FIELDS_DATA_TABLE, MODERATOR_CACHE_TABLE, DRAFTS_TABLE, BOOKMARKS_TABLE, SESSIONS_KEYS_TABLE, PRIVMSGS_FOLDER_TABLE, PRIVMSGS_RULES_TABLE);
$table_ary = array(USERS_TABLE, USER_GROUP_TABLE, TOPICS_WATCH_TABLE, FORUMS_WATCH_TABLE, ACL_USERS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, FORUMS_TRACK_TABLE, PROFILE_FIELDS_DATA_TABLE, MODERATOR_CACHE_TABLE, DRAFTS_TABLE, BOOKMARKS_TABLE, SESSIONS_KEYS_TABLE, PRIVMSGS_FOLDER_TABLE, PRIVMSGS_RULES_TABLE, $phpbb_container->getParameter('tables.auth_provider_oauth_token_storage'), $phpbb_container->getParameter('tables.auth_provider_oauth_states'), $phpbb_container->getParameter('tables.auth_provider_oauth_account_assoc'));
// Delete the miscellaneous (non-post) data for the user
foreach ($table_ary as $table)
@@ -1427,21 +1429,14 @@ function user_ipwhois($ip)
return '';
}
if (preg_match(get_preg_expression('ipv4'), $ip))
{
// IPv4 address
$whois_host = 'whois.arin.net.';
}
else if (preg_match(get_preg_expression('ipv6'), $ip))
{
// IPv6 address
$whois_host = 'whois.sixxs.net.';
}
else
if (!preg_match(get_preg_expression('ipv4'), $ip) && !preg_match(get_preg_expression('ipv6'), $ip))
{
return '';
}
// IPv4 & IPv6 addresses
$whois_host = 'whois.arin.net.';
$ipwhois = '';
if (($fsk = @fsockopen($whois_host, 43)))
@@ -3602,11 +3597,6 @@ function remove_newly_registered($user_id, $user_data = false)
}
}
if (empty($user_data['user_new']))
{
return false;
}
$sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . "
WHERE group_name = 'NEWLY_REGISTERED'

View File

@@ -44,7 +44,7 @@ class phpbb_hook
*
* @param array $valid_hooks array containing the hookable functions/methods
*/
function phpbb_hook($valid_hooks)
function __construct($valid_hooks)
{
foreach ($valid_hooks as $_null => $method)
{

View File

@@ -28,7 +28,7 @@ class mcp_logs
var $u_action;
var $p_master;
function mcp_logs(&$p_master)
function __construct(&$p_master)
{
$this->p_master = &$p_master;
}

View File

@@ -28,7 +28,7 @@ class mcp_main
var $p_master;
var $u_action;
function mcp_main(&$p_master)
function __construct(&$p_master)
{
$this->p_master = &$p_master;
}
@@ -1458,6 +1458,24 @@ function mcp_fork_topic($topic_ids)
$db->sql_query('INSERT INTO ' . POSTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
$new_post_id = $db->sql_nextid();
/**
* Perform actions after forked topic is created.
*
* @event core.mcp_main_fork_sql_after
* @var int new_topic_id The newly created topic ID
* @var int to_forum_id The forum ID where the forked topic has been moved to
* @var int new_post_id The newly created post ID
* @var array row Post data
* @since 3.2.4-RC1
*/
$vars = array(
'new_topic_id',
'to_forum_id',
'new_post_id',
'row',
);
extract($phpbb_dispatcher->trigger_event('core.mcp_main_fork_sql_after', compact($vars)));
switch ($row['post_visibility'])
{
case ITEM_APPROVED:

View File

@@ -28,7 +28,7 @@ class mcp_notes
var $p_master;
var $u_action;
function mcp_notes(&$p_master)
function __construct(&$p_master)
{
$this->p_master = &$p_master;
}

View File

@@ -28,7 +28,7 @@ class mcp_pm_reports
var $p_master;
var $u_action;
function mcp_pm_reports(&$p_master)
function __construct(&$p_master)
{
$this->p_master = &$p_master;
}

View File

@@ -213,6 +213,10 @@ function mcp_post_details($id, $mode, $action)
$l_deleted_by = '';
}
// parse signature
$parse_flags = ($post_info['user_sig_bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
$post_info['user_sig'] = generate_text_for_display($post_info['user_sig'], $post_info['user_sig_bbcode_uid'], $post_info['user_sig_bbcode_bitfield'], $parse_flags, true);
$mcp_post_template_data = array(
'U_MCP_ACTION' => "$url&amp;i=main&amp;quickmod=1&amp;mode=post_details", // Use this for mode paramaters
'U_POST_ACTION' => "$url&amp;i=$id&amp;mode=post_details", // Use this for action parameters
@@ -262,6 +266,7 @@ function mcp_post_details($id, $mode, $action)
'POST_IP' => $post_info['poster_ip'],
'POST_IPADDR' => ($auth->acl_get('m_info', $post_info['forum_id']) && $request->variable('lookup', '')) ? @gethostbyaddr($post_info['poster_ip']) : '',
'POST_ID' => $post_info['post_id'],
'SIGNATURE' => $post_info['user_sig'],
'U_LOOKUP_IP' => ($auth->acl_get('m_info', $post_info['forum_id'])) ? "$url&amp;i=$id&amp;mode=$mode&amp;lookup={$post_info['poster_ip']}#ip" : '',
'U_WHOIS' => ($auth->acl_get('m_info', $post_info['forum_id'])) ? append_sid("{$phpbb_root_path}mcp.$phpEx", "i=$id&amp;mode=$mode&amp;action=whois&amp;p=$post_id&amp;ip={$post_info['poster_ip']}") : '',

View File

@@ -28,7 +28,7 @@ class mcp_queue
var $p_master;
var $u_action;
public function mcp_queue(&$p_master)
public function __construct(&$p_master)
{
$this->p_master = &$p_master;
}
@@ -501,6 +501,29 @@ class mcp_queue
AND t.topic_id = p.topic_id
AND u.user_id = p.poster_id
ORDER BY ' . $sort_order_sql;
/**
* Alter sql query to get information on all posts in queue
*
* @event core.mcp_queue_get_posts_for_posts_query_before
* @var string sql String with the query to be executed
* @var array forum_list List of forums that contain the posts
* @var int visibility_const Integer with one of the possible ITEM_* constant values
* @var int topic_id topic_id in the page request
* @var string limit_time_sql String with the SQL code to limit the time interval of the post (Note: May be empty string)
* @var string sort_order_sql String with the ORDER BY SQL code used in this query
* @since 3.2.3-RC2
*/
$vars = array(
'sql',
'forum_list',
'visibility_const',
'topic_id',
'limit_time_sql',
'sort_order_sql',
);
extract($phpbb_dispatcher->trigger_event('core.mcp_queue_get_posts_for_posts_query_before', compact($vars)));
$result = $db->sql_query($sql);
$post_data = $rowset = array();
@@ -588,7 +611,7 @@ class mcp_queue
$row['post_username'] = $row['username'] ?: $user->lang['GUEST'];
}
$template->assign_block_vars('postrow', array(
$post_row = array(
'U_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $row['forum_id'] . '&amp;t=' . $row['topic_id']),
'U_VIEWFORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']),
'U_VIEWPOST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $row['forum_id'] . '&amp;p=' . $row['post_id']) . (($mode == 'unapproved_posts') ? '#p' . $row['post_id'] : ''),
@@ -606,7 +629,25 @@ class mcp_queue
'TOPIC_TITLE' => $row['topic_title'],
'POST_TIME' => $user->format_date($row['post_time']),
'S_HAS_ATTACHMENTS' => $auth->acl_get('u_download') && $auth->acl_get('f_download', $row['forum_id']) && $row['post_attachment'],
));
);
/**
* Alter sql query to get information on all topics in the list of forums provided.
*
* @event core.mcp_queue_get_posts_modify_post_row
* @var array post_row Template variables for current post
* @var array row Post data
* @var array forum_names Forum names
* @since 3.2.3-RC2
*/
$vars = array(
'post_row',
'row',
'forum_names',
);
extract($phpbb_dispatcher->trigger_event('core.mcp_queue_get_posts_modify_post_row', compact($vars)));
$template->assign_block_vars('postrow', $post_row);
}
unset($rowset, $forum_names);

View File

@@ -28,7 +28,7 @@ class mcp_reports
var $p_master;
var $u_action;
function mcp_reports(&$p_master)
function __construct(&$p_master)
{
$this->p_master = &$p_master;
}
@@ -242,7 +242,14 @@ class mcp_reports
}
}
$template->assign_vars(array(
// parse signature
$parse_flags = ($post_info['user_sig_bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
$post_info['user_sig'] = generate_text_for_display($post_info['user_sig'], $post_info['user_sig_bbcode_uid'], $post_info['user_sig_bbcode_bitfield'], $parse_flags, true);
$topic_id = (int) $post_info['topic_id'];
// So it can be sent through the event below.
$report_template = array(
'S_MCP_REPORT' => true,
'S_CLOSE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&amp;mode=report_details&amp;f=' . $post_info['forum_id'] . '&amp;p=' . $post_id),
'S_CAN_VIEWIP' => $auth->acl_get('m_info', $post_info['forum_id']),
@@ -291,9 +298,36 @@ class mcp_reports
'POST_IP' => $post_info['poster_ip'],
'POST_IPADDR' => ($auth->acl_get('m_info', $post_info['forum_id']) && $request->variable('lookup', '')) ? @gethostbyaddr($post_info['poster_ip']) : '',
'POST_ID' => $post_info['post_id'],
'SIGNATURE' => $post_info['user_sig'],
'U_LOOKUP_IP' => ($auth->acl_get('m_info', $post_info['forum_id'])) ? $this->u_action . '&amp;r=' . $report_id . '&amp;p=' . $post_id . '&amp;f=' . $forum_id . '&amp;lookup=' . $post_info['poster_ip'] . '#ip' : '',
));
);
/**
* Event to add/modify MCP report details template data.
*
* @event core.mcp_report_template_data
* @var int forum_id The forum_id, the number in the f GET parameter
* @var int topic_id The topic_id of the report being viewed
* @var int post_id The post_id of the report being viewed (if 0, it is meaningless)
* @var int report_id The report_id of the report being viewed
* @var array report Array with the report data
* @var array report_template Array with the report template data
* @var array post_info Array with the reported post data
* @since 3.2.5-RC1
*/
$vars = array(
'forum_id',
'topic_id',
'post_id',
'report_id',
'report',
'report_template',
'post_info',
);
extract($phpbb_dispatcher->trigger_event('core.mcp_report_template_data', compact($vars)));
$template->assign_vars($report_template);
$this->tpl_name = 'mcp_post';

View File

@@ -28,7 +28,7 @@ class mcp_warn
var $p_master;
var $u_action;
function mcp_warn(&$p_master)
function __construct(&$p_master)
{
$this->p_master = &$p_master;
}

View File

@@ -1139,7 +1139,7 @@ class parse_message extends bbcode_firstpass
/**
* Init - give message here or manually
*/
function parse_message($message = '')
function __construct($message = '')
{
// Init BBCode UID
$this->bbcode_uid = substr(base_convert(unique_id(), 16, 36), 0, BBCODE_UID_LEN);

View File

@@ -40,7 +40,7 @@ class phpbb_questionnaire_data_collector
*
* @param string
*/
function phpbb_questionnaire_data_collector($install_id)
function __construct($install_id)
{
$this->install_id = $install_id;
$this->providers = array();
@@ -223,7 +223,7 @@ class phpbb_questionnaire_phpbb_data_provider
*
* @param array $config
*/
function phpbb_questionnaire_phpbb_data_provider($config)
function __construct($config)
{
// generate a unique id if necessary
if (empty($config['questionnaire_unique_id']))
@@ -369,7 +369,6 @@ class phpbb_questionnaire_phpbb_data_provider
'hot_threshold' => true,
'img_create_thumbnail' => true,
'img_display_inlined' => true,
'img_imagick' => true,
'img_link_height' => true,
'img_link_width' => true,
'img_max_height' => true,

View File

@@ -126,7 +126,7 @@ define ( "SPH_GROUPBY_ATTRPAIR", 5 );
function sphPackI64 ( $v )
{
assert ( is_numeric($v) );
// x64
if ( PHP_INT_SIZE>=8 )
{
@@ -138,7 +138,7 @@ function sphPackI64 ( $v )
if ( is_int($v) )
return pack ( "NN", $v < 0 ? -1 : 0, $v );
// x32, bcmath
// x32, bcmath
if ( function_exists("bcmul") )
{
if ( bccomp ( $v, 0 ) == -1 )
@@ -175,16 +175,16 @@ function sphPackI64 ( $v )
function sphPackU64 ( $v )
{
assert ( is_numeric($v) );
// x64
if ( PHP_INT_SIZE>=8 )
{
assert ( $v>=0 );
// x64, int
if ( is_int($v) )
return pack ( "NN", $v>>32, $v&0xFFFFFFFF );
// x64, bcmath
if ( function_exists("bcmul") )
{
@@ -192,12 +192,12 @@ function sphPackU64 ( $v )
$l = bcmod ( $v, 4294967296 );
return pack ( "NN", $h, $l );
}
// x64, no-bcmath
$p = max ( 0, strlen($v) - 13 );
$lo = (int)substr ( $v, $p );
$hi = (int)substr ( $v, 0, $p );
$m = $lo + $hi*1316134912;
$l = $m % 4294967296;
$h = $hi*2328 + (int)($m/4294967296);
@@ -208,7 +208,7 @@ function sphPackU64 ( $v )
// x32, int
if ( is_int($v) )
return pack ( "NN", 0, $v );
// x32, bcmath
if ( function_exists("bcmul") )
{
@@ -221,7 +221,7 @@ function sphPackU64 ( $v )
$p = max(0, strlen($v) - 13);
$lo = (float)substr($v, $p);
$hi = (float)substr($v, 0, $p);
$m = $lo + $hi*1316134912.0;
$q = floor($m / 4294967296.0);
$l = $m - ($q * 4294967296.0);
@@ -277,11 +277,11 @@ function sphUnpackU64 ( $v )
// x32, bcmath
if ( function_exists("bcmul") )
return bcadd ( $lo, bcmul ( $hi, "4294967296" ) );
// x32, no-bcmath
$hi = (float)$hi;
$lo = (float)$lo;
$q = floor($hi/10000000.0);
$r = $hi - $q*10000000.0;
$m = $lo + $r*4967296.0;
@@ -324,7 +324,7 @@ function sphUnpackI64 ( $v )
return $lo;
return sprintf ( "%.0f", $lo - 4294967296.0 );
}
$neg = "";
$c = 0;
if ( $hi<0 )
@@ -333,7 +333,7 @@ function sphUnpackI64 ( $v )
$lo = ~$lo;
$c = 1;
$neg = "-";
}
}
$hi = sprintf ( "%u", $hi );
$lo = sprintf ( "%u", $lo );
@@ -345,7 +345,7 @@ function sphUnpackI64 ( $v )
// x32, no-bcmath
$hi = (float)$hi;
$lo = (float)$lo;
$q = floor($hi/10000000.0);
$r = $hi - $q*10000000.0;
$m = $lo + $r*4967296.0;
@@ -427,7 +427,7 @@ class SphinxClient
/////////////////////////////////////////////////////////////////////////////
/// create a new client object and fill defaults
function SphinxClient ()
function __construct ()
{
// per-client-object settings
$this->_host = "localhost";
@@ -510,7 +510,7 @@ class SphinxClient
$this->_path = $host;
return;
}
assert ( is_int($port) );
$this->_host = $host;
$this->_port = $port;
@@ -590,14 +590,14 @@ class SphinxClient
$fp = @fsockopen ( $host, $port, $errno, $errstr );
else
$fp = @fsockopen ( $host, $port, $errno, $errstr, $this->_timeout );
if ( !$fp )
{
if ( $this->_path )
$location = $this->_path;
else
$location = "{$this->_host}:{$this->_port}";
$errstr = trim ( $errstr );
$this->_error = "connection to $location failed (errno=$errno, msg=$errstr)";
$this->_connerror = true;
@@ -1236,7 +1236,7 @@ class SphinxClient
if ( $type==SPH_ATTR_FLOAT )
{
list(,$uval) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4;
list(,$fval) = unpack ( "f*", pack ( "L", $uval ) );
list(,$fval) = unpack ( "f*", pack ( "L", $uval ) );
$attrvals[$attr] = $fval;
continue;
}
@@ -1264,7 +1264,7 @@ class SphinxClient
} else if ( $type==SPH_ATTR_STRING )
{
$attrvals[$attr] = substr ( $response, $p, $val );
$p += $val;
$p += $val;
} else
{
$attrvals[$attr] = sphFixUint($val);
@@ -1345,7 +1345,7 @@ class SphinxClient
if ( !isset($opts["passage_boundary"]) ) $opts["passage_boundary"] = "none";
if ( !isset($opts["emit_zones"]) ) $opts["emit_zones"] = false;
if ( !isset($opts["load_files_scattered"]) ) $opts["load_files_scattered"] = false;
/////////////////
// build request
@@ -1634,7 +1634,7 @@ class SphinxClient
fclose ( $this->_socket );
$this->_socket = false;
return true;
}

View File

@@ -87,6 +87,8 @@ class ucp_activate
WHERE user_id = ' . $user_row['user_id'];
$db->sql_query($sql);
$user->reset_login_keys($user_row['user_id']);
$phpbb_log->add('user', $user->data['user_id'], $user->ip, 'LOG_USER_NEW_PASSWORD', false, array(
'reportee_id' => $user_row['user_id'],
$user_row['username']

View File

@@ -39,7 +39,7 @@ class ucp_login_link
*/
function main($id, $mode)
{
global $phpbb_container, $request, $template, $user;
global $phpbb_container, $request, $template, $user, $phpbb_dispatcher;
global $phpbb_root_path, $phpEx;
// Initialize necessary variables
@@ -108,7 +108,7 @@ class ucp_login_link
}
}
$template->assign_vars(array(
$tpl_ary = array(
// Common template elements
'LOGIN_LINK_ERROR' => $login_link_error,
'PASSWORD_CREDENTIAL' => 'login_password',
@@ -121,7 +121,24 @@ class ucp_login_link
// Login elements
'LOGIN_ERROR' => $login_error,
'LOGIN_USERNAME' => $login_username,
));
);
/**
* Event to perform additional actions before ucp_login_link is displayed
*
* @event core.ucp_login_link_template_after
* @var array data Login link data
* @var \phpbb\auth\provider_interface auth_provider Auth provider
* @var string login_link_error Login link error
* @var string login_error Login error
* @var string login_username Login username
* @var array tpl_ary Template variables
* @since 3.2.4-RC1
*/
$vars = array('data', 'auth_provider', 'login_link_error', 'login_error', 'login_username', 'tpl_ary');
extract($phpbb_dispatcher->trigger_event('core.ucp_login_link_template_after', compact($vars)));
$template->assign_vars($tpl_ary);
$this->tpl_name = 'ucp_login_link';
$this->page_title = 'UCP_LOGIN_LINK';

View File

@@ -28,7 +28,7 @@ class ucp_main
var $p_master;
var $u_action;
function ucp_main(&$p_master)
function __construct(&$p_master)
{
$this->p_master = &$p_master;
}
@@ -77,6 +77,22 @@ class ucp_main
// If the user can't see any forums, he can't read any posts because fid of 0 is invalid
if (!empty($forum_ary))
{
/**
* Modify sql variables before query is processed
*
* @event core.ucp_main_front_modify_sql
* @var string sql_select SQL select
* @var string sql_from SQL from
* @var array forum_ary Forum array
* @since 3.2.4-RC1
*/
$vars = array(
'sql_select',
'sql_from',
'forum_ary',
);
extract($phpbb_dispatcher->trigger_event('core.ucp_main_front_modify_sql', compact($vars)));
$sql = "SELECT t.* $sql_select
FROM $sql_from
WHERE t.topic_type = " . POST_GLOBAL . '
@@ -144,7 +160,7 @@ class ucp_main
$folder_img .= '_mine';
}
$template->assign_block_vars('topicrow', array(
$topicrow = array(
'FORUM_ID' => $forum_id,
'TOPIC_ID' => $topic_id,
'TOPIC_AUTHOR' => get_username_string('username', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
@@ -171,8 +187,30 @@ class ucp_main
'U_LAST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;p=" . $row['topic_last_post_id']) . '#p' . $row['topic_last_post_id'],
'U_LAST_POST_AUTHOR' => get_username_string('profile', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
'U_NEWEST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;view=unread") . '#unread',
'U_VIEW_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id"))
'U_VIEW_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id"),
);
/**
* Add template variables to a front topics row.
*
* @event core.ucp_main_front_modify_template_vars
* @var array topicrow Array containing the template variables for the row
* @var array row Array containing the subscribed forum row data
* @var int forum_id Forum ID
* @var string folder_img Folder image
* @var string folder_alt Alt text for the folder image
* @since 3.2.4-RC1
*/
$vars = array(
'topicrow',
'row',
'forum_id',
'folder_img',
'folder_alt',
);
extract($phpbb_dispatcher->trigger_event('core.ucp_main_front_modify_template_vars', compact($vars)));
$template->assign_block_vars('topicrow', $topicrow);
}
if ($config['load_user_activity'])
@@ -502,6 +540,9 @@ class ucp_main
$draft_subject = $draft_message = '';
add_form_key('ucp_draft');
include_once($phpbb_root_path . 'includes/message_parser.' . $phpEx);
$message_parser = new parse_message();
if ($delete)
{
if (check_form_key('ucp_draft'))
@@ -535,9 +576,19 @@ class ucp_main
{
if ($draft_message && $draft_subject)
{
// $auth->acl_gets can't be used here because it will check for global forum permissions in this case
// In general we don't need too harsh checking here for permissions, as this will be handled later when submitting
$bbcode_status = $auth->acl_get('u_pm_bbcode') || $auth->acl_getf_global('f_bbcode');
$smilies_status = $auth->acl_get('u_pm_smilies') || $auth->acl_getf_global('f_smilies');
$img_status = $auth->acl_get('u_pm_img') || $auth->acl_getf_global('f_img');
$flash_status = $auth->acl_get('u_pm_flash') || $auth->acl_getf_global('f_flash');
$message_parser->message = $draft_message;
$message_parser->parse($bbcode_status, $config['allow_post_links'], $smilies_status, $img_status, $flash_status, true, $config['allow_post_links']);
$draft_row = array(
'draft_subject' => $draft_subject,
'draft_message' => $draft_message
'draft_message' => $message_parser->message,
);
$sql = 'UPDATE ' . DRAFTS_TABLE . '
@@ -639,9 +690,16 @@ class ucp_main
$insert_url = append_sid("{$phpbb_root_path}ucp.$phpEx", "i=$id&amp;mode=compose&amp;d=" . $draft['draft_id']);
}
if (!$submit)
{
$message_parser->message = $draft['draft_message'];
$message_parser->decode_message();
$draft_message = $message_parser->message;
}
$template_row = array(
'DATE' => $user->format_date($draft['save_time']),
'DRAFT_MESSAGE' => ($submit) ? $draft_message : $draft['draft_message'],
'DRAFT_MESSAGE' => $draft_message,
'DRAFT_SUBJECT' => ($submit) ? $draft_subject : $draft['draft_subject'],
'TITLE' => $title,

View File

@@ -170,6 +170,12 @@ class ucp_pm
trigger_error('NO_AUTH_READ_MESSAGE');
}
if ($view == 'print' && (!$config['print_pm'] || !$auth->acl_get('u_pm_printpm')))
{
send_status_line(403, 'Forbidden');
trigger_error('NO_AUTH_PRINT_MESSAGE');
}
// Do not allow hold messages to be seen
if ($folder_id == PRIVMSGS_HOLD_BOX)
{

View File

@@ -48,7 +48,6 @@ function compose_pm($id, $mode, $action, $user_folders = array())
$to_group_id = $request->variable('g', 0);
$msg_id = $request->variable('p', 0);
$draft_id = $request->variable('d', 0);
$lastclick = $request->variable('lastclick', 0);
// Reply to all triggered (quote/reply)
$reply_to_all = $request->variable('reply_to_all', 0);
@@ -80,7 +79,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
$group_helper = $phpbb_container->get('group_helper');
// Was cancel pressed? If so then redirect to the appropriate page
if ($cancel || ($current_time - $lastclick < 2 && $submit))
if ($cancel)
{
if ($msg_id)
{
@@ -125,7 +124,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
// Add groups to PM box
if ($config['allow_mass_pm'] && $auth->acl_get('u_masspm_group'))
{
$sql = 'SELECT g.group_id, g.group_name, g.group_type
$sql = 'SELECT g.group_id, g.group_name, g.group_type, g.group_colour
FROM ' . GROUPS_TABLE . ' g';
if (!$auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
@@ -148,7 +147,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
$group_options = '';
while ($row = $db->sql_fetchrow($result))
{
$group_options .= '<option' . (($row['group_type'] == GROUP_SPECIAL) ? ' class="sep"' : '') . ' value="' . $row['group_id'] . '">' . $group_helper->get_name($row['group_name']) . '</option>';
$group_options .= '<option' . (($row['group_type'] == GROUP_SPECIAL) ? ' class="sep"' : '') . ' value="' . $row['group_id'] . '"' . ($row['group_colour'] ? ' style="color: #' . $row['group_colour'] . '"' : '') . '>' . $group_helper->get_name($row['group_name']) . '</option>';
}
$db->sql_freeresult($result);
}
@@ -659,13 +658,16 @@ function compose_pm($id, $mode, $action, $user_folders = array())
{
if (confirm_box(true))
{
$message_parser->message = $message;
$message_parser->parse($bbcode_status, $url_status, $smilies_status, $img_status, $flash_status, true, $url_status);
$sql = 'INSERT INTO ' . DRAFTS_TABLE . ' ' . $db->sql_build_array('INSERT', array(
'user_id' => $user->data['user_id'],
'topic_id' => 0,
'forum_id' => 0,
'save_time' => $current_time,
'draft_subject' => $subject,
'draft_message' => $message
'draft_message' => $message_parser->message,
)
);
$db->sql_query($sql);
@@ -954,7 +956,16 @@ function compose_pm($id, $mode, $action, $user_folders = array())
$post_id = $request->variable('p', 0);
if ($config['allow_post_links'])
{
$message_link = "[url=" . generate_board_url() . "/viewtopic.$phpEx?p={$post_id}#p{$post_id}]{$user->lang['SUBJECT']}{$user->lang['COLON']} {$message_subject}[/url]\n\n";
$message_link = generate_board_url() . "/viewtopic.$phpEx?p={$post_id}#p{$post_id}";
$message_link_subject = "{$user->lang['SUBJECT']}{$user->lang['COLON']} {$message_subject}";
if ($bbcode_status)
{
$message_link = "[url=" . $message_link . "]" . $message_link_subject . "[/url]\n\n";
}
else
{
$message_link = $message_link . " - " . $message_link_subject . "\n\n";
}
}
else
{
@@ -974,11 +985,8 @@ function compose_pm($id, $mode, $action, $user_folders = array())
{
$quote_attributes['post_id'] = $post['msg_id'];
}
$quote_text = $phpbb_container->get('text_formatter.utils')->generate_quote(
censor_text($message_parser->message),
$quote_attributes
);
$message_parser->message = $message_link . $quote_text . "\n\n";
phpbb_format_quote($bbcode_status, $quote_attributes, $phpbb_container->get('text_formatter.utils'), $message_parser, $message_link);
}
if (($action == 'reply' || $action == 'quote' || $action == 'quotepost') && !$preview && !$refresh)
@@ -1174,8 +1182,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
break;
}
$s_hidden_fields = '<input type="hidden" name="lastclick" value="' . $current_time . '" />';
$s_hidden_fields .= (isset($check_value)) ? '<input type="hidden" name="status_switch" value="' . $check_value . '" />' : '';
$s_hidden_fields = (isset($check_value)) ? '<input type="hidden" name="status_switch" value="' . $check_value . '" />' : '';
$s_hidden_fields .= ($draft_id || isset($_REQUEST['draft_loaded'])) ? '<input type="hidden" name="draft_loaded" value="' . ((isset($_REQUEST['draft_loaded'])) ? $request->variable('draft_loaded', 0) : $draft_id) . '" />' : '';
$form_enctype = (@ini_get('file_uploads') == '0' || strtolower(@ini_get('file_uploads')) == 'off' || !$config['allow_pm_attach'] || !$auth->acl_get('u_pm_attach')) ? '' : ' enctype="multipart/form-data"';
@@ -1262,7 +1269,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
function handle_message_list_actions(&$address_list, &$error, $remove_u, $remove_g, $add_to, $add_bcc)
{
global $auth, $db, $user;
global $request;
global $request, $phpbb_dispatcher;
// Delete User [TO/BCC]
if ($remove_u && $request->variable('remove_u', array(0 => '')))
@@ -1439,6 +1446,21 @@ function handle_message_list_actions(&$address_list, &$error, $remove_u, $remove
$error[] = $user->lang['PM_USERS_REMOVED_NO_PERMISSION'];
}
}
/**
* Event for additional message list actions
*
* @event core.message_list_actions
* @var array address_list The assoc array with the recipient user/group ids
* @var array error The array containing error data
* @var bool remove_u The variable for removing a user
* @var bool remove_g The variable for removing a group
* @var bool add_to The variable for adding a user to the [TO] field
* @var bool add_bcc The variable for adding a user to the [BCC] field
* @since 3.2.4-RC1
*/
$vars = array('address_list', 'error', 'remove_u', 'remove_g', 'add_to', 'add_bcc');
extract($phpbb_dispatcher->trigger_event('core.message_list_actions', compact($vars)));
}
/**

View File

@@ -296,7 +296,9 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
* @var array cp_row Array with senders custom profile field data
* @var array msg_data Template array with message data
* @var array user_info User data of the sender
* @var array attachments Attachments data
* @since 3.2.2-RC1
* @changed 3.2.5-RC1 Added attachments
*/
$vars = array(
'id',
@@ -308,6 +310,7 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
'cp_row',
'msg_data',
'user_info',
'attachments',
);
extract($phpbb_dispatcher->trigger_event('core.ucp_pm_view_message', compact($vars)));

View File

@@ -159,7 +159,7 @@ class ucp_profile
$phpbb_log->add('user', $user->data['user_id'], $user->ip, 'LOG_USER_UPDATE_EMAIL', false, array(
'reportee_id' => $user->data['user_id'],
$user->data['username'],
$data['user_email'],
$user->data['user_email'],
$data['email']
));
}

View File

@@ -481,6 +481,32 @@ class ucp_register
);
}
/**
* Modify messenger data before welcome mail is sent
*
* @event core.ucp_register_welcome_email_before
* @var array user_row Array with user registration data
* @var array cp_data Array with custom profile fields data
* @var array data Array with current ucp registration data
* @var string message Message to be displayed to the user after registration
* @var string server_url Server URL
* @var int user_id New user ID
* @var string user_actkey User activation key
* @var messenger messenger phpBB Messenger
* @since 3.2.4-RC1
*/
$vars = array(
'user_row',
'cp_data',
'data',
'message',
'server_url',
'user_id',
'user_actkey',
'messenger',
);
extract($phpbb_dispatcher->trigger_event('core.ucp_register_welcome_email_before', compact($vars)));
$messenger->send(NOTIFY_EMAIL);
}
@@ -508,6 +534,30 @@ class ucp_register
}
}
/**
* Perform additional actions after user registration
*
* @event core.ucp_register_register_after
* @var array user_row Array with user registration data
* @var array cp_data Array with custom profile fields data
* @var array data Array with current ucp registration data
* @var string message Message to be displayed to the user after registration
* @var string server_url Server URL
* @var int user_id New user ID
* @var string user_actkey User activation key
* @since 3.2.4-RC1
*/
$vars = array(
'user_row',
'cp_data',
'data',
'message',
'server_url',
'user_id',
'user_actkey',
);
extract($phpbb_dispatcher->trigger_event('core.ucp_register_register_after', compact($vars)));
$message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
trigger_error($message);
}

View File

@@ -50,11 +50,16 @@ class ucp_remind
trigger_error('FORM_INVALID');
}
if (empty($email))
{
trigger_error('NO_EMAIL_USER');
}
$sql_array = array(
'SELECT' => 'user_id, username, user_permissions, user_email, user_jabber, user_notify_type, user_type, user_lang, user_inactive_reason',
'FROM' => array(USERS_TABLE => 'u'),
'WHERE' => "user_email_hash = '" . $db->sql_escape(phpbb_email_hash($email)) . "'
AND username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'"
'WHERE' => "user_email_hash = '" . $db->sql_escape(phpbb_email_hash($email)) . "'" .
(!empty($username) ? " AND username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'" : ''),
);
/**
@@ -74,82 +79,87 @@ class ucp_remind
extract($phpbb_dispatcher->trigger_event('core.ucp_remind_modify_select_sql', compact($vars)));
$sql = $db->sql_build_query('SELECT', $sql_array);
$result = $db->sql_query($sql);
$user_row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$result = $db->sql_query_limit($sql, 2); // don't waste resources on more rows than we need
$rowset = $db->sql_fetchrowset($result);
if (!$user_row)
if (count($rowset) > 1)
{
trigger_error('NO_EMAIL_USER');
$db->sql_freeresult($result);
$template->assign_vars(array(
'USERNAME_REQUIRED' => true,
'EMAIL' => $email,
));
}
if ($user_row['user_type'] == USER_IGNORE)
else
{
trigger_error('NO_USER');
}
$message = $user->lang['PASSWORD_UPDATED_IF_EXISTED'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
if ($user_row['user_type'] == USER_INACTIVE)
{
if ($user_row['user_inactive_reason'] == INACTIVE_MANUAL)
if (empty($rowset))
{
trigger_error('ACCOUNT_DEACTIVATED');
trigger_error($message);
}
else
$user_row = $rowset[0];
$db->sql_freeresult($result);
if (!$user_row)
{
trigger_error('ACCOUNT_NOT_ACTIVATED');
trigger_error($message);
}
if ($user_row['user_type'] == USER_IGNORE || $user_row['user_type'] == USER_INACTIVE)
{
trigger_error($message);
}
// Check users permissions
$auth2 = new \phpbb\auth\auth();
$auth2->acl($user_row);
if (!$auth2->acl_get('u_chgpasswd'))
{
trigger_error($message);
}
$server_url = generate_board_url();
// Make password at least 8 characters long, make it longer if admin wants to.
// gen_rand_string() however has a limit of 12 or 13.
$user_password = gen_rand_string_friendly(max(8, mt_rand((int) $config['min_pass_chars'], (int) $config['max_pass_chars'])));
// For the activation key a random length between 6 and 10 will do.
$user_actkey = gen_rand_string(mt_rand(6, 10));
// Instantiate passwords manager
/* @var $manager \phpbb\passwords\manager */
$passwords_manager = $phpbb_container->get('passwords.manager');
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_newpasswd = '" . $db->sql_escape($passwords_manager->hash($user_password)) . "', user_actkey = '" . $db->sql_escape($user_actkey) . "'
WHERE user_id = " . $user_row['user_id'];
$db->sql_query($sql);
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
$messenger = new messenger(false);
$messenger->template('user_activate_passwd', $user_row['user_lang']);
$messenger->set_addresses($user_row);
$messenger->anti_abuse_headers($config, $user);
$messenger->assign_vars(array(
'USERNAME' => htmlspecialchars_decode($user_row['username']),
'PASSWORD' => htmlspecialchars_decode($user_password),
'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k=$user_actkey")
);
$messenger->send($user_row['user_notify_type']);
trigger_error($message);
}
// Check users permissions
$auth2 = new \phpbb\auth\auth();
$auth2->acl($user_row);
if (!$auth2->acl_get('u_chgpasswd'))
{
send_status_line(403, 'Forbidden');
trigger_error('NO_AUTH_PASSWORD_REMINDER');
}
$server_url = generate_board_url();
// Make password at least 8 characters long, make it longer if admin wants to.
// gen_rand_string() however has a limit of 12 or 13.
$user_password = gen_rand_string_friendly(max(8, mt_rand((int) $config['min_pass_chars'], (int) $config['max_pass_chars'])));
// For the activation key a random length between 6 and 10 will do.
$user_actkey = gen_rand_string(mt_rand(6, 10));
// Instantiate passwords manager
/* @var $manager \phpbb\passwords\manager */
$passwords_manager = $phpbb_container->get('passwords.manager');
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_newpasswd = '" . $db->sql_escape($passwords_manager->hash($user_password)) . "', user_actkey = '" . $db->sql_escape($user_actkey) . "'
WHERE user_id = " . $user_row['user_id'];
$db->sql_query($sql);
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
$messenger = new messenger(false);
$messenger->template('user_activate_passwd', $user_row['user_lang']);
$messenger->set_addresses($user_row);
$messenger->anti_abuse_headers($config, $user);
$messenger->assign_vars(array(
'USERNAME' => htmlspecialchars_decode($user_row['username']),
'PASSWORD' => htmlspecialchars_decode($user_password),
'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k=$user_actkey")
);
$messenger->send($user_row['user_notify_type']);
meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
$message = $user->lang['PASSWORD_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
trigger_error($message);
}
$template->assign_vars(array(

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.2.5',
'author' => '<a href="https://www.phpbb.com/">phpBB Limited</a>',
'dbms' => $dbms,
'dbhost' => $dbhost,

View File

@@ -1694,7 +1694,6 @@ function phpbb_import_attach_config()
$config->set('img_create_thumbnail', $attach_config['img_create_thumbnail']);
$config->set('img_max_thumb_width', 400);
$config->set('img_min_thumb_filesize', $attach_config['img_min_thumb_filesize']);
$config->set('img_imagick', $attach_config['img_imagick']);
}
/**

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.2.5-RC1');
$phpbb_root_path = __DIR__ . '/../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);

View File

@@ -149,7 +149,6 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('hot_threshold', '2
INSERT INTO phpbb_config (config_name, config_value) VALUES ('icons_path', 'images/icons');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_create_thumbnail', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_display_inlined', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_imagick', '');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_link_height', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_link_width', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('img_max_height', '0');
@@ -280,7 +279,7 @@ 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.2.5-RC1');
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');

View File

@@ -111,8 +111,6 @@ $lang = array_merge($lang, array(
'IMAGE_LINK_SIZE' => 'Image link dimensions',
'IMAGE_LINK_SIZE_EXPLAIN' => 'Display image attachment as an inline text link if image is larger than this. To disable this behaviour, set the values to 0px by 0px.',
'IMAGICK_PATH' => 'ImageMagick path',
'IMAGICK_PATH_EXPLAIN' => 'Full path to the imagemagick convert application, e.g. <samp>/usr/bin/</samp>.',
'MAX_ATTACHMENTS' => 'Maximum number of attachments per post',
'MAX_ATTACHMENTS_PM' => 'Maximum number of attachments per private message',
@@ -135,7 +133,6 @@ $lang = array_merge($lang, array(
'NO_EXT_GROUP_SPECIFIED' => 'No extension group specified.',
'NO_FILE_CAT' => 'None',
'NO_IMAGE' => 'No image',
'NO_THUMBNAIL_SUPPORT' => 'Thumbnail support has been disabled. For proper functionality either the GD extension need to be available or imagemagick being installed. Both were not found.',
'NO_UPLOAD_DIR' => 'The upload directory you specified does not exist.',
'NO_WRITE_UPLOAD' => 'The upload directory you specified cannot be written to. Please alter the permissions to allow the webserver to write to it.',
@@ -147,7 +144,6 @@ $lang = array_merge($lang, array(
'REMOVE_DISALLOWED_IPS' => 'Remove or un-exclude <em>disallowed</em> IPs/hostnames',
'RESYNC_FILES_STATS_CONFIRM' => 'Are you sure you wish to resynchronise file statistics?',
'SEARCH_IMAGICK' => 'Search for ImageMagick',
'SECURE_ALLOW_DENY' => 'Allow/Deny list',
'SECURE_ALLOW_DENY_EXPLAIN' => 'Change the default behaviour when secure downloads are enabled of the Allow/Deny list to that of a <strong>whitelist</strong> (Allow) or a <strong>blacklist</strong> (Deny).',
'SECURE_DOWNLOADS' => 'Enable secure downloads',

View File

@@ -348,7 +348,7 @@ $lang = array_merge($lang, array(
// Cookie Settings
$lang = array_merge($lang, array(
'ACP_COOKIE_SETTINGS_EXPLAIN' => 'These details define the data used to send cookies to your users browsers. In most cases the default values for the cookie settings should be sufficient. If you do need to change any do so with care, incorrect settings can prevent users logging in. If you have problems with users staying logging in to your board, visit the <b><a href="https://www.phpbb.com/support/go/cookie-settings/">phpBB.com Knowledge Base - Fixing incorrect cookie settings</a></b>.',
'ACP_COOKIE_SETTINGS_EXPLAIN' => 'These details define the data used to send cookies to your users browsers. In most cases the default values for the cookie settings should be sufficient. If you do need to change any do so with care, incorrect settings can prevent users logging in. If you have problems with users staying logging in to your board, visit the <strong><a href="https://www.phpbb.com/support/go/cookie-settings">phpBB.com Knowledge Base - Fixing incorrect cookie settings</a></strong>.',
'COOKIE_DOMAIN' => 'Cookie domain',
'COOKIE_DOMAIN_EXPLAIN' => 'In most cases the cookie domain is optional. Leave it blank if you are unsure.<br><br> In the case where you have a board integrated with other software or have multiple domains, then to determine the cookie domain you need to do the following. If you have something like <i>example.com</i> and <i>forums.example.com</i>, or perhaps <i>forums.example.com</i> and <i>blog.example.com</i>. Remove the subdomains until you find the common domain, <i>example.com</i>. Now add a dot in front of the common domain and you would enter .example.com (note the dot at the beginning).',
@@ -371,7 +371,7 @@ $lang = array_merge($lang, array(
'ACP_CONTACT_SETTINGS_EXPLAIN' => 'Here you can enable and disable the contact page and also add a text that is displayed on the page.',
'CONTACT_US_ENABLE' => 'Enable contact page',
'CONTACT_US_ENABLE_EXPLAIN' => 'This page allows users to send emails to board administrators. Please note that board-wide emails option must be enabled as well. You can find this option in General > Client Communication > Email settings.',
'CONTACT_US_ENABLE_EXPLAIN' => 'This page allows users to send emails to board administrators. Please note that board-wide emails option must be enabled as well. You can find this option in General &gt; Client Communication &gt; Email settings.',
'CONTACT_US_INFO' => 'Contact information',
'CONTACT_US_INFO_EXPLAIN' => 'The message is displayed on the contact page',
@@ -404,10 +404,10 @@ $lang = array_merge($lang, array(
'READ_NOTIFICATION_EXPIRE_DAYS_EXPLAIN' => 'Number of days that will elapse before a read notification will automatically be deleted. Set this value to 0 to make notifications permanent.',
'RECOMPILE_STYLES' => 'Recompile stale style components',
'RECOMPILE_STYLES_EXPLAIN' => 'Check for updated style components on filesystem and recompile.',
'YES_ACCURATE_PM_BUTTON' => 'Enable permission specific PM button in topic pages',
'YES_ACCURATE_PM_BUTTON_EXPLAIN' => 'If this setting is enabled, only post profiles of users who are permitted to read private messages will have a private message button.',
'YES_ANON_READ_MARKING' => 'Enable topic marking for guests',
'YES_ANON_READ_MARKING_EXPLAIN' => 'Stores read/unread status information for guests. If disabled, posts are always marked read for guests.',
'YES_ACCURATE_PM_BUTTON' => 'Enable accurate PM indicator in topic pages',
'YES_ACCURATE_PM_BUTTON_EXPLAIN' => 'If this setting is enabled, only users who are permitted to read private messages will have a private message button.',
'YES_BIRTHDAYS' => 'Enable birthday listing',
'YES_BIRTHDAYS_EXPLAIN' => 'If disabled the birthday listing is no longer displayed. To let this setting take effect the birthday feature needs to be enabled too.',
'YES_JUMPBOX' => 'Enable display of jumpbox',

View File

@@ -92,7 +92,7 @@ $lang = array_merge($lang, array(
'GROUP_OPEN' => 'Open',
'GROUP_PENDING' => 'Pending members',
'GROUP_MAX_RECIPIENTS' => 'Maximum number of allowed recipients per private message',
'GROUP_MAX_RECIPIENTS_EXPLAIN' => 'The maximum number of allowed recipients in a private message. The maximum for all groups of the user is used to determine the actual value.<br />Set this value to 0 to overwrite the setting for all users of this group with the board-wide setting.',
'GROUP_MAX_RECIPIENTS_EXPLAIN' => 'The maximum number of allowed recipients in a private message. The maximum for all groups of the user is used to determine the actual value.<br />Set this value to 0 to overwrite the setting for all users of this group with the board-wide setting.',
'GROUP_OPTIONS_SAVE' => 'Group wide options',
'GROUP_PROMOTE' => 'Promote to group leader',
'GROUP_RANK' => 'Group rank',

View File

@@ -161,8 +161,8 @@ $lang = array_merge($lang, array(
'STEP_2_EXPLAIN_EDIT' => 'Here you are able to change some common options.<br /><strong>Please note that changes to profile fields will not affect existing profile fields entered by your users.</strong>',
'STEP_2_TITLE_CREATE' => 'Profile type specific options',
'STEP_2_TITLE_EDIT' => 'Profile type specific options',
'STEP_3_EXPLAIN_CREATE' => 'Since you have more than one board language installed, you have to fill out the remaining language items too. The profile field will work with the default language enabled, you are able to fill out the remaining language items later too.',
'STEP_3_EXPLAIN_EDIT' => 'Since you have more than one board language installed, you now can change or add the remaining language items too. The profile field will work with the default language enabled.',
'STEP_3_EXPLAIN_CREATE' => 'Since you have more than one board language installed, you have to fill out the remaining language items too. If you dont, then default language setting for this custom profile field will be used, you are able to fill out the remaining language items later too.',
'STEP_3_EXPLAIN_EDIT' => 'Since you have more than one board language installed, you now can change or add the remaining language items too. If you dont, then default language setting for this custom profile field will be used.',
'STEP_3_TITLE_CREATE' => 'Remaining language definitions',
'STEP_3_TITLE_EDIT' => 'Language definitions',
'STRING_DEFAULT_VALUE_EXPLAIN' => 'Enter a default phrase to be displayed, a default value. Leave empty if you want to show it empty at the first place.',

View File

@@ -116,7 +116,10 @@ $lang = array_merge($lang, array(
2 => 'The current rate of indexing is approximately %1$.1f posts per second.<br />Indexing in progress…',
),
'SEARCH_INDEX_DELETE_REDIRECT' => array(
2 => 'All posts up to post id %2$d have been removed from the search index.<br />Deleting in progress…',
2 => 'All posts up to post id %2$d have been removed from the search index, of which %1$d posts were within this step.<br />',
),
'SEARCH_INDEX_DELETE_REDIRECT_RATE' => array(
2 => 'The current rate of deleting is approximately %1$.1f posts per second.<br />Deleting in progress…',
),
'SEARCH_INDEX_CREATED' => 'Successfully indexed all posts in the board database.',
'SEARCH_INDEX_REMOVED' => 'Successfully deleted the search index for this backend.',

View File

@@ -49,7 +49,7 @@ $lang = array_merge($lang, array(
'ANSWER' => 'Answer',
'EDIT_QUESTION' => 'Edit Question',
'QUESTIONS' => 'Questions',
'QUESTIONS_EXPLAIN' => 'For every form submission where you have enabled the Q&amp;A plugin, users will be asked one of the questions specified here. To use this plugin at least one question must be set in the default language. These questions should be easy for your target audience to answer but beyond the ability of a bot capable of running a Google™ search. Using a large and regularly changed set of questions will yield the best results. Enable the strict setting if your question relies on mixed case, punctuation or whitespace.',
'QUESTIONS_EXPLAIN' => 'For every form submission where you have enabled the Q&amp;A plugin, users will be asked one of the questions specified here. To use this plugin at least one question must be set in the default language. These questions should be easy for your target audience to answer but beyond the ability of a bot capable of running a Google™ search. Only a single proper question is necessary. If you start receiving spam registrations, the question should be changed. Enable the strict setting if your question relies on mixed case, punctuation or whitespace.',
'QUESTION_DELETED' => 'Question deleted',
'QUESTION_LANG' => 'Language',
'QUESTION_LANG_EXPLAIN' => 'The language this question and its answers are written in.',

View File

@@ -37,7 +37,7 @@ 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(
'RECAPTCHA_LANG' => 'en',
'RECAPTCHA_LANG' => 'en-GB', // Find the language/country code on https://developers.google.com/recaptcha/docs/language - If no code exists for your language you can use "en" or leave the string empty
'RECAPTCHA_NOT_AVAILABLE' => 'In order to use reCaptcha, you must create an account on <a href="http://www.google.com/recaptcha">www.google.com/recaptcha</a>.',
'CAPTCHA_RECAPTCHA' => 'reCaptcha',
'RECAPTCHA_INCORRECT' => 'The solution you provided was incorrect',

View File

@@ -62,7 +62,6 @@ $lang = array_merge($lang, array(
'ACCOUNT_ALREADY_ACTIVATED' => 'Your account has already been activated.',
'ACCOUNT_DEACTIVATED' => 'Your account has been manually deactivated and is only able to be reactivated by an administrator.',
'ACCOUNT_NOT_ACTIVATED' => 'Your account has not been activated yet.',
'ACP' => 'Administration Control Panel',
'ACP_SHORT' => 'ACP',
'ACTIVE' => 'active',
@@ -193,7 +192,7 @@ $lang = array_merge($lang, array(
'DAYS' => 'Days',
'DELETE' => 'Delete',
'DELETE_ALL' => 'Delete all',
'DELETE_COOKIES' => 'Delete all board cookies',
'DELETE_COOKIES' => 'Delete cookies',
'DELETE_MARKED' => 'Delete marked',
'DELETE_POST' => 'Delete post',
'DELIMITER' => 'Delimiter',
@@ -608,6 +607,7 @@ $lang = array_merge($lang, array(
'PREVIOUS' => 'Previous', // Used in pagination
'PREVIOUS_STEP' => 'Previous',
'PRIVACY' => 'Privacy policy',
'PRIVACY_LINK' => 'Privacy',
'PRIVATE_MESSAGE' => 'Private message',
'PRIVATE_MESSAGES' => 'Private messages',
'PRIVATE_MESSAGING' => 'Private messaging',
@@ -732,6 +732,7 @@ $lang = array_merge($lang, array(
'SUBMIT' => 'Submit',
'TB' => 'TB',
'TERMS_LINK' => 'Terms',
'TERMS_USE' => 'Terms of use',
'TEST_CONNECTION' => 'Test connection',
'THE_TEAM' => 'The team',

View File

@@ -1,4 +1,5 @@
Subject: Forum post notification - "{FORUM_NAME}"
List-Unsubscribe: <{U_STOP_WATCHING_FORUM}>
Hello {USERNAME},

View File

@@ -1,4 +1,5 @@
Subject: New topic notification - "{FORUM_NAME}"
List-Unsubscribe: <{U_STOP_WATCHING_FORUM}>
Hello {USERNAME},
@@ -6,6 +7,10 @@ You are receiving this notification because you are watching the forum "{FORUM_N
{U_FORUM}
To see new topic directly, visit the following link:
{U_TOPIC}
If you no longer wish to watch this forum you can either click the "Unsubscribe forum" link found in the forum above, or by clicking the following link:
{U_STOP_WATCHING_FORUM}

View File

@@ -1,4 +1,5 @@
Subject: Topic reply notification - "{TOPIC_TITLE}"
List-Unsubscribe: <{U_STOP_WATCHING_TOPIC}>
Hello {USERNAME},

View File

@@ -111,8 +111,8 @@ $lang = array_merge($lang, array(
'HELP_FAQ_LOGIN_CANNOT_REGISTER_QUESTION' => 'Why cant I register?',
'HELP_FAQ_LOGIN_COPPA_ANSWER' => 'COPPA, or the Childrens Online Privacy Protection Act of 1998, is a law in the United States requiring websites which can potentially collect information from minors under the age of 13 to have written parental consent or some other method of legal guardian acknowledgment, allowing the collection of personally identifiable information from a minor under the age of 13. If you are unsure if this applies to you as someone trying to register or to the website you are trying to register on, contact legal counsel for assistance. Please note that phpBB Limited and the owners of this board cannot provide legal advice and is not a point of contact for legal concerns of any kind, except as outlined in question “Who do I contact about abusive and/or legal matters related to this board?”.',
'HELP_FAQ_LOGIN_COPPA_QUESTION' => 'What is COPPA?',
'HELP_FAQ_LOGIN_DELETE_COOKIES_ANSWER' => '“Delete all board cookies” deletes the cookies created by phpBB which keep you authenticated and logged into the board. Cookies also provide functions such as read tracking if they have been enabled by a board administrator. If you are having login or logout problems, deleting board cookies may help.',
'HELP_FAQ_LOGIN_DELETE_COOKIES_QUESTION' => 'What does the “Delete all board cookies” do?',
'HELP_FAQ_LOGIN_DELETE_COOKIES_ANSWER' => '“Delete cookies” deletes the cookies created by phpBB which keep you authenticated and logged into the board. Cookies also provide functions such as read tracking if they have been enabled by a board administrator. If you are having login or logout problems, deleting board cookies may help.',
'HELP_FAQ_LOGIN_DELETE_COOKIES_QUESTION' => 'What does the “Delete cookies” do?',
'HELP_FAQ_LOGIN_LOST_PASSWORD_ANSWER' => 'Dont panic! While your password cannot be retrieved, it can easily be reset. Visit the login page and click <em>I forgot my password</em>. Follow the instructions and you should be able to log in again shortly.<br />However, if you are not able to reset your password, contact a board administrator.',
'HELP_FAQ_LOGIN_LOST_PASSWORD_QUESTION' => 'Ive lost my password!',
'HELP_FAQ_LOGIN_REGISTER_ANSWER' => 'You may not have to, it is up to the administrator of the board as to whether you need to register in order to post messages. However; registration will give you access to additional features not available to guest users such as definable avatar images, private messaging, emailing of fellow users, usergroup subscription, etc. It only takes a few moments to register so it is recommended you do so.',

View File

@@ -373,10 +373,10 @@ $lang = array_merge($lang, array(
'NO_AUTH_EDIT_MESSAGE' => 'You are not authorised to edit private messages.',
'NO_AUTH_FORWARD_MESSAGE' => 'You are not authorised to forward private messages.',
'NO_AUTH_GROUP_MESSAGE' => 'You are not authorised to send private messages to groups.',
'NO_AUTH_PASSWORD_REMINDER' => 'You are not authorised to request a new password.',
'NO_AUTH_PROFILEINFO' => 'You are not authorised to change your profile information.',
'NO_AUTH_READ_HOLD_MESSAGE' => 'You are not authorised to read private messages that are on hold.',
'NO_AUTH_READ_MESSAGE' => 'You are not authorised to read private messages.',
'NO_AUTH_PRINT_MESSAGE' => 'You are not authorised to print private messages.',
'NO_AUTH_READ_REMOVED_MESSAGE' => 'You are not able to read this message because it was removed by the author.',
'NO_AUTH_SEND_MESSAGE' => 'You are not authorised to send private messages.',
'NO_AUTH_SIGNATURE' => 'You are not authorised to define a signature.',
@@ -386,6 +386,7 @@ $lang = array_merge($lang, array(
'NO_BOOKMARKS_SELECTED' => 'You have selected no bookmarks.',
'NO_EDIT_READ_MESSAGE' => 'Private message cannot be edited because it has already been read.',
'NO_EMAIL_USER' => 'The email/username information submitted could not be found.',
'EMAIL_NOT_UNIQUE' => 'Email you specified is used by multiple users. You must specify username as well.',
'NO_FOES' => 'No foes currently defined',
'NO_FRIENDS' => 'No friends currently defined',
'NO_FRIENDS_OFFLINE' => 'No friends offline',
@@ -411,7 +412,7 @@ $lang = array_merge($lang, array(
'PASS_TYPE_SYMBOL_EXPLAIN' => 'Password must be between %1$s and %2$s long, must contain letters in mixed case, must contain numbers and must contain symbols.',
'PASSWORD' => 'Password',
'PASSWORD_ACTIVATED' => 'Your new password has been activated.',
'PASSWORD_UPDATED' => 'A new password was sent to your registered email address.',
'PASSWORD_UPDATED_IF_EXISTED' => 'If your account exists, a new password was sent to your registered email address. If you do not receive an email, it may be because you are banned, your account is not activated, or you are not allowed to change your password. Contact admin if any of those reasons apply. Also, check your spam filter.',
'PERMISSIONS_RESTORED' => 'Successfully restored original permissions.',
'PERMISSIONS_TRANSFERRED' => 'Successfully transferred permissions from <strong>%s</strong>, you are now able to browse the board with this users permissions.<br />Please note that admin permissions were not transferred. You are able to revert to your permission set at any time.',
'PM_DISABLED' => 'Private messaging has been disabled on this board.',

View File

@@ -88,6 +88,7 @@ $lang = array_merge($lang, array(
'NO_UNREAD_POSTS' => 'There are no new unread posts for this topic.',
'NO_VOTE_OPTION' => 'You must specify an option when voting.',
'NO_VOTES' => 'No votes',
'NO_AUTH_PRINT_TOPIC' => 'You are not authorised to print topics.',
'POLL_ENDED_AT' => 'Poll ended at %s',
'POLL_RUN_TILL' => 'Poll runs till %s',

View File

@@ -173,7 +173,7 @@ switch ($mode)
'LEFT_JOIN' => array(
array(
'FROM' => array(USERS_TABLE => 'u'),
'ON' => 'ug.user_id = u.user_id AND ug.user_pending = 0',
'ON' => 'ug.user_id = u.user_id',
),
array(
'FROM' => array(GROUPS_TABLE => 'g'),
@@ -181,7 +181,7 @@ switch ($mode)
),
),
'WHERE' => $db->sql_in_set('g.group_id', $group_ids, false, true),
'WHERE' => $db->sql_in_set('g.group_id', $group_ids, false, true) . ' AND ug.user_pending = 0',
'ORDER_BY' => 'u.username_clean ASC',
);

View File

@@ -104,6 +104,8 @@ class delete
$this->set_sql_constraints($mode);
$sql_id = $this->sql_id;
/**
* Perform additional actions before collecting data for attachment(s) deletion
*
@@ -122,11 +124,21 @@ class delete
);
extract($this->dispatcher->trigger_event('core.delete_attachments_collect_data_before', compact($vars)));
$this->sql_id = $sql_id;
unset($sql_id);
// Collect post and topic ids for later use if we need to touch remaining entries (if resync is enabled)
$this->collect_attachment_info($resync);
// Delete attachments from database
$this->delete_attachments_from_db();
$this->delete_attachments_from_db($mode, $ids, $resync);
$sql_id = $this->sql_id;
$post_ids = $this->post_ids;
$topic_ids = $this->topic_ids;
$message_ids = $this->message_ids;
$physical = $this->physical;
$num_deleted = $this->num_deleted;
/**
* Perform additional actions after attachment(s) deletion from the database
@@ -156,13 +168,21 @@ class delete
);
extract($this->dispatcher->trigger_event('core.delete_attachments_from_database_after', compact($vars)));
$this->sql_id = $sql_id;
$this->post_ids = $post_ids;
$this->topic_ids = $topic_ids;
$this->message_ids = $message_ids;
$this->physical = $physical;
$this->num_deleted = $num_deleted;
unset($sql_id, $post_ids, $topic_ids, $message_ids, $physical, $num_deleted);
if (!$this->num_deleted)
{
return 0;
}
// Delete attachments from filesystem
$this->remove_from_filesystem();
$this->remove_from_filesystem($mode, $ids, $resync);
// If we do not resync, we do not need to adjust any message, post, topic or user entries
if (!$resync)
@@ -288,8 +308,14 @@ class delete
/**
* Delete attachments from database table
*/
protected function delete_attachments_from_db()
protected function delete_attachments_from_db($mode, $ids, $resync)
{
$sql_id = $this->sql_id;
$post_ids = $this->post_ids;
$topic_ids = $this->topic_ids;
$message_ids = $this->message_ids;
$physical = $this->physical;
/**
* Perform additional actions before attachment(s) deletion
*
@@ -316,6 +342,13 @@ class delete
);
extract($this->dispatcher->trigger_event('core.delete_attachments_before', compact($vars)));
$this->sql_id = $sql_id;
$this->post_ids = $post_ids;
$this->topic_ids = $topic_ids;
$this->message_ids = $message_ids;
$this->physical = $physical;
unset($sql_id, $post_ids, $topic_ids, $message_ids, $physical);
// Delete attachments
$sql = 'DELETE FROM ' . ATTACHMENTS_TABLE . '
WHERE ' . $this->db->sql_in_set($this->sql_id, $this->ids);
@@ -329,7 +362,7 @@ class delete
/**
* Delete attachments from filesystem
*/
protected function remove_from_filesystem()
protected function remove_from_filesystem($mode, $ids, $resync)
{
$space_removed = $files_removed = 0;
@@ -348,6 +381,13 @@ class delete
}
}
$sql_id = $this->sql_id;
$post_ids = $this->post_ids;
$topic_ids = $this->topic_ids;
$message_ids = $this->message_ids;
$physical = $this->physical;
$num_deleted = $this->num_deleted;
/**
* Perform additional actions after attachment(s) deletion from the filesystem
*
@@ -380,6 +420,14 @@ class delete
);
extract($this->dispatcher->trigger_event('core.delete_attachments_from_filesystem_after', compact($vars)));
$this->sql_id = $sql_id;
$this->post_ids = $post_ids;
$this->topic_ids = $topic_ids;
$this->message_ids = $message_ids;
$this->physical = $physical;
$this->num_deleted = $num_deleted;
unset($sql_id, $post_ids, $topic_ids, $message_ids, $physical, $num_deleted);
if ($space_removed || $files_removed)
{
$this->config->increment('upload_dir_size', $space_removed * (-1), false);

View File

@@ -158,7 +158,7 @@ class local extends \phpbb\avatar\driver\driver
*/
protected function get_avatar_list($user)
{
$avatar_list = ($this->cache == null) ? false : $this->cache->get('_avatar_local_list');
$avatar_list = ($this->cache == null) ? false : $this->cache->get('_avatar_local_list_' . $user->data['user_lang']);
if ($avatar_list === false)
{
@@ -198,7 +198,7 @@ class local extends \phpbb\avatar\driver\driver
if ($this->cache != null)
{
$this->cache->put('_avatar_local_list', $avatar_list, 86400);
$this->cache->put('_avatar_local_list_' . $user->data['user_lang'], $avatar_list, 86400);
}
}

View File

@@ -21,6 +21,12 @@ class manager
*/
protected $config;
/**
* phpBB event dispatcher
* @var \phpbb\event\dispatcher_interface
*/
protected $phpbb_dispatcher;
/**
* Array that contains a list of enabled drivers
* @var array
@@ -49,11 +55,13 @@ class manager
* Construct an avatar manager object
*
* @param \phpbb\config\config $config phpBB configuration
* @param \phpbb\event\dispatcher_interface $phpbb_dispatcher phpBB event dispatcher
* @param array $avatar_drivers Avatar drivers passed via the service container
*/
public function __construct(\phpbb\config\config $config, $avatar_drivers)
public function __construct(\phpbb\config\config $config, \phpbb\event\dispatcher_interface $phpbb_dispatcher, $avatar_drivers)
{
$this->config = $config;
$this->phpbb_dispatcher = $phpbb_dispatcher;
$this->register_avatar_drivers($avatar_drivers);
}
@@ -331,6 +339,19 @@ class manager
WHERE user_avatar = '" . $db->sql_escape($avatar_data['avatar']) . "'";
$db->sql_query($sql);
}
/**
* Event is triggered after user avatar has been deleted
*
* @event core.avatar_manager_avatar_delete_after
* @var \phpbb\user user phpBB user object
* @var array avatar_data Normalised avatar-related user data
* @var string table Table to delete avatar from
* @var string prefix Column prefix to delete avatar from
* @since 3.2.4-RC1
*/
$vars = array('user', 'avatar_data', 'table', 'prefix');
extract($this->phpbb_dispatcher->trigger_event('core.avatar_manager_avatar_delete_after', compact($vars)));
}
/**

View File

@@ -25,7 +25,11 @@ class apcu extends \phpbb\cache\driver\memory
*/
function purge()
{
apcu_clear_cache();
/*
* Use an iterator to selectively delete our cache entries without disturbing
* any other cache users (e.g. other phpBB boards hosted on this server)
*/
apcu_delete(new \APCUIterator('#^' . $this->key_prefix . '#'));
parent::purge();
}

View File

@@ -51,10 +51,11 @@ abstract class memory extends \phpbb\cache\driver\base
function load()
{
// grab the global cache
$this->vars = $this->_read('global');
$data = $this->_read('global');
if ($this->vars !== false)
if ($data !== false)
{
$this->vars = $data;
return true;
}

View File

@@ -55,21 +55,26 @@ class prune_all_forums extends \phpbb\cron\task\base
include($this->phpbb_root_path . 'includes/functions_admin.' . $this->php_ext);
}
$sql = 'SELECT forum_id, prune_next, enable_prune, prune_days, prune_viewed, forum_flags, prune_freq
FROM ' . FORUMS_TABLE . "
WHERE enable_prune = 1
AND prune_next < " . time();
$sql = 'SELECT forum_id, prune_next, enable_prune, prune_days, prune_viewed, enable_shadow_prune, prune_shadow_days, prune_shadow_freq, prune_shadow_next, forum_flags, prune_freq
FROM ' . FORUMS_TABLE;
$result = $this->db->sql_query($sql);
while ($row = $this->db->sql_fetchrow($result))
{
if ($row['prune_days'])
if ($row['enable_prune'] && $row['prune_next'] < time())
{
auto_prune($row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']);
}
if ($row['prune_days'])
{
auto_prune($row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']);
}
if ($row['prune_viewed'])
if ($row['prune_viewed'])
{
auto_prune($row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']);
}
}
if ($row['enable_shadow_prune'] && $row['prune_shadow_next'] < time() && $row['prune_shadow_days'])
{
auto_prune($row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']);
auto_prune($row['forum_id'], 'shadow', $row['forum_flags'], $row['prune_shadow_days'], $row['prune_shadow_freq']);
}
}
$this->db->sql_freeresult($result);

View File

@@ -60,6 +60,14 @@ abstract class mssql_base extends \phpbb\db\driver\driver
return $expression . " ESCAPE '\\'";
}
/**
* {@inheritDoc}
*/
function cast_expr_to_bigint($expression)
{
return 'CONVERT(BIGINT, ' . $expression . ')';
}
/**
* Build db-specific query data
* @access private

View File

@@ -268,7 +268,7 @@ class mssqlnative extends \phpbb\db\driver\mssql_base
unset($row['line2'], $row['line3']);
}
}
return (count($row)) ? $row : false;
return ($row !== null) ? $row : false;
}
/**

View File

@@ -17,7 +17,12 @@ class auth_provider_oauth extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return $this->db_tools->sql_table_exists($this->table_prefix . 'auth_provider_oauth');
return $this->db_tools->sql_table_exists($this->table_prefix . 'oauth_tokens');
}
static public function depends_on()
{
return array('\phpbb\db\migration\data\v30x\release_3_0_0');
}
public function update_schema()

View File

@@ -32,10 +32,7 @@ class add_help_phpbb extends \phpbb\db\migration\migration
return array(
array('config.add', array('help_send_statistics', true)),
array('config.add', array('help_send_statistics_time', 0)),
array('if', array(
array('module.exists', array('acp', false, 'ACP_SEND_STATISTICS')),
array('module.remove', array('acp', false, 'ACP_SEND_STATISTICS')),
)),
array('module.remove', array('acp', false, 'ACP_SEND_STATISTICS')),
array('module.add', array(
'acp',
'ACP_SERVER_CONFIGURATION',

View File

@@ -85,13 +85,11 @@ class remove_outdated_media extends \phpbb\db\migration\migration
WHERE ' . $this->db->sql_in_set('group_id', $group_ids);
}
$result = $this->db->sql_query($sql);
$this->db->sql_freeresult($result);
$this->db->sql_query($sql);
// delete the now empty, outdated media extension groups
$sql = 'DELETE FROM ' . EXTENSION_GROUPS_TABLE . '
WHERE ' . $this->db->sql_in_set('group_id', $group_ids);
$result = $this->db->sql_query($sql);
$this->db->sql_freeresult($result);
$this->db->sql_query($sql);
}
}

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\db\migration\data\v32x;
class forum_topics_per_page_type extends \phpbb\db\migration\migration
{
static public function depends_on()
{
return array(
'\phpbb\db\migration\data\v32x\v323',
);
}
public function update_schema()
{
return array(
'change_columns' => array(
$this->table_prefix . 'forums' => array(
'forum_topics_per_page' => array('USINT', 0),
),
),
);
}
}

View File

@@ -0,0 +1,31 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v32x;
class remove_imagick extends \phpbb\db\migration\migration
{
static public function depends_on()
{
return array(
'\phpbb\db\migration\data\v32x\v324rc1',
);
}
public function update_data()
{
return array(
array('config.remove', array('img_imagick')),
);
}
}

View File

@@ -23,6 +23,7 @@ class v322rc1 extends \phpbb\db\migration\migration
static public function depends_on()
{
return array(
'\phpbb\db\migration\data\v32x\v321',
'\phpbb\db\migration\data\v32x\fix_user_styles',
'\phpbb\db\migration\data\v32x\update_prosilver_bitfield',
'\phpbb\db\migration\data\v32x\email_force_sender',

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\db\migration\data\v32x;
class v323 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.2.3', '>=');
}
static public function depends_on()
{
return array(
'\phpbb\db\migration\data\v32x\v323rc2',
);
}
public function update_data()
{
return array(
array('config.update', array('version', '3.2.3')),
);
}
}

View File

@@ -23,6 +23,7 @@ class v323rc1 extends \phpbb\db\migration\migration
static public function depends_on()
{
return array(
'\phpbb\db\migration\data\v32x\v322',
'\phpbb\db\migration\data\v32x\enable_accurate_pm_button',
);
}

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