1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-09-08 15:20:44 +02:00

Compare commits

...

968 Commits

Author SHA1 Message Date
Marc Alexander
66650cb0e2 [prep-release-3.3.15] Update changelog for 3.3.15-RC1 2025-03-01 21:55:15 +01:00
Marc Alexander
d9e4ce6dde [prep-release-3.3.15] Add migration for 3.3.15-RC1 2025-03-01 21:45:21 +01:00
Marc Alexander
24fc7d5388 [prep-release-3.3.15] Update version numbers to 3.3.15 2025-03-01 21:41:36 +01:00
Marc Alexander
ae40c6365e [prep-release-3.3.15] Update version numbers to 3.3.15-RC1 2025-03-01 21:41:28 +01:00
Marc Alexander
63c110b511 Merge pull request #6785 from marc1706/ticket/17478
[ticket/17478] Add security policy file
2025-03-01 18:12:17 +01:00
Marc Alexander
be67bfbe63 [ticket/17478] Remove versions and reword reporting section
[skip ci]

PHPBB-17478
2025-03-01 17:04:16 +01:00
Marc Alexander
cedbbb0c76 [ticket/17478] Add security policy file
PHPBB-17478
2025-03-01 16:45:36 +01:00
Marc Alexander
a5bf1ff165 Merge pull request #6758 from battye/ticket/17381
[ticket/17381] Topic view count validation
2025-03-01 15:55:40 +01:00
Marc Alexander
08fd9caa11 Merge pull request #6772 from rxu/ticket/17227
[ticket/17227] Fix rows duplication in memberlist
2025-03-01 15:47:55 +01:00
Marc Alexander
746133d005 Merge pull request #6783 from rxu/ticket/17461
[ticket/17461] Add core events to acp_main
2025-03-01 10:23:35 +01:00
battye
29730e49ce [ticket/17381] Add migration for topic_views to ULINT
PHPBB-17381
2025-02-28 03:22:08 +00:00
rxu
8adc853dea [ticket/17461] Add core events to acp_main
PHPBB-17461
2025-02-22 13:28:43 +07:00
Marc Alexander
a223da37fb Merge pull request #6782 from rxu/ticket/17470
[ticket/17470] Fix feed functional tests for master
2025-02-19 17:15:15 +01:00
Marc Alexander
7181c4d591 Merge pull request #6781 from cabot/fix_forumlist_feed_link
[ticket/17471] Fix feed link href for feed icon
2025-02-19 17:11:39 +01:00
rxu
2fa5da1454 [ticket/17470] Fix feed functional tests for master
Symfony DomCrawler component validates form values and throws
InvalidArgumentException for impossible values set.

PHPBB-17470
2025-02-19 21:45:47 +07:00
cabot
77f83306b5 [ticket/17471] Fix feed link href for feed icon
PHPBB-17471
2025-02-18 17:33:30 +01:00
Marc Alexander
4f5ace858d Merge pull request #6780 from Neo-CTC/ticket/17470
[ticket/17470] Feed enable config not enforced
2025-02-16 18:00:31 +01:00
Marc Alexander
f42c4be939 [ticket/17470] Check feed enabled in each handler and add tests
PHPBB-17470
2025-02-16 12:00:36 +01:00
Neo-CTC
bfdf172992 [ticket/17470] Feed enable config not enforced
The 'feed_enable' config is never checked before generating the feeds. The
effective result is that feeds are always enabled, regardless of the setting.

PHPBB-17470
2025-02-16 00:09:45 -06:00
Marc Alexander
6b5bb4d51f Merge pull request #6741 from phpbbtr/patch-5
[ticket/17417] Day selection not visible when no results
2025-02-11 21:28:00 +01:00
phpBB TR
736ef320ed [ticket/17417] Show display options even without search results
PHPBB-17417
2025-02-11 20:59:28 +01:00
Marc Alexander
bf29596bad Merge pull request #6775 from rxu/ticket/17467
[ticket/17467] Provide TLS v.1.3 support for SMTP connections
2025-02-10 20:01:24 +01:00
Marc Alexander
120ae90636 Merge pull request #6777 from rxu/ticket/17468
[ticket/17468] Send reset password link to email only
2025-02-06 20:29:00 +01:00
Marc Alexander
b157e1b0d2 Merge pull request #6771 from Neo-CTC/ticket/17463
[ticket/17463] Remove extraneous '&' from search page urls
2025-02-04 20:33:30 +01:00
rxu
cd47344ee2 [ticket/17468] Send reset password link to email only
PHPBB-17468
2025-02-02 19:46:49 +07:00
rxu
a86f368f3d [ticket/17467] Provide TLS v.1.3 support for SMTP connections
PHPBB-17467
2025-02-02 10:42:29 +07:00
rxu
f9def4a725 [ticket/17227] Fix rows duplication in memberlist
PHPBB-17227
2025-01-23 11:15:47 +07:00
NeoDev
3d6e63154f [ticket/17463] Remove extraneous '&' from search page urls
Normally $u_show_results always starts with '&' as it is appended to the
$u_sort_param variable. Which is fine if $u_sort_param is always populated,
which it is, except when searching for new or unread posts. This fix adds a
check for when $u_sort_param is empty and adds '&' as needed.

PHPBB-17463
2025-01-22 19:31:25 -06:00
Marc Alexander
2f08d8eb72 Merge pull request #6763 from rxu/ticket/17455
[ticket/17455] Fix PHP warning on MySQLi connection failure
2025-01-06 10:57:16 +01:00
rxu
059e82de8f [ticket/17455] Remove outdated mysqli_connect_error function existence check
PHPBB-17455
2025-01-02 20:15:55 +07:00
Marc Alexander
c06bec87dc Merge pull request #6746 from TheBrainOne/ticket/17429
[ticket/17429] Added trigger for event "group_add_user_before"
2024-12-31 15:44:18 +01:00
rxu
7540720c79 [ticket/17455] Fix PHP warning on MySQLi connection failure
PHPBB-17455
2024-12-16 20:04:33 +07:00
Marc Alexander
e73ba63590 Merge pull request #6754 from rxu/ticket/17443
[ticket/17443] Fix various Guzzle client issues for version checks
2024-12-08 17:23:34 +01:00
Marc Alexander
1255febe6b Merge pull request #6756 from kaileymsnay/ticket/17446
[ticket/17446] Add acp_account_activation_edit_add event
2024-12-08 13:02:37 +01:00
Marc Alexander
911f8a5fb7 Merge pull request #6749 from rxu/ticket/17433
[ticket/17433] Clarify wording for use system cron ACP setting
2024-12-02 17:24:37 +01:00
Kailey M Snay
a4879e9249 [ticket/17446] Fix typo
PHPBB-17446
2024-11-29 23:57:35 -05:00
Kailey M Snay
922fde6d53 [ticket/17446] Add $phpbb_dispatcher and docblock updates
PHPBB-17446
2024-11-29 23:02:40 -05:00
Kailey M Snay
332ecb3d9c [ticket/17446] Use array shorthand
PHPBB-17446
2024-11-29 17:03:32 -05:00
Kailey M Snay
8978594d6d [ticket/17446] Add acp_account_activation_edit_add event
Event added for additional account activation methods.

PHPBB-17446
2024-11-29 15:45:42 -05:00
rxu
13945f56a9 [ticket/17443] Use default */* accept header (like curl etc)
PHPBB-17443
2024-11-25 16:06:44 +07:00
rxu
253579761d [ticket/17443] Fix HTTP 403 response to Guzzle client requests for some hosts
PHPBB-17443
2024-11-25 13:30:33 +07:00
rxu
7baba29d9d [ticket/17443] Increase Guzzle client request timeout for version checks
PHPBB-17443
2024-11-25 12:39:53 +07:00
rxu
32a1d82969 [ticket/17433] Specify "operating" system term
PHPBB-17433
2024-11-25 10:04:10 +07:00
rxu
5dc93ea51e [ticket/17433] Clarify wording for use system cron ACP setting
PHPBB-17433
2024-11-25 10:03:55 +07:00
Marc Alexander
0e8f4f89d8 Merge pull request #6751 from rxu/ticket/17436
[ticket/17436] Fix phpBB 2.0 converter PHP fatal error
2024-11-24 20:20:47 +01:00
Marc Alexander
4a98024474 Merge pull request #6747 from kaileymsnay/ticket/17431
[ticket/17431] Add more vars to memberlist event
2024-11-24 20:18:18 +01:00
Marc Alexander
5538b9a37b [ticket/17429] Add add_id_ary to event and fix since version
PHPBB-17429
2024-11-24 20:15:18 +01:00
Alexey Dolzhenko
5d0b1661f2 [ticket/17429] Adding event before users have been added to a group
PHPBB-17429
2024-11-24 20:12:26 +01:00
Marc Alexander
c7e68fb572 Merge pull request #6744 from rxu/ticket/17422
[ticket/17422] Fix search results sorting - 3.3.x
2024-11-24 20:00:39 +01:00
rxu
150bd59c82 [ticket/17436] Fix phpBB 2.0 converter PHP fatal error
PHPBB-17436
2024-11-21 22:46:31 +07:00
Marc Alexander
5c7cbbc6a8 Merge branch 'prep-release-3.3.14' into 3.3.x 2024-11-20 20:03:39 +01:00
Marc Alexander
72ae28d583 [prep-release-3.3.14] Update changelog for 3.3.14 2024-11-18 21:34:22 +01:00
Marc Alexander
ff08756ea0 [prep-release-3.3.14] Add migration for 3.3.14 2024-11-18 21:23:18 +01:00
Marc Alexander
1f48926b1d [prep-release-3.3.14] Update version numbers to 3.3.14 2024-11-18 21:19:37 +01:00
kaileymsnay
b40cdb757f [ticket/17431] Add more vars to memberlist event
PHPBB3-17431
2024-11-11 14:13:29 -05:00
Marc Alexander
65e457d3d2 Merge branch 'prep-release-3.3.14' into 3.3.x 2024-11-10 10:46:19 +01:00
Marc Alexander
bf83c73a60 Merge pull request #6743 from marc1706/ticket/17421
[ticket/17421] Rename extensions section to "not installed"
2024-11-10 10:31:53 +01:00
rxu
4194cb2228 [ticket/17422] Adjust tests code
PHPBB-17422
2024-10-31 14:55:35 +07:00
rxu
7086fa746f [ticket/17422] Fix tests
PHPBB-17422
2024-10-31 09:41:15 +07:00
rxu
eeede1ab6c [ticket/17422] Add author_id search tests
PHPBB-17422
2024-10-31 01:34:24 +07:00
rxu
be52902541 [ticket/17422] Fix author_id search results sorting
PHPBB-17422
2024-10-30 23:56:05 +07:00
Marc Alexander
c252fb9bfb [ticket/17421] Rename extensions section to "not installed"
PHPBB-17421
2024-10-28 20:20:36 +01:00
Marc Alexander
725cbd31c8 [3.3.x] Update versions to 3.3.15-dev 2024-10-22 20:43:13 +02:00
Marc Alexander
cefce7df54 Merge branch 'prep-release-3.3.14' into 3.3.x 2024-10-22 20:41:29 +02:00
Marc Alexander
c992272036 [prep-release-3.3.14] Update changelog for 3.3.14-RC1 2024-10-21 20:15:47 +02:00
Marc Alexander
7c090c6e2a [prep-release-3.3.14] Add migration for 3.3.14-RC1 2024-10-21 19:39:11 +02:00
Marc Alexander
4c419c5acd [prep-release-3.3.14] Update version numbers to 3.3.14 2024-10-21 19:36:43 +02:00
Marc Alexander
eaa0c779a6 [prep-release-3.3.14] Update version numbers to 3.3.14-RC1 2024-10-21 19:36:42 +02:00
Marc Alexander
3c7bf782a7 Merge pull request #6738 from rxu/ticket/17388
[ticket/17388] Add core events to bump_topic_allowed()
2024-10-20 17:31:29 +02:00
Marc Alexander
aa21aff080 Merge pull request #6736 from rxu/ticket/17411
[ticket/17411] Add core event to search.php
2024-10-20 17:29:33 +02:00
rxu
443d82d082 [ticket/17388] Add core events to bump_topic_allowed()
PHPBB-16852
PHPBB-17388
2024-10-20 20:05:55 +07:00
Marc Alexander
5abc36f651 Merge pull request #6734 from marc1706/ticket/17410
[ticket/17410] Only fall back acp main page when in ACP with test permission
2024-10-19 21:06:24 +02:00
Marc Alexander
f971d7ffcb Merge pull request #6722 from rxu/ticket/17402
[ticket/17402] Add CLI reparser option to force reparsing BBCode - 3.3.x
2024-10-19 17:14:58 +02:00
rxu
ed145b8317 [ticket/17411] Fix docblock typo
PHPBB-17411
2024-10-18 23:28:56 +07:00
Marc Alexander
26e49d4b15 Merge pull request #6732 from marc1706/ticket/17398
[ticket/17398] Add referer to delete cookies route to ensure proper URLs
2024-10-17 22:38:33 +02:00
rxu
43ff56a7a7 [ticket/17411] Add core event to search.php
PHPBB-17411
2024-10-17 11:01:43 +07:00
rxu
6c35cea146 [ticket/17402] Adjust description
PHPBB-17402
2024-10-17 00:31:42 +07:00
Marc Alexander
62f9f53f46 Merge pull request #6699 from danieltj27/ticket/17376
[ticket/17376] Add aria label to quote reference link
2024-10-16 19:18:30 +02:00
Marc Alexander
4a039d853f [ticket/17376] Update default formatting test
PHPBB-17376
2024-10-11 20:13:22 +02:00
Marc Alexander
b1282fcbc7 [ticket/17410] Only fall back acp main page when in ACP with test permission
PHPBB-17410
2024-10-10 21:38:19 +02:00
Marc Alexander
58d87c7c06 Merge pull request #6719 from ClutchEngineering/ticket-17397
[ticket/17397] Add core.viewforum_modify_sql event
2024-10-09 21:31:20 +02:00
Marc Alexander
fd58e4f338 [ticket/17398] Use referer for web paths in ajax requests
PHPBB-17398
2024-10-09 20:16:30 +02:00
Jeff Verkoeyen
8129208e56 [ticket/17397] Add core.viewforum_modify_sql event
PHPBB-17397
2024-10-06 18:58:26 +00:00
Marc Alexander
ecceeab709 [ticket/17398] Add referer to delete cookies route to ensure proper URLs
PHPBB-17398
2024-10-06 14:57:17 +02:00
rxu
660f3d2b86 [ticket/17402] Adjust precaution text
PHPBB-17402
2024-10-04 22:53:32 +07:00
Marc Alexander
ae1d830e84 Merge pull request #6729 from rxu/ticket/17391
[ticket/17391] Fix PHP warning on creating group with the name already in use
2024-10-03 13:43:04 +02:00
Marc Alexander
688c7cad49 Merge pull request #6731 from marc1706/ticket/17407
[ticket/17407] Combine create and update step and use replace edit-mode
2024-10-03 11:33:36 +02:00
Marc Alexander
44f04a91f3 [ticket/17407] Combine create and update step and use replace edit-mode
[skip ci] Since this change won't run until merged.

PHPBB-17407
2024-10-03 11:29:51 +02:00
Marc Alexander
db7b4c999d Merge pull request #6730 from marc1706/ticket/17407
[ticket/17407] Update comment in merge check if possible
2024-10-03 10:20:18 +02:00
Marc Alexander
1b0c9b22e0 [ticket/17407] Update comment in merge check if possible
PHPBB-17407
2024-10-03 09:32:43 +02:00
rxu
4217dc46ca [ticket/17391] Add simple functional test
PHPBB-17391
2024-10-03 13:24:52 +07:00
rxu
46ea7a8ffd [ticket/17391] Fix PHP warning on creating group with the name already in use
PHPBB-17391
2024-10-03 12:37:30 +07:00
Marc Alexander
f80b41aa77 Merge pull request #6704 from danieltj27/ticket/17382
[ticket/17382] Update the find a member FAQ text to fix grammar
2024-09-30 21:05:09 +02:00
Daniel James
501ecf5dec [ticket/17382] Update FAQ string with new suggestion
PHPBB-17382
2024-09-29 23:38:09 +01:00
Marc Alexander
13b267ca6f Merge pull request #6715 from marc1706/ticket/17385
[ticket/17385] Backport file_downloader with guzzle for versioncheck with redirect support
2024-09-29 19:57:33 +02:00
Marc Alexander
6db142b8ef Merge pull request #6705 from rxu/ticket/17383
[ticket/17383] Fix HELO/EHLO error in email messenger on PHP8
2024-09-29 19:29:37 +02:00
rxu
4ba4b94fe0 [ticket/17402] Add precaution
PHPBB-17402
2024-09-29 16:42:28 +07:00
Marc Alexander
7c95839951 Merge pull request #6725 from iMattPro/ticket/17404
[ticket/17404] Update workflow test badges
2024-09-29 11:26:09 +02:00
Marc Alexander
cd619d350b Merge pull request #6727 from marc1706/ticket/17396
[ticket/17396] Use GitHub App to merge to master
2024-09-29 11:13:59 +02:00
Marc Alexander
fe4d8bfa7e [ticket/17396] Use GitHub App to merge to master
[skip actions] Due to no code changes that run in PRs.

PHPBB-17396
2024-09-29 11:09:46 +02:00
Marc Alexander
283b4f8171 Merge pull request #6726 from rxu/ticket/17405
[ticket/17405] Fix getting UTC date/time information logic
2024-09-29 09:38:13 +02:00
rxu
990cbe093b [ticket/17405] Fix getting UTC date/time information logic
PHPBB-17405
2024-09-29 01:57:53 +07:00
Matt Friedman
80957d12eb [ticket/17404] Update workflow test badges
PHPBB-17404

Signed-off-by: Matt Friedman <maf675@gmail.com>
2024-09-28 09:26:04 -07:00
Marc Alexander
d8dc1204c2 Merge pull request #6723 from marc1706/ticket/17394
[ticket/17394] Merge local 3.3.x and not remote into master
2024-09-28 16:52:12 +01:00
Marc Alexander
d5e94f1d97 [ticket/17394] Merge local 3.3.x and not remote into master
PHPBB-17394
2024-09-28 16:14:22 +01:00
Marc Alexander
9ace4dc585 [ticket/17385] Change default value in docblock
PHPBB-17385
2024-09-28 16:01:02 +01:00
rxu
2ac9c0ae7c [ticket/17402] Add CLI reparser option to force reparsing BBCode
PHPBB-17402
2024-09-28 21:47:09 +07:00
Marc Alexander
914383a581 Merge pull request #6714 from danieltj27/ticket/17390
[ticket/17390] Fix unset template variable for topic approval in mcp
2024-09-25 16:12:07 +01:00
Marc Alexander
45a43e85d8 Merge pull request #6720 from marc1706/ticket/17396
[ticket/17396] Fetch full history and branch 3.3.x if merging to master
2024-09-25 16:14:45 +02:00
Marc Alexander
08d184b0fa [ticket/17396] Try running other-tests on ubuntu-20.04
PHPBB-17396
2024-09-25 14:34:54 +01:00
Marc Alexander
d6a17c1fe7 [ticket/17396] Fetch full history and branch 3.3.x if merging to master
PHPBB-17396
2024-09-19 20:48:21 +02:00
Marc Alexander
ba03a05d27 Merge pull request #6718 from marc1706/ticket/17396
[ticket/17396] Only try pushing if merge was successful
2024-09-18 22:31:45 +02:00
Marc Alexander
17d066a980 [ticket/17396] Only try pushing if merge was successful
PHPBB-17396
2024-09-18 20:41:03 +02:00
Marc Alexander
b574a0294c Merge pull request #6717 from marc1706/ticket/17396
[ticket/17396] Add workflow for merging 3.3.x into master
2024-09-18 20:29:43 +02:00
Marc Alexander
4fb06b00b7 [ticket/17396] Adjust merge code
PHPBB-17396
2024-09-17 22:10:28 +02:00
Marc Alexander
3d70d87b57 [ticket/17396] Split merge check to master to separate yml file
PHPBB-17396
2024-09-17 21:46:03 +02:00
Marc Alexander
f55d747bb4 [ticket/17396] Add workflow for merging 3.3.x into master
PHPBB-17396
2024-09-17 20:38:14 +02:00
Marc Alexander
c5f13dd327 Merge pull request #6716 from marc1706/ticket/17394
[ticket/17394] Check mergeability of 3.3.x PRs
2024-09-17 20:26:46 +02:00
Marc Alexander
e406308244 [ticket/17394] Specify pull_request_target types
PHPBB-17394
2024-09-16 21:38:39 +02:00
Marc Alexander
15556319d9 [ticket/17394] Try using pull_request_target event
PHPBB-17394
2024-09-16 20:13:16 +02:00
Marc Alexander
7a21119d17 [ticket/17394] Check mergeability of 3.3.x PRs
PHPBB-17394
2024-09-15 20:34:25 +02:00
Marc Alexander
5a09105c3c [ticket/17385] Backport tests for updated file downloader to 3.3.x
PHPBB-17385
2024-09-10 22:04:55 +02:00
Marc Alexander
48c2ca9dfe [ticket/12479] Add missing file fixture
PHPBB-12479
2024-09-10 22:01:29 +02:00
Marc Alexander
d6ed21f3f2 [ticket/12479] Use separate mock in "remote" file test
PHPBB-12479
2024-09-10 22:01:14 +02:00
Marc Alexander
929013388f [ticket/12479] Fix use statements in file_downloader
PHPBB-12479
2024-09-10 22:00:58 +02:00
Marc Alexander
d844f82f56 [ticket/12479] Remove dns check from test as we don't test against host anymore
PHPBB-12479
2024-09-10 22:00:43 +02:00
Marc Alexander
f7d16fc626 [ticket/12479] Convert file_downloader to use guzzle instead of fsockopen
PHPBB-12479
2024-09-10 22:00:07 +02:00
Marc Alexander
9eb30b5d8e Merge pull request #6712 from rxu/ticket/17387
[ticket/17387] Fix PHP warnings in search results
2024-09-09 21:04:04 +02:00
rxu
544e0900e6 [ticket/17387] Add more unicode tests
PHPBB-17387
2024-09-03 00:16:05 +07:00
rxu
c26ded6025 [ticket/17387] Fix handling unicode strings
PHPBB-17387
2024-09-02 23:24:24 +07:00
Daniel James
1c73b7ab19 [ticket/17390] Fix unset template variable for topic approval in mcp
Fixes a bug that was introduced in 558b8ae whereby a template
variable was added to wrap around the approve / disapprove UI
however that variable was not set in mcp_queue so the check
failed every time meaning you couldn't approve from the MCP.

PHPBB-17390
2024-09-02 17:13:49 +01:00
Ruben Calvo
472b36877c [ticket/17387] Add test for when words are separated by a non-space character
PHPBB-17387
2024-09-02 14:38:50 +02:00
rxu
66b6a5e1f3 [ticket/17387] Make regex match unicode characters
PHPBB-17387
2024-09-02 17:46:16 +07:00
rxu
8acba2db02 [ticket/17387] Return entire post text for zero or negative length value
In according to 'Default number of returned characters' setting ACP explanation
`A value of 0 will return the entire post`. Do the same for negative values too

PHPBB-17387
2024-09-02 16:37:15 +07:00
Marc Alexander
bf4e26a0b8 Merge pull request #6713 from rxu/ticket/17386-master
[ticket/17386] Unify user based permissions test for 3.3.x and master branches
2024-09-01 20:05:41 +02:00
rxu
7c4b6cde8b [ticket/17386] Fix user based permissions test
PHPBB-17386
2024-09-02 00:19:20 +07:00
Marc Alexander
7f08efb04c Merge pull request #6709 from rxu/ticket/17386
[ticket/17386] Fix resulting permission for user-based tracing
2024-09-01 16:51:05 +02:00
Marc Alexander
6ca926c146 Merge pull request #6665 from rxu/ticket/17359
[ticket/17359] Distinct disabled and available extensions list
2024-09-01 16:44:43 +02:00
rxu
a7b673a1b6 [ticket/17387] Fix PHP warnings in search results
PHPBB-17387
2024-08-31 23:23:10 +07:00
rxu
03f315f7b7 [ticket/17386] Add test
PHPBB-17386
2024-08-31 22:15:03 +07:00
rxu
76752800c2 [ticket/17386] Fix resulting permission for user-based tracing
PHPBB-17386
2024-08-31 22:14:52 +07:00
Marc Alexander
23f872d138 Merge pull request #6710 from marc1706/ticket/17384
[ticket/17384] Stop overriding error handler in test case
2024-08-31 15:30:38 +02:00
Marc Alexander
92730af7a4 [ticket/17384] Stop overriding error handler in test case
PHPBB-17384
2024-08-31 08:59:57 +02:00
Marc Alexander
80f4c07bc5 Merge pull request #6695 from battye/ticket/17181
[ticket/17181] Remove unused PM report code
2024-08-30 11:42:02 +02:00
Marc Alexander
dc0561c8bf Merge pull request #6706 from rxu/ticket/17384
[ticket/17384] Handle E_USER_ERROR for PHP 8.4 tests - 3.3.x
2024-08-30 11:12:40 +02:00
Marc Alexander
9c9dcb1e35 Merge branch 'prep-release-3.3.13' into 3.3.x 2024-08-29 20:34:46 +02:00
Marc Alexander
b083e223e2 [prep-release-3.3.13] Update changelog for 3.3.13 2024-08-28 20:18:39 +02:00
Marc Alexander
88243d296c [prep-release-3.3.13] Add migration for 3.3.13 2024-08-28 20:12:25 +02:00
Marc Alexander
53c60419b4 [prep-release-3.3.13] Update version numbers to 3.3.13 2024-08-28 20:09:41 +02:00
rxu
45515b7072 [ticket/17384] Handle E_USER_ERROR for PHP 8.4 tests
PHPBB-17384
2024-08-18 18:15:52 +07:00
rxu
cc4579ee04 [ticket/17383] Validate php_uname() output too
PHPBB-17383
2024-08-16 00:30:40 +07:00
rxu
6d0a965db2 [ticket/17383] Fix HELO/EHLO error in email messenger on PHP8
PHPBB-17383
2024-08-15 23:49:50 +07:00
rxu
629a909b65 [ticket/17359] Adjust template event target phpBB version
PHPBB-17359
2024-08-13 15:33:18 +07:00
Daniel James
331bea8b22 [ticket/17382] Undo rename of install folder to check front-end changes!
PHPBB-17382
2024-08-12 21:21:14 +01:00
Daniel James
9b4743c028 [ticket/17382] Update the find a member FAQ text to fix grammar
Updated the text of an answer on the FAQ page that explained how
to search for members on the forum. Originally the text read as
`Visit to the “Members” page` which is grammatically incorrect,
specifically `visit to the`.

PHPBB-17382
2024-08-12 21:17:52 +01:00
Daniel James
6623e7fe1d [ticket/17376] Update quote template and change icon to FA arrow
PHPBB-17376
2024-08-07 11:40:12 +01:00
Marc Alexander
9d64579dea Merge branch 'prep-release-3.3.13' into 3.3.x 2024-08-06 22:11:16 +02:00
Marc Alexander
092f583422 Merge pull request #6700 from marc1706/ticket/17377
[ticket/17377] Use specific mssql docker images to have uniform builds
2024-08-06 22:10:49 +02:00
Marc Alexander
8b7f215309 [ticket/17377] Use specific mssql docker images to have uniform builds
PHPBB-17377
2024-08-06 21:08:10 +02:00
Marc Alexander
31f0e7b882 [3.3.x] Update versions to 3.3.14-dev 2024-08-05 20:30:55 +02:00
Marc Alexander
ee3b351419 Merge branch 'prep-release-3.3.13' into 3.3.x 2024-08-05 20:29:22 +02:00
Daniel James
99861a8c10 [ticket/17376] Add aria label to quote reference link
Adds an aria label attribute to the quoted post reference link so
that screen readers can inform the user of what the link is used
for. Before this change the link was too vague and would not have
been well described to users of its purpose if they couldn't see it.

PHPBB-17376
2024-08-04 15:09:34 +01:00
Marc Alexander
2973c2f6db [prep-release-3.3.13] Update changelog for 3.3.13-RC1 2024-08-02 19:22:23 +02:00
Marc Alexander
57ef18ecc0 [prep-release-3.3.13] Update stylesheet hashes for 3.3.13-RC1 2024-08-02 19:20:35 +02:00
Marc Alexander
e9e305ee9f [prep-release-3.3.13] Add migration for 3.3.13-RC1 2024-08-02 19:20:35 +02:00
Marc Alexander
1d256fef61 [prep-release-3.3.13] Update version numbers to 3.3.13 2024-08-02 19:20:32 +02:00
Marc Alexander
599073cab2 [prep-release-3.3.13] Update version numbers to 3.3.13-RC1 2024-08-02 19:20:32 +02:00
Marc Alexander
b7ffee0945 Merge pull request #6698 from marc1706/ticket/17375
[ticket/17375] Ensure user last visit does not get updated for active sessions in session gc
2024-08-01 22:18:23 +02:00
Marc Alexander
56c1b9b5bd Merge pull request #6662 from rxu/ticket/17358
[ticket/17358] Properly handle Redis cache expiration time - 3.3.x
2024-08-01 20:24:23 +02:00
Marc Alexander
18c00a902f [ticket/17375] User last active should be updated to current time
PHPBB-17375
2024-07-31 21:25:33 +02:00
Marc Alexander
8497104bdb [ticket/17375] Ensure session garbage collection only happens for expired ones
PHPBB-17375
2024-07-31 21:24:45 +02:00
Marc Alexander
4038bb9dc3 Merge pull request #6691 from marc1706/ticket/13933
[ticket/13933] Extend tokens' definitions in ACP bbcodes
2024-07-28 21:02:11 +02:00
Marc Alexander
935c1a3ea2 Merge pull request #6680 from marc1706/ticket/17366
[ticket/17366] Resolve issues with form submissions and recaptcha
2024-07-28 20:47:14 +02:00
Marc Alexander
6eb49d0907 Merge pull request #6681 from marc1706/ticket/16213
[ticket/16213] Add .htaccess for phpbb and vendor folders
2024-07-28 20:44:56 +02:00
Marc Alexander
7fe0cc7f26 Merge pull request #6686 from marc1706/ticket/15576
[ticket/15576] Handle subject max length same as in form input
2024-07-28 20:43:20 +02:00
Marc Alexander
28cf33eb2f Merge pull request #6688 from marc1706/ticket/14454
[ticket/14454] Handle special case of testing user permissions in ACP modules
2024-07-28 20:37:34 +02:00
Marc Alexander
cf47bed67e Merge pull request #6689 from marc1706/ticket/17370
[ticket/17370] Move delete cookies functionality to controller
2024-07-28 20:35:42 +02:00
Marc Alexander
1e28669407 Merge pull request #6696 from marc1706/ticket/17374
[ticket/17374] Only delete marked logs if entries have been marked
2024-07-28 20:31:52 +02:00
Marc Alexander
58cc1f4ef3 [ticket/17374] Only delete marked logs if entries have been marked
PHPBB-17374
2024-07-23 20:18:28 +02:00
battye
8104facb30 [ticket/17181] Remove unused PM report code
PHPBB-17181
2024-07-22 02:41:20 +00:00
Marc Alexander
45d64a1627 Merge pull request #6660 from marc1706/ticket/17353
[ticket/17353] Get gravatar img src and fix incorrect treatment of height
2024-07-16 21:03:44 +02:00
Marc Alexander
10f92dbb68 [ticket/13933] Extend tokens' definitions in ACP bbcodes
PHPBB-13933
2024-07-16 21:01:57 +02:00
Marc Alexander
bc7bd15312 Merge pull request #5385 from rubencm/ticket/15043
[ticket/15043] Rewrite get_context()
2024-07-15 19:49:59 +02:00
Ruben Calvo
5c40766dc4 [ticket/15403] Remove last element of array only if needed
PHPBB-15403
2024-07-15 12:30:40 +02:00
Marc Alexander
661140c50b [ticket/17370] Redirect from UCP to delete cookies controller
PHPBB-17370
2024-07-14 20:44:01 +02:00
Marc Alexander
294c517256 [ticket/17370] Add controller for deleting cookies
PHPBB-17370
2024-07-14 20:42:03 +02:00
Marc Alexander
de660fe0c8 Merge pull request #6677 from marc1706/ticket/16907
[ticket/16907] Adjust request filtering for phpbb paths
2024-07-14 14:46:20 +02:00
Ruben Calvo
e602889213 [ticket/15403] Add another test
PHPBB-15403
2024-07-14 12:47:06 +02:00
Ruben Calvo
f4b1444248 [ticket/15403] Handle ellipsis at the beginning of context and add tests
PHPBB-15403
2024-07-14 12:45:20 +02:00
Marc Alexander
13e6cd5992 [ticket/14454] Remove extra commas
PHPBB-14454
2024-07-14 08:17:12 +02:00
Ruben Calvo
dd9267b678 [ticket/15403] Use substr over the fragment and not the whole text
PHPBB-15403
2024-07-14 01:10:25 +02:00
Marc Alexander
f646fcdefa [ticket/14454] Handle special case of testing user permissions in ACP modules
PHPBB-14454
2024-07-13 23:46:28 +02:00
Marc Alexander
99c97b951f Merge pull request #6642 from rxu/ticket/17338
[ticket/17338] Prefer user_last_active to display user last activity info
2024-07-13 19:42:48 +02:00
Ruben Calvo
f41c8eef47 [ticket/15403] Refactor get_context
PHPBB-15403
2024-07-13 17:54:17 +02:00
Marc Alexander
17b4838ee3 Merge pull request #6684 from crowjake/ticket/17365
[ticket/17365] Prevent search limit being bypassed with operators
2024-07-10 22:45:09 +02:00
Marc Alexander
a0092bdd18 Merge pull request #6678 from marc1706/ticket/13916
[ticket/13916] Add notify to fields to store during save draft
2024-07-10 21:34:52 +02:00
Marc Alexander
c0b81a1a48 [ticket/17365] Add a test for max search keywords
PHPBB-17365
2024-07-10 21:32:15 +02:00
Marc Alexander
89afa0cb5e [ticket/15043] Small code cleanup
PHPBB-15043
2024-07-09 21:46:37 +02:00
Marc Alexander
a62a303318 [ticket/15043] Add unit test for get_context
PHPBB-15043
2024-07-09 21:20:09 +02:00
Marc Alexander
cacd9375fd Merge pull request #6685 from danieltj27/ticket/17369
[ticket/17369] Add forum id to approve action url for redirection
2024-07-09 19:22:31 +02:00
Ruben Calvo
7763969625 [ticket/15403] Return first fragment of text if there is no coincidences
PHPBB-15403
2024-07-09 17:09:06 +02:00
Ruben Calvo
a2e7205154 [ticket/15403] Fix order of parameters in implode
PHPBB-15403
2024-07-09 00:25:05 +02:00
Rubén Calvo
350c9213ee [ticket/15043] Update regexp
PHPBB3-15043
2024-07-08 21:43:54 +02:00
Rubén Calvo
7365764476 [ticket/15043] New get_context displays more text
PHPBB3-15043
2024-07-08 21:43:52 +02:00
Rubén Calvo
dd4c982792 [ticket/15043] Rewrite get_context()
PHPBB3-15043
2024-07-08 21:42:03 +02:00
Marc Alexander
2088ee5e84 [ticket/15576] Handle subject max length same as in form input
PHPBB-15576
2024-07-08 21:37:05 +02:00
Daniel James
926a0a4e33 [ticket/17369] Add forum id to approve action url for redirection
Added the forum_id to the approve action link which ensures that when
a topic is permanently deleted, the forum_id is present so that it can
be used in the redirection link to go to the previous forum. This addresses
a bug in which the forum_id is not provided and after deleting a topic, the
user will be taken to a 404 page as the forum id fallbacks to 0.

PHPBB-17369
2024-07-08 16:35:41 +01:00
crowjake
30144052da [ticket/17365] Prevent keyword limit being bypassed with the use of +, - and |
Provided `$countable_keywords` wherein the existing `$keywords` value is
modified so that any `-`, `+` and `|` characters without preceding spaces
is replaced with the same but with a space in front of each.

These spaces allow the string to be more accurately split when used instead
of $keywords inside the $num_keywords calculation.

This prevents the word limit being bypassed in search by the use of
operators without whitespace.

PHPBB-17365
2024-07-07 23:04:19 +01:00
Marc Alexander
8298095421 [ticket/16213] Add .htaccess for phpbb and vendor folders
PHPBB-16213
2024-07-07 15:22:23 +02:00
Marc Alexander
55dbe070e3 [ticket/17366] Remove javascript sanity check as this can break with recaptcha
PHPBB-17366
2024-07-07 14:52:00 +02:00
Marc Alexander
8639be4bd4 [ticket/17366] Remember confirm code if recaptcha v3 is solved
PHPBB-17366
2024-07-07 11:31:18 +02:00
Marc Alexander
ffc655a1ba [ticket/13916] Add notify to fields to store during save draft
PHPBB-13916
2024-07-06 21:44:06 +02:00
Marc Alexander
922e7699ed [ticket/16907] Adjust request filtering for phpbb paths
PHPBB-16907
2024-07-06 17:39:49 +02:00
Marc Alexander
c790e81fb6 Merge pull request #6676 from marc1706/ticket/16890
[ticket/16890] Deny access to config file and folder in nginx sample
2024-07-06 13:01:50 +02:00
Marc Alexander
42851d0d9f [ticket/16890] Add rewrite for installer in lighttpd
PHPBB-16890
2024-07-06 11:53:21 +02:00
Marc Alexander
00d1351e55 [ticket/16890] Deny access to config file and folder in nginx sample
PHPBB-16890
2024-07-06 10:47:49 +02:00
Marc Alexander
48a233e415 Merge pull request #6661 from rubencm/ticket/17356
[ticket/17356] Correctly handle errors hidden with at
2024-07-05 21:56:34 +02:00
Marc Alexander
6798c337f8 Merge pull request #6656 from danieltj27/ticket/17350
[ticket/17350] Add IP Address of user during install process
2024-07-05 21:45:16 +02:00
Marc Alexander
99b745982e [ticket/17353] Clean up test code for compatibility with 3.3.x
PHPBB-17353
2024-07-03 21:44:40 +02:00
Marc Alexander
bde7b119b2 [ticket/17355] Update tests after changing gravatar URL
PHPBB-17355
2024-07-03 21:36:51 +02:00
Marc Alexander
5013075af7 [ticket/17355] Change gravatar URL to new format
PHPBB-17355
2024-07-03 21:36:51 +02:00
Marc Alexander
40881b537e [ticket/17353] Return image src for gravatar image
PHPBB-17353
2024-07-03 21:36:51 +02:00
Marc Alexander
efece4136b [ticket/17353] Add test for gravatar driver and fix request var issue
PHPBB-17353
2024-07-03 21:36:51 +02:00
Marc Alexander
38177e9052 Merge pull request #6655 from danieltj27/ticket/17352
[ticket/17352] Fix overflow of long rank titles on profile page
2024-07-01 21:52:47 +02:00
Marc Alexander
a4296a9e6b Merge pull request #6667 from m-ober/ticket/17362
[ticket/17362] Declare property to avoid PHP 8.2 deprecation notice
2024-07-01 19:13:11 +02:00
Micha Ober
d7477760d6 [ticket/17362] Declare property to avoid PHP 8.2 deprecation notice
PHPBB-17362
2024-07-01 13:48:59 +02:00
rxu
e53db0775a [ticket/17359] Get rid of template code duplication
PHPBB-17359
2024-07-01 00:54:20 +07:00
Marc Alexander
294b3ff922 Merge pull request #6651 from marc1706/ticket/17347
[ticket/17347] Add console command to delete users by user IDs
2024-06-30 17:20:35 +02:00
rxu
8aef7b5659 [ticket/17359] Fix template events
PHPBB-17359
2024-06-30 20:35:58 +07:00
rxu
9e11624693 [ticket/17359] Fix tests
PHPBB-17359
2024-06-30 19:59:45 +07:00
rxu
e6bdecbfee [ticket/17359] Distinct disabled and available extensions list
PHPBB-17359
2024-06-30 19:07:41 +07:00
Marc Alexander
ad77f0d0ab Merge pull request #6658 from rxu/ticket/17351
[ticket/17351] Correctly handle md5 passwords rehashing - 3.3.x
2024-06-30 12:39:48 +02:00
rxu
5a9c01716f [ticket/17358] Properly handle Redis cache expiration time
PHPBB-17358
2024-06-30 12:45:14 +07:00
Ruben Calvo
5b03cd422a [ticket/17356] Correctly handle errors hidden by at
PHPBB-17356
2024-06-28 21:45:33 +02:00
rxu
e5d2e82ef5 [ticket/17351] Correctly handle md5 passwords rehashing
PHPBB-17351
2024-06-28 11:36:14 +07:00
Daniel James
8eacbf8305 [ticket/17350] Add IP Address of user during install process
Adds the IP address of the user completing the installation process
while extensions are being installed or updated. Prior to this change
the IP address field was being left blank however other logs created
during the install process for other actions does record the users IP.

PHPBB-17350
2024-06-25 16:24:58 +01:00
Daniel James
5976dc2141 [ticket/17352] Fix overflow of long rank titles on profile page
Users that had very long rank titles would cause the rest of their
profile details to be pushed down below the avatar and rank details
breaking the layout. This change limits the width of the avatar
and rank details.

PHPBB-17352
2024-06-25 16:09:52 +01:00
Marc Alexander
3647cf2cfe Merge pull request #6637 from rxu/ticket/17337
[ticket/17337] Fix mysqli driver is missing transaction begin statement - 3.3.x
2024-06-24 20:35:00 +02:00
rxu
dd3ebe2b71 [ticket/17337] Correctly handle transaction test on MyISAM (non-transactional)
PHPBB-17337
2024-06-24 21:32:18 +07:00
Marc Alexander
f3460fe9eb [ticket/17337] Extend write tests with simple transaction test
PHPBB-17337
2024-06-23 23:26:13 +02:00
Marc Alexander
15960a7918 Merge pull request #6639 from marc1706/ticket/17301
[ticket/17301] Ensure reading invalid cache files is aborted
2024-06-22 11:56:21 +02:00
Marc Alexander
fa893f092b [ticket/17347] Get rid of not needed code duplication
PHPBB-17347
2024-06-22 07:33:06 +02:00
Marc Alexander
99b07b884b Merge pull request #6647 from marc1706/ticket/17342-3.3.x
[ticket/17342] Add tests for PHP 8.4 to GitHub Actions
2024-06-22 07:28:23 +02:00
Marc Alexander
7f9bcc2743 [ticket/17347] Change command to be called user:delete_id
PHPBB-17347
2024-06-21 21:12:38 +02:00
Marc Alexander
d875eaa405 [ticket/17347] Update tests for delete_id command
PHPBB-17347
2024-06-21 21:12:09 +02:00
Marc Alexander
db40145fd5 [ticket/17347] Use progress bar and test bot deletion only
PHPBB-17347
2024-06-21 20:59:04 +02:00
Marc Alexander
8c77da9c30 [ticket/17347] Add special handling for deletion of bots
PHPBB-17347
2024-06-21 20:48:41 +02:00
Marc Alexander
09f0b417be [ticket/17347] Fix issues noticed in tests
PHPBB-17347
2024-06-20 22:38:24 +02:00
Marc Alexander
8432e506c4 [ticket/17347] Add tests for delete ids
PHPBB-17347
2024-06-20 22:23:38 +02:00
Marc Alexander
77d1010081 [ticket/17347] Add console command to delete users by user IDs
PHPBB-17347
2024-06-20 21:17:48 +02:00
rxu
4003f54d0b [ticket/17338] Do not update user_last_active to outdated session_time value
PHPBB-17338
2024-06-17 11:55:35 +07:00
Marc Alexander
abaef09a14 [ticket/17342] Add tests for PHP 8.4 to GitHub Actions
PHPBB-17342
2024-06-16 20:31:57 +02:00
Marc Alexander
127121f1d2 Merge pull request #6633 from rxu/ticket/17332
[ticket/17332] Fix permission migrator tool to work with copied permissions
2024-06-14 22:28:58 +02:00
Marc Alexander
e53cd79067 Merge pull request #6643 from marc1706/ticket/17340
[ticket/17340] Update composer and dependencies
2024-06-14 21:51:50 +02:00
Marc Alexander
8bdff227d9 [ticket/17340] Update composer dependencies
PHPBB-17340
2024-06-14 17:04:22 +02:00
Marc Alexander
df7dae9600 [ticket/17340] Update composer to 2.7.7
PHPBB-17340
2024-06-14 17:02:36 +02:00
rxu
e21a8e02cd [ticket/17338] Update user_last_active on session removal and login keys reset
PHPBB-17338
2024-06-14 15:22:20 +07:00
rxu
db9874546b [ticket/17338] Add user_last_active to session_gc()
PHPBB-17338
2024-06-14 11:03:02 +07:00
rxu
e125f1f709 [ticket/17338] Prefer user_last_active to display user last activity info
PHPBB-17338
2024-06-13 13:27:03 +07:00
Marc Alexander
9e15802805 [ticket/17301] Do not test unreadable files on windows
PHPBB-17301
2024-06-11 20:29:23 +02:00
Marc Alexander
f98f2c5896 [ticket/17301] Ensure reading invalid cache files is aborted
PHPBB-17301
2024-06-11 20:12:01 +02:00
rxu
c2d91650bd [ticket/17337] Fix mysqli driver is missing transaction begin statement
PHPBB-17337
2024-06-11 16:08:39 +07:00
rxu
51b773e588 [ticket/17332] Add test
PHPBB-17332
2024-06-05 12:50:03 +07:00
rxu
ef4db99709 [ticket/17332] Fix permission migrator tool to work with copied permissions
PHPBB-17332
2024-06-05 00:22:04 +07:00
Marc Alexander
cd0e682984 Merge pull request #6619 from marc1706/ticket/17308
[ticket/17308] Change project key to start with PHPBB-
2024-06-01 08:31:59 +02:00
Marc Alexander
431b399c68 Merge pull request #6628 from marc1706/ticket/17327
[ticket/17327] Use class name from use statement
2024-06-01 08:15:26 +02:00
Marc Alexander
56d8a7e43f [ticket/17327] Use class name from use statement
PHPBB3-17327
2024-05-31 22:30:05 +02:00
Marc Alexander
2976314205 Merge branch 'prep-release-3.3.12' into 3.3.x 2024-05-31 21:41:03 +02:00
Marc Alexander
be6bb09984 [prep-release-3.3.12] Update changelog for 3.3.12 2024-05-31 20:05:39 +02:00
Marc Alexander
8a8232109c Merge pull request #6609 from battye/ticket/17175
[ticket/17175] Fix topic title in the breadcrumbs when emailing a topic
2024-05-31 11:08:06 +02:00
Marc Alexander
f3ead808f3 Merge pull request #6615 from danieltj27/ticket/17316
[ticket/17316] Add template events to ucp_groups_manage
2024-05-31 10:46:06 +02:00
Marc Alexander
276502ce58 Merge pull request #6613 from danieltj27/ticket/17315
[ticket/17315] add template events to acp_groups
2024-05-31 10:41:00 +02:00
Marc Alexander
8899fcfdc2 Merge pull request #6626 from LukeWCS/ticket/17325
[ticket/17325] Show message for "Re-Check version" if phpBB is still up to date
2024-05-31 09:50:54 +02:00
Marc Alexander
2aba9b0e3f [prep-release-3.3.12] Remove columns from user_add
These have default values and do not require setting in user_add().
2024-05-30 20:39:52 +02:00
Marc Alexander
80a12f7108 [prep-release-3.3.12] Update changelog for 3.3.12 2024-05-30 11:03:06 +02:00
Marc Alexander
6cef48af2f [prep-release-3.3.12] Add migration for 3.3.12 2024-05-30 11:00:23 +02:00
Marc Alexander
607fe555af [prep-release-3.3.12] Update version numbers to 3.3.12 2024-05-30 11:00:22 +02:00
Daniel James
166c4eeb7e [ticket/17316] Add template events to ucp_groups_manage
PHPBB3-17316
2024-05-30 10:45:30 +02:00
Marc Alexander
bf55502c62 [ticket/17325] Use not instead of ! in template
PHPBB3-17325
2024-05-30 10:40:25 +02:00
Marc Alexander
df5fcafcb9 Merge pull request #6616 from danieltj27/ticket/17317
[ticket/17317] Change button text for pm recipient to increase readability
2024-05-30 08:54:55 +02:00
Marc Alexander
1fb7e6d2c8 [ticket/security/278] Always release cron lock, even invalid task is passed
SECURITY-278
2024-05-29 22:04:16 +02:00
Marc Alexander
1c1c981b17 [ticket/security/276] Centralise call for token expiration
SECURITY-276
2024-05-29 22:04:15 +02:00
Marc Alexander
7c661746cf [ticket/security/276] Add test for expiration timer
SECURITY-276
2024-05-29 22:04:15 +02:00
Marc Alexander
24dd47adcf [ticket/security/276] Add missing information message
SECURITY-276
2024-05-29 22:04:15 +02:00
Marc Alexander
f853f6523f [ticket/security/276] Prevent sending activation emails multiple times per day
SECURITY-276
2024-05-29 22:04:15 +02:00
Marc Alexander
a63a1913fa [ticket/security-276] Add migration for user_actkey expiration column
SECURITY-276
2024-05-29 22:04:15 +02:00
Marc Alexander
ef593afec5 Merge branch 'prep-release-3.3.12' into 3.3.x 2024-05-29 21:53:47 +02:00
Marc Alexander
51da43f77f [prep-release-3.3.12] Fix since version and undo md exporter change 2024-05-29 21:53:11 +02:00
Marc Alexander
e328ee96d2 Merge pull request #6625 from rxu/ticket/17324
[ticket/17324] Add template event to notification_dropdown.html
2024-05-29 21:42:46 +02:00
Marc Alexander
7f11c1b46d Merge pull request #6624 from battye/ticket/16553
[ticket/16553] Fix for General Error when approving/disapproving a reported post through the MCP
2024-05-28 21:08:15 +02:00
LukeWCS
ae18669fcd [ticket/17325] Show message for "Re-Check version" if phpBB is still up to date
Show explicit message for "Re-Check version" if installed version is still up
to date

PHPBB3-17325
2024-05-28 20:55:49 +02:00
rxu
9ea4aabe9a [ticket/17324] Allow targeting events to prep-releases
PHPBB3-17324
2024-05-28 20:36:40 +02:00
rxu
a88040df85 [ticket/17324] Adjust target version
PHPBB3-17324
2024-05-28 20:36:40 +02:00
rxu
fcf89208cf [ticket/17324] Add template event to notification_dropdown.html
PHPBB3-17324
2024-05-28 20:36:40 +02:00
Marc Alexander
d365f17ebd Merge pull request #6621 from danieltj27/ticket/17320
[ticket/17320] Remove unused js code from prosilver
2024-05-27 20:17:25 +02:00
battye
6f345e43cb [ticket/16553] Change double quotes to single quotes
PHPBB3-16553
2024-05-27 07:55:08 +00:00
battye
874fb7bf8a [ticket/16553] Use env variables in Codespaces for server name
PHPBB3-16553
2024-05-27 07:12:51 +00:00
battye
558b8ae7ed [ticket/16553] Fix approve reported posts bug
Fixes the module not accessible error when trying to approve a reported post.

PHPBB3-16553
2024-05-27 05:18:08 +00:00
Marc Alexander
477f5d9e1d Merge pull request #6617 from battye/ticket/17109
[ticket/17109] Don't show the attach signature option if the user doesn't have permission
2024-05-23 21:34:26 +02:00
Daniel James
92e545fc26 [ticket/17317] Remove unused CSS styling for inputs
PHPBB3-17317
2024-05-23 20:57:36 +02:00
Daniel James
c330500c4d [ticket/17317] Add new icon for groups and remove CSS change
PHPBB3-17317
2024-05-23 20:57:34 +02:00
Daniel James
9fcf956888 [ticket/17317] Replace button with small red fa-icon
Updated the button to a small red X using Font Awesome
rather than using the default phpBB button with text
which adds a better visual distinction in the interface
between the username and action. Credit to @iMattPro for
the suggestion in the ticket comments.

PHPBB3-17317
2024-05-23 20:57:33 +02:00
Daniel James
40ed6c6458 [ticket/17317] Fix padding on button, left and right not top and bottom
PHPBB3-17317
2024-05-23 20:57:31 +02:00
Daniel James
cd34cdedee [ticket/17317] Change button text for pm recipient to increase readability
PHPBB3-17317
2024-05-23 20:57:26 +02:00
Daniel James
e850915190 [ticket/17320] Remove unused js code from prosilver
The forum_fn.js file contained a small block of code
that was commented out so there is no need to keep it
in the codebase, especially as it was a fix for IE8
and older browsers.

PHPBB3-17320
2024-05-23 16:35:28 +01:00
Marc Alexander
d14f98f672 Merge branch 'prep-release-3.3.12' into 3.3.x 2024-05-22 21:54:10 +02:00
Marc Alexander
130c10915e Merge pull request #6618 from marc1706/ticket/17312
[ticket/17312] Add column for tracking user last active time
2024-05-22 21:53:15 +02:00
Marc Alexander
9ecf09dbe8 [ticket/17312] Add and use user_last_active where needed and useful
PHPBB3-17312
2024-05-18 20:58:07 +02:00
Marc Alexander
8954a68953 [ticket/17308] Change project key to start with PHPBB-
PHPBB-17308
2024-05-18 08:27:19 +02:00
Marc Alexander
f986138467 [ticket/17312] Update tests for new column
PHPBB3-17312
2024-05-17 16:41:40 +02:00
battye
611faafaf3 [ticket/17109] Check attach signature permissions
Don't show the attach signature option if the
user doesn't have permission or if the signature
feature is disabled for the board.

PHPBB3-17109
2024-05-17 14:38:18 +00:00
Marc Alexander
ed0b5020a9 [ticket/17312] Use user_last_active instead of user_lastvisit where possible
PHPBB3-17312
2024-05-16 20:44:38 +02:00
Marc Alexander
b2d2216b87 [ticket/17315] Rename events and add them to events.md
PHPBB3-17315
2024-05-16 16:47:04 +02:00
Daniel James
766ecaed5a [ticket/17315] Add template events to acp_groups
PHPBB3-17315
2024-05-16 16:46:55 +02:00
Marc Alexander
a7a53de34d [ticket/17312] Add migration for user_last_active column
PHPBB3-17312
2024-05-14 21:42:02 +02:00
Marc Alexander
6aa980eadb Merge branch 'prep-release-3.3.12' into 3.3.x 2024-05-13 20:51:08 +02:00
Marc Alexander
dbf0b9ebe6 Merge pull request #6610 from Crizz0/ticket/17311
[ticket/17311] Update PHP requirements and tested version
2024-05-13 20:50:11 +02:00
Christian Schnegelberger
874fb8c59c [ticket/17311] Update PHP requirements and tested version
PHPBB3-17176
2024-05-13 19:21:52 +02:00
Marc Alexander
e195e2ad82 [3.3.x] Update version to 3.3.13-dev 2024-05-12 21:10:16 +02:00
Marc Alexander
9aebbcc1a0 Merge branch 'prep-release-3.3.12' into 3.3.x 2024-05-12 21:08:01 +02:00
battye
de31c4e797 [ticket/17175] Fix topic title in the breadcrumbs when emailing a topic
PHPBB3-17175
2024-05-12 09:53:07 +00:00
Marc Alexander
7b734ef529 [prep-release-3.3.12] Update changelog for 3.3.12-RC1 2024-05-09 13:01:53 +02:00
Marc Alexander
6753961756 [prep-release-3.3.12] Update stylesheet hashes for 3.3.12-RC1 2024-05-09 12:59:38 +02:00
Marc Alexander
d2295b82f1 [prep-release-3.3.12] Add migration for 3.3.12-RC1 2024-05-09 12:59:37 +02:00
Marc Alexander
74845a6b3a [prep-release-3.3.12] Update version numbers to 3.3.12 2024-05-09 12:59:36 +02:00
Marc Alexander
f13b17fd00 [prep-release-3.3.12] Update version numbers to 3.3.12-RC1 2024-05-09 12:59:35 +02:00
Marc Alexander
149d0bd227 Merge pull request #6607 from marc1706/ticket/17310
[ticket/17310] Update workflow actions to v4
2024-05-08 17:24:26 +02:00
Marc Alexander
eb12d385a0 Merge pull request #6549 from marc1706/ticket/15325
[ticket/15325] Do not show non-local permissions for local data
2024-05-08 17:22:15 +02:00
Marc Alexander
d318768634 [ticket/17176] Use correct ldap URI
PHPBB3-17176
2024-05-07 21:57:48 +02:00
Marc Alexander
843cb97048 [ticket/17176] Use ldapuri instead of removed ldaphost
PHPBB3-17176
2024-05-07 21:57:35 +02:00
Marc Alexander
a85c36b15e [ticket/17310] Update workflow actions to v4
PHPBB3-17310
2024-05-07 21:21:10 +02:00
Marc Alexander
76ab83893b [ticket/15325] Rename variable for sql is local exclude
PHPBB3-15325
2024-05-06 20:06:10 +02:00
Marc Alexander
9aec69413f Merge pull request #6594 from marc1706/ticket/17077
[ticket/17077] Improve handling of posting to reduce double submit possibility
2024-05-06 18:22:58 +02:00
Marc Alexander
42108b5e11 [ticket/15325] Remove no longer needed note about permissions being global
PHPBB3-15325
2024-05-04 09:00:30 +02:00
Marc Alexander
2267ef1ac2 Merge pull request #6604 from marc1706/ticket/17130
[ticket/17130] Reparse magic urls in posts based on actual content
2024-05-03 22:16:28 +02:00
Marc Alexander
3f73ae8545 [ticket/17130] Reparse magic urls in posts based on actual content
PHPBB3-17130
2024-05-03 20:25:44 +02:00
Marc Alexander
6f45b46746 [ticket/17077] Add proper locking in PHP without releasing form tokens
PHPBB3-17077
2024-05-01 11:22:29 +02:00
Marc Alexander
df43810f55 Merge pull request #6600 from Crizz0/ticket/17306
[ticket/17306] Add type declaration to get_context and array for $words
2024-04-28 21:07:08 +02:00
Marc Alexander
42252460a9 Merge pull request #6603 from marc1706/ticket/17305
[ticket/17305] Add missing space to sql_sort
2024-04-23 21:43:44 +02:00
Marc Alexander
8dd6b5373d [ticket/15325] Add test for displayed permissions
PHPBB3-15325
2024-04-23 21:33:09 +02:00
Marc Alexander
6c45c1ff6b [ticket/15325] Do not show non-local permissions for local data
PHPBB3-15325
2024-04-23 20:49:02 +02:00
Marc Alexander
18a672c16e [ticket/17305] Add missing space to sql_sort
PHPBB3-17305
2024-04-23 20:17:59 +02:00
Marc Alexander
d60998ba69 Merge pull request #6601 from marc1706/ticket/17305
[ticket/17305] Change sql_sort to be more in line with previous code
2024-04-22 21:42:51 +02:00
Christian Schnegelberger
17a50027b1 [ticket/17306] Change type description for get_context()
PHPBB3-17306
2024-04-21 21:21:09 +02:00
Marc Alexander
663100a44f Merge pull request #6596 from rxu/ticket/17303
[ticket/17303] Update jQuery to the version 3.7.1 - 3.3.x version
2024-04-21 21:15:04 +02:00
Marc Alexander
1c8128292c [ticket/17305] Change sql_sort to be more in line with previous code
PHPBB3-17305
2024-04-21 21:01:22 +02:00
Marc Alexander
25bd56c254 Merge pull request #6598 from marc1706/ticket/17305
[ticket/17305] Improve queries for unanswered posts/topics
2024-04-19 08:51:17 +02:00
Marc Alexander
d0c48f3fde [ticket/17305] Improve queries for unanswered posts/topics
PHPBB3-17305
2024-04-16 20:47:39 +02:00
rxu
abffd0f662 [ticket/17303] Update jQuery to the version 3.7.1
PHPBB3-17303
2024-04-15 00:19:52 +07:00
Marc Alexander
adf53d3264 Merge pull request #6592 from rxu/ticket/17299
[ticket/17299] Allow event to modify email core vars before sending a message
2024-04-10 16:37:35 +02:00
Marc Alexander
a9576a4084 Merge pull request #6593 from LukeWCS/ticket/17302
[ticket/17302] Fix password reset function
2024-04-09 22:02:25 +02:00
Marc Alexander
98929ca983 [ticket/17077] Add test for posting lock
PHPBB3-17077
2024-04-09 21:13:28 +02:00
Marc Alexander
3b5777f900 [ticket/17077] Move request handling outside locking and add release
PHPBB3-17077
2024-04-09 20:53:05 +02:00
LukeWCS
6943fbba89 [ticket/17302] Fix password reset function
Password reset function does not update all necessary data

PHPBB3-17302
2024-04-09 19:06:09 +02:00
Marc Alexander
c07c6816fc [ticket/17077] Improve handling of accidental double submission of posts
PHPBB3-17077
2024-04-08 21:50:27 +02:00
rxu
b38e8a2c84 [ticket/17299] Allow event to modify email core vars before sending a message
PHPBB3-17299
2024-03-31 09:55:57 +07:00
Marc Alexander
b2459edaf3 Merge pull request #6589 from rxu/ticket/17284
[ticket/17284] Add viewtopic_body_online_list_after template event
2024-03-20 20:47:39 +01:00
Marc Alexander
ff96c1a907 Merge pull request #6588 from marc1706/ticket/17296
[ticket/17296] Reduce complexity of relative paths on adm pages
2024-03-19 22:11:46 +01:00
Marc Alexander
b4a343bdc9 [ticket/17296] Enforce unique session entry for admin user with delete
PHPBB3-17296
2024-03-19 20:36:38 +01:00
rxu
6ee64c94a2 [ticket/17284] Add viewtopic_body_online_list_after template event
PHPBB3-17284
2024-03-13 23:25:02 +07:00
Marc Alexander
9c51a7866b [ticket/17296] Fix session page update test
PHPBB3-17296
2024-03-10 09:26:05 +01:00
Marc Alexander
51b3d9de63 [ticket/17296] Ensure session page update test actually runs
PHPBB3-17296
2024-03-07 21:25:08 +01:00
Marc Alexander
bda99e1c35 [ticket/17296] Reduce complexity of relative paths on adm pages
PHPBB3-17296
2024-03-07 20:57:19 +01:00
Marc Alexander
763c6f625f Merge pull request #6584 from Crizz0/ticket/17292
[ticket/17292] Use new spamhaus.org check url
2024-02-23 20:36:36 +01:00
Marc Alexander
06672d896b Merge pull request #6585 from marc1706/ticket/17293
[ticket/17293] Update composer and dependencies to latest versions
2024-02-23 20:05:18 +01:00
Marc Alexander
4afa184110 [ticket/17292] Add needed www prefix for spamcop
PHPBB3-17292
2024-02-23 20:01:41 +01:00
Marc Alexander
602841fd11 [ticket/17293] Update composer dependencies to latest versions
PHPBB3-17293
2024-02-23 18:20:30 +01:00
Marc Alexander
ae3c294a2f [ticket/17293] Update composer to 2.7.1
PHPBB3-17293
2024-02-23 18:19:53 +01:00
Christian Schnegelberger
00b8cb1e52 [ticket/17292] Use new spamhaus.org check url
PHPBB3-17292
2024-02-22 19:16:54 +01:00
Marc Alexander
eabe2632dc Merge pull request #6582 from rxu/ticket/17286
[ticket/17286] Do not update user session page if it does not exist
2024-02-18 20:34:32 +01:00
rxu
112392bcf3 [ticket/17286] Remove test pauses
PHPBB3-17286
2024-02-03 12:09:47 +07:00
rxu
9401ce1c5f [ticket/17286] Add test
PHPBB3-17286
2024-02-03 00:02:03 +07:00
rxu
ec7180db4f [ticket/17286] Do not update user session page if it does not exist
PHPBB3-17286
2024-02-02 23:33:12 +07:00
Marc Alexander
512a93727a Merge pull request #6568 from Prosk8er/ticket/17235
[ticket/17235] missing autocomplete for username
2024-01-04 21:04:17 +01:00
Marc Alexander
c4642d2502 Merge pull request #6580 from rxu/ticket/17117
[ticket/17117] Do not load non-existent/disabled notification methods
2024-01-02 16:47:49 +01:00
Prosk8er
f3a596b78b [ticket/17235] Fixes for issues mentioned in code review
PHPBB3-17235
2024-01-02 16:46:04 +01:00
rxu
887b1e25fb [ticket/17117] Add test for non=existent notification method
PHPBB3-17117
2024-01-02 16:30:44 +07:00
rxu
f31ea59a1a [ticket/17117] Do not load non-existent/disabled notification methods
Non-existent or disabled notification methods (f.e. added
by extensions which were later disabled/purged) should not be loaded.

PHPBB3-17117
2024-01-02 15:45:42 +07:00
Marc Alexander
61a28c154b Merge pull request #6563 from marc1706/ticket/17212
[ticket/17212] Support updating session info when editing post with p=
2024-01-01 21:35:53 +01:00
Marc Alexander
565053f508 Merge pull request #6573 from rxu/ticket/17232
[ticket/17232] Improve SQL error messages handling
2023-12-31 10:43:05 +01:00
Marc Alexander
5a922ffa5b Merge pull request #6578 from marc1706/ticket/17280
[ticket/17280] Fall back to branch when no valid title found
2023-12-31 09:38:20 +01:00
Marc Alexander
b4ff57e2a4 [ticket/17280] Fall back to branch when no valid title found
PHPBB3-17280
2023-12-30 10:07:49 +01:00
Marc Alexander
e4d5cbbc76 Merge pull request #6575 from rxu/ticket/17277
[ticket/17277] Add template events to UCP
2023-12-30 09:19:25 +01:00
rxu
dc415768a8 [ticket/17277] Add template events to UCP
PHPBB3-17277
2023-12-26 00:35:55 +07:00
rxu
6a8140e82b [ticket/17232] Improve SQL error messages handling
PHP 7 changes how most errors are reported by PHP. Instead of reporting errors
through the traditional error reporting mechanism used by PHP 5, most errors
are now reported by throwing Error exceptions.
Use it to display meaningful SQL error messages instead of PHP fatal errors
for SQL errors.

PHPBB3-17232
2023-12-20 15:07:14 +07:00
Marc Alexander
213d092f6f Merge pull request #6570 from Crizz0/ticket/17237
[ticket/17237] Use single quotes for QUICKMOD_ACTION_NOT_ALLOWED var
2023-12-17 20:04:30 +01:00
Marc Alexander
3477562c58 Merge pull request #6569 from marc1706/ticket/17236
[ticket/17236] Update composer dependencies to improve PHP 8.3 compatibility
2023-12-17 10:25:11 +01:00
Marc Alexander
d5d449b78e [ticket/17236] Update more dependencies
PHPBB3-17236
2023-12-16 20:36:43 +01:00
Christian Schnegelberger
6c43f81e8d [ticket/17237] Use single quotes for QUICKMOD_ACTION_NOT_ALLOWED var
PHPBB3-17237
2023-11-30 12:34:48 +01:00
Marc Alexander
856ce16a87 [ticket/17236] Update composer dependencies to improve PHP 8.3 compatibility
PHPBB3-17236
2023-11-29 20:39:30 +01:00
Prosk8er
bc5c095363 [ticket/17235] missing autocomplete for username
PHPBB3-17235
2023-11-29 09:14:51 -05:00
Marc Alexander
9ba6e9b60d Merge pull request #6567 from rxu/ticket/17233
[ticket/17233] Add PHP 8.3 tests to the 3.3.x branch - 3.3.x version
2023-11-26 20:52:33 +01:00
rxu
bf26da660a [ticket/17233] Add PHP 8.3 tests to the 3.3.x branch
PHPBB3-17233
2023-11-26 22:44:40 +07:00
Marc Alexander
a9b5dcd954 [ticket/17176] Use different call to cause a notice
The previous call was upgraded to cause a warning in PHP 8.3

PHPBB3-17176
2023-11-26 22:41:30 +07:00
Marc Alexander
303f8f55cb Merge pull request #6565 from marc1706/ticket/17230
[ticket/17230] Update doctum to 5.5.3 for PHP 8.1 compatibility
2023-11-21 20:52:12 +01:00
Marc Alexander
c6fe842bc8 [ticket/17230] Update doctum to 5.5.3 for PHP 8.1 compatibility
PHPBB3-17230
2023-11-21 20:00:59 +01:00
Marc Alexander
92e678a116 [ticket/17212] Extend viewonline test for editing post
PHPBB3-17212
2023-11-11 10:36:17 +01:00
Marc Alexander
c098468699 [ticket/17212] Add comment on the need for updating session info
PHPBB3-17212
2023-11-09 21:10:07 +01:00
Marc Alexander
613582e2c5 [ticket/17212] Support updating session info when editing post with p=
PHPBB3-17212
2023-11-09 21:08:31 +01:00
Marc Alexander
43e69df080 Merge pull request #6562 from marc1706/ticket/14047
[ticket/14047] Check for stream close handshake before closing stream
2023-11-05 15:35:53 +01:00
Marc Alexander
f6b4c5b70d Merge pull request #6557 from marc1706/ticket/17204
[ticket/17204] Update composer dependencies to latest versions
2023-11-04 08:28:59 +01:00
Marc Alexander
fe84120bf2 Merge pull request #6490 from rxu/ticket/16470
[ticket/16470] Update user last visit time on session begin
2023-11-04 08:26:45 +01:00
Marc Alexander
0e1e792574 [ticket/14047] Check for stream close handshake before closing stream
PHPBB3-14047
2023-11-03 22:21:44 +01:00
Marc Alexander
d4178511a2 Merge pull request #6559 from marc1706/ticket/17207
[ticket/17207] Lazily call get_web_root_path() in twig environment
2023-11-02 21:57:27 +01:00
Marc Alexander
0e3bc638e9 Merge pull request #6560 from marc1706/ticket/17208
[ticket/17208] Skip profile field data update if youtube cpf doesn't exist
2023-11-02 21:50:42 +01:00
Marc Alexander
dd549a5e43 [ticket/17208] Ensure to not run the previous migration with missing column
PHPBB3-17208
2023-11-01 16:54:19 +01:00
Marc Alexander
526c79d2e2 [ticket/17208] Skip profile field data update if youtube cpf doesn't exist
PHPBB3-17208
2023-11-01 16:50:20 +01:00
Marc Alexander
8afc638171 [ticket/17207] Lazily call get_web_root_path() in twig environment
PHPBB3-17207
2023-11-01 16:23:23 +01:00
rxu
9e130333c0 [ticket/16470] remove unneeded migration, adjust code
PHPBB3-16470
2023-11-01 21:03:07 +07:00
Marc Alexander
2b7d8020b9 [ticket/17204] Update composer to latest version
PHPBB3-17204
2023-10-31 22:33:08 +01:00
Marc Alexander
bb7e7b682d [ticket/17204] Update composer dependencies to latest versions
PHPBB3-17204
2023-10-31 22:20:35 +01:00
Marc Alexander
37039f95d2 Merge pull request #6555 from GanstaZ/ticket/17203
[ticket/17203] Add CSS ol for group desc
2023-10-31 22:10:04 +01:00
Marc Alexander
993e28098d Merge pull request #6554 from GanstaZ/ticket/17202
[ticket/17202] Include bidi.css to print only in RTL languages
2023-10-31 22:02:30 +01:00
Marc Alexander
25c20cbcf3 Merge pull request #6553 from marc1706/ticket/17201
[ticket/17201] Do not run dirname() on dir path during install redirect
2023-10-31 20:21:31 +01:00
Marc Alexander
88bbd0fca6 Merge pull request #6556 from GanstaZ/ticket/17200
[ticket/17200] Fix color parse error in viewonline legend
2023-10-30 21:40:33 +01:00
Marc Alexander
eed57fd089 Merge pull request #6543 from Crizz0/ticket/17187
[ticket/17187] Repair mcp link to first unread post
2023-10-30 21:37:25 +01:00
Marc Alexander
58fc9e042a [ticket/17201] Add comment on need to add dot to script_name
PHPBB3-17201
2023-10-29 16:54:07 +01:00
GanstaZ
5ab3916311 [ticket/17200] Remove not needed addition
PHPBB3-17200
2023-10-29 16:45:33 +01:00
GanstaZ
79b8f56427 [ticket/17200] Fix color error in viewonline legend
PHPBB3-17200
2023-10-25 15:56:03 +03:00
Marc Alexander
593c4b875c [ticket/17201] Split off logic into function and add tests
PHPBB3-17201
2023-10-23 21:10:53 +02:00
GanstaZ
2e93f5f3e8 [ticket/17202] Include bidi.css to print only in RTL languages
PHPBB3-17202
2023-10-23 21:47:10 +03:00
GanstaZ
959f60a591 [ticket/17203] Add CSS ol for group desc
PHPBB3-17203
2023-10-23 21:36:31 +03:00
Marc Alexander
607a2c483a [ticket/17201] Add dot for improved dirname for URI ending in slash
PHPBB3-17201
2023-10-23 17:26:10 +02:00
Marc Alexander
70ba9dac03 [ticket/17201] Do not run dirname() on dir path during install redirect
PHPBB3-17201
2023-10-22 20:46:29 +02:00
Marc Alexander
7e6c5df710 Merge branch 'prep-release-3.3.11' into 3.3.x 2023-10-21 08:09:41 +02:00
Marc Alexander
90973a52b4 [prep-release-3.3.11] Update changelog for 3.3.11 2023-10-16 22:11:56 +02:00
Marc Alexander
4eef6a4de4 [3.3.x] Update version numbers to 3.3.12-dev 2023-10-15 16:56:54 +02:00
Marc Alexander
01b8d6a58e Merge branch 'prep-release-3.3.11' into 3.3.x 2023-10-15 16:55:16 +02:00
Marc Alexander
31b3d56ac1 Merge pull request #70 from phpbb/ticket/security-132
[ticket/security-132] Limit maximum number of captcha attempts at register
2023-10-15 13:51:05 +02:00
Marc Alexander
ccf6e6c255 Merge pull request #69 from phpbb/ticket/security-279
[ticket/security/279] Escape smilies URL and prevent paths in .pak filename
2023-10-15 13:50:41 +02:00
Marc Alexander
8fe3a97a1a [prep-release-3.3.11] Update changelog for 3.3.11 2023-10-15 12:02:16 +02:00
Marc Alexander
2c5519da39 [prep-release-3.3.11] Add migration for 3.3.11 2023-10-15 11:59:24 +02:00
Marc Alexander
0c90bf0000 [prep-release-3.3.11] Update version numbers to 3.3.11 2023-10-15 11:57:17 +02:00
Marc Alexander
edc610e81d [prep-release-3.3.11] Update version numbers to 3.3.11 2023-10-15 11:57:16 +02:00
Marc Alexander
e071cd801a Merge pull request #6527 from marc1706/ticket/16877
[ticket/16877] Use replacement library for oauth
2023-10-10 20:53:05 +02:00
Marc Alexander
ac76b80cb1 Merge pull request #6531 from toxyy/ticket/17188
[ticket/17188] Allow request variable to check multiline unicode
2023-10-06 20:20:00 +02:00
toxyy
d4e0840e6f [ticket/17188] Change regex being edited
Change the edited regex to ruben's recommendation

PHPBB3-17188
2023-10-05 16:16:30 -04:00
Marc Alexander
137422116e [ticket/security-132] Limit maximum number of captcha attempts at register
SECURITY-132
2023-10-05 21:06:15 +02:00
Marc Alexander
5f8c9962a0 Merge pull request #6521 from marc1706/ticket/13399
[ticket/13399] Add separate plural rules for characters count
2023-10-04 21:51:46 +02:00
Marc Alexander
0a8391857f [ticket/13399] Add info about usage of CHARACTERS_XY lang string
PHPBB3-13399
2023-10-04 20:09:47 +02:00
Marc Alexander
233d6a0a69 Merge pull request #6546 from Derky/ticket/17189
[Ticket/17189] Improve installer file permission checks
2023-10-04 20:03:17 +02:00
Marc Alexander
91b3627236 [ticket/17189] Check if different way of getting parent path works better
PHPBB3-17189
2023-10-02 21:45:31 +02:00
Marc Alexander
9dec6d3176 Merge pull request #6552 from marc1706/ticket/12904
[ticket/12904] Do not display info about required fields without any
2023-10-02 21:02:05 +02:00
Marc Alexander
6fac65d193 [ticket/12904] Do not display info about required fields without any
PHPBB3-12904
2023-10-01 21:20:00 +02:00
Marc Alexander
42bf5778d5 Merge pull request #6526 from marc1706/ticket/17029
[ticket/17029] Update post count when changing post visibility
2023-10-01 13:59:05 +02:00
Marc Alexander
4bf78d139b [ticket/17029] Add tests for deleting of last post with different visibility
PHPBB3-17029
2023-10-01 11:12:14 +02:00
Marc Alexander
d76c571ad1 [ticket/17029] Test changing of post count on approve/delete
PHPBB3-17029
2023-10-01 10:35:57 +02:00
Marc Alexander
4046365977 [ticket/17029] Use constants instead of magic numbers in tests
PHPBB3-17029
2023-10-01 10:30:57 +02:00
Marc Alexander
c480dd8d2f Merge pull request #6547 from Crizz0/ticket/17113
[ticket/17113] Write icon_id to split topic's posts
2023-09-30 17:07:03 +02:00
Derky
266376af2e [ticket/security/279] Use utf8_basename for smilies pak file check
SECURITY-279
2023-09-30 16:22:57 +02:00
Derky
c4f42c1573 [ticket/security/279] Use rawurlencode for escaping smilie URLs
SECURITY-279
2023-09-30 16:22:57 +02:00
Derky
d8ac6f575e [ticket/security/279] Escape smilies URL and prevent paths in .pak filename
SECURITY-279
2023-09-30 16:22:56 +02:00
Marc Alexander
715c0ad608 Merge pull request #6545 from Crizz0/ticket/17116
[ticket/17116] Remove always TRUE if-sentence
2023-09-30 13:44:21 +02:00
Marc Alexander
745dd5f5a8 [ticket/17113] Usq sql_build_array() for cleaner code
PHPBB3-17113
2023-09-30 13:23:54 +02:00
Christian Schnegelberger
346523fad6 [ticket/17113] Write icon_id to split topic's posts
PHPBB3-17113
2023-09-30 13:23:54 +02:00
Marc Alexander
78aca08d39 Merge pull request #6551 from marc1706/ticket/17198
[ticket/17198] Use https instead of http as default in remote avatar
2023-09-30 13:22:21 +02:00
Marc Alexander
90b1c2210e Merge pull request #6550 from marc1706/ticket/15973
[ticket/15973] Add canonical URL for index
2023-09-30 13:21:44 +02:00
Marc Alexander
a04af20806 [ticket/17198] Use https instead of http as default in remote avatar
PHPBB3-17198
2023-09-29 21:34:27 +02:00
Marc Alexander
88dcb5d3d5 [ticket/15973] Add canonical URL for index
PHPBB3-15973
2023-09-27 21:03:01 +02:00
Marc Alexander
2d3781f285 Merge pull request #6548 from battye/ticket/17128
[ticket/17128] Fix outdated link to php.net date format page
2023-09-27 20:08:42 +02:00
battye
b724e82bbd [ticket/17128] Fix outdated link to date format
The information on php.net has been moved from
the date page to the DateTime page as discussed
in Zag

PHPBB3-17128
2023-09-24 19:56:30 +00:00
Marc Alexander
3163b1726c Merge pull request #6539 from battye/ticket/17172
[ticket/17172] Use correct lang for forum links
2023-09-24 20:09:57 +02:00
Derky
6b6c710706 [ticket/17189] Append slash after installer cache path
PHPBB3-17189
2023-09-24 13:46:39 +02:00
Derky
a78eb6fb42 [ticket/17189] Show file names that couldn't be modified by installer
PHPBB3-17189
2023-09-23 16:50:10 +02:00
Derky
3b622bc005 [ticket/17189] Check folder permissions before writing
PHPBB3-17189
2023-09-23 16:38:32 +02:00
Christian Schnegelberger
b14f37d409 [ticket/17116] Remove always TRUE if-sentence
PHPBB3-17116
2023-09-23 16:17:40 +02:00
Christian Schnegelberger
b0248d2d78 [ticket/17187] Repair mcp link to first unread post
PHPBB3-17187
2023-09-23 15:54:21 +02:00
battye
0f38ece743 [ticket/17172] Use correct lang for forum links
PHPBB3-17172
2023-09-22 17:08:02 +02:00
Marc Alexander
e80cf43adc Merge pull request #6536 from Crizz0/ticket/17194
[ticket/17194] Move php version in vagrant from folders to sites
2023-09-22 15:11:42 +02:00
Christian Schnegelberger
aba7f4a9e6 [ticket/17194] Move php version in vagrant from folders to sites
PHPBB3-17194
2023-09-22 13:17:22 +02:00
Derky
e1052bd168 Merge pull request #6532 from marc1706/ticket/12785
[ticket/12785] Prefer REQUEST_URI over PHP_SELF in early redirects
2023-09-21 19:29:21 +02:00
toxyy
d59a4d4aad [ticket/17188] Add unit tests
Adds rxu's unit tests, with rubencm's fix

PHPBB3-17188
2023-09-16 12:55:23 +02:00
toxyy
8360752b2a [ticket/17188] Allow request variable to check multiline unicode
Change set_var to check for multiline strings if multibyte

PHPBB3-17188
2023-09-16 12:55:23 +02:00
Marc Alexander
d572070456 [ticket/12785] Prefer REQUEST_URI over PHP_SELF in early redirects
PHPBB3-12785
2023-09-16 12:02:39 +02:00
Marc Alexander
4513d1c0af [ticket/16877] Bump minimum PHP version to 7.2.0
PHPBB3-16877
2023-08-15 20:28:41 +02:00
Marc Alexander
74fe9f40b7 [ticket/16877] Use replacement library for oauth
PHPBB3-16877
2023-08-15 19:56:36 +02:00
Marc Alexander
bdbbc63b9c Merge pull request #6524 from marc1706/ticket/17129
[ticket/17129] Use sql_build_array for cleaner update of youtube profile field
2023-08-15 18:19:43 +02:00
Marc Alexander
10330e5867 [ticket/17029] Fall back to redirecting to topic when post id is invalid
PHPBB3-17029
2023-08-15 11:07:40 +02:00
Marc Alexander
2563561663 [ticket/17029] Treat deleting post as last post when id is bigger
PHPBB3-17029
2023-08-15 11:07:10 +02:00
Marc Alexander
facd14b47e [ticket/17029] Update post count when changing post visibility
PHPBB3-17029
2023-08-15 11:06:47 +02:00
Marc Alexander
0596d1065e [ticket/17129] Use sql_build_array for cleaner update of youtube profile field
PHPBB3-17129
2023-08-13 10:21:02 +02:00
Marc Alexander
a414a44e36 Merge pull request #6516 from marc1706/ticket/17137
[ticket/17137] Allow deleting user files only when post/pm can be changed
2023-08-06 20:32:12 +02:00
Marc Alexander
6268693cff [ticket/17137] Improve code claritiy for math operation vs. comparison
PHPBB3-17137
2023-08-06 16:37:23 +02:00
Marc Alexander
e5db724d2c Merge pull request #6501 from marc1706/ticket/13276
[ticket/13276] Support PHPBB_USE_BOARD_URL_PATH in web root path
2023-08-06 14:54:42 +02:00
Marc Alexander
dd790b41eb Merge pull request #6481 from marc1706/ticket/17129
[ticket/17129] Update youtube profile field to support latest URLs
2023-08-06 14:01:27 +02:00
Marc Alexander
50859bc8a5 Merge pull request #6522 from marc1706/ticket/13364
[ticket/13364] Force sync forum after splitting topic
2023-08-03 19:37:23 +02:00
Marc Alexander
b0d976f462 [ticket/13364] Force sync forum after splitting topic
PHPBB3-13364
2023-07-31 21:45:59 +02:00
Marc Alexander
9515abdb91 [ticket/13399] Add separate plural rules for characters count
PHPBB3-13399
2023-07-31 21:14:05 +02:00
Marc Alexander
b53645177b Merge pull request #6519 from marc1706/ticket/17171
[ticket/17171] Remove unsupported CSS rules for placeholder
2023-07-31 10:04:34 +02:00
Marc Alexander
0df0bd269a [ticket/17171] Remove unsupported CSS rules for placeholder
The content property is not supported by the placeholder pseudo-element
and hence the rules do not have any effect and can be removed.

PHPBB3-17171
2023-07-30 10:00:56 +02:00
Marc Alexander
098f22609d Merge pull request #6515 from marc1706/ticket/11184
[ticket/11184] Add note about effect of admin permissions for founders
2023-07-29 14:44:49 +02:00
Marc Alexander
1dedb05dce [ticket/17137] Add missing post_time column to query
PHPBB3-17137
2023-07-29 10:06:35 +02:00
Marc Alexander
e3547aeb82 [ticket/17137] Allow deleting user files only when post/pm can be changed
PHPBB3-17137
2023-07-28 20:43:32 +02:00
Marc Alexander
253ecdd3fe [ticket/11184] Add note about effect of admin permissions for founders
PHPBB3-11184
2023-07-26 21:45:31 +02:00
Marc Alexander
f9281f9267 Merge pull request #6514 from marc1706/ticket/11765
[ticket/11765] Support IPv4 embedded IPv6 addresses in short_ipv6()
2023-07-26 21:02:07 +02:00
Marc Alexander
56f0846378 [ticket/11765] Support IPv4 embedded IPv6 addresses in short_ipv6()
PHPBB3-11765
2023-07-26 17:21:43 +02:00
Marc Alexander
0ede362120 Merge pull request #6513 from marc1706/ticket/17160
[ticket/17160] Add missing mark column header
2023-07-26 15:21:06 +02:00
Marc Alexander
e11c11ac9d Merge pull request #6512 from marc1706/ticket/8777
[ticket/8777] Discourage deleting user from group with only one group
2023-07-19 22:44:05 +02:00
Marc Alexander
e0e0173442 [ticket/17160] Add missing mark column header
PHPBB3-17160
2023-07-09 22:06:36 +02:00
Marc Alexander
33c4abe909 Merge pull request #6511 from marc1706/ticket/17053
[ticket/17053] Add simple check for writable cache directory
2023-07-04 09:00:54 +02:00
Marc Alexander
cca85f648b [ticket/8777] Discourage deleting user with only one group
It will still be possible from the manage groups page though is discouraged
now by hiding the delete entry when managing users.

In addition to this, the manage user page will now show that no group is
specified for the user when viewing the groups page of a user.

PHPBB3-8777
2023-07-04 08:43:54 +02:00
Marc Alexander
add6d2b726 [ticket/17053] Add simple check for writable cache directory
PHPBB3-17053
2023-07-03 21:40:36 +02:00
Marc Alexander
5f825002b6 Merge pull request #6508 from marc1706/ticket/17154
[ticket/17154] Update composer and dependencies
2023-07-03 15:00:38 +02:00
Marc Alexander
aaf5700076 [ticket/17154] Revert back to composer 2.2 for 3.3.x
PHPBB3-17154
2023-07-02 13:26:32 +02:00
Marc Alexander
e9ac8f1f94 [ticket/17154] Update composer dependencies
PHPBB3-17154
2023-07-02 11:32:20 +02:00
Marc Alexander
a39691b0d5 [ticket/17154] Update composer to 2.5.8
PHPBB3-17154
2023-07-02 11:26:05 +02:00
Marc Alexander
0c8e6172fb Merge pull request #6503 from rxu/ticket/17152
[ticket/17152] Add template event to viewtopic_body.html
2023-07-02 09:59:09 +02:00
Marc Alexander
14b94a1e62 Merge pull request #6497 from marc1706/ticket/17150
[ticket/17150] Set max width for forum-image img
2023-07-01 22:15:29 +02:00
rxu
b550d1db0a [ticket/17152] Add template event to viewtopic_body.html
Add template event to viewtopic_body.html before the message

PHPBB3-17152
2023-07-01 00:20:24 +07:00
Marc Alexander
a686a2f057 [ticket/13276] Support PHPBB_USE_BOARD_URL_PATH in web root path
PHPBB3-13276
2023-06-30 16:42:27 +02:00
Marc Alexander
22d6b035d6 Merge pull request #6498 from marc1706/ticket/17141
[ticket/17141] Improve stability of path_helper and increase test coverage
2023-06-28 13:39:39 +02:00
Marc Alexander
bdeedfea4e Merge pull request #6499 from marc1706/ticket/17140
[ticket/17140] Add missing parameter phpbb_root_path
2023-06-28 13:35:50 +02:00
Marc Alexander
85e5c9dcca [ticket/17140] Add missing parameter phpbb_root_path
PHPBB3-17140
2023-06-27 00:29:11 +02:00
Marc Alexander
91f216d9ce [ticket/17141] Fully cover path_helper with unit tests
PHPBB3-17141
2023-06-26 23:15:55 +02:00
Marc Alexander
b0c008690a [ticket/17141] Remove duplicate prepending with phpbb_root_path
PHPBB3-17141
2023-06-26 23:15:23 +02:00
Marc Alexander
55ea8d6030 [ticket/17141] Symfony request can never be null so don't check for it
PHPBB3-17141
2023-06-26 23:14:58 +02:00
Marc Alexander
8223a956df [ticket/17141] Ensure correction is newer below 0
PHPBB3-17141
2023-06-26 23:14:21 +02:00
Marc Alexander
cfd15752ee [ticket/17150] Set max width for forum-image img
PHPBB3-17150
2023-06-26 15:03:38 +02:00
Marc Alexander
5ee2efd4c2 Merge pull request #6493 from rxu/ticket/17148
[ticket/17148] Fix sql_table_exists() error for PostgreSQL 9.3 and earlier - 3.3.x
2023-06-26 13:16:42 +02:00
Marc Alexander
0fdc76521b Merge pull request #6492 from im4bb/ticket/17146
Fix 'undefined array key' php8 warning
2023-06-26 09:40:57 +02:00
rxu
7ba5f8f22a [ticket/16470] Revert session_time sync back
This reverts changes made by last 2 commits as they seem to break things.

PHPBB3-16470
2023-06-26 10:05:47 +07:00
rxu
f99d1a7a51 [ticket/16470] Remove tests for user_lastvisit vs session_time sync
PHPBB3-16470
PHPBB3-14173
2023-06-22 14:33:27 +07:00
rxu
33dfaa478c [ticket/16470] Further do not rely on session_time displaying user activity
session_time has not been updated during session_length, so relying on it last
activity data will be incorrect, especially if session_length value is high.
Thus rely on regular and properly updated user_lastvisit.
Remove user_lastvisit vs with session_time sync for the same reason.
Also get rid of the session_last_visit field as it floats between
user_lastvisit and session_time and actually is meaningless.

PHPBB3-16470
PHPBB3-14173
2023-06-22 13:09:51 +07:00
im4bb
4c72b76809 [ticket/17146] Use empty for checking if user_jabber is not empty
PHPBB3-17146
2023-06-21 22:09:00 +02:00
Marc Alexander
bf50c63d6e Merge pull request #6491 from im4bb/ticket/17145
Change static to private variable due to php81 inheritance
2023-06-21 20:35:54 +02:00
im4bb
464466cade [ticket/17145] Change static to private variable due to php81 inheritance
PHPBB3-17145
2023-06-21 10:46:55 +02:00
rxu
735b826063 [ticket/16470] Do not sync user last visit time with expired sessions time
PHPBB3-16470
PHPBB3-14173
2023-06-21 00:02:29 +07:00
Marc Alexander
b613c9f63d Merge pull request #6488 from rxu/ticket/17142
[ticket/17142] Fix DBMS+cache related PHP warnings while installing - 3.3.x
2023-06-20 11:38:36 +02:00
Marc Alexander
acaec9f95f [ticket/17129] Update regex and tests for changed input data to youtube cpf
PHPBB3-17129
2023-06-20 10:32:48 +02:00
Marc Alexander
2f3066235c Merge pull request #6495 from marc1706/ticket/17149
[ticket/17149] Update authors list and simplify pull request template
2023-06-19 11:44:45 +02:00
Marc Alexander
e0a30fbce7 [ticket/17149] Remove extra note from pull request template
PHPBB3-17149
2023-06-19 09:51:15 +02:00
Marc Alexander
a8658fe4d1 [ticket/17149] Move mrgoldy to former developers
PHPBB3-17149
2023-06-19 09:50:24 +02:00
Marc Alexander
c11f16fda0 Merge pull request #6484 from rxu/ticket/17107
[ticket/17107] Fix viewonline page locations for posting modes - 3.3.x
2023-06-18 23:12:59 +02:00
rxu
bbe2b21310 [ticket/16470] Correctly handle user last visit update on session create
PHPBB3-16470
PHPBB3-14173
2023-06-18 23:56:44 +07:00
rxu
8c33a2180d [ticket/17148] Fix sql_table_exists() error for PostgreSQL 9.3 and earlier
PostgreSQL 9.3 and earlier versions don't support Empty SELECT lists
(support was added since v. 9.4).
Also add PostgreSQL 9.3 tests as earlier images fail in current tests env.

PHPBB3-17148
2023-06-18 00:46:27 +07:00
rxu
9e55d3cb44 [ticket/16470] Adjust user last visit time update logic
Previous logic doesn't work correctly as session_time value got updated
in regular manner, so that its 60 seconds lag with time_now
can be unreachable in some cases. So update user_lastvisit if it lags
for 60 sec of session_time.

PHPBB3-16470
PHPBB3-14173
2023-06-17 00:50:22 +07:00
rxu
a14e8f8ce5 [ticket/16470] Adjust method result type
PHPBB3-16470
PHPBB3-14173
2023-06-15 23:21:34 +07:00
rxu
4f9bd296a7 [ticket/17107] Add method parameter and result type declarations
PHPBB3-17107
2023-06-14 21:13:49 +07:00
Marc Alexander
65fb35223c Merge pull request #6486 from rxu/ticket/17139
[ticket/17139] Fix PHP fatal error for file transfer tool of updater
2023-06-11 21:57:06 +02:00
rxu
aefdd86020 [ticket/16470] Add migration to update existing data
PHPBB3-16470
PHPBB3-14173
2023-06-12 01:37:34 +07:00
rxu
aafb522538 [ticket/16470] Update user last visit time on session begin
Update user last visit time on session begin same way as on session create.

PHPBB3-16470
PHPBB3-14173
2023-06-11 15:51:41 +07:00
rxu
1eb81e9b2a [ticket/17142] Fix class inheritance issues
PHPBB3-17142
2023-06-08 10:11:54 +07:00
rxu
d8d67b5f17 [ticket/17142] Fix tests' mock cache class
PHPBB3-17142
2023-06-08 09:16:47 +07:00
rxu
7adee3c50d [ticket/17142] Fix DBMS+cache related PHP warnings while installing
PHPBB3-17142
2023-06-08 00:59:32 +07:00
Marc Alexander
75dcbeaa9f Merge pull request #6478 from m-ober/ticket/17097
[ticket/17097] Fix PHP 8.2 deprecation warnings
2023-05-29 20:38:59 +02:00
Micha Ober
f4af87f718 [ticket/17097] Fix PHP 8.2 deprecation warnings
PHPBB3-17097
2023-05-28 01:28:03 +02:00
rxu
26d002a51a [ticket/17139] Fix more PHP fatal errors
PHPBB3-17139
2023-05-25 20:22:42 +07:00
rxu
e0144ae7b2 [ticket/17139] Fix PHP fatal error for file transfer tool of updater
Uncaught TypeError: ftp_delete(): Argument #1 ($ftp) must be of type
FTP\\Connection, bool given
Stack trace:
#0 [ROOT]/includes/functions_transfer.php(427): ftp_delete(false, '...')

PHPBB3-17139
2023-05-24 22:39:16 +07:00
rxu
c2c7c271e7 [ticket/17139] Fix PHP fatal error for file transfer tool of updater
PHPBB3-17139
2023-05-24 20:49:01 +07:00
rxu
dfe6421da8 [ticket/17107] Fix docblock issues
PHPBB3-17107
2023-05-24 20:27:53 +07:00
rxu
60d267893c [ticket/17107] Fix viewonline functional test
PHPBB3-17107
2023-05-24 19:35:37 +07:00
Marc Alexander
e0361fe9fe Merge pull request #6469 from Crizz0/ticket/17004
[ticket/17004] Repair pagination func for global announcements in ucp front
2023-05-23 20:54:35 +02:00
rxu
130e7f7e8a [ticket/17107] Fix viewonline helper test
PHPBB3-17107
2023-05-23 19:26:45 +07:00
rxu
f5c5d7d1e6 [ticket/17107] Fix viewonline page locations for posting modes
PHPBB3-17107
2023-05-23 19:09:13 +07:00
Marc Alexander
bddb4decfb Merge pull request #6480 from rxu/ticket/17132
[ticket/17132] Restore language entries missing in phpBB 2.0 converter
2023-05-16 20:49:25 +02:00
Marc Alexander
3cde5974d2 Merge pull request #6482 from marc1706/ticket/15129
[ticket/15129] Ensure link to installation guide is correct
2023-05-16 20:46:34 +02:00
Marc Alexander
5655febb8d [ticket/15129] Ensure link to installation guide is correct
PHPBB3-15129
2023-04-26 21:42:54 +02:00
Marc Alexander
437839ba72 [ticket/17129] Update contact url template
PHPBB3-17129
2023-04-26 20:54:24 +02:00
rxu
4f49fb1f98 [ticket/17132] Restore language entries missing in phpBB 2.0 converter
PHPBB3-17132
2023-04-21 00:23:35 +07:00
Marc Alexander
6e77ca50ae [ticket/17129] Update social media profile types to support latest URLs
PHPBB3-17129
2023-04-17 21:40:27 +02:00
Christian Schnegelberger
015c038d92 [ticket/17004] Remove not needed if and topic_count
PHPBB3-17004
2023-04-17 18:44:03 +02:00
Marc Alexander
bd55fe7e8c [ticket/17129] Update youtube profile field to be up to date with migrations
PHPBB3-17129
2023-04-16 10:01:45 +02:00
Marc Alexander
6e66f1505c Merge pull request #6392 from lionel-rowe/ticket/8071
[ticket/8071] Add sql_last_inserted_id alias for sql_nextid
2023-04-11 22:18:57 +02:00
Marc Alexander
640a2221a5 Merge pull request #6477 from rxu/ticket/17127
[ticket/17127] Do not purge guest sessions when resetting password
2023-04-11 21:17:28 +02:00
Marc Alexander
c27214495c [ticket/17127] Remove redundant check for changed password
user_password will have been updated if u_chgpasswd is yes and new password
has been set, no need to check password against old hash again.

PHPBB3-17127
2023-04-10 19:39:23 +02:00
rxu
98f6a1a300 [ticket/17127] Do not purge guest sessions when resetting password
PHPBB3-17127
2023-04-07 18:37:57 +07:00
Marc Alexander
0260fcd6a7 Merge pull request #6474 from andrew-demb/patch-2
Fix filename in instructions about running all tests
2023-04-05 21:40:02 +02:00
Marc Alexander
f2d004a881 Merge pull request #6472 from rxu/ticket/17115
[ticket/17115] Fix PHP warning for space+hyphen ending search query - 3.3.x
2023-04-04 21:32:39 +02:00
Andrii Dembitskyi
31654e728f [ticket/17126] Fix filename in instructions about running all tests
PHPBB3-17126
2023-04-04 20:45:03 +02:00
Marc Alexander
c879d9380f Merge pull request #6475 from iMattPro/ticket/17125
[ticket/17125] use box-sizing for message box text areas
2023-04-04 20:34:49 +02:00
Matt Friedman
9db5da5b3d [ticket/17125] Use box-sizing to fix message box
PHPBB3-17125
2023-04-02 14:27:35 +00:00
Matt Friedman
d5aa6189b6 [ticket/17125] Use FlexBox for message and smileys
PHPBB3-17125
2023-03-31 19:05:18 +00:00
Marc Alexander
389cca5402 Merge pull request #6468 from Crizz0/ticket/17040
[ticket/17040] Include bidi.css to pm print only in RTL languages
2023-03-19 20:50:38 +01:00
rxu
defb807dbc [ticket/17115] Fix PHP warning for space+hyphen ending search query
PHPBB3-17115
2023-03-16 20:57:43 +07:00
Marc Alexander
9fb7a9108a Merge pull request #6467 from Crizz0/ticket/17041
[ticket/17041] Add if to show other arrow for RTL languages
2023-03-02 21:04:22 +01:00
Marc Alexander
4bf78fd7fd Merge pull request #6465 from LukeWCS/ticket/17076
[ticket/17076] Fix signature length calculation
2023-02-28 20:26:07 +01:00
Marc Alexander
261aa0e6aa Merge pull request #6466 from Crizz0/ticket/17042
[ticket/17042] Add CSS rules for group desc and list
2023-02-14 20:59:47 +01:00
Marc Alexander
41b8ec0470 Merge pull request #6464 from Crizz0/ticket/17043
[ticket/17043] Remove unnecessary cp navi CSS rule in bidi.css
2023-02-06 22:44:10 +01:00
Marc Alexander
984596ffd3 Merge pull request #6463 from Crizz0/ticket/17045
[ticket/17045] Use NUM_ATTACHMENTS in UCP and right css classes
2023-02-06 21:08:04 +01:00
Marc Alexander
1416e25cfd Merge pull request #6462 from Crizz0/ticket/17046
[ticket/17046] Use tweaks.css for IE9 in overall_ and simple_header
2023-02-06 21:03:49 +01:00
Marc Alexander
3584d79e87 Merge pull request #6460 from Crizz0/ticket/17089
[ticket/17089] If user warned without post assume 0 for forum/topic_id
2023-02-06 20:05:05 +01:00
Marc Alexander
e5bbb899f7 Merge branch 'prep-release-3.3.10' into 3.3.x 2023-02-05 22:06:18 +01:00
Marc Alexander
2afc1c369a Merge pull request #6459 from Crizz0/ticket/17098
[ticket/17098] Add class S_CONTENT_DIRECTION to body in ucp_pm_viewmessage_print.html
2023-02-05 00:03:37 +01:00
Marc Alexander
81f67f3a6e [prep-release-3.3.1] Update changelog for 3.3.10 2023-02-04 20:32:52 +01:00
Marc Alexander
4a185ed02e [prep-release-3.3.1] Add migration for 3.3.10 2023-02-04 20:31:26 +01:00
Marc Alexander
cfd0fe6943 [prep-release-3.3.1] Update version numbers to 3.3.10 2023-02-04 20:31:19 +01:00
Christian Schnegelberger
3f6abe056a [ticket/17004] Repair pagination func for global announce in ucp front
PHPBB3-17004
2023-02-02 18:06:36 +01:00
Christian Schnegelberger
9b961836be [ticket/17040] Include bidi.css to pm print only in RTL languages
PHPBB3-17040
2023-02-01 21:57:13 +01:00
Christian Schnegelberger
aa5e9bf25c [ticket/17041] Add if to show other arrow for RTL languages
PHPBB3-17041
2023-02-01 20:59:14 +01:00
Christian Schnegelberger
50c3c3f0ee [ticket/17042] Add CSS rules for group desc and list
PHPBB3-17042
2023-02-01 20:36:22 +01:00
LukeWCS
1f96a2c79a [ticket/17076] Fix signature length calculation
The error occurs when BBcode is used but there is no whitespace. In this case,
a part of the RegEx that is designed to be greedy is responsible for selecting
all BBcode tag containers and their content that do not contain whitespace.
This, in combination with the replace string, effectively reduces the entire
signature to a single space. This is the explanation for the reported behavior
of phpBB.

In addition, the bug also generally prevents the correct removal of BBcode
containers if their content does not contain whitespace. In such cases, the
BBcode tags are removed along with the content, which also results in
incorrect calculation of the text length.

* Changed the corresponding RegEx part from greedy to non-greedy.
* Removed an unnecessary class definition.
* Changed an unnecessary capturing group to a non-capturing group.
* Changed the replace string from a space to an empty string. <- Here,
however, I'm not sure if the space was intentional or not!

PHPBB3-17076
2023-02-01 20:21:37 +01:00
Christian Schnegelberger
24a5972a0b [ticket/17043] Remove unnecessary cp navi CSS rule in bidi.css
PHPBB3-17043
2023-02-01 20:18:30 +01:00
Christian Schnegelberger
fc8c6acae4 [ticket/17045] Use NUM_ATTACHMENTS in UCP and right css classes
PHPBB3-17045
2023-02-01 20:11:34 +01:00
Christian Schnegelberger
0f445c73a0 [ticket/17046] Use tweeks.css for IE9 in overall_ and simple_header
PHPBB3-17046
2023-02-01 19:35:16 +01:00
Marc Alexander
0f1c62bc7b Merge pull request #6457 from marc1706/ticket/16796
[ticket/16796] Fixing misalignment of header items in category on index
2023-01-31 22:02:12 +01:00
Christian Schnegelberger
b7258788cc [ticket/17089] If user warned without post assume 0 for forum/topic_id
PHPBB3-17089
2023-01-31 18:56:58 +01:00
Christian Schnegelberger
632702e10f [ticket/17098] Add class S_CONTENT_DIRECTION to body in pm print
PHPBB3-17098
2023-01-31 18:14:41 +01:00
Marc Alexander
b5c316c9c3 [ticket/8071] Make nextid alias of sql_last_inserted_id and add deprecation
PHPBB3-8071
2023-01-31 17:17:42 +01:00
Marc Alexander
458940217b Merge pull request #6456 from battye/ticket/17025
[ticket/17025] Move post destination topic field should not be populated with a zero
2023-01-31 16:56:27 +01:00
Marc Alexander
1b82ea8a11 Merge pull request #6410 from DaRk1V0iD/ticket/16913_3.3.x
[ticket/16913] Add Search Index Progress Bar with Stats [3.3.x]
2023-01-31 16:50:59 +01:00
Marc Alexander
85cf70765d Merge pull request #6451 from battye/ticket/17086
[ticket/17086] Add GitHub Codespaces support to phpBB (3.3.x branch)
2023-01-31 16:46:29 +01:00
MannixMD
9794a84f3a [ticket/16796] Fixing misalignment of header items in category on index
This is a fix for the Posts and Views alignment on index page in the header
of category/forum.

PHPBB3-16796
2023-01-29 09:26:27 +01:00
battye
33ba9f3392 [ticket/17025] Fix MCP move posts topic ID 0
PHPBB3-17025
2023-01-22 16:55:39 +08:00
Marc Alexander
09820dfdfa Merge branch 'prep-release-3.3.10' into 3.3.x 2023-01-18 19:52:44 +01:00
Marc Alexander
6590827316 Merge pull request #6453 from Noxwizard/ticket/17092
[ticket/17092] Check for Spamhaus error codes
2023-01-18 19:52:18 +01:00
Marc Alexander
738dd786ba [ticket/17092] Clean up docblock and remove redundant check
PHPBB3-17092
2023-01-17 20:44:05 +01:00
Patrick Webster
17f2d6e03a [ticket/17092] Check for Spamhaus error codes
Fix indentation

PHPBB3-17092
2023-01-17 20:37:49 +01:00
Patrick Webster
20c3371460 [ticket/17092] Check for Spamhaus error codes
Remove leftover logging

PHPBB3-17092
2023-01-17 20:37:49 +01:00
Patrick Webster
aa523eadf1 [ticket/17092] Check for Spamhaus error codes
Switches to using callbacks for each DNSBL so that special cases can be
handled when needed. Adds support for Spamhaus error codes and disables DNSBL
checking if errors are encountered since they probably won't be resolved in a
timely manner by the owner or host.

PHPBB3-17092
2023-01-17 20:37:48 +01:00
Marc Alexander
d76f5132db Merge branch 'prep-release-3.3.10' into 3.3.x 2023-01-17 20:36:18 +01:00
Marc Alexander
179dcd9642 Merge pull request #6452 from marc1706/ticket/17091
[ticket/17091] Limit doctrine/instantiator to 1.x versions
2023-01-17 20:35:30 +01:00
Marc Alexander
8ebb64a92a [ticket/17091] Ensure session length is int
PHPBB3-17091
2023-01-16 16:56:12 +01:00
Marc Alexander
e091adcc9c [ticket/17091] Add kernel terminate logic and exit to cron response handling
PHPBB3-17091
2023-01-16 16:56:11 +01:00
Marc Alexander
61a7e0fdfc [ticket/17091] Update windows build commands as well
PHPBB3-17091
2023-01-15 22:00:21 +01:00
Marc Alexander
ad794c17ed [ticket/17091] Limit doctrine/instantiator to 1.x versions
PHPBB3-17091
2023-01-15 21:36:53 +01:00
battye
b5f8251b3f [ticket/17086] Remove trailing slash in Dockerfile
PHPBB3-17086
2023-01-14 17:17:54 +00:00
Marc Alexander
b5f10f844f [ticket/17086] Add missing empty lines and remove extra whitespace
PHPBB3-17086
2023-01-14 08:40:49 +01:00
Marc Alexander
a1a6ff4555 [3.3.x] Update versions to 3.3.11-dev 2023-01-13 22:50:09 +01:00
Marc Alexander
eabe7e8e3c Merge branch 'prep-release-3.3.10' into 3.3.x 2023-01-13 22:47:53 +01:00
Marc Alexander
6d8468c91a [prep-release-3.3.10] Update changelog for 3.3.10-RC1 2023-01-13 21:12:01 +01:00
Marc Alexander
aff7fab65f [prep-release-3.3.10] Add migration for 3.3.10-RC1 2023-01-13 21:11:51 +01:00
Marc Alexander
be053c3381 [prep-release-3.3.10] Update version numbers to 3.3.10 2023-01-13 21:11:31 +01:00
Marc Alexander
e805a47a98 [prep-release-3.3.10] Update version numbers to 3.3.10-RC1 2023-01-13 21:11:14 +01:00
Marc Alexander
9feae900d3 Merge pull request #68 from phpbb/ticket/security/275
[ticket/security/275] Gracefully handle exceptions thrown by wrong cron route
2023-01-12 20:33:42 +01:00
Marc Alexander
34f23477ff [ticket/security/275] Use unicode quote types
SECURITY-275
2023-01-12 20:12:33 +01:00
Marc Alexander
e5f069b15b [ticket/security/275] Add language vars and proper error codes
SECURITY-275
2023-01-11 20:33:08 +01:00
Marc Alexander
fd550bc25a [ticket/security/275] Gracefully handle exceptions thrown by wrong cron route
SECURITY-275
2023-01-10 21:09:48 +01:00
Marc Alexander
378c63b002 Merge pull request #6436 from LukeWCS/ticket/17068
[ticket/17068] ALLOW_CDN_EXPLAIN: Refines and expands the description
2023-01-10 20:38:20 +01:00
Marc Alexander
51766ffaee [ticket/17068] Slight adjustment to grammar in line with previous text
PHPBB3-17068
2023-01-10 20:03:25 +01:00
battye
2c8e16cf4b [ticket/17086] Update codespaces.md
PHPBB3-17086
2023-01-10 22:46:34 +08:00
battye
279f506d69 [ticket/17086] Codespaces - change admin login
PHPBB3-17086
2023-01-10 22:46:25 +08:00
battye
8564e1eac1 [ticket/17086] Add Codespaces documentation
PHPBB3-17086
2023-01-10 22:46:14 +08:00
battye
6e45a2361d [ticket/17086] Add devcontainer configuration for Codespaces
PHPBB3-17086
2023-01-10 22:46:05 +08:00
Marc Alexander
83b53690b5 Merge pull request #6450 from marc1706/ticket/17071
[ticket/17071] Switch to jsdelivr CDN for twemoji emojis
2023-01-09 21:58:31 +01:00
Marc Alexander
191f38b9a0 Merge pull request #6449 from marc1706/ticket/17039
[ticket/17039] Use correct template var for group colour in ucp groups manage
2023-01-09 21:40:17 +01:00
Marc Alexander
96afebf969 Merge pull request #6448 from marc1706/ticket/16938
[ticket/16938] Replace invalid nowrap with white-space css
2023-01-09 21:39:22 +01:00
Marc Alexander
3ece314338 [ticket/17071] Switch to jsdelivr CDN for twemoji emojis
PHPBB3-17071
2023-01-09 21:25:46 +01:00
Marc Alexander
c62d9e4c05 Merge pull request #6446 from rubencm/ticket/17082
[ticket/17082] Remove ability to warn anonymous
2023-01-07 21:02:12 +01:00
Marc Alexander
34b56205a3 [ticket/17039] Use correct template var for group colour in ucp groups manage
PHPBB3-17039
2023-01-07 20:51:40 +01:00
Marc Alexander
a0477a10ce [ticket/16938] Replace invalid nowrap with white-space css
PHPBB3-16938
2023-01-07 15:44:29 +01:00
Marc Alexander
9e44ba096e Merge pull request #6445 from rubencm/ticket/17081
[ticket/17081] Fix accept attribute in upload input
2023-01-07 15:40:21 +01:00
Ruben Calvo
7d29f133e5 [ticket/17082] Remove ability to warn anonymous
PHPBB3-17082
2023-01-06 04:33:09 +01:00
Ruben Calvo
e535f8e054 [ticket/17081] Fix accept attribute in upload input
PHPBB3-17081
2023-01-06 04:29:32 +01:00
Marc Alexander
11e68e910b Merge pull request #6444 from iMattPro/ticket/17075
[ticket/17075] Add template events to ACP footers after $SCRIPT
2023-01-04 21:47:53 +01:00
Marc Alexander
02efbc251e Merge pull request #6443 from rubencm/ticket/17074
[ticket/17074] Don't allow to create two roles with the same name
2023-01-03 22:52:04 +01:00
Matt Friedman
7434783b07 [ticket/17075] Add template events to ACP footers after $SCRIPT
PHPBB3-17075
2023-01-03 08:24:07 -08:00
Ruben Calvo
d446030a9b [ticket/17074] Don't allow to create two roles with the same name
PHPBB3-17074
2023-01-03 01:46:56 +01:00
LukeWCS
d6e3dfff6d [ticket/17068] ALLOW_CDN_EXPLAIN: Refines and expands the description
Concerns the description of the switch "APC > GENERAL > Load settings > Allow
usage of third party content delivery networks:".

* The text gives the impression that the choice of the switch state is a
personal preference of individual administrators. In fact, this is a matter of
local privacy laws.
* Missing mention that the switch also controls the integration of Font
Awesome, part of phpBB's GUI and extensions.

PHPBB3-17068
2022-12-26 11:07:42 +01:00
Marc Alexander
369ee44b6f Merge pull request #6423 from marc1706/ticket/13291
[ticket/13291] Close notifications dropdown during mark all read
2022-12-12 19:42:22 +01:00
Marc Alexander
0543c810a7 Merge pull request #6433 from marc1706/ticket/17066
[ticket/17066] Update actions to resolve deprecation warnings
2022-12-11 22:13:00 +01:00
Marc Alexander
bb0f6d040c [ticket/17066] Use Ubuntu 20.04 instead of 18.04
PHPBB3-17066
2022-12-11 20:43:01 +01:00
Marc Alexander
02ef7c5da4 [ticket/17066] Use new way of saving to github output
PHPBB3-17066
2022-12-11 16:54:37 +01:00
Marc Alexander
90899a17dd [ticket/17066] Use version 3 of actions checkout and cache
PHPBB3-17066
2022-12-11 15:10:44 +01:00
Marc Alexander
9c70c15e1c Merge pull request #6432 from Crizz0/ticket/17065
[ticket/17065] Add utf8_encode_ucr to $usernotes
2022-12-11 14:16:42 +01:00
Marc Alexander
21374390ad Merge pull request #6428 from wordlesswind/ticket/16105
[ticket/16105] Use Google reCAPTCHA globally
2022-12-09 21:43:06 +01:00
Marc Alexander
d03a853f6e Merge branch 'prep-release-3.3.9' into 3.3.x 2022-11-28 20:40:46 +01:00
Christian Schnegelberger
014008fd48 [ticket/17065] Add utf8_encode_ucr to $usernotes
PHPBB3-17065
2022-11-28 18:24:59 +01:00
Marc Alexander
b3d593b626 [prep-release-3.3.9] Update changelog for 3.3.9 2022-11-23 20:54:42 +01:00
Marc Alexander
744009882b [prep-release-3.3.9] Add migration for 3.3.9 2022-11-23 20:53:56 +01:00
Marc Alexander
1c407e8049 [prep-release-3.3.9] Update version numbers to 3.3.9 2022-11-23 20:53:53 +01:00
Marc Alexander
e75ea6642d Merge pull request #67 from phpbb/ticket/security-274
[ticket/security/274] Reset login keys/session when resetting password
2022-11-22 21:21:24 +01:00
Marc Alexander
ad9e5e6891 [ticket/16105] Replace const with lowercase version
PHPBB3-16105
2022-11-21 17:24:11 +01:00
Marc Alexander
b828efa9e6 [ticket/16105] Use domain setting for recaptcha v2 as well
PHPBB3-16105
2022-11-21 17:24:11 +01:00
Marc Alexander
c66923bafc [ticket/16105] Add domain selection to recaptcha v2 & check against list
PHPBB3-16105
2022-11-21 17:24:10 +01:00
wordlesswind
ebc5e1ead0 [ticket/16105] Use Google reCAPTCHA globally
PHPBB3-16105
2022-11-21 17:23:39 +01:00
Marc Alexander
3db6cc98f5 [ticket/16913] Move progress bar HTML to acp_search.html
PHPBB3-16913
2022-11-17 02:20:48 +05:30
Dark❶
a45f8f0796 [ticket/16913] Add Search Index Progress Bar with Stats
- Update SQL for count of posts
- Update search index test
- Removed "Pop-up Progress Bar".
- For first run display the "Success Message".
- Display the Info from "Pop-up Progress Bar" to "Success Message".
- Only display "Redirect" & "Rate" of post refreshed "Success Message".
- Minor Language Fix.
- Use `ORDER BY post_id ASC` for progress stats.
- Removed HTML from Lang String.
- Moved HTML to PHP file.
- Increased the size of Progress-Bar by 2x.

PHPBB3-16913
2022-11-17 02:20:46 +05:30
Marc Alexander
c2968212d8 Merge branch 'prep-release-3.3.9' into 3.3.x 2022-11-14 20:07:55 +01:00
Marc Alexander
0793126dc4 Merge pull request #6426 from Crizz0/ticket/17058
[ticket/17058] Add if-sentence for $encode_eol for email headers
2022-11-14 20:07:27 +01:00
Christian Schnegelberger
9fb2dbb776 [ticket/17058] Add $encode_eol to process()
PHPBB3-17058
2022-11-11 23:15:09 +01:00
Christian Schnegelberger
6f034c5215 [ticket/17058] Replace hardcoded PHP_EOL in phpbb_mail() with var
PHPBB3-17058
2022-11-11 23:15:09 +01:00
Christian Schnegelberger
0802772f09 [ticket/17058] Add if-sentence for $encode_eol for email headers
PHPBB3-17058
2022-11-11 23:15:09 +01:00
Marc Alexander
696ff06263 Merge pull request #6425 from SagePtr/ticket/17056
[ticket/17056] Fix PHP 8.2 deprecation warning about ${var} syntax
2022-11-03 20:06:12 +01:00
SagePtr
b86d15a766 [ticket/17056] Fix PHP 8.2 deprecation warning about ${var} syntax
The "${var}" style of string interpolation is deprecated in PHP 8.2,
using "{$var}" syntax instead.

PHPBB3-17056
2022-11-02 00:30:46 +02:00
Marc Alexander
637844f264 [ticket/13291] Close notifications dropdown during mark all read
PHPBB3-13291
2022-10-27 00:01:36 +02:00
Marc Alexander
c410829a42 [3.3.x] Update versions to 3.3.10-dev 2022-10-26 22:44:56 +02:00
Marc Alexander
8ef6a5c1bc Merge branch 'prep-release-3.3.9' into 3.3.x 2022-10-26 22:43:17 +02:00
Marc Alexander
cd36a68645 [prep-release-3.3.9] Update changelog for 3.3.9-RC1 2022-10-22 20:56:04 +02:00
Marc Alexander
5225ac8a9a [prep-release-3.3.9] Add migration for 3.3.9-RC1 2022-10-22 20:55:14 +02:00
Marc Alexander
aaaef71b60 [prep-release-3.3.9] Update version numbers to 3.3.9 2022-10-22 20:55:12 +02:00
Marc Alexander
1fe8bbf47a [prep-release-3.3.9] Update version numbers to 3.3.9-RC1 2022-10-22 20:55:12 +02:00
Marc Alexander
827c135cc9 [ticket/security/274] Reset login keys/session when resetting password
SECURITY-274
2022-10-22 15:12:28 +02:00
Marc Alexander
67c41633a2 Merge pull request #6422 from marc1706/ticket/17050
[ticket/17050] Remove trailing slash from generated css includes
2022-10-22 11:34:54 +02:00
Marc Alexander
92cebdd624 Merge pull request #6421 from marc1706/ticket/17051
[ticket/17051] Fallback to default values for possible undefined user data
2022-10-22 11:21:46 +02:00
Marc Alexander
7017c73156 [ticket/17050] Remove trailing slash from generated css includes
PHPBB3-17050
2022-10-21 21:40:44 +02:00
Marc Alexander
2e025be53a [ticket/17051] Fallback to default values for possible undefined user data
PHPBB3-17051
2022-10-21 20:18:32 +02:00
Marc Alexander
2126738598 Merge pull request #6418 from marc1706/ticket/17048
[ticket/17048] Update composer dependencies for 3.3.9
2022-10-20 17:17:26 +02:00
Marc Alexander
99286b1fdd [ticket/17048] Update composer dependencies for 3.3.9
PHPBB3-17048
2022-10-15 23:29:12 +02:00
Marc Alexander
64717d0270 Merge pull request #6414 from imhunterand/patch-1
[ticket/17036] Fix failure to strip Authorization header on HTTP downgrade
2022-09-30 20:07:43 +02:00
ANDRI H.U
f197662653 [ticket/17036] Update guzzle and it's dependencies to latest version
PHPBB3-17036
2022-09-25 22:00:49 +02:00
Marc Alexander
e080a8533d Merge pull request #6415 from marc1706/ticket/17032
[ticket/17032] Prevent endlessly cycling to load user
2022-09-09 07:12:45 +02:00
Marc Alexander
f84e03f646 [ticket/17032] Prevent endlessly cycling to load user
PHPBB3-17032
2022-09-08 22:18:13 +02:00
Marc Alexander
7c02b58114 Merge pull request #6413 from rubencm/ticket/17030
[ticket/17030] Fix feed to return valid RFC-3339 dates
2022-08-26 21:46:53 +02:00
Marc Alexander
12256eabb6 Merge pull request #6412 from DaRk1V0iD/ticket/17026
[ticket/17026] Session viewonline not defined in Memberlist
2022-08-26 20:47:07 +02:00
Dark❶
9b1bae858f [ticket/17026] Session viewonline not defined in Memberlist
PHPBB3-17026
2022-08-26 10:55:20 +05:30
Ruben Calvo
db3c143b73 [ticket/17030] Fix feed to return valid RFC-3339 dates
PHPBB3-17030
2022-08-21 21:56:11 +02:00
Dark❶
ea19638f4e [ticket/17026] Session viewonline not defined in Memberlist
PHPBB3-17026
2022-08-12 20:40:52 +05:30
Marc Alexander
89b07af756 Merge pull request #6406 from Noxwizard/ticket/17003
[ticket/17003] Include topic icon on UCP front page
2022-07-28 20:11:19 +02:00
Marc Alexander
7275f9e7f1 [ticket/17003] Small code style adjustmens
PHPBB3-17003
2022-07-27 18:17:46 +02:00
Marc Alexander
8fbbaf97ab Merge pull request #6408 from Crizz0/ticket/17023
[ticket/17023] Adds PHP >=8.0  to composer require php version
2022-07-23 16:41:24 -04:00
Marc Alexander
b8a3d8f25d [ticket/17023] Update composer.lock as well
PHPBB3-17023
2022-07-22 20:16:11 -05:00
Christian Schnegelberger
495986ff5d [ticket/17023] Adds PHP >=8.0 to composer require php version
PHPBB3-17023
2022-07-19 17:47:53 +02:00
Marc Alexander
3ed3abb446 Merge pull request #6407 from Noxwizard/ticket/16917
[ticket/16917] Update phpbbcli.php's permissions in release archive
2022-07-16 19:02:52 -04:00
Marc Alexander
ca8c402796 Merge pull request #6405 from Noxwizard/ticket/16916
[ticket/16916] Include PHP version number in startup/install error
2022-07-16 18:47:56 -04:00
Marc Alexander
fafe250b0d Merge pull request #6404 from marc1706/ticket/17019
[ticket/17019] Treat removed youtube profile field as effectively installed
2022-07-16 18:44:56 -04:00
Marc Alexander
256ea96cd9 Merge pull request #6403 from marc1706/ticket/17006
[ticket/17006] Remove www. from server domain name example
2022-07-16 18:43:30 -04:00
Marc Alexander
5cdd22e058 Merge pull request #6402 from marc1706/ticket/16932
[ticket/16932] Ensure special characters are encoded for ASCII in emails
2022-07-16 18:39:02 -04:00
Patrick Webster
47e30a2e21 [ticket/16917] Update phpbbcli.php's permissions in release archive
For those employing cron on *nix, these will be the expected permissions.

PHPBB3-16917
2022-07-09 15:46:31 -05:00
Patrick Webster
040c2e9b78 [ticket/17003] Include topic icon on UCP front page
Prosilver already supports rendering topic icons on this view, but the backend
didn't populate the needed topicrow values.

PHPBB3-17003
2022-07-09 14:57:01 -05:00
Patrick Webster
2c661205e4 [ticket/16916] Include PHP version number in startup/install error
If the PHP version is too low, an error is displayed. This error does not
include the current PHP version number, which often becomes a debate with
users who believe they are running a supported version.

PHPBB3-16916
2022-07-04 21:12:43 -05:00
Marc Alexander
b5d2ff4074 [ticket/17019] Treat removed youtube profile field as effectively installed
PHPBB3-17019
2022-06-30 21:35:50 +02:00
Marc Alexander
b3d93a09f2 [ticket/17006] Remove www. from server domain name example
PHPBB3-17006
2022-06-28 21:49:01 +02:00
Marc Alexander
2f72950d2d Merge pull request #6401 from marc1706/ticket/17005
[ticket/17005] Add missing slash to li closing tag
2022-06-28 21:42:58 +02:00
Marc Alexander
064a96ec07 [ticket/16932] Ensure special characters are encoded for ASCII in emails
PHPBB3-16932
2022-06-27 22:36:25 +02:00
Marc Alexander
a8feaeafe8 [ticket/17005] Add missing slash to li closing tag
PHPBB3-17005
2022-06-27 21:00:58 +02:00
Marc Alexander
fc83f213d5 Merge branch 'prep-release-3.3.8' into 3.3.x 2022-06-26 20:28:13 +02:00
Marc Alexander
5e3dd4b55e [prep-release-3.3.8] Add migration for 3.3.8 2022-06-26 09:39:25 +02:00
Marc Alexander
53e5113893 [prep-release-3.3.8] Update version numbers to 3.3.8 2022-06-26 09:39:23 +02:00
Marc Alexander
f930f8821f [3.3.x] Update versions to 3.3.9-dev 2022-06-06 22:54:43 +02:00
Marc Alexander
b84b875cd2 Merge branch 'prep-release-3.3.8' into 3.3.x 2022-06-06 22:53:26 +02:00
Marc Alexander
bc4a787470 [prep-release-3.3.8] Update changelog for 3.3.8-RC1 2022-06-06 14:40:59 +02:00
Marc Alexander
c6ef628589 [prep-release-3.3.8] Add migration for 3.3.8-RC1 2022-06-06 14:40:31 +02:00
Marc Alexander
d4415d4ad8 [prep-release-3.3.8] Update version numbers to 3.3.8 2022-06-06 14:40:30 +02:00
Marc Alexander
2b92ff372b [prep-release-3.3.8] Update version numbers to 3.3.8-RC1 2022-06-06 14:40:29 +02:00
Marc Alexander
c410c9bc47 Merge pull request #6399 from marc1706/ticket/16987
[ticket/16987] Update composer dependencies to latest versions
2022-06-06 14:38:46 +02:00
Marc Alexander
52f625a88c [ticket/16987] Update composer dependencies to latest versions
PHPBB3-16987
2022-06-06 09:54:17 +02:00
Marc Alexander
feea7958f7 Merge pull request #6378 from hanakin/ticket/16978
[ticket/16978] add missing ul closeing tag
2022-06-06 09:45:44 +02:00
Marc Alexander
c61c130596 Merge pull request #6390 from marc1706/ticket/16988
[ticket/16988] Improve handling of appended branch info and security branches
2022-06-03 21:21:24 +02:00
Marc Alexander
59a95a3c35 Merge pull request #6396 from lionel-rowe/ticket/13859
[ticket/13859] Allow up-to-date format for Youtube profile field URLs
2022-05-02 20:49:59 +02:00
lionel-rowe
60af39b38c [ticket/13859] Reorder static & public in migration
PHPBB3-13859
2022-05-02 17:38:38 +02:00
Marc Alexander
8376012f9a Merge pull request #6393 from LukeWCS/3.3.x
[ticket/16990] Fix for the style template code in the post editor
2022-05-01 20:20:43 +02:00
lionel-rowe
dd6e110210 [ticket/13859] Allow up-to-date format for Youtube profile field URLs
Per the tracker issue:

> In 3.1 a youtube profilefield was added in which we can insert our youtube
> username to link to it.... There is just one major problem though...
>
> New youtube members no longer get an username. So I think we should decide on
> providing different ways to access their profile.

This PR will allow users to use any valid YouTube-domain URL, which allows for
all 3 formats (`/channel/...`, `/c/...`, and the now-legacy `/user/...`).

Per [YouTube's docs](https://support.google.com/youtube/answer/6180214?hl=en):

> ## Channel URL (ID-based)
> Example: youtube.com/channel/UCUZHFZ9jIKrLroW8LcyJEQQ
>
> This is the standard URL that YouTube channels use.
>
> ...
>
> ## Custom URL
> Example: youtube.com/c/YouTubeCreators
>
> A custom URL is a shorter, easy-to-remember URL that you can share with your
> audience.
>
> ...
>
> ## Legacy username URL
> Example: youtube.com/user/YouTube
>
> Depending on when your channel was created, it may have a username. Usernames
> are no longer required for channels today, but you can still use this URL to
> direct to your channel — even if your channel name has changed since you chose
> your username. Existing usernames can't be changed.

PHPBB3-13859
2022-05-01 14:54:39 +01:00
Marc Alexander
898075f0f8 Merge pull request #6391 from battye/ticket/16800
[ticket/16800] Fix 'No Posts' bug when no date format supplied
2022-04-30 23:02:10 +02:00
Marc Alexander
3308318524 Merge pull request #6377 from lionel-rowe/ticket/16981
[ticket/16981] Fix HTML-encoded emojis in email subject line
2022-04-30 22:27:37 +02:00
Marc Alexander
54c27e3e67 Merge pull request #6382 from marc1706/ticket/16967-3.3.x
[ticket/16967] Deprecate PHP in templates
2022-04-30 22:22:49 +02:00
Marc Alexander
54156dd9d8 Merge pull request #6358 from MichaIng/ticket/16959
[ticket/16959] Remove redundant URL parameters from notification mails
2022-04-30 22:21:51 +02:00
Marc Alexander
8084d977fb Merge pull request #6395 from kaileysnay/ticket/16991
[ticket/16991] Add events for bookmarks and subscribed topics in UCP
2022-04-30 21:56:06 +02:00
kaileysnay
997f1b92cf [ticket/16991] Add events for bookmarks and subscribed topics in UCP
PHPBB3-16991
2022-04-28 17:31:39 -04:00
kaileysnay
e1069bcbde [ticket/16991] Add events for bookmarks and subscribed topics in UCP
PHPBB3-16991
2022-04-28 17:31:39 -04:00
LukeWCS
9e22bc8691 [ticket/16990] Removed XHTML tag format
PHPBB3-16990
2022-04-27 23:18:52 +02:00
LukeWCS
751b0e2ede [ticket/16990] Fix for the style template code in the post editor
The code present in the prosilver style template causes the wrong
checkbox to be displayed in the post editor if the combination
`f_delete`:true and `f_softdelete`:false is active in the user
context. With this combination, this effectively prevents a forum
post from being deleted via the editor options.

Corrected the relevant section and switched to Twig syntax

PHPBB3-16990
2022-04-26 22:13:50 +02:00
lionel-rowe
9fb98201f2 [ticket/8071] Add sql_last_inserted_id alias for sql_nextid
Fixes [DBAL function sql_nextid - name is
misleading](https://tracker.phpbb.com/browse/PHPBB3-8071).

Per the tracker issue:
> This function gets the ID of the last inserted row, not the ID of the next row
to be inserted (which is difficult due to different autoincrement steps and also
lends itself nicely to race conditions).

@iwisdom replied that the naming is consistent with how PHP itself names this
functionality, but the link they posted doesn't support that (I guess this is
referring to a much older version of PHP? The comment is from 2009).

PHPBB3-8071
2022-04-26 15:03:42 +01:00
battye
b9f7c3ff6e [ticket/16800] Fix 'No Posts' bug when no date format supplied
PHPBB3-16800
2022-04-17 18:03:48 +08:00
Marc Alexander
0d84769d66 [ticket/16988] Apply fixes suggested by shellcheck
PHPBB3-16988
2022-04-17 09:40:56 +02:00
Marc Alexander
cd9aea32b9 [ticket/16988] Improve handling of appended branch info and security branches
PHPBB3-16988
2022-04-17 09:35:12 +02:00
Marc Alexander
a12a6f52ae Merge pull request #6387 from marc1706/ticket/16987
[ticket/16987] Update composer and dependencies to latest versions
2022-04-16 22:20:23 +02:00
Marc Alexander
9739fabd68 Merge pull request #6385 from battye/ticket/16871
[ticket/16871] Do not allow negative forum and topic IDs in page_header
2022-04-15 23:48:28 +02:00
Marc Alexander
32ce101541 Merge pull request #6386 from battye/ticket/15947
[ticket/15947] Fix X out of 0 messages stored bug
2022-04-15 23:19:25 +02:00
Marc Alexander
89d2fcf5ed [ticket/16987] Move back to composer 2.2 for PHP 7.1 compatibility
PHPBB3-16987
2022-04-15 22:35:23 +02:00
Marc Alexander
5e10b02103 [ticket/16987] Update composer dependencies to latest versions
PHPBB3-16987
2022-04-15 22:23:55 +02:00
Marc Alexander
1ce11e39e1 [ticket/16987] Update composer to latest version
PHPBB3-16987
2022-04-15 22:22:55 +02:00
battye
aed2d00373 [ticket/15947] Fix X out of 0 messages stored bug
PHPBB3-15947
2022-04-15 22:36:12 +08:00
battye
691a891634 [ticket/16871] Do not allow negative forum and topic IDs in page_header
PHPBB3-16871
2022-04-15 19:58:42 +08:00
Marc Alexander
33af6d0f0a [ticket/16967] Fix typo
PHPBB3-16967
2022-04-13 20:33:09 +02:00
Marc Alexander
7a034a8c1e Merge pull request #6371 from nomind60s/ticket/19969
[ticket/19969] Hide flash status when post settings disallow [FLASH] …
2022-04-11 21:19:17 +02:00
Marc Alexander
4d857c4be7 [ticket/16967] Deprecate PHP in templates
PHPBB3-16967
2022-04-11 21:09:01 +02:00
Marc Alexander
3ee1efe7e0 Merge pull request #6376 from lionel-rowe/ticket/16977
[ticket/16977] Fix cron-job img tag layout and accessibility
2022-04-10 22:34:03 +02:00
hanakin
6fa019e23a [ticket/16978] add missing ul closeing tag
PHPBB3-16978
2022-04-05 12:51:03 -04:00
lionel-rowe
9b2f42748c [ticket/16981] Fix HTML-encoded emojis in email subject line
PHPBB3-16981
2022-04-05 17:18:33 +01:00
lionel-rowe
e53102fead [ticket/16977] Fix broken tests
PHPBB3-16977
2022-04-03 21:31:42 +01:00
lionel-rowe
87c1e631ef [ticket/16977] Move HTML rendering logic to template
PHPBB3-16977
2022-04-03 17:11:09 +01:00
lionel-rowe
8c982c7aa0 [ticket/16977] Fix cron-job img tag layout and accessibility
PHPBB3-16977
2022-04-03 17:11:00 +01:00
Marc Alexander
8cfec5370a Merge pull request #6374 from rxu/ticket/16976
[ticket/16976] Fix search results count
2022-04-03 15:10:14 +02:00
rxu
6cc0fe5f95 [ticket/16976] Fix search results count for in-topic/in-forum search
PHPBB3-16976
2022-03-27 12:59:03 +07:00
rxu
16b27be2d0 [ticket/16976] Fix search results count for PostgreSQL
PHPBB3-16976
2022-03-25 20:58:36 +07:00
rxu
0dd053eeba [ticket/16976] Fix search results count
PHPBB3-16976
2022-03-25 00:01:23 +07:00
Marc Alexander
4ed0201ffe Merge branch 'prep-release-3.3.7' into 3.3.x 2022-03-17 21:46:31 +01:00
Marc Alexander
19aadeefda [prep-release-3.3.7] Update changelog for 3.3.7 2022-03-17 20:13:27 +01:00
Marc Alexander
8ca00c529e [prep-release-3.3.7] Add migration for 3.3.7 2022-03-17 20:13:00 +01:00
Marc Alexander
e138328be1 [prep-release-3.3.7] Update version numbers to 3.3.7 2022-03-17 20:12:58 +01:00
Marc Alexander
faec4417f4 [prep-release-3.3.7] Update version numbers to 3.3.7 2022-03-17 20:12:57 +01:00
Marc Alexander
34f27a1670 Merge pull request #6373 from marc1706/ticket/16973
[ticket/16973] Use actual role ids for comparison of orphaned roles
2022-03-17 20:05:48 +01:00
Marc Alexander
028340ee52 Merge pull request #6372 from marc1706/ticket/16972
[ticket/16972] Rename update packages to advanced update in package.json
2022-03-17 20:05:36 +01:00
Marc Alexander
e86daaede6 [ticket/16972] Rename update packages to advanced update in package.json
PHPBB3-16972
2022-03-17 20:04:23 +01:00
Marc Alexander
91f2f2c6f1 [ticket/16973] Use actual role ids for comparison of orphaned roles
PHPBB3-16973
2022-03-17 20:00:46 +01:00
Marc Alexander
5a3a91b464 Merge pull request #6367 from rxu/ticket/16966
[ticket/16966] Fix redirect link after permanently deleting posts
2022-03-16 16:23:21 +01:00
Marc Alexander
1f972f0ee7 Merge branch 'prep-release-3.3.6' into 3.3.x 2022-03-15 21:32:09 +01:00
Marc Alexander
2e37b2dc2d [prep-release-3.3.6] Update changelog for 3.3.6 2022-03-14 21:17:29 +01:00
Marc Alexander
8d6a9245c1 [prep-release-3.3.6] Add migration for 3.3.6 2022-03-14 21:17:13 +01:00
Marc Alexander
1a8950d01b [prep-release-3.3.6] Update version numbers to 3.3.6 2022-03-14 21:17:11 +01:00
Marc Alexander
b4fa01e943 [prep-release-3.3.6] Update stylesheet hashes 2022-03-14 21:15:42 +01:00
Marc Alexander
cd057c126a Merge pull request #66 from phpbb/ticket/security-273
[ticket/security-273] Reset reset token info when re-activating account
2022-03-14 17:58:58 +01:00
Marc Alexander
377ebacf0d Merge pull request #65 from phpbb/ticket/security-272
[ticket/security-272] Use longer random string for activation key
2022-03-14 17:51:07 +01:00
Marc Alexander
fb2d1c2a28 Merge pull request #6368 from marc1706/ticket/15028
[ticket/15028] Rename automatic to advanced update
2022-03-13 19:46:19 +01:00
Marc Alexander
da2364b2c1 [ticket/15028] Replace remaining mentions of automatic update with advanced
PHPBB3-15028
2022-03-12 22:53:18 +01:00
nomind60s
a5899494b9 [ticket/19969] Hide flash status when post settings disallow [FLASH] BBCode
Add check for S_BBCODE_FLASH around FLASH_STATUS

PHPBB3-16969
2022-03-06 17:08:31 -07:00
MichaIng
86e009ad15 [ticket/16959] Remove redundant URL parameters from notification mails
Some phpBB forum notification emails send URLs to the forum with redundant URL
parameters, notably a forum IDs with topic URLs.

To have shorter and cleaner URLs, those are hereby removed.

Signed-off-by: MichaIng <micha@dietpi.com>

PHPBB3-16959
2022-03-04 01:21:00 +01:00
Marc Alexander
cc60a63f22 Merge pull request #6370 from rxu/ticket/16962
[ticket/16962] Fix datetime format test
2022-02-22 22:38:04 +01:00
Marc Alexander
4044900c69 [ticket/15028] Rephrase "recommendation" of who should use advanced update
PHPBB3-15028
2022-02-22 21:15:58 +01:00
rxu
e84cf2e5ba [ticket/16962] Fix datetime format test
PHPBB3-16962
2022-02-22 14:55:38 +07:00
Marc Alexander
e78664d68b [ticket/15028] Rename automatic to advanced update
Also made it clear that it's only for expert users.

PHPBB3-15028
2022-02-20 11:18:30 +01:00
rxu
a466be10c2 [ticket/16966] Fix redirect link after permanently deleting posts
PHPBB3-16966
2022-02-11 20:18:56 +07:00
Marc Alexander
4e5b9b23de [ticket/security-273] Reset reset token info when re-activating account
SECURITY-273
2022-02-10 21:37:34 +01:00
Marc Alexander
9bc98278fe [ticket/security-272] Use strtolower for actkey
SECURITY-272
2022-02-10 21:23:34 +01:00
Marc Alexander
33a789e030 [ticket/security-272] Use longer random string for activation key
SECURITY-272
2022-02-10 21:23:33 +01:00
Marc Alexander
c9db94f91c Merge branch 'prep-release-3.3.6' into 3.3.x 2022-02-10 21:19:01 +01:00
Marc Alexander
3cf83f1a62 Merge pull request #6364 from marc1706/ticket/16964
[ticket/16964] Update composer and dependencies to latest versions
2022-02-10 21:18:48 +01:00
Marc Alexander
d0344b9318 [ticket/16964] Update composer dependencies to latest versions
PHPBB3-16964
2022-02-05 08:59:35 +01:00
Marc Alexander
4072dd0246 [ticket/16964] Update composer to 2.2.6
PHPBB3-16964
2022-02-05 08:58:34 +01:00
Marc Alexander
6a6d83c674 Merge branch 'prep-release-3.3.6' into 3.3.x 2022-02-05 08:55:58 +01:00
Marc Alexander
94fe538100 Merge pull request #6355 from marc1706/ticket/16872
[ticket/16872] Add event exporter for BBCode
2022-02-05 08:55:45 +01:00
Marc Alexander
4f9252568a Merge pull request #6359 from marc1706/ticket/16891
ticket/16891] Add new method for deferring cache purge to end of request
2022-02-01 20:20:10 +01:00
Marc Alexander
5017dbd58d [ticket/16891] Rename constant for event name of deferred purge
PHPBB3-16891
2022-01-31 20:34:24 +01:00
Marc Alexander
c4fcbc2cbd [ticket/16891] Add mock to purge extension manager cache in tests
PHPBB3-16891
2022-01-31 20:34:24 +01:00
Marc Alexander
3be1e3029e [ticket/16891] Remove unused use statements
PHPBB3-16891
2022-01-31 20:34:23 +01:00
Marc Alexander
7992b3f476 [ticket/16891] Update test files to work with changed cache service
PHPBB3-16891
2022-01-31 20:34:23 +01:00
Marc Alexander
9dc25510a1 [ticket/16891] Add new method for deferring cache purge to end of request
PHPBB3-16891
2022-01-31 20:34:23 +01:00
Marc Alexander
420f494628 Merge branch 'prep-release-3.3.6' into 3.3.x 2022-01-31 20:33:10 +01:00
Marc Alexander
8e4559f49f Merge pull request #6363 from marc1706/ticket/16956
[ticket/16956] Remove router cache flag
2022-01-31 20:32:56 +01:00
Marc Alexander
0fe95a032b [ticket/16956] Remove router cache flag
The deferred purge will be used in the future instead. The cache flag in the
router only causes additional issues by trying to rebuild the routing
mid-request

PHPBB3-16956
2022-01-31 16:52:19 +01:00
Marc Alexander
9446db9cde Merge pull request #6360 from marc1706/ticket/16960
[ticket/16960] Set config.php service even if container is not compiled
2022-01-30 21:45:07 +01:00
Marc Alexander
adea3e734a [ticket/16960] Set config.php service even if container is not compiled
PHPBB3-16960
2022-01-30 15:19:28 +01:00
Marc Alexander
919ff4575b Merge pull request #6356 from marc1706/ticket/13821
[ticket/13821] Support displaying ignored posts on post review page
2022-01-25 22:13:21 +01:00
Marc Alexander
ee56f0fe7d Merge branch 'prep-release-3.3.6' into 3.3.x 2022-01-25 22:10:59 +01:00
Marc Alexander
893dad0297 Merge pull request #6357 from marc1706/ticket/16956
[ticket/16956] Remove use of recently changed status for extensions
2022-01-25 22:10:37 +01:00
Marc Alexander
d08843853e [ticket/16956] Remove use of recently changed status for extensions
PHPBB3-16956
2022-01-23 20:51:50 +01:00
Marc Alexander
97356d9879 [ticket/13821] Remove HTML from PHP files and deduplicate lang variable
PHPBB3-13821
2022-01-22 23:50:33 +01:00
Marc Alexander
9f09dec049 [ticket/13821] Support displaying ignored posts on post review page
PHPBB3-13821
2022-01-22 22:28:04 +01:00
Marc Alexander
8a3164aaf7 [ticket/16872] Add event exporter for BBCode
PHPBB3-16872
2022-01-22 16:52:45 +01:00
Marc Alexander
6caf2f83ad [3.3.x] Update versions to 3.3.7-dev 2022-01-21 22:15:12 +01:00
Marc Alexander
4805e705ad Merge branch 'prep-release-3.3.6' into 3.3.x 2022-01-21 22:13:26 +01:00
Marc Alexander
9bf6e7f32e [prep-release-3.3.6] Update changelog for 3.3.6-RC1 2022-01-19 22:11:25 +01:00
Marc Alexander
c93381ff04 [prep-release-3.3.6] Add migration for 3.3.6-RC1 2022-01-19 22:09:33 +01:00
Marc Alexander
88b79aba00 [prep-release-3.3.6] Update version numbers to 3.3.6 2022-01-19 22:09:29 +01:00
Marc Alexander
9c6df33e3b Merge pull request #6257 from xchwarze/patch-1
[ticket/16828] Add hook event before find_users_for_notification() ex…
2022-01-19 21:37:20 +01:00
Marc Alexander
605726a4d7 Merge pull request #6321 from rxu/ticket/16902
[ticket/16902] Improve search results count - 3.3.x
2022-01-19 20:33:58 +01:00
Marc Alexander
3103e99dc7 [ticket/16828] Adjust event to allow modifying notified_users and early return
PHPBB3-16828
2022-01-19 20:32:10 +01:00
rxu
a8c93ff661 [ticket/16902] Fix docblock
PHPBB3-16902
2022-01-19 09:23:56 +07:00
Marc Alexander
1f4eac13b9 Merge pull request #6341 from MichaIng/ticket/16930
[ticket/16930] Remove redundant topic ID from last post URL
2022-01-17 17:15:46 +01:00
rxu
5e43f6195c [ticket/16902] Make flood interval control in tests consistent
Also remove crawler dumping tool

PHPBB3-16902
2022-01-15 10:37:45 +07:00
rxu
6846eeaa48 [ticket/16902] Add search index created assertion to test
PHPBB3-16902
2022-01-15 10:19:12 +07:00
rxu
b602b57b02 [ticket/16902] Add search index deleted assertion to test
PHPBB3-16902
2022-01-15 10:19:11 +07:00
rxu
ba487a24dc [ticket/16902] Fix PosgreSQL author topics search results count
PHPBB3-16902
2022-01-15 10:18:16 +07:00
rxu
015c9313a7 [ticket/16902] Extend test
PHPBB3-16902
2022-01-15 10:18:16 +07:00
rxu
e7c81cd1a6 [ticket/16902] Improve test, use DISTINCT for precise results count
PHPBB3-16902
2022-01-15 10:16:54 +07:00
rxu
bf7936380a [ticket/16902] Improve search results count for MySQL
PHPBB3-16902
2022-01-15 10:16:14 +07:00
MichaIng
3f56bbb9d1 [ticket/16930] Remove redundant topic ID from last post URL
Since U_LAST_POST contains the post ID, the topic ID is not required.
This shortens the URL and helps with SEO by reducing the amount of
redundant parameters in internal links.

PHPBB3-16930

Signed-off-by: MichaIng <micha@dietpi.com>
2022-01-15 02:27:13 +01:00
Marc Alexander
44d0a3a716 Merge pull request #6343 from rxu/ticket/16933
[ticket/16933] Consistent handling of hyphen by phpBB Native search backend
2022-01-12 21:26:10 +01:00
Marc Alexander
999122acdb Merge pull request #6342 from Mikir2021/ticket/16914
[ticket/16914] Added missing id to language select element
2022-01-12 21:24:02 +01:00
Marc Alexander
c785c4b716 Merge pull request #6332 from rxu/ticket/16912
[ticket/16912] Rewrite email headers encoding method
2022-01-12 21:18:26 +01:00
rxu
b305070e0a [ticket/16912] Adjust code
PHPBB3-16912
2021-12-24 20:44:15 +07:00
Marc Alexander
99634d4c05 Merge pull request #6347 from DaRk1V0iD/ticket/16940_3.3.x
[ticket/16940] Optimize phpBB Native Search [3.3.x]
2021-12-23 22:24:28 +01:00
Dark❶
fad1c652c0 [ticket/16940] Optimize phpBB Native Search
PHPBB3-16940
2021-12-14 16:26:39 +05:30
Marc Alexander
1df74005a8 Merge pull request #6318 from 3D-I/ticket/16899
[ticket/16899] Add SVG and WEBP to ranks, smilies and topic icons
2021-12-13 20:23:13 +01:00
Dark❶
c7856ce162 [ticket/16940] Optimize phpBB Native Search
- Use `ORDER BY post_id ASC` for batch posts.

PHPBB3-16940
2021-12-13 19:36:36 +05:30
Dark❶
cccf01447f [ticket/16940] Optimize phpBB Native Search
- Fixed infinite loop

PHPBB3-16940
2021-12-13 00:37:04 +05:30
Dark❶
ddc3eaa5bf [ticket/16940] Optimize phpBB Native Search
- Removed `end()` replaced with `$ids[count($ids) - 1]`

PHPBB3-16940
2021-12-12 20:44:37 +05:30
Dark❶
65fa73855c [ticket/16940] Optimize phpBB Native Search
- Use `sql_query_limit` instead of `sql_query`
- Update SQL query to reflect the above change
- Assign proper last `post_id` to `$post_counter`

PHPBB3-16940
2021-12-12 19:51:50 +05:30
Marc Alexander
391e4943d9 Merge pull request #6346 from marc1706/ticket/16939
[ticket/16939] Wait for postgresql service to start on windows CI runners
2021-12-12 11:00:22 +01:00
Marc Alexander
6801f7949f [ticket/16939] Use ALTER SYSTEM queries to modify psql config variables
PHPBB3-16939
2021-12-12 09:39:14 +01:00
Marc Alexander
710aa10905 [ticket/16939] Wait for postgresql service to start on windows CI runners
PHPBB3-16939
2021-12-12 09:16:51 +01:00
rxu
4a78202f96 [ticket/16933] Fix test
PHPBB3-16933
2021-12-11 19:46:47 +07:00
rxu
d6a591cde3 [ticket/16933] Consistent handling of hyphen by phpBB Native search backend
PHPBB3-16933
2021-12-11 19:03:29 +07:00
Mikir
4e447cc91a [ticket/16914] Added missing id to language select element
The id of the language select element referenced by it's label was missing.

PHPBB3-16914
2021-12-08 19:54:02 +01:00
Marc Alexander
ec75f1741b Merge pull request #6337 from marc1706/ticket/16924
[ticket/16924] Do not double escape values inserted into config table
2021-12-07 21:57:47 +01:00
Marc Alexander
af38f9d6c8 Merge pull request #6339 from marc1706/ticket/16928
[ticket/16928] Update composer and dependencies to latest versions
2021-12-05 12:01:48 +01:00
Marc Alexander
4614d3d92b [ticket/16928] Update composer dependencies to latest versions
PHPBB3-16928
2021-12-05 09:51:15 +01:00
Marc Alexander
866a4dc6d4 [ticket/16928] Update composer to 2.1.14
PHPBB3-16928
2021-12-05 09:51:02 +01:00
Marc Alexander
492352f652 Merge pull request #6338 from marc1706/ticket/16927
[ticket/16927] Update plupload to latest version
2021-12-05 09:45:14 +01:00
Marc Alexander
1d05f722cb [ticket/16927] Update plupload to latest version
PHPBB3-16927
2021-12-04 22:21:35 +01:00
Marc Alexander
c1b88de806 Merge pull request #6312 from rxu/ticket/16895
[ticket/16895] Fix role removal for migrator permission tool
2021-12-03 21:06:14 +01:00
Marc Alexander
89168c507b [ticket/16895] Add missing return and remove not needed declarations
PHPBB3-16895
2021-12-03 20:14:26 +01:00
Marc Alexander
7a69c0f98c Merge pull request #6336 from 3D-I/ticket/16921
[ticket/16921] Increase PHP requirements in the DOCS
2021-12-03 19:51:24 +01:00
Marc Alexander
8cc6075d92 [ticket/16924] Do not double escape values inserted into config table
PHPBB3-16924
2021-12-02 21:01:45 +01:00
Marc Alexander
03b36d46c3 [ticket/16924] Add test to cover potential escaping of json values
PHPBB3-16924
2021-12-02 20:59:06 +01:00
3D-I
8104a446d4 [ticket/16921] Increase PHP requirements in the DOCS
Attempt to fix postgres test for 3.3.x. branch

PHPBB3-16921
2021-12-02 05:51:09 +01:00
3D-I
aff3852568 [ticket/16921] Increase PHP requirements in the DOCS
PHPBB3-16921
2021-12-02 02:02:31 +01:00
Marc Alexander
39905eaf4b Merge pull request #6324 from rxu/ticket/16908
[ticket/16908] Fix PHP warning on non-existent post id requests
2021-11-30 21:54:09 +01:00
Marc Alexander
534cef94c9 Merge pull request #6323 from rxu/ticket/16904
[ticket/16904] Fix regression in MCP for topics selection
2021-11-30 21:11:39 +01:00
rxu
a0ced790e2 [ticket/16912] Add test
PHPBB3-16912
2021-11-23 22:29:49 +07:00
rxu
0537365cac [ticket/16912] Rewrite email headers encoding method
Based on symfony/polyfill-iconv implementations.

PHPBB3-16912
2021-11-23 15:17:11 +07:00
Máté Bartus
6e34e3c24e Merge pull request #6326 from rxu/ticket/16910
[ticket/16910] Fix PHP warnings on uploading orphaned files to posts
2021-11-21 21:45:33 +01:00
rxu
fecf3306f3 [ticket/16910] Add test
PHPBB3-16910
2021-11-14 21:02:40 +07:00
rxu
39db7005cd [ticket/16910] Fix PHP warnings on uploading orphaned files to posts
PHPBB3-16910
2021-11-14 16:31:52 +07:00
Marc Alexander
e956629735 Merge pull request #6325 from rxu/ticket/16909
[ticket/16909] Add PHP 8.2 builds to test matrix
2021-11-14 10:11:22 +01:00
rxu
89ca3f087e [ticket/16909] Fix Postgres configuration on Windows, fix auth tests
PHPBB3-16909
2021-11-14 10:02:53 +07:00
rxu
29d137cc5e [ticket/16909] Add PHP 8.2 builds to test matrix
PHPBB3-16909
2021-11-13 20:58:47 +07:00
rxu
88a11c1377 [ticket/16908] Fix PHP warning on non-existent post id requests
PHPBB3-16908
2021-11-13 18:16:39 +07:00
rxu
69b895caae [ticket/16895] Rename custom method
PHPBB3-16895
2021-11-10 14:13:02 +07:00
rxu
d7f433fbf7 [ticket/16895] Rename migration file
PHPBB3-16895
2021-11-10 13:30:14 +07:00
rxu
4d00c4c8af [ticket/16904] Adjust tests
PHPBB3-16904
2021-11-07 19:38:49 +07:00
rxu
1e6c5cd381 [ticket/16904] Refactor MCP tests
PHPBB3-16904
2021-11-05 22:32:14 +07:00
rxu
0fbc5a3d83 [ticket/16904] Refactor MCP tests
PHPBB3-16904
2021-11-05 01:03:59 +07:00
Marc Alexander
3bfb2b3f69 Merge pull request #6322 from rxu/ticket/16900
[ticket/16900] Fix quoted_printable_encode() behavior
2021-11-03 20:07:10 +01:00
rxu
337d876df7 [ticket/16904] Fix regression in MCP for topics selection
Regression introduced in #5760

PHPBB3-16904
2021-11-02 13:55:39 +07:00
Marc Alexander
8246023e0f Merge pull request #6313 from Nicofuma/ticket/16891
[ticket/16891] Do not change an extension status in the midle of a request
2021-10-30 21:57:15 +02:00
Tristan Darricau
b28b94b1f1 [ticket/16891] Do not change an extension status in the middle of a request
When enabling an extension, it should be considered as not being enabled for
the entire request as if the "enabled" flag is switch during the request, the
extension will stay not loaded (same when disabling an extension).

Example when it can be an issue today : if the router is called for the first
time after enabling the extension and if the extension uses a custom route
loader (like phpbb/pages) then the router will fail because the custom route
will be found but the custom loader will not be loaded and available.

PHPBB3-16891
2021-10-30 04:25:31 +02:00
Marc Alexander
baf4bd7b5c Merge pull request #6317 from Nicofuma/ticket/16896
[ticket/16896] Adds comments in .gitignore and excludes custom envs
2021-10-29 21:29:00 +02:00
Marc Alexander
81126dc97e Merge pull request #6314 from Nicofuma/ticket/16897
[ticket/16897] Ignores sqlite3 warnings when an explain query plan query fails
2021-10-29 21:26:22 +02:00
rxu
391f80d480 [ticket/16900] Fix quoted_printable_encode() behavior
PHPBB3-16900
2021-10-30 00:33:10 +07:00
Tristan Darricau
febe44ed79 [ticket/16896] Adds comments in .gitignore and excludes custom envs
PHPBB3-16896
2021-10-28 22:15:25 +02:00
Tristan Darricau
ede9a6815a [ticket/16897] Ignores sqlite3 warnings when an explain query plan query fails
PHPBB3-16897
2021-10-28 21:52:03 +02:00
rxu
2801415c1c [ticket/16895] Rename language entry
PHPBB3-16895
2021-10-28 21:13:52 +07:00
Marc Alexander
dd029ed592 Merge pull request #6315 from Nicofuma/ticket/16898
[ticket/16898] Do not restrict the debug error handler to the dev env
2021-10-26 21:52:50 +02:00
Tristan Darricau
1d4fbd240e [ticket/16898] Do not restrict the debug error handler to the dev env
PHPBB3-16898
2021-10-26 20:23:28 +02:00
rxu
7275cdd152 [ticket/16895] Adjust test
PHPBB3-16895
2021-10-27 00:15:46 +07:00
rxu
b1e6fad38a [ticket/16895] Add test
PHPBB3-16895
2021-10-26 20:14:45 +07:00
3D-I
9671a00214 [ticket/16899] Add SVG and WEBP to ranks, smilies and topic icons
Prevent breaking layout

PHPBB3-16899
2021-10-24 19:52:37 +02:00
3D-I
d17b15a545 [ticket/16899] Add SVG and WEBP to ranks, smilies and topic icons
PHPBB3-16899
2021-10-22 16:14:28 +02:00
3D-I
f841a0a1b8 [ticket/16899] Add SVG and WEBP to ranks, smilies and topic icons
Attempt to read the SVG dimensions

PHPBB3-16899
2021-10-22 02:34:39 +02:00
3D-I
7472d300b6 [ticket/16899] Add SVG and WEBP to ranks, smilies and topic icons
Attempt to read the SVG dimensions

PHPBB3-16899
2021-10-22 02:30:13 +02:00
3D-I
06ef03f8d6 [ticket/16899] Add SVG and WEBP to ranks, smilies and topic icons
Take care of the old crappy IE

PHPBB3-16899
2021-10-21 23:54:58 +02:00
3D-I
40322bb1b6 [ticket/16899] Add SVG and WEBP to ranks, smilies and topic icons
PHPBB3-16899
2021-10-21 23:44:15 +02:00
3D-I
6218c2e120 [ticket/16899] Add SVG and WEBP to ranks, smilies and topic icons
PHPBB3-16899
2021-10-21 22:05:38 +02:00
3D-I
afbf7aadd2 [ticket/16899] Add SVG and WEBP image type to ranks, smilies and topic icons
PHPBB3-16899
2021-10-21 21:48:14 +02:00
rxu
a860a3310a [ticket/16895] Add migration
PHPBB3-16895
2021-10-20 21:58:24 +07:00
rxu
ca24013470 [ticket/16895] Fix role removal for migrator permission tool
PHPBB3-16895
2021-10-19 23:26:32 +07:00
Marc Alexander
99734fc648 Merge pull request #6278 from rxu/ticket/16859
[ticket/16859] Exclude language selection option on register if only 1 language is installed
2021-10-19 17:24:33 +02:00
Marc Alexander
3547f0bf0e Merge pull request #6310 from marc1706/ticket/16892
[ticket/16892] Remove duplicate entry for jav files in extension_guesser
2021-10-17 21:57:35 +02:00
Marc Alexander
01a22e7223 Merge pull request #6302 from 3D-I/ticket/16885
[ticket/16885] Add type casting filters to Twig
2021-10-17 20:32:49 +02:00
Arshid
2145938d74 [ticket/16892] Remove duplicate entry for jav files in extension_guesser
Remove duplicated key

PHPBB3-16892
2021-10-17 20:25:20 +02:00
Marc Alexander
62a8741494 Merge pull request #6303 from marc1706/ticket/13508
[ticket/13508] Add tests for INCLUDEJS & INCLUDECSS with twig syntax
2021-10-17 19:51:31 +02:00
3D-I
13155bf846 [ticket/16885] Add type casting filters to Twig
PHPBB3-16885
2021-10-17 16:18:47 +02:00
Marc Alexander
4d966d1762 [ticket/13508] Rename test files to fit in with current naming
PHPBB3-13508
2021-10-17 13:21:35 +02:00
Marc Alexander
056fb494b1 [ticket/13508] Switch back to current include format
PHPBB3-13508
2021-10-17 13:20:22 +02:00
Marc Alexander
da7c9f6a7c Merge pull request #6306 from 3D-I/ticket/16888
[ticket/16888] List allowed attachment types using accept attribute
2021-10-17 11:58:58 +02:00
Marc Alexander
73eb54bf54 Merge pull request #6309 from marc1706/ticket/16889
[ticket/16889] Move windows CI runner to server 2019
2021-10-17 11:57:03 +02:00
Marc Alexander
6af8872ef3 [ticket/16889] Create separate runs for unit and functional tests
PHPBB3-16889
2021-10-17 11:22:39 +02:00
Marc Alexander
a3070bedeb [ticket/16889] Remove invalid command for adding registry entry
PHPBB3-16889
2021-10-17 11:22:39 +02:00
Marc Alexander
a12f903e93 [ticket/16889] Remove build on push for ticket branch again
PHPBB3-16889
2021-10-17 11:22:39 +02:00
rxu
d4cb357b26 [ticket/16889] Run functional tests separately
PHPBB3-16889
2021-10-17 11:22:38 +02:00
Marc Alexander
b6e31e3664 [ticket/16889] Disable anti spyware in windows CI builds
PHPBB3-16889
2021-10-17 11:22:38 +02:00
3D-I
7355ee623a [ticket/16888] Add the list of allowed files in the attachment tab
Add core.modify_default_attachments_template_vars

PHPBB3-16888
2021-10-11 08:23:52 +02:00
3D-I
a7385f0fbe [ticket/16888] Add the list of allowed files in the attachment tab
PHPBB3-16888
2021-10-11 04:54:52 +02:00
3D-I
c5814ddfaa [ticket/16888] Add the list of allowed files in the attachment tab
PHPBB3-16888
2021-10-11 04:24:15 +02:00
3D-I
96c439bf10 [ticket/16888] Add the list of allowed files in the attachment tab
PHPBB3-16888
2021-10-11 04:15:29 +02:00
3D-I
7a21a9032e [ticket/16888] Add the list of allowed files in the attachment tab
PHPBB3-16888
2021-10-11 04:04:13 +02:00
3D-I
1619014120 [ticket/16888] Add the list of allowed files in the attachment tab
PHPBB3-16888
2021-10-11 02:48:39 +02:00
Marc Alexander
0a4d062e16 Merge pull request #6308 from marc1706/ticket/16889
[ticket/16889] Improve antivirus behavior in windows CI builds
2021-10-10 21:17:49 +02:00
Marc Alexander
dda2dfecb3 [ticket/16889] Improve antivirus behavior in windows CI builds
PHPBB3-16889
2021-10-10 20:45:50 +02:00
3D-I
b29c0ca153 [ticket/16888] Add the list of allowed files in the attachment tab
PHPBB3-16888
2021-10-10 16:26:28 +02:00
3D-I
c0296d10db [ticket/16888] Add the list of allowed files in the attachment tab
Using the accept attribute

PHPBB3-16888
2021-10-10 16:17:40 +02:00
3D-I
4f3f91dfc3 [ticket/16888] Add the list of allowed files in the attachment tab
PHPBB3-16888
2021-10-10 14:00:42 +02:00
3D-I
52c931a8b6 [ticket/16888] Add the list of allowed files in the attachment tab
Request mixed content using shorthand Ternary

PHPBB3-16888
2021-10-10 13:34:31 +02:00
3D-I
9ca70432d9 [ticket/16888] Add the list of allowed files in the attachment tab
Make sure we are checking both PMs and topics

PHPBB3-16888
2021-10-10 13:27:08 +02:00
Marc Alexander
1fbb807cc7 Merge pull request #6305 from Crizz0/ticket/16887
[ticket/16887] Update PHP requirements to include PHP 8.0
2021-10-10 12:56:29 +02:00
3D-I
98f446df67 [ticket/16888] Add the list of allowed files in the attachment tab
PHPBB3-16888
2021-10-10 07:06:24 +02:00
Christian Schnegelberger
43b9254d1d [ticket/16887] Update PHP requirements to include PHP 8.0
PHPBB3-16887
2021-10-09 21:12:18 +02:00
Marc Alexander
97034e0776 [ticket/13508] Add tests for include_js() and include_css() twig tokens
PHPBB3-13508
2021-10-07 21:20:09 +02:00
Marc Alexander
02e5a7afc4 [ticket/13508] Add include_css() and fix include_js() code linting issues
PHPBB3-13508
2021-10-07 21:19:35 +02:00
Marc Alexander
7efddcef54 [ticket/13508] Add include_js twig tag as replacement for INCLUDEJS
PHPBB3-13508
2021-10-07 20:08:31 +02:00
3D-I
ea36b83ee9 [ticket/16885] Add type casting filters to Twig
PHPBB3-16885
2021-10-06 19:57:13 +02:00
Máté Bartus
59cece1a0a Merge pull request #6301 from marc1706/ticket/16883
[ticket/16883] Check if var is array before using count()
2021-10-06 08:39:40 +02:00
Marc Alexander
e5fa23c3c0 [ticket/16883] Check if var is array before using count()
PHPBB3-16883
2021-10-05 21:07:50 +02:00
Marc Alexander
9a7d88362f Merge pull request #6299 from 3D-I/ticket/16881
[ticket/16881] Fix ACP statistics
2021-10-03 17:34:28 +02:00
Marc Alexander
7f6c859b0d [3.3.x] Fix invalid build.xml syntax after merge 2021-10-03 17:31:42 +02:00
Marc Alexander
441a5a2175 Merge branch 'prep-release-3.3.5' into 3.3.x 2021-10-03 15:25:12 +02:00
Máté Bartus
1860a06eab Merge pull request #6296 from 3D-I/ticket/16879
[ticket/16879] Add events to phpbb_mail()
2021-09-29 09:36:03 +02:00
3D-I
1862992ca7 [ticket/16881] Fix ACP statistics
PHPBB3-16881
2021-09-24 00:39:44 +02:00
3D-I
95fa6cceee [ticket/16881] Fix ACP statistics
PHPBB3-16881
2021-09-23 21:51:11 +02:00
3D-I
19076de94c [ticket/16879] Add events to phpbb_mail()
PHPBB3-16879
2021-09-22 22:39:19 +02:00
3D-I
27289cbfad [ticket/16879] Add events to phpbb_mail()
PHPBB3-16879
2021-09-20 22:02:25 +02:00
Marc Alexander
3d76942cdf Merge branch 'prep-release-3.3.5' into 3.3.x 2021-09-20 11:27:10 +02:00
3D-I
303a933403 [ticket/16879] Add events to phpbb_mail()
PHPBB3-16879
2021-09-19 03:59:46 +02:00
3D-I
54b54c41c6 [ticket/16879] Add event core.phpbb_mail_after
PHPBB3-16879
2021-09-19 03:00:59 +02:00
Marc Alexander
2a1656e7b3 Merge pull request #6293 from 3D-I/ticket/16868-33
[ticket/16868] Fix links to coding guidelines
2021-09-16 11:02:33 +02:00
3D-I
12ce75b5f5 [ticket/16868] Fix links to coding guidelines
PHPBB3-16868
2021-09-16 10:27:08 +02:00
Marc Alexander
848021c743 Merge pull request #6291 from 3D-I/ticket/16850-33
[ticket/16850][3.3] Update webfont loader
2021-09-13 10:32:48 +02:00
Marc Alexander
c4b4e1d7a9 Merge branch 'prep-release-3.3.5' into 3.3.x 2021-09-13 10:32:30 +02:00
3D-I
b3b5fcc874 [ticket/16850] Update webfont loader
PHPBB3-16850
2021-09-12 21:48:29 +02:00
3D-I
1b4ba00a73 [ticket/16850] Update webfont loader
PHPBB3-16850
2021-09-11 17:02:12 +02:00
Marc Alexander
8caf2e7c59 [3.3.x] Update versions to 3.3.6-dev 2021-09-11 13:38:10 +02:00
Marc Alexander
a87a60c108 Merge branch 'prep-release-3.3.5' into 3.3.x 2021-09-11 13:36:37 +02:00
rxu
8cc0e5438a [ticket/16859] Twigify the rest of respective template block
PHPBB3-16859
2021-08-29 11:10:00 +07:00
rxu
2c8be65dcf [ticket/16859] Apply similar logic to UCP board preferences
PHPBB3-16859
2021-08-29 01:48:55 +07:00
rxu
c3598d0d58 [ticket/16859] Optimize code to save SQL queries and use Twig for template
PHPBB3-16859
2021-08-29 00:15:06 +07:00
rxu
92a2c08616 [ticket/16859] Exclude language option on register if only 1 language installed
PHPBB3-16859
2021-08-28 22:51:51 +07:00
DSR!
e5b43eabe1 [ticket/16828] Add hook event before find_users_for_notification() execute
PHPBB3-16828
2021-08-27 11:58:55 -03:00
420 changed files with 10920 additions and 2362 deletions

20
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,20 @@
# Debian version
ARG VARIANT="buster"
FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT}
# Install PHP
RUN apt-get -y update
RUN apt-get -y install php php-xml php-mbstring php-curl php-zip php-xdebug
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Install MySQL
RUN apt-get -y install mysql-server php-mysql
# Xdebug
ADD resources/xdebug.ini /etc/php/8.1/apache2/conf.d/xdebug.ini
# Configure Apache
RUN echo "Listen 8080" >> /etc/apache2/ports.conf && \
a2enmod rewrite

View File

@@ -0,0 +1,37 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.238.1/containers/ubuntu
{
"name": "Ubuntu",
"build": {
"dockerfile": "Dockerfile",
// Update 'VARIANT' to pick an Ubuntu version: jammy / ubuntu-22.04, focal / ubuntu-20.04, bionic /ubuntu-18.04
// Use ubuntu-22.04 or ubuntu-18.04 on local arm64/Apple Silicon.
"args": { "VARIANT": "ubuntu-22.04" }
},
// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
"settings": {
// Allow Xdebug to listen to requests from remote (or container)
"remote.localPortHost": "allInterfaces"
},
//"devPort": {},
// Specify which VS Code extensions to install (List of IDs)
"extensions": ["xdebug.php-debug"]
}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [80, 9003],
// Use 'postCreateCommand' to run commands after the container is created.
"postStartCommand": "bash .devcontainer/resources/setup.sh",
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode",
"features": {
"github-cli": "latest"
}
}

View File

@@ -0,0 +1,38 @@
installer:
admin:
name: admin
password: adminadmin
email: admin@example.org
board:
lang: en
name: My Board
description: My amazing new phpBB board
database:
dbms: mysqli
dbhost: 127.0.0.1
dbport: 3306
dbuser: phpbb
dbpasswd: phpbb
dbname: phpbb
table_prefix: phpbb_
email:
enabled: false
smtp_delivery : ~
smtp_host: ~
smtp_port: ~
smtp_auth: ~
smtp_user: ~
smtp_pass: ~
server:
cookie_secure: false
server_protocol: http://
force_server_vars: true
server_name: localhost
server_port: 80
script_path: /
extensions: []

View File

@@ -0,0 +1,52 @@
# setup.sh
# Commands to install and configure phpBB
# Start MySQL
echo "[Codespaces] Start MySQL"
sudo service mysql start
# Start Apache
echo "[Codespaces] Start Apache"
sudo service apache2 start
# Add SSH key
echo "[Codespaces] Add SSH key"
echo "$SSH_KEY" > /home/vscode/.ssh/id_rsa && chmod 600 /home/vscode/.ssh/id_rsa
# Create a MySQL user to use
echo "[Codespaces] Create MySQL user"
sudo mysql -u root<<EOFMYSQL
CREATE USER 'phpbb'@'localhost' IDENTIFIED BY 'phpbb';
GRANT ALL PRIVILEGES ON *.* TO 'phpbb'@'localhost' WITH GRANT OPTION;
CREATE DATABASE IF NOT EXISTS phpbb;
EOFMYSQL
# Download dependencies
echo "[Codespaces] Install Composer dependencies"
composer install --no-interaction
# Symlink the webroot so it can be viewed
echo "[Codespaces] Create Symlink of webroot"
sudo rm -rf /var/www/html
sudo ln -s /workspaces/phpbb/phpBB /var/www/html
# Copy phpBB config
echo "[Codespaces] Copy phpBB configuration"
cp /workspaces/phpbb/.devcontainer/resources/phpbb-config.yml /workspaces/phpbb/phpBB/install/install-config.yml
# Force the server URL to reflect the Codespace
# https://docs.github.com/en/codespaces/developing-in-a-codespace/default-environment-variables-for-your-codespace
if [ "$CODESPACES" = true ] ; then
echo "[Codespaces] Set the phpBB server name using default environment variables"
codespaces_url="${CODESPACE_NAME}-80.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}"
sed -i "s/localhost/$codespaces_url/g" /workspaces/phpbb/phpBB/install/install-config.yml
fi
# Install phpBB
echo "[Codespaces] Run phpBB CLI installation"
cd /workspaces/phpbb/phpBB && composer install --no-interaction
sudo php /workspaces/phpbb/phpBB/install/phpbbcli.php install /workspaces/phpbb/phpBB/install/install-config.yml
rm -rf /workspaces/phpbb/phpBB/install
# Finished
echo "[Codespaces] phpBB installation completed"

View File

@@ -0,0 +1,10 @@
zend_extension=xdebug.so
[xdebug]
xdebug.mode=develop,debug
xdebug.discover_client_host=1
xdebug.client_port=9003
xdebug.start_with_request=yes
xdebug.log='/var/log/xdebug/xdebug.log'
xdebug.connect_timeout_ms=2000
xdebug.idekey=VSCODE

View File

@@ -2,9 +2,9 @@ Checklist:
- [ ] Correct branch: master for new features; 3.3.x for fixes
- [ ] Tests pass
- [ ] Code follows coding guidelines: [master](https://area51.phpbb.com/docs/dev/master/development/coding_guidelines.html) and [3.3.x](https://area51.phpbb.com/docs/dev/3.3.x/development/coding_guidelines.html)
- [ ] Code follows coding guidelines: [master](https://area51.phpbb.com/docs/master/coding-guidelines.html) and [3.3.x](https://area51.phpbb.com/docs/dev/3.3.x/development/coding_guidelines.html)
- [ ] Commit follows commit message [format](https://area51.phpbb.com/docs/dev/3.3.x/development/git.html)
Tracker ticket (set the ticket ID to **your ticket ID**):
Tracker ticket:
https://tracker.phpbb.com/browse/PHPBB3-12345
https://tracker.phpbb.com/browse/PHPBB-12345

View File

@@ -16,4 +16,4 @@ mkdir /var/tmp/slapd
cp .github/ldap/slapd.conf /var/tmp/slapd/slapd.conf
slapd -d 256 -d 128 -f /var/tmp/slapd/slapd.conf -h ldap://localhost:3389 &
sleep 3
ldapadd -h localhost:3389 -D "cn=admin,dc=example,dc=com" -w adminadmin -f .github/ldap/base.ldif
ldapadd -H ldap://localhost:3389 -D "cn=admin,dc=example,dc=com" -w adminadmin -f .github/ldap/base.ldif

View File

@@ -31,6 +31,6 @@ php ../composer.phar install --dev --no-interaction
if [[ "$PHP_VERSION" =~ ^nightly$ || "$PHP_VERSION" =~ ^8 ]]
then
php ../composer.phar remove phpunit/dbunit --dev --update-with-dependencies \
&& php ../composer.phar require symfony/yaml:~4.4 misantron/dbunit:~5.0 phpunit/phpunit:^9.3 --dev --update-with-all-dependencies --ignore-platform-reqs
&& php ../composer.phar require symfony/yaml:~4.4 misantron/dbunit:~5.0 phpunit/phpunit:^9.3 doctrine/instantiator:^1.4 --dev --update-with-all-dependencies --ignore-platform-reqs
fi
cd ..

View File

@@ -0,0 +1,70 @@
name: Check merge to master
on:
pull_request_target:
types: [ opened, synchronize, reopened ]
branches:
- 3.3.x
jobs:
merge-check:
if: github.event_name == 'pull_request_target' && github.event.pull_request.base.ref == '3.3.x'
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3
with:
fetch-depth: 0 # Ensure full history is fetched
- name: Set up Git user
run: |
git config --global user.name "github-actions"
git config --global user.email "github-actions@github.com"
- name: Fetch all branches
run: git fetch origin
- name: Simulate merging PR into 3.3.x
id: simulate_merge
run: |
git checkout 3.3.x
git fetch origin pull/${{ github.event.pull_request.number }}/head
git merge --no-ff FETCH_HEAD || exit 1
- name: Attempt to merge updated 3.3.x into master
id: merge_master
run: |
git checkout master
if git merge --no-ff 3.3.x --no-commit; then
echo "mergeable=true" >> $GITHUB_OUTPUT
else
echo "mergeable=false" >> $GITHUB_OUTPUT
git merge --abort
fi
- name: Find Comment
uses: peter-evans/find-comment@v3
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: The attempt to merge branch `3.3.x` into `master` has completed
- name: Post comment on PR
if: always() # Ensure this step always runs, regardless of merge result
uses: peter-evans/create-or-update-comment@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.pull_request.number }}
comment-id: ${{ steps.fc.outputs.comment-id }}
edit-mode: replace
body: |
The attempt to merge branch `3.3.x` into `master` has completed after considering the changes in this PR.
- Merge result: ${{ steps.merge_master.outputs.mergeable == 'true' && 'Success ✅' || 'Conflict ❌' }}
${{ steps.merge_master.outputs.mergeable == 'true' && 'This PR is ready to be merged.' || 'A separate PR will be needed to merge `3.3.x` into `master`.' }}
- name: Mark job as succeeded
if: always()
run: echo "Merge check completed. Ignoring the result to avoid failed status."

View File

@@ -0,0 +1,60 @@
name: Merge 3.3.x into master
on:
push:
branches:
- 3.3.x
jobs:
merge-branch:
runs-on: ubuntu-latest
steps:
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.MERGE_MASTER_APP_ID }}
private-key: ${{ secrets.MERGE_MASTER_SECRET }}
- name: Checkout the repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch full history for proper merging
ref: 3.3.x # Checkout the 3.3.x branch
token: ${{ steps.app-token.outputs.token }}
- name: Fetch the latest commit information
id: get-commit-info
run: |
# Get the latest commit SHA and its author details
COMMIT_SHA=$(git rev-parse HEAD)
COMMIT_AUTHOR_NAME=$(git log -1 --pretty=format:'%an' $COMMIT_SHA)
COMMIT_AUTHOR_EMAIL=$(git log -1 --pretty=format:'%ae' $COMMIT_SHA)
# Save them as output for later steps
echo "commit_sha=$COMMIT_SHA" >> $GITHUB_ENV
echo "commit_author_name=$COMMIT_AUTHOR_NAME" >> $GITHUB_ENV
echo "commit_author_email=$COMMIT_AUTHOR_EMAIL" >> $GITHUB_ENV
- name: Set up Git with the pull request author's info
run: |
git config --global user.name "${{ env.commit_author_name }}"
git config --global user.email "${{ env.commit_author_email }}"
- name: Fetch all branches
run: git fetch --all
- name: Merge 3.3.x into master
run: |
git checkout master
if git merge --no-ff 3.3.x; then
echo "merge_failed=false" >> $GITHUB_ENV
else
echo "merge_failed=true" >> $GITHUB_ENV
fi
- name: Push changes to master if merge was successful
if: env.merge_failed == 'false'
run: git push origin master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -17,7 +17,7 @@ on:
jobs:
# Basic checks, e.g. parse errors, commit messages, etc.
basic-checks:
runs-on: ubuntu-18.04
runs-on: ubuntu-22.04
strategy:
matrix:
include:
@@ -29,7 +29,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 100
@@ -46,12 +46,12 @@ jobs:
PHP_VERSION: ${{ matrix.php }}
run: |
cd phpBB
echo "::set-output name=dir::$(composer config cache-files-dir)"
echo "::set-output name=version::${PHP_VERSION%.*}"
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
cd ..
- name: Cache Composer dependencies
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
@@ -88,32 +88,30 @@ jobs:
# Tests for MySQL and MariaDB
mysql-tests:
runs-on: ubuntu-18.04
runs-on: ubuntu-22.04
strategy:
matrix:
include:
- php: '7.1'
- php: '7.2'
db: "mariadb:10.1"
- php: '7.1'
- php: '7.2'
db: "mariadb:10.2"
- php: '7.1'
- php: '7.2'
db: "mariadb:10.3"
- php: '7.1'
- php: '7.2'
db: "mariadb:10.4"
- php: '7.1'
- php: '7.2'
db: "mariadb:10.5"
- php: '7.1'
- php: '7.2'
db: "mysql:5.6"
db_alias: "MySQL Slow Tests"
SLOWTESTS: 1
- php: '7.1'
- php: '7.2'
db: "mysql:5.6"
db_alias: "MyISAM Tests"
MYISAM: 1
- php: '7.1'
- php: '7.2'
db: "mysql:5.6"
- php: '7.1'
db: "mysql:5.7"
- php: '7.2'
db: "mysql:5.7"
- php: '7.3'
@@ -126,6 +124,12 @@ jobs:
db: "mysql:5.7"
- php: '8.1'
db: "mysql:5.7"
- php: '8.2'
db: "mysql:5.7"
- php: '8.3'
db: "mysql:5.7"
- php: '8.4'
db: "mysql:5.7"
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
@@ -155,14 +159,14 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
- id: database-type
env:
MATRIX_DB: ${{ matrix.db }}
run: |
db=$(echo "${MATRIX_DB%%:*}")
echo "::set-output name=db::$db"
echo "db=$db" >> $GITHUB_OUTPUT
- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -177,12 +181,12 @@ jobs:
PHP_VERSION: ${{ matrix.php }}
run: |
cd phpBB
echo "::set-output name=dir::$(composer config cache-files-dir)"
echo "::set-output name=version::${PHP_VERSION%.*}"
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
cd ..
- name: Cache Composer dependencies
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
@@ -227,22 +231,22 @@ jobs:
# Tests for PostgreSQL
postgres-tests:
runs-on: ubuntu-18.04
runs-on: ubuntu-22.04
strategy:
matrix:
include:
- php: '7.1'
- php: '7.2'
db: "postgres:9.3"
- php: '7.2'
db: "postgres:9.5"
- php: '7.1'
- php: '7.2'
db: "postgres:9.6"
- php: '7.1'
- php: '7.2'
db: "postgres:10"
- php: '7.1'
- php: '7.2'
db: "postgres:11"
- php: '7.1'
- php: '7.2'
db: "postgres:12"
- php: '7.1'
db: "postgres:13"
- php: '7.2'
db: "postgres:13"
- php: '7.3'
@@ -253,12 +257,20 @@ jobs:
db: "postgres:12"
- php: '8.0'
db: "postgres:13"
- php: '8.1'
db: "postgres:14"
- php: '8.2'
db: "postgres:14"
- php: '8.3'
db: "postgres:14"
- php: '8.4'
db: "postgres:14"
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
services:
postgres:
image: ${{ matrix.db != 'postgres:9.5' && matrix.db != 'postgres:9.6' && matrix.db != 'postgres:10' && matrix.db != 'postgres:11' && matrix.db != 'postgres:12' && matrix.db != 'postgres:13' && 'postgres:10' || matrix.db }}
image: ${{ matrix.db != 'postgres:9.3' && matrix.db != 'postgres:9.5' && matrix.db != 'postgres:9.6' && matrix.db != 'postgres:10' && matrix.db != 'postgres:11' && matrix.db != 'postgres:12' && matrix.db != 'postgres:13' && 'postgres:10' || matrix.db }}
env:
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
@@ -284,14 +296,14 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
- id: database-type
env:
MATRIX_DB: ${{ matrix.db }}
run: |
db=$(echo "${MATRIX_DB%%:*}")
echo "::set-output name=db::$db"
echo "db=$db" >> $GITHUB_OUTPUT
- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -306,12 +318,12 @@ jobs:
PHP_VERSION: ${{ matrix.php }}
run: |
cd phpBB
echo "::set-output name=dir::$(composer config cache-files-dir)"
echo "::set-output name=version::${PHP_VERSION%.*}"
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
cd ..
- name: Cache Composer dependencies
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
@@ -339,24 +351,24 @@ jobs:
# Other database types, namely sqlite3 and mssql
other-tests:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
strategy:
matrix:
include:
- php: '7.1'
- php: '7.2'
db: "sqlite3"
- php: '7.2'
db: "mcr.microsoft.com/mssql/server:2017-latest"
db_alias: 'MSSQL 2017'
- php: '7.2'
db: "mcr.microsoft.com/mssql/server:2019-latest"
db: "mcr.microsoft.com/mssql/server:2019-CU27-ubuntu-20.04"
db_alias: 'MSSQL 2019'
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
services:
mssql:
image: ${{ matrix.db != 'mcr.microsoft.com/mssql/server:2017-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2019-latest' && 'mcr.microsoft.com/mssql/server:2017-latest' || matrix.db }}
image: ${{ matrix.db != 'mcr.microsoft.com/mssql/server:2017-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2019-CU27-ubuntu-20.04' && 'mcr.microsoft.com/mssql/server:2017-latest' || matrix.db }}
env:
SA_PASSWORD: "Pssw0rd_12"
ACCEPT_EULA: "y"
@@ -382,19 +394,19 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
- id: database-type
env:
MATRIX_DB: ${{ matrix.db }}
run: |
if [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2017-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2019-latest' ]
if [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2017-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2019-CU27-ubuntu-20.04' ]
then
db='mssql'
else
db=$(echo "${MATRIX_DB%%:*}")
fi
echo "::set-output name=db::$db"
echo "db=$db" >> $GITHUB_OUTPUT
- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -409,12 +421,12 @@ jobs:
PHP_VERSION: ${{ matrix.php }}
run: |
cd phpBB
echo "::set-output name=dir::$(composer config cache-files-dir)"
echo "::set-output name=version::${PHP_VERSION%.*}"
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
cd ..
- name: Cache Composer dependencies
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
@@ -442,18 +454,48 @@ jobs:
# Test with IIS & PostgreSQL on Windows
windows-tests:
runs-on: windows-2016
runs-on: windows-latest
strategy:
matrix:
include:
- php: '7.4'
db: "postgres"
type: 'unit'
- php: '8.0'
db: "postgres"
type: 'unit'
- php: '8.1'
db: "postgres"
type: 'unit'
- php: '8.2'
db: "postgres"
type: 'unit'
- php: '8.3'
db: "postgres"
type: 'unit'
- php: '8.4'
db: "postgres"
type: 'unit'
- php: '7.4'
db: "postgres"
type: 'functional'
- php: '8.0'
db: "postgres"
type: 'functional'
- php: '8.1'
db: "postgres"
type: 'functional'
- php: '8.2'
db: "postgres"
type: 'functional'
- php: '8.3'
db: "postgres"
type: 'functional'
- php: '8.4'
db: "postgres"
type: 'functional'
name: Windows - PHP ${{ matrix.php }} - ${{ matrix.db }}
name: Windows - PHP ${{ matrix.php }} - ${{ matrix.db }} - ${{ matrix.type }}
steps:
- name: Prepare git for Windows
@@ -461,7 +503,7 @@ jobs:
git config --system core.autocrlf false
git config --system core.eol lf
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -475,13 +517,13 @@ jobs:
id: composer-cache
run: |
cd phpBB
echo "::set-output name=dir::$(composer config cache-files-dir)"
echo "dir=$(composer config cache-files-dir)" >> $env:GITHUB_OUTPUT
$major_version="${{ matrix.php }}".substring(0,1)
echo "::set-output name=version::$major_version"
echo "version=$major_version" >> $env:GITHUB_OUTPUT
cd ..
- name: Cache Composer dependencies
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
@@ -524,23 +566,33 @@ jobs:
cd ${env:GITHUB_WORKSPACE}\phpBB
php ..\composer.phar install
php ..\composer.phar remove phpunit/dbunit --dev --update-with-dependencies
php ..\composer.phar require symfony/yaml:~4.4 misantron/dbunit:~5.0 phpunit/phpunit:^9.3 --dev --update-with-all-dependencies --ignore-platform-reqs
php ..\composer.phar require symfony/yaml:~4.4 misantron/dbunit:~5.0 phpunit/phpunit:^9.3 doctrine/instantiator:^1.4 --dev --update-with-all-dependencies --ignore-platform-reqs
cd ..
- name: Setup database
run: |
$postgreSqlSvc = Get-Service "postgresql*"
Set-Service $postgreSqlSvc.Name -StartupType manual
$postgreSqlSvc.Start()
$runningStatus = [System.ServiceProcess.ServiceControllerStatus]::Running
$maxStartTimeout = New-TimeSpan -Seconds 30
try {
(Get-Service "postgresql*").Start()
$postgreSqlSvc.Start()
$postgreSqlSvc.WaitForStatus($runningStatus, $maxStartTimeout)
} catch {
$_ | select *
}
[System.Environment]::SetEnvironmentVariable('PATH',$Env:PATH+";${env:PGBIN}")
$env:PGPASSWORD = 'root'
psql -c 'ALTER SYSTEM SET hot_standby = on;' -U postgres
psql -c 'ALTER SYSTEM SET wal_level = minimal;' -U postgres
psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres
psql -c 'create database phpbb_tests;' -U postgres
Add-MpPreference -ExclusionPath "${env:PGDATA}" # Exclude PGDATA directory from Windows Defender
Set-MpPreference -ExclusionPath "${env:PGDATA}" # Exclude PGDATA directory from Windows Defender
Set-MpPreference -DisableRealtimeMonitoring $true
- name: Run unit tests
if: ${{ matrix.type == 'unit' }}
run: |
phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error
phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error --exclude-group functional
- name: Run unit tests
if: ${{ matrix.type == 'functional' }}
run: |
phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error --group functional

33
.gitignore vendored
View File

@@ -1,33 +1,54 @@
*~
/phpunit.xml
# Excludes cache
/phpBB/cache/*
!/phpBB/cache/.htaccess
!/phpBB/cache/index.html
/phpBB/composer.phar
# Excludes user data
/phpBB/config*.php*
/phpBB/ext/*
/phpBB/files/*
/phpBB/images/avatars/gallery/*
/phpBB/images/avatars/upload/*
/phpBB/images/ranks/*
/phpBB/install/schemas/schema.json
/phpBB/store/*
# Excludes all custom langages
/phpBB/language/*
!/phpBB/language/en
/phpBB/store/*
# Excludes all custom styles
/phpBB/styles/*
!/phpBB/styles/prosilver
/phpBB/styles/prosilver/theme/*/
!/phpBB/styles/prosilver/theme/en
!/phpBB/styles/prosilver/theme/images
!/phpBB/styles/all
node_modules
# Excludes all custom env
/phpBB/config/*
!/phpBB/config/default
!/phpBB/config/development
!/phpBB/config/installer
!/phpBB/config/production
!/phpBB/config/test
!/phpBB/config/.htaccess
# Excludes vendors
/phpBB/vendor
# Excludes test / dev files
/phpunit.xml
/phpBB/composer.phar
/tests/phpbb_unit_tests.sqlite*
/tests/test_config*.php
/tests/tmp/*
/tests/vendor
/vagrant/phpbb-install-config.yml
.vagrant
node_modules
# Excludes IDE / editors files
*~
.idea
*.DS_Store*
/.vscode

18
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,18 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Debug phpBB",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/html": "${workspaceRoot}/phpBB/"
},
"log": true
}
]
}

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"php.debug.ideKey": "VSCODE"
}

View File

@@ -27,7 +27,10 @@ To run an installation from the repo (and not from a pre-built package) on a loc
php ../composer.phar install
```
Alternatively, you can read our [Vagrant documentation](phpBB/docs/vagrant.md) to find out how to use Vagrant to develop and contribute to phpBB.
Alternatively, you can read:
* Our [Vagrant documentation](phpBB/docs/vagrant.md) to find out how to use Vagrant to develop and contribute to phpBB.
* Our [GitHub Codespaces documentation](phpBB/docs/codespaces.md) to learn about phpBB's cloud-based development environment.
## 📓 Documentation
@@ -35,12 +38,12 @@ phpBB's [Development Documentation](https://area51.phpbb.com/docs/dev/index.html
## 🔬 Automated Testing
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](https://bamboo.phpbb.com) or check our travis builds below:
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](https://bamboo.phpbb.com) or check our GitHub Actions below:
Branch | Description | Github Actions |
Branch | Description | GitHub Actions |
------- | ----------- | -------------- |
**master** | Latest development version | ![Tests](https://github.com/phpbb/phpbb/workflows/Tests/badge.svg?branch=master) |
**3.3.x** | Development of version 3.3.x | ![Tests](https://github.com/phpbb/phpbb/workflows/Tests/badge.svg?branch=3.3.x) |
**master** | Latest development version | ![Tests](https://github.com/phpbb/phpbb/actions/workflows/tests.yml/badge.svg?branch=master) |
**3.3.x** | Development of version 3.3.x | ![Tests](https://github.com/phpbb/phpbb/actions/workflows/tests.yml/badge.svg?branch=3.3.x) |
## 📜 License

13
SECURITY.md Normal file
View File

@@ -0,0 +1,13 @@
# Security Policy
## Reporting a Vulnerability
Please do not post potential security vulnerabilities publicly. Instead, report them to the phpBB team.
We take security very seriously and will respond to reports about potential security vulnerabilities as quickly as possible.
There are multiple ways a potential security vulnerability can be reported:
- HackerOne: [phpBB | Vulnerability Disclosure Program | HackerOne](https://hackerone.com/phpbb)
- Create a report in the security tracker: [Security Tracker](https://www.phpbb.com/security/)
- Send an email: [security@phpbb.com](mailto:security@phpbb.com)
Please provide as much detail as possible when reporting a vulnerability. You can expect to receive an update on your report within a few days. If the vulnerability is accepted, we will work on a fix and keep you informed of the progress. If the vulnerability is declined, we will provide an explanation.

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.3.5" />
<property name="prevversion" value="3.3.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, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.5-RC1" />
<property name="newversion" value="3.3.15-RC1" />
<property name="prevversion" value="3.3.14" />
<property name="olderversions" value="3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.3.8, 3.3.9, 3.3.10, 3.3.11, 3.3.12, 3.3.13" />
<!-- no configuration should be needed beyond this point -->
<property name="oldversions" value="${olderversions}, ${prevversion}" />
@@ -181,6 +181,7 @@
<!-- create an empty config.php file (not for diffs) -->
<touch file="build/new_version/phpBB3/config.php" />
<copy file="build/new_version/phpBB3/phpbb/.htaccess" tofile="build/new_version/phpBB3/vendor/.htaccess" />
</target>
@@ -362,6 +363,8 @@
<chmod mode="0777" file="${dir}/store" />
<chmod mode="0777" file="${dir}/files" />
<chmod mode="0777" file="${dir}/images/avatars/upload" />
<!-- set permissions of executable scripts to 755 -->
<chmod mode="0755" file="${dir}/bin/phpbbcli.php" />
</target>
<target name="clean-vendor-dir">

View File

@@ -84,7 +84,7 @@ foreach ($older_verions as $version)
'phpBB ' . $version . ' to ' . $current_version . ' Update Package',
'phpBB-' . $version . '_to_' . $current_version,
'update',
'update',
'advanced_update',
$version
);
}

Binary file not shown.

Binary file not shown.

View File

@@ -224,7 +224,7 @@ do
"footer")
err=$ERR_FOOTER;
# Each ticket is on its own line
echo "$line" | grep -Eq "^PHPBB3-[0-9]+$";
echo "$line" | grep -Eq "^PHPBB3?-[0-9]+$";
;;
"eof")
err=$ERR_EOF;
@@ -356,7 +356,7 @@ echo "$expecting" | grep -q "eof" || (
# Check the branch ticket is mentioned, doesn't make sense otherwise
if [ $ticket -gt 0 ]
then
echo "$tickets" | grep -Eq "\bPHPBB3-$ticket\b" || (
echo "$tickets" | grep -Eq "\bPHPBB3?-$ticket\b" || (
complain "Ticket ID [$ticket] of branch missing from list of tickets:" >&2;
complain "$tickets" | sed 's/ /\n/g;s/^/* /g' >&2;
quit $ERR_FOOTER;

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
#
# A hook to add [$branch] to the beginning of a commit message
# if certain conditions are met.
@@ -31,12 +31,25 @@ branch="$(echo "$branch" | sed "s/refs\/heads\///g")"
if [ "$2" = "" ]
then
tail="";
ticket_id=$(sed -E 's/(ticket\/)(security\/)?([0-9]+)(.+$)?/\3/gm;t;d' <<< "$branch");
branch_title=$(sed -E 's/(ticket\/)(security\/)?([0-9]+)(.+$)?/\1\2\3/gm;t;d' <<< "$branch");
# Branch is prefixed with 'ticket/', append ticket ID to message
if [ "$branch" != "${branch##ticket/}" ];
# Fall back to branch name if no ticket ID
if [ -z "$branch_title" ];
then
tail="$(printf "\n\nPHPBB3-${branch##ticket/}")";
branch_title="$branch";
fi
echo "[$branch] $tail$(cat "$1")" > "$1"
if [ "security/" = "$(sed -E 's/(ticket\/)(security\/)?([0-9]+)(.+$)?/\2/gm;t;d' <<< "$branch")" ];
then
tail="$(printf '\n\nSECURITY-%s' "$ticket_id")";
else
# Branch is prefixed with 'ticket/', append ticket ID to message
if [ "$branch" != "${branch##ticket/}" ];
then
tail="$(printf '\n\nPHPBB-%s' "$ticket_id")";
fi
fi
echo "[$branch_title] $tail$(cat "$1")" > "$1"
fi

View File

@@ -61,8 +61,8 @@ $template->set_custom_style(array(
),
), $phpbb_admin_path . 'style');
$template->assign_var('T_ASSETS_PATH', $phpbb_root_path . 'assets');
$template->assign_var('T_TEMPLATE_PATH', $phpbb_admin_path . 'style');
$template->assign_var('T_ASSETS_PATH', $phpbb_path_helper->update_web_root_path($phpbb_root_path . 'assets'));
$template->assign_var('T_TEMPLATE_PATH', $phpbb_path_helper->update_web_root_path($phpbb_root_path . 'style'));
// Instantiate new module
$module = new p_master();

View File

@@ -29,7 +29,7 @@
<!-- BEGIN upload -->
:: {upload.FILE_INFO}<br />
<!-- IF upload.S_DENIED --><span class="error">{upload.DENIED}</span><!-- ELSEIF upload.ERROR_MSG --><span class="error">{upload.ERROR_MSG}</span><!-- ELSE --><span class="success">{L_SUCCESSFULLY_UPLOADED}</span><!-- ENDIF -->
<!-- IF upload.S_DENIED --><span class="error">{upload.L_DENIED}</span><!-- ELSEIF upload.ERROR_MSG --><span class="error">{upload.ERROR_MSG}</span><!-- ELSE --><span class="success">{L_SUCCESSFULLY_UPLOADED}</span><!-- ENDIF -->
<br /><br />
<!-- END upload -->

View File

@@ -42,59 +42,52 @@
</tr>
</thead>
<tbody>
<!-- IF .enabled -->
<tr>
<td class="row3" colspan="4"><strong>{L_EXTENSIONS_ENABLED}</strong><!-- EVENT acp_ext_list_enabled_title_after --></td>
</tr>
<!-- BEGIN enabled -->
<tr class="ext_enabled row-highlight">
<td><strong title="{enabled.NAME}">{enabled.META_DISPLAY_NAME}</strong><!-- EVENT acp_ext_list_enabled_name_after --></td>
<td style="text-align: center;">
<!-- IF enabled.S_VERSIONCHECK -->
<strong class="<!-- IF enabled.S_UP_TO_DATE -->current-ext<!-- ELSE -->outdated-ext<!-- ENDIF -->">{enabled.META_VERSION}</strong>
<!-- IF not enabled.S_UP_TO_DATE --><i class="fa fa-exclamation-circle outdated-ext" aria-hidden="true"></i><!-- ENDIF -->
<!-- ELSE -->
{enabled.META_VERSION}
<!-- ENDIF -->
</td>
<td style="text-align: center;"><a href="{enabled.U_DETAILS}">{L_DETAILS}</a></td>
<td style="text-align: center;">
<!-- BEGIN actions -->
<a href="{enabled.actions.U_ACTION}"<!-- IF enabled.actions.L_ACTION_EXPLAIN --> title="{enabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{enabled.actions.L_ACTION}</a>
<!-- IF not enabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF -->
<!-- END actions -->
</td>
</tr>
<!-- END enabled -->
<!-- ENDIF -->
<!-- IF .disabled -->
<tr>
<td class="row3" colspan="4"><strong>{L_EXTENSIONS_DISABLED}</strong><!-- EVENT acp_ext_list_disabled_title_after --></td>
</tr>
<!-- BEGIN disabled -->
<tr class="ext_disabled row-highlight">
<td><strong title="{disabled.NAME}">{disabled.META_DISPLAY_NAME}</strong><!-- EVENT acp_ext_list_disabled_name_after --></td>
<td style="text-align: center;">
<!-- IF disabled.S_VERSIONCHECK -->
<strong class="<!-- IF disabled.S_UP_TO_DATE -->current-ext<!-- ELSE -->outdated-ext<!-- ENDIF -->">{disabled.META_VERSION}</strong>
<!-- IF not disabled.S_UP_TO_DATE --><i class="fa fa-exclamation-circle outdated-ext" aria-hidden="true"></i><!-- ENDIF -->
<!-- ELSE -->
{disabled.META_VERSION}
<!-- ENDIF -->
</td>
<td style="text-align: center;">
<!-- IF disabled.U_DETAILS --><a href="{disabled.U_DETAILS}">{L_DETAILS}</a><!-- ENDIF -->
</td>
<td style="text-align: center;">
<!-- BEGIN actions -->
<a href="{disabled.actions.U_ACTION}"<!-- IF disabled.actions.L_ACTION_EXPLAIN --> title="{disabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{disabled.actions.L_ACTION}</a>
<!-- IF not disabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF -->
<!-- END actions -->
</td>
</tr>
<!-- END disabled -->
<!-- ENDIF -->
{% for list in ['enabled', 'disabled', 'not_installed'] %}
{% set blockname = attribute(loops, list) %}
{% if blockname|length %}
<tr>
<td class="row3" colspan="4"><strong>{{ lang('EXTENSIONS_' ~ list|upper) }}</strong>
{% if list == 'enabled' %}
{% EVENT acp_ext_list_enabled_title_after %}
{% elseif list == 'disabled' %}
{% EVENT acp_ext_list_disabled_title_after %}
{% elseif list == 'not_installed' %}
{% EVENT acp_ext_list_not_installed_title_after %}
{% endif %}
</td>
</tr>
{% for data in blockname %}
<tr class="ext_{{ list }} row-highlight">
<td><strong title="{{ data.NAME }}">{{ data.META_DISPLAY_NAME }}</strong>
{% if list == 'enabled' %}
{% EVENT acp_ext_list_enabled_name_after %}
{% elseif list == 'disabled' %}
{% EVENT acp_ext_list_disabled_name_after %}
{% elseif list == 'not_installed' %}
{% EVENT acp_ext_list_not_installed_name_after %}
{% endif %}
</td>
<td style="text-align: center;">
{% if data.S_VERSIONCHECK %}
<strong class="{% if data.S_UP_TO_DATE %}current-ext{% else %}outdated-ext{% endif %}">{{ data.META_VERSION }}</strong>
{% if not data.S_UP_TO_DATE %}<i class="fa fa-exclamation-circle outdated-ext" aria-hidden="true"></i>{% endif %}
{% else %}
{{ data.META_VERSION }}
{% endif %}
</td>
<td style="text-align: center;">
{% if data.U_DETAILS %}<a href="{{ data.U_DETAILS }}">{{ lang ('DETAILS') }}</a>{% endif %}
</td>
<td style="text-align: center;">
{% for actions in data.actions %}
<a href="{{ actions.U_ACTION }}"{% if actions.L_ACTION_EXPLAIN %} title="{{ actions.L_ACTION_EXPLAIN }}"{% endif %}>{{ actions.L_ACTION }}</a>
{% if not actions.S_LAST_ROW %}&nbsp;|&nbsp;{% endif %}
{% endfor %}
</td>
</tr>
{% endfor %}
{% endif %}
{% endfor %}
</tbody>
</table>

View File

@@ -225,6 +225,7 @@
<fieldset>
<legend>{L_ADD_USERS}</legend>
{% EVENT acp_groups_add_user_options_before %}
<dl>
<dt><label for="leader">{L_USER_GROUP_LEADER}{L_COLON}</label></dt>
<dd><label><input name="leader" type="radio" class="radio" value="1" /> {L_YES}</label>
@@ -235,11 +236,13 @@
<dd><label><input name="default" type="radio" class="radio" value="1" /> {L_YES}</label>
<label><input name="default" type="radio" class="radio" id="default" value="0" checked="checked" /> {L_NO}</label></dd>
</dl>
{% EVENT acp_groups_add_user_usernames_before %}
<dl>
<dt><label for="usernames">{L_USERNAME}{L_COLON}</label><br /><span>{L_USERNAMES_EXPLAIN}</span></dt>
<dd><textarea id="usernames" name="usernames" cols="40" rows="5"></textarea></dd>
<dd><!-- EVENT acp_groups_find_username_prepend -->[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]<!-- EVENT acp_groups_find_username_append --></dd>
</dl>
{% EVENT acp_groups_add_user_options_after %}
<p class="quick">
<input class="button2" type="submit" name="addusers" value="{L_SUBMIT}" />

View File

@@ -105,7 +105,7 @@
<!-- BEGIN items -->
<tr>
<td style="text-align: center;"><img src="{items.IMG_SRC}" alt="{items.TEXT_ALT}" title="{items.TEXT_ALT}" /><input type="hidden" name="image[{items.IMG}]" value="1" /></td>
<td style="text-align: center;"><img src="{items.IMG_SRC}" alt="{items.TEXT_ALT}" title="{items.TEXT_ALT}" style="max-width: 160px;"><input type="hidden" name="image[{items.IMG}]" value="1" /></td>
<td style="vertical-align: top;">[{items.IMG}]</td>
<!-- IF S_SMILIES -->
<td><input class="text post" type="text" name="code[{items.IMG}]" value="{items.CODE}" size="10" maxlength="50" /></td>

View File

@@ -14,27 +14,31 @@
<p>{L_ADMIN_INTRO}</p>
<!-- IF S_UPDATE_INCOMPLETE -->
{% if S_UPDATE_INCOMPLETE %}
<div class="errorbox">
<p>{L_UPDATE_INCOMPLETE} <a href="{U_VERSIONCHECK}">{L_MORE_INFORMATION}</a></p>
<p>{{ lang('UPDATE_INCOMPLETE') }} <a href="{{ U_VERSIONCHECK }}">{{ lang('MORE_INFORMATION') }}</a></p>
</div>
<!-- ELSEIF S_VERSIONCHECK_FAIL -->
{% elseif S_VERSIONCHECK_FAIL %}
<div class="errorbox notice">
<p>{L_VERSIONCHECK_FAIL}</p>
<p>{VERSIONCHECK_FAIL_REASON}</p>
<p><a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> &middot; <a href="{U_VERSIONCHECK}">{L_MORE_INFORMATION}</a></p>
<p>{{ lang('VERSIONCHECK_FAIL') }}</p>
<p>{{ VERSIONCHECK_FAIL_REASON }}</p>
<p><a href="{{ U_VERSIONCHECK_FORCE }}">{{ lang('VERSIONCHECK_FORCE_UPDATE') }}</a> &middot; <a href="{{ U_VERSIONCHECK }}">{{ lang('MORE_INFORMATION') }}</a></p>
</div>
<!-- ELSEIF not S_VERSION_UP_TO_DATE -->
{% elseif not S_VERSION_UP_TO_DATE %}
<div class="errorbox">
<p>{L_VERSION_NOT_UP_TO_DATE_TITLE}</p>
<p><a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> &middot; <a href="{U_VERSIONCHECK}">{L_MORE_INFORMATION}</a></p>
<p>{{ lang('VERSION_NOT_UP_TO_DATE_TITLE') }}</p>
<p><a href="{{ U_VERSIONCHECK_FORCE }}">{{ lang('VERSIONCHECK_FORCE_UPDATE') }}</a> &middot; <a href="{{ U_VERSIONCHECK }}">{{ lang('MORE_INFORMATION') }}</a></p>
</div>
<!-- ENDIF -->
<!-- IF S_VERSION_UPGRADEABLE -->
{% elseif S_VERSION_UP_TO_DATE && S_VERSIONCHECK_FORCE %}
<div class="successbox">
<p>{{ lang('VERSION_UP_TO_DATE_ACP') }}</p>
</div>
{% endif %}
{% if S_VERSION_UPGRADEABLE %}
<div class="errorbox notice">
<p>{UPGRADE_INSTRUCTIONS}</p>
<p>{{ UPGRADE_INSTRUCTIONS }}</p>
</div>
<!-- ENDIF -->
{% endif %}
<!-- IF S_SEARCH_INDEX_MISSING -->
<div class="errorbox">
@@ -140,7 +144,6 @@
<td class="tabled"><strong>{{ PHP_VERSION_INFO }}</strong></td>
</tr>
<tr>
{% if S_TOTAL_ORPHAN %}
<td class="tabled">{{ lang('NUMBER_ORPHAN') ~ lang('COLON') }}</td>
<td class="tabled">
{% if TOTAL_ORPHAN > 0 %}
@@ -149,8 +152,6 @@
<strong>{{ TOTAL_ORPHAN }}</strong>
{% endif %}
</td>
{% else %}
{% endif %}
</tr>
{% if S_VERSIONCHECK %}
<tr>
@@ -204,10 +205,12 @@
<td class="tabled">{{ lang('FILES_PER_DAY') ~ lang('COLON') }}</td>
<td class="tabled"><strong>{{ FILES_PER_DAY }}</strong></td>
</tr>
{% if S_VERSIONCHECK %}
<tr>
<td class="tabled">&nbsp;</td>
<td class="tabled">&nbsp;</td>
</tr>
{% endif %}
</tbody>
</table>
</div>

View File

@@ -85,7 +85,7 @@
<!-- BEGIN ranks -->
<tr>
<!-- EVENT acp_ranks_list_column_before -->
<td style="text-align: center;"><!-- IF ranks.S_RANK_IMAGE --><img src="{ranks.RANK_IMAGE}" alt="{ranks.RANK_TITLE}" title="{ranks.RANK_TITLE}" /><!-- ELSE -->&nbsp; - &nbsp;<!-- ENDIF --></td>
<td style="text-align: center;"><!-- IF ranks.S_RANK_IMAGE --><img src="{ranks.RANK_IMAGE}" alt="{ranks.RANK_TITLE}" title="{ranks.RANK_TITLE}" style="max-width: 160px;"><!-- ELSE -->&nbsp; - &nbsp;<!-- ENDIF --></td>
<td style="text-align: center;">{ranks.RANK_TITLE}</td>
<td style="text-align: center;"><!-- IF ranks.S_SPECIAL_RANK -->&nbsp; - &nbsp;<!-- ELSE -->{ranks.MIN_POSTS}<!-- ENDIF --></td>
<!-- EVENT acp_ranks_list_column_after -->

View File

@@ -78,28 +78,31 @@
<!-- ELSEIF S_INDEX -->
<script>
// <![CDATA[
/**
* Popup search progress bar
*/
function popup_progress_bar(progress_type)
{
close_waitscreen = 0;
// no scrollbars
popup('{UA_PROGRESS_BAR}&amp;type=' + progress_type, 400, 240, '_index');
}
// ]]>
</script>
<h1>{L_ACP_SEARCH_INDEX}</h1>
<!-- IF S_CONTINUE_INDEXING -->
<p>{L_CONTINUE_EXPLAIN}</p>
<p>
{% if S_CONTINUE_INDEXING == 'create' %}
{{ lang('CONTINUE_INDEXING_EXPLAIN') }}
{% else %}
{{ lang('CONTINUE_DELETING_INDEX_EXPLAIN') }}
{% endif %}
</p>
<form id="acp_search_continue" method="post" action="{U_CONTINUE_INDEXING}">
<fieldset>
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
<legend>{{ lang('CONTINUE_INDEXING') }}</legend>
{% if CONTINUE_PROGRESS %}
<div class="centered-text">
<br>
<progress
value="{{ CONTINUE_PROGRESS.VALUE }}"
max="{{ CONTINUE_PROGRESS.TOTAL }}"
style="height: 2em; width: 20em;"></progress><br>
{{ CONTINUE_PROGRESS.PERCENTAGE|number_format(2) ~ ' %' }}<br>
{{ lang('SEARCH_INDEX_PROGRESS', CONTINUE_PROGRESS.VALUE, CONTINUE_PROGRESS.REMAINING, CONTINUE_PROGRESS.TOTAL) }}
</div>
{% endif %}
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="submit" id="cancel" name="cancel" value="{L_CANCEL}" />
@@ -151,10 +154,10 @@
<p class="quick">
<!-- IF backend.S_INDEXED -->
<input type="hidden" name="action" value="delete" />
<input class="button2" type="submit" value="{L_DELETE_INDEX}" onclick="popup_progress_bar('delete');" />
<input class="button2" type="submit" name="submit" value="{{ lang('DELETE_INDEX') }}" />
<!-- ELSE -->
<input type="hidden" name="action" value="create" />
<input class="button2" type="submit" value="{L_CREATE_INDEX}" onclick="popup_progress_bar('create');" />
<input class="button2" type="submit" name="submit" value="{{ lang('CREATE_INDEX') }}" />
<!-- ENDIF -->
</p>
{S_FORM_TOKEN}
@@ -165,6 +168,24 @@
<!-- ENDIF -->
<!-- ELSEIF S_INDEX_PROGRESS -->
<div class="successbox">
<h3>{{ INDEXING_TITLE }}</h3>
<p>
{{ INDEXING_EXPLAIN }}
{% if INDEXING_PROGRESS %}<br>{{ INDEXING_PROGRESS }}{% endif %}
{% if INDEXING_RATE %}<br>{{ INDEXING_RATE }}{% endif %}
{% if INDEXING_PROGRESS_BAR %}
<br>
<progress
value="{{ INDEXING_PROGRESS_BAR.VALUE }}"
max="{{ INDEXING_PROGRESS_BAR.TOTAL }}"
style="height: 2em; width: 20em;"></progress><br>
{{ INDEXING_PROGRESS_BAR.PERCENTAGE|number_format(2) ~ ' %' }}<br>
{{ lang('SEARCH_INDEX_PROGRESS', INDEXING_PROGRESS_BAR.VALUE, INDEXING_PROGRESS_BAR.REMAINING, INDEXING_PROGRESS_BAR.TOTAL) }}
{% endif %}
</p>
</div>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -137,9 +137,13 @@
<td><a href="{group.U_EDIT_GROUP}">{group.GROUP_NAME}</a></td>
<td><!-- IF group.S_IS_MEMBER --><!-- IF group.S_NO_DEFAULT --><a href="{group.U_DEFAULT}">{L_GROUP_DEFAULT}</a><!-- ELSE --><strong>{L_GROUP_DEFAULT}</strong><!-- ENDIF --><!-- ELSEIF not group.S_IS_MEMBER and group.U_APPROVE --><a href="{group.U_APPROVE}">{L_GROUP_APPROVE}</a><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
<td><!-- IF group.S_IS_MEMBER and not group.S_SPECIAL_GROUP --><a href="{group.U_DEMOTE_PROMOTE}">{group.L_DEMOTE_PROMOTE}</a><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
<td><a href="{group.U_DELETE}">{L_GROUP_DELETE}</a></td>
<td>{% if group.U_DELETE %}<a href="{{ group.U_DELETE }}">{{ lang('GROUP_DELETE') }}</a>{% endif %}</td>
</tr>
<!-- ENDIF -->
<!-- BEGINELSE -->
<tr>
<td class="row3 centered-text" colspan="4">{{ lang('NO_GROUP') }}</td>
</tr>
<!-- END group -->
</tbody>
</table>

View File

@@ -14,7 +14,7 @@
<!-- BEGIN warn -->
<tr>
<td>{warn.USERNAME}</td>
<td style="text-align: center; nowrap: nowrap;">{warn.DATE}</td>
<td style="text-align: center; white-space: nowrap;">{warn.DATE}</td>
<td>{warn.ACTION}</td>
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{warn.ID}" /></td>
</tr>

View File

@@ -21,6 +21,20 @@
<dd><input id="recaptcha_privkey" name="recaptcha_privkey" value="{RECAPTCHA_PRIVKEY}" size="50" type="text" /></dd>
</dl>
<dl>
<dt>
<label>{{ lang('RECAPTCHA_V3_DOMAIN') ~ lang('COLON') }}</label>
<br><span>{{ lang('RECAPTCHA_V3_DOMAIN_EXPLAIN') }}</span>
</dt>
<dd>
{% for domain in RECAPTCHA_V2_DOMAINS %}
<label>
<input class="radio" name="recaptcha_v2_domain" type="radio" value="{{ domain }}"{{ domain == RECAPTCHA_V2_DOMAIN ? ' checked' }}>
<span>{{ domain }}</span>
</label>
{% endfor %}
</dd>
</dl>
</fieldset>
<fieldset>

View File

@@ -23,7 +23,7 @@ installLang = {
</script>
<script src="{T_JQUERY_LINK}"></script>
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js">\x3C/script>');</script><!-- ENDIF -->
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.7.1.min.js">\x3C/script>');</script><!-- ENDIF -->
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
<!-- INCLUDEJS admin.js -->
{$SCRIPTS}

View File

@@ -34,7 +34,7 @@
</div>
<script src="{T_JQUERY_LINK}"></script>
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.7.1.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
<!-- INCLUDEJS ajax.js -->
<!-- INCLUDEJS admin.js -->
@@ -42,5 +42,7 @@
<!-- EVENT acp_overall_footer_after -->
{$SCRIPTS}
{% EVENT acp_overall_footer_body_after %}
</body>
</html>

View File

@@ -17,11 +17,13 @@
</div>
<script src="{T_JQUERY_LINK}"></script>
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.7.1.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
<!-- EVENT acp_simple_footer_after -->
{$SCRIPTS}
{% EVENT acp_simple_footer_body_after %}
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -12,7 +12,7 @@
*/
/**
* Minimum Requirement: PHP 7.1.3
* Minimum Requirement: PHP 7.2.0
*/
if (!defined('IN_PHPBB'))
@@ -51,20 +51,10 @@ if (!defined('PHPBB_INSTALLED'))
$server_port = 443;
}
$script_name = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
if (!$script_name)
{
$script_name = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : getenv('REQUEST_URI');
}
// $phpbb_root_path accounts for redirects from e.g. /adm
$script_path = trim(dirname($script_name)) . '/' . $phpbb_root_path . 'install/app.' . $phpEx;
// Replace any number of consecutive backslashes and/or slashes with a single slash
// (could happen on some proxy setups and/or Windows servers)
$script_path = preg_replace('#[\\\\/]{2,}#', '/', $script_path);
$script_path = phpbb_get_install_redirect($phpbb_root_path, $phpEx);
// Eliminate . and .. from the path
require($phpbb_root_path . 'phpbb/filesystem.' . $phpEx);
require($phpbb_root_path . 'phpbb/filesystem/filesystem.' . $phpEx);
$phpbb_filesystem = new phpbb\filesystem\filesystem();
$script_path = $phpbb_filesystem->clean_path($script_path);
@@ -96,6 +86,8 @@ include($phpbb_root_path . 'includes/functions_compatibility.' . $phpEx);
require($phpbb_root_path . 'includes/constants.' . $phpEx);
require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
// Registered before building the container so the development environment stay capable of intercepting
// the container builder exceptions.
if (PHPBB_ENVIRONMENT === 'development')
{
\phpbb\debug\debug::enable();
@@ -112,6 +104,14 @@ $phpbb_class_loader_ext->register();
try
{
$phpbb_container_builder = new \phpbb\di\container_builder($phpbb_root_path, $phpEx);
// Check that cache directory is writable before trying to build container
$cache_dir = $phpbb_container_builder->get_cache_dir();
if (file_exists($cache_dir) && !is_writable($phpbb_container_builder->get_cache_dir()))
{
die('Unable to write to the cache directory path "' . $cache_dir . '". Ensure that the web server user can write to the cache folder.');
}
$phpbb_container = $phpbb_container_builder->with_config($phpbb_config_php_file)->get_container();
}
catch (InvalidArgumentException $e)
@@ -129,6 +129,11 @@ catch (InvalidArgumentException $e)
}
}
if ($phpbb_container->getParameter('debug.error_handler'))
{
\phpbb\debug\debug::enable();
}
$phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
$phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver'));

View File

@@ -26,14 +26,14 @@
"phpbb/phpbb-core": "self.version"
},
"require": {
"php": "^7.1.3",
"php": "^7.2 || ^8.0.0",
"ext-json": "*",
"ext-mbstring": "*",
"bantu/ini-get-wrapper": "~1.0",
"carlos-mg89/oauth": "^0.8.15",
"composer/package-versions-deprecated": "^1.11",
"google/recaptcha": "~1.1",
"guzzlehttp/guzzle": "~6.3",
"lusitanian/oauth": "^0.8.1",
"marc1706/fast-image-size": "^1.1",
"s9e/text-formatter": "^2.0",
"symfony/config": "~3.4",
@@ -74,7 +74,10 @@
},
"config": {
"platform": {
"php": "7.1.3"
"php": "7.2"
},
"allow-plugins": {
"composer/installers": true
}
}
}

1039
phpBB/composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -40,6 +40,7 @@ services:
- '@cache.driver'
- '@config'
- '@dbal.conn'
- '@dispatcher'
- '%core.root_path%'
- '%core.php_ext%'

View File

@@ -281,6 +281,22 @@ services:
tags:
- { name: console.command }
console.command.user.delete_id:
class: phpbb\console\command\user\delete_id
arguments:
- '@dbal.conn'
- '@language'
- '@log'
- '@user'
- '@user_loader'
- '%tables.bots%'
- '%tables.user_group%'
- '%tables.users%'
- '%core.root_path%'
- '%core.php_ext%'
tags:
- { name: console.command }
console.command.user.reclean:
class: phpbb\console\command\user\reclean
arguments:

View File

@@ -67,7 +67,15 @@ services:
- '@controller.helper'
- '@dispatcher'
posting.lock:
class: phpbb\lock\posting
shared: false
arguments:
- '@cache.driver'
- '@config'
viewonline_helper:
class: phpbb\viewonline_helper
arguments:
- '@filesystem'
- '@dbal.conn'

View File

@@ -6,6 +6,7 @@ services:
- '@routing.helper'
- '%core.root_path%'
- '%core.php_ext%'
- '@template'
cron.lock_db:
class: phpbb\lock\db

View File

@@ -9,6 +9,7 @@ services:
arguments:
- '@template'
- '@language'
- '@user'
- '%debug.exceptions%'
tags:
- { name: kernel.event_subscriber }

View File

@@ -1,4 +1,15 @@
services:
phpbb.ucp.controller.delete_cookies:
class: phpbb\ucp\controller\delete_cookies
arguments:
- '@config'
- '@dispatcher'
- '@language'
- '@request'
- '@user'
- '%core.root_path%'
- '%core.php_ext%'
phpbb.ucp.controller.reset_password:
class: phpbb\ucp\controller\reset_password
arguments:

View File

@@ -1,3 +1,7 @@
phpbb_ucp_delete_cookies_controller:
path: /delete_cookies
defaults: { _controller: phpbb.ucp.controller.delete_cookies:handle }
phpbb_ucp_reset_password_controller:
path: /reset_password
defaults: { _controller: phpbb.ucp.controller.reset_password:reset }

View File

@@ -11,6 +11,7 @@ core:
sql_explain: true
memory: true
show_errors: true
error_handler: true
twig:
debug: true

View File

@@ -4,6 +4,7 @@ services:
arguments:
- '@phpbb.installer.controller.helper'
- '@language'
- '@path_helper'
- '@template'
- '%core.root_path%'

View File

@@ -12,6 +12,9 @@
*/
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Exception\ExceptionInterface;
use Symfony\Component\Routing\Exception\RouteNotFoundException;
/**
*/
@@ -28,10 +31,49 @@ $cron_type = $request->variable('cron_type', '');
$get_params_array = $request->get_super_global(\phpbb\request\request_interface::GET);
/* @var $http_kernel \Symfony\Component\HttpKernel\HttpKernel */
$http_kernel = $phpbb_container->get('http_kernel');
/* @var $symfony_request \phpbb\symfony_request */
$symfony_request = $phpbb_container->get('symfony_request');
/** @var \phpbb\controller\helper $controller_helper */
$controller_helper = $phpbb_container->get('controller.helper');
$response = new RedirectResponse(
$controller_helper->route('phpbb_cron_run', $get_params_array, false),
301
$cron_route = 'phpbb_cron_run';
try
{
$response = new RedirectResponse(
$controller_helper->route($cron_route, $get_params_array, false),
Response::HTTP_MOVED_PERMANENTLY
);
$response->send();
$http_kernel->terminate($symfony_request, $response);
exit();
}
catch (RouteNotFoundException $exception)
{
$error = 'ROUTE_NOT_FOUND';
$error_parameters = $cron_route;
$error_code = Response::HTTP_NOT_FOUND;
}
catch (ExceptionInterface $exception)
{
$error = 'ROUTE_INVALID_MISSING_PARAMS';
$error_parameters = $cron_route;
$error_code = Response::HTTP_BAD_REQUEST;
}
catch (Throwable $exception)
{
$error = $exception->getMessage();
$error_parameters = [];
$error_code = Response::HTTP_INTERNAL_SERVER_ERROR;
}
$language = $phpbb_container->get('language');
$response = new Response(
$language->lang($error, $error_parameters),
$error_code
);
$response->send();
$http_kernel->terminate($symfony_request, $response);

View File

@@ -0,0 +1,126 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
if (php_sapi_name() != 'cli')
{
die("This program must be run from the command line.\n");
}
$phpEx = substr(strrchr(__FILE__, '.'), 1);
$phpbb_root_path = __DIR__ . '/../';
define('IN_PHPBB', true);
function usage()
{
echo "Usage: export_events_for_bbcode.php COMMAND [VERSION] [EXTENSION]\n";
echo "\n";
echo "COMMAND:\n";
echo " diff:\n";
echo " Generate the Event Diff for the release highlights\n";
echo "\n";
echo " php:\n";
echo " Generate the PHP event section of Event_List\n";
echo "\n";
echo " adm:\n";
echo " Generate the ACP Template event section of Event_List\n";
echo "\n";
echo " styles:\n";
echo " Generate the Styles Template event section of Event_List\n";
echo "\n";
echo "VERSION (diff only):\n";
echo " Filter events (minimum version)\n";
echo "\n";
echo "EXTENSION (Optional):\n";
echo " If not given, only core events will be exported.\n";
echo " Otherwise only events from the extension will be exported.\n";
echo "\n";
exit(2);
}
function validate_argument_count($arguments, $count)
{
if ($arguments <= $count)
{
usage();
}
}
validate_argument_count($argc, 1);
$action = $argv[1];
$extension = isset($argv[2]) ? $argv[2] : null;
$min_version = null;
require __DIR__ . '/../phpbb/event/php_exporter.' . $phpEx;
require __DIR__ . '/../phpbb/event/md_exporter.' . $phpEx;
require __DIR__ . '/../phpbb/event/rst_exporter.' . $phpEx;
require __DIR__ . '/../includes/functions.' . $phpEx;
require __DIR__ . '/../phpbb/event/recursive_event_filter_iterator.' . $phpEx;
require __DIR__ . '/../phpbb/recursive_dot_prefix_filter_iterator.' . $phpEx;
switch ($action)
{
case 'diff':
echo "[size=200]Event changes[/size]\n\n";
$min_version = $extension;
$extension = isset($argv[3]) ? $argv[3] : null;
case 'php':
$exporter = new \phpbb\event\php_exporter($phpbb_root_path, $extension, $min_version);
$exporter->crawl_phpbb_directory_php();
echo $exporter->export_events_for_bbcode($action);
if ($action === 'php')
{
break;
}
echo "\n\n";
// no break;
case 'styles':
$exporter = new \phpbb\event\md_exporter($phpbb_root_path, $extension, $min_version);
if ($min_version && $action === 'diff')
{
$exporter->crawl_eventsmd('docs/events.md', 'styles');
}
else
{
$exporter->crawl_phpbb_directory_styles('docs/events.md');
}
echo $exporter->export_events_for_bbcode($action);
if ($action === 'styles')
{
break;
}
echo "\n\n";
// no break;
case 'adm':
$exporter = new \phpbb\event\md_exporter($phpbb_root_path, $extension, $min_version);
if ($min_version && $action === 'diff')
{
$exporter->crawl_eventsmd('docs/events.md', 'adm');
}
else
{
$exporter->crawl_phpbb_directory_adm('docs/events.md');
}
echo $exporter->export_events_for_bbcode($action);
echo "\n";
break;
default:
usage();
}

View File

@@ -50,6 +50,22 @@
<ol>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#v3314">Changes since 3.3.14</a></li>
<li><a href="#v3314rc1">Changes since 3.3.14-RC1</a></li>
<li><a href="#v3313">Changes since 3.3.13</a></li>
<li><a href="#v3313rc1">Changes since 3.3.13-RC1</a></li>
<li><a href="#v3312">Changes since 3.3.12</a></li>
<li><a href="#v3312rc1">Changes since 3.3.12-RC1</a></li>
<li><a href="#v3311">Changes since 3.3.11</a></li>
<li><a href="#v3310">Changes since 3.3.10</a></li>
<li><a href="#v3310rc1">Changes since 3.3.10-RC1</a></li>
<li><a href="#v339">Changes since 3.3.9</a></li>
<li><a href="#v339rc1">Changes since 3.3.9-RC1</a></li>
<li><a href="#v338">Changes since 3.3.8</a></li>
<li><a href="#v337">Changes since 3.3.7</a></li>
<li><a href="#v336">Changes since 3.3.6</a></li>
<li><a href="#v336rc1">Changes since 3.3.6-RC1</a></li>
<li><a href="#v335">Changes since 3.3.5</a></li>
<li><a href="#v335rc1">Changes since 3.3.5-RC1</a></li>
<li><a href="#v334">Changes since 3.3.4</a></li>
<li><a href="#v334rc1">Changes since 3.3.4-RC1</a></li>
@@ -158,6 +174,425 @@
<div class="inner">
<div class="content">
<a name="v3314"></a><h3>Changes since 3.3.14</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17227">PHPBB-17227</a>] - Member list sorting bug - repeating users on several pages</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17381">PHPBB-17381</a>] - 'topic_views' column overflow blocks access to the topic</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17417">PHPBB-17417</a>] - Day selection not visible when no results</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17422">PHPBB-17422</a>] - Ascending posts pagination</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17436">PHPBB-17436</a>] - PHP fatal error while converting from phpBB 2.0 with Attachment MOD</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17455">PHPBB-17455</a>] - PHP warning on MySQLi connection failure</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17463">PHPBB-17463</a>] - Extra &amp; in unread posts search pagination </li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17468">PHPBB-17468</a>] - Reset password feature is not restricted to email</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17470">PHPBB-17470</a>] - Enable feeds setting not enforced</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17429">PHPBB-17429</a>] - Adding event before users have been added to a group</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17431">PHPBB-17431</a>] - Add more vars to memberlist event</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17433">PHPBB-17433</a>] - Unclear instructions in ACP, Server settings</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17443">PHPBB-17443</a>] - Various Guzzle client issues for version checks</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17446">PHPBB-17446</a>] - Add acp_account_activation_edit_add event</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17461">PHPBB-17461</a>] - Add php events for ACP main actions</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17467">PHPBB-17467</a>] - Add TLS v.1.3 support to email messenger connection</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17471">PHPBB-17471</a>] - Forum feed link in forumlist_body does not return the correct URL</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17478">PHPBB-17478</a>] - Add security policy to repository</li>
</ul>
<a name="v3314rc1"></a><h3>Changes since 3.3.14-RC1</h3>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17421">PHPBB-17421</a>] - Rename section for not installed extensions to not installed</li>
</ul>
<a name="v3313"></a><h3>Changes since 3.3.13</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17181">PHPBB-17181</a>] - If statement to highlight Reported PMS on the view message page doesn't work.</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17383">PHPBB-17383</a>] - HELO/EHLO error while using gethostbyaddr()</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17384">PHPBB-17384</a>] - Passing E_USER_ERROR to trigger_error() is deprecated in PHP 8.4</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17385">PHPBB-17385</a>] - Version check without SSL flag for CDB extensions fails</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17386">PHPBB-17386</a>] - Incorrect trace result while tracing user-based permissions</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17387">PHPBB-17387</a>] - PHP warnings in search results</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17390">PHPBB-17390</a>] - Missing buttons for approval of new messages</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17391">PHPBB-17391</a>] - PHP warnings on attempt to create user group having name already in use</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17398">PHPBB-17398</a>] - Ajax error on deleting cookies</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17405">PHPBB-17405</a>] - Function phpbb_gmgetdate() returns incorrect result for edge cases</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17410">PHPBB-17410</a>] - UCP tabs do not work when testing out another user's permissions</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-16852">PHPBB-16852</a>] - Addition of a new PHP event concerning bump topics</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17359">PHPBB-17359</a>] - Distinct disabled and not installed extensions in the list</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17376">PHPBB-17376</a>] - Link reference to quote post is a poor accessibility experience</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17382">PHPBB-17382</a>] - Incorrect grammar on FAQ page regarding searching for members</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17388">PHPBB-17388</a>] - Add php event to bump_topic_allowed function</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17394">PHPBB-17394</a>] - Check mergeability of PR on GitHub Actions</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17396">PHPBB-17396</a>] - Automatically handle merges of 3.3.x into master</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17397">PHPBB-17397</a>] - Add event for forum_data query in viewforum</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17402">PHPBB-17402</a>] - Add possibility to force reparsing BBCode via CLI</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17407">PHPBB-17407</a>] - Limit mergeability check to single comment</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17411">PHPBB-17411</a>] - Add core event to search.php</li>
</ul>
<a name="v3313rc1"></a><h3>Changes since 3.3.13-RC1</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17377">PHPBB-17377</a>] - MSSQL builds on GitHub actions broken</li>
</ul>
<a name="v3312"></a><h3>Changes since 3.3.12</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-13916">PHPBB-13916</a>] - Cancelling save draft removes previous notify setting on posting page</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-14454">PHPBB-14454</a>] - Accessing ACP modules while testing user permissions returns a General Error</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-15043">PHPBB-15043</a>] - Searching no longer working in 3.2.0</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-15576">PHPBB-15576</a>] - PM subject truncated to shorter length than maxlength</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-16213">PHPBB-16213</a>] - vendor and phpbb folders should have .htaccess files</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-16907">PHPBB-16907</a>] - &quot;phpbb&quot; value in &quot;hiddenSegments&quot; blocks client requests for extensions in IIS</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17109">PHPBB-17109</a>] - Users without the &quot;Can use signature&quot; permission should not see checkboxes for signature</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17175">PHPBB-17175</a>] - Breadcrumbs show wrong forum and topic when using 'email topic'</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17301">PHPBB-17301</a>] - Wrong length parameter for fread in phpbb/cache/driver/file.php can lead to unusable forum</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17327">PHPBB-17327</a>] - Fix linting issue in console user add command</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17332">PHPBB-17332</a>] - New permission copied from existing permission ignores permission set options</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17337">PHPBB-17337</a>] - Transaction begin is missing from mysqli driver </li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17338">PHPBB-17338</a>] - Incorrect members list sorting by user_last_visit</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17351">PHPBB-17351</a>] - phpBB2 password hashes incorrectly handled during rehash cron</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17352">PHPBB-17352</a>] - Long rank titles push other profile details below</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17353">PHPBB-17353</a>] - Gravatar avatar src is not image src</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17356">PHPBB-17356</a>] - Errors hidden by at are being displayed in PHP 8 or newer</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17358">PHPBB-17358</a>] - Redis cache never expires with the TTL of 0</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17362">PHPBB-17362</a>] - Missing declaration of property in extension manager</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17365">PHPBB-17365</a>] - Enforce the search word limit on queries containing operators without white space</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17366">PHPBB-17366</a>] - Captcha disappears on error message from registration &amp; posting</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17369">PHPBB-17369</a>] - Permanently deleting soft-deleted topics returns incorrect forum in redirect link</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17370">PHPBB-17370</a>] - Deleting Cookies on FAQ/other pages</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17374">PHPBB-17374</a>] - ACP - Maintenance - Logs: Deleting Error / Bug</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17375">PHPBB-17375</a>] - User lastvisit gets updated too often in session garbage collection</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-16553">PHPBB-16553</a>] - Disapproving a reported post causes a &quot;Module not accessible&quot; error</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17308">PHPBB-17308</a>] - Rename tracker project key to PHPBB-</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17315">PHPBB-17315</a>] - Add new template events to group</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17316">PHPBB-17316</a>] - Add template events to ucp_groups_manage</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17317">PHPBB-17317</a>] - Update button text and make it more readable</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17325">PHPBB-17325</a>] - Show explicit message for &quot;Re-Check version&quot; if installed version is still up to date</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17340">PHPBB-17340</a>] - Update composer to 2.7.7</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17342">PHPBB-17342</a>] - Add PHP 8.4-dev tests to GitHub Actions</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17347">PHPBB-17347</a>] - Support deleting users by ID via console</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17350">PHPBB-17350</a>] - Add user IP address to log when installing extensions on fresh installs</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-17355">PHPBB-17355</a>] - Update gravatar hash to sha256</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-13933">PHPBB-13933</a>] - Update tokens' definitions in acp_bbcodes</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB-16890">PHPBB-16890</a>] - Edit the config sample files and web.config to deny access to the &quot;config&quot; directory</li>
</ul>
<a name="v3312rc1"></a><h3>Changes since 3.3.12-RC1</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17312">PHPBB3-17312</a>] - User last visit gets updated too often</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17324">PHPBB3-17324</a>] - Add template event to notification_dropdown.html</li>
</ul>
<h4>Hardening</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-276">SECURITY-276</a>] - Prevent resending activation email too often</li>
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-278">SECURITY-278</a>] - Always release cron lock, even invalid task is passed</li>
</ul>
<a name="v3311"></a><h3>Changes since 3.3.11</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-14047">PHPBB3-14047</a>] - Jabber discards messages when stream gets closed without waiting for acknowledgement</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15325">PHPBB3-15325</a>] - Global moderator permissions shown in forum moderator permissions</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16470">PHPBB3-16470</a>] - Memberlist bug - sorting by Last active date is incorrect</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17077">PHPBB3-17077</a>] - Multiple posts at once, even if the user shouldn't ignore the flood interval</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17117">PHPBB3-17117</a>] - Deactivated notification method leads to crash</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17130">PHPBB3-17130</a>] - Text reparser changes magic URL state in posts</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17187">PHPBB3-17187</a>] - Unread Topic URL Link Not Working On MCP View Forum Topic List</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17200">PHPBB3-17200</a>] - Color Parse Error In viewonline.php Legend</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17201">PHPBB3-17201</a>] - Redirect to installer might be invalid when accessing subfolder</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17202">PHPBB3-17202</a>] - The bidi.css File Is Loaded When Viewing LTR Topic Print View Page</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17203">PHPBB3-17203</a>] - Group Description With BBCode Ordered List Breaks Layout</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17207">PHPBB3-17207</a>] - Extensions are unable to use PHPBB_USE_BOARD_URL_PATH</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17208">PHPBB3-17208</a>] - Update Error YouTube Profilfeld</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17212">PHPBB3-17212</a>] - Who is online incorrectly reports page when posting with only post URL parameter</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17237">PHPBB3-17237</a>] - QUICKMOD_ACTION_NOT_ALLOWED uses &quot; instead of ' </li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17286">PHPBB3-17286</a>] - Non-existent urls to be written down to session_page</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17292">PHPBB3-17292</a>] - Link to spamhaus.org no longer valid</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17296">PHPBB3-17296</a>] - mod_security false positive denies access to ACP</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17302">PHPBB3-17302</a>] - Password reset function does not update all necessary data</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17306">PHPBB3-17306</a>] - Wrong declaration of function input values</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17230">PHPBB3-17230</a>] - Update doctum for PHP 8.1 support</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17232">PHPBB3-17232</a>] - Improve MySQL error messages in PHP 8.1+</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17233">PHPBB3-17233</a>] - Add PHP 8.3 tests to the 3.3.x branch</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17235">PHPBB3-17235</a>] - Missing autocomplete for username &amp; password</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17236">PHPBB3-17236</a>] - Update symfony dependencies to improve PHP 8.3 compatibility</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17277">PHPBB3-17277</a>] - Add template events to UCP</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17284">PHPBB3-17284</a>] - Add event to add content after the online users list in viewtopic</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17293">PHPBB3-17293</a>] - Update composer and dependencies to latest versions</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17299">PHPBB3-17299</a>] - Allow core event to modify variables while sending email</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17303">PHPBB3-17303</a>] - Update jQuery to 3.7+</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17305">PHPBB3-17305</a>] - Improve queries for unanswered topics and posts</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17310">PHPBB3-17310</a>] - Update GitHub actions workflows to Node.js 20</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17204">PHPBB3-17204</a>] - Update composer and node dependencies</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17280">PHPBB3-17280</a>] - Fallback to branch name on branches without ticket ID</li>
</ul>
<a name="v3310"></a><h3>Changes since 3.3.10</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-8777">PHPBB3-8777</a>] - Users can be removed from all groups leaving no default group</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-11184">PHPBB3-11184</a>] - ACP purports to allow editing of Founder admin permissions</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-12785">PHPBB3-12785</a>] - Redirection of URI are calculated using PHP_SELF</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13276">PHPBB3-13276</a>] - INCLUDEJS and INCLUDECSS do not obey PHPBB_USE_BOARD_URL_PATH</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13364">PHPBB3-13364</a>] - Index Subject not updated after moderation</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15129">PHPBB3-15129</a>] - Wrong Installation guide link</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16796">PHPBB3-16796</a>] - misalignment on index and viewforum for topics and posts titles</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16877">PHPBB3-16877</a>] - OAuth account linking throws a PHP error - PHP 8</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17004">PHPBB3-17004</a>] - Pagination doesn't not show up in UCP &gt; Front Page</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17040">PHPBB3-17040</a>] - bidi.css is loaded when viewing LTR print view pages</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17041">PHPBB3-17041</a>] - RTL Pagination Dropdown Arrow Faces The Wrong Way</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17042">PHPBB3-17042</a>] - Group Description With BBCode List Breaks Layout</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17043">PHPBB3-17043</a>] - Remove Duplicate CP Rule From bidi.css</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17045">PHPBB3-17045</a>] - UCP attachments list page top and bottom pagination counts language strings and font size are different</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17046">PHPBB3-17046</a>] - IE tweaks in simple_header should be included the same as in overall_header</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17053">PHPBB3-17053</a>] - sql_freeresult not working for mysqli &amp; PHP 8</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17076">PHPBB3-17076</a>] - Signature length limit bug</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17086">PHPBB3-17086</a>] - phpBB / Codespaces support</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17089">PHPBB3-17089</a>] - Warning users without post causes PHP warning</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17097">PHPBB3-17097</a>] - PHP 8.2 Deprecations</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17098">PHPBB3-17098</a>] - body class {S_CONTENT_DIRECTION} is missing in ucp_pm_viewmessage_print.html</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17107">PHPBB3-17107</a>] - Who is online incorectly reports Forum location when replying/quoting </li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17115">PHPBB3-17115</a>] - PHP warning with native search backend if query ends with a space followed by hyphen</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17126">PHPBB3-17126</a>] - Filename in instructions about running all tests does not exist</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17127">PHPBB3-17127</a>] - Guest users stats got purged when resetting password</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17129">PHPBB3-17129</a>] - Youtube profile field not up to date in new installations</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17132">PHPBB3-17132</a>] - Missing language variable leads to PHP error in convertor</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17137">PHPBB3-17137</a>] - Attachments can be deleted after end of post editing or deletion time</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17139">PHPBB3-17139</a>] - PHP fatal error while updating with advanced update package</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17140">PHPBB3-17140</a>] - Required parameter phpbb_root_path missing in local_url_bbcode migration</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17141">PHPBB3-17141</a>] - Empty referrer may result in PHP error in get_web_root_path()</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17142">PHPBB3-17142</a>] - Installation errors when using MSSQL+ IIS + PHP 8.2 </li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17145">PHPBB3-17145</a>] - Field 'pf_phpbb_occupation' doesn't have a default value</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17146">PHPBB3-17146</a>] - Undefined array key in notifications code</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17148">PHPBB3-17148</a>] - phpBB3.3.10 Setup does not support PostgreSQL 8.3 </li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17150">PHPBB3-17150</a>] - Forum Image Breaks Layout If Big Image Used - (Forum List Forum Image)</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17160">PHPBB3-17160</a>] - Missing 'Mark' Column Header On MCP Front Page</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17171">PHPBB3-17171</a>] - Remove non functional responsive placeholder text rules in responsive.css</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17172">PHPBB3-17172</a>] - Hovering over a forum link / subforum link shows 'No unread posts' on the tooltip</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17189">PHPBB3-17189</a>] - Installer permission handling on PHP 8.2</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17194">PHPBB3-17194</a>] - Php version in vagrant configuration is not set correctly</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17198">PHPBB3-17198</a>] - Gravatar requires https by default</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-8071">PHPBB3-8071</a>] - DBAL function &quot;sql_nextid&quot; - name is misleading</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-11765">PHPBB3-11765</a>] - short_ipv6() doesn't expect IPv4 embedded IPv6 addresses</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-12904">PHPBB3-12904</a>] - Required custom profile fields and asterisk</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13399">PHPBB3-13399</a>] - Problem with plurals - 'CHARACTERS'</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15973">PHPBB3-15973</a>] - Canonical for the index page</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16913">PHPBB3-16913</a>] - Add Search Index Progress Bar with Stats</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17025">PHPBB3-17025</a>] - Move post destination topic field should not be populated with a zero</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17125">PHPBB3-17125</a>] - Message Editor layout Broken in Latest Safari</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17128">PHPBB3-17128</a>] - Link to PHP date() function</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17152">PHPBB3-17152</a>] - Add template event to viewtopic_body.html</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17188">PHPBB3-17188</a>] - Condition to check if a utf8 string is malformed is wrong</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17116">PHPBB3-17116</a>] - Useless duplicate conditions in ucp_pm_history.html</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17149">PHPBB3-17149</a>] - Update authors and pull request template</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17154">PHPBB3-17154</a>] - Update composer and dependencies to latest versions</li>
</ul>
<h4>Hardening</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-132">SECURITY-132</a>] - Limit CAPTCHA attempts at registration for single session</li>
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-279">SECURITY-279</a>] - Escape smilies URL and prevent paths in .pak filename</li>
</ul>
<a name="v3310rc1"></a><h3>Changes since 3.3.10-RC1</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17091">PHPBB3-17091</a>] - PHP 8.0 builds fail due to incompatible doctrine/instantiator</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17092">PHPBB3-17092</a>] - Check for error codes when querying Spamhaus</li>
</ul>
<a name="v339"></a><h3>Changes since 3.3.9</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16938">PHPBB3-16938</a>] - Unexistent css property in inline style</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17039">PHPBB3-17039</a>] - Group name not colored in manage groups due to typo</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17056">PHPBB3-17056</a>] - PHP 8.2 Deprecation warning about ${var} syntax</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17065">PHPBB3-17065</a>] - Emoji characters in MCP add feedback cause SQL error</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17074">PHPBB3-17074</a>] - Condition to avoid creation of roles with same name is broken</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17081">PHPBB3-17081</a>] - Invalid accept attribute in the post editor</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17082">PHPBB3-17082</a>] - Ability to warn Anonymous</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13291">PHPBB3-13291</a>] - Close notification drop down after clicking &quot;mark all read&quot;</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16105">PHPBB3-16105</a>] - Use &quot;global&quot; reCAPTCHA domain to circumvent blocking in some countries</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17068">PHPBB3-17068</a>] - ALLOW_CDN_EXPLAIN: Incomplete and imprecise description</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17075">PHPBB3-17075</a>] - Add template events to ACP footer after SCRIPTS</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17066">PHPBB3-17066</a>] - Update GitHub Actions configuration to resolve deprecations</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17071">PHPBB3-17071</a>] - Update the emoji CDN</li>
</ul>
<h4>Hardening</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-275">SECURITY-275</a>] - Improve handling of exceptions in cron redirect</li>
</ul>
<a name="v339rc1"></a><h3>Changes since 3.3.9-RC1</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17058">PHPBB3-17058</a>] - Special character issue in emails from PHP 8.0 and higher</li>
</ul>
<h4>Hardening</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-274">SECURITY-274</a>] - Reset login keys/session when resetting password</li>
</ul>
<a name="v338"></a><h3>Changes since 3.3.8</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16917">PHPBB3-16917</a>] - bin/phpbb.cli requires 755 permissions</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16932">PHPBB3-16932</a>] - Invalid email To: header on notifications to users with @ in name</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17003">PHPBB3-17003</a>] - Icon of a topic do not show up in the UCP &gt; Front Page.</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17019">PHPBB3-17019</a>] - Missing &quot;youtube&quot; profilefield stops Database update</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17023">PHPBB3-17023</a>] - phpBB 3.3: PHP8 supported but not indicated by composer.json</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17026">PHPBB3-17026</a>] - Session viewonline not defined in Memberlist</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17030">PHPBB3-17030</a>] - Feed doesn't generate valid RFC-3339 dates</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17032">PHPBB3-17032</a>] - Missing or invalid user entry for anonymous user may result in stack overflow</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17036">PHPBB3-17036</a>] - Update guzzle to latest version</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17050">PHPBB3-17050</a>] - Unnecessary trailing slash in void HTML elements</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17051">PHPBB3-17051</a>] - Textformatter may generate PHP warnings if user is not fully initialized in PHP 8.1</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16916">PHPBB3-16916</a>] - Enhance the PHP version error message on startup and install</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17005">PHPBB3-17005</a>] - List item closing tag missing slash in posting_topic_review</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17006">PHPBB3-17006</a>] - &quot;www.&quot; not needed and may lead to confusion</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-17048">PHPBB3-17048</a>] - Update composer and dependencies for 3.3.9</li>
</ul>
<a name="v337"></a><h3>Changes since 3.3.7</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13821">PHPBB3-13821</a>] - Always show &quot;Display this post&quot; for foes</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16871">PHPBB3-16871</a>] - S_FORUM_ID and S_TOPIC_ID variables set by page_header may cause fatal errors in feeds</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16891">PHPBB3-16891</a>] - Controller Helper Routing in ACP can break Extension Installation</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16960">PHPBB3-16960</a>] - Migrations table not populated at the end of installation</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16962">PHPBB3-16962</a>] - Possible bug related with format date</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16966">PHPBB3-16966</a>] - &quot;Insecure redirect&quot; error while permanently deleting posts</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16976">PHPBB3-16976</a>] - phpBB Native Search returns 1 match and one page of results</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16977">PHPBB3-16977</a>] - Cron-job &quot;img&quot; tag at bottom breaks some styles and is inaccessible</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16978">PHPBB3-16978</a>] - &lt;/ul&gt; Tag Missing From posting_pm_header.html Template</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16981">PHPBB3-16981</a>] - HTML-encoded emojis `&amp;#128396; &amp;#128208;` in email subject line</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16990">PHPBB3-16990</a>] - Wrong style template code in the post editor prevents deleting a post with certain permission combination</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13859">PHPBB3-13859</a>] - Youtube profilefield needs an upgrade</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15947">PHPBB3-15947</a>] - &quot;X out of 0 messages stored&quot; in UCP</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16800">PHPBB3-16800</a>] - Language string NO_POSTS should be changed</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16959">PHPBB3-16959</a>] - Remove redundant URL parameters from notification mails</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16967">PHPBB3-16967</a>] - Deprecate use of PHP and INCLUDEPHP in templates</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16969">PHPBB3-16969</a>] - Flash status displays when posting when posts settings don't allow [FLASH] - BBCode</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16988">PHPBB3-16988</a>] - Ignore appended branch info when preparing commit message</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16991">PHPBB3-16991</a>] - Add events for bookmarks and subscribed topics in UCP</li>
</ul>
<a name="v336"></a><h3>Changes since 3.3.6</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16973">PHPBB3-16973</a>] - Remove orphaned roles migration may incorrectly remove role-based group permissions</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16972">PHPBB3-16972</a>] - Rename subtype to advanced_update in package.json generation</li>
</ul>
<a name="v336rc1"></a><h3>Changes since 3.3.6-RC1</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16872">PHPBB3-16872</a>] - Create event exporter to BBCode</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16956">PHPBB3-16956</a>] - White screen after disable extention</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-15028">PHPBB3-15028</a>] - Change update instructions in ACP</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16964">PHPBB3-16964</a>] - Update composer and composer dependencies to latest versions</li>
</ul>
<h4>Hardening</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-272">SECURITY-272</a>] - Use longer random string for activation key</li>
<li>[<a href="https://tracker.phpbb.com/browse/SECURITY-273">SECURITY-273</a>] - Reset reset token info when re-activating account</li>
</ul>
<a name="v335"></a><h3>Changes since 3.3.5</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16881">PHPBB3-16881</a>] - Fix ACP Statistic Table</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16883">PHPBB3-16883</a>] - Check if var is array before using count in installer diff</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16887">PHPBB3-16887</a>] - Update required PHP version</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16889">PHPBB3-16889</a>] - Postgres on windows builds keep failing</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16892">PHPBB3-16892</a>] - Duplicate entry for jav files in extension guesser</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16895">PHPBB3-16895</a>] - 'Permission' migration tool incorrectly handles role removal</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16897">PHPBB3-16897</a>] - sqlite3 drivers generates warnings when executing an explain query plan that fails</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16900">PHPBB3-16900</a>] - Invalid email subject header on long topic titles</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16904">PHPBB3-16904</a>] - Regression for topic selection in MCP in 3.3.5</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16908">PHPBB3-16908</a>] - PHP warning on non-existent post id requests</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16910">PHPBB3-16910</a>] - PHP warning if trying to attach orphaned files to non existent posts</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16914">PHPBB3-16914</a>] - Missing id in memberlist email template</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16924">PHPBB3-16924</a>] - Double escaping of config values inserted with db config</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-13508">PHPBB3-13508</a>] - Support using INCLUDEJS and INCLUDECSS in twig template format</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16828">PHPBB3-16828</a>] - Add hook event before find_users_for_notification() execute</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16859">PHPBB3-16859</a>] - Language selection option is displayed on register if only 1 language is installed</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16885">PHPBB3-16885</a>] - Add filters to Twig - INT and FLOAT</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16888">PHPBB3-16888</a>] - Add the list of allowed attachment types using accept attribute </li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16896">PHPBB3-16896</a>] - Improve .gitignore visibility</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16898">PHPBB3-16898</a>] - Do not restrict the debug error handler to the development environment</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16899">PHPBB3-16899</a>] - Add SVG and WEBP image type to ranks, smilies and topic icons</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16902">PHPBB3-16902</a>] - Improve search results count for MySQL</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16909">PHPBB3-16909</a>] - Add PHP 8.2 builds to test matrix</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16912">PHPBB3-16912</a>] - Improve mail encoding to better match RFC 2047</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16921">PHPBB3-16921</a>] - Increase PHP requirements in the DOCS</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16930">PHPBB3-16930</a>] - Remove redundant topic ID from last post URL</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16933">PHPBB3-16933</a>] - Inconsistent handling of hyphen by phpBB Native search backend</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16939">PHPBB3-16939</a>] - Wait for postgres service to start in GitHub Actions windows builds</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16940">PHPBB3-16940</a>] - Optimize phpBB Native Search</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16927">PHPBB3-16927</a>] - Update plupload to latest version</li>
<li>[<a href="https://tracker.phpbb.com/browse/PHPBB3-16928">PHPBB3-16928</a>] - Update composer and composer dependencies to latest versions</li>
</ul>
<a name="v335rc1"></a><h3>Changes since 3.3.5-RC1</h3>
<h4>Bug</h4>
<ul>

View File

@@ -25,7 +25,6 @@ phpBB Lead Developer: Marc (Marc Alexander)
phpBB Developers: CHItA (Máté Bartus)
Derky (Derk Ruitenbeek)
Hanakin (Michael Miday)
mrgoldy (Gijs Martens)
Nicofuma (Tristan Darricau)
rubencm (Rubén Calvo)
@@ -64,6 +63,7 @@ phpBB Developers: A_Jelly_Doughnut (Josh Woody) [01/2010 - 11/2010]
imkingdavid (David King) [11/2012 - 06/2014]
kellanved (Henry Sudhof) [04/2007 - 03/2011]
MichaelC (Michael Cullum) [11/2017 - 09/2019]
mrgoldy (Gijs Martens) [03/2020 - 06/2023]
nickvergessen (Joas Schilling)[04/2010 - 12/2015]
Oleg (Oleg Pudeyev) [01/2011 - 05/2013]
prototech (Cesar Gallegos) [01/2014 - 12/2016]

View File

@@ -64,7 +64,7 @@
<li><a href="#update_full">Full package</a></li>
<li><a href="#update_files">Changed files</a></li>
<li><a href="#update_patch">Patch file</a></li>
<li><a href="#update_auto">Automatic update package</a></li>
<li><a href="#update_advanced">Advanced update package</a></li>
<li><a href="#update_all">All package types</a></li>
</ol>
</li>
@@ -147,7 +147,7 @@
<li>Oracle</li>
</ul>
</li>
<li><strong>PHP 7.1.3+</strong> up to and including <strong>PHP 7.4</strong> with support for the database you intend to use.</li>
<li><strong>PHP 7.2.0+</strong> up to and including <strong>PHP 8.3</strong> with support for the database you intend to use.</li>
<li>The following PHP modules are required:
<ul>
<li>json</li>
@@ -291,7 +291,7 @@
<p>The patch file package is for those wanting to update through the patch application, and should only be used by those who are comfortable with it.</p>
<p>The patch file is one solution for those with changes in to the phpBB core files and do not want to re-add them back to all the changed files. To use this you will need command line access to a standard UNIX type <strong>patch</strong> application. If you do not have access to such an application, but still want to use this update approach, we strongly recommend the <a href="#update_auto">Automatic update package</a> explained below. It is also the recommended update method.</p>
<p>The patch file is one solution for those with changes in to the phpBB core files and do not want to re-add them back to all the changed files. To use this you will need command line access to a standard UNIX type <strong>patch</strong> application. If you do not have access to such an application, but still want to use this update approach, we strongly recommend the <a href="#update_full">Full package update</a> explained above. It is also the recommended update method.</p>
<p>A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is <strong>3.3.0</strong>, you need the <code>phpBB-3.3.1-patch.zip/tar.bz2</code> file. Place the correct patch in the parent directory containing the phpBB core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: <code>patch -cl -d [PHPBB DIRECTORY] -p1 &lt; [PATCH NAME]</code> (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.</p>
@@ -299,11 +299,13 @@
<p>You should, of course, delete the patch file (or files) after use. As for the other update procedures, you should navigate to <code>/install/app.php/update</code>, select "Update database only" and submit the page after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number. If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
<a name="update_auto"></a><h3>4.iv. Automatic update package</h3>
<a name="update_advanced"></a><h3>4.iv. Advanced update package (Expert users)</h3>
<p>This update method is only recommended for installations with modifications to core phpBB files. This package detects changed files automatically and merges in changes if needed.</p>
<p>This update method should only be used for installations with modifications to core phpBB files. If you simply use Extensions or custom Styles and have not modified core files, please use the Full Package update.</p>
<p>The automatic update package will update the board from a given version to the latest version. A number of automatic update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is <strong>3.3.0</strong>, you need the <code>phpBB-3.3.0_to_3.3.1.zip/tar.bz2</code> file.</p>
<p>This package detects changed files and merges in changes if needed. Since this type of update has a potential to cause issues while upgrading, it should only be used by expert users.</p>
<p>The advanced update package will update the board from a given version to the latest version. A number of advanced update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is <strong>3.3.0</strong>, you need the <code>phpBB-3.3.0_to_3.3.1.zip/tar.bz2</code> file.</p>
<p>To perform the update, either follow the instructions from the <strong>Administration Control Panel-&gt;System</strong> Tab - this should point out that you are running an outdated version and will guide you through the update - or follow the instructions listed below.</p>

View File

@@ -104,7 +104,7 @@
<ul>
<li>Updates from phpBB 3.0 RC1, 3.1 RC1 and 3.2 RC1 to the latest version</li>
<li>Note: if using the <em>Automatic Update Package</em>, updates are supported from phpBB 3.0.2 onward. To update a pre-3.0.2 installation, first update to 3.0.2 and then update to the current version.</li>
<li>Note: if using the <em>Advanced Update Package</em>, updates are supported from phpBB 3.0.2 onward. To update a pre-3.0.2 installation, first update to 3.0.2 and then update to the current version.</li>
<li>Conversions from phpBB 2.0.x to the latest version</li>
<li>New installations of phpBB 3.2.x - only the latest released version</li>
<li>New installations of phpBB 3.3.x - only the latest released version</li>
@@ -265,7 +265,7 @@
<ul>
<li>Your server type/version, e.g. Apache 2.2.3, IIS 7, Sambar, etc.</li>
<li>PHP version and mode of operation, e.g. PHP 7.1.3 as a module, PHP 7.1.3 running as CGI, etc.</li>
<li>PHP version and mode of operation, e.g. PHP 7.2.0 as a module, PHP 7.2.7 running as CGI, etc.</li>
<li>DB type/version, e.g. MySQL 5.0.77, PostgreSQL 9.0.6, MSSQL Server 2000 (via ODBC), etc.</li>
</ul>
@@ -323,11 +323,11 @@
<div class="content">
<p>phpBB 3.3.x takes advantage of new features added in PHP 7.1. We recommend that you upgrade to the latest stable release of PHP to run phpBB. The minimum version required is PHP 7.1.3 and the maximum supported version is the latest stable version of PHP.</p>
<p>phpBB 3.3.x takes advantage of new features added in PHP 7.2. We recommend that you upgrade to the latest stable release of PHP to run phpBB. The minimum version required is PHP 7.2.0 and the maximum supported version is the latest stable version of PHP.</p>
<p>Please remember that running any application on a development (unstable, e.g. a beta release) version of PHP can lead to strange/unexpected results which may appear to be bugs in the application. Therefore, we recommend you upgrade to the newest stable version of PHP before running phpBB. If you are running a development version of PHP please check any bugs you find on a system running a stable release before submitting.</p>
<p>This board has been developed and tested under Linux and Windows (amongst others) running Apache using MySQLi 4.1.3, 4.x, 5.x, MariaDB 5.x, PostgreSQL 8.x, Oracle 8 and SQLite 3. Versions of PHP used range from 7.1.3 to 7.2.x and 7.3.x without issues.</p>
<p>This board has been developed and tested under Linux and Windows (amongst others) running Apache using MySQLi 4.1.3, 4.x, 5.x, MariaDB 5.x, PostgreSQL 8.x, Oracle 8 and SQLite 3. Versions of PHP used range from 7.2.0 to 7.4.x and 8.0.x to 8.3.x.</p>
<a name="phpsec"></a><h3>7.i. Notice on PHP security issues</h3>

55
phpBB/docs/codespaces.md Normal file
View File

@@ -0,0 +1,55 @@
## Using GitHub Codespaces with phpBB
phpBB includes support for [Codespaces](https://docs.github.com/en/codespaces), GitHub's cloud-based software development environment. This allows developers and contributors to run and modify phpBB on a consistent environment through a GitHub account without the need to set up a local web server.
Codespaces is completely web-based and does not require any code to be downloaded locally.
Features include:
* Automatic phpBB installation
* Access to [VS Code](https://docs.github.com/en/codespaces/the-githubdev-web-based-editor) through the web browser
* [Xdebug](https://github.com/xdebug/vscode-php-debug) pre-configured to step through the phpBB code and add breakpoints
* Full LAMP stack with database access
* Commit, push and test code entirely online
## How it works
### To run phpBB in Codespaces
* On the GitHub.com website, fork the `phpbb/phpbb` repository.
* Under the `Code` button, click the `Codespaces` tab and then the `+` button to create a new Codespace.
* It may take several minutes to configure and install phpBB on the newly created virtual machine. Once it is ready, a web-based VS Code instance will appear.
* Under the `Ports` tab, click on the local address under port 80 to open the private website for the new phpBB installation.
* By default, the login details for the new phpBB installation are `admin` / `adminadmin`
* Port 9003 is also open to allow Xdebug connections.
### To use the command line
* Click on the `Terminal` tab at the bottom of VS Code and make sure the `bash` window is selected in the right sidebar.
* The `workspaces/phpbb` directory contains the code from the workspace.
* Run `mysql -h 127.0.0.1 -u phpbb -p` to log into the MySQL database. The password is `phpbb` and the database name is `phpbb`.
* Tip: type `use phpbb;` after logging in to MySQL to switch to the correct database, then queries can be run for the phpBB tables.
### To debug code
* Click the `Run and Debug` tab on the left sidebar in VS Code, then click the green play button next to the `Debug phpBB` option.
* Tip: to confirm that Xdebug is working correctly, run `lsof -i :9003` on the command line. It should show that the port is listening for connections.
* In any of the files in the `phpBB/` directory, add a breakpoint by clicking just to the left of a line number in VS Code. Then, access the private website created on port 80 (found under the VS Code `Ports` tab) through the web browser and navigate to the page with a breakpoint. VS Code will automatically pause execution where the breakpoint is hit, and under the `Run and Debug` tab a variable list will be shown.
### To commit and push code
* To save a change made using VS Code on Codespaces, click the `Source Control` tab on the left sidebar in VS Code.
* To stage changes or discard changes, right click the file(s) and select the appropriate option.
* Type a commit message and select the `Commit and Push` option.
**Remember to stop a Codespace once you are finished with it.** GitHub provides all users with a limited number of free core hours per month. A Codespace can be stopped (or deleted) from the main repository page on GitHub.com.
## Technical information
All of the Codespaces configuration can be found in the `.devcontainer/` directory. The `devcontainer.json` holds the general environment information and `Dockerfile` contains the commands to set up the LAMP stack which enables phpBB to run.
`setup.sh` is used to install phpBB from the command line, using pre-determined details from `phpbb-config.yml`.
Codespaces can run without the configuration inside the `.vscode/` directory, however by including this no manual intervention is required to set the Xdebug IDE code to `VSCode` (inside `settings.json`) and `Debug phpBB` information, such as the path mapping from the Apache webroot to the `phpbb/phpBB` directory (inside `launch.json`).
This configuration information can be safely modified to change the development environment, followed by `Ctrl+Shift+P` in VS Code and selection of the `Full Rebuild Container` option.

View File

@@ -1304,6 +1304,7 @@ parent = prosilver</pre>
</pre></div>
<h4>PHP</h4>
<p><strong class="error">The use of PHP in HTML files has been deprecated in phpBB 3.3 and will be removed in phpBB 4.0.</strong></p>
<p>A contentious decision has seen the ability to include PHP within the template introduced. This is achieved by enclosing the PHP within relevant tags:</p>
<div class="codebox"><pre>

View File

@@ -94,6 +94,20 @@ acp_ext_list_enabled_title_after
* Since: 3.1.11-RC1
* Purpose: Add text after enabled extensions section title.
acp_ext_list_not_installed_name_after
===
* Location: adm/style/acp_ext_list.html
* Since: 3.3.14-RC1
* Changed: 3.3.14 Renamed from acp_ext_list_available_name_after
* Purpose: Add content after the name of not installed extensions in the list
acp_ext_list_not_installed_title_after
===
* Location: adm/style/acp_ext_list.html
* Since: 3.3.14-RC1
* Changed: 3.3.14 Renamed from acp_ext_list_available_title_after
* Purpose: Add text after not installed extensions section title.
acp_forums_custom_settings
===
* Location: adm/style/acp_forums.html
@@ -184,6 +198,24 @@ acp_group_types_prepend
* Since: 3.2.9-RC1
* Purpose: Add additional group type options to group settings (prepend the list)
acp_groups_add_user_options_after
===
* Location: adm/style/acp_groups.html
* Since: 3.3.13-RC1
* Purpose: Add content after options for adding user to group in the ACP
acp_groups_add_user_options_before
===
* Location: adm/style/acp_groups.html
* Since: 3.3.13-RC1
* Purpose: Add content before options for adding user to group in the ACP
acp_groups_add_user_usernames_before
===
* Location: adm/style/acp_groups.html
* Since: 3.3.13-RC1
* Purpose: Add content before usernames option for adding user to group in the ACP
acp_groups_find_username_append
===
* Location: adm/style/acp_groups.html
@@ -274,6 +306,12 @@ acp_overall_footer_after
* Since: 3.1.0-a1
* Purpose: Add content below the footer in the ACP
acp_overall_footer_body_after
===
* Location: adm/style/overall_footer.html
* Since: 3.3.10-RC1
* Purpose: Add content before the `</body>` tag but after the $SCRIPTS var, i.e. after the js scripts have been loaded
acp_overall_header_body_before
===
* Location: adm/style/overall_header.html
@@ -558,6 +596,12 @@ acp_simple_footer_after
* Since: 3.1.0-a1
* Purpose: Add content below the simple footer in the ACP
acp_simple_footer_body_after
===
* Location: adm/style/simple_footer.html
* Since: 3.3.10-RC1
* Purpose: Add content before the `</body>` tag but after the $SCRIPTS var, i.e. after the js scripts have been loaded
acp_simple_header_body_before
===
* Location: adm/style/simple_header.html
@@ -1585,6 +1629,20 @@ navbar_header_username_prepend
* Since: 3.1.0-RC1
* Purpose: Add text and HTMl before the username shown in the navbar.
notification_dropdown_footer_after
===
* Locations:
+ styles/prosilver/template/notification_dropdown.html
* Since: 3.3.12
* Purpose: Add content after notifications list footer.
notification_dropdown_footer_before
===
* Locations:
+ styles/prosilver/template/notification_dropdown.html
* Since: 3.3.12
* Purpose: Add content before notifications list footer.
overall_footer_after
===
* Locations:
@@ -2488,6 +2546,13 @@ ucp_agreement_terms_before
* Since: 3.1.0-b3
* Purpose: Add content before the terms of agreement text at user registration
ucp_footer_content_after
===
* Locations:
+ styles/prosilver/template/ucp_footer.html
* Since: 3.3.12-RC1
* Purpose: Add optional elements after tab panels content in UCP
ucp_friend_list_after
===
* Locations:
@@ -2502,6 +2567,27 @@ ucp_friend_list_before
* Since: 3.1.0-a4
* Purpose: Add optional elements before list of friends in UCP
ucp_group_settings_after
===
* Locations:
+ styles/prosilver/template/ucp_groups_manage.html
* Since: 3.3.13-RC1
* Purpose: Add content after options for managing a group in the UCP
ucp_group_settings_before
===
* Locations:
+ styles/prosilver/template/ucp_groups_manage.html
* Since: 3.3.13-RC1
* Purpose: Add content before options for managing a group in the UCP
ucp_header_content_before
===
* Locations:
+ styles/prosilver/template/ucp_header.html
* Since: 3.3.12-RC1
* Purpose: Add optional elements before tab panels content in UCP
ucp_header_friends_offline_username_full_append
===
* Locations:
@@ -2530,6 +2616,13 @@ ucp_header_friends_online_username_full_prepend
* Since: 3.2.10-RC1
* Purpose: Prepend information to online friends username in UCP
ucp_main_bookmarks_topic_title_after
===
* Locations:
+ styles/prosilver/template/ucp_main_bookmarks.html
* Since: 3.3.8-RC1
* Purpose: Add content right after the topic title viewing UCP bookmarks
ucp_main_front_user_activity_after
===
* Locations:
@@ -2558,6 +2651,41 @@ ucp_main_front_user_activity_prepend
* Since: 3.1.11-RC1
* Purpose: Add content before first user activity info viewing UCP front page
ucp_main_subscribed_topic_title_after
===
* Locations:
+ styles/prosilver/template/ucp_main_subscribed.html
* Since: 3.3.8-RC1
* Purpose: Add content right after the topic title viewing UCP subscribed topics
ucp_notifications_content_after
===
* Locations:
+ styles/prosilver/template/ucp_notifications.html
* Since: 3.3.12-RC1
* Purpose: Add optional elements after UCP notification options tab content
ucp_notifications_content_before
===
* Locations:
+ styles/prosilver/template/ucp_notifications.html
* Since: 3.3.12-RC1
* Purpose: Add optional elements before UCP notification options tab content
ucp_notifications_form_after
===
* Locations:
+ styles/prosilver/template/ucp_notifications.html
* Since: 3.3.12-RC1
* Purpose: Add optional elements after HTMP form in UCP notification options tab
ucp_notifications_form_before
===
* Locations:
+ styles/prosilver/template/ucp_notifications.html
* Since: 3.3.12-RC1
* Purpose: Add optional elements before HTMP form in UCP notificationoptions tab
ucp_pm_history_post_buttons_after
===
* Locations:
@@ -3132,6 +3260,13 @@ viewtopic_body_footer_before
* Purpose: Add content to the bottom of the View topic screen below the posts
and quick reply, directly before the jumpbox in Prosilver.
viewtopic_body_online_list_after
===
* Locations:
+ styles/prosilver/template/viewtopic_body.html
* Since: 3.3.12-RC1
* Purpose: Add content after the online users list
viewtopic_body_online_list_before
===
* Locations:
@@ -3278,6 +3413,13 @@ viewtopic_body_postrow_content_after
* Since: 3.2.4-RC1
* Purpose: Add content after the message content in topics views
viewtopic_body_postrow_content_before
===
* Locations:
+ styles/prosilver/template/viewtopic_body.html
* Since: 3.3.11-RC1
* Purpose: Add content before the message content in topics views
viewtopic_body_postrow_custom_fields_after
===
* Locations:

View File

@@ -1,7 +1,7 @@
# Sample lighttpd configuration file for phpBB.
# Global settings have been removed, copy them
# from your system's lighttpd.conf.
# Tested with lighttpd 1.4.35
# Tested with lighttpd 1.4.36
# If you want to use the X-Sendfile feature,
# uncomment the 'allow-x-send-file' for the fastcgi
@@ -13,7 +13,7 @@
# for the details on X-Sendfile.
# Load moules
server.modules += (
server.modules += (
"mod_access",
"mod_fastcgi",
"mod_rewrite",
@@ -32,12 +32,12 @@ $HTTP["host"] == "www.myforums.com" {
server.name = "www.myforums.com"
server.document-root = "/path/to/phpbb"
server.dir-listing = "disable"
index-file.names = ( "index.php", "index.htm", "index.html" )
accesslog.filename = "/var/log/lighttpd/access-www.myforums.com.log"
# Deny access to internal phpbb files.
$HTTP["url"] =~ "^/(config\.php|common\.php|cache|files|images/avatars/upload|includes|phpbb|store|vendor)" {
# Deny access to internal phpbb files.
$HTTP["url"] =~ "^/(config|common\.php|cache|files|images/avatars/upload|includes|phpbb|store|vendor)" {
url.access-deny = ( "" )
}
@@ -45,27 +45,28 @@ $HTTP["host"] == "www.myforums.com" {
$HTTP["url"] =~ "/\.svn|/\.git" {
url.access-deny = ( "" )
}
# Deny access to apache configuration files.
$HTTP["url"] =~ "/\.htaccess|/\.htpasswd|/\.htgroups" {
url.access-deny = ( "" )
}
# The following 3 lines will rewrite URLs passed through the front controller
# to not require app.php in the actual URL. In other words, a controller is
# by default accessed at /app.php/my/controller, but can also be accessed at
# /my/controller
url.rewrite-if-not-file = (
"^/(.*)$" => "/app.php/$1"
"^/install/(.*)$" => "/install/app.php/$1",
"^/(.*)$" => "/app.php/$1"
)
fastcgi.server = ( ".php" =>
fastcgi.server = ( ".php" =>
((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket",
"max-procs" => 4,
"idle-timeout" => 30,
"bin-environment" => (
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "10",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),

View File

@@ -63,7 +63,7 @@ server {
}
# Deny access to internal phpbb files.
location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
location ~ /(config|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
deny all;
# deny was ignored before 0.8.40 for connections over IPv6.
# Use internal directive to prohibit access on older versions.

View File

@@ -1000,29 +1000,45 @@ class acp_attachments
$result = $db->sql_query($sql);
$files_added = $space_taken = 0;
$error_msg = '';
$upload_row = [];
while ($row = $db->sql_fetchrow($result))
{
$post_row = $post_info[$upload_list[$row['attach_id']]];
$upload_row = [
'FILE_INFO' => $user->lang('UPLOADING_FILE_TO', $row['real_filename'], $upload_list[$row['attach_id']]),
];
$template->assign_block_vars('upload', array(
'FILE_INFO' => sprintf($user->lang['UPLOADING_FILE_TO'], $row['real_filename'], $post_row['post_id']),
'S_DENIED' => (!$auth->acl_get('f_attach', $post_row['forum_id'])) ? true : false,
'L_DENIED' => (!$auth->acl_get('f_attach', $post_row['forum_id'])) ? sprintf($user->lang['UPLOAD_DENIED_FORUM'], $forum_names[$row['forum_id']]) : '')
);
if (isset($post_info[$upload_list[$row['attach_id']]]))
{
$post_row = $post_info[$upload_list[$row['attach_id']]];
$upload_row = array_merge($upload_row, [
'S_DENIED' => !$auth->acl_get('f_attach', $post_row['forum_id']),
'L_DENIED' => !$auth->acl_get('f_attach', $post_row['forum_id']) ? $user->lang('UPLOAD_DENIED_FORUM', $forum_names[$row['forum_id']]) : '',
]);
}
else
{
$error_msg = $user->lang('UPLOAD_POST_NOT_EXIST', $row['real_filename'], $upload_list[$row['attach_id']]);
$upload_row = array_merge($upload_row, [
'ERROR_MSG' => $error_msg,
]);
};
if (!$auth->acl_get('f_attach', $post_row['forum_id']))
$template->assign_block_vars('upload', $upload_row);
if ($error_msg || !$auth->acl_get('f_attach', $post_row['forum_id']))
{
continue;
}
// Adjust attachment entry
$sql_ary = array(
$sql_ary = [
'in_message' => 0,
'is_orphan' => 0,
'poster_id' => $post_row['poster_id'],
'post_msg_id' => $post_row['post_id'],
'topic_id' => $post_row['topic_id'],
);
];
$sql = 'UPDATE ' . ATTACHMENTS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
@@ -1042,7 +1058,7 @@ class acp_attachments
$space_taken += $row['filesize'];
$files_added++;
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_ATTACH_FILEUPLOAD', false, array($post_row['post_id'], $row['real_filename']));
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_ATTACH_FILEUPLOAD', false, [$post_row['post_id'], $row['real_filename']]);
}
$db->sql_freeresult($result);
@@ -1054,9 +1070,9 @@ class acp_attachments
}
}
$template->assign_vars(array(
'S_ORPHAN' => true)
);
$template->assign_vars([
'S_ORPHAN' => true,
]);
$attachments_per_page = (int) $config['topics_per_page'];
@@ -1084,15 +1100,15 @@ class acp_attachments
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('orphan', array(
$template->assign_block_vars('orphan', [
'FILESIZE' => get_formatted_filesize($row['filesize']),
'FILETIME' => $user->format_date($row['filetime']),
'REAL_FILENAME' => utf8_basename($row['real_filename']),
'PHYSICAL_FILENAME' => utf8_basename($row['physical_filename']),
'ATTACH_ID' => $row['attach_id'],
'POST_IDS' => (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'mode=view&amp;id=' . $row['attach_id']))
);
'POST_ID' => (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'mode=view&amp;id=' . $row['attach_id']),
]);
}
$db->sql_freeresult($result);
@@ -1105,10 +1121,10 @@ class acp_attachments
$start
);
$template->assign_vars(array(
$template->assign_vars([
'TOTAL_FILES' => $num_files,
'TOTAL_SIZE' => get_formatted_filesize($total_size),
));
]);
break;

View File

@@ -86,7 +86,7 @@ class acp_bbcodes
$display_on_posting = $request->variable('display_on_posting', 0);
$bbcode_match = $request->variable('bbcode_match', '');
$bbcode_tpl = htmlspecialchars_decode($request->variable('bbcode_tpl', '', true), ENT_COMPAT);
$bbcode_tpl = html_entity_decode($request->variable('bbcode_tpl', '', true), ENT_COMPAT);
$bbcode_helpline = $request->variable('bbcode_helpline', '', true);
break;
}
@@ -110,6 +110,7 @@ class acp_bbcodes
);
$bbcode_tokens = array('TEXT', 'SIMPLETEXT', 'INTTEXT', 'IDENTIFIER', 'NUMBER', 'EMAIL', 'URL', 'LOCAL_URL', 'RELATIVE_URL', 'COLOR');
$bbcode_tokens = array_merge($bbcode_tokens, ['ALNUM', 'CHOICE', 'FLOAT', 'HASHMAP', 'INT', 'IP', 'IPPORT', 'IPV4', 'IPV6', 'MAP', 'RANGE', 'REGEXP', 'TIMESTAMP', 'UINT']);
/**
* Modify custom bbcode template data before we display the add/edit form

View File

@@ -386,7 +386,7 @@ class acp_board
'vars' => array(
'legend1' => 'ACP_SERVER_SETTINGS',
'gzip_compress' => array('lang' => 'ENABLE_GZIP', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'use_system_cron' => array('lang' => 'USE_SYSTEM_CRON', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'use_system_cron' => array('lang' => 'USE_SYSTEM_CRON', 'validate' => 'bool', 'type' => 'radio:enabled_disabled', 'explain' => true),
'legend2' => 'PATH_SETTINGS',
'enable_mod_rewrite' => array('lang' => 'MOD_REWRITE_ENABLE', 'validate' => 'bool', 'type' => 'custom', 'method' => 'enable_mod_rewrite', 'explain' => true),
@@ -720,8 +720,8 @@ class acp_board
$messenger->set_addresses($user->data);
$messenger->anti_abuse_headers($config, $user);
$messenger->assign_vars(array(
'USERNAME' => htmlspecialchars_decode($user->data['username'], ENT_COMPAT),
'MESSAGE' => htmlspecialchars_decode($request->variable('send_test_email_text', '', true), ENT_COMPAT),
'USERNAME' => html_entity_decode($user->data['username'], ENT_COMPAT),
'MESSAGE' => html_entity_decode($request->variable('send_test_email_text', '', true), ENT_COMPAT),
));
$messenger->send(NOTIFY_EMAIL);
@@ -921,7 +921,7 @@ class acp_board
*/
function select_acc_activation($selected_value, $value)
{
global $user, $config;
global $user, $config, $phpbb_dispatcher;
$act_ary = array(
'ACC_DISABLE' => array(true, USER_ACTIVATION_DISABLE),
@@ -931,6 +931,18 @@ class acp_board
);
$act_options = '';
/**
* Event to add and/or modify account activation configurations
*
* @event core.acp_account_activation_edit_add
* @var array act_ary Array of account activation methods
* @var string act_options Options available in the activation method
* @since 3.3.15-RC1
*/
$vars = ['act_ary', 'act_options'];
extract($phpbb_dispatcher->trigger_event('core.acp_account_activation_edit_add', compact($vars)));
foreach ($act_ary as $key => $data)
{
list($available, $value) = $data;

View File

@@ -205,7 +205,7 @@ class acp_email
$email_template = 'admin_send_email';
$template_data = array(
'CONTACT_EMAIL' => phpbb_get_board_contact($config, $phpEx),
'MESSAGE' => htmlspecialchars_decode($message, ENT_COMPAT),
'MESSAGE' => html_entity_decode($message, ENT_COMPAT),
);
$generate_log_entry = true;
@@ -252,7 +252,7 @@ class acp_email
$messenger->anti_abuse_headers($config, $user);
$messenger->subject(htmlspecialchars_decode($subject, ENT_COMPAT));
$messenger->subject(html_entity_decode($subject, ENT_COMPAT));
$messenger->set_mail_priority($priority);
$messenger->assign_vars($template_data);

View File

@@ -575,7 +575,7 @@ class acp_extensions
catch (exception_interface $e)
{
$message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
$this->template->assign_block_vars('disabled', array(
$this->template->assign_block_vars('not_installed', array(
'META_DISPLAY_NAME' => $this->user->lang('EXTENSION_INVALID_LIST', $name, $message),
'S_VERSIONCHECK' => false,
));
@@ -589,9 +589,9 @@ class acp_extensions
$block_vars['NAME'] = $name;
$block_vars['U_DETAILS'] = $this->u_action . '&amp;action=details&amp;ext_name=' . urlencode($name);
$this->template->assign_block_vars('disabled', $block_vars);
$this->template->assign_block_vars('not_installed', $block_vars);
$this->output_actions('disabled', array(
$this->output_actions('not_installed', array(
'ENABLE' => $this->u_action . '&amp;action=enable_pre&amp;ext_name=' . urlencode($name),
));
}

View File

@@ -396,7 +396,7 @@ class acp_groups
$allow_desc_urls = $request->variable('desc_parse_urls', false);
$allow_desc_smilies = $request->variable('desc_parse_smilies', false);
$submit_ary = array(
$submit_ary = [
'colour' => $request->variable('group_colour', ''),
'rank' => $request->variable('group_rank', 0),
'receive_pm' => isset($_REQUEST['group_receive_pm']) ? 1 : 0,
@@ -406,7 +406,13 @@ class acp_groups
'max_recipients' => $request->variable('group_max_recipients', 0),
'founder_manage' => 0,
'skip_auth' => $request->variable('group_skip_auth', 0),
);
// Initialize avatar data
'avatar' => $avatar_data['avatar'] ?? '',
'avatar_type' => $avatar_data['avatar_type'] ?? '',
'avatar_height' => $avatar_data['avatar_height'] ?? 0,
'avatar_width' => $avatar_data['avatar_width'] ?? 0,
];
if ($user->data['user_type'] == USER_FOUNDER)
{

View File

@@ -90,7 +90,7 @@ class acp_help_phpbb
if (!empty($response))
{
$decoded_response = json_decode(htmlspecialchars_decode($response, ENT_COMPAT), true);
$decoded_response = json_decode(html_entity_decode($response, ENT_COMPAT), true);
if ($decoded_response && isset($decoded_response['status']) && $decoded_response['status'] == 'ok')
{

View File

@@ -91,29 +91,43 @@ class acp_icons
{
$img_size = getimagesize($phpbb_root_path . $img_path . '/' . $path . $img);
if (!$img_size[0] || !$img_size[1] || strlen($img) > 255)
if ($img_size)
{
continue;
}
if (!$img_size[0] || !$img_size[1] || strlen($img) > 255)
{
continue;
}
// adjust the width and height to be lower than 128px while perserving the aspect ratio (for icons)
if ($mode == 'icons')
// adjust the width and height to be lower than 128px while perserving the aspect ratio (for icons)
if ($mode == 'icons')
{
if ($img_size[0] > 127 && $img_size[0] > $img_size[1])
{
$img_size[1] = (int) ($img_size[1] * (127 / $img_size[0]));
$img_size[0] = 127;
}
else if ($img_size[1] > 127)
{
$img_size[0] = (int) ($img_size[0] * (127 / $img_size[1]));
$img_size[1] = 127;
}
}
}
else
{
if ($img_size[0] > 127 && $img_size[0] > $img_size[1])
{
$img_size[1] = (int) ($img_size[1] * (127 / $img_size[0]));
$img_size[0] = 127;
}
else if ($img_size[1] > 127)
{
$img_size[0] = (int) ($img_size[0] * (127 / $img_size[1]));
$img_size[1] = 127;
}
// getimagesize can't read the dimensions of the SVG files
// https://bugs.php.net/bug.php?id=71517
$xml_get = simplexml_load_file($phpbb_root_path . $img_path . '/' . $path . $img);
$svg_width = intval($xml_get['width']);
$svg_height = intval($xml_get['height']);
}
$_images[$path . $img]['file'] = $path . $img;
$_images[$path . $img]['width'] = $img_size[0];
$_images[$path . $img]['height'] = $img_size[1];
// Give SVG a fallback on failure
$_images[$path . $img]['width'] = $img_size ? $img_size[0] : ($svg_width ?: 32);
$_images[$path . $img]['height'] = $img_size ? $img_size[1] : ($svg_height ?: 32);
}
}
unset($imglist);
@@ -536,7 +550,7 @@ class acp_icons
trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
}
if (!($pak_ary = @file($phpbb_root_path . $img_path . '/' . $pak)))
if (!($pak_ary = @file($phpbb_root_path . $img_path . '/' . utf8_basename($pak))))
{
trigger_error($user->lang['PAK_FILE_NOT_READABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
}
@@ -640,7 +654,7 @@ class acp_icons
{
$replace_sql = ($mode == 'smilies') ? $code : $img;
$sql = array(
$fields . '_url' => $img,
$fields . '_url' => utf8_substr(rawurlencode($img), 0, 50),
$fields . '_height' => (int) $height,
$fields . '_width' => (int) $width,
'display_on_posting' => (int) $display_on_posting,
@@ -662,7 +676,7 @@ class acp_icons
++$order;
$sql = array(
$fields . '_url' => $img,
$fields . '_url' => utf8_substr(rawurlencode($img), 0, 50),
$fields . '_height' => (int) $height,
$fields . '_width' => (int) $width,
$fields . '_order' => (int) $order,

View File

@@ -130,7 +130,7 @@ class acp_inactive
$messenger->anti_abuse_headers($config, $user);
$messenger->assign_vars(array(
'USERNAME' => htmlspecialchars_decode($row['username'], ENT_COMPAT))
'USERNAME' => html_entity_decode($row['username'], ENT_COMPAT))
);
$messenger->send(NOTIFY_EMAIL);
@@ -224,7 +224,7 @@ class acp_inactive
$messenger->anti_abuse_headers($config, $user);
$messenger->assign_vars(array(
'USERNAME' => htmlspecialchars_decode($row['username'], ENT_COMPAT),
'USERNAME' => html_entity_decode($row['username'], ENT_COMPAT),
'REGISTER_DATE' => $user->format_date($row['user_regdate'], false, true),
'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u=" . $row['user_id'] . '&k=' . $row['user_actkey'])
);
@@ -238,10 +238,11 @@ class acp_inactive
$messenger->save_queue();
// Add the remind state to the database
// Add the remind state to the database and increase activation expiration by one day
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_reminded = user_reminded + 1,
user_reminded_time = ' . time() . '
user_reminded_time = ' . time() . ',
user_actkey_expiration = ' . (int) $user::get_token_expiration() . '
WHERE ' . $db->sql_in_set('user_id', $user_ids);
$db->sql_query($sql);

View File

@@ -51,7 +51,7 @@ class acp_logs
$pagination = $phpbb_container->get('pagination');
// Delete entries if requested and able
if (($deletemark || $deleteall) && $auth->acl_get('a_clearlogs'))
if (($deleteall || ($deletemark && count($marked))) && $auth->acl_get('a_clearlogs'))
{
if (confirm_box(true))
{
@@ -108,7 +108,7 @@ class acp_logs
$sql_sort = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');
$keywords = $request->variable('keywords', '', true);
$keywords_param = !empty($keywords) ? '&amp;keywords=' . urlencode(htmlspecialchars_decode($keywords, ENT_COMPAT)) : '';
$keywords_param = !empty($keywords) ? '&amp;keywords=' . urlencode(html_entity_decode($keywords, ENT_COMPAT)) : '';
$l_title = $user->lang['ACP_' . strtoupper($mode) . '_LOGS'];
$l_title_explain = $user->lang['ACP_' . strtoupper($mode) . '_LOGS_EXPLAIN'];

View File

@@ -100,6 +100,20 @@ class acp_main
default:
$confirm = true;
$confirm_lang = 'CONFIRM_OPERATION';
/**
* Event to add confirm box for custom ACP quick actions
*
* @event core.acp_main_add_actions_confirm
* @var string id The module ID
* @var string mode The module mode
* @var string action Custom action type name
* @var boolean confirm Do we display the confirm box to run the custom action
* @var string confirm_lang Lang var name to display in confirm box
* @since 3.3.15-RC1
*/
$vars = ['id', 'mode', 'action', 'confirm', 'confirm_lang'];
extract($phpbb_dispatcher->trigger_event('core.acp_main_add_actions_confirm', compact($vars)));
}
if ($confirm)
@@ -423,6 +437,19 @@ class acp_main
trigger_error('PURGE_SESSIONS_SUCCESS');
}
break;
default:
/**
* Event to add custom ACP quick actions
*
* @event core.acp_main_add_actions
* @var string id The module ID
* @var string mode The module mode
* @var string action Custom action type name
* @since 3.3.15-RC1
*/
$vars = ['id', 'mode', 'action'];
extract($phpbb_dispatcher->trigger_event('core.acp_main_add_actions', compact($vars)));
}
}
}
@@ -430,11 +457,11 @@ class acp_main
// Version check
$user->add_lang('install');
if ($auth->acl_get('a_server') && version_compare(PHP_VERSION, '7.1.3', '<'))
if ($auth->acl_get('a_server') && version_compare(PHP_VERSION, '7.2.0', '<'))
{
$template->assign_vars(array(
'S_PHP_VERSION_OLD' => true,
'L_PHP_VERSION_OLD' => sprintf($user->lang['PHP_VERSION_OLD'], PHP_VERSION, '7.1.3', '<a href="https://www.phpbb.com/support/docs/en/3.3/ug/quickstart/requirements">', '</a>'),
'L_PHP_VERSION_OLD' => sprintf($user->lang['PHP_VERSION_OLD'], PHP_VERSION, '7.2.0', '<a href="https://www.phpbb.com/support/docs/en/3.3/ug/quickstart/requirements">', '</a>'),
));
}
@@ -454,6 +481,7 @@ class acp_main
$template->assign_vars(array(
'S_VERSION_UP_TO_DATE' => empty($updates_available),
'S_VERSION_UPGRADEABLE' => !empty($upgrades_available),
'S_VERSIONCHECK_FORCE' => (bool) $recheck,
'UPGRADE_INSTRUCTIONS' => !empty($upgrades_available) ? $user->lang('UPGRADE_INSTRUCTIONS', $upgrades_available['current'], $upgrades_available['announcement']) : false,
));
}
@@ -544,20 +572,13 @@ class acp_main
$files_per_day = $total_files;
}
if ($config['allow_attachments'] || $config['allow_pm_attach'])
{
$sql = 'SELECT COUNT(attach_id) AS total_orphan
FROM ' . ATTACHMENTS_TABLE . '
WHERE is_orphan = 1
AND filetime < ' . (time() - 3*60*60);
$result = $db->sql_query($sql);
$total_orphan = (int) $db->sql_fetchfield('total_orphan');
$db->sql_freeresult($result);
}
else
{
$total_orphan = false;
}
$sql = 'SELECT COUNT(attach_id) AS total_orphan
FROM ' . ATTACHMENTS_TABLE . '
WHERE is_orphan = 1
AND filetime < ' . (time() - 3*60*60);
$result = $db->sql_query($sql);
$total_orphan = (int) $db->sql_fetchfield('total_orphan');
$db->sql_freeresult($result);
$dbsize = get_database_size();
@@ -575,7 +596,6 @@ class acp_main
'DBSIZE' => $dbsize,
'UPLOAD_DIR_SIZE' => $upload_dir_size,
'TOTAL_ORPHAN' => $total_orphan,
'S_TOTAL_ORPHAN' => ($total_orphan === false) ? false : true,
'GZIP_COMPRESSION' => ($config['gzip_compress'] && @extension_loaded('zlib')) ? $user->lang['ON'] : $user->lang['OFF'],
'DATABASE_INFO' => $db->sql_server_info(),
'PHP_VERSION_INFO' => PHP_VERSION,

View File

@@ -179,7 +179,7 @@ class acp_permission_roles
$db->sql_freeresult($result);
// Make sure we only print out the error if we add the role or change it's name
if ($row && ($mode == 'add' || ($mode == 'edit' && $role_row['role_name'] != $role_name)))
if ($row && ($action == 'add' || ($action == 'edit' && $role_row['role_name'] != $role_name)))
{
trigger_error(sprintf($user->lang['ROLE_NAME_ALREADY_EXIST'], $role_name) . adm_back_link($this->u_action), E_USER_WARNING);
}

View File

@@ -55,8 +55,8 @@ class acp_ranks
$min_posts = ($special_rank) ? 0 : max(0, $request->variable('min_posts', 0));
$rank_image = $request->variable('rank_image', '');
// The rank image has to be a jpg, gif or png
if ($rank_image != '' && !preg_match('#(\.gif|\.png|\.jpg|\.jpeg)$#i', $rank_image))
// The rank image has to be a jp(e)g, gif, png, svg or webp
if ($rank_image != '' && !preg_match('#(\.gif|\.png|\.jpg|\.jpeg|\.svg|\.webp)$#i', $rank_image))
{
$rank_image = '';
}
@@ -70,7 +70,7 @@ class acp_ranks
'rank_title' => $rank_title,
'rank_special' => $special_rank,
'rank_min' => $min_posts,
'rank_image' => htmlspecialchars_decode($rank_image, ENT_COMPAT)
'rank_image' => html_entity_decode($rank_image, ENT_COMPAT)
);
/**

View File

@@ -239,7 +239,7 @@ class acp_search
function index($id, $mode)
{
global $db, $user, $template, $phpbb_log, $request;
global $db, $language, $user, $template, $phpbb_log, $request;
global $config, $phpbb_admin_path, $phpEx;
$action = $request->variable('action', '');
@@ -262,11 +262,6 @@ class acp_search
{
switch ($action)
{
case 'progress_bar':
$type = $request->variable('type', '');
$this->display_progress_bar($type);
break;
case 'delete':
$this->state[1] = 'delete';
break;
@@ -311,20 +306,35 @@ class acp_search
{
$this->state = array('');
$this->save_state();
trigger_error($error . adm_back_link($this->u_action) . $this->close_popup_js(), E_USER_WARNING);
trigger_error($error . adm_back_link($this->u_action), E_USER_WARNING);
}
}
else if ($submit)
{
meta_refresh(1, append_sid($this->u_action . '&amp;action=delete&amp;skip_rows=' . $post_counter . '&amp;hash=' . generate_link_hash('acp_search')));
$template->assign_vars([
'S_INDEX_PROGRESS' => true,
'INDEXING_TITLE' => $language->lang('DELETING_INDEX_IN_PROGRESS'),
'INDEXING_EXPLAIN' => $language->lang('DELETING_INDEX_IN_PROGRESS_EXPLAIN'),
'INDEXING_PROGRESS_BAR' => $this->get_post_index_progress($post_counter),
]);
$this->tpl_name = 'acp_search';
$this->page_title = 'ACP_SEARCH_INDEX';
return;
}
else
{
$starttime = microtime(true);
$row_count = 0;
while (still_on_time() && $post_counter <= $this->max_post_id)
while (still_on_time() && $post_counter < $this->max_post_id)
{
$sql = 'SELECT post_id, poster_id, forum_id
FROM ' . POSTS_TABLE . '
WHERE post_id >= ' . (int) ($post_counter + 1) . '
AND post_id <= ' . (int) ($post_counter + $this->batch_size);
$result = $db->sql_query($sql);
WHERE post_id > ' . (int) $post_counter . '
ORDER BY post_id ASC';
$result = $db->sql_query_limit($sql, $this->batch_size);
$ids = $posters = $forum_ids = array();
while ($row = $db->sql_fetchrow($result))
@@ -339,19 +349,31 @@ class acp_search
if (count($ids))
{
$this->search->index_remove($ids, $posters, $forum_ids);
$post_counter = $ids[count($ids) - 1];
}
$post_counter += $this->batch_size;
}
// save the current state
$this->save_state();
if ($post_counter <= $this->max_post_id)
if ($post_counter < $this->max_post_id)
{
$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) . $user->lang('SEARCH_INDEX_DELETE_REDIRECT_RATE', $rows_per_second));
$template->assign_vars([
'S_INDEX_PROGRESS' => true,
'INDEXING_TITLE' => $language->lang('DELETING_INDEX_IN_PROGRESS'),
'INDEXING_EXPLAIN' => $language->lang('DELETING_INDEX_IN_PROGRESS_EXPLAIN'),
'INDEXING_PROGRESS' => $language->lang('SEARCH_INDEX_DELETE_REDIRECT', $row_count, $post_counter),
'INDEXING_RATE' => $language->lang('SEARCH_INDEX_DELETE_REDIRECT_RATE', $rows_per_second),
'INDEXING_PROGRESS_BAR' => $this->get_post_index_progress($post_counter),
]);
$this->tpl_name = 'acp_search';
$this->page_title = 'ACP_SEARCH_INDEX';
return;
}
}
@@ -361,7 +383,7 @@ class acp_search
$this->save_state();
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_SEARCH_INDEX_REMOVED', false, array($name));
trigger_error($user->lang['SEARCH_INDEX_REMOVED'] . adm_back_link($this->u_action) . $this->close_popup_js());
trigger_error($user->lang['SEARCH_INDEX_REMOVED'] . adm_back_link($this->u_action));
break;
case 'create':
@@ -372,9 +394,25 @@ class acp_search
{
$this->state = array('');
$this->save_state();
trigger_error($error . adm_back_link($this->u_action) . $this->close_popup_js(), E_USER_WARNING);
trigger_error($error . adm_back_link($this->u_action), E_USER_WARNING);
}
}
else if ($submit)
{
meta_refresh(1, append_sid($this->u_action . '&amp;action=create&amp;skip_rows=' . $post_counter . '&amp;hash=' . generate_link_hash('acp_search')));
$template->assign_vars([
'S_INDEX_PROGRESS' => true,
'INDEXING_TITLE' => $language->lang('INDEXING_IN_PROGRESS'),
'INDEXING_EXPLAIN' => $language->lang('INDEXING_IN_PROGRESS_EXPLAIN'),
'INDEXING_PROGRESS_BAR' => $this->get_post_index_progress($post_counter),
]);
$this->tpl_name = 'acp_search';
$this->page_title = 'ACP_SEARCH_INDEX';
return;
}
else
{
$sql = 'SELECT forum_id, enable_indexing
@@ -389,13 +427,13 @@ class acp_search
$starttime = microtime(true);
$row_count = 0;
while (still_on_time() && $post_counter <= $this->max_post_id)
while (still_on_time() && $post_counter < $this->max_post_id)
{
$sql = 'SELECT post_id, post_subject, post_text, poster_id, forum_id
FROM ' . POSTS_TABLE . '
WHERE post_id >= ' . (int) ($post_counter + 1) . '
AND post_id <= ' . (int) ($post_counter + $this->batch_size);
$result = $db->sql_query($sql);
WHERE post_id > ' . (int) $post_counter . '
ORDER BY post_id ASC';
$result = $db->sql_query_limit($sql, $this->batch_size);
$buffer = $db->sql_buffer_nested_transactions();
@@ -416,13 +454,12 @@ class acp_search
$this->search->index('post', $row['post_id'], $row['post_text'], $row['post_subject'], $row['poster_id'], $row['forum_id']);
}
$row_count++;
$post_counter = $row['post_id'];
}
if (!$buffer)
{
$db->sql_freeresult($result);
}
$post_counter += $this->batch_size;
}
// save the current state
$this->save_state();
@@ -434,12 +471,24 @@ class acp_search
$this->search->tidy();
$config['num_posts'] = $num_posts;
if ($post_counter <= $this->max_post_id)
if ($post_counter < $this->max_post_id)
{
$totaltime = microtime(true) - $starttime;
$rows_per_second = $row_count / $totaltime;
meta_refresh(1, append_sid($this->u_action . '&amp;action=create&amp;skip_rows=' . $post_counter . '&amp;hash=' . generate_link_hash('acp_search')));
trigger_error($user->lang('SEARCH_INDEX_CREATE_REDIRECT', (int) $row_count, $post_counter) . $user->lang('SEARCH_INDEX_CREATE_REDIRECT_RATE', $rows_per_second));
$template->assign_vars([
'S_INDEX_PROGRESS' => true,
'INDEXING_TITLE' => $language->lang('INDEXING_IN_PROGRESS'),
'INDEXING_EXPLAIN' => $language->lang('INDEXING_IN_PROGRESS_EXPLAIN'),
'INDEXING_PROGRESS' => $language->lang('SEARCH_INDEX_CREATE_REDIRECT', $row_count, $post_counter),
'INDEXING_RATE' => $language->lang('SEARCH_INDEX_CREATE_REDIRECT_RATE', $rows_per_second),
'INDEXING_PROGRESS_BAR' => $this->get_post_index_progress($post_counter),
]);
$this->tpl_name = 'acp_search';
$this->page_title = 'ACP_SEARCH_INDEX';
return;
}
}
@@ -449,7 +498,7 @@ class acp_search
$this->save_state();
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_SEARCH_INDEX_CREATED', false, array($name));
trigger_error($user->lang['SEARCH_INDEX_CREATED'] . adm_back_link($this->u_action) . $this->close_popup_js());
trigger_error($user->lang['SEARCH_INDEX_CREATED'] . adm_back_link($this->u_action));
break;
}
}
@@ -518,8 +567,6 @@ class acp_search
$template->assign_vars(array(
'S_INDEX' => true,
'U_ACTION' => $this->u_action . '&amp;hash=' . generate_link_hash('acp_search'),
'U_PROGRESS_BAR' => append_sid("{$phpbb_admin_path}index.$phpEx", "i=$id&amp;mode=$mode&amp;action=progress_bar"),
'UA_PROGRESS_BAR' => addslashes(append_sid("{$phpbb_admin_path}index.$phpEx", "i=$id&amp;mode=$mode&amp;action=progress_bar")),
));
if (isset($this->state[1]))
@@ -527,41 +574,11 @@ class acp_search
$template->assign_vars(array(
'S_CONTINUE_INDEXING' => $this->state[1],
'U_CONTINUE_INDEXING' => $this->u_action . '&amp;action=' . $this->state[1] . '&amp;hash=' . generate_link_hash('acp_search'),
'L_CONTINUE' => ($this->state[1] == 'create') ? $user->lang['CONTINUE_INDEXING'] : $user->lang['CONTINUE_DELETING_INDEX'],
'L_CONTINUE_EXPLAIN' => ($this->state[1] == 'create') ? $user->lang['CONTINUE_INDEXING_EXPLAIN'] : $user->lang['CONTINUE_DELETING_INDEX_EXPLAIN'])
);
'CONTINUE_PROGRESS' => (isset($this->state[2]) && $this->state[2] > 0) ? $this->get_post_index_progress($this->state[2]) : $this->get_post_index_progress(0)
));
}
}
function display_progress_bar($type)
{
global $template, $user;
$l_type = ($type == 'create') ? 'INDEXING_IN_PROGRESS' : 'DELETING_INDEX_IN_PROGRESS';
adm_page_header($user->lang[$l_type]);
$template->set_filenames(array(
'body' => 'progress_bar.html')
);
$template->assign_vars(array(
'L_PROGRESS' => $user->lang[$l_type],
'L_PROGRESS_EXPLAIN' => $user->lang[$l_type . '_EXPLAIN'])
);
adm_page_footer();
}
function close_popup_js()
{
return "<script type=\"text/javascript\">\n" .
"// <![CDATA[\n" .
" close_waitscreen = 1;\n" .
"// ]]>\n" .
"</script>\n";
}
function get_search_types()
{
global $phpbb_extension_manager;
@@ -588,6 +605,41 @@ class acp_search
return $max_post_id;
}
/**
* Get progress stats of search index with HTML progress bar.
*
* @param int $post_counter Post ID of last post indexed.
* @return array Returns array with progress bar data.
*/
function get_post_index_progress(int $post_counter)
{
global $db, $language;
$sql = 'SELECT COUNT(post_id) as done_count
FROM ' . POSTS_TABLE . '
WHERE post_id <= ' . (int) $post_counter;
$result = $db->sql_query($sql);
$done_count = (int) $db->sql_fetchfield('done_count');
$db->sql_freeresult($result);
$sql = 'SELECT COUNT(post_id) as remain_count
FROM ' . POSTS_TABLE . '
WHERE post_id > ' . (int) $post_counter;
$result = $db->sql_query($sql);
$remain_count = (int) $db->sql_fetchfield('remain_count');
$db->sql_freeresult($result);
$total_count = $done_count + $remain_count;
$percent = ($done_count / $total_count) * 100;
return [
'VALUE' => $done_count,
'TOTAL' => $total_count,
'PERCENTAGE' => $percent,
'REMAINING' => $remain_count,
];
}
function save_state($state = false)
{
global $config;

View File

@@ -385,14 +385,18 @@ class acp_users
$user_actkey = empty($user_activation_key) ? $user_actkey : $user_activation_key;
}
if ($user_row['user_type'] == USER_NORMAL || empty($user_activation_key))
{
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_actkey = '" . $db->sql_escape($user_actkey) . "'
WHERE user_id = $user_id";
$db->sql_query($sql);
}
// Always update actkey even if same and also update actkey expiration to 24 hours from now
$sql_ary = [
'user_actkey' => $user_actkey,
'user_actkey_expiration' => $user::get_token_expiration(),
];
$sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . (int) $user_id;
$db->sql_query($sql);
// Start sending email
$messenger = new messenger(false);
$messenger->template($email_template, $user_row['user_lang']);
@@ -402,8 +406,8 @@ class acp_users
$messenger->anti_abuse_headers($config, $user);
$messenger->assign_vars(array(
'WELCOME_MSG' => htmlspecialchars_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), ENT_COMPAT),
'USERNAME' => htmlspecialchars_decode($user_row['username'], ENT_COMPAT),
'WELCOME_MSG' => html_entity_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), ENT_COMPAT),
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k=$user_actkey")
);
@@ -466,7 +470,7 @@ class acp_users
$messenger->anti_abuse_headers($config, $user);
$messenger->assign_vars(array(
'USERNAME' => htmlspecialchars_decode($user_row['username'], ENT_COMPAT))
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT))
);
$messenger->send(NOTIFY_EMAIL);
@@ -1084,7 +1088,7 @@ class acp_users
$s_action_options .= '<option value="' . $value . '">' . $user->lang['USER_ADMIN_' . $lang] . '</option>';
}
$last_active = (!empty($user_row['session_time'])) ? $user_row['session_time'] : $user_row['user_lastvisit'];
$last_active = $user_row['user_last_active'] ?: ($user_row['session_time'] ?? 0);
$inactive_reason = '';
if ($user_row['user_type'] == USER_INACTIVE)
@@ -1128,7 +1132,7 @@ class acp_users
$db->sql_freeresult($result);
$template->assign_vars(array(
'L_NAME_CHARS_EXPLAIN' => $user->lang($config['allow_name_chars'] . '_EXPLAIN', $user->lang('CHARACTERS', (int) $config['min_name_chars']), $user->lang('CHARACTERS', (int) $config['max_name_chars'])),
'L_NAME_CHARS_EXPLAIN' => $user->lang($config['allow_name_chars'] . '_EXPLAIN', $user->lang('CHARACTERS_XY', (int) $config['min_name_chars']), $user->lang('CHARACTERS_XY', (int) $config['max_name_chars'])),
'L_CHANGE_PASSWORD_EXPLAIN' => $user->lang($config['pass_complex'] . '_EXPLAIN', $user->lang('CHARACTERS', (int) $config['min_pass_chars'])),
'L_POSTS_IN_QUEUE' => $user->lang('NUM_POSTS_IN_QUEUE', $user_row['posts_in_queue']),
'S_FOUNDER' => ($user->data['user_type'] == USER_FOUNDER) ? true : false,
@@ -2515,7 +2519,7 @@ class acp_users
'U_EDIT_GROUP' => append_sid("{$phpbb_admin_path}index.$phpEx", "i=groups&amp;mode=manage&amp;action=edit&amp;u=$user_id&amp;g={$data['group_id']}&amp;back_link=acp_users_groups"),
'U_DEFAULT' => $this->u_action . "&amp;action=default&amp;u=$user_id&amp;g=" . $data['group_id'] . '&amp;hash=' . generate_link_hash('acp_users'),
'U_DEMOTE_PROMOTE' => $this->u_action . '&amp;action=' . (($data['group_leader']) ? 'demote' : 'promote') . "&amp;u=$user_id&amp;g=" . $data['group_id'] . '&amp;hash=' . generate_link_hash('acp_users'),
'U_DELETE' => $this->u_action . "&amp;action=delete&amp;u=$user_id&amp;g=" . $data['group_id'],
'U_DELETE' => count($id_ary) > 1 ? $this->u_action . "&amp;action=delete&amp;u=$user_id&amp;g=" . $data['group_id'] : '',
'U_APPROVE' => ($group_type == 'pending') ? $this->u_action . "&amp;action=approve&amp;u=$user_id&amp;g=" . $data['group_id'] : '',
'GROUP_NAME' => $group_helper->get_name($data['group_name']),

View File

@@ -95,7 +95,7 @@ class auth_admin extends \phpbb\auth\auth
}
else
{
$hold_ary = ($group_id !== false) ? $this->acl_group_raw_data($group_id, $auth_option . '%', ($scope == 'global') ? 0 : false) : $this->$acl_user_function($user_id, $auth_option . '%', ($scope == 'global') ? 0 : false);
$hold_ary = ($group_id !== false) ? $this->acl_group_raw_data($group_id, $auth_option . '%') : $this->$acl_user_function($user_id, $auth_option . '%', ($scope == 'global') ? 0 : false);
}
}

View File

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

View File

@@ -168,8 +168,14 @@ class diff
$final = $edit->final;
// We can simplify one case where the array is usually supposed to be empty...
if (count($orig) == 1 && trim($orig[0]) === '') $orig = array();
if (count($final) == 1 && trim($final[0]) === '') $final = array();
if (is_array($orig) && count($orig) == 1 && trim($orig[0]) === '')
{
$orig = array();
}
if (is_array($final) && count($final) == 1 && trim($final[0]) === '')
{
$final = array();
}
if (!$orig && !$final)
{

View File

@@ -107,9 +107,17 @@ function phpbb_gmgetdate($time = false)
}
// getdate() interprets timestamps in local time.
// What follows uses the fact that getdate() and
// date('Z') balance each other out.
return getdate($time - date('Z'));
// So use UTC timezone temporarily to get UTC date info array.
$current_timezone = date_default_timezone_get();
// Set UTC timezone and get respective date info
date_default_timezone_set('UTC');
$date_info = getdate($time);
// Restore timezone back
date_default_timezone_set($current_timezone);
return $date_info;
}
/**
@@ -263,49 +271,68 @@ function phpbb_version_compare($version1, $version2, $operator = null)
// functions used for building option fields
/**
* Pick a language, any language ...
*/
function language_select($default = '')
* Pick a language, any language ...
*
* @param string $default Language ISO code to be selected by default in the dropdown list
* @param array $langdata Language data in format of array(array('lang_iso' => string, lang_local_name => string), ...)
*
* @return string HTML options for language selection dropdown list.
*/
function language_select($default = '', array $langdata = [])
{
global $db;
$sql = 'SELECT lang_iso, lang_local_name
FROM ' . LANG_TABLE . '
ORDER BY lang_english_name';
$result = $db->sql_query($sql);
if (empty($langdata))
{
$sql = 'SELECT lang_iso, lang_local_name
FROM ' . LANG_TABLE . '
ORDER BY lang_english_name';
$result = $db->sql_query($sql);
$langdata = (array) $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
}
$lang_options = '';
while ($row = $db->sql_fetchrow($result))
foreach ($langdata as $row)
{
$selected = ($row['lang_iso'] == $default) ? ' selected="selected"' : '';
$lang_options .= '<option value="' . $row['lang_iso'] . '"' . $selected . '>' . $row['lang_local_name'] . '</option>';
}
$db->sql_freeresult($result);
return $lang_options;
}
/**
* Pick a template/theme combo,
*/
function style_select($default = '', $all = false)
* Pick a template/theme combo
*
* @param string $default Style ID to be selected by default in the dropdown list
* @param bool $all Flag indicating if all styles data including inactive ones should be fetched
* @param array $styledata Style data in format of array(array('style_id' => int, style_name => string), ...)
*
* @return string HTML options for style selection dropdown list.
*/
function style_select($default = '', $all = false, array $styledata = [])
{
global $db;
$sql_where = (!$all) ? 'WHERE style_active = 1 ' : '';
$sql = 'SELECT style_id, style_name
FROM ' . STYLES_TABLE . "
$sql_where
ORDER BY style_name";
$result = $db->sql_query($sql);
if (empty($styledata))
{
$sql_where = (!$all) ? 'WHERE style_active = 1 ' : '';
$sql = 'SELECT style_id, style_name
FROM ' . STYLES_TABLE . "
$sql_where
ORDER BY style_name";
$result = $db->sql_query($sql);
$styledata = (array) $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
}
$style_options = '';
while ($row = $db->sql_fetchrow($result))
foreach ($styledata as $row)
{
$selected = ($row['style_id'] == $default) ? ' selected="selected"' : '';
$style_options .= '<option value="' . $row['style_id'] . '"' . $selected . '>' . $row['style_name'] . '</option>';
}
$db->sql_freeresult($result);
return $style_options;
}
@@ -1795,6 +1822,31 @@ function redirect($url, $return = false, $disable_cd_check = false)
exit;
}
/**
* Returns the install redirect path for phpBB.
*
* @param string $phpbb_root_path The root path of the phpBB installation.
* @param string $phpEx The file extension of php files, e.g., "php".
* @return string The install redirect path.
*/
function phpbb_get_install_redirect(string $phpbb_root_path, string $phpEx): string
{
$script_name = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : getenv('REQUEST_URI');
if (!$script_name)
{
$script_name = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
}
// Add trailing dot to prevent dirname() from returning parent directory if $script_name is a directory
$script_name = substr($script_name, -1) === '/' ? $script_name . '.' : $script_name;
// $phpbb_root_path accounts for redirects from e.g. /adm
$script_path = trim(dirname($script_name)) . '/' . $phpbb_root_path . 'install/app.' . $phpEx;
// Replace any number of consecutive backslashes and/or slashes with a single slash
// (could happen on some proxy setups and/or Windows servers)
return preg_replace('#[\\\\/]{2,}#', '/', $script_path);
}
/**
* Re-Apply session id after page reloads
*/
@@ -2899,7 +2951,7 @@ function get_censor_preg_expression($word)
/**
* Returns the first block of the specified IPv6 address and as many additional
* ones as specified in the length paramater.
* ones as specified in the length parameter.
* If length is zero, then an empty string is returned.
* If length is greater than 3 the complete IP will be returned
*/
@@ -2910,6 +2962,14 @@ function short_ipv6($ip, $length)
return '';
}
// Handle IPv4 embedded IPv6 addresses
if (preg_match('/(?:\d{1,3}\.){3}\d{1,3}$/i', $ip))
{
$binary_ip = inet_pton($ip);
$ip_v6 = $binary_ip ? inet_ntop($binary_ip) : $ip;
$ip = $ip_v6 ?: $ip;
}
// extend IPv6 addresses
$blocks = substr_count($ip, ':') + 1;
if ($blocks < 9)
@@ -2976,8 +3036,16 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
global $phpbb_root_path, $msg_title, $msg_long_text, $phpbb_log;
global $phpbb_container;
// https://www.php.net/manual/en/language.operators.errorcontrol.php
// error_reporting() return a different error code inside the error handler after php 8.0
$suppresed = E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE;
if (PHP_VERSION_ID < 80000)
{
$suppresed = 0;
}
// Do not display notices if we suppress them via @
if (error_reporting() == 0 && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE)
if (error_reporting() == $suppresed && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE)
{
return;
}
@@ -3676,15 +3744,11 @@ function phpbb_get_avatar($row, $alt, $ignore_config = false, $lazy = false)
{
if ($lazy)
{
// Determine board url - we may need it later
$board_url = generate_board_url() . '/';
// This path is sent with the base template paths in the assign_vars()
// call below. We need to correct it in case we are accessing from a
// controller because the web paths will be incorrect otherwise.
$phpbb_path_helper = $phpbb_container->get('path_helper');
$corrected_path = $phpbb_path_helper->get_web_root_path();
$web_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? $board_url : $corrected_path;
$web_path = $phpbb_path_helper->get_web_root_path();
$theme = "{$web_path}styles/" . rawurlencode($user->style['style_path']) . '/theme';
@@ -3855,8 +3919,9 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
}
}
$forum_id = $request->variable('f', 0);
$topic_id = $request->variable('t', 0);
// Negative forum and topic IDs are not allowed
$forum_id = max(0, $request->variable('f', 0));
$topic_id = max(0, $request->variable('t', 0));
$s_feed_news = false;
@@ -3871,15 +3936,12 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
$db->sql_freeresult($result);
}
// Determine board url - we may need it later
$board_url = generate_board_url() . '/';
// This path is sent with the base template paths in the assign_vars()
// call below. We need to correct it in case we are accessing from a
// controller because the web paths will be incorrect otherwise.
/* @var $phpbb_path_helper \phpbb\path_helper */
$phpbb_path_helper = $phpbb_container->get('path_helper');
$corrected_path = $phpbb_path_helper->get_web_root_path();
$web_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? $board_url : $corrected_path;
$web_path = $phpbb_path_helper->get_web_root_path();
// Send a proper content-language to the output
$user_lang = $user->lang['USER_LANG'];
@@ -3982,7 +4044,7 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
'_SID' => $_SID,
'SESSION_ID' => $user->session_id,
'ROOT_PATH' => $web_path,
'BOARD_URL' => $board_url,
'BOARD_URL' => generate_board_url() . '/',
'L_LOGIN_LOGOUT' => $l_login_logout,
'L_INDEX' => ($config['board_index_text'] !== '') ? $config['board_index_text'] : $user->lang['FORUM_INDEX'],
@@ -4007,7 +4069,7 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
'U_SEARCH_UNANSWERED' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unanswered'),
'U_SEARCH_UNREAD' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unreadposts'),
'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_DELETE_COOKIES' => $controller_helper->route('phpbb_ucp_delete_cookies_controller'),
'U_CONTACT_US' => ($config['contact_admin_form_enable'] && $config['email_enable']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=contactadmin') : '',
'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'),
@@ -4069,7 +4131,7 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
'T_FONT_AWESOME_LINK' => !empty($config['allow_cdn']) && !empty($config['load_font_awesome_url']) ? $config['load_font_awesome_url'] : "{$web_path}assets/css/font-awesome.min.css?assets_version=" . $config['assets_version'],
'T_JQUERY_LINK' => !empty($config['allow_cdn']) && !empty($config['load_jquery_url']) ? $config['load_jquery_url'] : "{$web_path}assets/javascript/jquery-3.6.0.min.js?assets_version=" . $config['assets_version'],
'T_JQUERY_LINK' => !empty($config['allow_cdn']) && !empty($config['load_jquery_url']) ? $config['load_jquery_url'] : "{$web_path}assets/javascript/jquery-3.7.1.min.js?assets_version=" . $config['assets_version'],
'S_ALLOW_CDN' => !empty($config['allow_cdn']),
'S_COOKIE_NOTICE' => !empty($config['cookie_notice']),

View File

@@ -178,7 +178,7 @@ function adm_page_footer($copyright_html = true)
'TRANSLATION_INFO' => (!empty($user->lang['TRANSLATION_INFO'])) ? $user->lang['TRANSLATION_INFO'] : '',
'S_COPYRIGHT_HTML' => $copyright_html,
'CREDIT_LINE' => $user->lang('POWERED_BY', '<a href="https://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Limited'),
'T_JQUERY_LINK' => !empty($config['allow_cdn']) && !empty($config['load_jquery_url']) ? $config['load_jquery_url'] : "{$phpbb_root_path}assets/javascript/jquery-3.6.0.min.js",
'T_JQUERY_LINK' => !empty($config['allow_cdn']) && !empty($config['load_jquery_url']) ? $config['load_jquery_url'] : "{$phpbb_root_path}assets/javascript/jquery-3.7.1.min.js",
'S_ALLOW_CDN' => !empty($config['allow_cdn']),
'VERSION' => $config['version'])
);

View File

@@ -479,7 +479,7 @@ function copy_forum_permissions($src_forum_id, $dest_forum_ids, $clear_dest_perm
/**
* Get physical file listing
*/
function filelist($rootdir, $dir = '', $type = 'gif|jpg|jpeg|png')
function filelist($rootdir, $dir = '', $type = 'gif|jpg|jpeg|png|svg|webp')
{
$matches = array($dir => array());

View File

@@ -759,7 +759,7 @@ function phpbb_http_login($param)
{
if ($request->is_set($k, \phpbb\request\request_interface::SERVER))
{
$username = htmlspecialchars_decode($request->server($k), ENT_COMPAT);
$username = html_entity_decode($request->server($k), ENT_COMPAT);
break;
}
}
@@ -769,7 +769,7 @@ function phpbb_http_login($param)
{
if ($request->is_set($k, \phpbb\request\request_interface::SERVER))
{
$password = htmlspecialchars_decode($request->server($k), ENT_COMPAT);
$password = html_entity_decode($request->server($k), ENT_COMPAT);
break;
}
}

View File

@@ -289,7 +289,27 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list
*/
function bump_topic_allowed($forum_id, $topic_bumped, $last_post_time, $topic_poster, $last_topic_poster)
{
global $config, $auth, $user;
global $config, $auth, $user, $phpbb_dispatcher;
/**
* Event to run code before the topic bump checks
*
* @event core.bump_topic_allowed_before
* @var int forum_id ID of the forum
* @var int topic_bumped Flag indicating if the topic was already bumped (0/1)
* @var int last_post_time The time of the topic last post
* @var int topic_poster User ID of the topic author
* @var int last_topic_poster User ID of the topic last post author
* @since 3.3.14-RC1
*/
$vars = [
'forum_id',
'topic_bumped',
'last_post_time',
'topic_poster',
'last_topic_poster',
];
extract($phpbb_dispatcher->trigger_event('core.bump_topic_allowed_before', compact($vars)));
// Check permission and make sure the last post was not already bumped
if (!$auth->acl_get('f_bump', $forum_id) || $topic_bumped)
@@ -312,6 +332,28 @@ function bump_topic_allowed($forum_id, $topic_bumped, $last_post_time, $topic_po
return false;
}
/**
* Event to run code after the topic bump checks
*
* @event core.bump_topic_allowed_after
* @var int forum_id ID of the forum
* @var int topic_bumped Flag indicating if the topic was already bumped (0/1)
* @var int last_post_time The time of the topic last post
* @var int topic_poster User ID of the topic author
* @var int last_topic_poster User ID of the topic last post author
* @var int bump_time Bump time range
* @since 3.3.14-RC1
*/
$vars = [
'forum_id',
'topic_bumped',
'last_post_time',
'topic_poster',
'last_topic_poster',
'bump_time',
];
extract($phpbb_dispatcher->trigger_event('core.bump_topic_allowed_after', compact($vars)));
// A bump time of 0 will completely disable the bump feature... not intended but might be useful.
return $bump_time;
}
@@ -320,124 +362,100 @@ function bump_topic_allowed($forum_id, $topic_bumped, $last_post_time, $topic_po
* Generates a text with approx. the specified length which contains the specified words and their context
*
* @param string $text The full text from which context shall be extracted
* @param string $words An array of words which should be contained in the result, has to be a valid part of a PCRE pattern (escape with preg_quote!)
* @param array $words An array of words which should be contained in the result, has to be a valid part of a PCRE pattern (escape with preg_quote!)
* @param int $length The desired length of the resulting text, however the result might be shorter or longer than this value
*
* @return string Context of the specified words separated by "..."
*/
function get_context($text, $words, $length = 400)
function get_context(string $text, array $words, int $length = 400): string
{
// first replace all whitespaces with single spaces
$text = preg_replace('/ +/', ' ', strtr($text, "\t\n\r\x0C ", ' '));
// we need to turn the entities back into their original form, to not cut the message in between them
$entities = array('&lt;', '&gt;', '&#91;', '&#93;', '&#46;', '&#58;', '&#058;');
$characters = array('<', '>', '[', ']', '.', ':', ':');
$text = str_replace($entities, $characters, $text);
$word_indizes = array();
if (count($words))
if ($length <= 0)
{
$match = '';
// find the starting indizes of all words
foreach ($words as $word)
{
if ($word)
{
if (preg_match('#(?:[^\w]|^)(' . $word . ')(?:[^\w]|$)#i', $text, $match))
{
if (empty($match[1]))
{
continue;
}
$pos = utf8_strpos($text, $match[1]);
if ($pos !== false)
{
$word_indizes[] = $pos;
}
}
}
}
unset($match);
if (count($word_indizes))
{
$word_indizes = array_unique($word_indizes);
sort($word_indizes);
$wordnum = count($word_indizes);
// number of characters on the right and left side of each word
$sequence_length = (int) ($length / (2 * $wordnum)) - 2;
$final_text = '';
$word = $j = 0;
$final_text_index = -1;
// cycle through every character in the original text
for ($i = $word_indizes[$word], $n = utf8_strlen($text); $i < $n; $i++)
{
// if the current position is the start of one of the words then append $sequence_length characters to the final text
if (isset($word_indizes[$word]) && ($i == $word_indizes[$word]))
{
if ($final_text_index < $i - $sequence_length - 1)
{
$final_text .= '... ' . preg_replace('#^([^ ]*)#', '', utf8_substr($text, $i - $sequence_length, $sequence_length));
}
else
{
// if the final text is already nearer to the current word than $sequence_length we only append the text
// from its current index on and distribute the unused length to all other sequenes
$sequence_length += (int) (($final_text_index - $i + $sequence_length + 1) / (2 * $wordnum));
$final_text .= utf8_substr($text, $final_text_index + 1, $i - $final_text_index - 1);
}
$final_text_index = $i - 1;
// add the following characters to the final text (see below)
$word++;
$j = 1;
}
if ($j > 0)
{
// add the character to the final text and increment the sequence counter
$final_text .= utf8_substr($text, $i, 1);
$final_text_index++;
$j++;
// if this is a whitespace then check whether we are done with this sequence
if (utf8_substr($text, $i, 1) == ' ')
{
// only check whether we have to exit the context generation completely if we haven't already reached the end anyway
if ($i + 4 < $n)
{
if (($j > $sequence_length && $word >= $wordnum) || utf8_strlen($final_text) > $length)
{
$final_text .= ' ...';
break;
}
}
else
{
// make sure the text really reaches the end
$j -= 4;
}
// stop context generation and wait for the next word
if ($j > $sequence_length)
{
$j = 0;
}
}
}
}
return str_replace($characters, $entities, $final_text);
}
return $text;
}
if (!count($words) || !count($word_indizes))
// We need to turn the entities back into their original form, to not cut the message in between them
$text = htmlspecialchars_decode($text);
// Replace all spaces/invisible characters with single spaces
$text = preg_replace("/[\p{Z}\h\v]+/u", ' ', $text);
$text_length = utf8_strlen($text);
// Get first occurrence of each word
$word_indexes = [];
foreach ($words as $word)
{
return str_replace($characters, $entities, ((utf8_strlen($text) >= $length + 3) ? utf8_substr($text, 0, $length) . '...' : $text));
$pos = utf8_stripos($text, $word);
if ($pos !== false)
{
$word_indexes[$pos] = $word;
}
}
if (!empty($word_indexes))
{
ksort($word_indexes);
// Size of the fragment of text per word
$num_indexes = count($word_indexes);
$characters_per_word = (int) ($length / $num_indexes) + 2; // 2 to leave one character of margin at the sides to don't cut words
// Get text fragment indexes
$fragments = [];
foreach ($word_indexes as $index => $word)
{
$word_length = utf8_strlen($word);
$start = max(0, min($text_length - 1 - $characters_per_word, (int) ($index + ($word_length / 2) - ($characters_per_word / 2))));
$end = $start + $characters_per_word;
// Check if we can merge this fragment into the previous fragment
if (!empty($fragments))
{
[$prev_start, $prev_end] = end($fragments);
if ($prev_end + $characters_per_word >= $index + $word_length)
{
array_pop($fragments);
$start = $prev_start;
$end = $prev_end + $characters_per_word;
}
}
$fragments[] = [$start, $end];
}
}
else
{
// There is no coincidences, so we just create a fragment with the first $length characters
$fragments[] = [0, $length];
$end = $length;
}
$output = [];
foreach ($fragments as [$start, $end])
{
$fragment = utf8_substr($text, $start, $end - $start + 1);
$fragment_start = 0;
$fragment_end = $end - $start + 1;
// Find the first valid alphanumeric character in the fragment to don't cut words
if ($start > 0 && preg_match('/[^\p{L}\p{N}][\p{L}\p{N}]/u', $fragment, $matches, PREG_OFFSET_CAPTURE))
{
$fragment_start = utf8_strlen(substr($fragment, 0, (int) $matches[0][1])) + 1;
}
// Find the last valid alphanumeric character in the fragment to don't cut words
if ($end < $text_length - 1 && preg_match_all('/[\p{L}\p{N}][^\p{L}\p{N}]/u', $fragment, $matches, PREG_OFFSET_CAPTURE))
{
$fragment_end = utf8_strlen(substr($fragment, 0, end($matches[0])[1]));
}
$output[] = utf8_substr($fragment, $fragment_start, $fragment_end - $fragment_start + 1);
}
return ($fragments[0][0] !== 0 ? '... ' : '') . utf8_htmlspecialchars(implode(' ... ', $output)) . ($end < $text_length - 1 ? ' ...' : '');
}
/**
@@ -803,8 +821,8 @@ function make_clickable_callback($type, $whitespace, $url, $relative_url, $class
$orig_url = $url;
$orig_relative = $relative_url;
$append = '';
$url = htmlspecialchars_decode($url, ENT_COMPAT);
$relative_url = htmlspecialchars_decode($relative_url, ENT_COMPAT);
$url = html_entity_decode($url, ENT_COMPAT);
$relative_url = html_entity_decode($relative_url, ENT_COMPAT);
// make sure no HTML entities were matched
$chars = array('<', '>', '"');
@@ -1088,7 +1106,7 @@ function smiley_text($text, $force_option = false)
}
else
{
$root_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? generate_board_url() . '/' : $phpbb_path_helper->get_web_root_path();
$root_path = $phpbb_path_helper->get_web_root_path();
/**
* Event to override the root_path for smilies
@@ -1456,7 +1474,7 @@ function truncate_string($string, $max_length = 60, $max_store_length = 255, $al
$string = substr($string, 4);
}
$_chars = utf8_str_split(htmlspecialchars_decode($string, ENT_COMPAT));
$_chars = utf8_str_split(html_entity_decode($string, ENT_COMPAT));
$chars = array_map('utf8_htmlspecialchars', $_chars);
// Now check the length ;)
@@ -1471,7 +1489,7 @@ function truncate_string($string, $max_length = 60, $max_store_length = 255, $al
if (utf8_strlen($string) > $max_store_length)
{
// let's split again, we do not want half-baked strings where entities are split
$_chars = utf8_str_split(htmlspecialchars_decode($string, ENT_COMPAT));
$_chars = utf8_str_split(html_entity_decode($string, ENT_COMPAT));
$chars = array_map('utf8_htmlspecialchars', $_chars);
do

View File

@@ -1603,7 +1603,7 @@ function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabl
if ($data['user_allow_viewonline'] || $auth->acl_get('u_viewonline'))
{
$last_active = (!empty($data['session_time'])) ? $data['session_time'] : $data['user_lastvisit'];
$last_active = $data['user_last_active'] ?: ($data['session_time'] ?? 0);
}
else
{

View File

@@ -208,7 +208,7 @@ function send_file_to_browser($attachment, $upload_dir, $category)
if (empty($user->browser) || ((strpos(strtolower($user->browser), 'msie') !== false) && !phpbb_is_greater_ie_version($user->browser, 7)))
{
header('Content-Disposition: attachment; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'], ENT_COMPAT)));
header('Content-Disposition: attachment; ' . header_filename(html_entity_decode($attachment['real_filename'], ENT_COMPAT)));
if (empty($user->browser) || (strpos(strtolower($user->browser), 'msie 6.0') !== false))
{
header('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
@@ -216,7 +216,7 @@ function send_file_to_browser($attachment, $upload_dir, $category)
}
else
{
header('Content-Disposition: ' . ((strpos($attachment['mimetype'], 'image') === 0) ? 'inline' : 'attachment') . '; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'], ENT_COMPAT)));
header('Content-Disposition: ' . ((strpos($attachment['mimetype'], 'image') === 0) ? 'inline' : 'attachment') . '; ' . header_filename(html_entity_decode($attachment['real_filename'], ENT_COMPAT)));
if (phpbb_is_greater_ie_version($user->browser, 7) && (strpos($attachment['mimetype'], 'image') !== 0))
{
header('X-Download-Options: noopen');
@@ -327,7 +327,7 @@ function download_allowed()
return true;
}
$url = htmlspecialchars_decode($request->header('Referer'), ENT_COMPAT);
$url = html_entity_decode($request->header('Referer'), ENT_COMPAT);
if (!$url)
{

View File

@@ -51,6 +51,9 @@ class jabber
var $features = array();
/** @var string Stream close handshake */
private const STREAM_CLOSE_HANDSHAKE = '</stream:stream>';
/**
* Constructor
*
@@ -58,7 +61,7 @@ class jabber
* @param int $port Jabber server port
* @param string $username Jabber username or JID
* @param string $password Jabber password
* @param boold $use_ssl Use ssl
* @param bool $use_ssl Use ssl
* @param bool $verify_peer Verify SSL certificate
* @param bool $verify_peer_name Verify Jabber peer name
* @param bool $allow_self_signed Allow self signed certificates
@@ -183,7 +186,15 @@ class jabber
$this->send_presence('offline', '', true);
}
$this->send('</stream:stream>');
$this->send(self::STREAM_CLOSE_HANDSHAKE);
// Check stream close handshake reply
$stream_close_reply = $this->listen();
if ($stream_close_reply != self::STREAM_CLOSE_HANDSHAKE)
{
$this->add_to_log("Error: Unexpected stream close handshake reply ”{$stream_close_reply}");
}
$this->session = array();
return fclose($this->connection);
}

View File

@@ -35,7 +35,7 @@ function phpbb_module_notes_url($mode, $module_row)
}
global $user_id;
return ($user_id) ? "&amp;u=$user_id" : '';
return phpbb_extra_url();
}
function phpbb_module_warn_url($mode, $module_row)
@@ -43,34 +43,18 @@ function phpbb_module_warn_url($mode, $module_row)
if ($mode == 'front' || $mode == 'list')
{
global $forum_id;
return ($forum_id) ? "&amp;f=$forum_id" : '';
return phpbb_extra_url();
}
if ($mode == 'warn_post')
{
global $forum_id, $post_id;
if ($post_id)
{
$url_extra = "&amp;p=$post_id";
}
else if ($forum_id)
{
$url_extra = "&amp;f=$forum_id";
}
else
{
$url_extra = '';
}
return $url_extra;
return phpbb_extra_url();
}
else
{
global $user_id;
return ($user_id) ? "&amp;u=$user_id" : '';
return phpbb_extra_url();
}
}
@@ -99,30 +83,34 @@ function phpbb_module_reports_url($mode, $module_row)
return phpbb_extra_url();
}
function phpbb_extra_url()
/**
* Generate URL parameters for MCP modules
*
* @param array $additional_parameters Array with additional parameters in format of ['key' => 'parameter_name']
*
* @return string String with URL parameters (empty string if not any)
*/
function phpbb_extra_url($additional_parameters = [])
{
global $forum_id, $topic_id, $post_id, $report_id, $user_id;
$url_extra = [];
$url_parameters = array_merge([
'f' => 'forum_id',
't' => 'topic_id',
'p' => 'post_id',
'r' => 'report_id',
'u' => 'user_id',
], $additional_parameters);
if ($post_id)
foreach ($url_parameters as $key => $value)
{
$url_extra = "&amp;p=$post_id";
global $$value;
if (isset($$value) && $parameter = $$value)
{
$url_extra[] = "$key=$parameter";
}
}
else if ($topic_id)
{
$url_extra = "&amp;t=$topic_id";
}
else if ($forum_id)
{
$url_extra = "&amp;f=$forum_id";
}
else
{
$url_extra = '';
}
$url_extra .= ($user_id) ? "&amp;u=$user_id" : '';
$url_extra .= ($report_id) ? "&amp;r=$report_id" : '';
return $url_extra;
return implode('&amp;', $url_extra);
}
/**

View File

@@ -320,8 +320,8 @@ class messenger
// We add some standard variables we always use, no need to specify them always
$this->assign_vars(array(
'U_BOARD' => generate_board_url(),
'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . htmlspecialchars_decode($config['board_email_sig'], ENT_COMPAT)),
'SITENAME' => htmlspecialchars_decode($config['sitename'], ENT_COMPAT),
'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . html_entity_decode($config['board_email_sig'], ENT_COMPAT)),
'SITENAME' => html_entity_decode($config['sitename'], ENT_COMPAT),
));
$subject = $this->subject;
@@ -427,7 +427,7 @@ class messenger
$user->session_begin();
}
$calling_page = htmlspecialchars_decode($request->server('PHP_SELF'), ENT_COMPAT);
$calling_page = html_entity_decode($request->server('REQUEST_URI'), ENT_COMPAT);
switch ($type)
{
@@ -557,7 +557,7 @@ class messenger
$use_queue = true;
}
$contact_name = htmlspecialchars_decode($config['board_contact_name'], ENT_COMPAT);
$contact_name = html_entity_decode($config['board_contact_name'], ENT_COMPAT);
$board_contact = (($contact_name !== '') ? '"' . mail_encode($contact_name) . '" ' : '') . '<' . $config['board_contact'] . '>';
$break = false;
@@ -582,6 +582,11 @@ class messenger
);
extract($phpbb_dispatcher->trigger_event('core.notification_message_email', compact($vars)));
$this->addresses = $addresses;
$this->subject = $subject;
$this->msg = $msg;
unset($addresses, $subject, $msg);
if ($break)
{
return true;
@@ -597,7 +602,7 @@ class messenger
$this->from = $board_contact;
}
$encode_eol = ($config['smtp_delivery']) ? "\r\n" : PHP_EOL;
$encode_eol = $config['smtp_delivery'] || PHP_VERSION_ID >= 80000 ? "\r\n" : PHP_EOL;
// Build to, cc and bcc strings
$to = $cc = $bcc = '';
@@ -629,7 +634,7 @@ class messenger
}
else
{
$result = phpbb_mail($mail_to, $this->subject, $this->msg, $headers, PHP_EOL, $err_msg);
$result = phpbb_mail($mail_to, $this->subject, $this->msg, $headers, $encode_eol, $err_msg);
}
if (!$result)
@@ -691,7 +696,7 @@ class messenger
if (!$use_queue)
{
include_once($phpbb_root_path . 'includes/functions_jabber.' . $phpEx);
$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], htmlspecialchars_decode($config['jab_password'], ENT_COMPAT), $config['jab_use_ssl'], $config['jab_verify_peer'], $config['jab_verify_peer_name'], $config['jab_allow_self_signed']);
$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], html_entity_decode($config['jab_password'], ENT_COMPAT), $config['jab_use_ssl'], $config['jab_verify_peer'], $config['jab_verify_peer_name'], $config['jab_allow_self_signed']);
if (!$this->jabber->connect())
{
@@ -891,7 +896,7 @@ class queue
}
include_once($phpbb_root_path . 'includes/functions_jabber.' . $phpEx);
$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], htmlspecialchars_decode($config['jab_password'], ENT_COMPAT), $config['jab_use_ssl'], $config['jab_verify_peer'], $config['jab_verify_peer_name'], $config['jab_allow_self_signed']);
$this->jabber = new jabber($config['jab_host'], $config['jab_port'], $config['jab_username'], html_entity_decode($config['jab_password'], ENT_COMPAT), $config['jab_use_ssl'], $config['jab_verify_peer'], $config['jab_verify_peer_name'], $config['jab_allow_self_signed']);
if (!$this->jabber->connect())
{
@@ -952,7 +957,8 @@ class queue
}
else
{
$result = phpbb_mail($to, $subject, $msg, $headers, PHP_EOL, $err_msg);
$encode_eol = $config['smtp_delivery'] || PHP_VERSION_ID >= 80000 ? "\r\n" : PHP_EOL;
$result = phpbb_mail($to, $subject, $msg, $headers, $encode_eol, $err_msg);
}
if (!$result)
@@ -1208,7 +1214,7 @@ function smtpmail($addresses, $subject, $message, &$err_msg, $headers = false)
}
// Let me in. This function handles the complete authentication process
if ($err_msg = $smtp->log_into_server($config['smtp_host'], $config['smtp_username'], htmlspecialchars_decode($config['smtp_password'], ENT_COMPAT), $config['smtp_auth_method']))
if ($err_msg = $smtp->log_into_server($config['smtp_host'], $config['smtp_username'], html_entity_decode($config['smtp_password'], ENT_COMPAT), $config['smtp_auth_method']))
{
$smtp->close_session($err_msg);
return false;
@@ -1412,22 +1418,22 @@ class smtp_class
global $user;
// Here we try to determine the *real* hostname (reverse DNS entry preferrably)
$local_host = $user->host;
if (function_exists('php_uname'))
if (function_exists('php_uname') && !empty($local_host = php_uname('n')))
{
$local_host = php_uname('n');
// Able to resolve name to IP
if (($addr = @gethostbyname($local_host)) !== $local_host)
{
// Able to resolve IP back to name
if (($name = @gethostbyaddr($addr)) !== $addr)
if (!empty($name = @gethostbyaddr($addr)) && $name !== $addr)
{
$local_host = $name;
}
}
}
else
{
$local_host = $user->host;
}
// If we are authenticating through pop-before-smtp, we
// have to login ones before we get authenticated
@@ -1609,12 +1615,10 @@ class smtp_class
$result = false;
$stream_meta = stream_get_meta_data($this->socket);
if (socket_set_blocking($this->socket, 1))
if (stream_set_blocking($this->socket, 1))
{
// https://secure.php.net/manual/en/function.stream-socket-enable-crypto.php#119122
$crypto = (phpbb_version_compare(PHP_VERSION, '5.6.7', '<')) ? STREAM_CRYPTO_METHOD_TLS_CLIENT : STREAM_CRYPTO_METHOD_SSLv23_CLIENT;
$result = stream_socket_enable_crypto($this->socket, true, $crypto);
socket_set_blocking($this->socket, (int) $stream_meta['blocked']);
$result = stream_socket_enable_crypto($this->socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
stream_set_blocking($this->socket, (int) $stream_meta['blocked']);
}
return $result;
@@ -1840,65 +1844,84 @@ class smtp_class
}
/**
* Encodes the given string for proper display in UTF-8.
*
* This version is using base64 encoded data. The downside of this
* is if the mail client does not understand this encoding the user
* is basically doomed with an unreadable subject.
*
* Please note that this version fully supports RFC 2045 section 6.8.
*
* @param string $str
* @param string $eol End of line we are using (optional to be backwards compatible)
*/
* Encodes the given string for proper display in UTF-8 or US-ASCII.
*
* This version is based on iconv_mime_encode() implementation
* from symfomy/polyfill-iconv
* https://github.com/symfony/polyfill-iconv/blob/fd324208ec59a39ebe776e6e9ec5540ad4f40aaa/Iconv.php#L355
*
* @param string $str
* @param string $eol Lines delimiter (optional to be backwards compatible)
*
* @return string
*/
function mail_encode($str, $eol = "\r\n")
{
// Check if string contains ASCII only characters
$is_ascii = strlen($str) === utf8_strlen($str);
// Define start delimimter, end delimiter and spacer
$scheme = $is_ascii ? 'Q' : 'B';
// Define start delimiter, end delimiter
// Use the Quoted-Printable encoding for ASCII strings to avoid unnecessary encoding in Base64
$start = $is_ascii ? "=?US-ASCII?Q?" : "=?UTF-8?B?";
$end = "?=";
$delimiter = "$eol ";
$start = '=?' . ($is_ascii ? 'US-ASCII' : 'UTF-8') . '?' . $scheme . '?';
$end = '?=';
// Maximum encoded-word length is 75 as per RFC 2047 section 2.
// $split_length *must* be a multiple of 4, but <= 75 - strlen($start . $delimiter . $end)!!!
$split_length = 75 - strlen($start . $delimiter . $end);
// $split_length *must* be a multiple of 4, but <= 75 - strlen($start . $eol . $end)!!!
$split_length = 75 - strlen($start . $eol . $end);
$split_length = $split_length - $split_length % 4;
// Use the Quoted-Printable encoding for ASCII strings to avoid unnecessary encoding in Base64
$encoded_str = $is_ascii ? quoted_printable_encode($str) : base64_encode($str);
$line_length = strlen($start) + strlen($end);
$line_offset = strlen($start) + 1;
$line_data = '';
// If encoded string meets the limits, we just return with the correct data.
if (strlen($encoded_str) <= $split_length)
$is_quoted_printable = 'Q' === $scheme;
preg_match_all('/./us', $str, $chars);
$chars = $chars[0] ?? [];
$str = [];
foreach ($chars as $char)
{
return $start . $encoded_str . $end;
}
$encoded_char = $is_quoted_printable
? $char = preg_replace_callback(
'/[()<>@,;:\\\\".\[\]=_?\x20\x00-\x1F\x80-\xFF]/',
function ($matches)
{
$hex = dechex(ord($matches[0]));
$hex = strlen($hex) == 1 ? "0$hex" : $hex;
return '=' . strtoupper($hex);
},
$char
)
: base64_encode($line_data . $char);
// If there is only ASCII data, we just return what we want, correctly splitting the lines.
if ($is_ascii)
{
return $start . implode($end . $delimiter . $start, str_split($encoded_str, $split_length)) . $end;
}
// UTF-8 data, compose encoded lines
$array = utf8_str_split($str);
$str = '';
while (count($array))
{
$text = '';
while (count($array) && intval((strlen($text . $array[0]) + 2) / 3) << 2 <= $split_length)
if (isset($encoded_char[$split_length - $line_length]))
{
$text .= array_shift($array);
if (!$is_quoted_printable)
{
$line_data = base64_encode($line_data);
}
$str[] = $start . $line_data . $end;
$line_length = $line_offset;
$line_data = '';
}
$str .= $start . base64_encode($text) . $end . $delimiter;
$line_data .= $char;
$is_quoted_printable && $line_length += strlen($char);
}
return substr($str, 0, -strlen($delimiter));
if ($line_data !== '')
{
if (!$is_quoted_printable)
{
$line_data = base64_encode($line_data);
}
$str[] = $start . $line_data . $end;
}
return implode($eol . ' ', $str);
}
/**
@@ -1906,7 +1929,7 @@ function mail_encode($str, $eol = "\r\n")
*/
function phpbb_mail($to, $subject, $msg, $headers, $eol, &$err_msg)
{
global $config, $phpbb_root_path, $phpEx;
global $config, $phpbb_root_path, $phpEx, $phpbb_dispatcher;
// Convert Numeric Character References to UTF-8 chars (ie. Emojis)
$subject = utf8_decode_ncr($subject);
@@ -1935,8 +1958,54 @@ function phpbb_mail($to, $subject, $msg, $headers, $eol, &$err_msg)
*/
$additional_parameters = $config['email_force_sender'] ? '-f' . $config['board_email'] : '';
/**
* Modify data before sending out emails with PHP's mail function
*
* @event core.phpbb_mail_before
* @var string to The message recipient
* @var string subject The message subject
* @var string msg The message text
* @var string headers The email headers
* @var string eol The endline character
* @var string additional_parameters The additional parameters
* @since 3.3.6-RC1
*/
$vars = [
'to',
'subject',
'msg',
'headers',
'eol',
'additional_parameters',
];
extract($phpbb_dispatcher->trigger_event('core.phpbb_mail_before', compact($vars)));
$result = mail($to, mail_encode($subject, ''), wordwrap(utf8_wordwrap($msg), 997, "\n", true), $headers, $additional_parameters);
/**
* Execute code after sending out emails with PHP's mail function
*
* @event core.phpbb_mail_after
* @var string to The message recipient
* @var string subject The message subject
* @var string msg The message text
* @var string headers The email headers
* @var string eol The endline character
* @var string additional_parameters The additional parameters
* @var bool result True if the email was sent, false otherwise
* @since 3.3.6-RC1
*/
$vars = [
'to',
'subject',
'msg',
'headers',
'eol',
'additional_parameters',
'result',
];
extract($phpbb_dispatcher->trigger_event('core.phpbb_mail_after', compact($vars)));
$collector->uninstall();
$err_msg = $collector->format_errors();

View File

@@ -480,7 +480,7 @@ class p_master
*/
function set_active($id = false, $mode = false)
{
global $request;
global $auth, $request, $user;
$icat = false;
$this->active_module = false;
@@ -502,6 +502,14 @@ class p_master
$id = $this->p_class . '_' . $id;
}
// Fallback to acp main page for special test permission mode
if ($this->p_class === 'acp' && $user->data['user_perm_from'] && $auth->acl_get('a_switchperm'))
{
$id = '';
$mode = '';
$icat = false;
}
$category = false;
foreach ($this->module_ary as $row_id => $item_ary)
{
@@ -662,7 +670,7 @@ class p_master
// Add url_extra parameter to u_action url
if (!empty($this->module_ary) && $this->active_module !== false && $this->module_ary[$this->active_module_row_id]['url_extra'])
{
$this->module->u_action .= $this->module_ary[$this->active_module_row_id]['url_extra'];
$this->module->u_action .= '&amp;' . $this->module_ary[$this->active_module_row_id]['url_extra'];
}
// Assign the module path for re-usage
@@ -920,7 +928,7 @@ class p_master
}
// Was not allowed in categories before - /*!$item_ary['cat'] && */
$u_title .= (isset($item_ary['url_extra'])) ? $item_ary['url_extra'] : '';
$u_title .= (isset($item_ary['url_extra']) && $item_ary['url_extra']) ? '&amp;' . $item_ary['url_extra'] : '';
// Only output a categories items if it's currently selected
if (!$depth || ($depth && (in_array($item_ary['parent'], array_values($this->module_cache['parents'])) || $item_ary['parent'] == $this->p_parent)))

View File

@@ -189,7 +189,7 @@ function generate_smilies($mode, $forum_id)
if (count($smilies))
{
$root_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? generate_board_url() . '/' : $phpbb_path_helper->get_web_root_path();
$root_path = $phpbb_path_helper->get_web_root_path();
foreach ($smilies as $row)
{
@@ -420,7 +420,7 @@ function update_post_information($type, $ids, $return_update_sql = false)
*/
function posting_gen_topic_icons($mode, $icon_id)
{
global $phpbb_root_path, $config, $template, $cache;
global $phpbb_root_path, $phpbb_path_helper, $config, $template, $cache;
// Grab icons
$icons = $cache->obtain_icons();
@@ -432,7 +432,7 @@ function posting_gen_topic_icons($mode, $icon_id)
if (count($icons))
{
$root_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? generate_board_url() . '/' : $phpbb_root_path;
$root_path = $phpbb_path_helper->get_web_root_path();
foreach ($icons as $id => $data)
{
@@ -813,20 +813,42 @@ function posting_gen_inline_attachments(&$attachment_data)
}
/**
* Generate inline attachment entry
*/
function posting_gen_attachment_entry($attachment_data, &$filename_data, $show_attach_box = true)
* Generate inline attachment entry
*
* @param array $attachment_data The attachment data
* @param string $filename_data The filename data (filecomment)
* @param bool $show_attach_box Whether to show the attach box
* @param mixed $forum_id The forum id to check or false if private message
* @return int
*/
function posting_gen_attachment_entry($attachment_data, &$filename_data, $show_attach_box = true, $forum_id = false)
{
global $template, $config, $phpbb_root_path, $phpEx, $user, $phpbb_dispatcher;
global $template, $cache, $config, $phpbb_root_path, $phpEx, $user, $phpbb_dispatcher;
$allowed_attachments = array_keys($cache->obtain_attach_extensions($forum_id)['_allowed_']);
// Some default template variables
$template->assign_vars(array(
$default_vars = [
'S_SHOW_ATTACH_BOX' => $show_attach_box,
'S_HAS_ATTACHMENTS' => count($attachment_data),
'FILESIZE' => $config['max_filesize'],
'FILE_COMMENT' => (isset($filename_data['filecomment'])) ? $filename_data['filecomment'] : '',
'MAX_ATTACHMENT_FILESIZE' => $config['max_filesize'] > 0 ? $user->lang('MAX_ATTACHMENT_FILESIZE', get_formatted_filesize($config['max_filesize'])) : '',
));
'ALLOWED_ATTACHMENTS' => !empty($allowed_attachments) ? '.' . implode(',.', $allowed_attachments) : '',
];
/**
* Modify default attachments template vars
*
* @event core.modify_default_attachments_template_vars
* @var array allowed_attachments Array containing allowed attachments data
* @var array default_vars Array containing default attachments template vars
* @since 3.3.6-RC1
*/
$vars = ['allowed_attachments', 'default_vars'];
extract($phpbb_dispatcher->trigger_event('core.modify_default_attachments_template_vars', compact($vars)));
$template->assign_vars($default_vars);
if (count($attachment_data))
{
@@ -1231,11 +1253,11 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
'POST_AUTHOR' => get_username_string('username', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
'U_POST_AUTHOR' => get_username_string('profile', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
'S_HAS_ATTACHMENTS' => (!empty($attachments[$row['post_id']])) ? true : false,
'S_FRIEND' => ($row['friend']) ? true : false,
'S_IGNORE_POST' => ($row['foe']) ? true : false,
'L_IGNORE_POST' => ($row['foe']) ? sprintf($user->lang['POST_BY_FOE'], get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), "<a href=\"{$u_show_post}\" onclick=\"phpbb.toggleDisplay('{$post_anchor}', 1); return false;\">", '</a>') : '',
'S_POST_DELETED' => ($row['post_visibility'] == ITEM_DELETED) ? true : false,
'S_HAS_ATTACHMENTS' => !empty($attachments[$row['post_id']]),
'S_FRIEND' => (bool) $row['friend'],
'S_IGNORE_POST' => (bool) $row['foe'],
'L_IGNORE_POST' => $row['foe'] ? $user->lang('POST_BY_FOE', get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), "<a href=\"{$u_show_post}\" onclick=\"phpbb.toggleDisplay('{$post_anchor}', 1); return false;\">", '</a>') : '',
'S_POST_DELETED' => $row['post_visibility'] == ITEM_DELETED,
'L_DELETE_POST' => $l_deleted_message,
'POST_SUBJECT' => $post_subject,
@@ -1323,7 +1345,7 @@ function delete_post($forum_id, $topic_id, $post_id, &$data, $is_soft = false, $
{
$post_mode = 'delete_first_post';
}
else if ($data['topic_last_post_id'] == $post_id)
else if ($data['topic_last_post_id'] <= $post_id)
{
$post_mode = 'delete_last_post';
}
@@ -2850,7 +2872,14 @@ function phpbb_handle_post_delete($forum_id, $topic_id, $post_id, &$post_data, $
$delete_reason
));
$meta_info = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "p=$next_post_id") . "#p$next_post_id";
if ($next_post_id > 0)
{
$meta_info = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "p=$next_post_id") . "#p$next_post_id";
}
else
{
$meta_info = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "t=$topic_id");
}
$message = $user->lang['POST_DELETED'];
if (!$request->is_ajax())

View File

@@ -1689,7 +1689,7 @@ function submit_pm($mode, $subject, &$data_ary, $put_in_outbox = true)
}
// First of all make sure the subject are having the correct length.
$subject = truncate_string($subject);
$subject = truncate_string($subject, $mode === 'post' ? 120 : 124);
$db->sql_transaction('begin');

View File

@@ -281,7 +281,7 @@ class ftp extends transfer
}
// Init some needed values
$this->transfer();
parent::__construct();
return;
}
@@ -341,6 +341,11 @@ class ftp extends transfer
*/
function _mkdir($dir)
{
if (!$this->connection)
{
return false;
}
return @ftp_mkdir($this->connection, $dir);
}
@@ -350,6 +355,11 @@ class ftp extends transfer
*/
function _rmdir($dir)
{
if (!$this->connection)
{
return false;
}
return @ftp_rmdir($this->connection, $dir);
}
@@ -359,6 +369,11 @@ class ftp extends transfer
*/
function _rename($old_handle, $new_handle)
{
if (!$this->connection)
{
return false;
}
return @ftp_rename($this->connection, $old_handle, $new_handle);
}
@@ -368,6 +383,11 @@ class ftp extends transfer
*/
function _chdir($dir = '')
{
if (!$this->connection)
{
return false;
}
if ($dir && $dir !== '/')
{
if (substr($dir, -1, 1) == '/')
@@ -385,6 +405,11 @@ class ftp extends transfer
*/
function _chmod($file, $perms)
{
if (!$this->connection)
{
return false;
}
if (function_exists('ftp_chmod'))
{
$err = @ftp_chmod($this->connection, $perms, $file);
@@ -406,6 +431,11 @@ class ftp extends transfer
*/
function _put($from_file, $to_file)
{
if (!$this->connection)
{
return false;
}
// We only use the BINARY file mode to cicumvent rewrite actions from ftp server (mostly linefeeds being replaced)
$mode = FTP_BINARY;
@@ -425,6 +455,11 @@ class ftp extends transfer
*/
function _delete($file)
{
if (!$this->connection)
{
return false;
}
return @ftp_delete($this->connection, $file);
}
@@ -449,6 +484,11 @@ class ftp extends transfer
*/
function _cwd()
{
if (!$this->connection)
{
return false;
}
return @ftp_pwd($this->connection);
}
@@ -458,6 +498,11 @@ class ftp extends transfer
*/
function _ls($dir = './')
{
if (!$this->connection)
{
return false;
}
$list = @ftp_nlist($this->connection, $dir);
// See bug #46295 - Some FTP daemons don't like './'
@@ -498,6 +543,11 @@ class ftp extends transfer
*/
function _site($command)
{
if (!$this->connection)
{
return false;
}
return @ftp_site($this->connection, $command);
}
}
@@ -782,6 +832,11 @@ class ftp_fsock extends transfer
*/
function _send_command($command, $args = '', $check = true)
{
if (!$this->connection)
{
return false;
}
if (!empty($args))
{
$command = "$command $args";
@@ -871,6 +926,11 @@ class ftp_fsock extends transfer
*/
function _close_data_connection()
{
if (!$this->connection)
{
return false;
}
return @fclose($this->data_connection);
}
@@ -880,6 +940,11 @@ class ftp_fsock extends transfer
*/
function _check_command($return = false)
{
if (!$this->connection)
{
return false;
}
$response = '';
do

View File

@@ -210,18 +210,18 @@ function user_add($user_row, $cp_data = false, $notifications_data = null)
// These are the additional vars able to be specified
$additional_vars = array(
'user_permissions' => '',
'user_timezone' => $config['board_timezone'],
'user_dateformat' => $config['default_dateformat'],
'user_lang' => $config['default_lang'],
'user_style' => (int) $config['default_style'],
'user_actkey' => '',
'user_ip' => '',
'user_regdate' => time(),
'user_passchg' => time(),
'user_options' => 230271,
'user_permissions' => '',
'user_timezone' => $config['board_timezone'],
'user_dateformat' => $config['default_dateformat'],
'user_lang' => $config['default_lang'],
'user_style' => (int) $config['default_style'],
'user_actkey' => '',
'user_ip' => '',
'user_regdate' => time(),
'user_passchg' => time(),
'user_options' => 230271,
// We do not set the new flag here - registration scripts need to specify it
'user_new' => 0,
'user_new' => 0,
'user_inactive_reason' => 0,
'user_inactive_time' => 0,
@@ -1575,11 +1575,11 @@ function validate_string($string, $optional = false, $min = 0, $max = 0)
return false;
}
if ($min && utf8_strlen(htmlspecialchars_decode($string, ENT_COMPAT)) < $min)
if ($min && utf8_strlen(html_entity_decode($string, ENT_COMPAT)) < $min)
{
return 'TOO_SHORT';
}
else if ($max && utf8_strlen(htmlspecialchars_decode($string, ENT_COMPAT)) > $max)
else if ($max && utf8_strlen(html_entity_decode($string, ENT_COMPAT)) > $max)
{
return 'TOO_LONG';
}
@@ -2759,6 +2759,28 @@ function group_user_add($group_id, $user_id_ary = false, $username_ary = false,
return 'GROUP_USERS_EXIST';
}
/**
* Event before users are added to a group
*
* @event core.group_add_user_before
* @var int group_id ID of the group to which users are added
* @var string group_name Name of the group
* @var array user_id_ary IDs of the users to be added
* @var array username_ary Names of the users to be added
* @var int pending Pending setting, 1 if user(s) added are pending
* @var array add_id_ary IDs of the users to be added who are not members yet
* @since 3.3.15-RC1
*/
$vars = array(
'group_id',
'group_name',
'user_id_ary',
'username_ary',
'pending',
'add_id_ary',
);
extract($phpbb_dispatcher->trigger_event('core.group_add_user_before', compact($vars)));
$db->sql_transaction('begin');
// Insert the new users

View File

@@ -344,6 +344,7 @@ function mcp_forum_view($id, $mode, $action, $forum_info)
}
$topic_row = array_merge($topic_row, array(
'U_VIEW_TOPIC' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=$id&amp;f=$forum_id&amp;t={$row_ary['topic_id']}&amp;mode=topic_view"),
'U_NEWEST_POST' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=$id&amp;f=$forum_id&amp;t={$row_ary['topic_id']}&amp;mode=topic_view&amp;view=unread#unread"),
'S_SELECT_TOPIC' => ($merge_select && !in_array($row_ary['topic_id'], $source_topic_ids)) ? true : false,
'U_SELECT_TOPIC' => $u_select_topic,

View File

@@ -179,7 +179,7 @@ class mcp_logs
$sql_sort = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');
$keywords = $request->variable('keywords', '', true);
$keywords_param = !empty($keywords) ? '&amp;keywords=' . urlencode(htmlspecialchars_decode($keywords, ENT_COMPAT)) : '';
$keywords_param = !empty($keywords) ? '&amp;keywords=' . urlencode(html_entity_decode($keywords, ENT_COMPAT)) : '';
// Grab log data
$log_data = array();

View File

@@ -1245,7 +1245,7 @@ function mcp_delete_post($post_ids, $is_soft = false, $soft_delete_reason = '',
else
{
// Remove any post id anchor
if ($anchor_pos = (strrpos($redirect, '#p')) !== false)
if (($anchor_pos = strrpos($redirect, '#p')) !== false)
{
$redirect = substr($redirect, 0, $anchor_pos);
}

View File

@@ -98,7 +98,7 @@ class mcp_notes
$userrow = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if (!$userrow)
if (!$userrow || (int) $userrow['user_id'] === ANONYMOUS)
{
trigger_error('NO_USER');
}
@@ -162,16 +162,16 @@ class mcp_notes
{
if (check_form_key('mcp_notes'))
{
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_USER_FEEDBACK', false, array($userrow['username']));
$phpbb_log->add('mod', $user->data['user_id'], $user->ip, 'LOG_USER_FEEDBACK', false, array(
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_USER_FEEDBACK', false, [$userrow['username']]);
$phpbb_log->add('mod', $user->data['user_id'], $user->ip, 'LOG_USER_FEEDBACK', false, [
'forum_id' => 0,
'topic_id' => 0,
$userrow['username']
));
$phpbb_log->add('user', $user->data['user_id'], $user->ip, 'LOG_USER_GENERAL', false, array(
]);
$phpbb_log->add('user', $user->data['user_id'], $user->ip, 'LOG_USER_GENERAL', false, [
'reportee_id' => $user_id,
$usernote
));
utf8_encode_ucr($usernote)
]);
$msg = $user->lang['USER_FEEDBACK_ADDED'];
}
@@ -206,7 +206,7 @@ class mcp_notes
$sql_sort = $sort_by_sql[$sk] . ' ' . (($sd == 'd') ? 'DESC' : 'ASC');
$keywords = $request->variable('keywords', '', true);
$keywords_param = !empty($keywords) ? '&amp;keywords=' . urlencode(htmlspecialchars_decode($keywords, ENT_COMPAT)) : '';
$keywords_param = !empty($keywords) ? '&amp;keywords=' . urlencode(html_entity_decode($keywords, ENT_COMPAT)) : '';
$log_data = array();
$log_count = 0;

View File

@@ -222,6 +222,7 @@ function mcp_post_details($id, $mode, $action)
'U_POST_ACTION' => "$url&amp;i=$id&amp;mode=post_details", // Use this for action parameters
'U_APPROVE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue&amp;p=$post_id"),
'S_CAN_APPROVE' => $auth->acl_get('m_approve', $post_info['forum_id']),
'S_CAN_VIEWIP' => $auth->acl_get('m_info', $post_info['forum_id']),
'S_CAN_CHGPOSTER' => $auth->acl_get('m_chgposter', $post_info['forum_id']),
'S_CAN_LOCK_POST' => $auth->acl_get('m_lock', $post_info['forum_id']),

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