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

Compare commits

..

142 Commits

Author SHA1 Message Date
Joas Schilling
1b01667c7b [prep-release-3.1.9] Add migration for 3.1.9 2016-04-16 12:16:23 +02:00
Joas Schilling
fdcedb262f [prep-release-3.1.9] Update version for 3.1.9 final 2016-04-16 12:13:36 +02:00
Joas Schilling
e7043dc044 [prep-release-3.1.9] Add changelog for 3.1.9-RC1 2016-04-09 08:19:34 +02:00
Joas Schilling
5ee6c216e5 [prep-release-3.1.9] Add migration for 3.1.9-RC1 2016-04-09 08:13:31 +02:00
Joas Schilling
15e22af266 [prep-release-3.1.9] Update version to 3.1.9-RC1 2016-04-09 08:09:08 +02:00
Joas Schilling
2ae17d6caf Merge pull request #4283 from DavidIQ/ticket/14587
[ticket/14587] Remove sectionGroup from web.config

* DavidIQ/ticket/14587:
  [ticket/14587] Remove sectionGroup from web.config
2016-04-08 16:34:43 +02:00
David Colón
ebbedf29e0 [ticket/14587] Remove sectionGroup from web.config
Causes errors on some IIS installations.

PHPBB3-14587
2016-04-07 17:20:34 -04:00
Marc Alexander
9ad5c577f5 Merge pull request #4256 from Nicofuma/ticket/13683
[ticket/13683] Respects force_server_vars settings when generating URLs
2016-04-07 21:59:26 +02:00
Marc Alexander
12f5c0405e Merge pull request #4279 from RMcGirr83/ticket_14408
[ticket/14408] Remove span tags from file
2016-04-06 20:54:07 +02:00
Richard McGirr
68eba86309 [ticket/14408] Remove span tags from file
PHPBB3-14408
2016-04-04 07:18:21 -04:00
Tristan Darricau
d0f5b39f11 Merge pull request #4253 from rxu/ticket/14559
[ticket/14559] Remove attachment BBCode tags from the quoted message

* rxu/ticket/14559:
  [ticket/14559] Remove attachment BBCode tags from the quoted message
2016-04-03 16:34:43 +02:00
Tristan Darricau
a2f517fb38 Merge pull request #4268 from marc1706/ticket/14532
[ticket/14532] Do not escape column default in mssql

* marc1706/ticket/14532:
  [ticket/14532] Do not escape column default in mssql
2016-04-03 16:00:01 +02:00
Tristan Darricau
ccdf8e7ee1 Merge pull request #4270 from kasimi/ticket/14562
[ticket/14562] Language fallback for extension permissions

* kasimi/ticket/14562:
  [ticket/14562] Language fallback for extension permissions
2016-04-02 13:02:14 +02:00
Tristan Darricau
0a9c049f76 Merge pull request #4272 from marc1706/ticket/14577
[ticket/14577] Do not calculate size of array in for loop

* marc1706/ticket/14577:
  [ticket/14577] Do not calculate size of array in for loop
2016-04-02 12:06:30 +02:00
Marc Alexander
5b61ac06cb [ticket/14577] Do not calculate size of array in for loop
For loops that modify the size of the looped arrays were obviously not
changed.

PHPBB3-14577
2016-04-02 09:46:54 +02:00
kasimi
621b958b1c [ticket/14562] Language fallback for extension permissions
PHPBB3-14562
2016-04-01 18:06:19 +02:00
Marc Alexander
48283d7c62 [ticket/14532] Do not escape column default in mssql
The column default shouldn't be escaped for mssql. This is a regression
from 743d816631. Prior to that commit, the
default value for the column was not escaped. Escaping it will cause SQL
errors while altering columns.

PHPBB3-14532
2016-03-31 16:07:05 +02:00
Marc Alexander
3f5a873e4c Merge pull request #4264 from VSEphpbb/ticket/14570
[ticket/14570] Add effectively installed to 3.1.x versions
2016-03-31 12:30:07 +02:00
Tristan Darricau
bfc09e2b39 [ticket/13683] Removes extra / in script_path
PHPBB3-13683
2016-03-30 22:22:38 +02:00
Marc Alexander
7a1cf2a280 Merge pull request #4259 from Nicofuma/ticket/14565
[ticket/14565] Updates composer.phar to 1.0.0-beta2
2016-03-30 18:54:07 +02:00
Marc Alexander
b22fbc91d1 Merge pull request #4262 from Senky/ticket/10356
[ticket/10356] Find inactive users in livesearch when having permissions
2016-03-30 09:29:59 +02:00
Tristan Darricau
00dcbb3992 [ticket/14565] Workaround for php 5.3.3
PHPBB3-14565
2016-03-29 21:13:45 +02:00
Tristan Darricau
0647eea742 [ticket/13683] Updates tests
PHPBB3-13683
2016-03-29 19:13:09 +02:00
Tristan Darricau
0b1ed8dbbb [ticket/13683] Fix more cases
PHPBB3-13683
2016-03-29 19:06:37 +02:00
Tristan Darricau
1a5fbd4bd0 [ticket/13683] Respects force_server_vars settings when generating URLs
PHPBB3-13683
2016-03-29 19:06:30 +02:00
Matt Friedman
39de59e65f [ticket/14570] Use phpbb_version_compare
PHPBB3-14570
2016-03-29 10:01:03 -07:00
Matt Friedman
b8dd3ef43a [ticket/14570] Add effectively installed to 3.1.x versions
PHPBB3-14570
2016-03-29 09:54:22 -07:00
Jakub Senko
4fa47d301f [ticket/10356] Find inactive users in livesearch when having permissions
While original ticket request is already fixed, livesearch did not
reflect it.

PHPBB3-10356
2016-03-29 13:26:17 +02:00
Máté Bartus
28705b54a5 Merge pull request #4260 from VSEphpbb/ticket/14568
[ticket/14568] Update the repository readme
2016-03-28 19:22:56 +02:00
Matt Friedman
478c90cb00 [ticket/14568] Update the repository readme
PHPBB3-14568
2016-03-28 09:49:42 -07:00
Tristan Darricau
9a5f420ce8 [ticket/14565] Updates composer.phar to 1.0.0-beta2
PHPBB3-14565
2016-03-27 20:27:17 +02:00
rxu
0ca32c41b5 [ticket/14559] Remove attachment BBCode tags from the quoted message
PHPBB3-14559
2016-03-27 19:09:06 +07:00
Tristan Darricau
2bfbc07b7d Merge pull request #4021 from marc1706/ticket/14272
[ticket/14272] Use html5 valid input elements

* marc1706/ticket/14272:
  [ticket/14272] Allow input of floats for filesize
  [ticket/14272] Use input type number instead of text in avatars
  [ticket/14272] Assign min and max values for avatar driver settings
  [ticket/14272] Define min and max values for avatar width and height
  [ticket/14272] Disable not toggled form elements
  [ticket/14272] Make sure phpbb_avatar_manager was defined
  [ticket/14272] Remove useless check
  [ticket/14272] Fix invalid or missing min/max settings
  [ticket/14272] Assign min/max for all allowed types
  [ticket/14272] Only use maxlength and size for allowed input elements
2016-03-27 13:34:17 +02:00
Tristan Darricau
5442a25967 Merge pull request #4182 from marc1706/ticket/14481
[ticket/14481] Respect HTTP_X_FORWARDED headers for implying https

* marc1706/ticket/14481:
  [ticket/14481] Add tests for x_forwarded_proto header
  [ticket/14481] Use port 443 if https is specified in x-forwarded-proto
  [ticket/14481] Respect HTTP_X_FORWARDED headers for implying https
2016-03-27 12:56:03 +02:00
Marc Alexander
50737da051 Merge pull request #4246 from RMcGirr83/ticket_13625
[ticket/13625] Fix types of properties
2016-03-27 12:37:25 +02:00
Marc Alexander
5e96738ca1 Merge pull request #4230 from Senky/ticket/13028
[ticket/13028] Rename unanswered search label
2016-03-27 12:33:48 +02:00
Tristan Darricau
fac6e5206f Merge pull request #4229 from Senky/ticket/13013
closes #4229

* Senky-ticket/13013:
  [ticket/13013] Explain to user explicitl what "participate more" means
2016-03-26 19:17:57 +01:00
Jakub Senko
9ef5b126ec [ticket/13013] Explain to user explicitl what "participate more" means
PHPBB3-13013
2016-03-26 19:17:41 +01:00
Tristan Darricau
640070e133 Merge pull request #3874 from lavigor/ticket/14134
[ticket/14134] Send warning notification PM in user's language.

* lavigor/ticket/14134:
  [ticket/14134] Fix Okay in a comment.
  [ticket/14134] Fix code comments.
  [ticket/14134] Send warning notification PM in user's language.
2016-03-26 18:59:31 +01:00
lavigor
18a4505b23 [ticket/14134] Fix Okay in a comment.
PHPBB3-14134
2016-03-25 23:11:43 +03:00
Tristan Darricau
9f3ee58595 Merge pull request #4188 from marc1706/ticket/13842
[ticket/13842] Prevent internal server errors without rewrite module on IIS

* marc1706/ticket/13842:
  [ticket/13842] Prevent internal server errors without rewrite module on IIS
2016-03-25 11:56:01 +01:00
Tristan Darricau
7f9ba9849b Merge pull request #4190 from marc1706/ticket/14437
[ticket/14437] Correctly assume index from attachment display order

* marc1706/ticket/14437:
  [ticket/14437] Make sure attachments array is properly ordered before processing
  [ticket/14437] Preserve attachment ID order by ordering by attach_id
  [ticket/14437] Sort attachments after assigning inline attachments
  [ticket/14437] Correctly assume index from attachment display order
2016-03-25 11:48:29 +01:00
Tristan Darricau
6774c5077d Merge pull request #4214 from marc1706/ticket/14241
[ticket/14241] Prevent empty q&a as a result of improper settings

* marc1706/ticket/14241:
  [ticket/14241] Log fatal captcha error to error log
  [ticket/14241] Prevent empty q&a as a result of improper settings
2016-03-25 11:43:05 +01:00
Richard McGirr
9b94eaa0e4 [ticket/13625] Fix types of properties
PHPBB3-13625
2016-03-25 06:22:33 -04:00
Tristan Darricau
2168cb7f8e Merge pull request #4231 from Senky/ticket/13630
[ticket/13630] Prevent empty parameter select_single

* Senky/ticket/13630:
  [ticket/13630] Prevent empty parameter select_single
2016-03-25 11:20:06 +01:00
Tristan Darricau
53a9131db6 Merge pull request #4244 from marc1706/ticket/14290
[ticket/14290] Correctly use modified since header

* marc1706/ticket/14290:
  [ticket/14290] Correctly use modified since header
2016-03-25 11:10:06 +01:00
Marc Alexander
826b338275 [ticket/14290] Correctly use modified since header
PHPBB3-14290
2016-03-24 18:09:51 +01:00
Tristan Darricau
3a23068d89 Merge pull request #4242 from marc1706/ticket/14136
[ticket/14136] Add back X-UA-Compatible meta tag

* marc1706/ticket/14136:
  [ticket/14136] Add back X-UA-Compatible meta tag
2016-03-24 18:00:15 +01:00
Tristan Darricau
dcb6154be7 Merge pull request #4222 from marc1706/ticket/14536
[ticket/14536] Force unix time stamps to be integer

* marc1706/ticket/14536:
  [ticket/14536] Force unix time stamps to be integer
2016-03-24 17:53:34 +01:00
Marc Alexander
1721965c38 Merge pull request #4241 from rxu/ticket/14051
[ticket/14051] Restore accidentally removed $topics_count value
2016-03-24 17:21:56 +01:00
Marc Alexander
244d171cb0 [ticket/14136] Add back X-UA-Compatible meta tag
This was previously removed without needing to. Adding it back to force
users to not emulate the page for previous versions of IE. The
imagetoolbar http-equiv tag was not restored as IE does not contain that
anymore since IE7. Also, the chome=1 has been removed from the
X-UA-Compatible content as ChromeFrame does not receive any further
updates since 2014 and is potentially broken.

PHPBB3-14136
2016-03-24 16:07:07 +01:00
rxu
a5790597ca [ticket/14051] Restore accidentally removed $topics_count value
PHPBB3-14051
2016-03-24 21:41:41 +07:00
Marc Alexander
a4fac6da2a Merge pull request #4238 from RMcGirr83/ticket_14051
[ticket/14051] Replace sql array of viewforum sort topics function
2016-03-24 15:22:30 +01:00
Richard McGirr
78bf53587a [ticket/14051] Add table alias and fix types of property
PHPBB3-14051
2016-03-24 07:01:57 -04:00
Marc Alexander
1bb4e3621e Merge pull request #4175 from Senky/ticket/14471
[ticket/14471] Add $filedata to core.avatar_driver_upload_move_file_before event
2016-03-24 11:49:24 +01:00
Marc Alexander
c36892f2fa Merge pull request #4113 from LaxSlash/ticket/14395
[ticket/14395] Add event core.viewtopic_add_quickmod_option_before
2016-03-24 11:21:24 +01:00
Richard McGirr
d9ad14e4c5 [ticket/14051] Fix whitespace
PHPBB3-14051
2016-03-23 21:46:45 -04:00
Richard McGirr
c003611f05 [ticket/14051] Replace sql array of viewforum sort topics function
PHPBB3-14051
2016-03-23 21:30:30 -04:00
LaxSlash
8f396673fe [ticket/14395] core.viewtopic_add_quickmod_option_before
Added an event before the function phpbb_add_quickmod_option is called in
the viewtopic.php file. This event serves two purposes - one, it is easier to
add new quickmod options, and two, it allows an extenstion developer to check
additional permissions and apply further authentication for the display of the
quickmod options.

PHPBB3-14395
2016-03-23 20:11:20 -04:00
LaxSlash
a18c59317f [ticket/14395] core.viewtopic_add_quickmod_option_before
Added an event before the function phpbb_add_quickmod_option is called in
the viewtopic.php file. This event serves two purposes - one, it is easier to
add new quickmod options, and two, it allows an extenstion developer to check
additional permissions and apply further authentication for the display of the
quickmod options.

PHPBB3-14395
2016-03-23 14:57:18 -04:00
Marc Alexander
10d4093561 [ticket/14536] Force unix time stamps to be integer
This will ensure to prevent PHP fatal errors in case the passed timestamp
is an empty string or does not evaluate to an integer (i.e. strings like
foobar).

PHPBB3-14536
2016-03-23 14:44:31 +01:00
LaxSlash
8a8428d002 [ticket/14395] core.viewtopic_add_quickmod_option_before
Added an event before the function phpbb_add_quickmod_option is called in
the viewtopic.php file. This event serves two purposes - one, it is easier to
add new quickmod options, and two, it allows an extenstion developer to check
additional permissions and apply further authentication for the display of the
quickmod options.

PHPBB3-14395
2016-03-22 19:29:33 -04:00
Jakub Senko
f77142c0b6 [ticket/13630] Prevent empty parameter select_single
PHPBB3-13630
2016-03-20 16:58:35 +01:00
Jakub Senko
4dc8841e33 [ticket/13028] Rename unanswered search label
PHPBB3-13028
2016-03-18 11:54:46 +01:00
Tristan Darricau
0194c78d19 Merge pull request #4226 from rxu/ticket/14540
[ticket/14540] Adjust recursive_dot_prefix_filter_iterator for performance

* rxu/ticket/14540:
  [ticket/14540] Adjust recursive_dot_prefix_filter_iterator for performance
2016-03-16 19:10:06 +01:00
rxu
e610b23916 [ticket/14540] Adjust recursive_dot_prefix_filter_iterator for performance
Swapping conditions in the function accept() of the class
\phpbb\recursive_dot_prefix_filter_iterator saves a lot of isDir() calls which
is more expensive than $filename[0] checks.

PHPBB3-14540
2016-03-17 00:50:08 +07:00
Tristan Darricau
f1874ec416 Merge pull request #4224 from marc1706/ticket/14538
[ticket/14538] Update composer dependencies

* marc1706/ticket/14538:
  [ticket/14538] Update composer dependencies
2016-03-15 19:53:15 +01:00
Marc Alexander
681836a84d [ticket/14538] Update composer dependencies
PHPBB3-14538
2016-03-15 09:53:57 +01:00
Marc Alexander
48bdab88de Merge pull request #4217 from phpbb-fr-com/ticket/14533
[ticket/14533] U_NOTIFICATION_SETTINGS doesn't return the correct URL
2016-03-13 20:24:38 +01:00
Skouat
3e278bcf0a [ticket/14533] U_NOTIFICATION_SETTINGS doesn't return the correct URL
PHPBB3-14533
2016-03-12 20:53:42 +01:00
Marc Alexander
215fad420f [ticket/14241] Log fatal captcha error to error log
PHPBB3-14241
2016-03-12 10:24:07 +01:00
Tristan Darricau
d142bebdd6 Merge pull request #4216 from marc1706/ticket/14529
[ticket/14529] Stop using --prefer-source for composer

* marc1706/ticket/14529:
  [ticket/14529] Stop using --prefer-source for composer
2016-03-11 18:53:13 +01:00
Marc Alexander
2337d9dd27 [ticket/14529] Stop using --prefer-source for composer
The api rate limit has been removed by github. Therefore,
we no longer need --prefer-source

PHPBB3-14529
2016-03-11 17:51:02 +01:00
Marc Alexander
4c5c289f75 [ticket/14241] Prevent empty q&a as a result of improper settings
Improper setup of the q&a captcha in combination with the admin choosing a
default language that does not have any questions and answers set might
result in the user being presented empty questions and answers. This
change will try to fall back to any question in case the admin incorrectly
set the default language and has no questions & answers set. If that does
not work, the captcha will not allow passing it and suggest to contact the
board admin to resolve this issue.

PHPBB3-14241
2016-03-11 10:51:07 +01:00
Marc Alexander
9288a50bcf Merge pull request #4211 from marc1706/ticket/14422
[ticket/14422] Support cmd+enter & ctrl+enter for submitting message
2016-03-10 22:09:19 +01:00
Marc Alexander
1f25f710ea [ticket/14422] Submit when pressing ctrl or cmd + enter
PHPBB3-14422
2016-03-10 15:08:12 +01:00
Marc Alexander
f22bd4e511 [ticket/14481] Add tests for x_forwarded_proto header
PHPBB3-14481
2016-03-10 14:49:23 +01:00
Jakub Senko
795ce6ccf1 [ticket/14471] Add $filedata to core.avatar_driver_upload_move_file_before event
PHPBB3-14471
2016-03-10 13:25:43 +01:00
Callum Macrae
8058967e7f [ticket/14422] Support cmd+enter for submitting message
PHPBB3-14422
2016-03-10 12:31:04 +01:00
Marc Alexander
9bcf8df5d0 Merge pull request #4184 from lavigor/ticket/14486
[ticket/14486] Add an event and fix an event in login_box()
2016-03-10 12:18:47 +01:00
Tristan Darricau
61e0247f22 Merge pull request #4192 from marc1706/ticket/14496
[ticket/14496] Cache last update of update list instead of using filemtime

* marc1706/ticket/14496:
  [ticket/14496] Destroy update_list_time cache variable on intro
  [ticket/14496] Cache last update of update list instead of using filemtime
2016-03-09 21:53:14 +01:00
Máté Bartus
5e84d47a03 Merge pull request #4205 from marc1706/ticket/13264
[ticket/13264] Do not force approved state if post visibility is known
2016-03-09 19:39:29 +01:00
Máté Bartus
7c45ed0733 Merge pull request #4206 from marc1706/ticket/14519
[ticket/14519] Skip query if all unread notifications are retrieved
2016-03-08 22:09:02 +01:00
Máté Bartus
a0fa396901 Merge pull request #4207 from marc1706/ticket/14132
[ticket/14132] Use transaction for adding notifications to type table
2016-03-08 22:07:33 +01:00
Máté Bartus
05ccbc512d Merge pull request #4204 from marc1706/ticket/14483
[ticket/14483] Do not send headers by default on access via controller
2016-03-08 22:07:11 +01:00
Marc Alexander
dd115d1896 [ticket/13264] Link to post if user can view it
PHPBB3-13264
2016-03-08 15:25:45 +01:00
Marc Alexander
10004c4032 [ticket/14132] Use transaction for adding notifications to type table
This will prevent a race condition that might occur by two posts being
submitted at the same time with the notification type IDs not being
cached.

PHPBB3-14132
2016-03-08 12:36:29 +01:00
Marc Alexander
9fcd0b116b [ticket/14519] Skip query if all unread notifications are retrieved
PHPBB3-14519
2016-03-08 12:15:21 +01:00
Marc Alexander
d461ee4f5c [ticket/13264] Do not force approved state if post visibility is known
Post visibility is used if it is set to a valid value.

PHPBB3-13264
2016-03-07 22:18:26 +01:00
Marc Alexander
f55a61d067 Merge pull request #4203 from Elsensee/ticket/14514
[ticket/14514] Don't skip users when converting passwords
2016-03-07 09:51:31 +01:00
Marc Alexander
62a2619300 [ticket/14483] Do not send headers by default on access via controller
PHPBB3-14483
2016-03-06 21:10:42 +01:00
Oliver Schramm
b77856a903 [ticket/14514] Don't skip users when converting passwords
PHPBB3-14514
2016-03-06 16:11:29 +01:00
Marc Alexander
3d7d0c40b8 [ticket/14437] Make sure attachments array is properly ordered before processing
PHPBB3-14437
2016-03-06 11:22:53 +01:00
Marc Alexander
f1772ce7e5 [ticket/14437] Preserve attachment ID order by ordering by attach_id
PHPBB3-14437
2016-03-06 10:40:42 +01:00
Marc Alexander
1e10664739 [ticket/14437] Sort attachments after assigning inline attachments
This does not seem to cause any issues but prevents us from having to consider
the currenty display order.

PHPBB3-14437
2016-03-06 00:14:47 +01:00
Marc Alexander
ad23b2330c Merge pull request #4200 from RMcGirr83/ticket_14508
[ticket/14508] Change language notice on account activation
2016-03-05 12:12:20 +01:00
Richard McGirr
83fd8e88d6 [ticket/14508] Adjust account inactive language
PHPBB3-14508
2016-03-03 06:55:36 -05:00
Richard McGirr
65ce507dda [ticket/14508] Change language notice on account activation
PHPBB3-14508
2016-03-02 07:05:37 -05:00
Marc Alexander
a4040e53b7 Merge pull request #4153 from gn36/ticket/14443
[ticket/14443] Introduce additional parameter to messenger
2016-02-28 10:15:41 +01:00
lavigor
40bd4c8b72 [ticket/14486] Use empty() and move error check.
PHPBB3-14486
2016-02-27 20:05:59 +03:00
Martin Beckmann
5d579631d7 [ticket/14443] substr($var, 0, 1) -> $var[0]
PHPBB3-14443
2016-02-27 15:17:17 +01:00
lavigor
276d48ed4f [ticket/14134] Fix code comments.
PHPBB3-14134
2016-02-27 16:55:05 +03:00
Marc Alexander
747a70964e Merge pull request #4086 from rxu/ticket/14366
[ticket/14366] Add core events to the function decode_message()
2016-02-27 11:41:50 +01:00
Marc Alexander
ee7cba5df7 Merge pull request #4085 from rxu/ticket/14365
[ticket/14365] Add core event to the function topic_review()
2016-02-27 11:04:52 +01:00
Marc Alexander
34389df1ae Merge pull request #4049 from rxu/ticket/14316
[ticket/14316] Add events before/after the custom/zebra fields in pfile view
2016-02-27 10:52:09 +01:00
Marc Alexander
3a6e6b997a Merge pull request #4195 from marc1706/ticket/14500
[ticket/14500] Specify prevversion instead of duplicate newversion
2016-02-27 10:45:12 +01:00
Marc Alexander
8e6a21955a [ticket/14500] Specify prevversion instead of duplicate newversion
PHPBB3-14500
2016-02-27 09:48:29 +01:00
rxu
cd3b93b9e2 [ticket/14366] Add core events to the function decode_message()
Remove match/replace vars, use alternative var for the message var,
update the target phpBB version.

PHPBB3-14366
2016-02-27 12:08:58 +07:00
rxu
2076280947 [ticket/14365] Fix a typo in the docblock.
PHPBB3-14365
2016-02-27 11:55:41 +07:00
rxu
673acc7313 [ticket/14316] Add events before/after the custom/zebra fields in profile view
PHPBB3-14316
2016-02-27 11:53:19 +07:00
Jakub Senko
ec70ec96e7 [ticket/14189] Add core.gen_sort_selects_after event
PHPBB3-14189
2016-02-26 23:10:18 +01:00
Marc Alexander
db1b73a3f4 [ticket/14496] Destroy update_list_time cache variable on intro
PHPBB3-14496
2016-02-26 16:58:04 +01:00
Marc Alexander
b6cf2d7284 [ticket/14496] Cache last update of update list instead of using filemtime
PHPBB3-14496
2016-02-26 12:07:35 +01:00
Marc Alexander
c5c2f7f7d0 [ticket/14437] Correctly assume index from attachment display order
PHPBB3-14437
2016-02-21 14:10:45 +01:00
Marc Alexander
43e87e3e63 [ticket/13842] Prevent internal server errors without rewrite module on IIS
PHPBB3-13842
2016-02-19 17:01:58 +01:00
Tristan Darricau
6e4ab6509b Merge pull request #4185 from marc1706/ticket/13681
[ticket/13681] Invalidate and reset opcache where necessary

* marc1706/ticket/13681:
  [ticket/13681] Invalidate and reset opcache where necessary
2016-02-18 21:55:11 +01:00
Marc Alexander
bd12427fd4 [ticket/13681] Invalidate and reset opcache where necessary
PHPBB3-13681
2016-02-18 19:03:56 +01:00
Joas Schilling
fc66f00236 Merge branch 'prep-release-3.1.8' into 3.1.x
Conflicts:
	build/build.xml
	phpBB/includes/constants.php
	phpBB/install/schemas/schema_data.sql
2016-02-18 18:38:43 +01:00
lavigor
4b4584bcd4 [ticket/14486] Add an event and fix an event in login_box()
PHPBB3-14486
2016-02-18 19:22:11 +03:00
Marc Alexander
9eedf29021 [ticket/14481] Use port 443 if https is specified in x-forwarded-proto
PHPBB3-14481
2016-02-16 16:33:19 +01:00
Marc Alexander
accf8f8625 [ticket/14481] Respect HTTP_X_FORWARDED headers for implying https
PHPBB3-14481
2016-02-15 22:06:25 +01:00
Joas Schilling
17e21d5140 [3.1.x] Increase dev version for 3.1.9 2016-02-13 18:01:32 +01:00
Joas Schilling
c2ea2a3e18 Merge branch 'prep-release-3.1.8' into 3.1.x 2016-02-13 18:00:20 +01:00
Marc Alexander
b39b3da5af [ticket/14272] Allow input of floats for filesize
This might be needed while switching the default input from KiB to MiB or
similar changes to settings.

PHPBB3-14272
2016-02-03 22:03:31 +01:00
Martin Beckmann
a35314c6ea [ticket/14443] Avoid duplicate slashes
PHPBB3-14443
2016-02-02 20:30:57 +01:00
Martin Beckmann
fdd5a18763 [ticket/14443] Introduce additional parameter to messenger
PHPBB3-14443
2016-02-01 23:11:39 +01:00
LaxSlash
575468931f [ticket/14395] Add event core.viewtopic_add_quickmod_option_after
Added an event before the function phpbb_add_quickmod_option is called in
the viewtopic.php file. The function is run before any event can be called to
modify ... meaning that any modifications done to this array
will not affect the options displayed to the user on the viewtopic page itself.
This event serves two purposes - one, it is easier to add new quickmod options,
and two, it allows an extenstion developer to check additional permissions and
apply further authentication for the display of the quickmod options.

PHPBB3-14395
2016-01-08 02:44:58 -05:00
LaxSlash
5f052ec8dc [ticket/14395] Add event core.viewtopic_add_quickmod_option_after
Added an event before the function phpbb_add_quickmod_option is called in
the viewtopic.php file. The function is run before any event can be called to
modify ... meaning that any modifications done to this array
will not affect the options displayed to the user on the viewtopic page itself.
This event serves two purposes - one, it is easier to add new quickmod options,
and two, it allows an extenstion developer to check additional permissions and
apply further authentication for the display of the quickmod options.

PHPBB3-14395
2016-01-08 02:17:41 -05:00
LaxSlash
e030f0ca09 [ticket/14395] Add event core.viewtopic_add_quickmod_option_after
Added an event before the function phpbb_add_quickmod_option is called in
the viewtopic.php file. The function is run before any event can be called to
modify ... meaning that any modifications done to this array
will not affect the options displayed to the user on the viewtopic page itself.
This event serves two purposes - one, it is easier to add new quickmod options,
and two, it allows an extenstion developer to check additional permissions and
apply further authentication for the display of the quickmod options.

PHPBB3-14395
2016-01-08 01:30:36 -05:00
LaxSlash
8e8fac17ff [ticket/14395] Move call to phpbb_add_quickmod_option
Moved the call to function phpbb_add_quickmod_option to being under the core
event core.viewtopic_assign_template_vars_before so as to enable the
modification of elements in the  BEFORE they are assigned to the
template, so that removed elements don't show up in a non-functional state.
Allows the user to perform additional permissions checks on the items within the
array.

PHPBB3-14395
2016-01-07 15:36:10 -05:00
Marc Alexander
c9541e0795 [ticket/14272] Use input type number instead of text in avatars
PHPBB3-14272
2016-01-01 17:26:14 +01:00
Marc Alexander
f3c2c497d8 [ticket/14272] Assign min and max values for avatar driver settings
PHPBB3-14272
2016-01-01 17:26:14 +01:00
Marc Alexander
805b084607 [ticket/14272] Define min and max values for avatar width and height
PHPBB3-14272
2015-12-27 08:39:07 +01:00
Marc Alexander
74ec6f4e9a [ticket/14272] Disable not toggled form elements
PHPBB3-14272
2015-12-27 08:39:06 +01:00
rxu
fb78fc7ae0 [ticket/14366] Add core events to the function decode_message()
Add core event to the function decode_message() in
includes/functions_content.php to allow extensions performing additional
message handling before/after decoding.

PHPBB3-14366
2015-12-17 23:06:51 +07:00
rxu
561344da53 [ticket/14365] Add core event to the function topic_review()
Add core event to the function topic_review() in includes/functions_posting.php
to allow modifying posts list to review.

PHPBB3-14365
2015-12-17 22:31:28 +07:00
Marc Alexander
7705017f63 [ticket/14272] Make sure phpbb_avatar_manager was defined
PHPBB3-14272
2015-12-03 11:58:53 +01:00
Marc Alexander
c99386e155 [ticket/14272] Remove useless check
PHPBB3-14272
2015-11-08 13:11:16 +01:00
Marc Alexander
685449bfe3 [ticket/14272] Fix invalid or missing min/max settings
PHPBB3-14272
2015-11-06 10:31:56 +01:00
Marc Alexander
be5a40f6a9 [ticket/14272] Assign min/max for all allowed types
PHPBB3-14272
2015-11-06 10:25:31 +01:00
Marc Alexander
aca6e64669 [ticket/14272] Only use maxlength and size for allowed input elements
PHPBB3-14272
2015-11-06 10:20:05 +01:00
lavigor
9a5de3fc1e [ticket/14134] Send warning notification PM in user's language.
PHPBB3-14134
2015-09-02 19:37:41 +03:00
146 changed files with 1553 additions and 542 deletions

View File

@@ -2,5 +2,5 @@
1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register)
2. [Create a ticket (unless there already is one)](http://tracker.phpbb.com/secure/CreateIssue!default.jspa)
3. Read our [Coding guidelines](https://wiki.phpbb.com/Coding_guidelines) and [Git Contribution Guidelines](http://wiki.phpbb.com/Git); if you're new to git, also read [the introduction guide](http://wiki.phpbb.com/display/DEV/Working+with+Git)
3. Read our [Coding guidelines](https://wiki.phpbb.com/Coding_guidelines) and [Git Contribution Guidelines](http://wiki.phpbb.com/Git)
4. Send us a pull request

View File

@@ -2,34 +2,34 @@
## ABOUT
phpBB is a free bulletin board written in PHP.
phpBB is a free open-source bulletin board written in PHP.
## COMMUNITY
Find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the development on [area51](http://area51.phpbb.com/phpBB/index.php).
Get your copy of phpBB, find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the development on [area51](http://area51.phpbb.com/phpBB/index.php).
## INSTALLING DEPENDENCIES
To be able to run an installation from the repo (and not from a pre-built package) you need to run the following commands to install phpBB's dependencies.
cd phpBB
php ../composer.phar install --dev
php ../composer.phar install
## CONTRIBUTE
1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register)
2. [Create a ticket (unless there already is one)](http://tracker.phpbb.com/secure/CreateIssue!default.jspa)
3. [Read our Git Contribution Guidelines](http://wiki.phpbb.com/Git); if you're new to git, also read [the introduction guide](http://wiki.phpbb.com/display/DEV/Working+with+Git)
3. Read our [Coding guidelines](https://wiki.phpbb.com/Coding_guidelines) and [Git Contribution Guidelines](http://wiki.phpbb.com/Git)
4. Send us a pull request
## AUTOMATED TESTING
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](http://bamboo.phpbb.com) or check our travis build below:
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](http://bamboo.phpbb.com) or check our travis builds below:
* [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=master)](http://travis-ci.org/phpbb/phpbb) **master** - Latest development version
* [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=3.2.x)](http://travis-ci.org/phpbb/phpbb) **3.2.x** - Development of version 3.2.x
* [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=3.1.x)](http://travis-ci.org/phpbb/phpbb) **3.1.x** - Development of version 3.1.x
* [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=3.0.x)](http://travis-ci.org/phpbb/phpbb) **3.0.x** - Development of version 3.0.x
## LICENSE

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.1.8" />
<property name="prevversion" value="3.1.7-pl1" />
<property name="olderversions" value="3.0.14, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8-RC1" />
<property name="newversion" value="3.1.9" />
<property name="prevversion" value="3.1.8" />
<property name="olderversions" value="3.0.14, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1, 3.1.9-RC1" />
<!-- no configuration should be needed beyond this point -->
<property name="oldversions" value="${olderversions}, ${prevversion}" />

Binary file not shown.

View File

@@ -196,7 +196,7 @@
</dl>
<dl>
<dt><label for="extgroup_filesize">{L_MAX_EXTGROUP_FILESIZE}{L_COLON}</label></dt>
<dd><input type="number" id="extgroup_filesize" size="3" maxlength="15" name="max_filesize" value="{EXTGROUP_FILESIZE}" /> <select name="size_select">{S_EXT_GROUP_SIZE_OPTIONS}</select></dd>
<dd><input type="number" id="extgroup_filesize" min="0" max="999999999999999" step="any" name="max_filesize" value="{EXTGROUP_FILESIZE}" /> <select name="size_select">{S_EXT_GROUP_SIZE_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="assigned_extensions">{L_ASSIGNED_EXTENSIONS}{L_COLON}</label></dt>
@@ -346,7 +346,7 @@
<td><a href="{orphan.U_FILE}">{orphan.REAL_FILENAME}</a></td>
<td>{orphan.FILETIME}</td>
<td>{orphan.FILESIZE}</td>
<td><strong>{L_ATTACH_ID}{L_COLON} </strong><input type="number" name="post_id[{orphan.ATTACH_ID}]" maxlength="10" value="{orphan.POST_ID}" style="width: 75%;" /></td>
<td><strong>{L_ATTACH_ID}{L_COLON} </strong><input type="number" min="0" max="9999999999" name="post_id[{orphan.ATTACH_ID}]" value="{orphan.POST_ID}" style="width: 75%;" /></td>
<td><input type="checkbox" class="radio" name="add[{orphan.ATTACH_ID}]" /></td>
<td><input type="checkbox" class="radio" name="delete[{orphan.ATTACH_ID}]" /></td>
</tr>

View File

@@ -5,7 +5,7 @@
<dl>
<dt><label for="avatar_gravatar_width">{L_GRAVATAR_AVATAR_SIZE}{L_COLON}</label><br /><span>{L_GRAVATAR_AVATAR_SIZE_EXPLAIN}</span></dt>
<dd>
<input type="number" name="avatar_gravatar_width" id="avatar_gravatar_width" size="3" value="{AVATAR_GRAVATAR_WIDTH}" class="inputbox autowidth" /> {L_PIXEL} &times;&nbsp;
<input type="number" name="avatar_gravatar_height" id="avatar_gravatar_height" size="3" value="{AVATAR_GRAVATAR_HEIGHT}" class="inputbox autowidth" /> {L_PIXEL}
<input type="number" name="avatar_gravatar_width" id="avatar_gravatar_width" min="{AVATAR_MIN_WIDTH}" max="{AVATAR_MAX_WIDTH}" value="{AVATAR_GRAVATAR_WIDTH}" class="inputbox autowidth" /> {L_PIXEL} &times;&nbsp;
<input type="number" name="avatar_gravatar_height" id="avatar_gravatar_height" min="{AVATAR_MIN_HEIGHT}" max="{AVATAR_MAX_HEIGHT}" value="{AVATAR_GRAVATAR_HEIGHT}" class="inputbox autowidth" /> {L_PIXEL}
</dd>
</dl>

View File

@@ -5,7 +5,7 @@
<dl>
<dt><label for="avatar_remote_width">{L_LINK_REMOTE_SIZE}{L_COLON}</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></dt>
<dd>
<input type="number" name="avatar_remote_width" id="avatar_remote_width" size="3" value="{AVATAR_REMOTE_WIDTH}" class="inputbox autowidth" /> {L_PIXEL} &times;&nbsp;
<input type="number" name="avatar_remote_height" id="avatar_remote_height" size="3" value="{AVATAR_REMOTE_HEIGHT}" class="inputbox autowidth" /> {L_PIXEL}
<input type="number" name="avatar_remote_width" id="avatar_remote_width" min="{AVATAR_MIN_WIDTH}" max="{AVATAR_MAX_WIDTH}" value="{AVATAR_REMOTE_WIDTH}" class="inputbox autowidth" /> {L_PIXEL} &times;&nbsp;
<input type="number" name="avatar_remote_height" id="avatar_remote_height" min="{AVATAR_MIN_HEIGHT}" max="{AVATAR_MAX_HEIGHT}" value="{AVATAR_REMOTE_HEIGHT}" class="inputbox autowidth" /> {L_PIXEL}
</dd>
</dl>

View File

@@ -27,11 +27,11 @@
</dl>
<dl>
<dt><label for="max_reg_attempts">{L_REG_LIMIT}{L_COLON}</label><br /><span>{L_REG_LIMIT_EXPLAIN}</span></dt>
<dd><input id="max_reg_attempts" type="number" size="4" maxlength="4" min="0" max="9999" name="max_reg_attempts" value="{REG_LIMIT}" /></dd>
<dd><input id="max_reg_attempts" type="number" min="0" max="9999" name="max_reg_attempts" value="{REG_LIMIT}" /></dd>
</dl>
<dl>
<dt><label for="max_login_attempts">{L_MAX_LOGIN_ATTEMPTS}{L_COLON}</label><br /><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></dt>
<dd><input id="max_login_attempts" type="number" size="4" maxlength="4" min="0" max="9999" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></dd>
<dd><input id="max_login_attempts" type="number" min="0" max="9999" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></dd>
</dl>
<dl>
<dt><label for="enable_post_confirm">{L_VISUAL_CONFIRM_POST}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_POST_EXPLAIN}</span></dt>

View File

@@ -242,7 +242,7 @@
</dl>
<dl>
<dt><label for="topics_per_page">{L_FORUM_TOPICS_PAGE}{L_COLON}</label><br /><span>{L_FORUM_TOPICS_PAGE_EXPLAIN}</span></dt>
<dd><input type="number" id="topics_per_page" name="topics_per_page" value="{TOPICS_PER_PAGE}" size="4" maxlength="4" min="0" max="9999" /></dd>
<dd><input type="number" id="topics_per_page" name="topics_per_page" value="{TOPICS_PER_PAGE}" min="0" max="9999" /></dd>
</dl>
<!-- EVENT acp_forums_normal_settings_append -->
</fieldset>
@@ -257,15 +257,15 @@
</dl>
<dl>
<dt><label for="prune_freq">{L_AUTO_PRUNE_FREQ}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_FREQ_EXPLAIN}</span></dt>
<dd><input type="number" id="prune_freq" name="prune_freq" value="{PRUNE_FREQ}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
<dd><input type="number" id="prune_freq" name="prune_freq" value="{PRUNE_FREQ}" min="0" max="9999" /> {L_DAYS}</dd>
</dl>
<dl>
<dt><label for="prune_days">{L_AUTO_PRUNE_DAYS}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_DAYS_EXPLAIN}</span></dt>
<dd><input type="number" id="prune_days" name="prune_days" value="{PRUNE_DAYS}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
<dd><input type="number" id="prune_days" name="prune_days" value="{PRUNE_DAYS}" min="0" max="9999" /> {L_DAYS}</dd>
</dl>
<dl>
<dt><label for="prune_viewed">{L_AUTO_PRUNE_VIEWED}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_VIEWED_EXPLAIN}</span></dt>
<dd><input type="number" id="prune_viewed" name="prune_viewed" value="{PRUNE_VIEWED}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
<dd><input type="number" id="prune_viewed" name="prune_viewed" value="{PRUNE_VIEWED}" min="0" max="9999" /> {L_DAYS}</dd>
</dl>
<dl>
<dt><label for="prune_old_polls">{L_PRUNE_OLD_POLLS}{L_COLON}</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
@@ -289,11 +289,11 @@
</dl>
<dl>
<dt><label for="prune_shadow_freq">{L_AUTO_PRUNE_SHADOW_FREQ}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_SHADOW_FREQ_EXPLAIN}</span></dt>
<dd><input type="number" id="prune_shadow_freq" name="prune_shadow_freq" value="{PRUNE_SHADOW_FREQ}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
<dd><input type="number" id="prune_shadow_freq" name="prune_shadow_freq" value="{PRUNE_SHADOW_FREQ}" min="0" max="9999" /> {L_DAYS}</dd>
</dl>
<dl>
<dt><label for="prune_shadow_days">{L_AUTO_PRUNE_SHADOW_DAYS}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_SHADOW_DAYS_EXPLAIN}</span></dt>
<dd><input type="number" id="prune_shadow_days" name="prune_shadow_days" value="{PRUNE_SHADOW_DAYS}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
<dd><input type="number" id="prune_shadow_days" name="prune_shadow_days" value="{PRUNE_SHADOW_DAYS}" min="0" max="9999" /> {L_DAYS}</dd>
</dl>
<!-- EVENT acp_forums_prune_settings_append -->
</fieldset>

View File

@@ -86,11 +86,11 @@
<legend>{L_GROUP_SETTINGS_SAVE}</legend>
<dl>
<dt><label for="group_message_limit">{L_GROUP_MESSAGE_LIMIT}{L_COLON}</label><br /><span>{L_GROUP_MESSAGE_LIMIT_EXPLAIN}</span></dt>
<dd><input name="group_message_limit" type="number" id="group_message_limit" maxlength="4" size="4" min="0" max="9999" value="{GROUP_MESSAGE_LIMIT}" /></dd>
<dd><input name="group_message_limit" type="number" id="group_message_limit" min="0" max="9999" value="{GROUP_MESSAGE_LIMIT}" /></dd>
</dl>
<dl>
<dt><label for="group_max_recipients">{L_GROUP_MAX_RECIPIENTS}{L_COLON}</label><br /><span>{L_GROUP_MAX_RECIPIENTS_EXPLAIN}</span></dt>
<dd><input name="group_max_recipients" type="number" id="group_max_recipients" maxlength="10" size="4" value="{GROUP_MAX_RECIPIENTS}" /></dd>
<dd><input name="group_max_recipients" type="number" id="group_max_recipients" min="0" max="9999" value="{GROUP_MAX_RECIPIENTS}" /></dd>
</dl>
<dl>
<dt><label for="group_colour">{L_GROUP_COLOR}{L_COLON}</label><br /><span>{L_GROUP_COLOR_EXPLAIN}</span></dt>

View File

@@ -108,8 +108,8 @@
<td><input class="text post" type="text" name="code[{items.IMG}]" value="{items.CODE}" size="10" maxlength="50" /></td>
<td><input class="text post" type="text" name="emotion[{items.IMG}]" value="{items.EMOTION}" size="10" maxlength="50" /></td>
<!-- ENDIF -->
<td><input class="text post" type="number" size="3" name="width[{items.IMG}]" value="{items.WIDTH}" /></td>
<td><input class="text post" type="number" size="3" name="height[{items.IMG}]" value="{items.HEIGHT}" /></td>
<td><input class="text post" type="number" min="0" max="999" name="width[{items.IMG}]" value="{items.WIDTH}" /></td>
<td><input class="text post" type="number" min="0" max="999" name="height[{items.IMG}]" value="{items.HEIGHT}" /></td>
<td>
<input type="checkbox" class="radio" name="display_on_posting[{items.IMG}]"{items.POSTING_CHECKED} onclick="toggle_select('{items.A_IMG}', this.checked, '{items.S_ROW_COUNT}');"/>
<!-- IF items.S_ID -->
@@ -136,8 +136,8 @@
<td style="vertical-align: top;"><img src="{IMG_SRC}" id="add_image_src" alt="" title="" /></td>
<td><input class="text post" type="text" name="add_code" id="add_code" value="{CODE}" size="10" maxlength="50" /></td>
<td><input class="text post" type="text" name="add_emotion" id="add_emotion" value="{EMOTION}" size="10" maxlength="50" /></td>
<td><input class="text post" type="number" size="3" name="add_width" id="add_width" value="{WIDTH}" /></td>
<td><input class="text post" type="number" size="3" name="add_height" id="add_height" value="{HEIGHT}" /></td>
<td><input class="text post" type="number" min="0" max="999" name="add_width" id="add_width" value="{WIDTH}" /></td>
<td><input class="text post" type="number" min="0" max="999" name="add_height" id="add_height" value="{HEIGHT}" /></td>
<td><input type="checkbox" class="radio" name="add_display_on_posting" checked="checked" onclick="toggle_select('add', this.checked, 'add_order');"/></td>
<td><select id="order_add_order" name="add_order">
<optgroup id="order_disp_add_order" label="{L_DISPLAY_POSTING}">{S_ADD_ORDER_LIST_DISPLAY}</optgroup>

View File

@@ -52,7 +52,7 @@
</table>
<fieldset class="display-options">
{L_DISPLAY_LOG}{L_COLON} &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}<!-- IF .pagination -->&nbsp;{L_USERS_PER_PAGE}{L_COLON} <input class="inputbox autowidth" type="number" name="users_per_page" id="users_per_page" size="3" value="{USERS_PER_PAGE}" /><!-- ENDIF -->
{L_DISPLAY_LOG}{L_COLON} &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}<!-- IF .pagination -->&nbsp;{L_USERS_PER_PAGE}{L_COLON} <input class="inputbox autowidth" type="number" name="users_per_page" id="users_per_page" min="0" max="999" value="{USERS_PER_PAGE}" /><!-- ENDIF -->
<input class="button2" type="submit" value="{L_GO}" name="sort" />
</fieldset>

View File

@@ -31,7 +31,7 @@
</dl>
<dl>
<dt><label for="jab_port">{L_JAB_PORT}{L_COLON}</label><br /><span>{L_JAB_PORT_EXPLAIN}</span></dt>
<dd><input type="number" id="jab_port" name="jab_port" value="{JAB_PORT}" maxlength="5" size="5" /></dd>
<dd><input type="number" id="jab_port" name="jab_port" value="{JAB_PORT}" min="0" max="99999" /></dd>
</dl>
<dl>
<dt><label for="jab_username">{L_JAB_USERNAME}{L_COLON}</label><br /><span>{L_JAB_USERNAME_EXPLAIN}</span></dt>
@@ -50,7 +50,7 @@
<!-- ENDIF -->
<dl>
<dt><label for="jab_package_size">{L_JAB_PACKAGE_SIZE}{L_COLON}</label><br /><span>{L_JAB_PACKAGE_SIZE_EXPLAIN}</span></dt>
<dd><input type="number" id="jab_package_size" name="jab_package_size" value="{JAB_PACKAGE_SIZE}" maxlength="5" size="5" min="0" max="99999" /></dd>
<dd><input type="number" id="jab_package_size" name="jab_package_size" value="{JAB_PACKAGE_SIZE}" min="0" max="99999" /></dd>
</dl>
</fieldset>

View File

@@ -44,7 +44,7 @@
<div id="posts"<!-- IF S_SPECIAL_RANK --> style="display: none;"<!-- ENDIF -->>
<dl>
<dt><label for="min_posts">{L_RANK_MINIMUM}{L_COLON}</label></dt>
<dd><input name="min_posts" type="number" id="min_posts" maxlength="10" value="{MIN_POSTS}" /></dd>
<dd><input name="min_posts" type="number" id="min_posts" min="0" max="9999999999" value="{MIN_POSTS}" /></dd>
</dl>
</div>

View File

@@ -18,11 +18,11 @@
</dl>
<dl>
<dt><label for="search_interval">{L_SEARCH_INTERVAL}{L_COLON}</label><br /><span>{L_SEARCH_INTERVAL_EXPLAIN}</span></dt>
<dd><input id="search_interval" type="number" size="4" maxlength="4" min="0" max="9999" name="config[search_interval]" value="{SEARCH_INTERVAL}" /> {L_SECONDS}</dd>
<dd><input id="search_interval" type="number" min="0" max="9999" name="config[search_interval]" value="{SEARCH_INTERVAL}" /> {L_SECONDS}</dd>
</dl>
<dl>
<dt><label for="search_anonymous_interval">{L_SEARCH_GUEST_INTERVAL}{L_COLON}</label><br /><span>{L_SEARCH_GUEST_INTERVAL_EXPLAIN}</span></dt>
<dd><input id="search_anonymous_interval" type="number" size="4" maxlength="4" min="0" max="9999" name="config[search_anonymous_interval]" value="{SEARCH_GUEST_INTERVAL}" /> {L_SECONDS}</dd>
<dd><input id="search_anonymous_interval" type="number" min="0" max="9999" name="config[search_anonymous_interval]" value="{SEARCH_GUEST_INTERVAL}" /> {L_SECONDS}</dd>
</dl>
<dl>
<dt><label for="limit_search_load">{L_LIMIT_SEARCH_LOAD}{L_COLON}</label><br /><span>{L_LIMIT_SEARCH_LOAD_EXPLAIN}</span></dt>
@@ -30,15 +30,15 @@
</dl>
<dl>
<dt><label for="min_search_author_chars">{L_MIN_SEARCH_AUTHOR_CHARS}{L_COLON}</label><br /><span>{L_MIN_SEARCH_AUTHOR_CHARS_EXPLAIN}</span></dt>
<dd><input id="min_search_author_chars" type="number" size="4" maxlength="4" min="0" max="9999" name="config[min_search_author_chars]" value="{MIN_SEARCH_AUTHOR_CHARS}" /></dd>
<dd><input id="min_search_author_chars" type="number" min="0" max="9999" name="config[min_search_author_chars]" value="{MIN_SEARCH_AUTHOR_CHARS}" /></dd>
</dl>
<dl>
<dt><label for="max_num_search_keywords">{L_MAX_NUM_SEARCH_KEYWORDS}{L_COLON}</label><br /><span>{L_MAX_NUM_SEARCH_KEYWORDS_EXPLAIN}</span></dt>
<dd><input id="max_num_search_keywords" type="number" size="4" maxlength="4" min="0" max="9999" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
<dd><input id="max_num_search_keywords" type="number" min="0" max="9999" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
</dl>
<dl>
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}{L_COLON}</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
<dd><input id="search_store_results" type="number" size="4" maxlength="6" min="0" max="999999" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
<dd><input id="search_store_results" type="number" min="0" max="999999" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
</dl>
</fieldset>

View File

@@ -2,6 +2,7 @@
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- IF META -->{META}<!-- ENDIF -->
<title>{PAGE_TITLE}</title>

View File

@@ -2,6 +2,7 @@
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- IF META -->{META}<!-- ENDIF -->
<title>{PAGE_TITLE}</title>

View File

@@ -2,6 +2,7 @@
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- IF META -->{META}<!-- ENDIF -->
<title>{PAGE_TITLE}</title>

View File

@@ -2,6 +2,7 @@
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- IF META -->{META}<!-- ENDIF -->
<title>{PAGE_TITLE}</title>

View File

@@ -1538,6 +1538,13 @@ phpbb.toggleSelectSettings = function(el) {
var $this = $(this),
$setting = $($this.data('toggle-setting'));
$setting.toggle($this.is(':selected'));
// Disable any input elements that are not visible right now
if ($this.is(':selected')) {
$($this.data('toggle-setting') + ' input').prop('disabled', false);
} else {
$($this.data('toggle-setting') + ' input').prop('disabled', true);
}
});
};

View File

@@ -358,6 +358,12 @@ function getCaretPosition(txtarea) {
if ($('#attach-panel').length) {
phpbb.showDragNDrop(textarea);
}
$('textarea').on('keydown', function (e) {
if (e.which === 13 && (e.metaKey || e.ctrlKey)) {
$(this).closest('form').submit();
}
});
});
})(jQuery);

View File

@@ -38,7 +38,13 @@ if (!defined('PHPBB_INSTALLED'))
// available as used by the redirect function
$server_name = (!empty($_SERVER['HTTP_HOST'])) ? strtolower($_SERVER['HTTP_HOST']) : ((!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv('SERVER_NAME'));
$server_port = (!empty($_SERVER['SERVER_PORT'])) ? (int) $_SERVER['SERVER_PORT'] : (int) getenv('SERVER_PORT');
$secure = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 1 : 0;
$secure = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 1 : 0;
if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
{
$secure = 1;
$server_port = 443;
}
$script_name = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
if (!$script_name)

706
phpBB/composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -2,6 +2,7 @@
<html dir="ltr" lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="keywords" content="" />
<meta name="description" content="phpBB 3.1.x Changelog" />
<title>phpBB &bull; Changelog</title>
@@ -49,6 +50,7 @@
<ol>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#v318">Changes since 3.1.8</a></li>
<li><a href="#v317pl1">Changes since 3.1.7-PL1</a></li>
<li><a href="#v317">Changes since 3.1.7</a></li>
<li><a href="#v316">Changes since 3.1.6</a></li>
@@ -116,7 +118,69 @@
<div class="content">
<a name="v317pl1"></a><h3>Changes since 3.1.7-PL1</h3>
<a name="v318"></a><h3>Changes since 3.1.8</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8058">PHPBB3-8058</a>] - Default style in ACP-&gt;Board Settings not observing offset</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13028">PHPBB3-13028</a>] - &quot;View unanswered posts&quot; link should be called instead &quot;View unanswered topics&quot;</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13264">PHPBB3-13264</a>] - Editing an unapproved post as a moderator/admin approves it</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13521">PHPBB3-13521</a>] - Q&amp;A Captcha ACP, required fields error corrupts inputted data</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13630">PHPBB3-13630</a>] - NULL value parsed into $select_single can cause 403 Forbidden on certain restrictive hosting environments for &quot;Find a Member&quot; function within Private Message composition</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13681">PHPBB3-13681</a>] - Email queue shouldn't be cached by opcache</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13683">PHPBB3-13683</a>] - Controller generates urls with absolute path of phpbb's root</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13842">PHPBB3-13842</a>] - Missing rewrite module on IIS7 leads to an error</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13977">PHPBB3-13977</a>] - Fatal error entering UCP if bookmarked topic was deleted</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14132">PHPBB3-14132</a>] - SQL Error when creating a new subject on fresh installation</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14136">PHPBB3-14136</a>] - IE compatibility meta is missing in overall_header.html</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14241">PHPBB3-14241</a>] - Security bug into Spambot control Questions</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14272">PHPBB3-14272</a>] - Use valid html5 input elements in forms</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14290">PHPBB3-14290</a>] - Function set_modified_headers() never sends 304 'Not Modified' header</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14408">PHPBB3-14408</a>] - Remove span corners</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14422">PHPBB3-14422</a>] - Support cmd+enter &amp; ctrl+enter for submitting message</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14437">PHPBB3-14437</a>] - Place Inline Images on Post get scrambled up -- not follow the order you place them in.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14443">PHPBB3-14443</a>] - jabber notification-template prefix &quot;short&quot; breaks resolution of paths in extensions</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14475">PHPBB3-14475</a>] - Do not log upon automatically removing users form newly registered users group</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14481">PHPBB3-14481</a>] - phpBB does not obey HTTP_X_FORWARDED_PORT header</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14483">PHPBB3-14483</a>] - call to header(arg, arg) function sendHeaders() in Response.php causes Error 500 in app.php generated links</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14496">PHPBB3-14496</a>] - Automatic update relies on cache creating files in cache folder</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14500">PHPBB3-14500</a>] - Duplicate newversion in build.xml</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14514">PHPBB3-14514</a>] - Users get skipped in passwords_convert_p1 migration</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14519">PHPBB3-14519</a>] - Do not query database for unread notifications if all are retrieved</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14532">PHPBB3-14532</a>] - Database column default incorrectly escaped on MSSQL</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14533">PHPBB3-14533</a>] - &quot;U_NOTIFICATION_SETTINGS&quot; doesn't return the correct URL</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14536">PHPBB3-14536</a>] - Force timestamp to be integer in user::format_date()</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14559">PHPBB3-14559</a>] - Attachments' behaviour in quotes</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14562">PHPBB3-14562</a>] - Extension's permissions don't have language fallback</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14570">PHPBB3-14570</a>] - Board versions for 3.2.x can be accidentally downgraded to 3.1.x</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14577">PHPBB3-14577</a>] - Stop using sizeof() inside for() loop</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10356">PHPBB3-10356</a>] - Username search should find all users for administrators instead of NORMALs and FOUNDERs only</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12305">PHPBB3-12305</a>] - Add new event core.viewforum_get_topic_id_sql to control forum topic listing</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14134">PHPBB3-14134</a>] - Send warning notification PM in user's language.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14316">PHPBB3-14316</a>] - Add memberlist_view.html template events before/after the custom fields and zebra links</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14365">PHPBB3-14365</a>] - Add core event to the function topic_review() </li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14366">PHPBB3-14366</a>] - Add core events to the function decode_message()</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14395">PHPBB3-14395</a>] - Add event core.viewtopic_add_quickmod_option_after</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14471">PHPBB3-14471</a>] - Add filedata var to the core.avatar_driver_upload_move_file_before event</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14486">PHPBB3-14486</a>] - Add an event and fix an event in login_box()</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14508">PHPBB3-14508</a>] - Change language notice on account activation</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14540">PHPBB3-14540</a>] - Adjust class recursive_dot_prefix_filter_iterator to increase performance</li>
</ul>
<h4>New Feature</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12684">PHPBB3-12684</a>] - Add a command to add a user from the CLI</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14189">PHPBB3-14189</a>] - [PHP] - core.gen_sort_selects_after</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14538">PHPBB3-14538</a>] - Update composer dependencies</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14565">PHPBB3-14565</a>] - Updates composer to 1.0.0-b2</li>
</ul>
<a name="v317pl1"></a><h3>Changes since 3.1.7-PL1</h3>
<h4>Bug</h4>
<ul>

View File

@@ -2,6 +2,7 @@
<html dir="ltr" lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="keywords" content="" />
<meta name="description" content="phpBB 3.1.x frequently asked questions" />
<title>phpBB &bull; FAQ</title>

View File

@@ -2,6 +2,7 @@
<html dir="ltr" lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="keywords" content="" />
<meta name="description" content="phpBB 3.1.x Installation, updating and conversion informations" />
<title>phpBB &bull; Install</title>

View File

@@ -2,6 +2,7 @@
<html dir="ltr" lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="keywords" content="" />
<meta name="description" content="phpBB 3.1.x Readme" />
<title>phpBB &bull; Readme</title>

View File

@@ -2,6 +2,7 @@
<html dir="ltr" lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="keywords" content="" />
<meta name="description" content="This is an explanation of how to use the phpBB auth/acl API" />
<title>phpBB3 &bull; Auth API</title>

View File

@@ -2,6 +2,7 @@
<html dir="ltr" lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="keywords" content="" />
<meta name="description" content="Ascraeus coding guidelines document" />
<title>phpBB3 &bull; Coding Guidelines</title>

View File

@@ -991,6 +991,22 @@ memberlist_view_contact_before
* Since: 3.1.0-b2
* Purpose: Add content before the user contact part of any user profile
memberlist_view_contact_custom_fields_after
===
* Locations:
+ styles/prosilver/template/memberlist_view.html
+ styles/subsilver2/template/memberlist_view.html
* Since: 3.1.9-RC1
* Purpose: Add content after the user contact related custom fields
memberlist_view_contact_custom_fields_before
===
* Locations:
+ styles/prosilver/template/memberlist_view.html
+ styles/subsilver2/template/memberlist_view.html
* Since: 3.1.9-RC1
* Purpose: Add content before the user contact related custom fields
memberlist_view_content_append
===
* Locations:
@@ -1007,6 +1023,22 @@ memberlist_view_content_prepend
* Since: 3.1.0-b3
* Purpose: Add custom content to the user profile view before the main content
memberlist_view_non_contact_custom_fields_after
===
* Locations:
+ styles/prosilver/template/memberlist_view.html
+ styles/subsilver2/template/memberlist_view.html
* Since: 3.1.9-RC1
* Purpose: Add content after the user not contact related custom fields
memberlist_view_non_contact_custom_fields_before
===
* Locations:
+ styles/prosilver/template/memberlist_view.html
+ styles/subsilver2/template/memberlist_view.html
* Since: 3.1.9-RC1
* Purpose: Add content before the user not contact related custom fields
memberlist_view_rank_after
===
* Locations:
@@ -1065,6 +1097,22 @@ memberlist_view_user_statistics_before
* Since: 3.1.0-a1
* Purpose: Add entries before the user statistics part of any user profile
memberlist_view_zebra_after
===
* Locations:
+ styles/prosilver/template/memberlist_view.html
+ styles/subsilver2/template/memberlist_view.html
* Since: 3.1.9-RC1
* Purpose: Add content after the user friends/foes links
memberlist_view_zebra_before
===
* Locations:
+ styles/prosilver/template/memberlist_view.html
+ styles/subsilver2/template/memberlist_view.html
* Since: 3.1.9-RC1
* Purpose: Add content before the user friends/foes links
navbar_header_logged_out_content
===
* Locations:

View File

@@ -1426,7 +1426,7 @@ class acp_attachments
$row['group_name'] = $user->lang['NOT_ASSIGNED'];
$group_name[] = $row;
for ($i = 0; $i < sizeof($group_name); $i++)
for ($i = 0, $groups_size = sizeof($group_name); $i < $groups_size; $i++)
{
if ($default_group === false)
{
@@ -1735,8 +1735,8 @@ class acp_attachments
$size_var = $filesize['si_identifier'];
$value = $filesize['value'];
// size="8" and maxlength="15" attributes as a fallback for browsers that do not support type="number" yet.
return '<input type="number" id="' . $key . '" size="8" maxlength="15" min="0" name="config[' . $key . ']" value="' . $value . '" /> <select name="' . $key . '">' . size_select_options($size_var) . '</select>';
// size and maxlength must not be specified for input of type number
return '<input type="number" id="' . $key . '" min="0" max="999999999999999" step="any" name="config[' . $key . ']" value="' . $value . '" /> <select name="' . $key . '">' . size_select_options($size_var) . '</select>';
}
/**

View File

@@ -842,7 +842,7 @@ class acp_board
{
global $user;
return '<input id="' . $key . '" type="number" size="3" maxlength="3" min="1" max="999" name="config[min_name_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . '&nbsp;&nbsp;<input type="number" size="3" maxlength="3" min="8" max="180" name="config[max_name_chars]" value="' . $this->new_config['max_name_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
return '<input id="' . $key . '" type="number" min="1" max="999" name="config[min_name_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . '&nbsp;&nbsp;<input type="number" min="8" max="180" name="config[max_name_chars]" value="' . $this->new_config['max_name_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
}
/**
@@ -870,7 +870,7 @@ class acp_board
{
global $user;
return '<input id="' . $key . '" type="number" size="3" maxlength="3" min="1" max="999" name="config[min_pass_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . '&nbsp;&nbsp;<input type="number" size="3" maxlength="3" min="8" max="255" name="config[max_pass_chars]" value="' . $this->new_config['max_pass_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
return '<input id="' . $key . '" type="number" min="1" max="999" name="config[min_pass_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . '&nbsp;&nbsp;<input type="number" min="8" max="255" name="config[max_pass_chars]" value="' . $this->new_config['max_pass_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
}
/**

View File

@@ -1411,7 +1411,7 @@ class acp_forums
$diff = sizeof($moved_forums) * 2;
$moved_ids = array();
for ($i = 0; $i < sizeof($moved_forums); ++$i)
for ($i = 0, $size = sizeof($moved_forums); $i < $size; ++$i)
{
$moved_ids[] = $moved_forums[$i]['forum_id'];
}

View File

@@ -324,9 +324,11 @@ class acp_groups
$avatar_data = null;
$avatar_error = array();
/** @var \phpbb\avatar\manager $phpbb_avatar_manager */
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
if ($config['allow_avatar'])
{
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers();
// This is normalised data, without the group_ prefix
@@ -667,6 +669,14 @@ class acp_groups
$avatars_enabled = false;
$selected_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $avatar_data['avatar_type']));
// Assign min and max values before generating avatar driver html
$template->assign_vars(array(
'AVATAR_MIN_WIDTH' => $config['avatar_min_width'],
'AVATAR_MAX_WIDTH' => $config['avatar_max_width'],
'AVATAR_MIN_HEIGHT' => $config['avatar_min_height'],
'AVATAR_MAX_HEIGHT' => $config['avatar_max_height'],
));
foreach ($avatar_drivers as $current_driver)
{
$driver = $phpbb_avatar_manager->get_driver($current_driver);

View File

@@ -888,7 +888,7 @@ class acp_modules
$diff = sizeof($moved_modules) * 2;
$moved_ids = array();
for ($i = 0; $i < sizeof($moved_modules); ++$i)
for ($i = 0, $size = sizeof($moved_modules); $i < $size; ++$i)
{
$moved_ids[] = $moved_modules[$i]['module_id'];
}

View File

@@ -1809,10 +1809,11 @@ class acp_users
case 'avatar':
$avatars_enabled = false;
/** @var \phpbb\avatar\manager $phpbb_avatar_manager */
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
if ($config['allow_avatar'])
{
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers();
// This is normalised data, without the user_ prefix
@@ -1873,6 +1874,14 @@ class acp_users
$selected_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $user_row['user_avatar_type']));
// Assign min and max values before generating avatar driver html
$template->assign_vars(array(
'AVATAR_MIN_WIDTH' => $config['avatar_min_width'],
'AVATAR_MAX_WIDTH' => $config['avatar_max_width'],
'AVATAR_MIN_HEIGHT' => $config['avatar_min_height'],
'AVATAR_MAX_HEIGHT' => $config['avatar_max_height'],
));
foreach ($avatar_drivers as $current_driver)
{
$driver = $phpbb_avatar_manager->get_driver($current_driver);

View File

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

View File

@@ -2234,6 +2234,12 @@ function generate_board_url($without_script_path = false)
$server_name = $user->host;
$server_port = $request->server('SERVER_PORT', 0);
$forwarded_proto = $request->server('HTTP_X_FORWARDED_PROTO');
if (!empty($forwarded_proto) && $forwarded_proto === 'https')
{
$server_port = 443;
}
// Forcing server vars is the only way to specify/override the protocol
if ($config['force_server_vars'] || !$server_name)
@@ -2401,6 +2407,7 @@ function redirect($url, $return = false, $disable_cd_check = false)
echo '<html dir="' . $user->lang['DIRECTION'] . '" lang="' . $user->lang['USER_LANG'] . '">';
echo '<head>';
echo '<meta charset="utf-8">';
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
echo '<meta http-equiv="refresh" content="0; url=' . str_replace('&', '&amp;', $url) . '" />';
echo '<title>' . $user->lang['REDIRECT'] . '</title>';
echo '</head>';
@@ -2821,6 +2828,21 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
$user->setup();
}
/**
* This event allows an extension to modify the login process
*
* @event core.login_box_before
* @var string redirect Redirect string
* @var string l_explain Explain language string
* @var string l_success Success language string
* @var bool admin Is admin?
* @var bool s_display Display full login form?
* @var string err Error string
* @since 3.1.9-RC1
*/
$vars = array('redirect', 'l_explain', 'l_success', 'admin', 's_display', 'err');
extract($phpbb_dispatcher->trigger_event('core.login_box_before', compact($vars)));
// Print out error if user tries to authenticate as an administrator without having the privileges...
if ($admin && !$auth->acl_get('a_'))
{
@@ -2833,7 +2855,7 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
trigger_error('NO_AUTH_ADMIN');
}
if ($request->is_set_post('login') || ($request->is_set('login') && $request->variable('login', '') == 'external'))
if (empty($err) && ($request->is_set_post('login') || ($request->is_set('login') && $request->variable('login', '') == 'external')))
{
// Get credential
if ($admin)
@@ -2902,11 +2924,11 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
*
* @event core.login_box_redirect
* @var string redirect Redirect string
* @var boolean admin Is admin?
* @var bool return If true, do not redirect but return the sanitized URL.
* @var bool admin Is admin?
* @since 3.1.0-RC5
* @changed 3.1.9-RC1 Removed undefined return variable
*/
$vars = array('redirect', 'admin', 'return');
$vars = array('redirect', 'admin');
extract($phpbb_dispatcher->trigger_event('core.login_box_redirect', compact($vars)));
// append/replace SID (may change during the session for AOL users)
@@ -3982,6 +4004,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
echo '<html dir="ltr">';
echo '<head>';
echo '<meta charset="utf-8">';
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
echo '<title>' . $msg_title . '</title>';
echo '<style type="text/css">' . "\n" . '/* <![CDATA[ */' . "\n";
echo '* { margin: 0; padding: 0; } html { font-size: 100%; height: 100%; margin-bottom: 1px; background-color: #E4EDF0; } body { font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif; color: #536482; background: #E4EDF0; font-size: 62.5%; margin: 0; } ';
@@ -4909,7 +4932,7 @@ function phpbb_get_avatar($row, $alt, $ignore_config = false, $lazy = false)
/**
* Generate page header
*/
function page_header($page_title = '', $display_online_list = false, $item_id = 0, $item = 'forum')
function page_header($page_title = '', $display_online_list = false, $item_id = 0, $item = 'forum', $send_headers = true)
{
global $db, $config, $template, $SID, $_SID, $_EXTRA_URL, $user, $auth, $phpEx, $phpbb_root_path;
global $phpbb_dispatcher, $request, $phpbb_container, $phpbb_admin_path;
@@ -5249,17 +5272,22 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
'SITE_LOGO_IMG' => $user->img('site_logo'),
));
// An array of http headers that phpbb will set. The following event may override these.
$http_headers = array(
// application/xhtml+xml not used because of IE
'Content-type' => 'text/html; charset=UTF-8',
'Cache-Control' => 'private, no-cache="set-cookie"',
'Expires' => gmdate('D, d M Y H:i:s', time()) . ' GMT',
);
if (!empty($user->data['is_bot']))
$http_headers = array();
if ($send_headers)
{
// Let reverse proxies know we detected a bot.
$http_headers['X-PHPBB-IS-BOT'] = 'yes';
// An array of http headers that phpbb will set. The following event may override these.
$http_headers += array(
// application/xhtml+xml not used because of IE
'Content-type' => 'text/html; charset=UTF-8',
'Cache-Control' => 'private, no-cache="set-cookie"',
'Expires' => gmdate('D, d M Y H:i:s', time()) . ' GMT',
);
if (!empty($user->data['is_bot']))
{
// Let reverse proxies know we detected a bot.
$http_headers['X-PHPBB-IS-BOT'] = 'yes';
}
}
/**

View File

@@ -256,46 +256,49 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
case 'text':
case 'url':
case 'email':
case 'color':
case 'date':
case 'time':
case 'datetime':
case 'datetime-local':
case 'month':
case 'range':
case 'search':
case 'tel':
case 'week':
case 'search':
// maxlength and size are only valid for these types and will be
// ignored for other input types.
$size = (int) $tpl_type[1];
$maxlength = (int) $tpl_type[2];
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '" value="' . $new[$config_key] . '"' . (($tpl_type[0] === 'password') ? ' autocomplete="off"' : '') . ' />';
break;
case 'color':
case 'datetime':
case 'datetime-local':
case 'month':
case 'week':
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '" name="' . $name . '" value="' . $new[$config_key] . '" />';
break;
case 'date':
case 'time':
case 'number':
$min = $max = $maxlength = '';
case 'range':
$max = '';
$min = ( isset($tpl_type[1]) ) ? (int) $tpl_type[1] : false;
if ( isset($tpl_type[2]) )
{
$max = (int) $tpl_type[2];
$maxlength = strlen( (string) $max );
}
$tpl = '<input id="' . $key . '" type="number" maxlength="' . (( $maxlength != '' ) ? $maxlength : 255) . '"' . (( $min != '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="' . $name . '" value="' . $new[$config_key] . '" />';
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '"' . (( $min != '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="' . $name . '" value="' . $new[$config_key] . '" />';
break;
case 'dimension':
$min = $max = $maxlength = $size = '';
$max = '';
$min = (int) $tpl_type[1];
if ( isset($tpl_type[2]) )
{
$max = (int) $tpl_type[2];
$size = $maxlength = strlen( (string) $max );
}
$tpl = '<input id="' . $key . '" type="number"' . (( $size != '' ) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength != '') ? $maxlength : 255) . '"' . (( $min !== '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="config[' . $config_key . '_width]" value="' . $new[$config_key . '_width'] . '" /> x <input type="number"' . (( $size != '' ) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength != '') ? $maxlength : 255) . '"' . (( $min !== '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="config[' . $config_key . '_height]" value="' . $new[$config_key . '_height'] . '" />';
$tpl = '<input id="' . $key . '" type="number"' . (( $min !== '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="config[' . $config_key . '_width]" value="' . $new[$config_key . '_width'] . '" /> x <input type="number"' . (( $min !== '' ) ? ' min="' . $min . '"' : '') . (( $max != '' ) ? ' max="' . $max . '"' : '') . ' name="config[' . $config_key . '_height]" value="' . $new[$config_key . '_height'] . '" />';
break;
case 'textarea':

View File

@@ -3320,18 +3320,47 @@ function tidy_database()
*/
function add_permission_language()
{
global $user, $phpEx, $phpbb_extension_manager;
global $config, $user, $phpEx, $phpbb_extension_manager;
// add permission language files from extensions
$finder = $phpbb_extension_manager->get_finder();
$lang_files = $finder
// We grab the language files from the default, English and user's language.
// So we can fall back to the other files like we do when using add_lang()
$default_lang_files = $english_lang_files = $user_lang_files = array();
// Search for board default language if it's not the user language
if ($config['default_lang'] != $user->lang_name)
{
$default_lang_files = $finder
->prefix('permissions_')
->suffix(".$phpEx")
->core_path('language/' . basename($config['default_lang']) . '/')
->extension_directory('/language/' . basename($config['default_lang']))
->find();
}
// Search for english, if its not the default or user language
if ($config['default_lang'] != 'en' && $user->lang_name != 'en')
{
$english_lang_files = $finder
->prefix('permissions_')
->suffix(".$phpEx")
->core_path('language/en/')
->extension_directory('/language/en')
->find();
}
// Find files in the user's language
$user_lang_files = $finder
->prefix('permissions_')
->suffix(".$phpEx")
->core_path('language/' . $user->lang_name . '/')
->extension_directory('/language/' . $user->lang_name)
->find();
$lang_files = array_merge($english_lang_files, $default_lang_files, $user_lang_files);
foreach ($lang_files as $lang_file => $ext_name)
{
if ($ext_name === '/')

View File

@@ -47,7 +47,7 @@ if (!defined('IN_PHPBB'))
*/
function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key, &$sort_dir, &$s_limit_days, &$s_sort_key, &$s_sort_dir, &$u_sort_param, $def_st = false, $def_sk = false, $def_sd = false)
{
global $user;
global $user, $phpbb_dispatcher;
$sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']);
@@ -106,6 +106,42 @@ function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key,
$u_sort_param .= ($selected !== $sort_ary['default']) ? ((strlen($u_sort_param)) ? '&amp;' : '') . "{$name}={$selected}" : '';
}
/**
* Run code before generated sort selects are returned
*
* @event core.gen_sort_selects_after
* @var int limit_days Days limit
* @var array sort_by_text Sort by text options
* @var int sort_days Sort by days flag
* @var string sort_key Sort key
* @var string sort_dir Sort dir
* @var string s_limit_days String of days limit
* @var string s_sort_key String of sort key
* @var string s_sort_dir String of sort dir
* @var string u_sort_param Sort URL params
* @var bool def_st Default sort days
* @var bool def_sk Default sort key
* @var bool def_sd Default sort dir
* @var array sorts Sorts
* @since 3.1.9-RC1
*/
$vars = array(
'limit_days',
'sort_by_text',
'sort_days',
'sort_key',
'sort_dir',
's_limit_days',
's_sort_key',
's_sort_dir',
'u_sort_param',
'def_st',
'def_sk',
'def_sd',
'sorts',
);
extract($phpbb_dispatcher->trigger_event('core.gen_sort_selects_after', compact($vars)));
return;
}
@@ -392,7 +428,7 @@ function phpbb_clean_search_string($search_string)
*/
function decode_message(&$message, $bbcode_uid = '')
{
global $config;
global $config, $phpbb_dispatcher;
if ($bbcode_uid)
{
@@ -405,12 +441,38 @@ function decode_message(&$message, $bbcode_uid = '')
$replace = array("\n");
}
/**
* Use this event to modify the message before it is decoded
*
* @event core.decode_message_before
* @var string message_text The message content
* @var string bbcode_uid The message BBCode UID
* @since 3.1.9-RC1
*/
$message_text = $message;
$vars = array('message_text', 'bbcode_uid');
extract($phpbb_dispatcher->trigger_event('core.decode_message_before', compact($vars)));
$message = $message_text;
$message = str_replace($match, $replace, $message);
$match = get_preg_expression('bbcode_htm');
$replace = array('\1', '\1', '\2', '\1', '', '');
$message = preg_replace($match, $replace, $message);
/**
* Use this event to modify the message after it is decoded
*
* @event core.decode_message_after
* @var string message_text The message content
* @var string bbcode_uid The message BBCode UID
* @since 3.1.9-RC1
*/
$message_text = $message;
$vars = array('message_text', 'bbcode_uid');
extract($phpbb_dispatcher->trigger_event('core.decode_message_after', compact($vars)));
$message = $message_text;
}
/**
@@ -974,17 +1036,8 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count,
unset($new_attachment_data);
}
// Sort correctly
if ($config['display_order'])
{
// Ascending sort
krsort($attachments);
}
else
{
// Descending sort
ksort($attachments);
}
// Make sure attachments are properly ordered
ksort($attachments);
foreach ($attachments as $attachment)
{
@@ -1223,8 +1276,6 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count,
$attachments = $compiled_attachments;
unset($compiled_attachments);
$tpl_size = sizeof($attachments);
$unset_tpl = array();
preg_match_all('#<!\-\- ia([0-9]+) \-\->(.*?)<!\-\- ia\1 \-\->#', $message, $matches, PREG_PATTERN_ORDER);
@@ -1232,8 +1283,7 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count,
$replace = array();
foreach ($matches[0] as $num => $capture)
{
// Flip index if we are displaying the reverse way
$index = ($config['display_order']) ? ($tpl_size-($matches[1][$num] + 1)) : $matches[1][$num];
$index = $matches[1][$num];
$replace['from'][] = $matches[0][$num];
$replace['to'][] = (isset($attachments[$index])) ? $attachments[$index] : sprintf($user->lang['MISSING_INLINE_ATTACHMENT'], $matches[2][array_search($index, $matches[1])]);
@@ -1248,6 +1298,18 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count,
$unset_tpl = array_unique($unset_tpl);
// Sort correctly
if ($config['display_order'])
{
// Ascending sort
krsort($attachments);
}
else
{
// Descending sort
ksort($attachments);
}
// Needed to let not display the inlined attachments at the end of the post again
foreach ($unset_tpl as $index)
{

View File

@@ -479,7 +479,7 @@ function import_avatar_gallery($gallery_name = '', $subdirs_as_galleries = false
$dir->close();
}
for ($i = 0; $i < sizeof($dirlist); ++$i)
for ($i = 0, $end = sizeof($dirlist); $i < $end; ++$i)
{
$dir = $dirlist[$i];
@@ -1427,7 +1427,7 @@ function get_path($src_path, $src_url, $test_file)
$path_array = array();
$phpbb_parts = explode('/', $script_path);
for ($i = 0; $i < sizeof($url_parts); ++$i)
for ($i = 0, $end = sizeof($url_parts); $i < $end; ++$i)
{
if ($i < sizeof($phpbb_parts[$i]) && $url_parts[$i] == $phpbb_parts[$i])
{
@@ -1437,7 +1437,7 @@ function get_path($src_path, $src_url, $test_file)
else
{
$path = '';
for ($j = $i; $j < sizeof($phpbb_parts); ++$j)
for ($j = $i, $end2 = sizeof($phpbb_parts); $j < $end2; ++$j)
{
$path .= '../';
}
@@ -2269,7 +2269,7 @@ function convert_bbcode($message, $convert_size = true, $extended_bbcodes = fals
"\n\n"
);
for ($i = 0; $i < sizeof($str_from); ++$i)
for ($i = 0, $end = sizeof($str_from); $i < $end; ++$i)
{
$origx[] = '#\\' . str_replace(']', '\\]', $str_from[$i]) . '#is';
$replx[] = $str_to[$i];
@@ -2278,7 +2278,7 @@ function convert_bbcode($message, $convert_size = true, $extended_bbcodes = fals
if (preg_match_all('#\[email=([^\]]+)\](.*?)\[/email\]#i', $message, $m))
{
for ($i = 0; $i < sizeof($m[1]); ++$i)
for ($i = 0, $end = sizeof($m[1]); $i < $end; ++$i)
{
if ($m[1][$i] == $m[2][$i])
{
@@ -2339,7 +2339,7 @@ function copy_file($src, $trg, $overwrite = false, $die_on_failure = true, $sour
$parts = explode('/', $trg);
unset($parts[sizeof($parts) - 1]);
for ($i = 0; $i < sizeof($parts); ++$i)
for ($i = 0, $end = sizeof($parts); $i < $end; ++$i)
{
$path .= $parts[$i] . '/';
@@ -2436,7 +2436,7 @@ function copy_dir($src, $trg, $copy_subdirs = true, $overwrite = false, $die_on_
if ($copy_subdirs)
{
for ($i = 0; $i < sizeof($dirlist); ++$i)
for ($i = 0, $end = sizeof($dirlist); $i < $end; ++$i)
{
$dir = $dirlist[$i];
@@ -2471,7 +2471,7 @@ function copy_dir($src, $trg, $copy_subdirs = true, $overwrite = false, $die_on_
$convert->p_master->error(sprintf($str, implode('<br />', $bad_dirs)), __LINE__, __FILE__);
}
for ($i = 0; $i < sizeof($filelist); ++$i)
for ($i = 0, $end = sizeof($filelist); $i < $end; ++$i)
{
copy_file($src . $filelist[$i], $trg . $filelist[$i], $overwrite, $die_on_failure, $source_relative_path);
}

View File

@@ -108,6 +108,7 @@ function wrap_img_in_html($src, $title)
echo '<html>';
echo '<head>';
echo '<meta charset="utf-8">';
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
echo '<title>' . $title . '</title>';
echo '</head>';
echo '<body>';
@@ -412,7 +413,7 @@ function set_modified_headers($stamp, $browser)
global $request;
// let's see if we have to send the file at all
$last_load = $request->header('Modified-Since') ? strtotime(trim($request->header('Modified-Since'))) : false;
$last_load = $request->header('If-Modified-Since') ? strtotime(trim($request->header('If-Modified-Since'))) : false;
if (strpos(strtolower($browser), 'msie 6.0') === false && !phpbb_is_greater_ie_version($browser, 7))
{

View File

@@ -210,10 +210,12 @@ class messenger
/**
* Set email template to use
*/
function template($template_file, $template_lang = '', $template_path = '')
function template($template_file, $template_lang = '', $template_path = '', $template_dir_prefix = '')
{
global $config, $phpbb_root_path, $phpEx, $user, $phpbb_extension_manager;
$template_dir_prefix = (!$template_dir_prefix || $template_dir_prefix[0] === '/') ? $template_dir_prefix : '/' . $template_dir_prefix;
$this->setup_template();
if (!trim($template_file))
@@ -232,7 +234,7 @@ class messenger
if ($template_path)
{
$template_paths = array(
$template_path,
$template_path . $template_dir_prefix,
);
}
else
@@ -241,7 +243,7 @@ class messenger
$template_path .= $template_lang . '/email';
$template_paths = array(
$template_path,
$template_path . $template_dir_prefix,
);
// we can only specify default language fallback when the path is not a custom one for which we
@@ -251,14 +253,14 @@ class messenger
$fallback_template_path = (!empty($user->lang_path)) ? $user->lang_path : $phpbb_root_path . 'language/';
$fallback_template_path .= basename($config['default_lang']) . '/email';
$template_paths[] = $fallback_template_path;
$template_paths[] = $fallback_template_path . $template_dir_prefix;
}
}
$this->set_template_paths(array(
array(
'name' => $template_lang . '_email',
'ext_path' => 'language/' . $template_lang . '/email'
'ext_path' => 'language/' . $template_lang . '/email' . $template_dir_prefix,
),
), $template_paths);
@@ -859,6 +861,11 @@ class queue
fwrite($fp, "<?php\nif (!defined('IN_PHPBB')) exit;\n\$this->queue_data = unserialize(" . var_export(serialize($this->queue_data), true) . ");\n\n?>");
fclose($fp);
if (function_exists('opcache_invalidate'))
{
@opcache_invalidate($this->cache_file);
}
phpbb_chmod($this->cache_file, CHMOD_READ | CHMOD_WRITE);
}
}
@@ -901,6 +908,11 @@ class queue
fwrite($fp, "<?php\nif (!defined('IN_PHPBB')) exit;\n\$this->queue_data = unserialize(" . var_export(serialize($this->data), true) . ");\n\n?>");
fclose($fp);
if (function_exists('opcache_invalidate'))
{
@opcache_invalidate($this->cache_file);
}
phpbb_chmod($this->cache_file, CHMOD_READ | CHMOD_WRITE);
$this->data = array();

View File

@@ -1129,6 +1129,32 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
$db->sql_freeresult($result);
}
/**
* Event to modify the posts list for topic reviews
*
* @event core.topic_review_modify_post_list
* @var array attachments Array with the post attachments data
* @var int cur_post_id Post offset ID
* @var int forum_id The topic's forum ID
* @var string mode The topic review mode
* @var array post_list Array with the post IDs
* @var array rowset Array with the posts data
* @var bool show_quote_button Flag indicating if the quote button should be displayed
* @var int topic_id The topic ID that is being reviewed
* @since 3.1.9-RC1
*/
$vars = array(
'attachments',
'cur_post_id',
'forum_id',
'mode',
'post_list',
'rowset',
'show_quote_button',
'topic_id',
);
extract($phpbb_dispatcher->trigger_event('core.topic_review_modify_post_list', compact($vars)));
for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
{
// A non-existing rowset only happens if there was no user present for the entered poster_id
@@ -1610,6 +1636,10 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
break;
}
}
else if (isset($data['post_visibility']) && $data['post_visibility'] !== false)
{
$post_visibility = $data['post_visibility'];
}
// MODs/Extensions are able to force any visibility on posts
if (isset($data['force_approved_state']))
@@ -2403,7 +2433,9 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
$params = $add_anchor = '';
if ($post_visibility == ITEM_APPROVED)
if ($post_visibility == ITEM_APPROVED ||
($auth->acl_get('m_softdelete', $data['forum_id']) && $post_visibility == ITEM_DELETED) ||
($auth->acl_get('m_approve', $data['forum_id']) && in_array($post_visibility, array(ITEM_UNAPPROVED, ITEM_REAPPROVE))))
{
$params .= '&amp;t=' . $data['topic_id'];

View File

@@ -530,12 +530,28 @@ function add_warning($user_row, $warning, $send_pm = true, $post_id = 0)
include_once($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx);
include_once($phpbb_root_path . 'includes/message_parser.' . $phpEx);
$user_row['user_lang'] = (file_exists($phpbb_root_path . 'language/' . $user_row['user_lang'] . "/mcp.$phpEx")) ? $user_row['user_lang'] : $config['default_lang'];
include($phpbb_root_path . 'language/' . basename($user_row['user_lang']) . "/mcp.$phpEx");
// Attempt to translate warning to language of user being warned if user's language differs from issuer's language
if ($user_row['user_lang'] != $user->lang_name)
{
$lang = array();
$user_row['user_lang'] = (file_exists($phpbb_root_path . 'language/' . basename($user_row['user_lang']) . "/mcp." . $phpEx)) ? $user_row['user_lang'] : $config['default_lang'];
include($phpbb_root_path . 'language/' . basename($user_row['user_lang']) . "/mcp." . $phpEx);
$warn_pm_subject = $lang['WARNING_PM_SUBJECT'];
$warn_pm_body = sprintf($lang['WARNING_PM_BODY'], $warning);
unset($lang);
}
else
{
$warn_pm_subject = $user->lang('WARNING_PM_SUBJECT');
$warn_pm_body = $user->lang('WARNING_PM_BODY', $warning);
}
$message_parser = new parse_message();
$message_parser->message = $user->lang('WARNING_PM_BODY', $warning);
$message_parser->message = $warn_pm_body;
$message_parser->parse(true, true, true, false, false, true, true);
$pm_data = array(
@@ -553,7 +569,7 @@ function add_warning($user_row, $warning, $send_pm = true, $post_id = 0)
'address_list' => array('u' => array($user_row['user_id'] => 'to')),
);
submit_pm('post', $user->lang('WARNING_PM_SUBJECT'), $pm_data, false);
submit_pm('post', $warn_pm_subject, $pm_data, false);
}
add_log('admin', 'LOG_USER_WARNING', $user_row['username']);

View File

@@ -462,9 +462,11 @@ class ucp_groups
$avatar_data = null;
$avatar_error = array();
/** @var \phpbb\avatar\manager $phpbb_avatar_manager */
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
if ($config['allow_avatar'])
{
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers();
// This is normalised data, without the group_ prefix
@@ -649,6 +651,14 @@ class ucp_groups
$avatars_enabled = false;
$selected_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $avatar_data['avatar_type']));
// Assign min and max values before generating avatar driver html
$template->assign_vars(array(
'AVATAR_MIN_WIDTH' => $config['avatar_min_width'],
'AVATAR_MAX_WIDTH' => $config['avatar_max_width'],
'AVATAR_MIN_HEIGHT' => $config['avatar_min_height'],
'AVATAR_MAX_HEIGHT' => $config['avatar_max_height'],
));
foreach ($avatar_drivers as $current_driver)
{
$driver = $phpbb_avatar_manager->get_driver($current_driver);

View File

@@ -154,7 +154,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
'S_SHOW_PM_BOX' => true,
'S_ALLOW_MASS_PM' => ($config['allow_mass_pm'] && $auth->acl_get('u_masspm')) ? true : false,
'S_GROUP_OPTIONS' => ($config['allow_mass_pm'] && $auth->acl_get('u_masspm_group')) ? $group_options : '',
'U_FIND_USERNAME' => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=searchuser&amp;form=postform&amp;field=username_list&amp;select_single=$select_single"),
'U_FIND_USERNAME' => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=searchuser&amp;form=postform&amp;field=username_list&amp;select_single=" . (int) $select_single),
));
}

View File

@@ -638,6 +638,13 @@ class ucp_profile
$selected_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $user->data['user_avatar_type']));
$template->assign_vars(array(
'AVATAR_MIN_WIDTH' => $config['avatar_min_width'],
'AVATAR_MAX_WIDTH' => $config['avatar_max_width'],
'AVATAR_MIN_HEIGHT' => $config['avatar_min_height'],
'AVATAR_MAX_HEIGHT' => $config['avatar_max_height'],
));
foreach ($avatar_drivers as $current_driver)
{
$driver = $phpbb_avatar_manager->get_driver($current_driver);

View File

@@ -38,7 +38,7 @@ $dbms = $phpbb_config_php_file->convert_30_dbms_to_31($dbms);
$convertor_data = array(
'forum_name' => 'phpBB 2.0.x',
'version' => '1.0.3',
'phpbb_version' => '3.1.8',
'phpbb_version' => '3.1.9',
'author' => '<a href="https://www.phpbb.com/">phpBB Limited</a>',
'dbms' => $dbms,
'dbhost' => $dbhost,

View File

@@ -31,7 +31,6 @@ function phpbb_end_update($cache, $config)
</p>
</div>
</div>
<span class="corners-bottom"><span></span></span>
</div>
</div>
</div>
@@ -138,6 +137,7 @@ header('Content-type: text/html; charset=UTF-8');
<html dir="<?php echo $user->lang['DIRECTION']; ?>" lang="<?php echo $user->lang['USER_LANG']; ?>">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title><?php echo $user->lang['UPDATING_TO_LATEST_STABLE']; ?></title>
@@ -152,7 +152,6 @@ header('Content-type: text/html; charset=UTF-8');
<div id="page-body">
<div id="acp">
<div class="panel">
<span class="corners-top"><span></span></span>
<div id="content">
<div id="main" class="install-body">

View File

@@ -633,6 +633,7 @@ class module
echo '<html dir="ltr">';
echo '<head>';
echo '<meta charset="utf-8">';
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
echo '<title>' . $lang['INST_ERR_FATAL'] . '</title>';
echo '<link href="' . htmlspecialchars($phpbb_admin_path) . 'style/admin.css" rel="stylesheet" type="text/css" media="screen" />';
echo '</head>';

View File

@@ -932,7 +932,7 @@ class install_convert extends module
$val = array($val);
}
for ($j = 0; $j < sizeof($val); ++$j)
for ($j = 0, $size = sizeof($val); $j < $size; ++$j)
{
if (preg_match('/LEFT JOIN ([a-z0-9_]+) AS ([a-z0-9_]+)/i', $val[$j], $m))
{

View File

@@ -283,6 +283,7 @@ class install_update extends module
// Make sure the update list is destroyed.
$cache->destroy('_update_list');
$cache->destroy('_update_list_time');
$cache->destroy('_diff_files');
$cache->destroy('_expected_files');
break;
@@ -355,7 +356,7 @@ class install_update extends module
// We are directly within an update. To make sure our update list is correct we check its status.
$update_list = ($request->variable('check_again', false, false, \phpbb\request\request_interface::POST)) ? false : $cache->get('_update_list');
$modified = ($update_list !== false) ? @filemtime($cache->get_driver()->cache_dir . 'data_update_list.' . $phpEx) : 0;
$modified = ($update_list !== false) ? $cache->get('_update_list_time') : 0;
// Make sure the list is up-to-date
if ($update_list !== false)
@@ -384,6 +385,7 @@ class install_update extends module
{
$this->get_update_structure($update_list, $expected_files);
$cache->put('_update_list', $update_list);
$cache->put('_update_list_time', time());
// Refresh the page if we are still not finished...
if ($update_list['status'] != -1)

View File

@@ -273,7 +273,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('use_system_cron', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.1.8');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.1.9');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400');

View File

@@ -594,6 +594,7 @@ $lang = array_merge($lang, array(
'LOG_ERROR_JABBER' => '<strong>Jabber error</strong><br />» %s',
'LOG_ERROR_EMAIL' => '<strong>Email error</strong><br />» %s',
'LOG_ERROR_CAPTCHA' => '<strong>CAPTCHA error</strong><br />» %s',
'LOG_FORUM_ADD' => '<strong>Created new forum</strong><br />» %s',
'LOG_FORUM_COPIED_PERMISSIONS' => '<strong>Copied forum permissions</strong> from %1$s<br />» %2$s',

View File

@@ -40,6 +40,7 @@ $lang = array_merge($lang, array(
'CAPTCHA_QA' => 'Q&amp;A',
'CONFIRM_QUESTION_EXPLAIN' => 'This question is a means of preventing automated form submissions by spambots.',
'CONFIRM_QUESTION_WRONG' => 'You have provided an invalid answer to the question.',
'CONFIRM_QUESTION_MISSING' => 'Questions for the captcha could not be retrieved. Please contact a board administrator.',
'QUESTION_ANSWERS' => 'Answers',
'ANSWERS_EXPLAIN' => 'Please enter valid answers to the question, one per line.',
@@ -60,5 +61,4 @@ $lang = array_merge($lang, array(
'QA_ERROR_MSG' => 'Please fill in all fields and enter at least one answer.',
'QA_LAST_QUESTION' => 'You cannot delete all questions while the plugin is active.',
));

View File

@@ -673,7 +673,7 @@ $lang = array_merge($lang, array(
'SEARCH_POSTS_BY' => 'Search posts by',
'SEARCH_SELF' => 'Your posts',
'SEARCH_TOPIC' => 'Search this topic…',
'SEARCH_UNANSWERED' => 'Unanswered posts',
'SEARCH_UNANSWERED' => 'Unanswered topics',
'SEARCH_UNREAD' => 'Unread posts',
'SEARCH_USER_POSTS' => 'Search users posts',
'SECONDS' => 'Seconds',
@@ -815,7 +815,7 @@ $lang = array_merge($lang, array(
'USERS' => 'Users',
'USE_PERMISSIONS' => 'Test out users permissions',
'USER_NEW_PERMISSION_DISALLOWED' => 'We are sorry, but you are not authorised to use this feature. You may have just registered here and may need to participate more to be able to use this feature.',
'USER_NEW_PERMISSION_DISALLOWED' => 'We are sorry, but you are not authorised to use this feature. You may have just registered here and may need to participate more in discussions to be able to use this feature.',
'VARIANT_DATE_SEPARATOR' => ' / ', // Used in date format dropdown, eg: "Today, 13:37 / 01 Jan 2007, 13:37" ... to join a relative date with calendar date
'VIEWED' => 'Viewed',

View File

@@ -66,7 +66,7 @@ $lang = array_merge($lang, array(
'ACCOUNT_COPPA' => 'Your account has been created but has to be approved, please check your email for details.',
'ACCOUNT_EMAIL_CHANGED' => 'Your account has been updated. However, this board requires account reactivation on email changes. An activation key has been sent to the new email address you provided. Please check your email for further information.',
'ACCOUNT_EMAIL_CHANGED_ADMIN' => 'Your account has been updated. However, this board requires account reactivation by the administrators on email changes. An email has been sent to them and you will be informed when your account has been reactivated.',
'ACCOUNT_INACTIVE' => 'Your account has been created. However, this board requires account activation, an activation key has been sent to the email address you provided. Please check your email for further information.',
'ACCOUNT_INACTIVE' => 'Your account has been created. However, this board requires account activation. An activation key has been sent to the email address you provided. Please check your email for further information and also be sure to check your junk mail box. It may take a while to get the email depending on your email provider.',
'ACCOUNT_INACTIVE_ADMIN' => 'Your account has been created. However, this board requires account activation by the administrator group. An email has been sent to them and you will be informed when your account has been activated.',
'ACTIVATION_EMAIL_SENT' => 'The activation email has been sent to your email address.',
'ACTIVATION_EMAIL_SENT_ADMIN' => 'The activation email has been sent to the administrators email addresses.',

View File

@@ -90,6 +90,12 @@ $default_key = 'c';
$sort_key = request_var('sk', $default_key);
$sort_dir = request_var('sd', 'a');
$user_types = array(USER_NORMAL, USER_FOUNDER);
if ($auth->acl_get('a_user'))
{
$user_types[] = USER_INACTIVE;
}
// What do you want to do today? ... oops, I think that line is taken ...
switch ($mode)
{
@@ -834,7 +840,7 @@ switch ($mode)
$sql = 'SELECT username, user_id, user_colour
FROM ' . USERS_TABLE . '
WHERE ' . $db->sql_in_set('user_type', array(USER_NORMAL, USER_FOUNDER)) . '
WHERE ' . $db->sql_in_set('user_type', $user_types) . '
AND username_clean ' . $db->sql_like_expression(utf8_clean_string($username_chars) . $db->get_any_char());
$result = $db->sql_query_limit($sql, 10);
$user_list = array();
@@ -1229,11 +1235,6 @@ switch ($mode)
);
extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_sql_query_data', compact($vars)));
$user_types = array(USER_NORMAL, USER_FOUNDER);
if ($auth->acl_get('a_user'))
{
$user_types[] = USER_INACTIVE;
}
// Count the users ...
$sql = 'SELECT COUNT(u.user_id) AS total_users
FROM ' . USERS_TABLE . " u$sql_from
@@ -1277,7 +1278,8 @@ switch ($mode)
}
$param = call_user_func_array('request_var', $call);
$param = urlencode($key) . '=' . ((is_string($param)) ? urlencode($param) : $param);
// Encode strings, convert everything else to int in order to prevent empty parameters.
$param = urlencode($key) . '=' . ((is_string($param)) ? urlencode($param) : (int) $param);
$params[] = $param;
if ($key != 'first_char')

View File

@@ -271,7 +271,13 @@ class oauth extends \phpbb\auth\provider\base
}
$uri_factory = new \OAuth\Common\Http\Uri\UriFactory();
$current_uri = $uri_factory->createFromSuperGlobalArray($this->request->get_super_global(\phpbb\request\request_interface::SERVER));
$super_globals = $this->request->get_super_global(\phpbb\request\request_interface::SERVER);
if (!empty($super_globals['HTTP_X_FORWARDED_PROTO']) && $super_globals['HTTP_X_FORWARDED_PROTO'] === 'https')
{
$super_globals['HTTPS'] = 'on';
$super_globals['SERVER_PORT'] = 443;
}
$current_uri = $uri_factory->createFromSuperGlobalArray($super_globals);
$current_uri->setQuery($query);
$this->current_uri = $current_uri;

View File

@@ -167,17 +167,29 @@ class upload extends \phpbb\avatar\driver\driver
$destination = '';
}
$filedata = array(
'filename' => $file->get('filename'),
'filesize' => $file->get('filesize'),
'mimetype' => $file->get('mimetype'),
'extension' => $file->get('extension'),
'physical_filename' => $file->get('realname'),
'real_filename' => $file->get('uploadname'),
);
/**
* Before moving new file in place (and eventually overwriting the existing avatar with the newly uploaded avatar)
*
* @event core.avatar_driver_upload_move_file_before
* @var array filedata Array containing uploaded file data
* @var string destination Destination directory where the file is going to be moved
* @var string prefix Prefix for the avatar filename
* @var array row Array with avatar row data
* @var array error Array of errors, if filled in by this event file will not be moved
* @since 3.1.6-RC1
* @changed 3.1.9-RC1 Added filedata
*/
$vars = array(
'filedata',
'destination',
'prefix',
'row',
@@ -185,6 +197,8 @@ class upload extends \phpbb\avatar\driver\driver
);
extract($this->dispatcher->trigger_event('core.avatar_driver_upload_move_file_before', compact($vars)));
unset($filedata);
if (!sizeof($error))
{
// Move file and overwrite any existing image

View File

@@ -61,6 +61,11 @@ abstract class base implements \phpbb\cache\driver\driver_interface
unset($this->sql_rowset);
unset($this->sql_row_pointer);
if (function_exists('opcache_reset'))
{
@opcache_reset();
}
$this->vars = array();
$this->sql_rowset = array();
$this->sql_row_pointer = array();

View File

@@ -568,6 +568,11 @@ class file extends \phpbb\cache\driver\base
fclose($handle);
if (function_exists('opcache_invalidate'))
{
@opcache_invalidate($file);
}
if (!function_exists('phpbb_chmod'))
{
global $phpbb_root_path;

View File

@@ -100,6 +100,28 @@ class qa
$db->sql_freeresult($result);
}
// final fallback to any language
if (!sizeof($this->question_ids))
{
$this->question_lang = '';
$sql = 'SELECT q.question_id, q.lang_iso
FROM ' . $this->table_captcha_questions . ' q, ' . $this->table_captcha_answers . ' a
WHERE q.question_id = a.question_id
GROUP BY lang_iso';
$result = $db->sql_query($sql, 7200);
while ($row = $db->sql_fetchrow($result))
{
if (empty($this->question_lang))
{
$this->question_lang = $row['lang_iso'];
}
$this->question_ids[$row['question_id']] = $row['question_id'];
}
$db->sql_freeresult($result);
}
// okay, if there is a confirm_id, we try to load that confirm's state. If not, we try to find one
if (!$this->load_answer() && (!$this->load_confirm_id() || !$this->load_answer()))
{
@@ -198,10 +220,12 @@ class qa
*/
function get_template()
{
global $template;
global $phpbb_log, $template, $user;
if ($this->is_solved())
if ($this->is_solved() || empty($this->question_text) || !count($this->question_ids))
{
/** @var \phpbb\log\log_interface $phpbb_log */
$phpbb_log->add('critical', $user->data['user_id'], $user->ip, 'LOG_ERROR_CAPTCHA', time(), array($user->lang('CONFIRM_QUESTION_MISSING')));
return false;
}
else
@@ -364,13 +388,15 @@ class qa
*/
function validate()
{
global $user;
global $phpbb_log, $user;
$error = '';
if (!sizeof($this->question_ids))
{
return false;
/** @var \phpbb\log\log_interface $phpbb_log */
$phpbb_log->add('critical', $user->data['user_id'], $user->ip, 'LOG_ERROR_CAPTCHA', time(), array($user->lang('CONFIRM_QUESTION_MISSING')));
return $user->lang('CONFIRM_QUESTION_MISSING');
}
if (!$this->confirm_id)

View File

@@ -71,7 +71,8 @@ class helper
* @param \phpbb\template\template $template Template object
* @param \phpbb\user $user User object
* @param \phpbb\config\config $config Config object
* @param \phpbb\controller\provider $provider Path provider
*
* @param \phpbb\controller\provider $provider Path provider
* @param \phpbb\extension\manager $manager Extension manager object
* @param \phpbb\symfony_request $symfony_request Symfony Request object
* @param \phpbb\request\request_interface $request phpBB request object
@@ -102,12 +103,13 @@ class helper
* @param bool $display_online_list Do we display online users list
* @param int $item_id Restrict online users to item id
* @param string $item Restrict online users to a certain session item, e.g. forum for session_forum_id
* @param bool $send_headers Whether headers should be sent by page_header(). Defaults to false for controllers.
*
* @return Response object containing rendered page
*/
public function render($template_file, $page_title = '', $status_code = 200, $display_online_list = false, $item_id = 0, $item = 'forum')
public function render($template_file, $page_title = '', $status_code = 200, $display_online_list = false, $item_id = 0, $item = 'forum', $send_headers = false)
{
page_header($page_title, $display_online_list, $item_id, $item);
page_header($page_title, $display_online_list, $item_id, $item, $send_headers);
$this->template->set_filenames(array(
'body' => $template_file,
@@ -115,7 +117,9 @@ class helper
page_footer(true, false, false);
return new Response($this->template->assign_display('body'), $status_code);
$headers = !empty($this->user->data['is_bot']) ? array('X-PHPBB-IS-BOT' => 'yes') : array();
return new Response($this->template->assign_display('body'), $status_code, $headers);
}
/**
@@ -140,6 +144,15 @@ class helper
$context = new RequestContext();
$context->fromRequest($this->symfony_request);
if ($this->config['force_server_vars'])
{
$context->setHost($this->config['server_name']);
$context->setScheme(substr($this->config['server_protocol'], 0, -3));
$context->setHttpPort($this->config['server_port']);
$context->setHttpsPort($this->config['server_port']);
$context->setBaseUrl(rtrim($this->config['script_path'], '/'));
}
$script_name = $this->symfony_request->getScriptName();
$page_name = substr($script_name, -1, 1) == '/' ? '' : utf8_basename($script_name);
@@ -155,7 +168,7 @@ class helper
$base_url = str_replace('/' . $page_name, empty($this->config['enable_mod_rewrite']) ? '/app.' . $this->php_ext : '', $base_url);
// We need to update the base url to move to the directory of the app.php file if the current script is not app.php
if ($page_name !== 'app.php')
if ($page_name !== 'app.php' && !$this->config['force_server_vars'])
{
if (empty($this->config['enable_mod_rewrite']))
{

View File

@@ -897,6 +897,7 @@ abstract class driver implements driver_interface
<html dir="ltr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>SQL Report</title>
<link href="' . htmlspecialchars($phpbb_path_helper->update_web_root_path($phpbb_root_path) . $phpbb_path_helper->get_adm_relative_path()) . 'style/admin.css" rel="stylesheet" type="text/css" media="screen" />
</head>

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class alpha1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-a1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class alpha2 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-a2', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class alpha3 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-a3', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class beta1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-b1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class beta2 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-b2', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class beta3 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-b3', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class beta4 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-b4', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class gold extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -56,19 +56,16 @@ class passwords_convert_p1 extends \phpbb\db\migration\migration
{
// Use $CP$ prefix for passwords that need to
// be converted and set pass convert to false.
$update_users[$user_id] = array(
'user_password' => '$CP$' . $row['user_password'],
'user_pass_convert' => 0,
);
$update_users[$user_id] = '$CP$' . $row['user_password'];
}
}
$this->db->sql_freeresult($result);
foreach ($update_users as $user_id => $user_data)
foreach ($update_users as $user_id => $user_password)
{
$sql = 'UPDATE ' . $this->table_prefix . 'users
SET ' . $this->db->sql_build_array('UPDATE', $user_data) . '
WHERE user_id = ' . $user_id;
$sql = 'UPDATE ' . $this->table_prefix . "users
SET user_password = '" . $this->db->sql_escape($user_password) . "'
WHERE user_id = $user_id";
$this->sql_query($sql);
}

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class rc1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-RC1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class rc2 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-RC2', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class rc3 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-RC3', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class rc4 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-RC4', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class rc5 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-RC5', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310;
class rc6 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.0-RC6', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v311 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v312 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.2', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v312rc1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.2-RC1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v313 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.3', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v313rc1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.3-RC1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v313rc2 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.3-RC2', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v314 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.4', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v314rc1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.4-RC1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v314rc2 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.4-RC2', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v315 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.5', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v315rc1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.5-RC1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v316 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.6', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v316rc1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.6-RC1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v317 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.7', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v317pl1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.7-pl1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v317rc1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.7-RC1', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v318 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.8', '>=');
}
static public function depends_on()
{
return array(

View File

@@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x;
class v318rc1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return phpbb_version_compare($this->config['version'], '3.1.8-RC1', '>=');
}
static public function depends_on()
{
return array(

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