View Single Post
  #3  
Old 11-14-2004, 10:50 AM
Ianomed's Avatar
Ianomed Ianomed is offline
 
Join Date: Oct 2004
Location: The Netherlands
Posts: 112
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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'] , "&amp;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.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01312 seconds
  • Memory Usage 1,833KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (6)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete