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

Compare commits

...

228 Commits

Author SHA1 Message Date
Joas Schilling
099a1b5f75 [prep-release-3.1.7] Add changelog for 3.1.7-RC1 2015-12-12 01:37:56 +01:00
Joas Schilling
69cf32613d [prep-release-3.1.7] Add migration for 3.1.7-RC1 2015-12-12 01:35:05 +01:00
Joas Schilling
d2acccf92c [prep-release-3.1.7] Update version to 3.1.7-RC1 2015-12-12 01:31:31 +01:00
Tristan Darricau
901785bc5e Merge pull request #4018 from marc1706/ticket/14271
[ticket/14271] Update sample config

* marc1706/ticket/14271:
  [ticket/14271] Properly use try_files in nginx sample config
  [ticket/14271] Improve try_files and use split path info
  [ticket/14271] Update sample config
2015-12-08 19:48:02 +01:00
Tristan Darricau
81b3b38795 Merge pull request #4071 from marc1706/ticket/14213
[ticket/14213] Adding event after users have been added to a group

* marc1706/ticket/14213:
  [ticket/14213] Add pending to core.group_add_user_after
  [ticket/14213] Mv event group_add_user_after after cache cleaning
  [ticket/14213] Fix version number
  [ticket/14213] Adding missing reference to event dispatcher
  [ticket/14213] Adding event after users have been added to a group
2015-12-08 19:46:34 +01:00
Marc Alexander
d37d3ed3ed [ticket/14213] Add pending to core.group_add_user_after
PHPBB3-14213
2015-12-08 15:32:45 +01:00
Wardormeur
e6d3ed5529 [ticket/14213] Mv event group_add_user_after after cache cleaning
In order to match with the rest of the event and to have appropriate info state

PHPBB3-14213
2015-12-07 22:35:08 +01:00
Wardormeur
ffbc2d02d7 [ticket/14213] Fix version number
for core.group_add_user_after event

PHPBB3-14213
2015-12-07 22:35:04 +01:00
Wardormeur
2419f63aab [ticket/14213] Adding missing reference to event dispatcher
Required to dispatch event, wasn't included into global

PHPBB3-14213
2015-12-07 22:34:59 +01:00
Wardormeur
20e26a3920 [ticket/14213] Adding event after users have been added to a group
Allow mapping with others CMS by exposing user configuration & changes

PHPBB3-14213
2015-12-07 22:34:25 +01:00
Tristan Darricau
4989df66a2 Merge pull request #4008 from Zoddo/ticket/14261
[ticket/14261] Move the update of session informations to page_footer()

* Zoddo/ticket/14261:
  [ticket/14261] Fix tests by removing old code.
  [ticket/14261] Move the update of session informations to page_footer()
2015-12-07 21:52:17 +01:00
Tristan Darricau
a4c1daa259 Merge pull request #4069 from marc1706/ticket/14346
[ticket/14346] Do not turn version red if update status is unknown

* marc1706/ticket/14346:
  [ticket/14346] Do not turn version red if update status is unknown
2015-12-07 21:42:13 +01:00
Tristan Darricau
ab8dc92d26 Merge pull request #4063 from marc1706/ticket/14339
[ticket/14339] Properly state PHP version support

* marc1706/ticket/14339:
  [ticket/14339] Properly state PHP version support
2015-12-07 21:38:37 +01:00
Tristan Darricau
07ae3e997c Merge pull request #4066 from kasimi/ticket/14343
[ticket/14343] Add event when locking/unlocking posts/topics

* kasimi/ticket/14343:
  [ticket/14343] Add event when locking/unlocking posts/topics
2015-12-07 21:06:22 +01:00
Marc Alexander
4a92b85cad [ticket/14346] Do not turn version red if update status is unknown
PHPBB3-14346
2015-12-07 20:00:13 +01:00
kasimi
94c073672d [ticket/14343] Add event when locking/unlocking posts/topics
PHPBB3-14343
2015-12-06 20:05:27 +01:00
Marc Alexander
e8247faacc [ticket/14339] Properly state PHP version support
PHPBB3-14339
2015-12-05 13:54:39 +01:00
Tristan Darricau
7eef7b2ea2 Merge pull request #4057 from marc1706/ticket/14334
[ticket/14334] Use phpbb_get_avatar() in user_loader

* marc1706/ticket/14334:
  [ticket/14334] Use phpbb_get_avatar() in user_loader
2015-12-05 11:02:55 +01:00
Marc Alexander
91869cc43c [ticket/14334] Use phpbb_get_avatar() in user_loader
PHPBB3-14334
2015-12-03 16:43:00 +01:00
Marc Alexander
8899829752 Merge pull request #4030 from RMcGirr83/ticket_14283
[ticket/14283] Add a Manage Group link on a group page
2015-11-26 14:44:51 +01:00
Marc Alexander
1a367062d3 Merge pull request #4045 from RMcGirr83/ticket_14313
[ticket/14313] Check for item approved explicitly
2015-11-26 14:27:54 +01:00
Richard McGirr
4966d6c913 [ticket/14313] Check for item approved explicitly
PHPBB3-14313
2015-11-26 05:23:18 -05:00
Marc Alexander
ea9b97c8a1 Merge pull request #4044 from RMcGirr83/ticket_14313
[ticket/14313] Don't display quote button on unapproved posts
2015-11-25 21:06:50 +01:00
RMcGirr83
4ea325029b [ticket/14313] Don't display quote button on unapproved posts
PHPBB3-14313
2015-11-25 14:29:46 -05:00
Richard McGirr
31510c0ae7 [ticket/14283] Check for user being group leader
PHPBB3-14283
2015-11-25 06:33:07 -05:00
Marc Alexander
df223eac65 Merge pull request #4040 from Nicofuma/ticket/13656
[ticket/13656] Updates Symfony to fix the DB password issue
2015-11-25 09:30:56 +01:00
Tristan Darricau
0bff95488b [ticket/13656] Updates Symfony to fix the DB password issue
PHPBB3-13656
2015-11-25 00:04:48 +01:00
Marc Alexander
8489cb6f40 Merge pull request #4033 from tas2580/ticket/14297
[ticket/14297] Uppercase and lowercase when sorting topics
2015-11-24 21:45:53 +01:00
Richard McGirr
3a55cead92 [ticket/14283] Remove group founder and free up memory
PHPBB3-14283
2015-11-18 06:29:23 -05:00
Tobi Schäfer
f4f6a4f810 [ticket/14297] Uppercase and lowercase when sorting topics
PHPBB3-14297

Ticket: https://tracker.phpbb.com/browse/PHPBB3-14297
2015-11-16 21:01:32 +01:00
Marc Alexander
e3f1cca911 Merge pull request #3888 from Senky/ticket/14146
[ticket/14146] Add viewtopic_body_post_subject_before event
2015-11-15 19:48:50 +01:00
Richard McGirr
df9443a3c6 [ticket/14283] Fix spelling of the word module
PHPBB3-14283
2015-11-14 14:48:54 -05:00
Richard McGirr
03662d5a89 [ticket/14283] Add a Manage Group link on a group page
PHPBB3-14283
2015-11-14 06:10:41 -05:00
Marc Alexander
8bb4af6271 Merge pull request #3805 from rxu/ticket/14066
[ticket/14066] Add template events to search_body.html
2015-11-13 09:34:25 +01:00
Marc Alexander
27cf9e490b Merge pull request #3996 from RMcGirr83/ticket_14242
[ticket/14242] Fix memberlist sort method
2015-11-13 09:23:34 +01:00
Marc Alexander
d53c5b7e2a Merge pull request #4028 from prototech/ticket/14287
[ticket/14287] Always remove loading indicator after confirming action.
2015-11-12 17:56:59 +01:00
Cesar G
da6ce7a668 [ticket/14287] Always remove loading indicator after confirming action.
If there is no success message after the action is confirmed, the indicator
is not currently removed.

PHPBB3-14287
2015-11-12 07:58:18 -08:00
rxu
19c84dabe1 [ticket/14066] Change the events listing order in events.md.
PHPBB3-14066
2015-11-12 20:53:36 +07:00
rxu
9ef06d67e6 [ticket/14066] Add template events to search_body.html
PHPBB3-14066
2015-11-12 20:53:35 +07:00
Marc Alexander
224efba459 Merge pull request #3850 from rxu/ticket/14117
[ticket/14117] Add core events to index.php to allow modifying birthdays list
2015-11-12 09:11:32 +01:00
Marc Alexander
8398e0700a Merge pull request #3910 from kinerity/ticket/14170
[ticket/14170] Fix mcp_change_poster_after event
2015-11-12 08:50:18 +01:00
Marc Alexander
13133b359b Merge pull request #4022 from RMcGirr83/3.1.x
[ticket/14276] Adjust function get_folder_status
2015-11-12 08:46:05 +01:00
Marc Alexander
1c1fe43e16 Merge pull request #3930 from rxu/ticket/14201
[ticket/14201] Add multiple ACP template events
2015-11-10 17:40:04 +01:00
Marc Alexander
966c34d0ad [ticket/14271] Properly use try_files in nginx sample config
PHPBB3-14271
2015-11-10 08:32:51 +01:00
Marc Alexander
b27be0b857 [ticket/14271] Improve try_files and use split path info
PHPBB3-14271
2015-11-09 09:26:05 +01:00
Richard McGirr
865c16cf26 [ticket/14276] Adjust function get_folder_status
PHPBB3-14276
2015-11-07 15:33:24 -05:00
Oliver Schramm
854ee0b04d Merge pull request #3975 from prototech/ticket/11971
[ticket/11971] Validate "Spambot countermeasures" settings before saving
2015-11-06 12:06:47 +01:00
Marc Alexander
27e95864a8 [ticket/14271] Update sample config
PHPBB3-14271
2015-11-05 16:55:19 +01:00
Marc Alexander
8dbf3976fd Merge pull request #4012 from RMcGirr83/ticket_14228
[ticket/14228] Vertical align of numbers in polls
2015-11-03 09:36:14 +01:00
Andreas Fischer
afbeda7cfd Merge pull request #3983 from prototech/ticket/13831
[ticket/13831] Store provided reason when deleting from Mod. Queue module.

* prototech/ticket/13831:
  [ticket/13831] Store provided reason when deleting from Mod. Queue module.
2015-11-02 21:48:32 +01:00
Richard McGirr
22d234a345 [ticket/14228] Vertical align of numbers in polls
PHPBB3-14228
2015-11-01 05:39:07 -05:00
RMcGirr83
21aa6cc120 [ticket/14242] Revert some changes
PHPBB3-14242
2015-10-30 13:09:55 -04:00
Zoddo
fbacd1df16 [ticket/14261] Fix tests by removing old code.
This will obselete GH-4007

PHPBB3-14261
PHPBB3-13202
2015-10-28 12:32:24 +01:00
Zoddo
88dd8a4849 [ticket/14261] Move the update of session informations to page_footer()
Currently, the unique way to disable the update of session_page is to pass
"false" to the parameter of session_begin(). This method is directly
called in app.php, so pages served from the routing system can't disable
the update of session informations.

By moving the update to page_footer, we can allow controllers to tell to
the session manager that we don't want to update the session infos.

PHPBB3-14261
2015-10-27 17:26:18 +01:00
Richard McGirr
c1d47d9e16 [ticket/14242] Fix u_sort_posts to use correct sort key
PHPBB3-14242
2015-10-26 06:42:33 -04:00
Marc Alexander
6a7567459d Merge pull request #4004 from paul999/ticket/14258
[ticket/14258] Add event into auth::login before session creation
2015-10-24 18:23:49 +02:00
Paul Sohier
9596db9b88 [ticket/14258] Add event into auth::login before session creation
Fix typo

PHPBB3-14258
2015-10-24 18:00:55 +02:00
Paul Sohier
2a218c2959 [ticket/14258] Add event into auth::login before session creation
Update comments regarding variables.

PHPBB3-14258
2015-10-24 17:47:04 +02:00
Paul Sohier
7615a5c22f [ticket/14258] Add event into auth::login before session creation
Add a new event in the login method just before the session create,
so extensions can do some additional validation during login.

PHPBB3-14258
2015-10-24 14:28:29 +02:00
Cesar G
5576c9f3b9 Merge pull request #3998 from Elsensee/ticket/14249
[ticket/14249] Fix online list order
2015-10-22 10:05:01 -07:00
Oliver Schramm
93208d597a [ticket/14249] Fix online list order
PHPBB3-14249
2015-10-21 21:51:43 +02:00
Máté Bartus
fa44e98e72 Merge pull request #3997 from CHItA/ticket/13976
[ticket/13976] Fix comment typo in salted_md5.php
2015-10-21 00:29:05 +02:00
Sumanai
6b433eab4c [ticket/13976] Fix comment typo in salted_md5.php
PHPBB3-13976
2015-10-21 00:22:42 +02:00
RMcGirr83
b23c0f1442 [ticket/14242] Fix memberlist sort method
PHPBB3-14242
2015-10-19 09:53:43 -04:00
Tristan Darricau
a6fd55db35 Merge pull request #3647 from marc1706/ticket/13799
[ticket/13799] Do not rawurlencode category in gallery avatar

* marc1706/ticket/13799:
  [ticket/13799] Split lines in HTML files for better readability
  [ticket/13799] Add missing space before checked attribute
  [ticket/13799] Correctly urlencode category and show selected avatar
  [ticket/13799] Do not rawurlencode category in gallery avatar
2015-10-19 14:39:14 +02:00
Tristan Darricau
dfd5ec6835 Merge pull request #3666 from marc1706/ticket/9252
[ticket/9252] Do not try to disapprove a post that was just approved

* marc1706/ticket/9252:
  [ticket/9252] Do not try to disapprove a post that was just approved
2015-10-19 14:36:51 +02:00
Marc Alexander
9ccb596a06 Merge pull request #3993 from DavidIQ/ticket/10343
[ticket/10343] Show clearer indication an account is inactive in memberlist
2015-10-18 10:32:41 +02:00
DavidIQ
da9a5c70d5 [ticket/10343] Add inactive indicator to subsilver2 memberlist
PHPBB3-10343
2015-10-17 18:39:14 -04:00
DavidIQ
9a8393c912 [ticket/10343] Show clearer indication an account is inactive in memberlist
PHPBB3-10343
2015-10-17 18:38:53 -04:00
Marc Alexander
3a5336452c Merge pull request #3985 from prototech/ticket/13892
[ticket/13892] Respect "Someone reports a post" notification setting.
2015-10-17 12:06:27 +02:00
Marc Alexander
6fba5613f8 Merge pull request #3987 from prototech/ticket/13945
[ticket/13945] Send reactivation requests to admins using notifications system.
2015-10-17 12:02:10 +02:00
Cesar G
c7d7967a91 [ticket/13945] Send reactivation requests to admins using notifications system.
PHPBB3-13945
2015-10-15 22:26:14 -07:00
Cesar G
aaca64e13e [ticket/13892] Replace other uses of self with static.
PHPBB3-13892
2015-10-15 02:39:55 -07:00
Cesar G
9de5668b80 [ticket/13892] Respect "Someone reports a post" notification setting.
report_post inherits from post_in_queue, therefore using self:: instead of
static:: results in the incorrect notification type being used to determine
which users to exclude from the notification.

PHPBB3-13892
2015-10-15 02:28:55 -07:00
Marc Alexander
bc6a4c4583 Merge pull request #3984 from prototech/ticket/12616
[ticket/12616] Remove report notifications when post is deleted/disapproved.
2015-10-15 11:01:59 +02:00
Cesar G
e634d2902d [ticket/12616] Remove report notifications when post is deleted/disapproved.
PHPBB3-12616
2015-10-14 22:50:50 -07:00
Cesar G
f657680311 [ticket/13831] Store provided reason when deleting from Mod. Queue module.
PHPBB3-13831
2015-10-14 19:41:44 -07:00
Tristan Darricau
240d07d0cf Merge pull request #3900 from Zoddo/ticket/14159
[ticket/14159] Hide version info on ACP if we don't have the permission

* Zoddo/ticket/14159:
  [ticket/14159] Hide version info on ACP if we don't have the permission
2015-10-14 16:40:06 +02:00
Tristan Darricau
f6776c1017 Merge pull request #3926 from Senky/ticket/14192
[ticket/14192] Add core.memberlist_memberrow_before event

* Senky/ticket/14192:
  [ticket/14192] Add core.memberlist_memberrow_before event
2015-10-14 16:35:24 +02:00
Tristan Darricau
bab85da820 Merge pull request #3935 from Zoddo/ticket/10343
[ticket/10343] Allows a_user to show inactive accounts in memberlist

* Zoddo/ticket/10343:
  [ticket/10343] Add a distinction for inactive users on memberlist
  [ticket/10343] Allows a_user to show inactive accounts in memberlist
2015-10-14 16:32:33 +02:00
Tristan Darricau
bc11e648af Merge pull request #3978 from RMcGirr83/ticket_13851
[ticket/13851] Fix ignore flood limit check

* RMcGirr83/ticket_13851:
  [ticket/13851] Fix ignore flood limit check
2015-10-14 16:26:54 +02:00
Tristan Darricau
669618b5a0 Merge pull request #3979 from prototech/ticket/9153
[ticket/9153] Allow users without u_sendpm permission to delete existing PM's

* prototech/ticket/9153:
  [ticket/9153] Allow users without u_sendpm permission to delete existing PM's.
2015-10-14 16:25:08 +02:00
Cesar G
50bf3411d4 Merge pull request #3959 from marc1706/ticket/13684
[ticket/13684] Prevent horizontal resize of attach comment textarea
2015-10-14 04:28:34 -07:00
Richard McGirr
a49a3091f9 [ticket/13851] Fix ignore flood limit check
PHPBB3-13851
2015-10-14 07:25:35 -04:00
Cesar G
5d8e900483 [ticket/11971] Validate "Spambot countermeasures" settings before saving.
PHPBB3-11971
2015-10-14 03:31:34 -07:00
Cesar G
fb3073029f [ticket/9153] Allow users without u_sendpm permission to delete existing PM's.
The u_sendpm check in ucp_pm.php is merely for the purpose of displaying the
error message within the UCP template. Otherwise it could be removed as
compose_pm() will check the appropriate permission pertaining to the attempted
action.

PHPBB3-9153
2015-10-14 03:09:06 -07:00
Marc Alexander
3367f0036a Merge pull request #3977 from Nicofuma/ticket/14236
[ticket/14236] Don't dump Opcache config in Travis
2015-10-14 12:04:12 +02:00
Tristan Darricau
69b57eab5e [ticket/14236] Don't dump Opcache config in Travis
PHPBB3-14236
2015-10-14 11:46:47 +02:00
Marc Alexander
6bcec956ba [ticket/13684] Prevent horizontal resize of attach comment textarea
PHPBB3-13684
2015-10-14 11:13:15 +02:00
Marc Alexander
ccb3d0ac78 Merge pull request #3973 from Nicofuma/ticket/14236
[ticket/14236] Disable Opcache on Travis when running the tests
2015-10-14 10:41:06 +02:00
Tristan Darricau
6572164754 Merge pull request #3542 from RMcGirr83/ticket/10572
[ticket/10572] Unguarded includes in acp files

* RMcGirr83/ticket/10572:
  [ticket/10572] Unguarded includes in acp files
2015-10-14 10:09:36 +02:00
Tristan Darricau
345e8ad822 [ticket/14236] Disable Opcache on Travis when running the tests
PHPBB3-14236
2015-10-14 09:45:11 +02:00
Tristan Darricau
bdf69817be Merge pull request #3968 from prototech/ticket/13835
[ticket/13835] Normalize filename for attachments uploaded in chunks.

* prototech/ticket/13835:
  [ticket/13835] Normalize filename for attachments uploaded in chunks.
2015-10-14 08:38:15 +02:00
Andreas Fischer
9ebc369d74 Merge pull request #3969 from prototech/ticket/14114
[ticket/14114] Update 3.0.x version references in INSTALL.html.

* prototech/ticket/14114:
  [ticket/14114] Update 3.0.x version references in INSTALL.html.
2015-10-14 08:33:35 +02:00
Cesar G
14966a2962 [ticket/14114] Update 3.0.x version references in INSTALL.html.
PHPBB3-14114
2015-10-13 21:05:04 -07:00
Cesar G
655f244c4f [ticket/13835] Normalize filename for attachments uploaded in chunks.
PHPBB3-13835
2015-10-13 20:17:26 -07:00
Kailey Truscott
08739751b2 [ticket/14170] Revert mcp_change_poster_after @since change
Revert the @since change back to 3.1.6-RC1.
Add @changed line 3.1.7-RC1 and description.

PHPBB3-14170
2015-10-13 21:26:24 -04:00
Richard McGirr
d003b53922 [ticket/10572] Unguarded includes in acp files
PHPBB3-10572
2015-10-13 11:52:52 -04:00
Jakub Senko
d507bce98a [ticket/14146] Add viewtopic_body_post_subject_before event
PHPBB3-14146
2015-10-12 20:05:48 +02:00
rxu
b7bd210f41 [ticket/14117] Add core events to index.php to allow modifying birthdays list
PHPBB3-14117
2015-10-12 22:14:57 +07:00
Zoddo
c5752be50c [ticket/10343] Add a distinction for inactive users on memberlist
PHPBB3-10343
2015-10-12 17:11:22 +02:00
Jakub Senko
66ee80c9e2 [ticket/14192] Add core.memberlist_memberrow_before event
PHPBB3-14192
2015-10-12 16:40:45 +02:00
rxu
1260f92813 [ticket/14201] Add events.md descriptions, fix accidentally swapped events
PHPBB3-14201
2015-10-12 21:31:09 +07:00
Tristan Darricau
1164cc38a2 Merge pull request #3830 from rxu/ticket/14098
[ticket/14098] Add core events to the search backends

* rxu/ticket/14098:
  [ticket/14098] Add core events to the search backends
2015-10-12 13:38:42 +02:00
Tristan Darricau
e87209742b Merge pull request #3887 from Senky/ticket/14144
[ticket/14144] Add quickreply_editor_subject_before event

* Senky/ticket/14144:
  [ticket/14144] Add quickreply_editor_subject_before event
2015-10-12 12:03:17 +02:00
Tristan Darricau
d92baaa2f7 Merge pull request #3908 from marc1706/ticket/14163
[ticket/14163] Properly fix select all for code tag in Edge

* marc1706/ticket/14163:
  [ticket/14163] Properly fix select all for code tag in Edge
2015-10-12 11:52:18 +02:00
Tristan Darricau
bc34217c14 Merge pull request #3906 from Zoddo/ticket/14164
[ticket/14164] Add instructions to use the CLI for database updates

* Zoddo/ticket/14164:
  [ticket/14164] Add instructions to use the CLI for database updates
2015-10-12 11:45:36 +02:00
Tristan Darricau
65b13938db Merge pull request #3925 from Senky/ticket/14191
[ticket/14191] Add core.get_gravatar_url_after event

* Senky/ticket/14191:
  [ticket/14191] Add core.get_gravatar_url_after event
2015-10-12 11:32:05 +02:00
Tristan Darricau
8c3aa1458c Merge pull request #3921 from Senky/ticket/14187
[ticket/14187] Add acp_styles_list_before event

* Senky/ticket/14187:
  [ticket/14187] Add acp_styles_list_before event
2015-10-12 11:23:10 +02:00
Tristan Darricau
d9a4146113 Merge pull request #3922 from Senky/ticket/14188
[ticket/14188] Add core.acp_styles_action_before event

* Senky/ticket/14188:
  [ticket/14188] Add core.acp_styles_action_before event
2015-10-12 11:06:46 +02:00
Tristan Darricau
e603fa56db Merge pull request #3944 from Wardormeur/ticket/14212
[ticket/14212] Adding event after users have been removed to a group

* Wardormeur/ticket/14212:
  [ticket/14212] Fix version number
  [ticket/14212] Adding event after users have been removed to a group
2015-10-12 10:27:13 +02:00
Tristan Darricau
2668fa42ad Merge pull request #3946 from RMcGirr83/ticket_13591
[ticket/13591] Change SQL query into array to allow

* RMcGirr83/ticket_13591:
  [ticket/13591] Change SQL query into array to allow
2015-10-12 10:20:16 +02:00
Jakub Senko
fcf6c20291 [ticket/14144] Add quickreply_editor_subject_before event
PHPBB3-14144
2015-10-12 09:40:08 +02:00
Tristan Darricau
5f8fb38b52 Merge pull request #3957 from Zoddo/ticket/14200
[ticket/14200] Allow hidden users to see himself on viewonline

* Zoddo/ticket/14200:
  [ticket/14200] Allow hidden users to see himself on viewonline
2015-10-12 09:19:24 +02:00
Marc Alexander
5f05a8a8f8 Merge pull request #3902 from Zoddo/ticket/14161
[ticket/14161] Wrong var name for core.download_file_send_to_browser_before
2015-10-11 20:27:14 +02:00
Zoddo
97118a897a [ticket/14161] Wrong var name for core.download_file_send_to_browser_before
`extension` must be `extensions`

Introduced in fix of PHPBB3-14101 (PR GH-3831)

PHPBB3-14161
2015-10-11 14:20:11 +02:00
Marc Alexander
f6c8338358 Merge pull request #3864 from Zoddo/ticket/8920
[ticket/8920] Add a MCP PM reports view permission
2015-10-11 10:47:44 +02:00
Zoddo
8eb9ce50b0 [ticket/14200] Allow hidden users to see himself on viewonline
PHPBB3-14200
2015-10-10 16:33:40 +02:00
rxu
d75750fd99 [ticket/14098] Add core events to the search backends
PHPBB3-14098
2015-10-09 23:06:16 +07:00
Marc Alexander
def21f27a2 Merge pull request #3893 from VSEphpbb/ticket/14155
[ticket/14155] Row highlighting for extension/styles management

Conflicts:
	phpBB/adm/style/acp_ext_list.html
2015-10-09 16:51:00 +02:00
Marc Alexander
8683824ed3 Merge pull request #3934 from Zoddo/ticket/14181
[ticket/14181] Fix empty denial reason if the reason isn't translated
2015-10-09 16:43:53 +02:00
Tristan Darricau
b04b5dea36 Merge pull request #3869 from Zoddo/ticket/8800
[ticket/8800] Add "mark topics read" link to "View unread posts"

* Zoddo/ticket/8800:
  [ticket/8800] Add "mark topics read" link to "View unread posts"
2015-10-09 11:00:09 +02:00
RMcGirr83
8a52ccc938 [ticket/13591] Change SQL query into array to allow
extension authors to modify SQL query

PHPBB3-13591
2015-10-08 14:18:45 -04:00
Marc Alexander
a0dafbfb5f Merge pull request #3953 from rxu/ticket/14073-fix-whitespaces
[ticket/14073] Fix trailing whitespaces
2015-10-08 17:21:51 +02:00
rxu
70b5ffc41d [ticket/14073] Fix trailing whitespaces
PHPBB3-14073
2015-10-08 22:19:44 +07:00
Marc Alexander
e63ef0b28f Merge pull request #3814 from rxu/ticket/14073
[ticket/14073] Add several core events to the functions_admin.php
2015-10-08 17:08:15 +02:00
Marc Alexander
6360d748db Merge pull request #3844 from rxu/ticket/14113
[ticket/14113] Add core events for customizing members search
2015-10-08 16:53:08 +02:00
rxu
e5b895de7b [ticket/14113] Add core events for customizing members search
Add core events to the memberlist.php for customizing members search.

PHPBB3-14113
2015-10-08 20:57:10 +07:00
rxu
3469cdce76 [ticket/14073] Add several core events to the functions_admin.php
Add core events to the functions move_posts(), delete_posts(),
delete_attachments().

PHPBB3-14073
2015-10-08 20:53:54 +07:00
Tristan Darricau
7a60cdd1d3 Merge pull request #3951 from RMcGirr83/ticket_14219
[ticket/14219] Add email to inactive user listing

* RMcGirr83/ticket_14219:
  [ticket/14219] Add email to inactive user listing
2015-10-08 15:49:39 +02:00
Tristan Darricau
5b7b0894e0 Merge pull request #3733 from javiexin/ticket/13934
[ticket/13934] Add enctype clause for profile fields

* javiexin/ticket/13934:
  [ticket/13934] Add enctype clause for profile fields
2015-10-08 15:45:34 +02:00
Tristan Darricau
542498e457 Merge pull request #3724 from javiexin/ticket/13960
[ticket/13960] Profile field validation breaks ACP

* javiexin/ticket/13960:
  [ticket/13960] Profile field validation breaks ACP
2015-10-08 15:42:33 +02:00
Marc Alexander
c38a128663 Merge pull request #3824 from rxu/ticket/14088
[ticket/14088] Add more core events to the search.php
2015-10-08 15:11:12 +02:00
Marc Alexander
c05a27396d Merge pull request #3820 from rxu/ticket/14080
[ticket/14080] Add template events around the topic row in viewforum_body.html
2015-10-08 14:43:12 +02:00
Richard McGirr
4830b3eacd [ticket/14219] Add email to inactive user listing
in ACP.  May help in spotting spam accounts quickly

PHPBB3-14219
2015-10-08 06:10:49 -04:00
Marc Alexander
cf62b303a6 Merge pull request #3440 from CHItA/ticket/13636
[ticket/13636] Deleting inactive user in acp_users gives unexpected link
2015-10-07 16:54:50 +02:00
Marc Alexander
e5b2dc922f Merge pull request #3615 from rxu/ticket/13846
[ticket/13846] Fix softdelete feature workflow in viewtopic
2015-10-07 16:50:35 +02:00
Marc Alexander
3fd1fa5492 Merge pull request #3716 from javiexin/ticket/13748
[ticket/13748] Wrong tooltip after poll vote change
2015-10-07 14:11:16 +02:00
Wardormeur
bf0596d0a1 [ticket/14212] Fix version number
for core.group_delete_user_after event

PHPBB-14212
2015-10-06 08:54:48 +02:00
Wardormeur
a11d97cb36 [ticket/14212] Adding event after users have been removed to a group
The idea is to be able to map with others CMS by exposing most commons user configuration & changes.
Difference between the event before and after group belonging removal is that
users belongs to multiple groups, so that the belonging into a group also
depends on the others groups (and not only the deleted one), which is not
reflected before as the user is not yet deleted

PHPBB-14212
2015-10-04 19:33:54 +02:00
Zoddo
0947bda39d [ticket/10343] Allows a_user to show inactive accounts in memberlist
PHPBB3-10343
2015-09-27 17:55:49 +02:00
HB
66397ae0e4 [ticket/14181] Fix empty denial reason if the reason isn't translated
PHPBB3-14181
2015-09-27 17:23:49 +02:00
Lady_G
cb71a7b8d2 [ticket/14164] Add instructions to use the CLI for database updates
PHPBB3-14164
2015-09-27 12:40:57 +02:00
rxu
2642cfe298 [ticket/14201] Add more template events to ACP
PHPBB3-14201
2015-09-26 23:58:59 +07:00
rxu
3672df0bc2 [ticket/14201] Add events to acp_users.html, permission_forum_copy.html
PHPBB3-14201
2015-09-26 22:36:38 +07:00
rxu
098c8e1fe9 [ticket/14201] Add template events to acp_permissions.html
PHPBB3-14201
2015-09-26 22:20:52 +07:00
Jakub Senko
d5f625382b [ticket/14191] Add core.get_gravatar_url_after event
PHPBB3-14191
2015-09-23 18:45:15 +02:00
Jakub Senko
20c0b57421 [ticket/14188] Add core.acp_styles_action_before event
PHPBB3-14188
2015-09-23 11:26:35 +02:00
Jakub Senko
65997eb577 [ticket/14187] Add acp_styles_list_before event
PHPBB3-14187
2015-09-23 11:03:42 +02:00
Andreas Fischer
7e379c4cea Merge pull request #3920 from marc1706/ticket/14186
[ticket/14186] Do correct string concatenation in phpbb_mcp_sorting()

* marc1706/ticket/14186:
  [ticket/14186] Do correct string concatenation in phpbb_mcp_sorting()
2015-09-22 19:14:34 +02:00
Marc Alexander
d62b03e0de [ticket/14186] Do correct string concatenation in phpbb_mcp_sorting()
PHPBB3-14186
2015-09-22 09:50:17 +02:00
Kailey Truscott
07b55530ec [ticket/14170] Fix mcp_change_poster_after event
Move the mcp_change_poster_after event to before renewing $post_info. I
changed the "since" version as this would be fixed in 3.1.7-RC1.

PHPBB3-14170
2015-09-16 22:49:06 -04:00
Marc Alexander
d92a46ef02 Merge pull request #3833 from rxu/ticket/14102
[ticket/14102] Add core event to the mcp_topic.php
2015-09-16 22:47:11 +02:00
Tristan Darricau
5b9d828328 Merge pull request #3895 from Zoddo/ticket/14154
[ticket/14154] Add extension composer name as tooltip

* Zoddo/ticket/14154:
  [ticket/14154] Add extension composer name as tooltip
2015-09-16 11:57:28 +02:00
Marc Alexander
3cdf97f003 [ticket/14163] Properly fix select all for code tag in Edge
PHPBB3-14163
2015-09-15 14:42:11 +02:00
Marc Alexander
2bf9e91101 Merge pull request #3865 from Zoddo/ticket/13992
[ticket/13992] Fix HTML5 error from w3.org validator
2015-09-15 14:35:29 +02:00
Marc Alexander
bc518bf96e Merge pull request #3894 from Nicofuma/ticket/14156
[ticket/14156] Add Symfony ResponseListener
2015-09-13 17:51:02 +02:00
Zoddo
aa01ee1bbc [ticket/8920] Revert update_module_auth() on revert_data()
PHPBB3-8920
2015-09-13 14:06:10 +02:00
Zoddo
2f4fcee7e8 [ticket/14159] Hide version info on ACP if we don't have the permission
This also hide a link to an unreachable module (Check phpBB version).

We could have simply remove the link to the module, but if the user hasn't
the permission to access to the phpBB version check module, I think that
he shouldn't view any version information about phpBB.

PHPBB3-14159
2015-09-12 17:11:20 +02:00
Zoddo
a4a99f5ea3 [ticket/14154] Add extension composer name as tooltip
PHPBB3-14154
2015-09-12 14:52:31 +02:00
Marc Alexander
c166adf3c7 Merge pull request #3767 from Zoddo/ticket/14020
[ticket/14089] Add posting_topic_title_after template event

Conflicts:
	phpBB/docs/events.md
2015-09-12 13:23:47 +02:00
Tristan Darricau
7d15704f6a [ticket/14156] Add Symfony ResponseListener
PHPBB3-14156
2015-09-11 18:17:09 +02:00
Marc Alexander
46f6b4459a Merge pull request #3892 from cyberalien/ticket/14153
[ticket/14153] Fix floating elements in notifications dropdown header
2015-09-11 09:35:24 +02:00
Matt Friedman
0f49eaa2e2 [ticket/14155] Row highlighting for extension/styles management
PHPBB3-14155
2015-09-11 00:19:58 -07:00
cyberalien
0744330080 [ticket/14153] Fix floating elements in notifications dropdown header
PHPBB3-14153
2015-09-10 12:03:02 +03:00
Tristan Darricau
c9d159257a Merge pull request #3868 from Zoddo/ticket/7362
[ticket/7362] Add alt attribute on topic icons

* Zoddo/ticket/7362:
  [ticket/7362] Add alt attribute on topic icons
2015-09-09 11:06:36 +02:00
Tristan Darricau
1affd34814 Merge pull request #3890 from marc1706/ticket/13423
[ticket/13423] Set busyTimeout on connect to prevent db locking

* marc1706/ticket/13423:
  [ticket/13423] Set busyTimeout on connect to prevent db locking
2015-09-09 11:00:44 +02:00
Marc Alexander
90d5eefccf Merge pull request #3881 from VSEphpbb/ticket/14142
[ticket/14142] Remove unused ignore_configs from avatar drivers
2015-09-08 13:34:58 +02:00
Marc Alexander
ea594d00f7 [ticket/13423] Set busyTimeout on connect to prevent db locking
PHPBB3-13423
2015-09-07 12:23:49 +02:00
Marc Alexander
9537ec56eb Merge pull request #3884 from Nicofuma/ticket/14143
[ticket/14143] Flush the mail queue when writing it
2015-09-07 12:15:24 +02:00
Tristan Darricau
0e93efd7cb [ticket/14143] Flush the mail queue when writing it
PHPBB3-14143
2015-09-05 17:53:29 +02:00
Andreas Fischer
8cab2374f9 Merge pull request #3877 from Nicofuma/ticket/14140
[ticket/14140] Update Symfony to 2.3.32

* Nicofuma/ticket/14140:
  [ticket/14140] Update SYmfony to 2.3.32
2015-09-05 16:08:13 +02:00
Joas Schilling
f201c22ca7 Merge branch 'prep-release-3.1.6' into 3.1.x
Conflicts:
	build/build.xml
	phpBB/includes/constants.php
	phpBB/install/schemas/schema_data.sql
2015-09-05 15:19:16 +02:00
Joas Schilling
5258fba2e0 [prep-release-3.1.6] Add migration for 3.1.6 2015-09-05 12:45:53 +02:00
Joas Schilling
82a45cd4da [prep-release-3.1.6] Update version for final 3.1.6 release 2015-09-05 12:45:00 +02:00
Matt Friedman
076807c63a [ticket/14142] Remove unused ignore_configs from avatar drivers
PHPBB3-14142
2015-09-04 13:38:14 -07:00
Zoddo
053a6d1d70 [ticket/8800] Add "mark topics read" link to "View unread posts"
PHPBB3-8800
2015-09-04 20:06:13 +02:00
Tristan Darricau
7701034871 [ticket/14140] Update SYmfony to 2.3.32
PHPBB3-14140
2015-09-03 14:57:05 +02:00
Tristan Darricau
5faa12db4c Merge pull request #3855 from VSEphpbb/ticket/14123
[ticket/14123] Add descriptive help to the CLI help output

* VSEphpbb/ticket/14123:
  [ticket/14123] Fix typo
  [ticket/14123] Remove redundant help messages
  [ticket/14123] Add descriptive help to the CLI help output
2015-09-02 12:44:52 +02:00
Tristan Darricau
58af8606c1 Merge pull request #3853 from marc1706/ticket/14075
[ticket/14075] Add template event after poll preview panel

* marc1706/ticket/14075:
  [ticket/14075] Update version to 3.1.7-RC1
  [ticket/14075] Add template event after poll preview panel
2015-09-02 12:03:58 +02:00
Tristan Darricau
48d05bad25 Merge pull request #3860 from kinerity/ticket/14126
[ticket/14126] Add viewtopic_topic_title_after template event

* kinerity/ticket/14126:
  [ticket/14126] Add viewtopic_topic_title_after template event
2015-09-02 11:59:14 +02:00
Tristan Darricau
2ee8b14f86 Merge pull request #3872 from Zoddo/ticket/11468
[ticket/11468] Allow controllers to set paramters of page_header()

* Zoddo/ticket/11468:
  [ticket/11468] Allow controllers to set paramters of page_header()
2015-09-02 11:50:35 +02:00
Tristan Darricau
8749c99e34 Merge pull request #3765 from Zoddo/ticket/13950
[ticket/13950] Hide undefined permissions

* Zoddo/ticket/13950:
  [ticket/13950] Hide undefined categories
  [ticket/13950] Hide undefined permissions
2015-09-01 21:47:05 +02:00
Tristan Darricau
4979d98aa9 Merge pull request #3873 from lavigor/ticket/14133
[ticket/14133] Comment fix for phpbb_get_user_rank()

* lavigor/ticket/14133:
  [ticket/14133] Comment fix for phpbb_get_user_rank()
2015-09-01 18:46:56 +02:00
lavigor
3fe517f50c [ticket/14133] Comment fix for phpbb_get_user_rank()
PHPBB3-14133
2015-08-31 21:49:22 +03:00
Zoddo
cc060a2611 [ticket/11468] Allow controllers to set paramters of page_header()
PHPBB3-11468
2015-08-30 23:24:07 +02:00
Max Pen
96521767f8 [ticket/13992] Fix HTML5 error from w3.org validator
PHPBB3-13992
2015-08-30 22:02:39 +02:00
Zoddo
a606b1c480 [ticket/7362] Add alt attribute on topic icons
PHPBB3-7362
2015-08-30 14:37:28 +02:00
Zoddo
e9e199bc37 [ticket/8920] Add a MCP PM reports view permission
Anybody who has the permission to read reports in one forum
can read PM reports.

Solving this problem by adding a new permission to read PM reports.

PHPBB3-8920
2015-08-30 12:18:37 +02:00
Zoddo
af246483e2 [ticket/13950] Hide undefined categories
This hides the categories added by disabled extensions

PHPBB3-13950
2015-08-28 18:56:10 +02:00
Zoddo
11b2bffa8e [ticket/13950] Hide undefined permissions
This hides the permissions of the disabled extensions

PHPBB3-13950
2015-08-28 18:43:59 +02:00
Tristan Darricau
bfbce5a1b0 Merge pull request #3764 from Zoddo/ticket/13988
[ticket/13988] Use absolute path for image attachments in feeds

* Zoddo/ticket/13988:
  [ticket/13988] Update tests
  [ticket/13988] Use absolute path for image attachments in feeds
2015-08-28 17:05:09 +02:00
Matt Friedman
76158e429b [ticket/14123] Fix typo
PHPBB3-14123
2015-08-28 07:54:50 -07:00
Matt Friedman
6c36f56b12 [ticket/14123] Remove redundant help messages
PHPBB3-14123
2015-08-28 07:49:07 -07:00
Tristan Darricau
624f5ae921 Merge pull request #3835 from rxu/ticket/14106
[ticket/14106] Fix topics sorting in MCP for topics merging.

* rxu/ticket/14106:
  [ticket/14106] Fix topics sorting in MCP for topics merging.
2015-08-28 16:40:33 +02:00
Tristan Darricau
6d7a5dfe5e Merge pull request #3802 from Oyabun1/ticket/14058
[ticket/14058] Contact us form missing email subject field in subsilver2

* Oyabun1/ticket/14058:
  [ticket/14058] Contact us form missing email subject field in subsilver2
2015-08-28 16:29:31 +02:00
Tristan Darricau
90d18356a0 Merge pull request #3809 from marc1706/ticket/14070
[ticket/14070] Properly pass whether config should be ignored for avatars

* marc1706/ticket/14070:
  [ticket/14070] Properly pass whether config should be ignored for avatars
2015-08-28 16:27:05 +02:00
Tristan Darricau
eb2b3868bb Merge pull request #3862 from Zoddo/ticket/14127
[ticket/14127] Fix the BBCode FAQ about auto-linking w/o protocol

* Zoddo/ticket/14127:
  [ticket/14127] Fix the BBCode FAQ about auto-linking w/o protocol
2015-08-27 23:09:01 +02:00
Marc Alexander
5a51acd643 [ticket/14075] Update version to 3.1.7-RC1
PHPBB3-14075
2015-08-25 15:22:09 +02:00
Zoddo
2b01772fa9 [ticket/14127] Fix the BBCode FAQ about auto-linking w/o protocol
This error was accidentally introduced in the patch
for PHPBB3-13967 (PR #3729)

PHPBB3-14127
2015-08-25 12:43:18 +02:00
Kailey Truscott
d08c5edcca [ticket/14126] Add viewtopic_topic_title_after template event
Add content directly after the topic title link on the View topic screen
(outside of the h2 HTML tag).

PHPBB3-14126
2015-08-24 17:53:09 -04:00
Matt Friedman
13851f308f [ticket/14123] Add descriptive help to the CLI help output
PHPBB3-14123
2015-08-23 15:14:08 -07:00
Joas Schilling
335452b1c1 [3.1.x] Update version to 3.1.7-dev 2015-08-23 18:24:12 +02:00
Joas Schilling
4be255ef9f Merge branch 'prep-release-3.1.6' into 3.1.x 2015-08-23 18:22:33 +02:00
Zoddo
0caaf86158 [ticket/14089] Add posting_topic_title_after template event
Allows to add some information after the topic title in the posting form

PHPBB3-14089
2015-08-23 14:12:44 +02:00
javiexin
f153342fb3 [ticket/14075] Add template event after poll preview panel
PHPBB3-14075
2015-08-22 08:57:26 +02:00
rxu
ec032733de [ticket/14106] Fix topics sorting in MCP for topics merging.
The "bug" in the deleted code comment is non-existent now.
The PR is for 3.1 only.

PHPBB3-14106
2015-08-16 19:55:00 +07:00
rxu
6b0f235cc9 [ticket/14102] Add core event to the mcp_topic.php
PHPBB3-14102
2015-08-15 18:38:25 +07:00
rxu
c4bc5f3930 [ticket/14088] Add more core events to the search.php
Also add more vars to the core.search_get_topic_data event.

PHPBB3-14088
2015-08-11 03:14:24 +07:00
rxu
b1e92393ee [ticket/14080] Add template events around the topic row in viewforum_body.html
PHPBB3-14080
2015-08-09 00:32:22 +07:00
Marc Alexander
f4c1796d5e [ticket/14070] Properly pass whether config should be ignored for avatars
PHPBB3-14070
2015-08-05 17:46:17 +02:00
Oyabun1
84f8d6d64e [ticket/14058] Contact us form missing email subject field in subsilver2
PHPBB3-14058
2015-07-31 22:30:30 +10:00
rxu
0d6c323611 [ticket/13846] Fix MCP to disallow softdeleted posts deletion if not permitted.
PHPBB3-13846
2015-07-30 19:35:01 +07:00
Zoddo
7e1b0330a3 [ticket/13988] Update tests
PHPBB3-13988
2015-07-18 21:18:49 +02:00
CarstenF
23f1b7d9c7 [ticket/13988] Use absolute path for image attachments in feeds
Previously, atom feeds use relative links for image attachments

PHPBB3-13988
2015-07-15 19:39:54 +02:00
javiexin
51bb51124a [ticket/13748] Wrong tooltip after poll vote change
Store the "voted" tooltip in an extra attribute in HTML, and use it
with the JS that refreshes after poll vote. Use L_ language string
instead of LA_ language string.

PHPBB3-13748
2015-07-06 11:39:28 +02:00
javiexin
80fee7422c [ticket/13934] Add enctype clause for profile fields
Adds a template variable (the same) in all places where profile fields
may need an enctype clause in the corresponding forms.

PHPBB3-13934
2015-06-30 14:35:01 +02:00
javiexin
bd40f2f619 [ticket/13960] Profile field validation breaks ACP
Make sure new step is calculated only if no error has been identified
during validation.  Also, cleanup redundant code in acp_profile.php.

PHPBB3-13960
2015-06-23 11:02:08 +02:00
javiexin
5e39a7ab72 [ticket/13748] Wrong tooltip after poll vote change
Store the "voted" tooltip in an extra attribute in HTML, and use it
with the JS that refreshes after poll vote.

PHPBB3-13748
2015-06-19 11:33:37 +02:00
Marc Alexander
5b8a721b73 [ticket/13799] Split lines in HTML files for better readability
PHPBB3-13799
2015-06-04 18:21:05 +02:00
Marc Alexander
0427e5f1b3 [ticket/13799] Add missing space before checked attribute
PHPBB3-13799
2015-06-04 18:14:52 +02:00
Marc Alexander
e04f9a2425 [ticket/9252] Do not try to disapprove a post that was just approved
Without this change, posts that are approved by someone right before
another moderator is trying to disapprove a post are actually deleted
instead of disapproved.

PHPBB3-9252
2015-05-30 12:27:00 +02:00
Marc Alexander
1ba86eaa8e [ticket/13799] Correctly urlencode category and show selected avatar
PHPBB3-13799
2015-05-30 11:54:54 +02:00
Marc Alexander
ed064ce0f1 [ticket/13799] Do not rawurlencode category in gallery avatar
Otherwise the directory seperator will incorrectly be transformed to its
HTML replacement.

PHPBB3-13799
2015-05-28 15:36:27 +02:00
rxu
73fd75abf1 [ticket/13846] Fix softdelete feature workflow in viewtopic
Changes:
- For permanent deletion of softdeleted post, disapprove mode has been changed
to delete mode;
- If post delete and softdelete are allowed, delete button triggers softdelete
mode;
- If a user can't permanently delete posts but can restore softdeleted posts,
delete button won't be displayed for softdeleted posts.
Subsilver2 is unaffected.

PHPBB3-13846
2015-05-17 21:52:30 +07:00
MateBartus
cc29638bcc [ticket/13636] Fix coding style
PHPBB3-13636
2015-04-06 13:15:39 +02:00
MateBartus
19fe32d5b2 [ticket/13636] Deleting inactive user in acp_users gives unexpected link
Change "referer" to "redirect" in variable names and GET params as well.

PHPBB3-13636
2015-02-24 21:23:58 +01:00
MateBartus
b8dfbfe390 [ticket/13636] Deleting inactive user in acp_users gives unexpected link
Success message did not provide the expected "previous page" link
(acp_inactive was expected, but the link took users to acp_users) if the
acp_users module was accessed by navigating from the inactive user list to
acp_users and then deleting inactive user.

PHPBB3-13636
2015-02-24 21:06:53 +01:00
150 changed files with 2324 additions and 553 deletions

View File

@@ -50,4 +50,3 @@ script:
- sh -c "if [ '$SLOWTESTS' != '1' ]; then phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml; fi"
- sh -c "if [ '$SLOWTESTS' = '1' ]; then phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml --group slow; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.3.3' -a '$DB' = 'mysqli' -a '$TRAVIS_PULL_REQUEST' != 'false' ]; then git-tools/commit-msg-hook-range.sh origin/$TRAVIS_BRANCH..FETCH_HEAD; fi"

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

View File

@@ -12,7 +12,7 @@
<!-- BEGIN avatar_local_col -->
<li>
<label for="av-{avatar_local_row.S_ROW_COUNT}-{avatar_local_row.avatar_local_col.S_ROW_COUNT}"><img src="{avatar_local_row.avatar_local_col.AVATAR_IMAGE}" alt="" /><br />
<input type="radio" name="avatar_local_file" id="av-{avatar_local_row.S_ROW_COUNT}-{avatar_local_row.avatar_local_col.S_ROW_COUNT}" value="{avatar_local_row.avatar_local_col.AVATAR_FILE}" /></label>
<input type="radio" name="avatar_local_file" id="av-{avatar_local_row.S_ROW_COUNT}-{avatar_local_row.avatar_local_col.S_ROW_COUNT}" value="{avatar_local_row.avatar_local_col.AVATAR_FILE}"<!-- IF avatar_local_row.avatar_local_col.CHECKED -->checked="checked"<!-- ENDIF --> /></label>
</li>
<!-- END avatar_local_col -->
<!-- END avatar_local_row -->

View File

@@ -52,7 +52,7 @@
<legend>{L_TITLE}</legend>
<dl>
<dt><label for="ban">{L_BAN_CELL}{L_COLON}</label></dt>
<dd><textarea name="ban" cols="40" rows="3" id="ban"></textarea></dd>
<dd><!-- EVENT acp_ban_cell_prepend --><textarea name="ban" cols="40" rows="3" id="ban"></textarea><!-- EVENT acp_ban_cell_append --></dd>
<!-- IF S_USERNAME_BAN --><dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd><!-- ENDIF -->
</dl>
<dl>

View File

@@ -8,6 +8,13 @@
<p>{L_ACP_VC_EXT_GET_MORE}</p>
<!-- IF ERROR_MSG -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="acp_captcha" method="post" action="{U_ACTION}">
<fieldset>

View File

@@ -19,12 +19,14 @@
<legend>{L_COMPOSE}</legend>
<dl>
<dt><label for="group">{L_SEND_TO_GROUP}{L_COLON}</label></dt>
<!-- EVENT acp_email_group_options_prepend -->
<dd><select id="group" name="g">{S_GROUP_OPTIONS}</select></dd>
<!-- EVENT acp_email_group_options_append -->
</dl>
<dl>
<dt><label for="usernames">{L_SEND_TO_USERS}{L_COLON}</label><br /><span>{L_SEND_TO_USERS_EXPLAIN}</span></dt>
<dd><textarea name="usernames" id="usernames" rows="5" cols="40">{USERNAMES}</textarea></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd><!-- EVENT acp_email_find_username_prepend -->[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]<!-- EVENT acp_email_find_username_append --></dd>
</dl>
<dl>
<dt><label for="subject">{L_SUBJECT}{L_COLON}</label></dt>

View File

@@ -47,8 +47,8 @@
<td class="row3" colspan="4"><strong>{L_EXTENSIONS_ENABLED}</strong></td>
</tr>
<!-- BEGIN enabled -->
<tr class="ext_enabled">
<td><strong>{enabled.META_DISPLAY_NAME}</strong></td>
<tr class="ext_enabled row-highlight">
<td><strong title="{enabled.NAME}">{enabled.META_DISPLAY_NAME}</strong></td>
<td style="text-align: center;">
<!-- IF enabled.S_VERSIONCHECK -->
<strong <!-- IF enabled.S_UP_TO_DATE -->style="color: #228822;"<!-- ELSE -->style="color: #BC2A4D;"<!-- ENDIF -->>{enabled.META_VERSION}</strong>
@@ -72,8 +72,8 @@
<td class="row3" colspan="4"><strong>{L_EXTENSIONS_DISABLED}</strong></td>
</tr>
<!-- BEGIN disabled -->
<tr class="ext_disabled">
<td><strong>{disabled.META_DISPLAY_NAME}</strong></td>
<tr class="ext_disabled row-highlight">
<td><strong title="{disabled.NAME}">{disabled.META_DISPLAY_NAME}</strong></td>
<td style="text-align: center;">
<!-- IF disabled.S_VERSIONCHECK -->
<strong <!-- IF disabled.S_UP_TO_DATE -->style="color: #228822;"<!-- ELSE -->style="color: #BC2A4D;"<!-- ENDIF -->>{disabled.META_VERSION}</strong>

View File

@@ -498,7 +498,7 @@
<fieldset class="quick">
{L_SELECT_FORUM}{L_COLON} <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{FORUM_BOX}</select>
<input class="button2" type="submit" value="{L_GO}" />
<!-- EVENT acp_forums_quick_select_button_prepend --><input class="button2" type="submit" value="{L_GO}" /><!-- EVENT acp_forums_quick_select_button_append -->
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -236,7 +236,7 @@
<dl>
<dt><label for="usernames">{L_USERNAME}{L_COLON}</label><br /><span>{L_USERNAMES_EXPLAIN}</span></dt>
<dd><textarea id="usernames" name="usernames" cols="40" rows="5"></textarea></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd><!-- EVENT acp_groups_find_username_prepend -->[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]<!-- EVENT acp_groups_find_username_append --></dd>
</dl>
<p class="quick">
@@ -265,6 +265,7 @@
<form id="acp_groups" method="post" action="{U_ACTION}">
<!-- EVENT acp_groups_manage_before -->
<table class="table1">
<col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" />
<thead>
@@ -285,6 +286,7 @@
<!-- ENDIF -->
</tbody>
</table>
<!-- EVENT acp_groups_manage_after -->
<fieldset class="quick">
<!-- IF S_GROUP_ADD -->

View File

@@ -65,8 +65,10 @@
<option<!-- IF add_legend.GROUP_SPECIAL --> class="sep"<!-- ENDIF --> value="{add_legend.GROUP_ID}">{add_legend.GROUP_NAME}</option>
<!-- END add_legend -->
</select>
<!-- EVENT acp_groups_position_legend_add_button_before -->
<input class="button2" type="submit" name="submit" value="{L_ADD}" />
<input type="hidden" name="action" value="add" />
<!-- EVENT acp_groups_position_legend_add_button_after -->
{S_FORM_TOKEN}
</fieldset>
</form>
@@ -162,8 +164,10 @@
<option<!-- IF add_teampage.GROUP_SPECIAL --> class="sep"<!-- ENDIF --> value="{add_teampage.GROUP_ID}">{add_teampage.GROUP_NAME}</option>
<!-- END add_teampage -->
</select>
<!-- EVENT acp_groups_position_teampage_add_button_before -->
<input class="button2" type="submit" name="submit" value="{L_ADD}" />
<input type="hidden" name="action" value="add" />
<!-- EVENT acp_groups_position_teampage_add_button_after -->
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -18,6 +18,7 @@
<thead>
<tr>
<th>{L_USERNAME}</th>
<th>{L_EMAIL}</th>
<th>{L_JOINED}</th>
<th>{L_INACTIVE_DATE}</th>
<th>{L_LAST_VISIT}</th>
@@ -32,6 +33,7 @@
{inactive.USERNAME_FULL}
<!-- IF inactive.POSTS --><br />{L_POSTS}{L_COLON} <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
</td>
<td style="vertical-align: top;">{inactive.USER_EMAIL}</td>
<td style="vertical-align: top;">{inactive.JOINED}</td>
<td style="vertical-align: top;">{inactive.INACTIVE_DATE}</td>
<td style="vertical-align: top;">{inactive.LAST_VISIT}</td>

View File

@@ -73,7 +73,7 @@
<!-- IF S_SHOW_FORUMS -->
<fieldset class="quick">
{L_SELECT_FORUM}{L_COLON} <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{S_FORUM_BOX}</select>
<input class="button2" type="submit" value="{L_GO}" />
<!-- EVENT acp_logs_quick_select_forum_button_prepend --><input class="button2" type="submit" value="{L_GO}" /><!-- EVENT acp_logs_quick_select_forum_button_append -->
</fieldset>
<!-- ENDIF -->

View File

@@ -141,19 +141,24 @@
<td>{L_GZIP_COMPRESSION}{L_COLON} </td>
<td><strong>{GZIP_COMPRESSION}</strong></td>
</tr>
<!-- IF S_TOTAL_ORPHAN or S_VERSIONCHECK -->
<tr>
<!-- IF S_VERSIONCHECK -->
<td>{L_BOARD_VERSION}{L_COLON} </td>
<td>
<strong><a href="{U_VERSIONCHECK}" <!-- IF S_VERSION_UP_TO_DATE -->style="color: #228822;"<!-- ELSE -->style="color: #BC2A4D;"<!-- ENDIF --> title="{L_MORE_INFORMATION}">{BOARD_VERSION}</a></strong> [&nbsp;<a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a>&nbsp;]
<strong><a href="{U_VERSIONCHECK}" <!-- IF S_VERSION_UP_TO_DATE -->style="color: #228822;" <!-- ELSEIF not S_VERSIONCHECK_FAIL -->style="color: #BC2A4D;" <!-- ENDIF -->title="{L_MORE_INFORMATION}">{BOARD_VERSION}</a></strong> [&nbsp;<a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a>&nbsp;]
</td>
<!-- ENDIF -->
<!-- IF S_TOTAL_ORPHAN -->
<td>{L_NUMBER_ORPHAN}{L_COLON} </td>
<td><strong>{TOTAL_ORPHAN}</strong></td>
<!-- ELSE -->
<!-- ENDIF -->
<!-- IF not S_TOTAL_ORPHAN or not S_VERSIONCHECK -->
<td>&nbsp;</td>
<td>&nbsp;</td>
<!-- ENDIF -->
</tr>
<!-- ENDIF -->
</tbody>
</table>

View File

@@ -30,7 +30,7 @@
<legend>{L_LOOK_UP_FORUM}</legend>
<!-- IF S_FORUM_MULTIPLE --><p>{L_LOOK_UP_FORUMS_EXPLAIN}</p><!-- ENDIF -->
<dl>
<dt><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt>
<dt><!-- EVENT acp_permissions_select_multiple_forum_prepend --><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label><!-- EVENT acp_permissions_select_multiple_forum_append --></dt>
<dd><select id="forum" name="forum_id[]"<!-- IF S_FORUM_MULTIPLE --> multiple="multiple"<!-- ENDIF --> size="10">{S_FORUM_OPTIONS}</select></dd>
<!-- IF S_FORUM_ALL --><dd><label><input type="checkbox" class="radio" name="all_forums" value="1" /> {L_ALL_FORUMS}</label></dd><!-- ENDIF -->
</dl>
@@ -52,7 +52,7 @@
<legend>{L_LOOK_UP_FORUM}</legend>
<p>{L_SELECT_FORUM_SUBFORUM_EXPLAIN}</p>
<dl>
<dt><label for="sforum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt>
<dt><!-- EVENT acp_permissions_select_forum_prepend --><label for="sforum">{L_LOOK_UP_FORUM}{L_COLON}</label><!-- EVENT acp_permissions_select_forum_append --></dt>
<dd><select id="sforum" name="subforum_id">{S_SUBFORUM_OPTIONS}</select></dd>
</dl>
@@ -95,7 +95,7 @@
<fieldset>
<legend>{L_LOOK_UP_GROUP}</legend>
<dl>
<dt><label for="group">{L_LOOK_UP_GROUP}{L_COLON}</label></dt>
<dt><!-- EVENT acp_permissions_select_group_prepend --><label for="group">{L_LOOK_UP_GROUP}{L_COLON}</label><!-- EVENT acp_permissions_select_group_append --></dt>
<dd><select name="group_id[]" id="group">{S_GROUP_OPTIONS}</select></dd>
</dl>
@@ -140,7 +140,7 @@
<p>{L_USERNAMES_EXPLAIN}</p>
<dl>
<dd class="full"><textarea id="username" name="usernames" rows="5" cols="5" style="width: 100%; height: 60px;"></textarea></dd>
<dd class="full" style="text-align: left;"><div style="float: {S_CONTENT_FLOW_END};">[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</div><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
<dd class="full" style="text-align: left;"><!-- EVENT acp_permissions_find_username_prepend --><div style="float: {S_CONTENT_FLOW_END};">[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</div><!-- EVENT acp_permissions_find_username_append --><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
</dl>
</fieldset>
@@ -183,7 +183,7 @@
<fieldset>
<legend>{L_ADD_GROUPS}</legend>
<dl>
<dd class="full"><select name="group_id[]" style="width: 100%; height: 107px;" multiple="multiple">{S_ADD_GROUP_OPTIONS}</select></dd>
<dd class="full"><!-- EVENT acp_permissions_add_group_options_prepend --><select name="group_id[]" style="width: 100%; height: 107px;" multiple="multiple">{S_ADD_GROUP_OPTIONS}</select><!-- EVENT acp_permissions_add_group_options_append --></dd>
</dl>
</fieldset>
@@ -267,7 +267,9 @@
<legend>{L_LOOK_UP_GROUP}</legend>
<dl>
<dt><label for="group_select">{L_LOOK_UP_GROUP}{L_COLON}</label></dt>
<!-- EVENT acp_permissions_select_group_before -->
<dd><select name="group_id[]" id="group_select">{S_ADD_GROUP_OPTIONS}</select></dd>
<!-- EVENT acp_permissions_select_group_after -->
<dd>&nbsp;</dd>
</dl>
</fieldset>

View File

@@ -17,7 +17,7 @@
</div>
<!-- ENDIF -->
<form id="add_profile_field" method="post" action="{U_ACTION}">
<form id="add_profile_field" method="post" action="{U_ACTION}"{S_FORM_ENCTYPE}>
<!-- IF S_STEP_ONE -->

View File

@@ -43,7 +43,7 @@
<legend>{L_SELECT_FORUM}</legend>
<p>{L_LOOK_UP_FORUMS_EXPLAIN}</p>
<dl>
<dt><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt>
<dt><!-- EVENT acp_prune_forums_prepend --><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label><!-- EVENT acp_prune_forums_append --></dt>
<dd><select id="forum" name="f[]" multiple="multiple" size="10">{S_FORUM_OPTIONS}</select></dd>
<dd><label><input type="checkbox" class="radio" name="all_forums" value="1" /> {L_ALL_FORUMS}</label></dd>
</dl>

View File

@@ -50,7 +50,7 @@
<dl>
<dt><label for="users">{L_ACP_PRUNE_USERS}{L_COLON}</label><br /><span>{L_SELECT_USERS_EXPLAIN}</span></dt>
<dd><textarea id="users" name="users" cols="40" rows="5"></textarea></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd><!-- EVENT acp_prune_users_find_username_prepend -->[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]<!-- EVENT acp_prune_users_find_username_append --></dd>
</dl>
</fieldset>

View File

@@ -87,6 +87,7 @@
<!-- ENDIF -->
<!-- IF .styles_list -->
<!-- EVENT acp_styles_list_before -->
<table class="table1 styles">
<thead>
<tr>
@@ -99,7 +100,7 @@
</thead>
<!-- BEGIN styles_list -->
<tbody id="styles-list-{styles_list.S_ROW_COUNT}">
<tr<!-- IF styles_list.STYLE_ID and not styles_list.STYLE_ACTIVE --> class="row-inactive"<!-- ENDIF -->>
<tr class="row-highlight<!-- IF styles_list.STYLE_ID and not styles_list.STYLE_ACTIVE --> row-inactive<!-- ENDIF -->">
<!-- IF styles_list.LEVEL is odd -->
<!-- IF $ROW_CLASS == 'row1a' --><!-- DEFINE $ROW_CLASS = 'row1b' --><!-- ELSE --><!-- DEFINE $ROW_CLASS = 'row1a' --><!-- ENDIF -->
<!-- ELSE -->

View File

@@ -146,7 +146,9 @@
<!-- IF S_GROUP_OPTIONS -->
<fieldset class="quick">
<!-- EVENT acp_users_select_group_before -->
{L_USER_GROUP_ADD}{L_COLON} <select name="g">{S_GROUP_OPTIONS}</select> <input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
<!-- EVENT acp_users_select_group_after -->
{S_FORM_TOKEN}
</fieldset>
<!-- ENDIF -->

View File

@@ -1,4 +1,4 @@
<form id="user_profile" method="post" action="{U_ACTION}">
<form id="user_profile" method="post" action="{U_ACTION}"{S_FORM_ENCTYPE}>
<fieldset>
<legend>{L_USER_PROFILE}</legend>

View File

@@ -859,6 +859,8 @@ table.zebra-table tbody tr:nth-child(even) {
.row2a { background-color: #E7EEF4; }
.row2b { background-color: #E3EBF2; }
tr.row-highlight:hover td { background-color: #DBDFE2; }
.spacer {
background-color: #DBDFE2;
height: 1px;

View File

@@ -12,7 +12,7 @@
<legend>{L_LOOK_UP_FORUM}</legend>
<dl>
<dt><label for="src_forum">{L_COPY_PERMISSIONS_FROM}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_FORUM_FROM_EXPLAIN}</span></dt>
<dt><!-- EVENT acp_permission_forum_copy_src_forum_prepend --><label for="src_forum">{L_COPY_PERMISSIONS_FROM}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_FORUM_FROM_EXPLAIN}</span><!-- EVENT acp_permission_forum_copy_src_forum_append --></dt>
<dd><select id="src_forum" name="src_forum_id"><option value="0">{L_SELECT_FORUM}</option><option value="-1">------------------</option>{S_FORUM_OPTIONS}</select></dd>
</dl>
</fieldset>
@@ -22,7 +22,7 @@
<p>{L_LOOK_UP_FORUMS_EXPLAIN}</p>
<dl>
<dt><label for="dest_forums">{L_COPY_PERMISSIONS_TO}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_FORUM_TO_EXPLAIN}</span></dt>
<dt><!-- EVENT acp_permission_forum_copy_dest_forum_prepend --><label for="dest_forums">{L_COPY_PERMISSIONS_TO}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_FORUM_TO_EXPLAIN}</span><!-- EVENT acp_permission_forum_copy_dest_forum_append --></dt>
<dd><select id="dest_forums" name="dest_forum_ids[]" multiple="multiple" size="10">{S_FORUM_OPTIONS}</select></dd>
</dl>
</fieldset>

View File

@@ -303,6 +303,10 @@ phpbb.ajaxify = function(options) {
alert = phpbb.alert(res.MESSAGE_TITLE, res.MESSAGE_TEXT);
} else {
$dark.fadeOut(phpbb.alertTime);
if ($loadingIndicator) {
$loadingIndicator.fadeOut(phpbb.alertTime);
}
}
if (typeof phpbb.ajaxCallbacks[callback] === 'function') {

View File

@@ -25,7 +25,7 @@
"phpbb/phpbb-core": "self.version"
},
"require": {
"php": ">=5.3.3",
"php": ">=5.3.3,<7.0",
"lusitanian/oauth": "0.2.*",
"symfony/config": "2.3.*",
"symfony/console": "2.3.*",

447
phpBB/composer.lock generated
View File

@@ -109,17 +109,17 @@
},
{
"name": "symfony/config",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/Config",
"source": {
"type": "git",
"url": "https://github.com/symfony/Config.git",
"reference": "f9fac999dbc2c6aabd749c034d938b5f9aa5fb7d"
"url": "https://github.com/symfony/config.git",
"reference": "665b906c22103bb36eaeff31cc3063b53ed4eae5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Config/zipball/f9fac999dbc2c6aabd749c034d938b5f9aa5fb7d",
"reference": "f9fac999dbc2c6aabd749c034d938b5f9aa5fb7d",
"url": "https://api.github.com/repos/symfony/config/zipball/665b906c22103bb36eaeff31cc3063b53ed4eae5",
"reference": "665b906c22103bb36eaeff31cc3063b53ed4eae5",
"shasum": ""
},
"require": {
@@ -135,39 +135,42 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\Config\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Config Component",
"homepage": "http://symfony.com",
"time": "2014-09-23 05:15:05"
"homepage": "https://symfony.com",
"time": "2015-11-18 08:19:46"
},
{
"name": "symfony/console",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/Console",
"source": {
"type": "git",
"url": "https://github.com/symfony/Console.git",
"reference": "aa12ac573c583a74c2cb26ad9be478e119f04ad1"
"url": "https://github.com/symfony/console.git",
"reference": "ed9c6cad324afb02672fa8ebf55fe0feb1659067"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Console/zipball/aa12ac573c583a74c2cb26ad9be478e119f04ad1",
"reference": "aa12ac573c583a74c2cb26ad9be478e119f04ad1",
"url": "https://api.github.com/repos/symfony/console/zipball/ed9c6cad324afb02672fa8ebf55fe0feb1659067",
"reference": "ed9c6cad324afb02672fa8ebf55fe0feb1659067",
"shasum": ""
},
"require": {
@@ -188,47 +191,53 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\Console\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Console Component",
"homepage": "http://symfony.com",
"time": "2014-10-05 13:45:10"
"homepage": "https://symfony.com",
"time": "2015-11-18 08:19:46"
},
{
"name": "symfony/debug",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/Debug",
"source": {
"type": "git",
"url": "https://github.com/symfony/Debug.git",
"reference": "883f847ad179e92549a8cea372b08e5ef47ffe40"
"url": "https://github.com/symfony/debug.git",
"reference": "c0f543d3c40f5b885a68bc87ef1f2f8aec8e0424"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Debug/zipball/883f847ad179e92549a8cea372b08e5ef47ffe40",
"reference": "883f847ad179e92549a8cea372b08e5ef47ffe40",
"url": "https://api.github.com/repos/symfony/debug/zipball/c0f543d3c40f5b885a68bc87ef1f2f8aec8e0424",
"reference": "c0f543d3c40f5b885a68bc87ef1f2f8aec8e0424",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"conflict": {
"symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
},
"require-dev": {
"symfony/http-foundation": "~2.1",
"symfony/http-kernel": "~2.1"
"symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2"
},
"suggest": {
"symfony/class-loader": "",
@@ -244,39 +253,42 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\Debug\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Debug Component",
"homepage": "http://symfony.com",
"time": "2014-10-09 16:42:17"
"homepage": "https://symfony.com",
"time": "2015-11-18 08:19:46"
},
{
"name": "symfony/dependency-injection",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/DependencyInjection",
"source": {
"type": "git",
"url": "https://github.com/symfony/DependencyInjection.git",
"reference": "e2324e1c8c39faa5f27e6170b278d7f631574141"
"url": "https://github.com/symfony/dependency-injection.git",
"reference": "d3c6bcab8f626c32e687f8b77d683f8a9f1f4be3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/e2324e1c8c39faa5f27e6170b278d7f631574141",
"reference": "e2324e1c8c39faa5f27e6170b278d7f631574141",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d3c6bcab8f626c32e687f8b77d683f8a9f1f4be3",
"reference": "d3c6bcab8f626c32e687f8b77d683f8a9f1f4be3",
"shasum": ""
},
"require": {
@@ -284,7 +296,7 @@
},
"require-dev": {
"symfony/config": "~2.2",
"symfony/yaml": "~2.0"
"symfony/yaml": "~2.1"
},
"suggest": {
"symfony/config": "",
@@ -300,46 +312,49 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\DependencyInjection\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony DependencyInjection Component",
"homepage": "http://symfony.com",
"time": "2014-10-01 05:38:33"
"homepage": "https://symfony.com",
"time": "2015-11-19 14:08:33"
},
{
"name": "symfony/event-dispatcher",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/EventDispatcher",
"source": {
"type": "git",
"url": "https://github.com/symfony/EventDispatcher.git",
"reference": "3e0b837811fadd73c833c7c06a92201d953df59d"
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "08564581a8444035d0874efc35a6366be8c0af9e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/3e0b837811fadd73c833c7c06a92201d953df59d",
"reference": "3e0b837811fadd73c833c7c06a92201d953df59d",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/08564581a8444035d0874efc35a6366be8c0af9e",
"reference": "08564581a8444035d0874efc35a6366be8c0af9e",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/dependency-injection": "~2.0"
"symfony/dependency-injection": "~2.0,>=2.0.5"
},
"suggest": {
"symfony/dependency-injection": "",
@@ -354,39 +369,42 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\EventDispatcher\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony EventDispatcher Component",
"homepage": "http://symfony.com",
"time": "2014-10-01 05:39:06"
"homepage": "https://symfony.com",
"time": "2015-11-18 08:19:46"
},
{
"name": "symfony/filesystem",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/Filesystem",
"source": {
"type": "git",
"url": "https://github.com/symfony/Filesystem.git",
"reference": "1c3a5fab445d1d4a5d57f8fbf1379696c9785942"
"url": "https://github.com/symfony/filesystem.git",
"reference": "d72d4b276921c2388ac09a5a6716e10d57a6e89b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Filesystem/zipball/1c3a5fab445d1d4a5d57f8fbf1379696c9785942",
"reference": "1c3a5fab445d1d4a5d57f8fbf1379696c9785942",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/d72d4b276921c2388ac09a5a6716e10d57a6e89b",
"reference": "d72d4b276921c2388ac09a5a6716e10d57a6e89b",
"shasum": ""
},
"require": {
@@ -401,39 +419,42 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\Filesystem\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Filesystem Component",
"homepage": "http://symfony.com",
"time": "2014-09-22 08:32:35"
"homepage": "https://symfony.com",
"time": "2015-11-18 08:19:46"
},
{
"name": "symfony/http-foundation",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/HttpFoundation",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpFoundation.git",
"reference": "30c90f08f948dd43e7310beae7a85c02ad2b655d"
"url": "https://github.com/symfony/http-foundation.git",
"reference": "2242d5d7b12ee2291bbaac161d94ea312a9c0d1f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/30c90f08f948dd43e7310beae7a85c02ad2b655d",
"reference": "30c90f08f948dd43e7310beae7a85c02ad2b655d",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/2242d5d7b12ee2291bbaac161d94ea312a9c0d1f",
"reference": "2242d5d7b12ee2291bbaac161d94ea312a9c0d1f",
"shasum": ""
},
"require": {
@@ -451,6 +472,9 @@
},
"classmap": [
"Symfony/Component/HttpFoundation/Resources/stubs"
],
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -458,51 +482,53 @@
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony HttpFoundation Component",
"homepage": "http://symfony.com",
"time": "2014-10-23 13:11:04"
"homepage": "https://symfony.com",
"time": "2015-11-19 16:24:57"
},
{
"name": "symfony/http-kernel",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/HttpKernel",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpKernel.git",
"reference": "0154ff659004d4148e8da0f2bdb672efe55e6ee5"
"url": "https://github.com/symfony/http-kernel.git",
"reference": "a79bd3b40c73fd504d1e66ab6c40cdede509c600"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/HttpKernel/zipball/0154ff659004d4148e8da0f2bdb672efe55e6ee5",
"reference": "0154ff659004d4148e8da0f2bdb672efe55e6ee5",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/a79bd3b40c73fd504d1e66ab6c40cdede509c600",
"reference": "a79bd3b40c73fd504d1e66ab6c40cdede509c600",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"psr/log": "~1.0",
"symfony/debug": "~2.3",
"symfony/debug": "~2.3.24|~2.5.9|~2.6,>=2.6.2",
"symfony/event-dispatcher": "~2.1",
"symfony/http-foundation": "~2.2"
"symfony/http-foundation": "~2.3,>=2.3.4"
},
"require-dev": {
"symfony/browser-kit": "~2.2",
"symfony/browser-kit": "~2.3",
"symfony/class-loader": "~2.1",
"symfony/config": "~2.0",
"symfony/config": "~2.0,>=2.0.5",
"symfony/console": "~2.2",
"symfony/dependency-injection": "~2.0",
"symfony/finder": "~2.0",
"symfony/process": "~2.0",
"symfony/css-selector": "~2.0,>=2.0.5",
"symfony/dependency-injection": "~2.2",
"symfony/dom-crawler": "~2.0,>=2.0.5",
"symfony/finder": "~2.0,>=2.0.5",
"symfony/process": "~2.0,>=2.0.5",
"symfony/routing": "~2.2",
"symfony/stopwatch": "~2.2",
"symfony/stopwatch": "~2.3",
"symfony/templating": "~2.2"
},
"suggest": {
@@ -522,39 +548,42 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\HttpKernel\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony HttpKernel Component",
"homepage": "http://symfony.com",
"time": "2014-10-24 05:54:08"
"homepage": "https://symfony.com",
"time": "2015-11-23 10:44:06"
},
{
"name": "symfony/routing",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/Routing",
"source": {
"type": "git",
"url": "https://github.com/symfony/Routing.git",
"reference": "f7f8ebf9c99e5ebfdb908c3558a818c2883eab1f"
"url": "https://github.com/symfony/routing.git",
"reference": "08a4065c47b45a1785101aabb29082fe415cec6c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Routing/zipball/f7f8ebf9c99e5ebfdb908c3558a818c2883eab1f",
"reference": "f7f8ebf9c99e5ebfdb908c3558a818c2883eab1f",
"url": "https://api.github.com/repos/symfony/routing/zipball/08a4065c47b45a1785101aabb29082fe415cec6c",
"reference": "08a4065c47b45a1785101aabb29082fe415cec6c",
"shasum": ""
},
"require": {
@@ -565,7 +594,7 @@
"psr/log": "~1.0",
"symfony/config": "~2.2",
"symfony/http-foundation": "~2.3",
"symfony/yaml": "~2.0"
"symfony/yaml": "~2.0,>=2.0.5"
},
"suggest": {
"doctrine/common": "",
@@ -581,39 +610,42 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\Routing\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Routing Component",
"homepage": "http://symfony.com",
"time": "2014-10-13 12:38:27"
"homepage": "https://symfony.com",
"time": "2015-11-18 08:19:46"
},
{
"name": "symfony/yaml",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/Yaml",
"source": {
"type": "git",
"url": "https://github.com/symfony/Yaml.git",
"reference": "34687c6236f1dfcebc874fbebd8da74d90f9f64f"
"url": "https://github.com/symfony/yaml.git",
"reference": "6d7a3b7cfdd5095e5f4318ad4c2ed20c71c74764"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/34687c6236f1dfcebc874fbebd8da74d90f9f64f",
"reference": "34687c6236f1dfcebc874fbebd8da74d90f9f64f",
"url": "https://api.github.com/repos/symfony/yaml/zipball/6d7a3b7cfdd5095e5f4318ad4c2ed20c71c74764",
"reference": "6d7a3b7cfdd5095e5f4318ad4c2ed20c71c74764",
"shasum": ""
},
"require": {
@@ -628,25 +660,28 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\Yaml\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Yaml Component",
"homepage": "http://symfony.com",
"time": "2014-10-01 05:38:33"
"homepage": "https://symfony.com",
"time": "2015-11-18 08:19:46"
},
{
"name": "twig/twig",
@@ -805,6 +840,7 @@
"event",
"exception"
],
"abandoned": "guzzle/guzzle",
"time": "2013-09-08 21:09:18"
},
{
@@ -862,6 +898,7 @@
"http",
"http client"
],
"abandoned": "guzzle/guzzle",
"time": "2013-09-06 11:34:26"
},
{
@@ -906,6 +943,7 @@
"message",
"url"
],
"abandoned": "guzzle/guzzle",
"time": "2013-07-11 22:46:03"
},
{
@@ -959,6 +997,7 @@
"component",
"stream"
],
"abandoned": "guzzle/guzzle",
"time": "2013-07-30 22:07:23"
},
{
@@ -1868,7 +1907,8 @@
},
{
"name": "Adam Harvey",
"email": "aharvey@php.net"
"email": "aharvey@php.net",
"role": "Lead"
},
{
"name": "Bernhard Schussek",
@@ -1994,26 +2034,26 @@
},
{
"name": "symfony/browser-kit",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/BrowserKit",
"source": {
"type": "git",
"url": "https://github.com/symfony/BrowserKit.git",
"reference": "6a403eedacb56d32dc2cc657cfeac09d640ae6bc"
"url": "https://github.com/symfony/browser-kit.git",
"reference": "65576a393a8372e68ffe57706c1c9eb93e2aac98"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/BrowserKit/zipball/6a403eedacb56d32dc2cc657cfeac09d640ae6bc",
"reference": "6a403eedacb56d32dc2cc657cfeac09d640ae6bc",
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/65576a393a8372e68ffe57706c1c9eb93e2aac98",
"reference": "65576a393a8372e68ffe57706c1c9eb93e2aac98",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/dom-crawler": "~2.0"
"symfony/dom-crawler": "~2.0,>=2.0.5"
},
"require-dev": {
"symfony/css-selector": "~2.0",
"symfony/process": "~2.0"
"symfony/css-selector": "~2.0,>=2.0.5",
"symfony/process": "~2.3.34|~2.7,>=2.7.6"
},
"suggest": {
"symfony/process": ""
@@ -2027,39 +2067,42 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\BrowserKit\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony BrowserKit Component",
"homepage": "http://symfony.com",
"time": "2014-09-22 08:32:35"
"homepage": "https://symfony.com",
"time": "2015-11-18 08:19:46"
},
{
"name": "symfony/css-selector",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/CssSelector",
"source": {
"type": "git",
"url": "https://github.com/symfony/CssSelector.git",
"reference": "d9943386b648d21746bed25cc24f61fab1387943"
"url": "https://github.com/symfony/css-selector.git",
"reference": "93cccf44bf22103694611dc1802714d2cd36f5fb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/CssSelector/zipball/d9943386b648d21746bed25cc24f61fab1387943",
"reference": "d9943386b648d21746bed25cc24f61fab1387943",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/93cccf44bf22103694611dc1802714d2cd36f5fb",
"reference": "93cccf44bf22103694611dc1802714d2cd36f5fb",
"shasum": ""
},
"require": {
@@ -2074,17 +2117,16 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\CssSelector\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Jean-François Simon",
"email": "jeanfrancois.simon@sensiolabs.com"
@@ -2092,32 +2134,36 @@
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony CssSelector Component",
"homepage": "http://symfony.com",
"time": "2014-10-09 12:30:02"
"homepage": "https://symfony.com",
"time": "2015-11-18 08:19:46"
},
{
"name": "symfony/dom-crawler",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/DomCrawler",
"source": {
"type": "git",
"url": "https://github.com/symfony/DomCrawler.git",
"reference": "64b90870ee3a4e88c9a7a12861683864de029d31"
"url": "https://github.com/symfony/dom-crawler.git",
"reference": "be39e9bc2a3ae45a876174e8a2c49e263541a754"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/DomCrawler/zipball/64b90870ee3a4e88c9a7a12861683864de029d31",
"reference": "64b90870ee3a4e88c9a7a12861683864de029d31",
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/be39e9bc2a3ae45a876174e8a2c49e263541a754",
"reference": "be39e9bc2a3ae45a876174e8a2c49e263541a754",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"symfony/css-selector": "~2.0"
"symfony/css-selector": "~2.0,>=2.0.5"
},
"suggest": {
"symfony/css-selector": ""
@@ -2131,39 +2177,42 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\DomCrawler\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony DomCrawler Component",
"homepage": "http://symfony.com",
"time": "2014-10-01 05:38:33"
"homepage": "https://symfony.com",
"time": "2015-11-02 18:22:02"
},
{
"name": "symfony/finder",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/Finder",
"source": {
"type": "git",
"url": "https://github.com/symfony/Finder.git",
"reference": "fc25dab213d14468c39f12d47e5b79a72b898d4d"
"url": "https://github.com/symfony/finder.git",
"reference": "5baf7b74657db10c4ad8ca0934be74151268b741"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Finder/zipball/fc25dab213d14468c39f12d47e5b79a72b898d4d",
"reference": "fc25dab213d14468c39f12d47e5b79a72b898d4d",
"url": "https://api.github.com/repos/symfony/finder/zipball/5baf7b74657db10c4ad8ca0934be74151268b741",
"reference": "5baf7b74657db10c4ad8ca0934be74151268b741",
"shasum": ""
},
"require": {
@@ -2178,39 +2227,42 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\Finder\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Finder Component",
"homepage": "http://symfony.com",
"time": "2014-10-01 05:39:06"
"homepage": "https://symfony.com",
"time": "2015-11-18 08:19:46"
},
{
"name": "symfony/process",
"version": "v2.3.21",
"version": "v2.3.35",
"target-dir": "Symfony/Component/Process",
"source": {
"type": "git",
"url": "https://github.com/symfony/Process.git",
"reference": "0434822691030547f2439d30ff68758c5576a0ce"
"url": "https://github.com/symfony/process.git",
"reference": "4d0eaad4b1153174dce6db15e26764de20e7b43d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Process/zipball/0434822691030547f2439d30ff68758c5576a0ce",
"reference": "0434822691030547f2439d30ff68758c5576a0ce",
"url": "https://api.github.com/repos/symfony/process/zipball/4d0eaad4b1153174dce6db15e26764de20e7b43d",
"reference": "4d0eaad4b1153174dce6db15e26764de20e7b43d",
"shasum": ""
},
"require": {
@@ -2225,25 +2277,28 @@
"autoload": {
"psr-0": {
"Symfony\\Component\\Process\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Process Component",
"homepage": "http://symfony.com",
"time": "2014-10-01 05:38:33"
"homepage": "https://symfony.com",
"time": "2015-11-19 12:49:26"
}
],
"aliases": [],

View File

@@ -32,3 +32,10 @@ services:
class: phpbb\event\kernel_terminate_subscriber
tags:
- { name: kernel.event_subscriber }
symfony_response_listener:
class: Symfony\Component\HttpKernel\EventListener\ResponseListener
arguments:
- UTF-8
tags:
- { name: kernel.event_subscriber }

View File

@@ -49,6 +49,7 @@
<ol>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#v316">Changes since 3.1.6</a></li>
<li><a href="#v315">Changes since 3.1.5</a></li>
<li><a href="#v314">Changes since 3.1.4</a></li>
<li><a href="#v313">Changes since 3.1.3</a></li>
@@ -113,6 +114,113 @@
<div class="content">
<a name="v316"></a><h3>Changes since 3.1.6</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8839">PHPBB3-8839</a>] - Wrong new status of subforumlink on index</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8920">PHPBB3-8920</a>] - PM-Report for every moderator</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9153">PHPBB3-9153</a>] - New member can delete pm just in one way</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9252">PHPBB3-9252</a>] - Conflict when (dis)approving a post by two moderators at the same time</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11468">PHPBB3-11468</a>] - Controllers can not set additional parameters of page_header()</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11971">PHPBB3-11971</a>] - Validating not correctly in Spambot countermeasures</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12616">PHPBB3-12616</a>] - Report notification is not removed when post is disapproved or deleted</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13202">PHPBB3-13202</a>] - dead code in sessions.php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13423">PHPBB3-13423</a>] - Driver sqlite3 failed periodically</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13636">PHPBB3-13636</a>] - Unexpect return to previous page behaviour</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13656">PHPBB3-13656</a>] - database_upgrade.php fails when database password contains a % character</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13748">PHPBB3-13748</a>] - Wrong tooltip after poll vote change</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13759">PHPBB3-13759</a>] - submit_post doesn't take $data['post_time'] - into account</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13799">PHPBB3-13799</a>] - Avatar gallery subfolders paths are handled incorrectly</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13831">PHPBB3-13831</a>] - Post deletion reason is not appearing on moderation logs</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13835">PHPBB3-13835</a>] - File upload of large files where filename contains umlauts fails</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13846">PHPBB3-13846</a>] - Permissions around soft deleting are inconsistently handled</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13851">PHPBB3-13851</a>] - &quot;Can ignore flood limit&quot; permission not taking effect</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13892">PHPBB3-13892</a>] - &quot;Someone reports a post&quot; notification setting has no effect</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13945">PHPBB3-13945</a>] - Account re-activation does not create a notification</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13950">PHPBB3-13950</a>] - If disabled extension - no hidden permission set</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13960">PHPBB3-13960</a>] - Profile field validation may break</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13976">PHPBB3-13976</a>] - Fix comment typo in salted_md5 driver</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13988">PHPBB3-13988</a>] - Atom feeds use relative links for image attachments</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13992">PHPBB3-13992</a>] - Fix html5 error from output on w3.org its new validator</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14058">PHPBB3-14058</a>] - subsilver2 Contact us form doesn't have an email subject field</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14070">PHPBB3-14070</a>] - Disabled avatar types is still displayed on the forum</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14106">PHPBB3-14106</a>] - Sorting is unworkable while moderating forum (merge topics)</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14114">PHPBB3-14114</a>] - Inconsistency in install.html in 3.1.x Automatic uopdate package</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14127">PHPBB3-14127</a>] - Error in the BBCode FAQ in 'Linking to another site'</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14142">PHPBB3-14142</a>] - Remove unused ignore_configs from avatar drivers</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14143">PHPBB3-14143</a>] - Flush the in-memory mail queue when writing it to the disk</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14153">PHPBB3-14153</a>] - Notifications dropdown header doesn't clear floats</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14159">PHPBB3-14159</a>] - Not accessible link on main ACP page</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14161">PHPBB3-14161</a>] - The core.download_file_send_to_browser_before - $vars - 'extension' it does not exist</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14163">PHPBB3-14163</a>] - Select All in code bug in Edge</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14181">PHPBB3-14181</a>] - Custom report/denial reason not shown in user notifications</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14186">PHPBB3-14186</a>] - Incorrect string concatenation in phpbb_mcp_sorting()</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14200">PHPBB3-14200</a>] - Allow hidden users to see theself on viewonline</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14215">PHPBB3-14215</a>] - [ticket/14212] - Adding event after users have been removed to a group</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14217">PHPBB3-14217</a>] - [ticket/13591] - Change SQL query into array to allow</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14224">PHPBB3-14224</a>] - Fix trailing whitespaces</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14228">PHPBB3-14228</a>] - Vertical align of numbers in polls</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14236">PHPBB3-14236</a>] - Race condition in the functional tests</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14242">PHPBB3-14242</a>] - Fix on memberlist the sort method.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14249">PHPBB3-14249</a>] - Online list isn't sorted anymore</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14258">PHPBB3-14258</a>] - Add event in auth::Login</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14271">PHPBB3-14271</a>] - Update nginx sample config</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14276">PHPBB3-14276</a>] - Function get_folder_status not setup for use of plurals</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14287">PHPBB3-14287</a>] - Loading indicator not removed after confirming action that does not produce a message</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14297">PHPBB3-14297</a>] - Uppercase and lowercase when sorting topics</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14334">PHPBB3-14334</a>] - Do not use deprecated function get_user_avatar() in user_loader</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14339">PHPBB3-14339</a>] - State support for PHP 7.0 in docs</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14346">PHPBB3-14346</a>] - Improve version check output when phpbb.com is unreachable</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-7362">PHPBB3-7362</a>] - Title/Post Icons Need Attribute Text</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8800">PHPBB3-8800</a>] - Add &quot;mark topics read&quot; link to &quot;View unread posts&quot;</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10343">PHPBB3-10343</a>] - ACP: searching for users does not show inactive accounts</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13684">PHPBB3-13684</a>] - Only resize attached file comments vertically</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13934">PHPBB3-13934</a>] - Enctype clause for forms may be needed for profile fields</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14066">PHPBB3-14066</a>] - Add template events to search_body.html</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14073">PHPBB3-14073</a>] - Add core events to the several places in includes/functions_admin.php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14075">PHPBB3-14075</a>] - Event in posting preview</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14080">PHPBB3-14080</a>] - Add template events to viewforum_body.html before/after/append/prepend the topic row</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14088">PHPBB3-14088</a>] - Add core events to the search.php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14089">PHPBB3-14089</a>] - [Template] - posting_topic_title_after</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14098">PHPBB3-14098</a>] - Add core events to the search backends (fulltext_*.php)</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14102">PHPBB3-14102</a>] - Add core event to the mcp_topic.php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14113">PHPBB3-14113</a>] - Add core events to the memberlist.php for customizing members search</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14117">PHPBB3-14117</a>] - Add core events to index.php to allow modifying birthdays list</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14123">PHPBB3-14123</a>] - Add more descriptive help to the CLI commands</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14126">PHPBB3-14126</a>] - Add viewtopic_topic_title_after template event</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14133">PHPBB3-14133</a>] - Comment fix for phpbb_get_user_rank()</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14154">PHPBB3-14154</a>] - Include &quot;Clean Name&quot; for disabled Extensions</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14155">PHPBB3-14155</a>] - Add row highlighting to extensions and style management</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14156">PHPBB3-14156</a>] - Add the Symfony ResponseListener</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14164">PHPBB3-14164</a>] - Helpful instructions for database updates</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14170">PHPBB3-14170</a>] - Fix mcp_change_poster_after event</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14201">PHPBB3-14201</a>] - Add ACP template events</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14213">PHPBB3-14213</a>] - [PHP] - core.group_add_user_after</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14219">PHPBB3-14219</a>] - Add email address into inactive user display in ACP</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14261">PHPBB3-14261</a>] - Pages served from app.php can't disable the update of session_page</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14283">PHPBB3-14283</a>] - Add a &quot;Manage Group&quot; link on a group page</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14313">PHPBB3-14313</a>] - Don't display quote button on unapproved posts</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14343">PHPBB3-14343</a>] - Add event when locking/unlocking posts/topics</li>
</ul>
<h4>New Feature</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14144">PHPBB3-14144</a>] - [Template] - quickreply_editor_subject_before</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14146">PHPBB3-14146</a>] - [Template] - viewtopic_body_post_subject_before</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14187">PHPBB3-14187</a>] - [ACP Template] - acp_styles_before_table</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14188">PHPBB3-14188</a>] - [PHP] - core.acp_styles_action_before</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14191">PHPBB3-14191</a>] - [PHP] - core.get_gravatar_url_after</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14192">PHPBB3-14192</a>] - [PHP] - core.memberlist_memberrow_before</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-14140">PHPBB3-14140</a>] - Update Symfony to benefit from improvement to the console component</li>
</ul>
<a name="v315"></a><h3>Changes since 3.1.5</h3>
<h4>Bug</h4>

View File

@@ -147,7 +147,7 @@
<li>Oracle</li>
</ul>
</li>
<li><strong>PHP 5.3.3+</strong> with support for the database you intend to use.</li>
<li><strong>PHP 5.3.3+</strong> and <strong>PHP < 7.0</strong> with support for the database you intend to use.</li>
<li>The following PHP modules are required:
<ul>
<li>json</li>
@@ -265,7 +265,7 @@
<p>If you are currently using a stable release of phpBB, updating to this version is straightforward. You would have downloaded one of four packages and your choice determines what you need to do. <strong>Note</strong>: Before updating, we heavily recommend you do a <em>full backup of your database and existing phpBB files</em>! If you are unsure how to achieve this please ask your hosting provider for advice.</p>
<p><strong>Please make sure you update your phpBB source files too, even if you run the <code>database_update.php</code> file.</strong></p>
<p><strong>Please make sure you update your phpBB source files too, even if you run the <code>database_update.php</code> file.</strong> If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
<a name="update_full"></a><h3>4.i. Full package</h3>
@@ -273,7 +273,7 @@
<p>First, you should make a copy of your existing <code>config.php</code> file; keep it in a safe place! Next, delete all the existing phpBB files, you may want to leave your <code>files/</code> and <code>images/</code> directories in place. You can leave alternative styles in place too. With this complete, you can upload the new phpBB files (see <a href="#install">New installation</a> for details if necessary). Once complete, copy back your saved <code>config.php</code>, replacing the new one. Another method is to just <strong>replace</strong> the existing files with the files from the full package - though make sure you do <strong>not</strong> overwrite your config.php file.</p>
<p>You should now run <code>install/database_update.php</code> which, depending on your previous version, will make a number of database changes. You may receive <em>FAILURES</em> during this procedure. They should not be a cause for concern unless you see an actual <em>ERROR</em>, in which case the script will stop (in this case you should seek help via our forums or bug tracker).</p>
<p>You should now run <code>install/database_update.php</code> which, depending on your previous version, will make a number of database changes. You may receive <em>FAILURES</em> during this procedure. They should not be a cause for concern unless you see an actual <em>ERROR</em>, in which case the script will stop (in this case you should seek help via our forums or bug tracker). If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
<p>Once <code>install/database_update.php</code> has completed, you may proceed to the Administration Control Panel and then remove the install directory as advised.</p>
@@ -285,7 +285,7 @@
<p>The directory structure has been preserved, enabling you (if you wish) to simply upload the uncompressed contents of the archive to the appropriate location on your server, i.e. simply overwrite the existing files with the new versions. Do not forget that if you have installed any modifications (MODs) these files will overwrite the originals, possibly destroying them in the process. You will need to re-add MODs to any affected file before uploading.</p>
<p>As for the other update procedures, you should run <code>install/database_update.php</code> after you have finished updating the files. This will update your database schema and increment the version number.</p>
<p>As for the other update procedures, you should run <code>install/database_update.php</code> after you have finished updating the files. This will update your database schema and increment the version number. If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
<a name="update_patch"></a><h3>4.iii. Patch file</h3>
@@ -297,13 +297,13 @@
<p>If you do get failures, you should look at using the <a href="#update_files">Changed Files</a> package to replace the files which failed to patch. Please note that you will need to manually re-add any MODs to these particular files. Alternatively, if you know how, you can examine the .rej files to determine what failed where and make manual adjustments to the relevant source.</p>
<p>You should, of course, delete the patch file (or files) after use. As for the other update procedures, you should run <code>install/database_update.php</code> after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number.</p>
<p>You should, of course, delete the patch file (or files) after use. As for the other update procedures, you should run <code>install/database_update.php</code> after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number. If you have shell access to your server, you may wish to update via the command line interface. From your board's root, execute the following command: <code>php bin/phpbbcli.php --safe-mode db:migrate</code>.</p>
<a name="update_auto"></a><h3>4.iv. Automatic update package</h3>
<p>This update method is the recommended method for updating. This package detects changed files automatically and merges in changes if needed.</p>
<p>The automatic update package will update the board from a given version to the latest version. A number of automatic update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is <strong>3.0.13</strong>, you need the <code>phpBB-3.0.13_to_3.0.14.zip/tar.bz2</code> file.</p>
<p>The automatic update package will update the board from a given version to the latest version. A number of automatic update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is <strong>3.1.5</strong>, you need the <code>phpBB-3.1.5_to_3.1.6.zip/tar.bz2</code> file.</p>
<p>To perform the update, either follow the instructions from the <strong>Administration Control Panel-&gt;System</strong> Tab - this should point out that you are running an outdated version and will guide you through the update - or follow the instructions listed below.</p>

View File

@@ -323,7 +323,7 @@
<div class="content">
<p>phpBB 3.1.x takes advantage of new features added in PHP 5.3. We recommend that you upgrade to the latest stable release of PHP5 to run phpBB. The minimum version required is PHP 5.3.3.</p>
<p>phpBB 3.1.x takes advantage of new features added in PHP 5.3. We recommend that you upgrade to the latest stable release of PHP5 to run phpBB. The minimum version required is PHP 5.3.3 and the maximum supported version is any version prior to PHP 7.0.</p>
<p>Please remember that running any application on a development (unstable, e.g. a beta release) version of PHP can lead to strange/unexpected results which may appear to be bugs in the application. Therefore, we recommend you upgrade to the newest stable version of PHP before running phpBB. If you are running a development version of PHP please check any bugs you find on a system running a stable release before submitting.</p>

View File

@@ -1,3 +1,15 @@
acp_ban_cell_append
===
* Location: adm/style/acp_ban.html
* Since: 3.1.7-RC1
* Purpose: Add content at the end of the ban cell area
acp_ban_cell_prepend
===
* Location: adm/style/acp_ban.html
* Since: 3.1.7-RC1
* Purpose: Add content at the start of the ban cell area
acp_bbcodes_actions_append
===
* Location: adm/style/acp_bbcodes.html
@@ -16,6 +28,30 @@ acp_bbcodes_edit_fieldsets_after
* Since: 3.1.0-a3
* Purpose: Add settings to BBCode add/edit form
acp_email_group_options_append
===
* Location: adm/style/acp_email.html
* Since: 3.1.7-RC1
* Purpose: Add content at the end of the group options select box
acp_email_group_options_prepend
===
* Location: adm/style/acp_email.html
* Since: 3.1.7-RC1
* Purpose: Add content at the start of the group options select box
acp_email_find_username_append
===
* Location: adm/style/acp_email.html
* Since: 3.1.7-RC1
* Purpose: Add content at the end of the fimd username link
acp_email_find_username_prepend
===
* Location: adm/style/acp_email.html
* Since: 3.1.7-RC1
* Purpose: Add content at the start of the fimd username link
acp_email_options_after
===
* Location: adm/style/acp_email.html
@@ -64,6 +100,18 @@ acp_forums_prune_settings_prepend
* Since: 3.1.2-RC1
* Purpose: Add settings to forums before prune settings section
acp_forums_quick_select_button_append
===
* Location: adm/style/acp_forums.html
* Since: 3.1.7-RC1
* Purpose: Add content after the quick select forum submit button
acp_forums_quick_select_button_prepend
===
* Location: adm/style/acp_forums.html
* Since: 3.1.7-RC1
* Purpose: Add content before the quick select forum submit button
acp_forums_rules_settings_append
===
* Location: adm/style/acp_forums.html
@@ -88,6 +136,66 @@ acp_group_options_after
* Since: 3.1.0-b4
* Purpose: Add addtional options to group settings (after GROUP_RECEIVE_PM)
acp_groups_find_username_append
===
* Location: adm/style/acp_groups.html
* Since: 3.1.7-RC1
* Purpose: Add content at the end of the find username link
acp_groups_find_username_prepend
===
* Location: adm/style/acp_groups.html
* Since: 3.1.7-RC1
* Purpose: Add content at the start of the find username link
acp_groups_manage_after
===
* Location: adm/style/acp_groups.html
* Since: 3.1.7-RC1
* Purpose: Add content after the manage groups table
acp_groups_manage_before
===
* Location: adm/style/acp_groups.html
* Since: 3.1.7-RC1
* Purpose: Add content before the manage groups table
acp_groups_position_legend_add_button_after
===
* Location: adm/style/acp_groups_position.html
* Since: 3.1.7-RC1
* Purpose: Add content after adding group to legend submit button
acp_groups_position_legend_add_button_before
===
* Location: adm/style/acp_groups_position.html
* Since: 3.1.7-RC1
* Purpose: Add content before adding group to legend submit button
acp_groups_position_teampage_add_button_after
===
* Location: adm/style/acp_groups_position.html
* Since: 3.1.7-RC1
* Purpose: Add content after adding group to teampage submit button
acp_groups_position_teampage_add_button_before
===
* Location: adm/style/acp_groups_position.html
* Since: 3.1.7-RC1
* Purpose: Add content before adding group to teampage submit button
acp_logs_quick_select_forum_button_append
===
* Location: adm/style/acp_logs.html
* Since: 3.1.7-RC1
* Purpose: Add content after the quick forum select form submit button
acp_logs_quick_select_forum_button_prepend
===
* Location: adm/style/acp_logs.html
* Since: 3.1.7-RC1
* Purpose: Add content before the quick forum select form submit button
acp_main_actions_append
===
* Location: adm/style/acp_main.html
@@ -125,6 +233,102 @@ acp_overall_header_stylesheets_after
* Purpose: Add assets after stylesheets within the `<head>` tags in the ACP.
Note that INCLUDECSS will not work with this event.
acp_permission_forum_copy_src_forum_append
===
* Location: adm/style/permission_forum_copy.html
* Since: 3.1.7-RC1
* Purpose: Add content after the sourse forum select form
acp_permission_forum_copy_src_forum_prepend
===
* Location: adm/style/permission_forum_copy.html
* Since: 3.1.7-RC1
* Purpose: Add content before the sourse forum select form
acp_permission_forum_copy_dest_forum_append
===
* Location: adm/style/permission_forum_copy.html
* Since: 3.1.7-RC1
* Purpose: Add content after the destiny forum select form
acp_permission_forum_copy_dest_forum_prepend
===
* Location: adm/style/permission_forum_copy.html
* Since: 3.1.7-RC1
* Purpose: Add content before the destiny forum select form
acp_permissions_add_group_options_append
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content after the group multiple select form
acp_permissions_add_group_options_prepend
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content before the group multiple select form
acp_permissions_find_username_append
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content after the find username link
acp_permissions_find_username_prepend
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content before the find username link
acp_permissions_select_forum_append
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content after the forum select form label
acp_permissions_select_forum_prepend
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content before the forum select form label
acp_permissions_select_group_after
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content after the group select form in usergroup view
acp_permissions_select_group_append
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content after the group select form label
acp_permissions_select_group_before
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content before the group select form in usergroup view
acp_permissions_select_group_prepend
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content before the group select form label
acp_permissions_select_multiple_forum_append
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content after the forum multiple select form label
acp_permissions_select_multiple_forum_prepend
===
* Location: adm/style/acp_permissions.html
* Since: 3.1.7-RC1
* Purpose: Add content before the forum multiple select form label
acp_posting_buttons_after
===
* Locations:
@@ -146,6 +350,34 @@ acp_profile_contact_before
* Since: 3.1.6-RC1
* Purpose: Add extra options to custom profile field configuration in the ACP
acp_prune_forums_append
===
* Locations:
+ adm/style/acp_prune_forums.html
* Since: 3.1.7-RC1
* Purpose: Add content after the forum select form label
acp_prune_forums_prepend
===
* Locations:
+ adm/style/acp_prune_forums.html
* Since: 3.1.7-RC1
* Purpose: Add content before the forum select form label
acp_prune_users_find_username_append
===
* Locations:
+ adm/style/acp_prune_users.html
* Since: 3.1.7-RC1
* Purpose: Add content after the find username link
acp_prune_users_find_username_prepend
===
* Locations:
+ adm/style/acp_prune_users.html
* Since: 3.1.7-RC1
* Purpose: Add content before the find username link
acp_ranks_edit_after
===
* Locations:
@@ -190,6 +422,13 @@ acp_ranks_list_header_before
* Purpose: Add content after the last header-column (but before the action column)
in the ranks list in the ACP
acp_styles_list_before
===
* Locations:
+ adm/style/acp_styles.html
* Since: 3.1.7-RC1
* Purpose: Add content before list of styles
acp_users_profile_before
===
* Locations:
@@ -290,6 +529,18 @@ acp_users_prefs_view_prepend
* Since: 3.1.0-b3
* Purpose: Add user options fieldset to the top of ACP users view prefs settings
acp_users_select_group_after
===
* Location: adm/style/acp_users.html
* Since: 3.1.7-RC1
* Purpose: Add content after group select form
acp_users_select_group_before
===
* Location: adm/style/acp_users.html
* Since: 3.1.7-RC1
* Purpose: Add content before group select form
attachment_file_after
===
* Locations:
@@ -1235,6 +1486,22 @@ posting_poll_body_options_after
* Since: 3.1.4-RC1
* Purpose: Add content after the poll options on creating a poll
posting_preview_poll_after
===
* Locations:
+ styles/prosilver/template/posting_preview.html
+ styles/subsilver2/template/posting_preview.html
* Since: 3.1.7-RC1
* Purpose: Add content after the poll preview block
posting_topic_title_after
===
* Locations:
+ styles/prosilver/template/posting_layout.html
+ styles/subsilver2/template/posting_body.html
* Since: 3.1.7-RC1
* Purpose: Allows to add some information after the topic title in the posting form
posting_topic_title_before
===
* Locations:
@@ -1275,6 +1542,22 @@ quickreply_editor_message_before
* Since: 3.1.0-a4
* Purpose: Add content before the quick reply textbox
quickreply_editor_subject_before
===
* Locations:
+ styles/prosilver/template/quickreply_editor.html
+ styles/subsilver2/template/quickreply_editor.html
* Since: 3.1.7-RC1
* Purpose: Add content before the quick reply subject textbox
search_body_form_after
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Add content after the search form
search_body_form_before
===
* Locations:
@@ -1283,6 +1566,102 @@ search_body_form_before
* Since: 3.1.5-RC1
* Purpose: Add content before the search form
search_body_recent_search_after
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Add content after the recent search queries list
search_body_recent_search_before
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Add content before the recent search queries list
search_body_search_display_options_append
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Put content at the bottom of the search query display options fields set
search_body_search_display_options_prepend
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Put content at the top of the search query display options fields set
search_body_search_options_after
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Add content after the search query options fields set
search_body_search_options_append
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Put content at the bottom of the search query options fields set
search_body_search_options_before
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Add content before the search query options fields set
search_body_search_options_prepend
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Put content at the top of the search query options fields set
search_body_search_query_after
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Add content after the search query fields set
search_body_search_query_append
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Put content at the bottom of the search query fields set
search_body_search_query_before
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Add content before the search query fields set
search_body_search_query_prepend
===
* Locations:
+ styles/prosilver/template/search_body.html
+ styles/subsilver2/template/search_body.html
* Since: 3.1.7-RC1
* Purpose: Put content at the top of the search query fields set
search_results_header_after
===
* Locations:
@@ -1754,6 +2133,38 @@ ucp_friend_list_after
* Since: 3.1.0-a4
* Purpose: Add optional elements after list of friends in UCP
viewforum_body_topic_row_after
===
* Locations:
+ styles/prosilver/template/viewforum_body.html
+ styles/subsilver2/template/viewforum_body.html
* Since: 3.1.7-RC1
* Purpose: Add content after the topic list item.
viewforum_body_topic_row_append
===
* Locations:
+ styles/prosilver/template/viewforum_body.html
+ styles/subsilver2/template/viewforum_body.html
* Since: 3.1.7-RC1
* Purpose: Add content at the start of the topic list item.
viewforum_body_topic_row_before
===
* Locations:
+ styles/prosilver/template/viewforum_body.html
+ styles/subsilver2/template/viewforum_body.html
* Since: 3.1.7-RC1
* Purpose: Add content before the topic list item.
viewforum_body_topic_row_prepend
===
* Locations:
+ styles/prosilver/template/viewforum_body.html
+ styles/subsilver2/template/viewforum_body.html
* Since: 3.1.7-RC1
* Purpose: Add content at the end of the topic list item.
viewforum_buttons_bottom_before
===
* Locations:
@@ -2022,6 +2433,14 @@ viewtopic_body_post_buttons_list_before
* Purpose: Add post button custom list to posts (next to edit, quote etc),
before the original list.
viewtopic_body_post_subject_before
===
* Locations:
+ styles/prosilver/template/viewtopic_body.html
+ styles/subsilver2/template/viewtopic_body.html
* Since: 3.1.7-RC1
* Purpose: Add data before post icon and subject
viewtopic_body_postrow_custom_fields_after
===
* Locations:
@@ -2122,6 +2541,14 @@ viewtopic_body_topic_actions_before
* Since: 3.1.0-a4
* Purpose: Add data before the topic actions buttons (after the posts sorting options)
viewtopic_topic_title_after
===
* Locations:
+ styles/prosilver/template/viewtopic_body.html
+ styles/subsilver2/template/viewtopic_body.html
* Since: 3.1.7-RC1
* Purpose: Add content directly after the topic title link on the View topic screen (outside of the h2 HTML tag)
viewtopic_topic_title_append
===
* Locations:

View File

@@ -64,6 +64,11 @@ http {
location / {
# phpbb uses index.htm
index index.php index.html index.htm;
try_files $uri $uri/ @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
# Deny access to internal phpbb files.
@@ -75,12 +80,16 @@ http {
}
# Pass the php scripts to fastcgi server specified in upstream declaration.
location ~ \.php$ {
fastcgi_pass php;
# Necessary for php.
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
location ~ \.php(/|$) {
# Unmodified fastcgi_params from nginx distribution.
include fastcgi_params;
# Necessary for php.
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
try_files $uri $uri/ /app.php$is_args$args;
fastcgi_pass php;
}
# Deny access to version control system directories.

View File

@@ -258,17 +258,18 @@ else
* @var array attachment Array with attachment data
* @var int display_cat Attachment category
* @var int download_mode File extension specific download mode
* @var array extension Array with file extensions data
* @var array extensions Array with file extensions data
* @var string mode Download mode
* @var bool thumbnail Flag indicating if the file is a thumbnail
* @since 3.1.6-RC1
* @change 3.1.7-RC1 Fixing wrong name of a variable (replacing "extension" by "extensions")
*/
$vars = array(
'attach_id',
'attachment',
'display_cat',
'download_mode',
'extension',
'extensions',
'mode',
'thumbnail',
);

View File

@@ -106,7 +106,10 @@ class acp_attachments
{
case 'attach':
include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
if (!function_exists('get_supported_image_types'))
{
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
}
$sql = 'SELECT group_name, cat_id
FROM ' . EXTENSION_GROUPS_TABLE . '

View File

@@ -28,7 +28,10 @@ class acp_ban
global $user, $template, $request, $phpbb_dispatcher;
global $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('user_ban'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$bansubmit = $request->is_set_post('bansubmit');
$unbansubmit = $request->is_set_post('unbansubmit');

View File

@@ -141,7 +141,11 @@ class acp_bots
case 'edit':
case 'add':
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('user_update_name'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$bot_row = array(
'bot_name' => utf8_normalize_nfc(request_var('bot_name', '', true)),

View File

@@ -25,7 +25,7 @@ class acp_captcha
function main($id, $mode)
{
global $db, $user, $auth, $template;
global $request, $user, $auth, $template;
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx, $phpbb_container;
$user->add_lang('acp/board');
@@ -52,11 +52,36 @@ class acp_captcha
else
{
$config_vars = array(
'enable_confirm' => array('tpl' => 'REG_ENABLE', 'default' => false),
'enable_post_confirm' => array('tpl' => 'POST_ENABLE', 'default' => false),
'confirm_refresh' => array('tpl' => 'CONFIRM_REFRESH', 'default' => false),
'max_reg_attempts' => array('tpl' => 'REG_LIMIT', 'default' => 0),
'max_login_attempts' => array('tpl' => 'MAX_LOGIN_ATTEMPTS', 'default' => 0),
'enable_confirm' => array(
'tpl' => 'REG_ENABLE',
'default' => false,
'validate' => 'bool',
'lang' => 'VISUAL_CONFIRM_REG',
),
'enable_post_confirm' => array(
'tpl' => 'POST_ENABLE',
'default' => false,
'validate' => 'bool',
'lang' => 'VISUAL_CONFIRM_POST',
),
'confirm_refresh' => array(
'tpl' => 'CONFIRM_REFRESH',
'default' => false,
'validate' => 'bool',
'lang' => 'VISUAL_CONFIRM_REFRESH',
),
'max_reg_attempts' => array(
'tpl' => 'REG_LIMIT',
'default' => 0,
'validate' => 'int:0:99999',
'lang' => 'REG_LIMIT',
),
'max_login_attempts' => array(
'tpl' => 'MAX_LOGIN_ATTEMPTS',
'default' => 0,
'validate' => 'int:0:99999',
'lang' => 'MAX_LOGIN_ATTEMPTS',
),
);
$this->tpl_name = 'acp_captcha';
@@ -65,12 +90,31 @@ class acp_captcha
add_form_key($form_key);
$submit = request_var('main_submit', false);
$error = $cfg_array = array();
if ($submit && check_form_key($form_key))
if ($submit)
{
foreach ($config_vars as $config_var => $options)
{
set_config($config_var, request_var($config_var, $options['default']));
$cfg_array[$config_var] = $request->variable($config_var, $options['default']);
}
validate_config_vars($config_vars, $cfg_array, $error);
if (!check_form_key($form_key))
{
$error[] = $user->lang['FORM_INVALID'];
}
if ($error)
{
$submit = false;
}
}
if ($submit)
{
foreach ($cfg_array as $key => $value)
{
$config->set($key, $value);
}
if ($selected !== $config['captcha_plugin'])
@@ -94,10 +138,6 @@ class acp_captcha
}
trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
}
else if ($submit)
{
trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
}
else
{
$captcha_select = '';
@@ -124,6 +164,7 @@ class acp_captcha
'CAPTCHA_PREVIEW_TPL' => $demo_captcha->get_demo_template($id),
'S_CAPTCHA_HAS_CONFIG' => $demo_captcha->has_config(),
'CAPTCHA_SELECT' => $captcha_select,
'ERROR_MSG' => implode('<br />', $error),
'U_ACTION' => $this->u_action,
));

View File

@@ -26,9 +26,7 @@ class acp_disallow
function main($id, $mode)
{
global $db, $user, $auth, $template, $cache;
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
global $config, $phpbb_admin_path;
$user->add_lang('acp/posting');

View File

@@ -189,8 +189,15 @@ class acp_email
$db->sql_freeresult($result);
// Send the messages
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!class_exists('messenger'))
{
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
}
if (!function_exists('get_group_name'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$messenger = new messenger($use_queue);
$errored = false;

View File

@@ -369,6 +369,7 @@ class acp_extensions
foreach ($enabled_extension_meta_data as $name => $block_vars)
{
$block_vars['NAME'] = $name;
$block_vars['U_DETAILS'] = $this->u_action . '&amp;action=details&amp;ext_name=' . urlencode($name);
$this->template->assign_block_vars('enabled', $block_vars);
@@ -425,6 +426,7 @@ class acp_extensions
foreach ($disabled_extension_meta_data as $name => $block_vars)
{
$block_vars['NAME'] = $name;
$block_vars['U_DETAILS'] = $this->u_action . '&amp;action=details&amp;ext_name=' . urlencode($name);
$this->template->assign_block_vars('disabled', $block_vars);
@@ -484,6 +486,7 @@ class acp_extensions
foreach ($available_extension_meta_data as $name => $block_vars)
{
$block_vars['NAME'] = $name;
$block_vars['U_DETAILS'] = $this->u_action . '&amp;action=details&amp;ext_name=' . urlencode($name);
$this->template->assign_block_vars('disabled', $block_vars);

View File

@@ -42,7 +42,10 @@ class acp_groups
return;
}
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('group_user_attributes'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
// Check and set some common vars
$action = (isset($_POST['add'])) ? 'add' : ((isset($_POST['addusers'])) ? 'addusers' : request_var('action', ''));
@@ -295,7 +298,10 @@ class acp_groups
case 'edit':
case 'add':
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
if (!function_exists('display_forums'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
}
$data = $submit_ary = array();

View File

@@ -34,7 +34,10 @@ class acp_inactive
global $config, $db, $user, $auth, $template, $phpbb_container;
global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix;
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('user_active_flip'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$user->add_lang('memberlist');
@@ -109,7 +112,10 @@ class acp_inactive
if ($config['require_activation'] == USER_ACTIVATION_ADMIN && !empty($inactive_users))
{
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
if (!class_exists('messenger'))
{
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
}
$messenger = new messenger(false);
@@ -196,7 +202,10 @@ class acp_inactive
if ($row = $db->sql_fetchrow($result))
{
// Send the messages
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
if (!class_exists('messenger'))
{
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
}
$messenger = new messenger();
$usernames = $user_ids = array();
@@ -271,9 +280,10 @@ class acp_inactive
'REMINDED_EXPLAIN' => $user->lang('USER_LAST_REMINDED', (int) $row['user_reminded'], $user->format_date($row['user_reminded_time'])),
'USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], false, append_sid("{$phpbb_admin_path}index.$phpEx", 'i=users&amp;mode=overview')),
'USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], false, append_sid("{$phpbb_admin_path}index.$phpEx", 'i=users&amp;mode=overview&amp;redirect=acp_inactive')),
'USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
'USER_COLOR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
'USER_EMAIL' => $row['user_email'],
'U_USER_ADMIN' => append_sid("{$phpbb_admin_path}index.$phpEx", "i=users&amp;mode=overview&amp;u={$row['user_id']}"),
'U_SEARCH_USER' => ($auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", "author_id={$row['user_id']}&amp;sr=posts") : '',

View File

@@ -34,7 +34,10 @@ class acp_jabber
$user->add_lang('acp/board');
include_once($phpbb_root_path . 'includes/functions_jabber.' . $phpEx);
if (!class_exists('jabber'))
{
include($phpbb_root_path . 'includes/functions_jabber.' . $phpEx);
}
$action = request_var('action', '');
$submit = (isset($_POST['submit'])) ? true : false;

View File

@@ -34,7 +34,10 @@ class acp_language
global $config, $db, $user, $template;
global $phpbb_root_path, $phpEx, $request;
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('validate_language_iso_name'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
// Check and set some common vars
$action = (isset($_POST['update_details'])) ? 'update_details' : '';

View File

@@ -429,20 +429,28 @@ class acp_main
));
}
$version_helper = $phpbb_container->get('version_helper');
try
if ($auth->acl_get('a_board'))
{
$recheck = $request->variable('versioncheck_force', false);
$updates_available = $version_helper->get_suggested_updates($recheck);
$version_helper = $phpbb_container->get('version_helper');
try
{
$recheck = $request->variable('versioncheck_force', false);
$updates_available = $version_helper->get_suggested_updates($recheck);
$template->assign_var('S_VERSION_UP_TO_DATE', empty($updates_available));
$template->assign_var('S_VERSION_UP_TO_DATE', empty($updates_available));
}
catch (\RuntimeException $e)
{
$template->assign_vars(array(
'S_VERSIONCHECK_FAIL' => true,
'VERSIONCHECK_FAIL_REASON' => ($e->getMessage() !== $user->lang('VERSIONCHECK_FAIL')) ? $e->getMessage() : '',
));
}
}
catch (\RuntimeException $e)
else
{
$template->assign_vars(array(
'S_VERSIONCHECK_FAIL' => true,
'VERSIONCHECK_FAIL_REASON' => ($e->getMessage() !== $user->lang('VERSIONCHECK_FAIL')) ? $e->getMessage() : '',
));
// We set this template var to true, to not display an outdated version notice.
$template->assign_var('S_VERSION_UP_TO_DATE', true);
}
/**
@@ -553,6 +561,7 @@ class acp_main
'U_VERSIONCHECK' => append_sid("{$phpbb_admin_path}index.$phpEx", 'i=update&amp;mode=version_check'),
'U_VERSIONCHECK_FORCE' => append_sid("{$phpbb_admin_path}index.$phpEx", 'versioncheck_force=1'),
'S_VERSIONCHECK' => ($auth->acl_get('a_board')) ? true : false,
'S_ACTION_OPTIONS' => ($auth->acl_get('a_board')) ? true : false,
'S_FOUNDER' => ($user->data['user_type'] == USER_FOUNDER) ? true : false,
)

View File

@@ -30,8 +30,15 @@ class acp_permission_roles
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
global $request;
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
include_once($phpbb_root_path . 'includes/acp/auth.' . $phpEx);
if (!function_exists('user_get_id_name'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
if (!class_exists('auth_admin'))
{
include($phpbb_root_path . 'includes/acp/auth.' . $phpEx);
}
$this->auth_admin = new auth_admin();

View File

@@ -30,8 +30,15 @@ class acp_permissions
global $db, $user, $auth, $template, $cache, $phpbb_container;
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
include_once($phpbb_root_path . 'includes/acp/auth.' . $phpEx);
if (!function_exists('user_get_id_name'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
if (!class_exists('auth_admin'))
{
include($phpbb_root_path . 'includes/acp/auth.' . $phpEx);
}
$this->permissions = $phpbb_container->get('acl.permissions');

View File

@@ -33,8 +33,15 @@ class acp_profile
global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix;
global $request, $phpbb_container, $phpbb_dispatcher;
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('generate_smilies'))
{
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
}
if (!function_exists('user_get_id_name'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$user->add_lang(array('ucp', 'acp/profile'));
$this->tpl_name = 'acp_profile';
@@ -537,13 +544,14 @@ class acp_profile
}
}
$step = (isset($_REQUEST['next'])) ? $step + 1 : ((isset($_REQUEST['prev'])) ? $step - 1 : $step);
if (sizeof($error))
{
$step--;
$submit = false;
}
else
{
$step = (isset($_REQUEST['next'])) ? $step + 1 : ((isset($_REQUEST['prev'])) ? $step - 1 : $step);
}
// Build up the specific hidden fields
foreach ($exclude as $num => $key_ary)
@@ -561,7 +569,7 @@ class acp_profile
$var = $profile_field->prepare_hidden_fields($step, $key, $action, $field_data);
if ($var !== null)
{
$_new_key_ary[$key] = $profile_field->prepare_hidden_fields($step, $key, $action, $field_data);
$_new_key_ary[$key] = $var;
}
}
$cp->vars = $field_data;
@@ -571,11 +579,7 @@ class acp_profile
if (!sizeof($error))
{
if ($step == 3 && (sizeof($this->lang_defs['iso']) == 1 || $save))
{
$this->save_profile_field($cp, $field_type, $action);
}
else if ($action == 'edit' && $save)
if (($step == 3 && (sizeof($this->lang_defs['iso']) == 1 || $save)) || ($action == 'edit' && $save))
{
$this->save_profile_field($cp, $field_type, $action);
}

View File

@@ -28,7 +28,11 @@ class acp_prune
global $user, $phpEx, $phpbb_admin_path, $phpbb_root_path;
$user->add_lang('acp/prune');
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('user_active_flip'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
switch ($mode)
{

View File

@@ -27,7 +27,10 @@ class acp_send_statistics
{
global $config, $template, $phpbb_admin_path, $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/questionnaire/questionnaire.' . $phpEx);
if (!class_exists('phpbb_questionnaire_data_collector'))
{
include($phpbb_root_path . 'includes/questionnaire/questionnaire.' . $phpEx);
}
$collect_url = "https://www.phpbb.com/stats/receive_stats.php";

View File

@@ -56,9 +56,12 @@ class acp_styles
/** @var string */
protected $php_ext;
/** @var \phpbb\event\dispatcher_interface */
protected $dispatcher;
public function main($id, $mode)
{
global $db, $user, $phpbb_admin_path, $phpbb_root_path, $phpEx, $template, $request, $cache, $auth, $config;
global $db, $user, $phpbb_admin_path, $phpbb_root_path, $phpEx, $template, $request, $cache, $auth, $config, $phpbb_dispatcher;
$this->db = $db;
$this->user = $user;
@@ -69,6 +72,7 @@ class acp_styles
$this->config = $config;
$this->phpbb_root_path = $phpbb_root_path;
$this->php_ext = $phpEx;
$this->dispatcher = $phpbb_dispatcher;
$this->default_style = $config['default_style'];
$this->styles_path = $this->phpbb_root_path . $this->styles_path_absolute . '/';
@@ -118,6 +122,18 @@ class acp_styles
)
);
/**
* Run code before ACP styles action execution
*
* @event core.acp_styles_action_before
* @var int id Module ID
* @var string mode Active module
* @var string action Module that should be run
* @since 3.1.7-RC1
*/
$vars = array('id', 'mode', 'action');
extract($this->dispatcher->trigger_event('core.acp_styles_action_before', compact($vars)));
// Execute actions
switch ($action)
{

View File

@@ -44,6 +44,11 @@ class acp_users
$user_id = request_var('u', 0);
$action = request_var('action', '');
// Get referer to redirect user to the appropriate page after delete action
$redirect = request_var('redirect', '');
$redirect_tag = "redirect=$redirect";
$redirect_url = append_sid("{$phpbb_admin_path}index.$phpEx", "i=$redirect");
$submit = (isset($_POST['update']) && !isset($_POST['cancel'])) ? true : false;
$form_name = 'acp_users';
@@ -52,7 +57,10 @@ class acp_users
// Whois (special case)
if ($action == 'whois')
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('user_get_id_name'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$this->page_title = 'WHOIS';
$this->tpl_name = 'simple_body';
@@ -146,9 +154,9 @@ class acp_users
}
$template->assign_vars(array(
'U_BACK' => $this->u_action,
'U_BACK' => (empty($redirect)) ? $this->u_action : $redirect_url,
'U_MODE_SELECT' => append_sid("{$phpbb_admin_path}index.$phpEx", "i=$id&amp;u=$user_id"),
'U_ACTION' => $this->u_action . '&amp;u=' . $user_id,
'U_ACTION' => $this->u_action . '&amp;u=' . $user_id . ((empty($redirect)) ? '' : '&amp;' . $redirect_tag),
'S_FORM_OPTIONS' => $s_form_options,
'MANAGED_USERNAME' => $user_row['username'])
);
@@ -165,7 +173,10 @@ class acp_users
{
case 'overview':
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('user_get_id_name'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$user->add_lang('acp/ban');
@@ -221,19 +232,30 @@ class acp_users
user_delete($delete_type, $user_id, $user_row['username']);
add_log('admin', 'LOG_USER_DELETED', $user_row['username']);
trigger_error($user->lang['USER_DELETED'] . adm_back_link($this->u_action));
trigger_error($user->lang['USER_DELETED'] . adm_back_link(
(empty($redirect)) ? $this->u_action : $redirect_url
)
);
}
else
{
confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
$delete_confirm_hidden_fields = array(
'u' => $user_id,
'i' => $id,
'mode' => $mode,
'action' => $action,
'update' => true,
'delete' => 1,
'delete_type' => $delete_type))
'delete_type' => $delete_type,
);
// Checks if the redirection page is specified
if (!empty($redirect))
{
$delete_confirm_hidden_fields['redirect'] = $redirect;
}
confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields($delete_confirm_hidden_fields));
}
}
else
@@ -338,7 +360,10 @@ class acp_users
if ($config['email_enable'])
{
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
if (!class_exists('messenger'))
{
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
}
$server_url = generate_board_url();
@@ -421,7 +446,10 @@ class acp_users
$phpbb_notifications = $phpbb_container->get('notification_manager');
$phpbb_notifications->delete_notifications('notification.type.admin_activate_user', $user_row['user_id']);
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
if (!class_exists('messenger'))
{
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
}
$messenger = new messenger(false);
@@ -1345,7 +1373,10 @@ class acp_users
case 'profile':
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('user_get_id_name'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$cp = $phpbb_container->get('profilefields.manager');
@@ -1504,7 +1535,10 @@ class acp_users
case 'prefs':
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('user_get_id_name'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$data = array(
'dateformat' => utf8_normalize_nfc(request_var('dateformat', $user_row['user_dateformat'], true)),
@@ -1774,8 +1808,6 @@ class acp_users
case 'avatar':
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
$avatars_enabled = false;
if ($config['allow_avatar'])
@@ -1930,8 +1962,15 @@ class acp_users
case 'sig':
include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_display.' . $phpEx);
if (!function_exists('generate_smilies'))
{
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
}
if (!function_exists('display_custom_bbcodes'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
}
$enable_bbcode = ($config['allow_sig_bbcode']) ? (bool) $this->optionget($user_row, 'sig_bbcode') : false;
$enable_smilies = ($config['allow_sig_smilies']) ? (bool) $this->optionget($user_row, 'sig_smilies') : false;
@@ -1942,7 +1981,10 @@ class acp_users
if ($submit || $preview)
{
include_once($phpbb_root_path . 'includes/message_parser.' . $phpEx);
if (!class_exists('messenger'))
{
include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
}
$enable_bbcode = ($config['allow_sig_bbcode']) ? ((request_var('disable_bbcode', false)) ? false : true) : false;
$enable_smilies = ($config['allow_sig_smilies']) ? ((request_var('disable_smilies', false)) ? false : true) : false;
@@ -2183,7 +2225,10 @@ class acp_users
case 'groups':
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
if (!function_exists('group_user_attributes'))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
$user->add_lang(array('groups', 'acp/groups'));
$group_id = request_var('g', 0);
@@ -2399,7 +2444,10 @@ class acp_users
case 'perm':
include_once($phpbb_root_path . 'includes/acp/auth.' . $phpEx);
if (!class_exists('auth_admin'))
{
include($phpbb_root_path . 'includes/acp/auth.' . $phpEx);
}
$auth_admin = new auth_admin();

View File

@@ -1113,6 +1113,11 @@ class auth_admin extends \phpbb\auth\auth
@reset($category_array);
while (list($cat, $cat_array) = each($category_array))
{
if (!$phpbb_permissions->category_defined($cat))
{
continue;
}
$template->assign_block_vars($tpl_cat, array(
'S_YES' => ($cat_array['S_YES'] && !$cat_array['S_NEVER'] && !$cat_array['S_NO']) ? true : false,
'S_NEVER' => ($cat_array['S_NEVER'] && !$cat_array['S_YES'] && !$cat_array['S_NO']) ? true : false,
@@ -1139,6 +1144,11 @@ class auth_admin extends \phpbb\auth\auth
@reset($cat_array['permissions']);
while (list($permission, $allowed) = each($cat_array['permissions']))
{
if (!$phpbb_permissions->permission_defined($permission))
{
continue;
}
if ($s_view)
{
$template->assign_block_vars($tpl_cat . '.' . $tpl_mask, array(

View File

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

View File

@@ -4264,10 +4264,14 @@ function obtain_users_online_string($online_users, $item_id = 0, $item = 'forum'
if (sizeof($online_users['online_users']))
{
$sql = 'SELECT username, username_clean, user_id, user_type, user_allow_viewonline, user_colour
FROM ' . USERS_TABLE . '
WHERE ' . $db->sql_in_set('user_id', $online_users['online_users']) . '
ORDER BY username_clean ASC';
$sql_ary = array(
'SELECT' => 'u.username, u.username_clean, u.user_id, u.user_type, u.user_allow_viewonline, u.user_colour',
'FROM' => array(
USERS_TABLE => 'u',
),
'WHERE' => $db->sql_in_set('u.user_id', $online_users['online_users']),
'ORDER_BY' => 'u.username_clean ASC',
);
/**
* Modify SQL query to obtain online users data
@@ -4279,13 +4283,14 @@ function obtain_users_online_string($online_users, $item_id = 0, $item = 'forum'
* @var string item Restrict online users to a certain
* session item, e.g. forum for
* session_forum_id
* @var string sql SQL query to obtain users online data
* @var string sql_ary SQL query to obtain users online data
* @since 3.1.4-RC1
* @changed 3.1.7-RC1 Change sql query into array and adjust var accordingly. Allows extension authors the ability to adjust the sql_ary.
*/
$vars = array('online_users', 'item_id', 'item', 'sql');
$vars = array('online_users', 'item_id', 'item', 'sql_ary');
extract($phpbb_dispatcher->trigger_event('core.obtain_users_online_string_sql', compact($vars)));
$result = $db->sql_query($sql);
$result = $db->sql_query($db->sql_build_query('SELECT', $sql_ary));
$rowset = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
@@ -4299,7 +4304,7 @@ function obtain_users_online_string($online_users, $item_id = 0, $item = 'forum'
$row['username'] = '<em>' . $row['username'] . '</em>';
}
if (!isset($online_users['hidden_users'][$row['user_id']]) || $auth->acl_get('u_viewonline'))
if (!isset($online_users['hidden_users'][$row['user_id']]) || $auth->acl_get('u_viewonline') || $row['user_id'] === $user->data['user_id'])
{
$user_online_link[$row['user_id']] = get_username_string(($row['user_type'] <> USER_IGNORE) ? 'full' : 'no_profile', $row['user_id'], $row['username'], $row['user_colour']);
}
@@ -4837,7 +4842,7 @@ function phpbb_get_avatar($row, $alt, $ignore_config = false, $lazy = false)
);
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
$driver = $phpbb_avatar_manager->get_driver($row['avatar_type'], $ignore_config);
$driver = $phpbb_avatar_manager->get_driver($row['avatar_type'], !$ignore_config);
$html = '';
if ($driver)
@@ -4848,7 +4853,7 @@ function phpbb_get_avatar($row, $alt, $ignore_config = false, $lazy = false)
return $html;
}
$avatar_data = $driver->get_data($row, $ignore_config);
$avatar_data = $driver->get_data($row);
}
else
{
@@ -5390,6 +5395,8 @@ function page_footer($run_cron = true, $display_template = true, $exit_handler =
return;
}
$user->update_session_infos();
phpbb_check_and_display_sql_report($request, $auth, $db);
$template->assign_vars(array(

View File

@@ -164,6 +164,8 @@ function adm_page_footer($copyright_html = true)
return;
}
$user->update_session_infos();
phpbb_check_and_display_sql_report($request, $auth, $db);
$template->assign_vars(array(

View File

@@ -576,7 +576,7 @@ function move_topics($topic_ids, $forum_id, $auto_sync = true)
*/
function move_posts($post_ids, $topic_id, $auto_sync = true)
{
global $db;
global $db, $phpbb_dispatcher;
if (!is_array($post_ids))
{
@@ -610,6 +610,28 @@ function move_posts($post_ids, $topic_id, $auto_sync = true)
trigger_error('NO_TOPIC');
}
/**
* Perform additional actions before moving posts
*
* @event core.move_posts_before
* @var array post_ids Array of post ids to move
* @var string topic_id The topic id the posts are moved to
* @var bool auto_sync Whether or not to perform auto sync
* @var array forum_ids Array of the forum ids the posts are moved from
* @var array topic_ids Array of the topic ids the posts are moved from
* @var array forum_row Array with the forum id of the topic the posts are moved to
* @since 3.1.7-RC1
*/
$vars = array(
'post_ids',
'topic_id',
'auto_sync',
'forum_ids',
'topic_ids',
'forum_row',
);
extract($phpbb_dispatcher->trigger_event('core.move_posts_before', compact($vars)));
$sql = 'UPDATE ' . POSTS_TABLE . '
SET forum_id = ' . (int) $forum_row['forum_id'] . ", topic_id = $topic_id
WHERE " . $db->sql_in_set('post_id', $post_ids);
@@ -620,6 +642,28 @@ function move_posts($post_ids, $topic_id, $auto_sync = true)
WHERE " . $db->sql_in_set('post_msg_id', $post_ids);
$db->sql_query($sql);
/**
* Perform additional actions after moving posts
*
* @event core.move_posts_after
* @var array post_ids Array of the moved post ids
* @var string topic_id The topic id the posts are moved to
* @var bool auto_sync Whether or not to perform auto sync
* @var array forum_ids Array of the forum ids the posts are moved from
* @var array topic_ids Array of the topic ids the posts are moved from
* @var array forum_row Array with the forum id of the topic the posts are moved to
* @since 3.1.7-RC1
*/
$vars = array(
'post_ids',
'topic_id',
'auto_sync',
'forum_ids',
'topic_ids',
'forum_row',
);
extract($phpbb_dispatcher->trigger_event('core.move_posts_after', compact($vars)));
if ($auto_sync)
{
$forum_ids[] = (int) $forum_row['forum_id'];
@@ -785,6 +829,7 @@ function delete_posts($where_type, $where_ids, $auto_sync = true, $posted_sync =
'notification.type.quote',
'notification.type.approve_post',
'notification.type.post_in_queue',
'notification.type.report_post',
);
/**
@@ -886,6 +931,32 @@ function delete_posts($where_type, $where_ids, $auto_sync = true, $posted_sync =
$table_ary = array(POSTS_TABLE, REPORTS_TABLE);
/**
* Perform additional actions during post(s) deletion before running the queries
*
* @event core.delete_posts_in_transaction_before
* @var array post_ids Array with deleted posts' ids
* @var array poster_ids Array with deleted posts' author ids
* @var array topic_ids Array with deleted posts' topic ids
* @var array forum_ids Array with deleted posts' forum ids
* @var string where_type Variable containing posts deletion mode
* @var mixed where_ids Array or comma separated list of post ids to delete
* @var array delete_notifications_types Array with notifications types to delete
* @var array table_ary Array with table names to delete data from
* @since 3.1.7-RC1
*/
$vars = array(
'post_ids',
'poster_ids',
'topic_ids',
'forum_ids',
'where_type',
'where_ids',
'delete_notifications_types',
'table_ary',
);
extract($phpbb_dispatcher->trigger_event('core.delete_posts_in_transaction_before', compact($vars)));
foreach ($table_ary as $table)
{
$sql = "DELETE FROM $table
@@ -1042,7 +1113,7 @@ function delete_posts($where_type, $where_ids, $auto_sync = true, $posted_sync =
*/
function delete_attachments($mode, $ids, $resync = true)
{
global $db, $config;
global $db, $config, $phpbb_dispatcher;
// 0 is as bad as an empty array
if (empty($ids))
@@ -1087,6 +1158,24 @@ function delete_attachments($mode, $ids, $resync = true)
$post_ids = $message_ids = $topic_ids = $physical = array();
/**
* Perform additional actions before collecting data for attachment(s) deletion
*
* @event core.delete_attachments_collect_data_before
* @var string mode Variable containing attachments deletion mode, can be: post|message|topic|attach|user
* @var mixed ids Array or comma separated list of ids corresponding to the mode
* @var bool resync Flag indicating if posts/messages/topics should be synchronized
* @var string sql_id The field name to collect/delete data for depending on the mode
* @since 3.1.7-RC1
*/
$vars = array(
'mode',
'ids',
'resync',
'sql_id',
);
extract($phpbb_dispatcher->trigger_event('core.delete_attachments_collect_data_before', compact($vars)));
// Collect post and topic ids for later use if we need to touch remaining entries (if resync is enabled)
$sql = 'SELECT post_msg_id, topic_id, in_message, physical_filename, thumbnail, filesize, is_orphan
FROM ' . ATTACHMENTS_TABLE . '
@@ -1116,6 +1205,32 @@ function delete_attachments($mode, $ids, $resync = true)
}
$db->sql_freeresult($result);
/**
* Perform additional actions before attachment(s) deletion
*
* @event core.delete_attachments_before
* @var string mode Variable containing attachments deletion mode, can be: post|message|topic|attach|user
* @var mixed ids Array or comma separated list of ids corresponding to the mode
* @var bool resync Flag indicating if posts/messages/topics should be synchronized
* @var string sql_id The field name to collect/delete data for depending on the mode
* @var array post_ids Array with post ids for deleted attachment(s)
* @var array topic_ids Array with topic ids for deleted attachment(s)
* @var array message_ids Array with private message ids for deleted attachment(s)
* @var array physical Array with deleted attachment(s) physical file(s) data
* @since 3.1.7-RC1
*/
$vars = array(
'mode',
'ids',
'resync',
'sql_id',
'post_ids',
'topic_ids',
'message_ids',
'physical',
);
extract($phpbb_dispatcher->trigger_event('core.delete_attachments_before', compact($vars)));
// Delete attachments
$sql = 'DELETE FROM ' . ATTACHMENTS_TABLE . '
WHERE ' . $db->sql_in_set($sql_id, $ids);
@@ -1125,6 +1240,34 @@ function delete_attachments($mode, $ids, $resync = true)
$db->sql_query($sql);
$num_deleted = $db->sql_affectedrows();
/**
* Perform additional actions after attachment(s) deletion from the database
*
* @event core.delete_attachments_from_database_after
* @var string mode Variable containing attachments deletion mode, can be: post|message|topic|attach|user
* @var mixed ids Array or comma separated list of ids corresponding to the mode
* @var bool resync Flag indicating if posts/messages/topics should be synchronized
* @var string sql_id The field name to collect/delete data for depending on the mode
* @var array post_ids Array with post ids for deleted attachment(s)
* @var array topic_ids Array with topic ids for deleted attachment(s)
* @var array message_ids Array with private message ids for deleted attachment(s)
* @var array physical Array with deleted attachment(s) physical file(s) data
* @var int num_deleted The number of deleted attachment(s) from the database
* @since 3.1.7-RC1
*/
$vars = array(
'mode',
'ids',
'resync',
'sql_id',
'post_ids',
'topic_ids',
'message_ids',
'physical',
'num_deleted',
);
extract($phpbb_dispatcher->trigger_event('core.delete_attachments_from_database_after', compact($vars)));
if (!$num_deleted)
{
return 0;
@@ -1147,6 +1290,38 @@ function delete_attachments($mode, $ids, $resync = true)
}
}
/**
* Perform additional actions after attachment(s) deletion from the filesystem
*
* @event core.delete_attachments_from_filesystem_after
* @var string mode Variable containing attachments deletion mode, can be: post|message|topic|attach|user
* @var mixed ids Array or comma separated list of ids corresponding to the mode
* @var bool resync Flag indicating if posts/messages/topics should be synchronized
* @var string sql_id The field name to collect/delete data for depending on the mode
* @var array post_ids Array with post ids for deleted attachment(s)
* @var array topic_ids Array with topic ids for deleted attachment(s)
* @var array message_ids Array with private message ids for deleted attachment(s)
* @var array physical Array with deleted attachment(s) physical file(s) data
* @var int num_deleted The number of deleted attachment(s) from the database
* @var int space_removed The size of deleted files(s) from the filesystem
* @var int files_removed The number of deleted file(s) from the filesystem
* @since 3.1.7-RC1
*/
$vars = array(
'mode',
'ids',
'resync',
'sql_id',
'post_ids',
'topic_ids',
'message_ids',
'physical',
'num_deleted',
'space_removed',
'files_removed',
);
extract($phpbb_dispatcher->trigger_event('core.delete_attachments_from_filesystem_after', compact($vars)));
if ($space_removed || $files_removed)
{
set_config_count('upload_dir_size', $space_removed * (-1), true);

View File

@@ -1496,7 +1496,7 @@ function watch_topic_forum($mode, &$s_watching, $user_id, $forum_id, $topic_id,
* @param array $user_data the current stored users data
* @param int $user_posts the users number of posts
*
* @return array An associative array containing the rank title (title), the rank image source (img) and the rank image as full img tag (img)
* @return array An associative array containing the rank title (title), the rank image as full img tag (img) and the rank image source (img_src)
*
* Note: since we do not want to break backwards-compatibility, this function will only properly assign ranks to guests if you call it for them with user_posts == false
*/

View File

@@ -388,7 +388,7 @@ function phpbb_mcp_sorting($mode, &$sort_days, &$sort_key, &$sort_dir, &$sort_by
if (!$auth->acl_get('m_approve', $forum_id))
{
$sql .= 'AND topic_visibility = ' . ITEM_APPROVED;
$sql .= ' AND topic_visibility = ' . ITEM_APPROVED;
}
break;
@@ -404,7 +404,7 @@ function phpbb_mcp_sorting($mode, &$sort_days, &$sort_key, &$sort_dir, &$sort_by
if (!$auth->acl_get('m_approve', $forum_id))
{
$sql .= 'AND post_visibility = ' . ITEM_APPROVED;
$sql .= ' AND post_visibility = ' . ITEM_APPROVED;
}
break;

View File

@@ -902,6 +902,8 @@ class queue
fclose($fp);
phpbb_chmod($this->cache_file, CHMOD_READ | CHMOD_WRITE);
$this->data = array();
}
$lock->release();

View File

@@ -310,6 +310,7 @@ function posting_gen_topic_icons($mode, $icon_id)
{
$template->assign_block_vars('topic_icon', array(
'ICON_ID' => $id,
'ICON_NAME' => $data['img'],
'ICON_IMG' => $root_path . $config['icons_path'] . '/' . $data['img'],
'ICON_WIDTH' => $data['width'],
'ICON_HEIGHT' => $data['height'],

View File

@@ -1594,7 +1594,7 @@ function get_folder_status($folder_id, $folder)
'percent' => ($user->data['message_limit']) ? (($user->data['message_limit'] > 0) ? floor(($folder['num_messages'] / $user->data['message_limit']) * 100) : 100) : 0,
);
$return['message'] = $user->lang('FOLDER_STATUS_MSG', $user->lang('MESSAGES_COUNT', (int) $return['max']), $return['cur'], $return['percent']);
$return['message'] = $user->lang('FOLDER_STATUS_MSG', $user->lang('MESSAGES_COUNT', (int) $return['max']), (int) $return['cur'], $return['percent']);
return $return;
}

View File

@@ -2698,7 +2698,7 @@ function group_delete($group_id, $group_name = false)
*/
function group_user_add($group_id, $user_id_ary = false, $username_ary = false, $group_name = false, $default = false, $leader = 0, $pending = 0, $group_attributes = false)
{
global $db, $auth, $phpbb_container;
global $db, $auth, $phpbb_container, $phpbb_dispatcher;
// We need both username and user_id info
$result = user_get_id_name($user_id_ary, $username_ary);
@@ -2775,6 +2775,26 @@ function group_user_add($group_id, $user_id_ary = false, $username_ary = false,
// Clear permissions cache of relevant users
$auth->acl_clear_prefetch($user_id_ary);
/**
* Event after users are added to a group
*
* @event core.group_add_user_after
* @var int group_id ID of the group to which users are added
* @var string group_name Name of the group
* @var array user_id_ary IDs of the users which are added
* @var array username_ary names of the users which are added
* @var int pending Pending setting, 1 if user(s) added are pending
* @since 3.1.7-RC1
*/
$vars = array(
'group_id',
'group_name',
'user_id_ary',
'username_ary',
'pending',
);
extract($phpbb_dispatcher->trigger_event('core.group_add_user_after', compact($vars)));
if (!$group_name)
{
$group_name = get_group_name($group_id);
@@ -2933,6 +2953,19 @@ function group_user_del($group_id, $user_id_ary = false, $username_ary = false,
// Clear permissions cache of relevant users
$auth->acl_clear_prefetch($user_id_ary);
/**
* Event after users are removed from a group
*
* @event core.group_delete_user_after
* @var int group_id ID of the group from which users are deleted
* @var string group_name Name of the group
* @var array user_id_ary IDs of the users which are removed
* @var array username_ary names of the users which are removed
* @since 3.1.7-RC1
*/
$vars = array('group_id', 'group_name', 'user_id_ary', 'username_ary');
extract($phpbb_dispatcher->trigger_event('core.group_delete_user_after', compact($vars)));
if (!$group_name)
{
$group_name = get_group_name($group_id);

View File

@@ -20,9 +20,9 @@ class mcp_pm_reports_info
'title' => 'MCP_PM_REPORTS',
'version' => '1.0.0',
'modes' => array(
'pm_reports' => array('title' => 'MCP_PM_REPORTS_OPEN', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')),
'pm_reports_closed' => array('title' => 'MCP_PM_REPORTS_CLOSED', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')),
'pm_report_details' => array('title' => 'MCP_PM_REPORT_DETAILS', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')),
'pm_reports' => array('title' => 'MCP_PM_REPORTS_OPEN', 'auth' => 'acl_m_pm_report', 'cat' => array('MCP_REPORTS')),
'pm_reports_closed' => array('title' => 'MCP_PM_REPORTS_CLOSED', 'auth' => 'acl_m_pm_report', 'cat' => array('MCP_REPORTS')),
'pm_report_details' => array('title' => 'MCP_PM_REPORT_DETAILS', 'auth' => 'acl_m_pm_report', 'cat' => array('MCP_REPORTS')),
),
);
}

View File

@@ -35,15 +35,6 @@ function mcp_forum_view($id, $mode, $action, $forum_info)
// merge_topic is the quickmod action, merge_topics is the mcp_forum action, and merge_select is the mcp_topic action
$merge_select = ($action == 'merge_select' || $action == 'merge_topic' || $action == 'merge_topics') ? true : false;
if ($merge_select)
{
// Fixes a "bug" that makes forum_view use the same ordering as topic_view
$request->overwrite('sk', null);
$request->overwrite('sd', null);
$request->overwrite('sk', null, \phpbb\request\request_interface::POST);
$request->overwrite('sd', null, \phpbb\request\request_interface::POST);
}
$forum_id = $forum_info['forum_id'];
$start = request_var('start', 0);
$topic_id_list = request_var('topic_id_list', array(0));

View File

@@ -274,7 +274,7 @@ function mcp_front_view($id, $mode, $action)
}
// Latest 5 reported PMs
if ($module->loaded('pm_reports') && $auth->acl_getf_global('m_report'))
if ($module->loaded('pm_reports') && $auth->acl_get('m_pm_report'))
{
$template->assign_var('S_SHOW_PM_REPORTS', true);
$user->add_lang(array('ucp'));

View File

@@ -322,6 +322,22 @@ function lock_unlock($action, $ids)
add_log('mod', $row['forum_id'], $row['topic_id'], 'LOG_' . strtoupper($action), $row['topic_title']);
}
/**
* Perform additional actions after locking/unlocking posts/topics
*
* @event core.mcp_lock_unlock_after
* @var string action Variable containing the action we perform on the posts/topics ('lock', 'unlock', 'lock_post' or 'unlock_post')
* @var array ids Array containing the post/topic IDs that have been locked/unlocked
* @var array data Array containing posts/topics data
* @since 3.1.7-RC1
*/
$vars = array(
'action',
'ids',
'data',
);
extract($phpbb_dispatcher->trigger_event('core.mcp_lock_unlock_after', compact($vars)));
$success_msg = $l_prefix . ((sizeof($ids) == 1) ? '' : 'S') . '_' . (($action == 'lock' || $action == 'lock_post') ? 'LOCKED' : 'UNLOCKED') . '_SUCCESS';
meta_refresh(2, $redirect);

View File

@@ -549,6 +549,18 @@ function change_poster(&$post_info, $userdata)
$from_username = $post_info['username'];
$to_username = $userdata['username'];
/**
* This event allows you to perform additional tasks after changing a post's poster
*
* @event core.mcp_change_poster_after
* @var array userdata Information on a post's new poster
* @var array post_info Information on the affected post
* @since 3.1.6-RC1
* @changed 3.1.7-RC1 Change location to prevent post_info from being set to the new post information
*/
$vars = array('userdata', 'post_info');
extract($phpbb_dispatcher->trigger_event('core.mcp_change_poster_after', compact($vars)));
// Renew post info
$post_info = phpbb_get_post_data(array($post_id), false, true);
@@ -559,17 +571,6 @@ function change_poster(&$post_info, $userdata)
$post_info = $post_info[$post_id];
/**
* This event allows you to perform additional tasks after changing a post's poster
*
* @event core.mcp_change_poster_after
* @var array userdata Information on a post's new poster
* @var array post_info Information on the affected post
* @since 3.1.6-RC1
*/
$vars = array('userdata', 'post_info');
extract($phpbb_dispatcher->trigger_event('core.mcp_change_poster_after', compact($vars)));
// Now add log entry
add_log('mod', $post_info['forum_id'], $post_info['topic_id'], 'LOG_MCP_CHANGE_POSTER', $post_info['topic_title'], $from_username, $to_username);
}

View File

@@ -72,6 +72,7 @@ class mcp_queue
case 'delete':
$post_id_list = $request->variable('post_id_list', array(0));
$topic_id_list = $request->variable('topic_id_list', array(0));
$delete_reason = $request->variable('delete_reason', '', true);
if (!empty($post_id_list))
{
@@ -80,7 +81,7 @@ class mcp_queue
global $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/mcp/mcp_main.' . $phpEx);
}
mcp_delete_post($post_id_list, false, '', $action);
mcp_delete_post($post_id_list, false, $delete_reason, $action);
}
else if (!empty($topic_id_list))
{
@@ -89,7 +90,7 @@ class mcp_queue
global $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/mcp/mcp_main.' . $phpEx);
}
mcp_delete_topic($topic_id_list, false, '', $action);
mcp_delete_topic($topic_id_list, false, $delete_reason, $action);
}
else
{
@@ -283,6 +284,7 @@ class mcp_queue
$template->assign_vars(array(
'S_MCP_QUEUE' => true,
'U_APPROVE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue&amp;p=$post_id&amp;f=$forum_id"),
'S_CAN_DELETE_POST' => $auth->acl_get('m_delete', $post_info['forum_id']),
'S_CAN_VIEWIP' => $auth->acl_get('m_info', $post_info['forum_id']),
'S_POST_REPORTED' => $post_info['post_reported'],
'S_POST_UNAPPROVED' => $post_info['post_visibility'] == ITEM_UNAPPROVED || $post_info['post_visibility'] == ITEM_REAPPROVE,
@@ -1130,6 +1132,11 @@ class mcp_queue
// Build a list of posts to be disapproved and get the related topics real replies count
foreach ($post_info as $post_id => $post_data)
{
if ($mode === 'unapproved_topics' && $post_data['post_visibility'] == ITEM_APPROVED)
{
continue;
}
$post_disapprove_list[$post_id] = $post_data['topic_id'];
if (!isset($topic_posts_unapproved[$post_data['topic_id']]))
{
@@ -1139,6 +1146,12 @@ class mcp_queue
$topic_posts_unapproved[$post_data['topic_id']]++;
}
// Do not try to disapprove if no posts are selected
if (empty($post_disapprove_list))
{
trigger_error('NO_POST_SELECTED');
}
// Now we build the log array
foreach ($post_disapprove_list as $post_id => $topic_id)
{
@@ -1240,7 +1253,7 @@ class mcp_queue
continue;
}
$post_data['disapprove_reason'] = '';
$post_data['disapprove_reason'] = $disapprove_reason;
if (isset($disapprove_reason_lang))
{
// Okay we need to get the reason from the posters language

View File

@@ -194,6 +194,30 @@ function mcp_topic_view($id, $mode, $action)
}
}
/**
* Event to modify the post data for the MCP topic review before assigning the posts
*
* @event core.mcp_topic_modify_post_data
* @var array attachments List of attachments post_id => array of attachments
* @var int forum_id The forum ID we are currently in
* @var int id ID of the tab we are displaying
* @var string mode Mode of the MCP page we are displaying
* @var array post_id_list Array with post ids we are going to display
* @var array rowset Array with the posts data
* @var int topic_id The topic ID we are currently reviewing
* @since 3.1.7-RC1
*/
$vars = array(
'attachments',
'forum_id',
'id',
'mode',
'post_id_list',
'rowset',
'topic_id',
);
extract($phpbb_dispatcher->trigger_event('core.mcp_topic_modify_post_data', compact($vars)));
foreach ($rowset as $i => $row)
{
$message = $row['post_text'];

View File

@@ -92,7 +92,7 @@ class ucp_pm
$user_folders = get_folder($user->data['user_id']);
if (!$auth->acl_get('u_sendpm'))
if ($action != 'delete' && !$auth->acl_get('u_sendpm'))
{
// trigger_error('NO_AUTH_SEND_MESSAGE');
$template->assign_vars(array(

View File

@@ -183,37 +183,12 @@ class ucp_profile
if ($config['require_activation'] == USER_ACTIVATION_ADMIN)
{
// Grab an array of user_id's with a_user permissions ... these users can activate a user
$admin_ary = $auth->acl_get_list(false, 'a_user', false);
$admin_ary = (!empty($admin_ary[0]['a_user'])) ? $admin_ary[0]['a_user'] : array();
// Also include founders
$where_sql = ' WHERE user_type = ' . USER_FOUNDER;
if (sizeof($admin_ary))
{
$where_sql .= ' OR ' . $db->sql_in_set('user_id', $admin_ary);
}
$sql = 'SELECT user_id, username, user_email, user_lang, user_jabber, user_notify_type
FROM ' . USERS_TABLE . ' ' .
$where_sql;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$messenger->template('admin_activate', $row['user_lang']);
$messenger->set_addresses($row);
$messenger->assign_vars(array(
'USERNAME' => htmlspecialchars_decode($data['username']),
'U_USER_DETAILS' => "$server_url/memberlist.$phpEx?mode=viewprofile&u={$user->data['user_id']}",
'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$user->data['user_id']}&k=$user_actkey")
);
$messenger->send($row['user_notify_type']);
}
$db->sql_freeresult($result);
$notifications_manager = $phpbb_container->get('notification_manager');
$notifications_manager->add_notifications('notification.type.admin_activate_user', array(
'user_id' => $user->data['user_id'],
'user_actkey' => $user_actkey,
'user_regdate' => time(), // Notification time
));
}
user_active_flip('deactivate', $user->data['user_id'], INACTIVE_PROFILE);

View File

@@ -119,7 +119,7 @@ $db->sql_freeresult($result);
$legend = implode($user->lang['COMMA_SEPARATOR'], $legend);
// Generate birthday list if required ...
$birthday_list = array();
$birthdays = $birthday_list = array();
if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))
{
$time = $user->create_datetime();
@@ -132,33 +132,66 @@ if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('
$leap_year_birthdays = " OR u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', 29, 2)) . "%'";
}
$sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday
FROM ' . USERS_TABLE . ' u
LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)
WHERE (b.ban_id IS NULL
OR b.ban_exclude = 1)
$sql_ary = array(
'SELECT' => 'u.user_id, u.username, u.user_colour, u.user_birthday',
'FROM' => array(
USERS_TABLE => 'u',
),
'LEFT_JOIN' => array(
array(
'FROM' => array(BANLIST_TABLE => 'b'),
'ON' => 'u.user_id = b.ban_userid',
),
),
'WHERE' => "(b.ban_id IS NULL OR b.ban_exclude = 1)
AND (u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' $leap_year_birthdays)
AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
$result = $db->sql_query($sql);
AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')',
);
while ($row = $db->sql_fetchrow($result))
/**
* Event to modify the SQL query to get birthdays data
*
* @event core.index_modify_birthdays_sql
* @var array now The assoc array with the 'now' local timestamp data
* @var array sql_ary The SQL array to get the birthdays data
* @var object time The user related Datetime object
* @since 3.1.7-RC1
*/
$vars = array('now', 'sql_ary', 'time');
extract($phpbb_dispatcher->trigger_event('core.index_modify_birthdays_sql', compact($vars)));
$sql = $db->sql_build_query('SELECT', $sql_ary);
$result = $db->sql_query($sql);
$rows = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
foreach ($rows as $row)
{
$birthday_username = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
$birthday_year = (int) substr($row['user_birthday'], -4);
$birthday_age = ($birthday_year) ? max(0, $now['year'] - $birthday_year) : '';
$template->assign_block_vars('birthdays', array(
$birthdays[] = array(
'USERNAME' => $birthday_username,
'AGE' => $birthday_age,
));
);
// For 3.0 compatibility
if ($age = (int) substr($row['user_birthday'], -4))
{
$birthday_list[] = $birthday_username . (($birthday_year) ? ' (' . $birthday_age . ')' : '');
}
$birthday_list[] = $birthday_username . (($birthday_age) ? " ({$birthday_age})" : '');
}
$db->sql_freeresult($result);
/**
* Event to modify the birthdays list
*
* @event core.index_modify_birthdays_list
* @var array birthdays Array with the users birhtdays data
* @var array rows Array with the birhtdays SQL query result
* @since 3.1.7-RC1
*/
$vars = array('birthdays', 'rows');
extract($phpbb_dispatcher->trigger_event('core.index_modify_birthdays_list', compact($vars)));
$template->assign_block_vars_array('birthdays', $birthdays);
}
// Assign index specific vars

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

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.6-RC1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.1.7-RC1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400');
@@ -355,6 +355,7 @@ INSERT INTO phpbb_acl_options (auth_option, is_local, is_global) VALUES ('m_soft
# -- Global moderator auth option (not a local option)
INSERT INTO phpbb_acl_options (auth_option, is_local, is_global) VALUES ('m_ban', 0, 1);
INSERT INTO phpbb_acl_options (auth_option, is_local, is_global) VALUES ('m_pm_report', 0, 1);
INSERT INTO phpbb_acl_options (auth_option, is_local, is_global) VALUES ('m_warn', 0, 1);
# -- Admin related auth options
@@ -542,7 +543,7 @@ INSERT INTO phpbb_acl_roles_data (role_id, auth_option_id, auth_setting) SELECT
INSERT INTO phpbb_acl_roles_data (role_id, auth_option_id, auth_setting) SELECT 11, auth_option_id, 1 FROM phpbb_acl_options WHERE auth_option LIKE 'm_%' AND auth_option NOT IN ('m_ban', 'm_chgposter');
# Simple Moderator (m_)
INSERT INTO phpbb_acl_roles_data (role_id, auth_option_id, auth_setting) SELECT 12, auth_option_id, 1 FROM phpbb_acl_options WHERE auth_option LIKE 'm_%' AND auth_option IN ('m_', 'm_delete', 'm_softdelete', 'm_edit', 'm_info', 'm_report');
INSERT INTO phpbb_acl_roles_data (role_id, auth_option_id, auth_setting) SELECT 12, auth_option_id, 1 FROM phpbb_acl_options WHERE auth_option LIKE 'm_%' AND auth_option IN ('m_', 'm_delete', 'm_softdelete', 'm_edit', 'm_info', 'm_report', 'm_pm_report');
# Queue Moderator (m_)
INSERT INTO phpbb_acl_roles_data (role_id, auth_option_id, auth_setting) SELECT 13, auth_option_id, 1 FROM phpbb_acl_options WHERE auth_option LIKE 'm_%' AND auth_option IN ('m_', 'm_approve', 'm_edit');

View File

@@ -155,9 +155,10 @@ $lang = array_merge($lang, array(
'ACL_M_SPLIT' => 'Can split topics',
'ACL_M_MERGE' => 'Can merge topics',
'ACL_M_INFO' => 'Can view post details',
'ACL_M_WARN' => 'Can issue warnings<br /><em>This setting is only assigned globally. It is not forum based.</em>', // This moderator setting is only global (and not local)
'ACL_M_BAN' => 'Can manage bans<br /><em>This setting is only assigned globally. It is not forum based.</em>', // This moderator setting is only global (and not local)
'ACL_M_INFO' => 'Can view post details',
'ACL_M_WARN' => 'Can issue warnings<br /><em>This setting is only assigned globally. It is not forum based.</em>', // This moderator setting is only global (and not local)
'ACL_M_PM_REPORT' => 'Can close and delete reports of private messages<br /><em>This setting is only assigned globally. It is not forum based.</em>', // This moderator setting is only global (and not local)
'ACL_M_BAN' => 'Can manage bans<br /><em>This setting is only assigned globally. It is not forum based.</em>', // This moderator setting is only global (and not local)
));
// Admin Permissions

View File

@@ -54,9 +54,9 @@ $lang = array_merge($lang, array(
'CLI_DESCRIPTION_DELETE_CONFIG' => 'Deletes a configuration option',
'CLI_DESCRIPTION_DISABLE_EXTENSION' => 'Disables the specified extension.',
'CLI_DESCRIPTION_ENABLE_EXTENSION' => 'Enables the specified extension.',
'CLI_DESCRIPTION_FIND_MIGRATIONS' => 'Finds migrations that are not depended on.',
'CLI_DESCRIPTION_FIND_MIGRATIONS' => 'Finds migrations that are not depended upon.',
'CLI_DESCRIPTION_GET_CONFIG' => 'Gets a configuration options value',
'CLI_DESCRIPTION_INCREMENT_CONFIG' => 'Increments a configuration options value',
'CLI_DESCRIPTION_INCREMENT_CONFIG' => 'Increments a configuration options integer value',
'CLI_DESCRIPTION_LIST_EXTENSIONS' => 'Lists all extensions in the database and on the filesystem.',
'CLI_DESCRIPTION_OPTION_SAFE_MODE' => 'Run in Safe Mode (without extensions).',
'CLI_DESCRIPTION_OPTION_SHELL' => 'Launch the shell.',
@@ -79,3 +79,8 @@ $lang = array_merge($lang, array(
'CLI_FIXUP_RECALCULATE_EMAIL_HASH_SUCCESS' => 'Successfully recalculated all email hashes.',
));
// Additional help for commands.
$lang = array_merge($lang, array(
'CLI_HELP_CRON_RUN' => $lang['CLI_DESCRIPTION_CRON_RUN'] . ' Optionally you can specify a cron task name to run only the specified cron task.',
));

View File

@@ -329,6 +329,7 @@ $lang = array_merge($lang, array(
'IMAGE_FILETYPE_INVALID' => 'Image file type %d for mimetype %s not supported.',
'IMAGE_FILETYPE_MISMATCH' => 'Image file type mismatch: expected extension %1$s but extension %2$s given.',
'IN' => 'in',
'INACTIVE' => 'Inactive',
'INDEX' => 'Index page',
'INFORMATION' => 'Information',
'INSECURE_REDIRECT' => 'Tried to redirect to potentially insecure url.',
@@ -467,7 +468,7 @@ $lang = array_merge($lang, array(
'NOTIFICATION_TOPIC_DISAPPROVED' => '<strong>Topic disapproved</strong>:',
'NOTIFICATION_TOPIC_IN_QUEUE' => '<strong>Topic approval</strong> request by %1$s:',
'NOTIFICATION_TYPE_NOT_EXIST' => 'The notification type "%s" is missing from the file system.',
'NOTIFICATION_ADMIN_ACTIVATE_USER' => '<strong>Activation required</strong> for newly registered user: “%1$s”',
'NOTIFICATION_ADMIN_ACTIVATE_USER' => '<strong>Activation required</strong> for deactivated or newly registered user: “%1$s”',
// Used in conjuction with NOTIFICATION_BOOKMARK and NOTIFICATION_POST.
'NOTIFICATION_MANY_OTHERS' => 'others',
'NOTIFICATION_X_OTHERS' => array(

View File

@@ -90,7 +90,7 @@ $help = array(
),
array(
0 => 'Linking to another site',
1 => 'phpBB BBCode supports a number of ways of creating URIs (Uniform Resource Indicators) better known as URLs.<ul><li>The first of these uses the <strong>[url=][/url]</strong> tag, whatever you type after the = sign will cause the contents of that tag to act as a URL. For example to link to phpBB.com you could use:<br /><br /><strong>[url=https://www.phpbb.com/]</strong>Visit phpBB!<strong>[/url]</strong><br /><br />This would generate the following link, <a href="https://www.phpbb.com/">Visit phpBB!</a> Please notice that the link opens in the same window or a new window depending on the users browser preferences.</li><li>If you want the URL itself displayed as the link you can do this by simply using:<br /><br /><strong>[url]</strong>https://www.phpbb.com/<strong>[/url]</strong><br /><br />This would generate the following link, <a href="https://www.phpbb.com/">https://www.phpbb.com/</a></li><li>Additionally, phpBB features something called <i>Magic Links</i>, this will turn any syntactically correct URL into a link without you needing to specify any tags or even the leading https://. For example typing www.phpbb.com into your message will automatically lead to <a href="https://www.phpbb.com/">www.phpbb.com</a> being output when you view the message.</li><li>The same thing applies equally to email addresses, you can either specify an address explicitly for example:<br /><br /><strong>[email]</strong>no.one@domain.adr<strong>[/email]</strong><br /><br />which will output <a href="mailto:no.one@domain.adr">no.one@domain.adr</a> or you can just type no.one@domain.adr into your message and it will be automatically converted when you view.</li></ul>As with all the BBCode tags you can wrap URLs around any of the other tags such as <strong>[img][/img]</strong> (see next entry), <strong>[b][/b]</strong>, etc. As with the formatting tags it is up to you to ensure the correct open and close order is following, for example:<br /><br /><strong>[url=https://www.phpbb.com/][img]</strong>https://www.phpbb.com/theme/images/logos/blue/160x52.png<strong>[/url][/img]</strong><br /><br />is <span style="text-decoration: underline">not</span> correct which may lead to your post being deleted so take care.'
1 => 'phpBB BBCode supports a number of ways of creating URIs (Uniform Resource Indicators) better known as URLs.<ul><li>The first of these uses the <strong>[url=][/url]</strong> tag, whatever you type after the = sign will cause the contents of that tag to act as a URL. For example to link to phpBB.com you could use:<br /><br /><strong>[url=https://www.phpbb.com/]</strong>Visit phpBB!<strong>[/url]</strong><br /><br />This would generate the following link, <a href="https://www.phpbb.com/">Visit phpBB!</a> Please notice that the link opens in the same window or a new window depending on the users browser preferences.</li><li>If you want the URL itself displayed as the link you can do this by simply using:<br /><br /><strong>[url]</strong>https://www.phpbb.com/<strong>[/url]</strong><br /><br />This would generate the following link, <a href="https://www.phpbb.com/">https://www.phpbb.com/</a></li><li>Additionally, phpBB features something called <i>Magic Links</i>, this will turn any syntactically correct URL into a link without you needing to specify any tags or even the leading http://. For example typing www.phpbb.com into your message will automatically lead to <a href="http://www.phpbb.com/">www.phpbb.com</a> being output when you view the message.</li><li>The same thing applies equally to email addresses, you can either specify an address explicitly for example:<br /><br /><strong>[email]</strong>no.one@domain.adr<strong>[/email]</strong><br /><br />which will output <a href="mailto:no.one@domain.adr">no.one@domain.adr</a> or you can just type no.one@domain.adr into your message and it will be automatically converted when you view.</li></ul>As with all the BBCode tags you can wrap URLs around any of the other tags such as <strong>[img][/img]</strong> (see next entry), <strong>[b][/b]</strong>, etc. As with the formatting tags it is up to you to ensure the correct open and close order is following, for example:<br /><br /><strong>[url=https://www.phpbb.com/][img]</strong>https://www.phpbb.com/theme/images/logos/blue/160x52.png<strong>[/url][/img]</strong><br /><br />is <span style="text-decoration: underline">not</span> correct which may lead to your post being deleted so take care.'
),
array(
0 => '--',

View File

@@ -101,6 +101,7 @@ $lang = array_merge($lang, array(
'LOGIN_EXPLAIN_SEARCHUSER' => 'The board requires you to be registered and logged in to search users.',
'LOGIN_EXPLAIN_VIEWPROFILE' => 'The board requires you to be registered and logged in to view profiles.',
'MANAGE_GROUP' => 'Manage Group',
'MORE_THAN' => 'More than',
'NO_CONTACT_FORM' => 'The board administrator contact form has been disabled.',

View File

@@ -339,7 +339,7 @@ $lang = array_merge($lang, array(
'NOTIFICATION_TYPE_QUOTE' => 'Someone quotes you in a post',
'NOTIFICATION_TYPE_REPORT' => 'Someone reports a post',
'NOTIFICATION_TYPE_TOPIC' => 'Someone creates a topic in a forum to which you are subscribed',
'NOTIFICATION_TYPE_ADMIN_ACTIVATE_USER' => 'Newly registered user requiring activation',
'NOTIFICATION_TYPE_ADMIN_ACTIVATE_USER' => 'User requiring activation',
'NOTIFY_METHOD' => 'Notification method',
'NOTIFY_METHOD_BOTH' => 'Both',

View File

@@ -151,7 +151,7 @@ switch ($mode)
$db->sql_freeresult($result);
$sql_ary = array(
'SELECT' => 'u.user_id, u.group_id as default_group, u.username, u.username_clean, u.user_colour, u.user_rank, u.user_posts, u.user_allow_pm, g.group_id',
'SELECT' => 'u.user_id, u.group_id as default_group, u.username, u.username_clean, u.user_colour, u.user_type, u.user_rank, u.user_posts, u.user_allow_pm, g.group_id',
'FROM' => array(
USER_GROUP_TABLE => 'ug',
@@ -314,6 +314,8 @@ switch ($mode)
'RANK_IMG' => $user_rank_data['img'],
'RANK_IMG_SRC' => $user_rank_data['img_src'],
'S_INACTIVE' => $row['user_type'] == USER_INACTIVE,
'U_PM' => ($config['allow_privmsg'] && $auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=compose&amp;u=' . $row['user_id']) : '',
'USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
@@ -1025,6 +1027,23 @@ switch ($mode)
FROM ' . POSTS_TABLE . '
WHERE poster_ip ' . ((strpos($ips, '%') !== false) ? 'LIKE' : 'IN') . " ($ips)
AND " . $db->sql_in_set('forum_id', $ip_forums);
/**
* Modify sql query for members search by ip address / hostname
*
* @event core.memberlist_modify_ip_search_sql_query
* @var string ipdomain The host name
* @var string ips IP address list for the given host name
* @var string sql The SQL query for searching members by IP address
* @since 3.1.7-RC1
*/
$vars = array(
'ipdomain',
'ips',
'sql',
);
extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_ip_search_sql_query', compact($vars)));
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result))
@@ -1069,7 +1088,7 @@ switch ($mode)
if ($mode == 'group')
{
// We JOIN here to save a query for determining membership for hidden groups. ;)
$sql = 'SELECT g.*, ug.user_id
$sql = 'SELECT g.*, ug.user_id, ug.group_leader
FROM ' . GROUPS_TABLE . ' g
LEFT JOIN ' . USER_GROUP_TABLE . ' ug ON (ug.user_pending = 0 AND ug.user_id = ' . $user->data['user_id'] . " AND ug.group_id = $group_id)
WHERE g.group_id = $group_id";
@@ -1128,6 +1147,24 @@ switch ($mode)
$user_rank_data['img'] .= '<br />';
}
}
// include modules for manage groups link display or not
// need to ensure the module is active
$can_manage_group = false;
if ($user->data['is_registered'] && $group_row['group_leader'])
{
if (!class_exists('p_master'))
{
include($phpbb_root_path . 'includes/functions_module.' . $phpEx);
}
$module = new p_master;
$module->list_modules('ucp');
if ($module->is_active('ucp_groups', 'manage'))
{
$can_manage_group = true;
}
unset($module);
}
$template->assign_vars(array(
'GROUP_DESC' => generate_text_for_display($group_row['group_desc'], $group_row['group_desc_uid'], $group_row['group_desc_bitfield'], $group_row['group_desc_options']),
@@ -1140,7 +1177,8 @@ switch ($mode)
'RANK_IMG' => $user_rank_data['img'],
'RANK_IMG_SRC' => $user_rank_data['img_src'],
'U_PM' => ($auth->acl_get('u_sendpm') && $auth->acl_get('u_masspm_group') && $group_row['group_receive_pm'] && $config['allow_privmsg'] && $config['allow_mass_pm']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=compose&amp;g=' . $group_id) : '',)
'U_PM' => ($auth->acl_get('u_sendpm') && $auth->acl_get('u_masspm_group') && $group_row['group_receive_pm'] && $config['allow_privmsg'] && $config['allow_mass_pm']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=compose&amp;g=' . $group_id) : '',
'U_MANAGE' => ($can_manage_group) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=ucp_groups&amp;mode=manage') : false,)
);
$sql_select = ', ug.group_leader';
@@ -1165,6 +1203,32 @@ switch ($mode)
$order_by .= ', u.user_posts DESC';
}
/**
* Modify sql query data for members search
*
* @event core.memberlist_modify_sql_query_data
* @var string order_by SQL ORDER BY clause condition
* @var string sort_dir The sorting direction
* @var string sort_key The sorting key
* @var array sort_key_sql Arraty with the sorting conditions data
* @var string sql_from SQL FROM clause condition
* @var string sql_select SQL SELECT fields list
* @var string sql_where SQL WHERE clause condition
* @var string sql_where_data SQL WHERE clause additional conditions data
* @since 3.1.7-RC1
*/
$vars = array(
'order_by',
'sort_dir',
'sort_key',
'sort_key_sql',
'sql_from',
'sql_select',
'sql_where',
'sql_where_data',
);
extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_sql_query_data', compact($vars)));
// Count the users ...
if ($sql_where)
{
@@ -1345,13 +1409,19 @@ switch ($mode)
);
}
$user_types = array(USER_NORMAL, USER_FOUNDER);
if ($auth->acl_get('a_user'))
{
$user_types[] = USER_INACTIVE;
}
$start = $pagination->validate_start($start, $config['topics_per_page'], $config['num_users']);
// Get us some users :D
$sql = "SELECT u.user_id
FROM " . USERS_TABLE . " u
$sql_from
WHERE u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ")
WHERE " . $db->sql_in_set('u.user_type', $user_types) . "
$sql_where
ORDER BY $order_by";
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
@@ -1448,6 +1518,20 @@ switch ($mode)
usort($user_list, 'phpbb_sort_last_active');
}
// do we need to display contact fields as such
$use_contact_fields = false;
/**
* Modify list of users before member row is created
*
* @event core.memberlist_memberrow_before
* @var array user_list Array containing list of users
* @var bool use_contact_fields Should we display contact fields as such?
* @since 3.1.7-RC1
*/
$vars = array('user_list', 'use_contact_fields');
extract($phpbb_dispatcher->trigger_event('core.memberlist_memberrow_before', compact($vars)));
for ($i = 0, $end = sizeof($user_list); $i < $end; ++$i)
{
$user_id = $user_list[$i];
@@ -1458,7 +1542,7 @@ switch ($mode)
$cp_row = array();
if ($config['load_cpf_memberlist'])
{
$cp_row = (isset($profile_fields_cache[$user_id])) ? $cp->generate_profile_fields_template_data($profile_fields_cache[$user_id], false) : array();
$cp_row = (isset($profile_fields_cache[$user_id])) ? $cp->generate_profile_fields_template_data($profile_fields_cache[$user_id], $use_contact_fields) : array();
}
$memberrow = array_merge(phpbb_show_profile($row, false, false, false), array(
@@ -1466,6 +1550,7 @@ switch ($mode)
'S_CUSTOM_PROFILE' => (isset($cp_row['row']) && sizeof($cp_row['row'])) ? true : false,
'S_GROUP_LEADER' => $is_leader,
'S_INACTIVE' => $row['user_type'] == USER_INACTIVE,
'U_VIEW_PROFILE' => get_username_string('profile', $user_id, $row['username']),
));
@@ -1505,12 +1590,12 @@ switch ($mode)
'U_HIDE_FIND_MEMBER' => ($mode == 'searchuser' || ($mode == '' && $submit)) ? $u_hide_find_member : '',
'U_LIVE_SEARCH' => ($config['allow_live_searches']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=livesearch') : false,
'U_SORT_USERNAME' => $sort_url . '&amp;sk=a&amp;sd=' . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'),
'U_SORT_JOINED' => $sort_url . '&amp;sk=c&amp;sd=' . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'),
'U_SORT_POSTS' => $sort_url . '&amp;sk=d&amp;sd=' . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'),
'U_SORT_EMAIL' => $sort_url . '&amp;sk=e&amp;sd=' . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'),
'U_SORT_ACTIVE' => ($auth->acl_get('u_viewonline')) ? $sort_url . '&amp;sk=l&amp;sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a') : '',
'U_SORT_RANK' => $sort_url . '&amp;sk=m&amp;sd=' . (($sort_key == 'm' && $sort_dir == 'a') ? 'd' : 'a'),
'U_LIST_CHAR' => $sort_url . '&amp;sk=a&amp;sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a'),
'U_SORT_JOINED' => $sort_url . '&amp;sk=c&amp;sd=' . (($sort_key == 'c' && $sort_dir == 'd') ? 'a' : 'd'),
'U_SORT_POSTS' => $sort_url . '&amp;sk=d&amp;sd=' . (($sort_key == 'd' && $sort_dir == 'd') ? 'a' : 'd'),
'U_SORT_EMAIL' => $sort_url . '&amp;sk=e&amp;sd=' . (($sort_key == 'e' && $sort_dir == 'd') ? 'a' : 'd'),
'U_SORT_ACTIVE' => ($auth->acl_get('u_viewonline')) ? $sort_url . '&amp;sk=l&amp;sd=' . (($sort_key == 'l' && $sort_dir == 'd') ? 'a' : 'd') : '',
'U_SORT_RANK' => $sort_url . '&amp;sk=m&amp;sd=' . (($sort_key == 'm' && $sort_dir == 'd') ? 'a' : 'd'),
'U_LIST_CHAR' => $sort_url . '&amp;sk=a&amp;sd=' . (($sort_key == 'l' && $sort_dir == 'd') ? 'a' : 'd'),
'S_SHOW_GROUP' => ($mode == 'group') ? true : false,
'S_VIEWONLINE' => $auth->acl_get('u_viewonline'),

View File

@@ -928,6 +928,7 @@ class auth
function login($username, $password, $autologin = false, $viewonline = 1, $admin = 0)
{
global $db, $user, $phpbb_root_path, $phpEx, $phpbb_container;
global $phpbb_dispatcher;
$provider_collection = $phpbb_container->get('auth.provider_collection');
@@ -982,6 +983,24 @@ class auth
redirect($url);
}
/**
* Event is triggered after checking for valid username and password, and before the actual session creation.
*
* @event core.auth_login_session_create_before
* @var array login Variable containing login array
* @var bool admin Boolean variable whether user is logging into the ACP
* @var string username Username of user to log in
* @var bool autologin Boolean variable signaling whether login is triggered via auto login
* @since 3.1.7-RC1
*/
$vars = array(
'login',
'admin',
'username',
'autologin',
);
extract($phpbb_dispatcher->trigger_event('core.auth_login_session_create_before', compact($vars)));
// If login succeeded, we will log the user in... else we pass the login array through...
if ($login['status'] == LOGIN_SUCCESS)
{

View File

@@ -172,6 +172,8 @@ class gravatar extends \phpbb\avatar\driver\driver
*/
protected function get_gravatar_url($row)
{
global $phpbb_dispatcher;
$url = self::GRAVATAR_URL;
$url .= md5(strtolower(trim($row['avatar'])));
@@ -180,6 +182,17 @@ class gravatar extends \phpbb\avatar\driver\driver
$url .= '?s=' . max($row['avatar_width'], $row['avatar_height']);
}
/**
* Modify gravatar url
*
* @event core.get_gravatar_url_after
* @var string row User data or group data
* @var string url Gravatar URL
* @since 3.1.7-RC1
*/
$vars = array('row', 'url');
extract($phpbb_dispatcher->trigger_event('core.get_gravatar_url_after', compact($vars)));
return $url;
}
}

View File

@@ -84,11 +84,13 @@ class local extends \phpbb\avatar\driver\driver
'AVATAR_IMAGE' => $this->phpbb_root_path . $this->config['avatar_gallery_path'] . '/' . $img['file'],
'AVATAR_NAME' => $img['name'],
'AVATAR_FILE' => $img['filename'],
'CHECKED' => $img['file'] === $row['avatar'],
));
$template->assign_block_vars('avatar_local_row.avatar_local_option', array(
'AVATAR_FILE' => $img['filename'],
'S_OPTIONS_AVATAR' => $img['filename']
'S_OPTIONS_AVATAR' => $img['filename'],
'CHECKED' => $img['file'] === $row['avatar'],
));
$col_count = ($col_count + 1) % $table_cols;
@@ -182,7 +184,7 @@ class local extends \phpbb\avatar\driver\driver
}
$cat = ($path == $file_path) ? $user->lang['NO_AVATAR_CATEGORY'] : str_replace("$path/", '', $file_path);
$avatar_list[$cat][$image] = array(
'file' => ($cat != $user->lang['NO_AVATAR_CATEGORY']) ? rawurlencode($cat) . '/' . rawurlencode($image) : rawurlencode($image),
'file' => ($cat != $user->lang['NO_AVATAR_CATEGORY']) ? str_replace('%2F', '/', rawurlencode($cat)) . '/' . rawurlencode($image) : rawurlencode($image),
'filename' => rawurlencode($image),
'name' => ucfirst(str_replace('_', ' ', preg_replace('#^(.*)\..*$#', '\1', $image))),
'width' => $dims[0],

View File

@@ -53,7 +53,7 @@ class upload extends \phpbb\avatar\driver\driver
/**
* {@inheritdoc}
*/
public function get_data($row, $ignore_config = false)
public function get_data($row)
{
$root_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? generate_board_url() . '/' : $this->path_helper->get_web_root_path();

View File

@@ -50,6 +50,7 @@ class run extends \phpbb\console\command\command
$this
->setName('cron:run')
->setDescription($this->user->lang('CLI_DESCRIPTION_CRON_RUN'))
->setHelp($this->user->lang('CLI_HELP_CRON_RUN'))
->addArgument('name', InputArgument::OPTIONAL, $this->user->lang('CLI_DESCRIPTION_CRON_RUN_ARGUMENT_1'))
;
}

View File

@@ -100,12 +100,14 @@ class helper
* @param string $page_title The title of the page to output
* @param int $status_code The status code to be sent to the page header
* @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
*
* @return Response object containing rendered page
*/
public function render($template_file, $page_title = '', $status_code = 200, $display_online_list = false)
public function render($template_file, $page_title = '', $status_code = 200, $display_online_list = false, $item_id = 0, $item = 'forum')
{
page_header($page_title, $display_online_list);
page_header($page_title, $display_online_list, $item_id, $item);
$this->template->set_filenames(array(
'body' => $template_file,

View File

@@ -48,6 +48,7 @@ class sqlite3 extends \phpbb\db\driver\driver
try
{
$this->dbo = new \SQLite3($this->server, SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE);
$this->dbo->busyTimeout(60000);
$this->db_connect_id = true;
}
catch (\Exception $e)

View File

@@ -0,0 +1,64 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v31x;
class m_pm_report extends \phpbb\db\migration\migration
{
static public function depends_on()
{
return array('\phpbb\db\migration\data\v31x\v316rc1');
}
public function update_data()
{
return array(
array('permission.add', array('m_pm_report', true, 'm_report')),
array('custom', array(
array($this, 'update_module_auth'),
),
),
);
}
public function revert_data()
{
return array(
array('permission.remove', array('m_pm_report')),
array('custom', array(
array($this, 'revert_module_auth'),
),
),
);
}
public function update_module_auth()
{
$sql = 'UPDATE ' . MODULES_TABLE . "
SET module_auth = 'acl_m_pm_report'
WHERE module_class = 'mcp'
AND module_basename = 'mcp_pm_reports'
AND module_auth = 'aclf_m_report'";
$this->db->sql_query($sql);
}
public function revert_module_auth()
{
$sql = 'UPDATE ' . MODULES_TABLE . "
SET module_auth = 'aclf_m_report'
WHERE module_class = 'mcp'
AND module_basename = 'mcp_pm_reports'
AND module_auth = 'acl_m_pm_report'";
$this->db->sql_query($sql);
}
}

View File

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

View File

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

View File

@@ -149,12 +149,10 @@ class helper
{
$update_count = array();
parse_attachments($forum_id, $content, $post_attachments, $update_count);
$post_attachments = implode('<br />', $post_attachments);
$content .= implode('<br />', $post_attachments);
// Convert attachments' relative path to absolute path
$post_attachments = str_replace($this->phpbb_root_path . 'download/file.' . $this->phpEx, $this->get_board_url() . '/download/file.' . $this->phpEx, $post_attachments);
$content .= $post_attachments;
$content = str_replace($this->phpbb_root_path . 'download/file.' . $this->phpEx, $this->get_board_url() . '/download/file.' . $this->phpEx, $content);
}
// Remove Comments from inline attachments [ia]

View File

@@ -82,7 +82,7 @@ class approve_post extends \phpbb\notification\type\post
$users[$post['poster_id']] = array('');
return $this->get_authorised_recipients(array_keys($users), $post['forum_id'], array_merge($options, array(
'item_type' => self::$notification_option['id'],
'item_type' => static::$notification_option['id'],
)));
}

View File

@@ -82,7 +82,7 @@ class approve_topic extends \phpbb\notification\type\topic
$users[$post['poster_id']] = array('');
return $this->get_authorised_recipients(array_keys($users), $post['forum_id'], array_merge($options, array(
'item_type' => self::$notification_option['id'],
'item_type' => static::$notification_option['id'],
)));
}

View File

@@ -95,7 +95,7 @@ class bookmark extends \phpbb\notification\type\post
$sql = 'SELECT n.*
FROM ' . $this->notifications_table . ' n, ' . $this->notification_types_table . ' nt
WHERE n.notification_type_id = ' . (int) $this->notification_type_id . '
AND n.item_parent_id = ' . (int) self::get_item_parent_id($post) . '
AND n.item_parent_id = ' . (int) static::get_item_parent_id($post) . '
AND n.notification_read = 0
AND nt.notification_type_id = n.notification_type_id
AND nt.notification_type_enabled = 1';

View File

@@ -135,7 +135,7 @@ class post extends \phpbb\notification\type\base
$sql = 'SELECT n.*
FROM ' . $this->notifications_table . ' n, ' . $this->notification_types_table . ' nt
WHERE n.notification_type_id = ' . (int) $this->notification_type_id . '
AND n.item_parent_id = ' . (int) self::get_item_parent_id($post) . '
AND n.item_parent_id = ' . (int) static::get_item_parent_id($post) . '
AND n.notification_read = 0
AND nt.notification_type_id = n.notification_type_id
AND nt.notification_type_enabled = 1';

View File

@@ -108,7 +108,7 @@ class post_in_queue extends \phpbb\notification\type\post
}
return $this->check_user_notification_options($auth_read[$post['forum_id']]['f_read'], array_merge($options, array(
'item_type' => self::$notification_option['id'],
'item_type' => static::$notification_option['id'],
)));
}

View File

@@ -78,7 +78,7 @@ class quote extends \phpbb\notification\type\post
), $options);
$usernames = false;
preg_match_all(self::$regular_expression_match, $post['post_text'], $usernames);
preg_match_all(static::$regular_expression_match, $post['post_text'], $usernames);
if (empty($usernames[1]))
{
@@ -116,7 +116,7 @@ class quote extends \phpbb\notification\type\post
$sql = 'SELECT n.user_id
FROM ' . $this->notifications_table . ' n, ' . $this->notification_types_table . ' nt
WHERE n.notification_type_id = ' . (int) $this->notification_type_id . '
AND n.item_id = ' . self::get_item_id($post) . '
AND n.item_id = ' . static::get_item_id($post) . '
AND nt.notification_type_id = n.notification_type_id
AND nt.notification_type_enabled = 1';
$result = $this->db->sql_query($sql);
@@ -147,7 +147,7 @@ class quote extends \phpbb\notification\type\post
{
$sql = 'DELETE FROM ' . $this->notifications_table . '
WHERE notification_type_id = ' . (int) $this->notification_type_id . '
AND item_id = ' . self::get_item_id($post) . '
AND item_id = ' . static::get_item_id($post) . '
AND ' . $this->db->sql_in_set('user_id', $remove_notifications);
$this->db->sql_query($sql);
}

View File

@@ -120,7 +120,7 @@ class report_pm extends \phpbb\notification\type\pm
}
return $this->check_user_notification_options($auth_approve[$post['forum_id']][$this->permission], array_merge($options, array(
'item_type' => self::$notification_option['id'],
'item_type' => static::$notification_option['id'],
)));
}

View File

@@ -108,7 +108,7 @@ class topic_in_queue extends \phpbb\notification\type\topic
}
return $this->check_user_notification_options($auth_read[$topic['forum_id']]['f_read'], array_merge($options, array(
'item_type' => self::$notification_option['id'],
'item_type' => static::$notification_option['id'],
)));
}

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