mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-30 21:40:43 +02:00
Merge branch 'develop' of git://github.com/phpbb/phpbb3 into ticket/8323
Conflicts: phpBB/viewtopic.php
This commit is contained in:
@@ -450,7 +450,9 @@ $viewtopic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&a
|
||||
// Are we watching this topic?
|
||||
$s_watching_topic = array(
|
||||
'link' => '',
|
||||
'link_toggle' => '',
|
||||
'title' => '',
|
||||
'title_toggle' => '',
|
||||
'is_watching' => false,
|
||||
);
|
||||
|
||||
@@ -544,9 +546,6 @@ foreach($quickmod_array as $option => $qm_ary)
|
||||
}
|
||||
}
|
||||
|
||||
// If we've got a hightlight set pass it on to pagination.
|
||||
$pagination = generate_pagination(append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id" . ((strlen($u_sort_param)) ? "&$u_sort_param" : '') . (($highlight_match) ? "&hilit=$highlight" : '')), $total_posts, $config['posts_per_page'], $start);
|
||||
|
||||
// Navigation links
|
||||
generate_forum_nav($topic_data);
|
||||
|
||||
@@ -584,6 +583,10 @@ if (!empty($_EXTRA_URL))
|
||||
}
|
||||
}
|
||||
|
||||
// If we've got a hightlight set pass it on to pagination.
|
||||
$base_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id" . ((strlen($u_sort_param)) ? "&$u_sort_param" : '') . (($highlight_match) ? "&hilit=$highlight" : ''));
|
||||
phpbb_generate_template_pagination($template, $base_url, 'pagination', 'start', $total_posts, $config['posts_per_page'], $start);
|
||||
|
||||
// Send vars to template
|
||||
$template->assign_vars(array(
|
||||
'FORUM_ID' => $forum_id,
|
||||
@@ -597,11 +600,10 @@ $template->assign_vars(array(
|
||||
'TOPIC_AUTHOR_COLOUR' => get_username_string('colour', $topic_data['topic_poster'], $topic_data['topic_first_poster_name'], $topic_data['topic_first_poster_colour']),
|
||||
'TOPIC_AUTHOR' => get_username_string('username', $topic_data['topic_poster'], $topic_data['topic_first_poster_name'], $topic_data['topic_first_poster_colour']),
|
||||
|
||||
'PAGINATION' => $pagination,
|
||||
'PAGE_NUMBER' => on_page($total_posts, $config['posts_per_page'], $start),
|
||||
'PAGE_NUMBER' => phpbb_on_page($template, $user, $base_url, $total_posts, $config['posts_per_page'], $start),
|
||||
'TOTAL_POSTS' => $user->lang('VIEW_TOPIC_POSTS', (int) $total_posts),
|
||||
'U_MCP' => ($auth->acl_get('m_', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", "i=main&mode=topic_view&f=$forum_id&t=$topic_id" . (($start == 0) ? '' : "&start=$start") . ((strlen($u_sort_param)) ? "&$u_sort_param" : ''), true, $user->session_id) : '',
|
||||
'MODERATORS' => (isset($forum_moderators[$forum_id]) && sizeof($forum_moderators[$forum_id])) ? implode(', ', $forum_moderators[$forum_id]) : '',
|
||||
'MODERATORS' => (isset($forum_moderators[$forum_id]) && sizeof($forum_moderators[$forum_id])) ? implode($user->lang['COMMA_SEPARATOR'], $forum_moderators[$forum_id]) : '',
|
||||
|
||||
'POST_IMG' => ($topic_data['forum_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', 'FORUM_LOCKED') : $user->img('button_topic_new', 'POST_NEW_TOPIC'),
|
||||
'QUOTE_IMG' => $user->img('icon_post_quote', 'REPLY_WITH_QUOTE'),
|
||||
@@ -650,13 +652,15 @@ $template->assign_vars(array(
|
||||
'U_PRINT_TOPIC' => ($auth->acl_get('f_print', $forum_id)) ? $viewtopic_url . '&view=print' : '',
|
||||
'U_EMAIL_TOPIC' => ($auth->acl_get('f_email', $forum_id) && $config['email_enable']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=email&t=$topic_id") : '',
|
||||
|
||||
'U_WATCH_TOPIC' => $s_watching_topic['link'],
|
||||
'L_WATCH_TOPIC' => $s_watching_topic['title'],
|
||||
'U_WATCH_TOPIC' => $s_watching_topic['link'],
|
||||
'U_WATCH_TOPIC_TOGGLE' => $s_watching_topic['link_toggle'],
|
||||
'S_WATCH_TOPIC_TITLE' => $s_watching_topic['title'],
|
||||
'S_WATCH_TOPIC_TOGGLE' => $s_watching_topic['title_toggle'],
|
||||
'S_WATCHING_TOPIC' => $s_watching_topic['is_watching'],
|
||||
|
||||
'U_BOOKMARK_TOPIC' => ($user->data['is_registered'] && $config['allow_bookmarks']) ? $viewtopic_url . '&bookmark=1&hash=' . generate_link_hash("topic_$topic_id") : '',
|
||||
'L_BOOKMARK_TOPIC' => ($user->data['is_registered'] && $config['allow_bookmarks'] && $topic_data['bookmarked']) ? $user->lang['BOOKMARK_TOPIC_REMOVE'] : $user->lang['BOOKMARK_TOPIC'],
|
||||
'L_BOOKMARK_TOPIC_REAL' => $user->lang['BOOKMARK_TOPIC'],
|
||||
'S_BOOKMARK_TOPIC' => ($user->data['is_registered'] && $config['allow_bookmarks'] && $topic_data['bookmarked']) ? $user->lang['BOOKMARK_TOPIC_REMOVE'] : $user->lang['BOOKMARK_TOPIC'],
|
||||
'S_BOOKMARK_TOGGLE' => (!$user->data['is_registered'] || !$config['allow_bookmarks'] || !$topic_data['bookmarked']) ? $user->lang['BOOKMARK_TOPIC_REMOVE'] : $user->lang['BOOKMARK_TOPIC'],
|
||||
'S_BOOKMARKED_TOPIC' => ($user->data['is_registered'] && $config['allow_bookmarks'] && $topic_data['bookmarked']) ? true : false,
|
||||
|
||||
'U_POST_NEW_TOPIC' => ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=post&f=$forum_id") : '',
|
||||
@@ -984,10 +988,21 @@ $sql_ary = array(
|
||||
AND u.user_id = p.poster_id',
|
||||
);
|
||||
|
||||
/**
|
||||
* Event to modify the SQL query before the post and poster data is retrieved
|
||||
*
|
||||
* @event core.viewtopic_get_post_data
|
||||
* @var array sql_ary The SQL array to get the data of posts and posters
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('sql_ary');
|
||||
extract($phpbb_dispatcher->trigger_event('core.viewtopic_get_post_data', compact($vars)));
|
||||
|
||||
$sql = $db->sql_build_query('SELECT', $sql_ary);
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$now = phpbb_gmgetdate(time() + $user->timezone + $user->dst);
|
||||
$now = $user->create_datetime();
|
||||
$now = phpbb_gmgetdate($now->getTimestamp() + $now->getOffset());
|
||||
|
||||
// Posts are stored in the $rowset array while $attach_list, $user_cache
|
||||
// and the global bbcode_bitfield are built
|
||||
@@ -1059,7 +1074,7 @@ while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
if ($poster_id == ANONYMOUS)
|
||||
{
|
||||
$user_cache[$poster_id] = array(
|
||||
$user_cache_data = array(
|
||||
'joined' => '',
|
||||
'posts' => '',
|
||||
'from' => '',
|
||||
@@ -1094,6 +1109,20 @@ while ($row = $db->sql_fetchrow($result))
|
||||
'allow_pm' => 0,
|
||||
);
|
||||
|
||||
/**
|
||||
* Modify the guest user's data displayed with the posts
|
||||
*
|
||||
* @event core.viewtopic_cache_guest_data
|
||||
* @var array user_cache_data Array with the user's data
|
||||
* @var int poster_id Poster's user id
|
||||
* @var array row Array with original user and post data
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('user_cache_data', 'poster_id', 'row');
|
||||
extract($phpbb_dispatcher->trigger_event('core.viewtopic_cache_guest_data', compact($vars)));
|
||||
|
||||
$user_cache[$poster_id] = $user_cache_data;
|
||||
|
||||
get_user_rank($row['user_rank'], false, $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);
|
||||
}
|
||||
else
|
||||
@@ -1108,7 +1137,7 @@ while ($row = $db->sql_fetchrow($result))
|
||||
|
||||
$id_cache[] = $poster_id;
|
||||
|
||||
$user_cache[$poster_id] = array(
|
||||
$user_cache_data = array(
|
||||
'user_type' => $row['user_type'],
|
||||
'user_inactive_reason' => $row['user_inactive_reason'],
|
||||
|
||||
@@ -1149,6 +1178,20 @@ while ($row = $db->sql_fetchrow($result))
|
||||
'author_profile' => get_username_string('profile', $poster_id, $row['username'], $row['user_colour']),
|
||||
);
|
||||
|
||||
/**
|
||||
* Modify the users' data displayed with their posts
|
||||
*
|
||||
* @event core.viewtopic_cache_user_data
|
||||
* @var array user_cache_data Array with the user's data
|
||||
* @var int poster_id Poster's user id
|
||||
* @var array row Array with original user and post data
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('user_cache_data', 'poster_id', 'row');
|
||||
extract($phpbb_dispatcher->trigger_event('core.viewtopic_cache_user_data', compact($vars)));
|
||||
|
||||
$user_cache[$poster_id] = $user_cache_data;
|
||||
|
||||
get_user_rank($row['user_rank'], $row['user_posts'], $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);
|
||||
|
||||
if ((!empty($row['user_allow_viewemail']) && $auth->acl_get('u_sendemail')) || $auth->acl_get('a_email'))
|
||||
@@ -1313,6 +1356,16 @@ if (sizeof($attach_list))
|
||||
}
|
||||
}
|
||||
|
||||
$template->assign_vars(array(
|
||||
'S_HAS_ATTACHMENTS' => !empty($attachments),
|
||||
));
|
||||
|
||||
$methods = phpbb_gen_download_links('topic_id', $topic_id, $phpbb_root_path, $phpEx);
|
||||
foreach ($methods as $method)
|
||||
{
|
||||
$template->assign_block_vars('dl_method', $method);
|
||||
}
|
||||
|
||||
// Instantiate BBCode if need be
|
||||
if ($bbcode_bitfield !== '')
|
||||
{
|
||||
@@ -1508,7 +1561,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
|
||||
) ? true : false;
|
||||
|
||||
//
|
||||
$postrow = array(
|
||||
$post_row = array(
|
||||
'POST_AUTHOR_FULL' => ($poster_id != ANONYMOUS) ? $user_cache[$poster_id]['author_full'] : get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
|
||||
'POST_AUTHOR_COLOUR' => ($poster_id != ANONYMOUS) ? $user_cache[$poster_id]['author_colour'] : get_username_string('colour', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
|
||||
'POST_AUTHOR' => ($poster_id != ANONYMOUS) ? $user_cache[$poster_id]['author_username'] : get_username_string('username', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),
|
||||
@@ -1571,6 +1624,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
|
||||
'POSTER_ID' => $poster_id,
|
||||
|
||||
'S_HAS_ATTACHMENTS' => (!empty($attachments[$row['post_id']])) ? true : false,
|
||||
'S_MULTIPLE_ATTACHMENTS' => !empty($attachments[$row['post_id']]) && sizeof($attachments[$row['post_id']]) > 1,
|
||||
'S_POST_UNAPPROVED' => ($row['post_approved']) ? false : true,
|
||||
'S_POST_REPORTED' => ($row['post_reported'] && $auth->acl_get('m_report', $forum_id)) ? true : false,
|
||||
'S_DISPLAY_NOTICE' => $display_notice && $row['post_attachment'],
|
||||
@@ -1584,13 +1638,28 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
|
||||
'L_IGNORE_POST' => ($row['hide_post']) ? sprintf($user->lang['POST_BY_FOE'], get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), '<a href="' . $viewtopic_url . "&p={$row['post_id']}&view=show#p{$row['post_id']}" . '">', '</a>') : '',
|
||||
);
|
||||
|
||||
$user_poster_data = $user_cache[$poster_id];
|
||||
|
||||
/**
|
||||
* Modify the posts template block
|
||||
*
|
||||
* @event core.viewtopic_modify_post_row
|
||||
* @var array row Array with original post and user data
|
||||
* @var array cp_row Custom profile field data of the poster
|
||||
* @var array user_poster_data Poster's data from user cache
|
||||
* @var array post_row Template block array of the post
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('row', 'cp_row', 'user_poster_data', 'post_row');
|
||||
extract($phpbb_dispatcher->trigger_event('core.viewtopic_modify_post_row', compact($vars)));
|
||||
|
||||
if (isset($cp_row['row']) && sizeof($cp_row['row']))
|
||||
{
|
||||
$postrow = array_merge($postrow, $cp_row['row']);
|
||||
$post_row = array_merge($post_row, $cp_row['row']);
|
||||
}
|
||||
|
||||
// Dump vars into template
|
||||
$template->assign_block_vars('postrow', $postrow);
|
||||
$template->assign_block_vars('postrow', $post_row);
|
||||
|
||||
if (!empty($cp_row['blockrow']))
|
||||
{
|
||||
@@ -1609,6 +1678,12 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
|
||||
'DISPLAY_ATTACHMENT' => $attachment)
|
||||
);
|
||||
}
|
||||
|
||||
$methods = phpbb_gen_download_links('post_msg_id', $row['post_id'], $phpbb_root_path, $phpEx);
|
||||
foreach ($methods as $method)
|
||||
{
|
||||
$template->assign_block_vars('postrow.dl_method', $method);
|
||||
}
|
||||
}
|
||||
|
||||
$prev_post_id = $row['post_id'];
|
||||
@@ -1744,8 +1819,23 @@ if (!request_var('t', 0) && !empty($topic_id))
|
||||
$request->overwrite('t', $topic_id);
|
||||
}
|
||||
|
||||
$page_title = $topic_data['topic_title'] . ($start ? ' - ' . sprintf($user->lang['PAGE_TITLE_NUMBER'], floor($start / $config['posts_per_page']) + 1) : '');
|
||||
|
||||
/**
|
||||
* You can use this event to modify the page title of the viewtopic page
|
||||
*
|
||||
* @event core.viewtopic_modify_page_title
|
||||
* @var string page_title Title of the index page
|
||||
* @var array topic_data Array with topic data
|
||||
* @var int forum_id Forum ID of the topic
|
||||
* @var int start Start offset used to calculate the page
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('page_title', 'topic_data', 'forum_id', 'start');
|
||||
extract($phpbb_dispatcher->trigger_event('core.viewtopic_modify_page_title', compact($vars)));
|
||||
|
||||
// Output the page
|
||||
page_header($topic_data['topic_title'] . ($start ? ' - ' . sprintf($user->lang['PAGE_TITLE_NUMBER'], floor($start / $config['posts_per_page']) + 1) : ''), true, $forum_id);
|
||||
page_header($page_title, true, $forum_id);
|
||||
|
||||
$template->set_filenames(array(
|
||||
'body' => ($view == 'print') ? 'viewtopic_print.html' : 'viewtopic_body.html')
|
||||
|
Reference in New Issue
Block a user