phpBB

Code Changes

File: search.php

  Unmodified   Added   Modified   Removed
Line 47Line 47
$sort_key		= $request->variable('sk', 't');
$sort_dir = $request->variable('sd', 'd');


$sort_key		= $request->variable('sk', 't');
$sort_dir = $request->variable('sd', 'd');


$return_chars	= $request->variable('ch', ($topic_id) ? -1 : 300);

$return_chars	= $request->variable('ch', $topic_id ? 0 : (int) $config['default_search_return_chars']);

$search_forum	= $request->variable('fid', array(0));

// We put login boxes for the case if search_id is newposts, egosearch or unreadposts

$search_forum	= $request->variable('fid', array(0));

// We put login boxes for the case if search_id is newposts, egosearch or unreadposts

Line 337Line 337
	}

// define some variables needed for retrieving post_id/topic_id information

	}

// define some variables needed for retrieving post_id/topic_id information

	$sort_by_sql = array('a' => 'u.username_clean', 't' => (($show_results == 'posts') ? 'p.post_time' : 't.topic_last_post_time'), 'f' => 'f.forum_id', 'i' => 't.topic_title', 's' => (($show_results == 'posts') ? 'p.post_subject' : 't.topic_title'));







	$sort_by_sql = [
'a' => 'u.username_clean',
't' => (($show_results == 'posts') ? 'p.post_time' : 't.topic_last_post_time'),
'f' => 'f.forum_id',
'i' => 't.topic_title',
's' => (($show_results == 'posts') ? 'p.post_subject' : 't.topic_title')
];


/**
* Event to modify the SQL parameters before pre-made searches


/**
* Event to modify the SQL parameters before pre-made searches

Line 403Line 409
				$sql_sort = 'ORDER BY ' . $sort_by_sql[$sort_key] . (($sort_dir == 'a') ? ' ASC' : ' DESC');

$sort_join = ($sort_key == 'f') ? FORUMS_TABLE . ' f, ' : '';

				$sql_sort = 'ORDER BY ' . $sort_by_sql[$sort_key] . (($sort_dir == 'a') ? ' ASC' : ' DESC');

$sort_join = ($sort_key == 'f') ? FORUMS_TABLE . ' f, ' : '';

				$sql_sort = ($sort_key == 'f') ? ' AND f.forum_id = p.forum_id ' . $sql_sort : $sql_sort;

				$sql_sort = ($sort_key == 'f') ? ' AND f.forum_id = t.forum_id ' . $sql_sort : $sql_sort;


if ($sort_days)
{


if ($sort_days)
{

					$last_post_time = 'AND p.post_time > ' . (time() - ($sort_days * 24 * 3600));

					$last_post_time = 'AND ' . ($show_results == 'posts' ? 'p.post_time' : 't.topic_last_post_time') . ' > ' . (time() - ($sort_days * 24 * 3600));

				}
else
{

				}
else
{

Line 417Line 423
				if ($sort_key == 'a')
{
$sort_join = USERS_TABLE . ' u, ';

				if ($sort_key == 'a')
{
$sort_join = USERS_TABLE . ' u, ';

					$sql_sort = ' AND u.user_id = p.poster_id ' . $sql_sort;

					$sql_sort = ' AND u.user_id = ' . ($show_results == 'posts' ? 'p.poster_id ' : 't.topic_last_poster_id ') . $sql_sort;

				}
if ($show_results == 'posts')
{

				}
if ($show_results == 'posts')
{

Line 433Line 439
				}
else
{

				}
else
{

					$sql = 'SELECT DISTINCT ' . $sort_by_sql[$sort_key] . ", p.topic_id
FROM $sort_join" . POSTS_TABLE . ' p, ' . TOPICS_TABLE . " t

					$sql = 'SELECT DISTINCT ' . $sort_by_sql[$sort_key] . ", t.topic_id
FROM $sort_join" . TOPICS_TABLE . " t

						WHERE t.topic_posts_approved = 1
AND t.topic_moved_id = 0

						WHERE t.topic_posts_approved = 1
AND t.topic_moved_id = 0

							AND p.topic_id = t.topic_id

 
							$last_post_time
AND $m_approve_topics_fid_sql

							$last_post_time
AND $m_approve_topics_fid_sql

							" . ((count($ex_fid_ary)) ? ' AND ' . $db->sql_in_set('p.forum_id', $ex_fid_ary, true) : '') . "

							" . ((count($ex_fid_ary)) ? ' AND ' . $db->sql_in_set('t.forum_id', $ex_fid_ary, true) : '') . "

						$sql_sort";
$field = 'topic_id';
}

						$sql_sort";
$field = 'topic_id';
}

Line 678Line 683
	$hilit = phpbb_clean_search_string(str_replace(array('+', '-', '|', '(', ')', '"'), ' ', $keywords));
$hilit = str_replace(' ', '|', $hilit);


	$hilit = phpbb_clean_search_string(str_replace(array('+', '-', '|', '(', ')', '"'), ' ', $keywords));
$hilit = str_replace(' ', '|', $hilit);


	$u_hilit = urlencode(htmlspecialchars_decode(str_replace('|', ' ', $hilit)));

	$u_hilit = urlencode(html_entity_decode(str_replace('|', ' ', $hilit), ENT_COMPAT));

	$u_show_results = '&sr=' . $show_results;
$u_search_forum = implode('&fid%5B%5D=', $search_forum);

$u_search = append_sid("{$phpbb_root_path}search.$phpEx", $u_sort_param . $u_show_results);
$u_search .= ($search_id) ? '&search_id=' . $search_id : '';

	$u_show_results = '&sr=' . $show_results;
$u_search_forum = implode('&fid%5B%5D=', $search_forum);

$u_search = append_sid("{$phpbb_root_path}search.$phpEx", $u_sort_param . $u_show_results);
$u_search .= ($search_id) ? '&search_id=' . $search_id : '';

	$u_search .= ($u_hilit) ? '&keywords=' . urlencode(htmlspecialchars_decode($keywords)) : '';

	$u_search .= ($u_hilit) ? '&keywords=' . urlencode(html_entity_decode($keywords, ENT_COMPAT)) : '';

	$u_search .= ($search_terms != 'all') ? '&terms=' . $search_terms : '';
$u_search .= ($topic_id) ? '&t=' . $topic_id : '';

	$u_search .= ($search_terms != 'all') ? '&terms=' . $search_terms : '';
$u_search .= ($topic_id) ? '&t=' . $topic_id : '';

	$u_search .= ($author) ? '&author=' . urlencode(htmlspecialchars_decode($author)) : '';

	$u_search .= ($author) ? '&author=' . urlencode(html_entity_decode($author, ENT_COMPAT)) : '';

	$u_search .= ($author_id) ? '&author_id=' . $author_id : '';
$u_search .= ($u_search_forum) ? '&fid%5B%5D=' . $u_search_forum : '';
$u_search .= (!$search_child) ? '&sc=0' : '';
$u_search .= ($search_fields != 'all') ? '&sf=' . $search_fields : '';

	$u_search .= ($author_id) ? '&author_id=' . $author_id : '';
$u_search .= ($u_search_forum) ? '&fid%5B%5D=' . $u_search_forum : '';
$u_search .= (!$search_child) ? '&sc=0' : '';
$u_search .= ($search_fields != 'all') ? '&sf=' . $search_fields : '';

	$u_search .= ($return_chars != 300) ? '&ch=' . $return_chars : '';

	$u_search .= $return_chars !== (int) $config['default_search_return_chars'] ? '&ch=' . $return_chars : '';


/**
* Event to add or modify search URL parameters


/**
* Event to add or modify search URL parameters

Line 975Line 980
					strip_bbcode($text_only_message, $row['bbcode_uid']);
}


					strip_bbcode($text_only_message, $row['bbcode_uid']);
}


				if ($return_chars == -1 || utf8_strlen($text_only_message) < ($return_chars + 3))

				if ($return_chars === 0 || utf8_strlen($text_only_message) < ($return_chars + 3))

				{
$row['display_text_only'] = false;


				{
$row['display_text_only'] = false;


Line 1076Line 1081
			$topic_title = censor_text($row['topic_title']);
$replies = $phpbb_content_visibility->get_count('topic_posts', $row, $forum_id) - 1;


			$topic_title = censor_text($row['topic_title']);
$replies = $phpbb_content_visibility->get_count('topic_posts', $row, $forum_id) - 1;


			$view_topic_url_params = "f=$forum_id&amp;t=$result_topic_id" . (($u_hilit) ? "&amp;hilit=$u_hilit" : '');

			$view_topic_url_params = "t=$result_topic_id" . (($u_hilit) ? "&amp;hilit=$u_hilit" : '');

			$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params);

			$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params);

 

$folder_img = $folder_alt = $u_mcp_queue = '';
$topic_type = $posts_unapproved = 0;
$unread_topic = $topic_unapproved = $topic_deleted = false;


if ($show_results == 'topics')
{


if ($show_results == 'topics')
{

Line 1086Line 1095
					$row['topic_posted'] = 1;
}


					$row['topic_posted'] = 1;
}


				$folder_img = $folder_alt = $topic_type = '';

 
				topic_status($row, $replies, (isset($topic_tracking_info[$forum_id][$row['topic_id']]) && $row['topic_last_post_time'] > $topic_tracking_info[$forum_id][$row['topic_id']]) ? true : false, $folder_img, $folder_alt, $topic_type);

$unread_topic = (isset($topic_tracking_info[$forum_id][$row['topic_id']]) && $row['topic_last_post_time'] > $topic_tracking_info[$forum_id][$row['topic_id']]) ? true : false;

				topic_status($row, $replies, (isset($topic_tracking_info[$forum_id][$row['topic_id']]) && $row['topic_last_post_time'] > $topic_tracking_info[$forum_id][$row['topic_id']]) ? true : false, $folder_img, $folder_alt, $topic_type);

$unread_topic = (isset($topic_tracking_info[$forum_id][$row['topic_id']]) && $row['topic_last_post_time'] > $topic_tracking_info[$forum_id][$row['topic_id']]) ? true : false;

Line 1136Line 1144
					'S_TOPIC_DELETED'		=> $topic_deleted,
'S_HAS_POLL' => ($row['poll_start']) ? true : false,


					'S_TOPIC_DELETED'		=> $topic_deleted,
'S_HAS_POLL' => ($row['poll_start']) ? true : false,


					'U_LAST_POST'			=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&amp;p=' . $row['topic_last_post_id']) . '#p' . $row['topic_last_post_id'],

					'U_LAST_POST'			=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p=' . $row['topic_last_post_id']) . '#p' . $row['topic_last_post_id'],

					'U_LAST_POST_AUTHOR'	=> get_username_string('profile', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
'U_TOPIC_AUTHOR' => get_username_string('profile', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
'U_NEWEST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&amp;view=unread') . '#unread',

					'U_LAST_POST_AUTHOR'	=> get_username_string('profile', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
'U_TOPIC_AUTHOR' => get_username_string('profile', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
'U_NEWEST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&amp;view=unread') . '#unread',

Line 1211Line 1219

'U_VIEW_TOPIC' => $view_topic_url,
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id),


'U_VIEW_TOPIC' => $view_topic_url,
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id),

				'U_VIEW_POST'		=> (!empty($row['post_id'])) ? append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=" . $row['topic_id'] . '&amp;p=' . $row['post_id'] . (($u_hilit) ? '&amp;hilit=' . $u_hilit : '')) . '#p' . $row['post_id'] : '',

				'U_VIEW_POST'		=> (!empty($row['post_id'])) ? append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p=' . $row['post_id'] . (($u_hilit) ? '&amp;hilit=' . $u_hilit : '')) . '#p' . $row['post_id'] : '',

			));

/**

			));

/**

Line 1472Line 1480
	trigger_error('NO_SEARCH');
}


	trigger_error('NO_SEARCH');
}


// Number of chars returned
$s_characters = '<option value="-1">' . $user->lang['ALL_AVAILABLE'] . '</option>';
$s_characters .= '<option value="0">0</option>';
$s_characters .= '<option value="25">25</option>';
$s_characters .= '<option value="50">50</option>';












/**
* Build options for a select list for the number of characters returned.
*
* If the admin defined amount is not within the predefined range,
* and the admin did not set it to unlimited (0), we add that option aswell.
*
* @deprecated 3.3.1-RC1 Templates should use an numeric input, in favor of a select.
*/
$s_characters = '<option value="0">' . $language->lang('ALL_AVAILABLE') . '</option>';
$i_characters = array_merge([25, 50], range(100, 1000, 100));

if ($config['default_search_return_chars'] && !in_array((int) $config['default_search_return_chars'], $i_characters))
{
$i_characters[] = (int) $config['default_search_return_chars'];
sort($i_characters);
}





for ($i = 100; $i <= 1000; $i += 100)

foreach ($i_characters as $i)

{

{

	$selected = ($i == 300) ? ' selected="selected"' : '';
$s_characters .= '<option value="' . $i . '"' . $selected . '>' . $i . '</option>';

	$selected = $i === (int) $config['default_search_return_chars'] ? ' selected="selected"' : '';
$s_characters .= sprintf('<option value="%1$s"%2$s>%1$s</option>', $i, $selected);

}

$s_hidden_fields = array('t' => $topic_id);

}

$s_hidden_fields = array('t' => $topic_id);

Line 1501Line 1520
}

$template->assign_vars(array(

}

$template->assign_vars(array(

 
	'DEFAULT_RETURN_CHARS'	=> (int) $config['default_search_return_chars'],

	'S_SEARCH_ACTION'		=> append_sid("{$phpbb_root_path}search.$phpEx", false, true, 0), // We force no ?sid= appending by using 0
'S_HIDDEN_FIELDS' => build_hidden_fields($s_hidden_fields),
'S_CHARACTER_OPTIONS' => $s_characters,

	'S_SEARCH_ACTION'		=> append_sid("{$phpbb_root_path}search.$phpEx", false, true, 0), // We force no ?sid= appending by using 0
'S_HIDDEN_FIELDS' => build_hidden_fields($s_hidden_fields),
'S_CHARACTER_OPTIONS' => $s_characters,

Line 1549Line 1569
			'KEYWORDS'	=> $keywords,
'TIME' => $user->format_date($row['search_time']),


			'KEYWORDS'	=> $keywords,
'TIME' => $user->format_date($row['search_time']),


			'U_KEYWORDS'	=> append_sid("{$phpbb_root_path}search.$phpEx", 'keywords=' . urlencode(htmlspecialchars_decode($keywords)))

			'U_KEYWORDS'	=> append_sid("{$phpbb_root_path}search.$phpEx", 'keywords=' . urlencode(html_entity_decode($keywords, ENT_COMPAT)))

		));
}
$db->sql_freeresult($result);

		));
}
$db->sql_freeresult($result);