mirror of
https://github.com/phpbb/phpbb.git
synced 2025-09-08 07:10:51 +02:00
Compare commits
228 Commits
release-3.
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
|
099a1b5f75 | ||
|
69cf32613d | ||
|
d2acccf92c | ||
|
901785bc5e | ||
|
81b3b38795 | ||
|
d37d3ed3ed | ||
|
e6d3ed5529 | ||
|
ffbc2d02d7 | ||
|
2419f63aab | ||
|
20e26a3920 | ||
|
4989df66a2 | ||
|
a4c1daa259 | ||
|
ab8dc92d26 | ||
|
07ae3e997c | ||
|
4a92b85cad | ||
|
94c073672d | ||
|
e8247faacc | ||
|
7eef7b2ea2 | ||
|
91869cc43c | ||
|
8899829752 | ||
|
1a367062d3 | ||
|
4966d6c913 | ||
|
ea9b97c8a1 | ||
|
4ea325029b | ||
|
31510c0ae7 | ||
|
df223eac65 | ||
|
0bff95488b | ||
|
8489cb6f40 | ||
|
3a55cead92 | ||
|
f4f6a4f810 | ||
|
e3f1cca911 | ||
|
df9443a3c6 | ||
|
03662d5a89 | ||
|
8bb4af6271 | ||
|
27cf9e490b | ||
|
d53c5b7e2a | ||
|
da6ce7a668 | ||
|
19c84dabe1 | ||
|
9ef06d67e6 | ||
|
224efba459 | ||
|
8398e0700a | ||
|
13133b359b | ||
|
1c1fe43e16 | ||
|
966c34d0ad | ||
|
b27be0b857 | ||
|
865c16cf26 | ||
|
854ee0b04d | ||
|
27e95864a8 | ||
|
8dbf3976fd | ||
|
afbeda7cfd | ||
|
22d234a345 | ||
|
21aa6cc120 | ||
|
fbacd1df16 | ||
|
88dd8a4849 | ||
|
c1d47d9e16 | ||
|
6a7567459d | ||
|
9596db9b88 | ||
|
2a218c2959 | ||
|
7615a5c22f | ||
|
5576c9f3b9 | ||
|
93208d597a | ||
|
fa44e98e72 | ||
|
6b433eab4c | ||
|
b23c0f1442 | ||
|
a6fd55db35 | ||
|
dfd5ec6835 | ||
|
9ccb596a06 | ||
|
da9a5c70d5 | ||
|
9a8393c912 | ||
|
3a5336452c | ||
|
6fba5613f8 | ||
|
c7d7967a91 | ||
|
aaca64e13e | ||
|
9de5668b80 | ||
|
bc6a4c4583 | ||
|
e634d2902d | ||
|
f657680311 | ||
|
240d07d0cf | ||
|
f6776c1017 | ||
|
bab85da820 | ||
|
bc11e648af | ||
|
669618b5a0 | ||
|
50bf3411d4 | ||
|
a49a3091f9 | ||
|
5d8e900483 | ||
|
fb3073029f | ||
|
3367f0036a | ||
|
69b57eab5e | ||
|
6bcec956ba | ||
|
ccb3d0ac78 | ||
|
6572164754 | ||
|
345e8ad822 | ||
|
bdf69817be | ||
|
9ebc369d74 | ||
|
14966a2962 | ||
|
655f244c4f | ||
|
08739751b2 | ||
|
d003b53922 | ||
|
d507bce98a | ||
|
b7bd210f41 | ||
|
c5752be50c | ||
|
66ee80c9e2 | ||
|
1260f92813 | ||
|
1164cc38a2 | ||
|
e87209742b | ||
|
d92baaa2f7 | ||
|
bc34217c14 | ||
|
65b13938db | ||
|
8c3aa1458c | ||
|
d9a4146113 | ||
|
e603fa56db | ||
|
2668fa42ad | ||
|
fcf6c20291 | ||
|
5f8fb38b52 | ||
|
5f05a8a8f8 | ||
|
97118a897a | ||
|
f6c8338358 | ||
|
8eb9ce50b0 | ||
|
d75750fd99 | ||
|
def21f27a2 | ||
|
8683824ed3 | ||
|
b04b5dea36 | ||
|
8a52ccc938 | ||
|
a0dafbfb5f | ||
|
70b5ffc41d | ||
|
e63ef0b28f | ||
|
6360d748db | ||
|
e5b895de7b | ||
|
3469cdce76 | ||
|
7a60cdd1d3 | ||
|
5b7b0894e0 | ||
|
542498e457 | ||
|
c38a128663 | ||
|
c05a27396d | ||
|
4830b3eacd | ||
|
cf62b303a6 | ||
|
e5b2dc922f | ||
|
3fd1fa5492 | ||
|
bf0596d0a1 | ||
|
a11d97cb36 | ||
|
0947bda39d | ||
|
66397ae0e4 | ||
|
cb71a7b8d2 | ||
|
2642cfe298 | ||
|
3672df0bc2 | ||
|
098c8e1fe9 | ||
|
d5f625382b | ||
|
20c0b57421 | ||
|
65997eb577 | ||
|
7e379c4cea | ||
|
d62b03e0de | ||
|
07b55530ec | ||
|
d92a46ef02 | ||
|
5b9d828328 | ||
|
3cdf97f003 | ||
|
2bf9e91101 | ||
|
bc518bf96e | ||
|
aa01ee1bbc | ||
|
2f4fcee7e8 | ||
|
a4a99f5ea3 | ||
|
c166adf3c7 | ||
|
7d15704f6a | ||
|
46f6b4459a | ||
|
0f49eaa2e2 | ||
|
0744330080 | ||
|
c9d159257a | ||
|
1affd34814 | ||
|
90d5eefccf | ||
|
ea594d00f7 | ||
|
9537ec56eb | ||
|
0e93efd7cb | ||
|
8cab2374f9 | ||
|
f201c22ca7 | ||
|
5258fba2e0 | ||
|
82a45cd4da | ||
|
076807c63a | ||
|
053a6d1d70 | ||
|
7701034871 | ||
|
5faa12db4c | ||
|
58af8606c1 | ||
|
48d05bad25 | ||
|
2ee8b14f86 | ||
|
8749c99e34 | ||
|
4979d98aa9 | ||
|
3fe517f50c | ||
|
cc060a2611 | ||
|
96521767f8 | ||
|
a606b1c480 | ||
|
e9e199bc37 | ||
|
af246483e2 | ||
|
11b2bffa8e | ||
|
bfbce5a1b0 | ||
|
76158e429b | ||
|
6c36f56b12 | ||
|
624f5ae921 | ||
|
6d7a5dfe5e | ||
|
90d18356a0 | ||
|
eb2b3868bb | ||
|
5a51acd643 | ||
|
2b01772fa9 | ||
|
d08c5edcca | ||
|
13851f308f | ||
|
335452b1c1 | ||
|
4be255ef9f | ||
|
0caaf86158 | ||
|
f153342fb3 | ||
|
ec032733de | ||
|
6b0f235cc9 | ||
|
c4bc5f3930 | ||
|
b1e92393ee | ||
|
f4c1796d5e | ||
|
84f8d6d64e | ||
|
0d6c323611 | ||
|
7e1b0330a3 | ||
|
23f1b7d9c7 | ||
|
51bb51124a | ||
|
80fee7422c | ||
|
bd40f2f619 | ||
|
5e39a7ab72 | ||
|
5b8a721b73 | ||
|
0427e5f1b3 | ||
|
e04f9a2425 | ||
|
1ba86eaa8e | ||
|
ed064ce0f1 | ||
|
73fd75abf1 | ||
|
cc29638bcc | ||
|
19fe32d5b2 | ||
|
b8dfbfe390 |
@@ -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"
|
||||
|
||||
|
@@ -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}" />
|
||||
|
@@ -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 -->
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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 -->
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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 -->
|
||||
|
||||
|
@@ -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> [ <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> ]
|
||||
<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> [ <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> ]
|
||||
</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> </td>
|
||||
<td> </td>
|
||||
<!-- ENDIF -->
|
||||
</tr>
|
||||
<!-- ENDIF -->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@@ -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> </dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@@ -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 -->
|
||||
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
||||
|
@@ -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 -->
|
||||
|
@@ -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 -->
|
||||
|
@@ -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>
|
||||
|
@@ -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;
|
||||
|
@@ -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>
|
||||
|
@@ -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') {
|
||||
|
@@ -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
447
phpBB/composer.lock
generated
@@ -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": [],
|
||||
|
@@ -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 }
|
||||
|
@@ -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>] - "Can ignore flood limit" permission not taking effect</li>
|
||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13892">PHPBB3-13892</a>] - "Someone reports a post" 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 "mark topics read" link to "View unread posts"</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 "Clean Name" 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 "Manage Group" 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>
|
||||
|
@@ -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->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>
|
||||
|
||||
|
@@ -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>
|
||||
|
||||
|
@@ -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:
|
||||
|
@@ -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.
|
||||
|
@@ -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',
|
||||
);
|
||||
|
@@ -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 . '
|
||||
|
@@ -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');
|
||||
|
@@ -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)),
|
||||
|
@@ -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,
|
||||
));
|
||||
|
@@ -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');
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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 . '&action=details&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 . '&action=details&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 . '&action=details&ext_name=' . urlencode($name);
|
||||
|
||||
$this->template->assign_block_vars('disabled', $block_vars);
|
||||
|
@@ -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();
|
||||
|
||||
|
@@ -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&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&mode=overview&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&mode=overview&u={$row['user_id']}"),
|
||||
'U_SEARCH_USER' => ($auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", "author_id={$row['user_id']}&sr=posts") : '',
|
||||
|
@@ -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;
|
||||
|
@@ -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' : '';
|
||||
|
@@ -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&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,
|
||||
)
|
||||
|
@@ -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();
|
||||
|
||||
|
@@ -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');
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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";
|
||||
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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&u=$user_id"),
|
||||
'U_ACTION' => $this->u_action . '&u=' . $user_id,
|
||||
'U_ACTION' => $this->u_action . '&u=' . $user_id . ((empty($redirect)) ? '' : '&' . $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();
|
||||
|
||||
|
@@ -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(
|
||||
|
@@ -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);
|
||||
|
@@ -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(
|
||||
|
@@ -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(
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
*/
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -902,6 +902,8 @@ class queue
|
||||
fclose($fp);
|
||||
|
||||
phpbb_chmod($this->cache_file, CHMOD_READ | CHMOD_WRITE);
|
||||
|
||||
$this->data = array();
|
||||
}
|
||||
|
||||
$lock->release();
|
||||
|
@@ -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'],
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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')),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@@ -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));
|
||||
|
@@ -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'));
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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&p=$post_id&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
|
||||
|
@@ -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'];
|
||||
|
@@ -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(
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
|
@@ -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,
|
||||
|
@@ -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');
|
||||
|
@@ -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
|
||||
|
@@ -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 option’s value',
|
||||
'CLI_DESCRIPTION_INCREMENT_CONFIG' => 'Increments a configuration option’s value',
|
||||
'CLI_DESCRIPTION_INCREMENT_CONFIG' => 'Increments a configuration option’s 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.',
|
||||
));
|
||||
|
@@ -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(
|
||||
|
@@ -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 => '--',
|
||||
|
@@ -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.',
|
||||
|
@@ -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',
|
||||
|
@@ -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&mode=compose&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&mode=compose&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&mode=compose&g=' . $group_id) : '',
|
||||
'U_MANAGE' => ($can_manage_group) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=ucp_groups&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 . '&sk=a&sd=' . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'),
|
||||
'U_SORT_JOINED' => $sort_url . '&sk=c&sd=' . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'),
|
||||
'U_SORT_POSTS' => $sort_url . '&sk=d&sd=' . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'),
|
||||
'U_SORT_EMAIL' => $sort_url . '&sk=e&sd=' . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'),
|
||||
'U_SORT_ACTIVE' => ($auth->acl_get('u_viewonline')) ? $sort_url . '&sk=l&sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a') : '',
|
||||
'U_SORT_RANK' => $sort_url . '&sk=m&sd=' . (($sort_key == 'm' && $sort_dir == 'a') ? 'd' : 'a'),
|
||||
'U_LIST_CHAR' => $sort_url . '&sk=a&sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a'),
|
||||
'U_SORT_JOINED' => $sort_url . '&sk=c&sd=' . (($sort_key == 'c' && $sort_dir == 'd') ? 'a' : 'd'),
|
||||
'U_SORT_POSTS' => $sort_url . '&sk=d&sd=' . (($sort_key == 'd' && $sort_dir == 'd') ? 'a' : 'd'),
|
||||
'U_SORT_EMAIL' => $sort_url . '&sk=e&sd=' . (($sort_key == 'e' && $sort_dir == 'd') ? 'a' : 'd'),
|
||||
'U_SORT_ACTIVE' => ($auth->acl_get('u_viewonline')) ? $sort_url . '&sk=l&sd=' . (($sort_key == 'l' && $sort_dir == 'd') ? 'a' : 'd') : '',
|
||||
'U_SORT_RANK' => $sort_url . '&sk=m&sd=' . (($sort_key == 'm' && $sort_dir == 'd') ? 'a' : 'd'),
|
||||
'U_LIST_CHAR' => $sort_url . '&sk=a&sd=' . (($sort_key == 'l' && $sort_dir == 'd') ? 'a' : 'd'),
|
||||
|
||||
'S_SHOW_GROUP' => ($mode == 'group') ? true : false,
|
||||
'S_VIEWONLINE' => $auth->acl_get('u_viewonline'),
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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],
|
||||
|
@@ -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();
|
||||
|
||||
|
@@ -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'))
|
||||
;
|
||||
}
|
||||
|
@@ -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,
|
||||
|
@@ -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)
|
||||
|
64
phpBB/phpbb/db/migration/data/v31x/m_pm_report.php
Normal file
64
phpBB/phpbb/db/migration/data/v31x/m_pm_report.php
Normal 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);
|
||||
}
|
||||
}
|
31
phpBB/phpbb/db/migration/data/v31x/v316.php
Normal file
31
phpBB/phpbb/db/migration/data/v31x/v316.php
Normal 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')),
|
||||
);
|
||||
}
|
||||
}
|
32
phpBB/phpbb/db/migration/data/v31x/v317rc1.php
Normal file
32
phpBB/phpbb/db/migration/data/v31x/v317rc1.php
Normal 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')),
|
||||
);
|
||||
}
|
||||
}
|
@@ -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]
|
||||
|
@@ -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'],
|
||||
)));
|
||||
}
|
||||
|
||||
|
@@ -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'],
|
||||
)));
|
||||
}
|
||||
|
||||
|
@@ -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';
|
||||
|
@@ -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';
|
||||
|
@@ -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'],
|
||||
)));
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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'],
|
||||
)));
|
||||
}
|
||||
|
||||
|
@@ -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
Reference in New Issue
Block a user