/** * 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'], ': ', $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">« ', $txt['by'], ' <strong>', $message['member']['link'], '</strong> ', $txt['on'], ' <em>', $message['time'], '</em> »</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=""> </option>'; foreach ($context['qmod_actions'] as $qmod_action) { if ($context['can_' . $qmod_action]) { echo ' <option value="' . $qmod_action . '">' . (isBrowser('ie8') ? '»' : '➤') . ' ', $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"> </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 != \'\' && 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"> </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: " ", sBoardPrefix: "' . (isBrowser('ie8') ? '»' : '➤') . ' ", 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: " ", sBoardPrefix: "' . (isBrowser('ie8') ? '»' : '➤') . ' ", sCatClass: "jump_to_header", sCatPrefix: "", sGoButtonLabel: "' . $txt['quick_mod_go'] . '" });', true); }
/** * 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>'; }