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

Reply
 
Thread Tools
Details »»

Version: , by (Guest)
Developer Last Online: Jan 1970 Show Printable Version Email this Page

Version: Unknown Rating:
Released: 06-18-2001 Last Update: Never Installs: 3
 
No support by the author.

Another quick, but kick-arse hack. We have a home-made content management system (actually, a beta tool see incursio.com for more info - product is called Editio). At any rate, it allows staff or community members to create online articles. Once articles are published, I wanted a way to automatically link them into our forums, so people could start a discussion, or join a discussion already in progress about that particular article. Yahoo! does this with news events as well.

At any rate, perl script. chmod 755, I call it discuss_link.cgi. It should be invoked via SSI. Under Apache:

Code:
  <!--#include virtual=/cgi-bin/discuss_link.cgi?topic=Downhill+Skiing+Basics&forum=5 -->
In the link above, plug in your forum number (forumid column in VB), and the title of the article. The title will be used as the title of the post. If a post exists in the passed forum with that title, a link to "Join the conversation" will be emitted. Otherwise, you get a link called "Start a conversation". You get the picture.

Our content management system (through its plugin concept) allows us to have stuff like this embedded within each article - you could cobble up something similar in your own system with a little effort.

Code:
#!/usr/local/bin/perl

print "Content-type: text/html\n\n";

use DBI;

#Require the cgi library
require '/opt/web/cgi-bin/cgi-lib.pl';

&ReadParse(*input);

# Grab fields
$topic =  $input{'topic'};
$forum =  $input{'forum'};

# Does the forum/topic combo exist?

# Connect to mySQL

$dbh = DBI->connect( "DBI:mysql:vbulletin", "id", "password");

if ( !defined $dbh ) {
  print "<LI>Cannot connect to mySQL server: $DBI::errstr\n";
}

# Grab the forum name

$q = "SELECT title FROM forum WHERE forum = $forum";

$sth = $dbh->prepare($q);
$sth->execute;
@result = $sth->fetchrow_array;
$forum_name = $result[0];
$sth->finish;

$quoted_title = $dbh->quote($topic);
$q = "SELECT threadid FROM thread WHERE forumid = $forum AND title = $quoted_title";
$sth = $dbh->prepare($q);
$sth->execute;
@result = $sth->fetchrow_array;
$threadid = $result[0];
$sth->finish;

# Prep for linking
$topic =~ tr/ /+/;

if( $threadid <= 0 ) {
  print "<A HREF=http://www.mysite.com/forums/newthread.php?s=&action=newthread&forumid=$forum&subject=$topic>Start a Conversation!</A>";
  exit(1);
}

print ("<A HREF=http://www.mysite.com/forums/showthread.php?s=&threadid=$threadid>Join the Conversation!</A>");

exit;
Cheers.

Show Your Support

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

Comments
  #2  
Old 06-19-2001, 05:58 PM
unixman
Guest
 
Posts: n/a
Default

For those who'd like to see it in action - take a peek:

http://www.wetcanvas.com/Articles/Scott_Burkett/105/

Check the bottom of the page.

Cheers.
Reply With Quote
  #3  
Old 06-20-2001, 06:50 AM
Nicholas Brown's Avatar
Nicholas Brown Nicholas Brown is offline
 
Join Date: Oct 2001
Posts: 23
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Good hack, but you should have done it in PHP and not icky pUrl
Reply With Quote
  #4  
Old 06-20-2001, 11:07 AM
Balbanes
Guest
 
Posts: n/a
Default

Oh wow that really is cool!

I think it would be good for long community news articles too.
Reply With Quote
  #5  
Old 06-20-2001, 11:44 AM
unixman
Guest
 
Posts: n/a
Default

So rewrite in PHP. I wrote it in Perl because it was done long before I ever had vbulletin.
Reply With Quote
  #6  
Old 06-20-2001, 11:50 AM
v0n
Guest
 
Posts: n/a
Default

unixman - you are the man! Thanks for the hack.
Reply With Quote
  #7  
Old 06-20-2001, 03:26 PM
TigerLily TigerLily is offline
 
Join Date: Oct 2001
Location: Never Never Land
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Awesome hack! Thank you very much!

Any idea on when Editio will be ready for release? Looks like a cool product.

TigerLily
Reply With Quote
  #8  
Old 06-20-2001, 04:18 PM
unixman
Guest
 
Posts: n/a
Default

A bit off-topic for this board, but over the summer for sure. Just add yourself to our mailing list and you'll be the first to know. :-)

Cheers.
Reply With Quote
  #9  
Old 06-20-2001, 05:33 PM
akiy's Avatar
akiy akiy is offline
 
Join Date: Dec 2001
Posts: 74
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally posted by unixman
So rewrite in PHP.
I went and rewrote the above in PHP. I've attached discussion_link.php below.

All you should need to do is include("discussion_link.php") where you would like the "Start/Join a Conversation!" link to be. You'll need to set your own username, password, database, and forumpath in the script, of course.

I've tried out the script on my site and it looks like it works. Any improvements, bug fixes, and such are always welcome.
Reply With Quote
  #10  
Old 06-21-2001, 11:08 PM
ztsky
Guest
 
Posts: n/a
Default

Cool!
But how to use it?
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 11:09 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04158 seconds
  • Memory Usage 2,277KB
  • Queries Executed 23 (?)
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
  • (2)bbcode_code
  • (1)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
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (3)postbit_onlinestatus
  • (10)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
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • postbit_imicons
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete