Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.6 > vBulletin 3.6 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
vBISpy - AJAX real-time feed of new posts/threads Details »»
vBISpy - AJAX real-time feed of new posts/threads
Version: 1.12, by MPDev MPDev is offline
Developer Last Online: Dec 2016 Show Printable Version Email this Page

Category: Add-On Releases - Version: 3.6.x Rating:
Released: 09-05-2006 Last Update: 09-27-2006 Installs: 947
Additional Files  
No support by the author.

After seeing the http://www.digg.com/spy application; I wondered if this could be done for vBulletin as well. I came across this webpage which had a "how to" on how they built a similiar application to do the same thing. Taking a page from their book (i.e. the code), I modified it for use with vBulletin.

During development, I also came across this post here on vBulletin.Org where the very subject had already been discussed.

So I put this together; a simple ZIP file with a single PHP script, three javascript files and 4 images.

Installation

. UNZIP the file into your forums directory
. That's it!

Virtually all the code to customize the page is in the vaispy.php script; there are no plugins, no templates and no phrases. You do not need to do anything further; this should work right out of the box.

In your browser, open the URL:

http://www.yourforum.com/forum/vaispy.php

You can see examples of this at:

http://www.viperalley.com/forum/vaispy.php
http://www.extremefitness.com/forum/vaispy.php

Note: I claim no ownership of this code except for the file vaispy.php - the rest of the files were using 'freely distributable' sources. As such, you may use these files as you wish, but please do not remove the copyrights.

This modification is for vBulletin 3.6 only, if you are running vBulletin 3.5 you will need to see this thread.

JOIN THE vBIspy Network!
Once you have this mod installed, you can join the vBIspy network to have your threads appear on this site; the vBIspy Network is a great way for people to see what's going on in various vBulletin communities and for forum owners to promote their sites and generate new traffic.

Optional add-ons

Who's Online mod for this: https://vborg.vbsupport.ru/showthread.php?t=126209

vBAdvanced Module: https://vborg.vbsupport.ru/showthread.php?t=126421

UPDATES
1.0.4
Added buro9's code from here

1.0.5 - 9.9.06
Modified some JavaScript in va_spy.js to remove split strings

1.0.6 - 9.10.06
Added date cuffoff code from here and changed init() to spyinit() - changed vaispy.php and va_spy.js files.

1.0.7 - 9.12.06
va_spy.js: Added a forum url variable to allow for integration with portals or other products outside the forum directory
va_spy.js: Added xmldelay variable at top of script for easier configuration or repolling
Updated files: vaispy.php, vb_spy.js

1.0.8 - 9.13.06
vaispy.php - changed code for checking for forum permissions to include password protected forums, added javascript tag for script code

1.0.9 - 9.16.06
vaispy.php
va_spy.js
va_effects.js
- modified to allow for proper display in Opera browsers and moved more html into vaispy.php to allow for stylevars, trimmed va_effects.js to remove unused code (ForumDog's suggestions, except not using templates yet), changed way threads are parsed (removes html as well)

1.0.10 - 9.17.06
va_prototype.js - removed 20kb of unused code

1.1.11 - 9.25.2006
vaispy.php
va_spy.js
- added SirAdrian's mods for thread status icons and alternating row colors
- added code to prepopulate the first 10 rows with existing threads allowing for 5 new ones to be added in scrolling mode (versus scrolling starting from the first thread).
- added option to display subscribed threads only

1.1.12 - 9.26.2006
vaispy.php
- added code to add empty rows if initial pull has less than 20 rows.

Supporters / CoAuthors

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #152  
Old 09-08-2006, 11:50 PM
ZGeek ZGeek is offline
 
Join Date: Jan 2003
Posts: 149
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is a really awesome hack and I'd love to see it developed further. (like a module for vbadvanced hehehehe)

Is there anything that can be done for the whos online page? When its viewed and people are on that page they are reported like this:

Unknown Location
/forum/vaispy.php?do=xml&last=993718&r=0.4711818012095664 3&_=
Reply With Quote
  #153  
Old 09-09-2006, 12:04 AM
bashy bashy is offline
 
Join Date: Nov 2005
Posts: 2,544
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

EDIT:

To change the amount of posts to show:
Find and change the 50 to the amount you require
[phpORDER BY lastpost DESC LIMIT 50");[/php]

Find and change the 50 to the amount you require
PHP Code:
    spymax 50
Find and add more rows to the amount that you require
[php]
PHP Code:
<tr id="row1" style="display: none;"></tr>
<
tr id="row2" style="display: none;"></tr>
<
tr id="row3" style="display: none;"></tr>
<
tr id="row4" style="display: none;"></tr>
<
tr id="row5" style="display: none;"></tr>
<
tr id="row6" style="display: none;"></tr>
<
tr id="row7" style="display: none;"></tr>
<
tr id="row8" style="display: none;"></tr>
<
tr id="row9" style="display: none;"></tr>
<
tr id="row10" style="display: none;"></tr>
<
tr id="row11" style="display: none;"></tr>
<
tr id="row12" style="display: none;"></tr>
<
tr id="row13" style="display: none;"></tr>
<
tr id="row14" style="display: none;"></tr>
<
tr id="row15" style="display: none;"></tr>
<
tr id="row16" style="display: none;"></tr>
<
tr id="row17" style="display: none;"></tr>
<
tr id="row18" style="display: none;"></tr>
<
tr id="row19" style="display: none;"></tr>
<
tr id="row20" style="display: none;"></tr>
<
tr id="row21" style="display: none; opacity:.85"></tr>
<
tr id="row22" style="display: none; opacity:.65"></tr>
<
tr id="row23" style="display: none; opacity:.45"></tr>
<
tr id="row24" style="display: none; opacity:.25"></tr>
<
tr id="row25" style="display: none; opacity:.05"></tr
This is mine as i have set it to 50
PHP Code:
<tr id="row1" style="display: none;"></tr>
<
tr id="row2" style="display: none;"></tr>
<
tr id="row3" style="display: none;"></tr>
<
tr id="row4" style="display: none;"></tr>
<
tr id="row5" style="display: none;"></tr>
<
tr id="row6" style="display: none;"></tr>
<
tr id="row7" style="display: none;"></tr>
<
tr id="row8" style="display: none;"></tr>
<
tr id="row9" style="display: none;"></tr>
<
tr id="row10" style="display: none;"></tr>
<
tr id="row11" style="display: none;"></tr>
<
tr id="row12" style="display: none;"></tr>
<
tr id="row13" style="display: none;"></tr>
<
tr id="row14" style="display: none;"></tr>
<
tr id="row15" style="display: none;"></tr>
<
tr id="row16" style="display: none;"></tr>
<
tr id="row17" style="display: none;"></tr>
<
tr id="row18" style="display: none;"></tr>
<
tr id="row19" style="display: none;"></tr>
<
tr id="row20" style="display: none;"></tr>
<
tr id="row21" style="display: none;"></tr>
<
tr id="row22" style="display: none;"></tr>
<
tr id="row23" style="display: none;"></tr>
<
tr id="row24" style="display: none;"></tr>
<
tr id="row25" style="display: none;"></tr>
<
tr id="row26" style="display: none;"></tr>
<
tr id="row27" style="display: none;"></tr>
<
tr id="row28" style="display: none;"></tr>
<
tr id="row29" style="display: none;"></tr>
<
tr id="row30" style="display: none;"></tr>
<
tr id="row31" style="display: none;"></tr>
<
tr id="row32" style="display: none;"></tr>
<
tr id="row33" style="display: none;"></tr>
<
tr id="row34" style="display: none;"></tr>
<
tr id="row35" style="display: none;"></tr>
<
tr id="row36" style="display: none;"></tr>
<
tr id="row37" style="display: none;"></tr>
<
tr id="row38" style="display: none;"></tr>
<
tr id="row39" style="display: none;"></tr>
<
tr id="row40" style="display: none;"></tr>
<
tr id="row41" style="display: none; opacity:.95"></tr>
<
tr id="row42" style="display: none; opacity:.85"></tr>
<
tr id="row43" style="display: none; opacity:.75"></tr>
<
tr id="row44" style="display: none; opacity:.65"></tr>
<
tr id="row45" style="display: none; opacity:.55"></tr>
<
tr id="row46" style="display: none; opacity:.45"></tr>
<
tr id="row47" style="display: none; opacity:.35"></tr>
<
tr id="row48" style="display: none; opacity:.25"></tr>
<
tr id="row49" style="display: none; opacity:.15"></tr>
<
tr id="row45" style="display: none; opacity:.08"></tr
Reply With Quote
  #154  
Old 09-09-2006, 09:21 AM
Lizard King Lizard King is offline
 
Join Date: Jan 2005
Location: Mersin
Posts: 907
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

All the credit goes to TECK ( Floren )

In order to optimize the code Replace
Code:
    $getthreads = $db->query_read("
    	SELECT thread.*, 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 AND thread.lastpostid > $lastpostid
    	AND forumid NOT IN (0$blockforums)
    	AND thread.visible = '1'
    	AND deletionlog.primaryid IS NULL
    	ORDER BY lastpost DESC LIMIT 10");
with
Code:
	// The number of days to scan the table for ...
	// 86400 represents the number of seconds in 24hrs
	$daysprune = 1;
	$datecut = "AND thread.lastpost >= " . (TIMENOW - ($daysprune * 86400));

	$getthreads = $db->query_read("
		SELECT thread.*, 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 AND thread.lastpostid > $lastpostid
			AND forumid NOT IN (0$blockforums)
			AND thread.visible = '1'
			AND deletionlog.primaryid IS NULL
			$datecut
		ORDER BY thread.lastpost DESC LIMIT 10
	");
Reply With Quote
  #155  
Old 09-09-2006, 09:25 PM
MPDev's Avatar
MPDev MPDev is offline
 
Join Date: Oct 2003
Location: Virginia
Posts: 885
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Just curious about adding that to the query; does that speed up the query or is it to just make sure you only grab something from the past day?
Reply With Quote
  #156  
Old 09-09-2006, 09:32 PM
Cole2026 Cole2026 is offline
 
Join Date: Feb 2004
Location: Pittsburgh, PA
Posts: 224
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Problem here.

The query is going correctly, it has valid information in it:
http://yourconvo.com/forums/vaispy.php?do=xml

However, The actual page is not filling up with data.
http://www.yourconvo.com/forums/vaispy.php
Reply With Quote
  #157  
Old 09-09-2006, 09:34 PM
da420 da420 is offline
 
Join Date: Nov 2005
Posts: 1,232
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Cole2026
Problem here.

The query is going correctly, it has valid information in it:
http://yourconvo.com/forums/vaispy.php?do=xml

However, The actual page is not filling up with data.
http://www.yourconvo.com/forums/vaispy.php
What do you mean it's not filling up with data?

It seems to be working for me...
Reply With Quote
  #158  
Old 09-09-2006, 09:35 PM
DementedMindz DementedMindz is offline
 
Join Date: Jan 2006
Posts: 1,474
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

yeah me too
Reply With Quote
  #159  
Old 09-09-2006, 09:40 PM
Cole2026 Cole2026 is offline
 
Join Date: Feb 2004
Location: Pittsburgh, PA
Posts: 224
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I just figured out what's wrong.

It won't work when there is no www.
Reply With Quote
  #160  
Old 09-10-2006, 02:57 AM
MPDev's Avatar
MPDev MPDev is offline
 
Join Date: Oct 2003
Location: Virginia
Posts: 885
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I made an update with some minor changes to the JavaScript to remove the split strings.

I'm not sure what to do about Opera; I just dont use it to know enough what might need to be done. I wonder if it works like IE and we need:

Code:
if (is_ie || is_opera)
in the javascript file va_spy.js.
Reply With Quote
  #161  
Old 09-10-2006, 03:39 AM
Wired1's Avatar
Wired1 Wired1 is offline
 
Join Date: Nov 2003
Location: Orlando, FL, USA
Posts: 1,361
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by bashy
This is mine as i have set it to 50
PHP Code:
<tr id="row49" style="display: none; opacity:.15"></tr>
<
tr id="row45" style="display: none; opacity:.08"></tr
row 49, then 45?
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:05 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05745 seconds
  • Memory Usage 2,388KB
  • Queries Executed 26 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (3)bbcode_code
  • (4)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (3)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete