That code probably didn't work because of the missing forumID when you're in search
Is there any restriction on what forums it should pull the announcements through to the search results from, or can it simply be all of them?
If it's okay for all announcements to show, then this is the answer:
in
search.php, find:
PHP Code:
// #############################################################################
if ($_REQUEST['do'] == 'showresults')
below, find:
PHP Code:
// select the correct part of the forum jump menu
$frmjmpsel['search'] = 'class="fjsel" selected="selected"';
construct_forum_jump();
// add to the navbits
$navbits[''] = $vbphrase['search_results'];
$templatename = 'search_results';
below add:
PHP Code:
// announce bit hack
$announcebits = '';
$announcements = $DB_site->query("
SELECT
announcementid, startdate, title, forumid, announcement.views,
user.username, user.userid, user.usertitle, user.customtitle
FROM " . TABLE_PREFIX . "announcement AS announcement
LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = announcement.userid)
WHERE startdate <= " . (TIMENOW - $vboptions['hourdiff']) . "
AND enddate >= " . (TIMENOW - $vboptions['hourdiff']) . "
ORDER BY startdate DESC
" . iif($vboptions['oneannounce'], "LIMIT 1"));
while ($announcement = $DB_site->fetch_array($announcements))
{
if ($announcement['customtitle'] == 2)
{
$announcement['usertitle'] = htmlspecialchars_uni($announcement['usertitle']);
}
$announcement['postdate'] = vbdate($vboptions['dateformat'], $announcement['startdate']);
if ($announcement['startdate'] > $lastread)
{
$announcement['statusicon'] = 'new';
}
else
{
$announcement['statusicon'] = 'old';
}
$announcement['views'] = vb_number_format($announcement['views']);
$foruminfo['forumid']=$announcement['forumid'];
$announcementidlink = iif(!$vboptions['oneannounce'] , "&announcementid=$announcement[announcementid]");
eval('$announcebits .= "' . fetch_template('forumdisplay_announcement') . '";');
}
// end announce bit hack
find, near the top:
PHP Code:
// pre-cache templates used by all actions
$globaltemplates = array(
'search_forums',
'search_results',
'search_results_postbit', // result from search posts
'threadbit', // result from search threads
'newreply_reviewbit_ignore'
);
replace with:
PHP Code:
// pre-cache templates used by all actions
$globaltemplates = array(
'search_forums',
'search_results',
'search_results_postbit', // result from search posts
'threadbit', // result from search threads
'newreply_reviewbit_ignore',
'forumdisplay_announcement'
);
then in template
search_results, add where you want them:
PHP Code:
<if condition="$announcebits">
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center" style="margin:$stylevar[cellpadding]px 0px $stylevar[cellpadding]px 0px">
<tr>
<td class="tcat" colspan="2">
$vbphrase[announcements]
</td>
</tr>
$announcebits
</table>
</if>
That should do you
Edit: clarified the instructions.