/**
 * Displays the search results page.
 */
function template_results()
{
    global $context, $settings, $options, $txt, $scripturl, $message;
    // Let them know if we ignored a word in the search
    if (!empty($context['search_ignored'])) {
        echo '
		<div id="search_results">
			<h3 class="category_header">
				', $txt['generic_warning'], '
			</h3>
			<p class="warningbox">', $txt['search_warning_ignored_word' . (count($context['search_ignored']) == 1 ? '' : 's')], ': ', implode(', ', $context['search_ignored']), '</p>
		</div>';
    }
    // Or perhaps they made a spelling error, lets give them a hint
    if (isset($context['did_you_mean']) || empty($context['topics'])) {
        echo '
			<div id="search_results">
				<h2 class="category_header">', $txt['search_adjust_query'], '</h2>
				<div class="roundframe">';
        // Did they make any typos or mistakes, perhaps?
        if (isset($context['did_you_mean'])) {
            echo '
					<p>', $txt['search_did_you_mean'], ' <a href="', $scripturl, '?action=search;sa=results;params=', $context['did_you_mean_params'], '">', $context['did_you_mean'], '</a>.</p>';
        }
        echo '
					<form action="', $scripturl, '?action=search;sa=results" method="post" accept-charset="UTF-8">
						<dl class="settings">
							<dt class="righttext">
								<label for="search"><strong>', $txt['search_for'], ':</strong></label>
							</dt>
							<dd>
								<input type="text" id="search" name="search" value="', $context['search_params']['search'], '" maxlength="', $context['search_string_limit'], '" size="40" class="input_text" />
							</dd>
						</dl>
						<div class="submitbutton" >
							<input type="submit" name="edit_search" value="', $txt['search_adjust_submit'], '" class="button_submit" />
							<input type="hidden" name="searchtype" value="', $context['search_params']['searchtype'], '" />
							<input type="hidden" name="userspec" value="', $context['search_params']['userspec'], '" />
							<input type="hidden" name="show_complete" value="', $context['search_params']['show_complete'], '" />
							<input type="hidden" name="subject_only" value="', $context['search_params']['subject_only'], '" />
							<input type="hidden" name="minage" value="', $context['search_params']['minage'], '" />
							<input type="hidden" name="maxage" value="', $context['search_params']['maxage'], '" />
							<input type="hidden" name="sort" value="', $context['search_params']['sort'], '" />
						</div>';
        if (!empty($context['search_params']['brd'])) {
            foreach ($context['search_params']['brd'] as $board_id) {
                echo '
						<input type="hidden" name="brd[', $board_id, ']" value="', $board_id, '" />';
            }
        }
        echo '
					</form>
				</div>
			</div>
			<br />';
    }
    // Quick moderation set to checkboxes? Oh, how fun :/.
    if (!empty($options['display_quick_mod']) && $options['display_quick_mod'] == 1) {
        echo '
			<form action="', $scripturl, '?action=quickmod" method="post" accept-charset="UTF-8" name="topicForm" id="topicForm" class="search_results_posts', $context['compact'] ? ' compact_view' : '', '">';
    }
    echo '
				<h3 class="category_header hdicon cat_img_search">
					<span class="floatright">';
    if (!empty($options['display_quick_mod']) && $options['display_quick_mod'] == 1) {
        echo '
						<input type="checkbox" onclick="invertAll(this, this.form, \'topics[]\');" class="input_check" />';
    }
    echo '
					</span>
					', $txt['mlist_search_results'], ':&nbsp;', $context['search_params']['search'], '
				</h3>';
    // Was anything even found?
    if (!empty($context['topics'])) {
        template_pagesection();
    } else {
        echo '
				<div class="roundframe">', $txt['find_no_results'], '</div>';
    }
    if ($context['compact']) {
        echo '
				<ul class="topic_listing compact_view search_results_posts">';
    } else {
        echo '
				<ul class="core_posts topic_listing search_results_posts">';
    }
    // While we have results to show ...
    $controller = $context['get_topics'][0];
    while ($topic = $controller->{$context['get_topics'][1]}()) {
        if ($context['compact']) {
            // We start with locked and sticky topics.
            if ($topic['is_sticky'] && $topic['is_locked']) {
                $color_class = 'locked_row sticky_row';
            } elseif ($topic['is_sticky']) {
                $color_class = 'sticky_row';
            } elseif ($topic['is_locked']) {
                $color_class = 'locked_row';
            } else {
                $color_class = 'basic_row';
            }
        } else {
            $color_class = $message['alternate'] == 0 ? 'windowbg' : 'windowbg2';
        }
        foreach ($topic['matches'] as $message) {
            echo '
					<li class="', $color_class, '">
						<div class="topic_details">
							<div class="counter">', $message['counter'], '</div>
							<h5>', $topic['board']['link'], ' / <a href="', $scripturl, '?topic=', $topic['id'], '.msg', $message['id'], '#msg', $message['id'], '">', $message['subject_highlighted'], '</a></h5>
							<span class="smalltext">&#171;&nbsp;', $txt['by'], '&nbsp;<strong>', $message['member']['link'], '</strong> ', $txt['on'], '&nbsp;<em>', $message['time'], '</em>&nbsp;&#187;</span>';
            echo '
						</div>';
            if (!$context['compact'] || $message['body_highlighted'] != '') {
                echo '
						<div class="topic_body">', $message['body_highlighted'], '</div>';
            }
            if (!empty($topic['buttons'])) {
                template_quickbutton_strip($topic['buttons'], $topic['tests']);
            }
            if (!empty($options['display_quick_mod'])) {
                echo '
						<p class="topic_moderation">';
                if ($options['display_quick_mod'] == 1) {
                    echo '
							<input type="checkbox" name="topics[]" value="', $topic['id'], '" class="input_check" />';
                } else {
                    if ($topic['quick_mod']['remove']) {
                        echo '
							<a href="', $scripturl, '?action=quickmod;actions%5B', $topic['id'], '%5D=remove;', $context['session_var'], '=', $context['session_id'], '" onclick="return confirm(\'', $txt['quickmod_confirm'], '\');"><img src="', $settings['images_url'], '/icons/quick_remove.png" style="width: 16px;" alt="', $txt['remove_topic'], '" title="', $txt['remove_topic'], '" /></a>';
                    }
                    if ($topic['quick_mod']['lock']) {
                        echo '
							<a href="', $scripturl, '?action=quickmod;actions%5B', $topic['id'], '%5D=lock;', $context['session_var'], '=', $context['session_id'], '" onclick="return confirm(\'', $txt['quickmod_confirm'], '\');"><img src="', $settings['images_url'], '/icons/quick_lock.png" style="width: 16px;" alt="', $txt[$topic['is_locked'] ? 'set_unlock' : 'set_lock'], '" title="', $txt[$topic['is_locked'] ? 'set_unlock' : 'set_lock'], '" /></a>';
                    }
                    if ($topic['quick_mod']['lock'] || $topic['quick_mod']['remove']) {
                        echo '
							<br />';
                    }
                    if ($topic['quick_mod']['sticky']) {
                        echo '
							<a href="', $scripturl, '?action=quickmod;actions%5B', $topic['id'], '%5D=sticky;', $context['session_var'], '=', $context['session_id'], '" onclick="return confirm(\'', $txt['quickmod_confirm'], '\');"><img src="', $settings['images_url'], '/icons/quick_sticky.png" style="width: 16px;" alt="', $txt[$topic['is_sticky'] ? 'set_nonsticky' : 'set_sticky'], '" title="', $txt[$topic['is_sticky'] ? 'set_nonsticky' : 'set_sticky'], '" /></a>';
                    }
                    if ($topic['quick_mod']['move']) {
                        echo '
							<a href="', $scripturl, '?action=movetopic;topic=', $topic['id'], '.0"><img src="', $settings['images_url'], '/icons/quick_move.png" style="width: 16px;" alt="', $txt['move_topic'], '" title="', $txt['move_topic'], '" /></a>';
                    }
                }
                echo '
						</p>';
            }
            echo '
					</li>';
        }
    }
    echo '
				</ul>';
    // If we have results show a page index
    if (!empty($context['topics'])) {
        template_pagesection();
    }
    // Quick moderation enabled, then show an action area
    if (!empty($context['topics']) && !empty($options['display_quick_mod']) && $options['display_quick_mod'] == 1) {
        echo '
				<div class="search_controls floatright">
					<div class="additional_row">
						<select class="qaction" name="qaction"', $context['can_move'] ? ' onchange="this.form.move_to.disabled = (this.options[this.selectedIndex].value != \'move\');"' : '', '>
							<option value="">&nbsp;</option>';
        foreach ($context['qmod_actions'] as $qmod_action) {
            if ($context['can_' . $qmod_action]) {
                echo '
							<option value="' . $qmod_action . '">' . (isBrowser('ie8') ? '&#187;' : '&#10148;') . '&nbsp;', $txt['quick_mod_' . $qmod_action] . '</option>';
            }
        }
        echo '
						</select>';
        // Show a list of boards they can move the topic to.
        if ($context['can_move']) {
            echo '
						<span id="quick_mod_jump_to">&nbsp;</span>';
        }
        echo '
						<input type="hidden" name="redirect_url" value="', $scripturl . '?action=search;sa=results;params=' . $context['params'], '" />
						<input class="button_submit" type="submit" value="', $txt['quick_mod_go'], '" onclick="return document.forms.topicForm.qaction.value != \'\' &amp;&amp; confirm(\'', $txt['quickmod_confirm'], '\');" />

					</div>
				</div>';
        echo '
				<input type="hidden" name="' . $context['session_var'] . '" value="' . $context['session_id'] . '" />
			</form>';
    }
    // Show a jump to box for easy navigation.
    echo '
			<div class="floatright" id="search_jump_to">&nbsp;</div>';
    if (!empty($options['display_quick_mod']) && $options['display_quick_mod'] == 1 && !empty($context['topics']) && $context['can_move']) {
        addInlineJavascript('
		aJumpTo[aJumpTo.length] = new JumpTo({
			sContainerId: "quick_mod_jump_to",
			sClassName: "qaction",
			sJumpToTemplate: "%dropdown_list%",
			sCurBoardName: "' . $context['jump_to']['board_name'] . '",
			sBoardChildLevelIndicator: "&#8195;",
			sBoardPrefix: "' . (isBrowser('ie8') ? '&#187;' : '&#10148;') . '&nbsp;",
			sCatClass: "jump_to_header",
			sCatPrefix: "",
			bNoRedirect: true,
			bDisabled: true,
			sCustomName: "move_to"
		});', true);
    }
    addInlineJavascript('
		aJumpTo[aJumpTo.length] = new JumpTo({
			sContainerId: "search_jump_to",
			sJumpToTemplate: "<label class=\\"smalltext\\" for=\\"%select_id%\\">' . $context['jump_to']['label'] . ':<" + "/label> %dropdown_list%",
			iCurBoardId: 0,
			iCurBoardChildLevel: 0,
			sCurBoardName: "' . $context['jump_to']['board_name'] . '",
			sBoardChildLevelIndicator: "&#8195;",
			sBoardPrefix: "' . (isBrowser('ie8') ? '&#187;' : '&#10148;') . '&nbsp;",
			sCatClass: "jump_to_header",
			sCatPrefix: "",
			sGoButtonLabel: "' . $txt['quick_mod_go'] . '"
		});', true);
}
Пример #2
0
/**
 * Formats a very simple message view (for example search results, list of
 * posts and topics in profile, unapproved, etc.)
 *
 * @param mixed[] $msg associative array contaning the data to output:
 * - class => a class name (mandatory)
 * - counter => Usually a number used as counter next to the subject
 * - title => Usually the subject of the topic (mandatory)
 * - date => frequently the "posted on", but can be anything
 * - body => message body (mandatory)
 * - buttons => an associative array that allows create a "quickbutton" strip
 *  (see template_quickbutton_strip for details on the parameters)
 */
function template_simple_message($msg)
{
    // @todo find a better name for $msg['date']
    echo '
			<div class="', $msg['class'], ' core_posts">', !empty($msg['counter']) ? '
				<div class="counter">' . $msg['counter'] . '</div>' : '', '
				<div class="topic_details">
					<h5>
						', $msg['title'], '
					</h5>', !empty($msg['date']) ? '
					<span class="smalltext">' . $msg['date'] . '</span>' : '', '
				</div>
				<div class="inner">
					', $msg['body'], '
				</div>';
    if (!empty($msg['buttons'])) {
        template_quickbutton_strip($msg['buttons'], !empty($msg['tests']) ? $msg['tests'] : array());
    }
    echo '
			</div>';
}