Skip to content

Commit

Permalink
Merge pull request phpbb#4905 from rxu/ticket/15324
Browse files Browse the repository at this point in the history
[ticket/15324] Add more core and template events
  • Loading branch information
CHItA authored Sep 7, 2017
2 parents 908b1c9 + 68c3a03 commit 0755ae4
Show file tree
Hide file tree
Showing 8 changed files with 112 additions and 7 deletions.
14 changes: 14 additions & 0 deletions phpBB/docs/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -1483,6 +1483,20 @@ overall_header_stylesheets_after
* Purpose: Add asset calls after stylesheets within the `</head>` tag.
Note that INCLUDECSS will not work with this event.

posting_attach_body_attach_row_controls_append
===
* Locations:
+ styles/prosilver/template/posting_attach_body.html
* Since: 3.2.2-RC1
* Purpose: Add content after attachment control elements

posting_attach_body_attach_row_controls_prepend
===
* Locations:
+ styles/prosilver/template/posting_attach_body.html
* Since: 3.2.2-RC1
* Purpose: Add content before attachment control elements

posting_editor_add_panel_tab
===
* Locations:
Expand Down
20 changes: 17 additions & 3 deletions phpBB/includes/functions_posting.php
Original file line number Diff line number Diff line change
Expand Up @@ -712,7 +712,7 @@ function posting_gen_inline_attachments(&$attachment_data)
*/
function posting_gen_attachment_entry($attachment_data, &$filename_data, $show_attach_box = true)
{
global $template, $config, $phpbb_root_path, $phpEx, $user;
global $template, $config, $phpbb_root_path, $phpEx, $user, $phpbb_dispatcher;

// Some default template variables
$template->assign_vars(array(
Expand All @@ -730,6 +730,7 @@ function posting_gen_attachment_entry($attachment_data, &$filename_data, $show_a
foreach ($attachment_data as $count => $attach_row)
{
$hidden = '';
$attachrow_template_vars = array();
$attach_row['real_filename'] = utf8_basename($attach_row['real_filename']);

foreach ($attach_row as $key => $value)
Expand All @@ -739,7 +740,7 @@ function posting_gen_attachment_entry($attachment_data, &$filename_data, $show_a

$download_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'mode=view&amp;id=' . (int) $attach_row['attach_id'], true, ($attach_row['is_orphan']) ? $user->session_id : false);

$template->assign_block_vars('attach_row', array(
$attachrow_template_vars[(int) $attach_row['attach_id']] = array(
'FILENAME' => utf8_basename($attach_row['real_filename']),
'A_FILENAME' => addslashes(utf8_basename($attach_row['real_filename'])),
'FILE_COMMENT' => $attach_row['attach_comment'],
Expand All @@ -749,9 +750,22 @@ function posting_gen_attachment_entry($attachment_data, &$filename_data, $show_a
'FILESIZE' => get_formatted_filesize($attach_row['filesize']),

'U_VIEW_ATTACHMENT' => $download_link,
'S_HIDDEN' => $hidden)
'S_HIDDEN' => $hidden,
);
}

/**
* Modify inline attachments template vars
*
* @event core.modify_inline_attachments_template_vars
* @var array attachment_data Array containing attachments data
* @var array attachrow_template_vars Array containing attachments template vars
* @since 3.2.2-RC1
*/
$vars = array('attachment_data', 'attachrow_template_vars');
extract($phpbb_dispatcher->trigger_event('core.modify_inline_attachments_template_vars', compact($vars)));

$template->assign_block_vars_array('attach_row', $attachrow_template_vars);
}

return sizeof($attachment_data);
Expand Down
4 changes: 3 additions & 1 deletion phpBB/includes/functions_user.php
Original file line number Diff line number Diff line change
Expand Up @@ -734,9 +734,11 @@ function user_delete($mode, $user_ids, $retain_username = true)
* @var array user_ids IDs of the deleted user
* @var mixed retain_username True if username should be retained
* or false if not
* @var array user_rows Array containing data of the deleted users
* @since 3.1.0-a1
* @changed 3.2.2-RC1 Added user_rows
*/
$vars = array('mode', 'user_ids', 'retain_username');
$vars = array('mode', 'user_ids', 'retain_username', 'user_rows');
extract($phpbb_dispatcher->trigger_event('core.delete_user_after', compact($vars)));

// Reset newest user info if appropriate
Expand Down
30 changes: 29 additions & 1 deletion phpBB/includes/message_parser.php
Original file line number Diff line number Diff line change
Expand Up @@ -1530,7 +1530,7 @@ function smilies($max_smilies = 0)
function parse_attachments($form_name, $mode, $forum_id, $submit, $preview, $refresh, $is_message = false)
{
global $config, $auth, $user, $phpbb_root_path, $phpEx, $db, $request;
global $phpbb_container;
global $phpbb_container, $phpbb_dispatcher;

$error = array();

Expand Down Expand Up @@ -1598,6 +1598,20 @@ function parse_attachments($form_name, $mode, $forum_id, $submit, $preview, $ref
);

$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);

/**
* Modify attachment data on submit
*
* @event core.modify_attachment_data_on_submit
* @var array attachment_data Array containing attachment data
* @since 3.2.2-RC1
*/
$attachment_data = $this->attachment_data;
$vars = array('attachment_data');
extract($phpbb_dispatcher->trigger_event('core.modify_attachment_data_on_submit', compact($vars)));
$this->attachment_data = $attachment_data;
unset($attachment_data);

$this->message = preg_replace_callback('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#', function ($match) {
return '[attachment='.($match[1] + 1).']' . $match[2] . '[/attachment]';
}, $this->message);
Expand Down Expand Up @@ -1719,6 +1733,20 @@ function parse_attachments($form_name, $mode, $forum_id, $submit, $preview, $ref
);

$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);

/**
* Modify attachment data on upload
*
* @event core.modify_attachment_data_on_upload
* @var array attachment_data Array containing attachment data
* @since 3.2.2-RC1
*/
$attachment_data = $this->attachment_data;
$vars = array('attachment_data');
extract($phpbb_dispatcher->trigger_event('core.modify_attachment_data_on_upload', compact($vars)));
$this->attachment_data = $attachment_data;
unset($attachment_data);

$this->message = preg_replace_callback('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#', function ($match) {
return '[attachment=' . ($match[1] + 1) . ']' . $match[2] . '[/attachment]';
}, $this->message);
Expand Down
18 changes: 16 additions & 2 deletions phpBB/memberlist.php
Original file line number Diff line number Diff line change
Expand Up @@ -1579,7 +1579,7 @@
$pagination->generate_template_pagination($pagination_url, 'pagination', 'start', $total_users, $config['topics_per_page'], $start);

// Generate page
$template->assign_vars(array(
$template_vars = array(
'TOTAL_USERS' => $user->lang('LIST_USERS', (int) $total_users),

'PROFILE_IMG' => $user->img('icon_user_profile', $user->lang['PROFILE']),
Expand All @@ -1604,8 +1604,22 @@
'S_LEADERS_SET' => $leaders_set,
'S_MODE_SELECT' => $s_sort_key,
'S_ORDER_SELECT' => $s_sort_dir,
'S_MODE_ACTION' => $pagination_url)
'S_MODE_ACTION' => $pagination_url,
);

/**
* Modify memberlist page template vars
*
* @event core.memberlist_modify_template_vars
* @var array params Array containing URL parameters
* @var string sort_url Sorting URL base
* @var array template_vars Array containing template vars
* @since 3.2.2-RC1
*/
$vars = array('params', 'sort_url', 'template_vars');
extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_template_vars', compact($vars)));

$template->assign_vars($template_vars);
}

// Output the page
Expand Down
21 changes: 21 additions & 0 deletions phpBB/posting.php
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,27 @@
$db->sql_freeresult($result);
}

/**
* This event allows you to modify the post data before parsing
*
* @event core.posting_modify_post_data
* @var int forum_id ID of the forum
* @var string mode What action to take if the form has been submitted
* post|reply|quote|edit|delete|bump|smilies|popup
* @var array post_data Array with post data
* @var int post_id ID of the post
* @var int topic_id ID of the topic
* @since 3.2.2-RC1
*/
$vars = array(
'forum_id',
'mode',
'post_data',
'post_id',
'topic_id',
);
extract($phpbb_dispatcher->trigger_event('core.posting_modify_post_data', compact($vars)));

if ($mode == 'edit')
{
$original_poll_data = array(
Expand Down
2 changes: 2 additions & 0 deletions phpBB/styles/prosilver/template/posting_attach_body.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,12 @@
<tr class="attach-row" data-attach-id="{attach_row.ATTACH_ID}">
<td class="attach-name">
<span class="file-name ellipsis-text"><a href="{attach_row.U_VIEW_ATTACHMENT}">{attach_row.FILENAME}</a></span>
<!-- EVENT posting_attach_body_attach_row_controls_prepend -->
<span class="attach-controls">
<!-- IF S_INLINE_ATTACHMENT_OPTIONS --><input type="button" value="{L_PLACE_INLINE}" class="button2 file-inline-bbcode" />&nbsp; <!-- ENDIF -->
<input type="submit" name="delete_file[{attach_row.ASSOC_INDEX}]" value="{L_DELETE_FILE}" class="button2 file-delete" />
</span>
<!-- EVENT posting_attach_body_attach_row_controls_append -->
<span class="clear"></span>
</td>
<td class="attach-comment">
Expand Down
10 changes: 10 additions & 0 deletions phpBB/viewforum.php
Original file line number Diff line number Diff line change
Expand Up @@ -993,6 +993,16 @@
}
}

/**
* This event is to perform additional actions on viewforum page
*
* @event core.viewforum_generate_page_after
* @var array forum_data Array with the forum data
* @since 3.2.2-RC1
*/
$vars = array('forum_data');
extract($phpbb_dispatcher->trigger_event('core.viewforum_generate_page_after', compact($vars)));

// This is rather a fudge but it's the best I can think of without requiring information
// on all topics (as we do in 2.0.x). It looks for unread or new topics, if it doesn't find
// any it updates the forum last read cookie. This requires that the user visit the forum
Expand Down

0 comments on commit 0755ae4

Please sign in to comment.