aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrxu <rxu@mail.ru>2017-08-16 21:57:11 +0700
committerrxu <rxu@mail.ru>2017-08-16 22:38:34 +0700
commit68c3a0307de19fdefd7ae716247fffea3ee30c0c (patch)
treeafd71fa73e5ca48d7655eac68cea6517bffc8712
parent1e605efaf126f5474bb1be99e7fdaed834ebb2a0 (diff)
downloadforums-68c3a0307de19fdefd7ae716247fffea3ee30c0c.tar
forums-68c3a0307de19fdefd7ae716247fffea3ee30c0c.tar.gz
forums-68c3a0307de19fdefd7ae716247fffea3ee30c0c.tar.bz2
forums-68c3a0307de19fdefd7ae716247fffea3ee30c0c.tar.xz
forums-68c3a0307de19fdefd7ae716247fffea3ee30c0c.zip
[ticket/15324] Add more core and template events
PHPBB3-15324
-rw-r--r--phpBB/docs/events.md14
-rw-r--r--phpBB/includes/functions_posting.php20
-rw-r--r--phpBB/includes/functions_user.php4
-rw-r--r--phpBB/includes/message_parser.php30
-rw-r--r--phpBB/memberlist.php18
-rw-r--r--phpBB/posting.php21
-rw-r--r--phpBB/styles/prosilver/template/posting_attach_body.html2
-rw-r--r--phpBB/viewforum.php10
8 files changed, 112 insertions, 7 deletions
diff --git a/phpBB/docs/events.md b/phpBB/docs/events.md
index 8bece6465e..930d540c89 100644
--- a/phpBB/docs/events.md
+++ b/phpBB/docs/events.md
@@ -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:
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index afa4bb56c4..d9f395efb3 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -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(
@@ -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)
@@ -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'],
@@ -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);
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index 3dd4b3c2e5..c746bd0e4c 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -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
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php
index d6e36fec39..d397c0084e 100644
--- a/phpBB/includes/message_parser.php
+++ b/phpBB/includes/message_parser.php
@@ -1530,7 +1530,7 @@ class parse_message extends bbcode_firstpass
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();
@@ -1598,6 +1598,20 @@ class parse_message extends bbcode_firstpass
);
$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);
@@ -1719,6 +1733,20 @@ class parse_message extends bbcode_firstpass
);
$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);
diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php
index b4bf92836f..985b45acf7 100644
--- a/phpBB/memberlist.php
+++ b/phpBB/memberlist.php
@@ -1579,7 +1579,7 @@ switch ($mode)
$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']),
@@ -1604,8 +1604,22 @@ switch ($mode)
'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
diff --git a/phpBB/posting.php b/phpBB/posting.php
index 5dc59fea6d..02bf1c1d07 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -547,6 +547,27 @@ if ($post_data['poll_start'])
$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(
diff --git a/phpBB/styles/prosilver/template/posting_attach_body.html b/phpBB/styles/prosilver/template/posting_attach_body.html
index 618ac95656..444713d6e0 100644
--- a/phpBB/styles/prosilver/template/posting_attach_body.html
+++ b/phpBB/styles/prosilver/template/posting_attach_body.html
@@ -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">
diff --git a/phpBB/viewforum.php b/phpBB/viewforum.php
index dff965a1ee..9cc75988f7 100644
--- a/phpBB/viewforum.php
+++ b/phpBB/viewforum.php
@@ -993,6 +993,16 @@ if (sizeof($topic_list))
}
}
+/**
+* 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