![]() |
|
|
Article Options |
|
Show last 5 posts from thread x on a non-vb page (and parse BB)
by
Rating:
Note: The arcticle below is based on working with vb3.7.3 PL1 and it's fully functional there. I ought it be functional within the rest of the 3.x range, but I can't guarantee anything. Introduction This is the first article related to programming I've ever written, so bare with me. While looking for a proper solution myself I have noticed that a lot of people were looking on how to pull posts from a specific thread (not just forum, can use RSS for that) and show either the first x or last x posts from that thread on a non-vb page. On top of that I noticed that in the meantime, which isn't less important, that people were also struggling on how to parse BB Code at the same time. I am not a programmer or anything, but am more than willing to share my knowledge of this, after having ploughed through hundreds of posts and dozens of threads. As I know how frustrating this can be. All credits go to all that contributed through their posts in other threads in order for me to complete this piece of coding. What is not covered? I am going to assume that you are familiar with connecting to databases, even connecting to multiple databases and that you will familiarize yourself with the structure of your 'post' table in your forum's database. If you want information on how to connect to 2 databases within the same page, check php.net on mysql_connect() for more info on that. What is covered? I'll show you what files regarding the interaction with vbulletin are required for fetching the information and parsing BB Code and give you a little comparisson information on what I did with the true/false settings you can do with the parse. Right, lets get started. Required lines of code for vbulletin interaction and parsing BB Code
What this basically does is get the interaction going with the vbulletin database and get the required information to properly parse your BB Code. As you can see I commented (//) the line with $parsed_text out, as I only use this specific line for reference later on in the script. We will get back on that later on. Don't forget to set your path to your forum! Setting your variables for the Query on the post table I think the code below is obvious. Of course you can replace 'your_forum_db' and 'thread_id' with values you pull from another database, but lets keep it simple here. Also make sure your threadid exists ![]()
Determine postcount for thread Now we're going to make sure you get those last 5 posts and we have to set a limit for that. Now there are other way to approach this, but I am planning to keep it simple and basically this is what suits my needs.
So what I have done here is count the occurances of postid where the information equals a specific threadid. In other words, how many posts have already been made to this thread. In the end I set a $limit variable and deduct 5 from the postcount that was queried. This is not the query for getting the posts themselves, we will cover that in the next bit. Getting the post information based on the limit Now that we know the postcount on thread x, we can go on querying the post table for its contents.
Above I have definied 5 cellnames I found interesting to see (postid, username, userid, threadid and pagetext) from my post table and I had the data extracted from the variables I set earlier ($db_name and $db_table). The condition set was to only get the information where my variable $thread_id aplies and in the end set the $limit and show 5 records. If you properly examine it, it gets as easy as reading a comic book at one point ![]() Parsing the BB-code and output the posts Now it's time to get things going, parse the bb-code (and in my case also strip it of quotes) and get the information returned onto your screen.
As you can see in the 2nd line, I stripped the quote tags and its content from my posts, as I simply don't like to show that bit, as in my opinion it clutters the page. Next up is the actuall parsing of the BB-Code. Remember when I commented out that line at the beginning of this article? This is why and I urge you to only use this to compare the two lines, do not add them (again):
Now, the starting variable is irrelevant to the idea behind this. What I would like to make clear with this is that you have to look at what you're doing. I noticed that people had problems with getting the parse line set up properly. But if you now compare the two, I think it becomes quite clear. What I am basically telling the parser to do is the following
Then last but not least, the output to a browser client and we're done. For those who don't want to pickup the bits and pieces, below the full code where everything is put together (again without code for db connection). Full code
Conclusion Well there you go, connect it to a database, get the PATH to your forum right and put it in a php file and see if it works. Hope this was useful to some people and gives a bit more insight of what is needed to fetch information from post and parse bb-code. And if anyone has suggestions, please be my guest, can only be beneficial to us all
No members have liked this post.
Last edited by Digma : 21 Apr 2010 at 12:19. Reason: Noticed a typo |
||||||||||||||||||||||||||||
|
Views: 2982
|
||||||||||||||||||||||||||||
| Comments |
|
#2
|
|||
|
|||
|
nice, thank you for sharing.
No members have liked this post.
|
|
#3
|
||||
|
||||
|
Thank you! I'd gotten as far as pulling posts from the DB but was stuck on parsing the BBcode. Your code worked perfectly.
No members have liked this post.
|
|
#4
|
|||
|
|||
|
got anything for vB 4.x.x?
No members have liked this post.
|
|
#5
|
|||
|
|||
|
Originally Posted by AndrewRich
Glad to hear it was of some use to you.
No, I am affraid I don't. Finances don't allow the purchase of vb4.x at the moment. No members have liked this post.
|
|
#6
|
||||
|
||||
|
thanks 4 article
No members have liked this post.
|
|
#7
|
|||
|
|||
|
thanks for that USEFUL POST
No members have liked this post.
|
|
#8
|
||||
|
||||
|
Why not do this?
So that you don't need to count the number of posts? No members have liked this post.
|
||||
|
#9
|
|||
|
|||
|
Looks like a working alternative, have you tried it yourself?
No members have liked this post.
|
|
#10
|
||||
|
||||
|
I am using a very similar SQL: if you don't want the first post (if you regard the first post as the article and the rest as comments) you can add the condition parentid != 0.
The full SQL would be:
This is what I use currently. Anyway, there is no reason why this should not work - after all, programing is just a form of mathematics ![]() No members have liked this post.
|
||||
|
#11
|
|||
|
|||
|
thank u friend
i will try and come back to tell you the results back soon >>>>> No members have liked this post.
|
|
#12
|
||||
|
||||
|
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in forum/includes/class_bootstrap.php on line 26
__________________
http://forum.tractorfc.com No members have liked this post.
|
![]() |
«
Previous Article
|
Next Article
»
Similar Article
|
||||
| Article | Author | Type | Replies | Last Post |
| Show all posts on one page | Andreas | vBulletin 3.0 Full Releases | 16 | 27 Mar 2008 17:56 |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) |
| Article Options | |
|
|
| New To Site? | Need Help? |
All times are GMT. The time now is 14:32.






