View Single Post
  #1  
Old 08-14-2008, 05:20 AM
youradhere4222 youradhere4222 is offline
 
Join Date: Sep 2007
Location: Houston, TX
Posts: 234
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Taking a x.php file and embedding it within index.php

I'm trying to find a way to embed the vBISpy modification into my home page. Currently it's on a separate page (vaispy.php), and I want it to somehow replace the forum listings.

Maybe I'm naive, but it doesn't seem like it'd be too hard; just cut, paste, and edit vaispy.php into index.php, but I'm not too sure which lines to place where.

Here's the code to the vaispy.php file:

PHP Code:
<?php
//################################################################################//
//         MOD NAME: VBISpy                                                      #//
//################################################################################//
//      DESCRIPTION: This modification for vBulletin adds a "live" scrolling     #//
//                   update of new posts to the forum                            #//
//################################################################################//
//               BY: MPDev                                                       #//
//             DATE: 9.26.06                                                     #//
//          VERSION: 1.0.12                                                      #//
//################################################################################//

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT''vaispy');

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array();

// pre-cache templates used by specific actions
$actiontemplates = array();

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');

// #########################   CONFIG VARS    ############################
// The number of days to scan the table for .. (86400 represents the number of seconds in 24 hours)
$daysprune 1;

// Do not list these forums even if they have permissions (test categories, etc)
$blockforums "";

// #########################   CONFIG VARS    ############################

$forumperms = array();
$lastpostid = (int)$_REQUEST['last'];
$subscribe = (int)$_REQUEST['subscribe'];

foreach(
$vbulletin->forumcache AS $forum) {
    
$forumid $forum['forumid'];
    
$forumperms =& $vbulletin->userinfo['forumpermissions']["$forumid"];

    if (!isset(
$vbulletin->forumcache["$forumid"]) OR !($forumperms $vbulletin->bf_ugp_forumpermissions['canview']) OR !($forumperms $vbulletin->bf_ugp_forumpermissions['canviewothers']) OR !verify_forum_password($forumid$vbulletin->forumcache["$forumid"]['password'], false))
    {
        
$blockforums .= ','.$forum['forumid'];
    }
}
unset(
$forum);

$datecut "AND thread.lastpost >= " . (TIMENOW - ($daysprune 86400));
$prefetched null;

############################################################################
// Get Threads I've Posted In
require_once(DIR '/includes/functions_forumdisplay.php');
$result $db->query_read("
    SELECT threadid
    FROM " 
TABLE_PREFIX "thread as thread
    WHERE thread.forumid NOT IN (0
$blockforums) and
        thread.visible = 1 and
        thread.open <> 10 and
        thread.lastpostid > 
$lastpostid
        
$datecut
"
);

$idsArray = array();
while (
$id $db->fetch_array($result))
{
    
$idsArray[] = $id['threadid'];
}

$dotthreads fetch_dot_threads_array(implode(','$idsArray));
############################################################################
// Get Threads

// Do not set to more than 20 unless you know how to modify the html at the bottom of the page (and at line 291)
$limitq = ( isset($_REQUEST['do']) ? "20" "5,20" );

if ( 
$subscribe == )
{
$getthreads $db->query_read("
      SELECT subscribethread.subscribethreadid,
             thread.forumid,
             thread.firstpostid,
             thread.lastpost,
             thread.lastposter,
             thread.lastpostid,
             thread.replycount,
             thread.threadid,
             thread.title,
             thread.open,
             thread.views,
             post.pagetext AS preview,
             post.userid AS lastpuserid
        FROM " 
TABLE_PREFIX "subscribethread AS subscribethread
             INNER JOIN " 
TABLE_PREFIX "thread AS thread ON (subscribethread.threadid = thread.threadid)
             LEFT JOIN " 
TABLE_PREFIX "deletionlog AS deletionlog ON (thread.threadid = deletionlog.primaryid AND type = 'thread')
             LEFT JOIN " 
TABLE_PREFIX "post AS post ON (post.postid = thread.lastpostid)
        WHERE subscribethread.userid = " 
$vbulletin->userinfo['userid'] . "
            AND thread.forumid NOT IN (0
$blockforums)
            AND thread.visible = 1
            AND subscribethread.canview = 1
            AND thread.lastpostid > 
$lastpostid
            AND deletionlog.primaryid IS NULL
            
$datecut
       ORDER BY thread.lastpost DESC LIMIT 
$limitq
"
);
}
else
{
$getthreads $db->query_read("
      SELECT thread.forumid,
             thread.firstpostid,
             thread.lastpost,
             thread.lastposter,
             thread.lastpostid,
             thread.replycount,
             thread.threadid,
             thread.title,
             thread.open,
             thread.views,
             post.pagetext AS preview,
             post.userid AS lastpuserid
        FROM " 
TABLE_PREFIX "thread AS thread
             LEFT JOIN " 
TABLE_PREFIX "deletionlog AS deletionlog ON (thread.threadid = deletionlog.primaryid AND type = 'thread')
             LEFT JOIN " 
TABLE_PREFIX "post AS post ON (post.postid = thread.lastpostid)
       WHERE open <> 10
         
$datecut
         AND thread.forumid NOT IN (0
$blockforums)
         AND thread.visible = '1'
         AND thread.lastpostid > 
$lastpostid
         AND post.visible = 1
         AND deletionlog.primaryid IS NULL
       ORDER BY thread.lastpost DESC LIMIT 
$limitq
"
);
}

$row $highestid 1;
$rowcolor "alt2";

while(
$thread $db->fetch_array($getthreads)) {
    
$color $color == 'alt1' 'alt2' 'alt1';

    
$thread['title'] = htmlspecialchars_uni(fetch_censored_text(fetch_trimmed_title(unhtmlspecialchars($thread['title']), 85)));
    
$thread['date'] = vbdate($vbulletin->options['dateformat'], $thread['lastpost'], 1);
    
$thread['time'] = vbdate($vbulletin->options['timeformat'], $thread['lastpost']);

    
// Get rid of html and bbcode first
    
$thread['preview'] = strip_tags(strip_bbcode($thread['preview'], truetrue));
    
$thread['preview'] = htmlspecialchars_uni(fetch_trimmed_title($thread['preview'], 200));
    
$thread['preview'] = fetch_censored_text(fetch_word_wrapped_string($thread['preview'], 20));

    
$thread['replycount'] = vb_number_format($thread['replycount']);
    
$thread['views'] = vb_number_format($thread['views']);

    
$tforumid $thread['forumid'];
    
$thread['forum'] = htmlspecialchars_uni($vbulletin->forumcache["$tforumid"]['title']);

    if ( 
$thread['lastpostid'] == $thread['firstpostid'] )
    {
        
$etype "New Thread";
    }
    else
    {
        
$etype "New Post";
    }

    
// Statusicon
    // show dot folder?
    
if ($vbulletin->userinfo['userid'] AND $vbulletin->options['showdots'] AND $dotthreads["$thread[threadid]"])
    {
        
$thread['statusicon'] .= '_dot';
        
$thread['dot_count'] = $dotthreads["$thread[threadid]"]['count'];
        
$thread['dot_lastpost'] = $dotthreads["$thread[threadid]"]['lastpost'];
    }

    
// show hot folder?
    
if ($vbulletin->options['usehotthreads'] AND (($thread['replycount'] >= $vbulletin->options['hotnumberposts'] AND $vbulletin->options['hotnumberposts'] > 0) OR ($thread['views'] >= $vbulletin->options['hotnumberviews'] AND $vbulletin->options['hotnumberviews'] > 0)))
    {
        
$thread['statusicon'] .= '_hot';
    }

    
// show locked folder?
    
if (!$thread['open'])
    {
        
$thread['statusicon'] .= '_lock';
    }

    
$thread['statusicon'] = $stylevar['imgdir_statusicon'] . '/thread' $thread['statusicon'] . '.gif';

    if ( 
$_REQUEST['do'] == "xml" )
    {
$output .= <<<VAPRINT
<event>
<id>
{$thread['lastpostid']}</id>
<what>
$etype</what>
<when>
{$thread['date']} {$thread['time']}</when>
<title>
{$thread['title']}</title>
<preview>
{$thread['preview']}</preview>
<poster>
{$thread['lastposter']}</poster>
<threadid>
{$thread['threadid']}</threadid>
<postid>
{$thread['lastpostid']}</postid>
<lastpost>
{$thread['lastpost']}</lastpost>
<userid>
{$thread['lastpuserid']}</userid>
<forumid>
{$thread['forumid']}</forumid>
<forumname>
{$thread['forum']}</forumname>
<views>
{$thread['views']}</views>
<replies>
{$thread['replycount']}</replies>
<statusicon>
{$thread['statusicon']}</statusicon>
</event>
VAPRINT;
    }
    else
    {
        
$rowcolor = ( $rowcolor == "alt1" "alt2" "alt1" );

        
$where $clip $poster_clip $poster null;

        if ( 
stristr($etype"thread") )
        {
            
$post_url "showthread.php?t={$thread['threadid']}";
        }
        else
        {
            
$post_url "showthread.php?p={$thread['lastpostid']}#post{$thread['lastpostid']}";
        }

        if( !
$thread['title'] )
        {
            
$clip "<strong>Unknown</strong>";
        }
        else
        {
            
$clip "<strong><img src=\"{$thread['statusicon']}\" alt=\"\" /><a target=\"_blank\" href=\"{$post_url}\">{$thread['title']}</a></strong>";
        }

        if ( 
$thread['preview'] )
        {
            
$clip .= "<br />{$thread['preview']}";
        }

        
$clip .= " ({$thread['views']} views, {$thread['replycount']} replies)";

        if ( 
$thread['lastpuserid'] )
        {
            
$poster_clip "<a target=\"_blank\" href=\"member.php?u={$thread['lastpuserid']}\">{$thread['lastposter']}</a>";
        }

        
$poster_clip .= "<br />{$thread['date']} {$thread['time']}";

        if ( 
$thread['forum'] )
        {
            
$where .= "<strong><a target=\"_blank\" href=\"forumdisplay.php?f={$thread['forumid']}\">{$thread['forum']}</a></strong>";
        }
        else
        {
            
$where "";
        }

        if (
is_browser('opera'))
        {
$prefetched .= <<<VAPRINT
<div id="row{$row}"><table cellpadding="3" cellspacing="0" border="0" width="100%"><tr><td width="20" class="$rowcolor smallfont" nowrap="nowrap" align="center">$etype</td><td class="$rowcolor smallfont" width="225" nowrap="nowrap" align="left">$poster_clip</td><td class="$rowcolor smallfont" width="80%">$clip</td><td class="$rowcolor smallfont" width="200" nowrap="nowrap" align="center">$where</td></tr></table></div>\n
VAPRINT;
        }
        else
        {
$prefetched .= <<<VAPRINT
<tr id="row{$row}"><td class="$rowcolor smallfont" align="center"><div class="smallfont">$etype</div></td><td class="$rowcolor smallfont"><div class="smallfont">$poster_clip</div></td><td class="$rowcolor smallfont"><div class="smallfont">$clip</div></td><td class="$rowcolor smallfont" align="center"><div class="smallfont">$where</div></td></tr>\n
VAPRINT;
        }

        
$row++;
        if ( 
$thread['lastpostid'] > $highestid )
        {
            
$highestid $thread['lastpostid'];
        }
    }
}

if ( 
$row 20 )
{
    for( 
$x $row$x 21$x++ )
    {
        if (
is_browser('opera'))
        {
$prefetched .= <<<VAPRINT
<div id="row{$x}"></div>\n
VAPRINT;
        }
        else
        {
$prefetched .= <<<VAPRINT
<tr id="row{$x}"><td class="$rowcolor smallfont" align="center">&nbsp;</td><td class="$rowcolor smallfont">&nbsp;</td><td class="$rowcolor smallfont">&nbsp;</td><td class="$rowcolor smallfont" align="center">&nbsp;</td></tr>\n
VAPRINT;
        }
    }
}

// memory saving
unset($thread);
$db->free_result($getthreads);

if ( 
$_REQUEST['do'] == "xml" )
{
    
header'Content-Type: text/xml' . ($stylevar['charset'] != '' '; charset=' .  $stylevar['charset'] : '') );
    echo 
'<?xml version="1.0" encoding="' $stylevar['charset'] . '"?>' "\r\n";

    if ( 
$output )
    {
        echo 
"<events>$output</events>";
    }
    else
    {
        echo 
"<events />";
    }

    exit;
}

$navbits = array();
$navbits[$parent] = 'iSpy';
$navbits construct_navbits($navbits);

eval(
'$navbar = "' fetch_template('navbar') . '";');
$navbar process_replacement_vars($navbar);

eval(
'$headinclude = "' fetch_template('headinclude') . '";');
$headinclude process_replacement_vars($headinclude);

eval(
'$footer = "' fetch_template('footer') . '";');
$footer process_replacement_vars($footer);

echo<<<VAPRINT
$stylevar[htmldoctype]
<html dir="
$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
$headinclude
<style type="text/css">
.spyfade1 div, .spyfade1 span,, .spyfade1 td, .spyfade1 img {
opacity:0.90;
filter:alpha(opacity=90);
-moz-opacity:0.90;
}
.spyfade2 div, .spyfade2 span, .spyfade2 td, .spyfade2 img {
opacity:0.80;
filter:alpha(opacity=80);
-moz-opacity:0.80;
}
.spyfade3 div, .spyfade3 span, .spyfade3 td, .spyfade3 img {
opacity:0.70;
filter:alpha(opacity=70);
-moz-opacity:0.70;
}
.spyfade4 div, .spyfade4 span, .spyfade4 td, .spyfade4 img {
opacity:0.50;
filter:alpha(opacity=50);
-moz-opacity:0.50;
}
.spyfade5 div, .spyfade5 span, .spyfade5 td, .spyfade5 img {
opacity:0.30;
filter:alpha(opacity=30);
-moz-opacity:0.30;
}
</style>
<script language="javascript" src="clientscript/va_prototype.js"></script>
<script language="javascript" src="clientscript/va_effects.js"></script>
<script language="javascript" src="clientscript/va_spy.js"></script>
<script language="javascript" type="text/javascript">
<!--
    spymax = 25;
    highestid = 
$highestid;

function pauseSpy() {
    var playimg = document.getElementById("vaplay");
    var pauseimg = document.getElementById("vapause");

    playimg.src = "images/misc/play_up.gif";
    playimg.alt = "Click to Play";
    pauseimg.src = "images/misc/pause_down.gif";
    pauseimg.alt = "Paused...";

    pause();
}

function playSpy() {
    var playimg = document.getElementById("vaplay");
    var pauseimg = document.getElementById("vapause");

    playimg.src = "images/misc/play_down.gif";
    playimg.alt = "Playing...";
    pauseimg.src = "images/misc/pause_up.gif";
    pauseimg.alt = "Click to Pause";

    resume();
}

function pause() {
    play = 0;
}

function resume() {
    play = 1;
}
// -->
</script>
<title>iSpy</title>
</head>
<body onload="spyinit();">
$header
$navbar

<table width="90%" align="center"><tr><td width="50%" align="left"><input type="checkbox" id="subscribe" value="1">&nbsp;subscribed threads only</td>
<td width="50%" align="right">
<img id="vaplay" src="images/misc/play_down.gif" style="cursor:pointer;" alt="Play" title="Play Comments" onclick="playSpy();" /> &nbsp;
<img id="vapause" src="images/misc/pause_up.gif" style="cursor:pointer;" alt="Pause" title="Pause Comments" onclick="pauseSpy();" />
</td></tr></table>
<br />
VAPRINT;

if (
is_browser('opera'))
{
$output .= <<<VAPRINT
<table class="tborder" cellpadding="0" cellspacing="0" border="0" width="100%" align="center" id="spy_table">
<tr><td width="20" class="tcat" nowrap="nowrap" style="height:25px;">&nbsp;</td>
<td class="tcat" width="225" nowrap="nowrap" style="height:25px;">By</td>
<td class="tcat" width="80%" style="height:25px;">Thread/Post</td>
<td class="tcat" width="200" nowrap="nowrap" style="height:25px;">Forum
</tr>
<tr><td colspan="4" class="alt1">
$prefetched
<div id="row21" style="display:none;" class="spyfade1"></div>
<div id="row22" style="display:none;" class="spyfade2"></div>
<div id="row23" style="display:none;" class="spyfade3"></div>
<div id="row24" style="display:none;" class="spyfade4"></div>
<div id="row25" style="display:none;" class="spyfade5"></div>
</td></tr>
</table>
VAPRINT;
}
else
{
$output .= <<<VAPRINT
<table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center" id="spy_table">
<thead>
<tr align="center"><td class="thead" width="100">Event</td><td class="thead" width="190">By</td><td class="thead">Thread/Post</td><td class="thead" width="190">Forum</td></tr>
</thead>
<tbody class="alt1">
$prefetched
<tr id="row21" style="display: none;" class="spyfade1"><td align="center">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td align="center">&nbsp;</td></tr>
<tr id="row22" style="display: none;" class="spyfade2"><td align="center">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td align="center">&nbsp;</td></tr>
<tr id="row23" style="display: none;" class="spyfade3"><td align="center">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td align="center">&nbsp;</td></tr>
<tr id="row24" style="display: none;" class="spyfade4"><td align="center">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td align="center">&nbsp;</td></tr>
<tr id="row25" style="display: none;" class="spyfade5"><td align="center">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td align="center">&nbsp;</td></tr>
</tbody>
</table>
VAPRINT;
}

$output .= <<<VAPRINT
$footer
VAPRINT;

echo 
$output;
?>
Hopefully someone can help - thanks!
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01481 seconds
  • Memory Usage 2,044KB
  • 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
  • (1)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