Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Beta Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Enhanced syndication script (external2.php) Details »»
Enhanced syndication script (external2.php)
Version: 1.00, by Ahmad Ahmad is offline
Developer Last Online: Jul 2014 Show Printable Version Email this Page

Version: 3.0.0 Rating:
Released: 04-15-2004 Last Update: Never Installs: 4
Is in Beta Stage  
No support by the author.

Hi,

This is my first public hack. I hope I'm not breaking any rules!

This is an enhanced version of external.php that gives you two little useful features:

1. Control the number of threads you want to get (up to 50 threads, or even more).
2. Change the order of threads from the date of the thread to the date of the last post.

This will allow you to make an external list of your latest XX posts using JavaScript, XML, or RSS.

Installation
1. Make a copy of the file external.php in the same directory and call it external2.php.

2. Open external2.php in your favorite text editor.

3. Look for these lines:
Code:
if ($forumchoice != '')
{
	// query last 15 threads from visible / chosen forums
Add these lines above them:
PHP Code:
// see if there is a count preference
if ($_REQUEST['limit'])
{
    
$limit intval($_REQUEST['limit']);
    if (
$limit 50)
    {
        
$limit 50;
    }
}
else
{
    
$limit 15;
}

// see if there is an ordering preference
if ($_REQUEST['orderby'] == 'lastpost') {
    
$orderby 'thread.lastpost DESC';
}
else
{
    
$orderby 'thread.dateline DESC';

Then find these two lines:
Code:
		ORDER BY thread.dateline DESC
		LIMIT 15
And replace them with:
Code:
		ORDER BY $orderby
		LIMIT $limit
Usage
Just like you would use external.php, but with the following extra parameters:

1. limit: this controls the number of threads you want to be displayed. You cannot go beyond 50 here. If not set to anything, it will return 15 threads.

2. orderby: if set to 'lastpost', it will give you the last XX number of threads based on the last post to the thread. If set to anything else (or not set at all), it will give you the last XX number of threads based on their start date (this order doesn't change when someone replies to a thread).

If you ignore both extra parameters limit and orderby, the script will act just like the normal external.php. So, you can use it in place of external.php, instead of as an second (external2.php) script.

I hope you will find it useful.

Show Your Support

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

Comments
  #12  
Old 09-18-2004, 09:39 AM
TCB's Avatar
TCB TCB is offline
 
Join Date: Jun 2004
Location: the Netherlands
Posts: 193
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Ahmad
No, actually, there is no caching, but it can be added.
So everytime this external2.php is included on a page, the list gets completely renewed at each visit, from each visitor? Doesn't that cost an immense amount of servercapacity?

Wouldn't it be better when it gets cached for about a few minutes?
Reply With Quote
  #13  
Old 09-26-2004, 05:11 AM
eblivion eblivion is offline
 
Join Date: Sep 2004
Posts: 54
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Ahmad
Sure. Here is the code for an HTML file that will get 25 threads by their dates of last post and display them in a marquee:

PHP Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4 . 01Transitional//EN">

<
html dir="rtl">
<
head>
    <
title>marquee</title>
    <
style>
        
body {
            
font-familytahoma;
            
font-size:10 pt;
            
font-weightbold;
            
color#6C3809;
        
}
        
{
            
text-decorationnone;
            
color#6C3809;
        
}
        
a:active {
            
color#9A611A;
        
}
        
a:hover {
            
color#CAA577;
        
}
    </
style>
</
head>

<
body>
<
script src="http://www.multaqana.org/vb/external2.php?type=JS&limit=25&orderby=lastpost"></script>

<
marquee direction="right" scrolldelay="100">

<
script>
URL "http://www.multaqana.org/vb/";

=;
for (
t in threads) {
    
document.write('<a href="'URL'showthread.php?t='threads[t].threadid'" target="_blank">'threads[t].title'</a>&nbsp;&nbsp;&nbsp;::&nbsp;&nbsp;&nbsp;');
}
</
script>
</
marquee>

</
body>
</
html
Notes:
1. This file is designed for right-to-left languages. If you want it for a left-to-right language, then you will have to change the "dir" attribute in the "html" tag to "ltr" and the "direction" attribute in the "marquee" tag to "left".

2. This file was not checked for best browser compatability and standards compliance.

3. The file is static (server-wise). It doesn't have to be a ".php" file. The "magic" happens by the interaction between the client-side javascript code and the external2.php content provider.

4. You will also need to change the "src" attribute of the first "script" tage, and the URL variable in the second script to point to your own forum.

5. The best way of making use of this script is to insert it in your forum as an iframe. This way, you will always have the threads with the latest posts displayed on all pages.
I installed this mod and changed it a bit to include a link to the last poster's post and their profile. The poster link correctly goes to the last's poster's profile, but the username displayed is the thread starter instead of the last poster.

Does anyone know what I need to replace threads[t].poster with to get the name of the last poster instead of the original? Below is my code:


<script src="/forum/external2.php?type=JS&limit=5&orderby=lastpost"></script>
<script type="text/javascript">
<!--
i =0 ;
for (t in threads) {
var titleAsString = new String(threads[t].title);
if (titleAsString.length > 20)
{
var newTitle = titleAsString.substring(0,20);
newTitle = newTitle + "...";
}
else
{
var newTitle = titleAsString;
}
document.writeln("<div class=smallfont><img src=/images/dot_o.gif width=5 height=5 border=0>&nbsp;<a class=smallfont href=\"/forum/showthread.php?t="+threads[t].threadid + "&goto=lastpost\">"+newTitle+"</a><br>&nbsp;&nbsp;" + threads[t].threaddate + " : " + threads[t].threadtime + "<br />&nbsp;&nbsp;by: <a href=\"/forum/member.php?find=lastposter&t="+threads[t].threadid+"\">"+threads[t].poster+"</a><br /><br /></div>");
}
//-->
</script>
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 09:06 PM.


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.05235 seconds
  • Memory Usage 2,259KB
  • Queries Executed 19 (?)
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
  • (2)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
  • (1)pagenav_pagelink
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (2)postbit
  • (3)postbit_onlinestatus
  • (3)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_postinfo_query
  • fetch_postinfo
  • 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