The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
How do I bring information from a separate database
Hello,
I see that certain plugins (vb_sponsor and others) use the forums database so that they can display information for each forum. To do that, they seem to create new columns in an already large forum datatable. I already have a database that has information needed for each forum. It has the forumid tied to it so that I could quickly join tables. However - I don't understand how to get that information into my template. What is the best way to do this? Do I need to take all that information and create new fields in the forum datatable? Or can I somehow write a plugin or something that would allow me to pull the information I want from the already defined datatable? I really want to do this the best way and work properly with the vBulletin system, but am not quite sure how to proceed. Thanks in advance. |
#2
|
||||
|
||||
Depending on where you want the information, you can create a plugin at a hook just before a query's execution (most queries have this hook). From there, you can add a join into the query, using the "database.table" way of referencing tables. This will work as long as the vBulletin MySQL user has access to the other database.
|
#3
|
|||
|
|||
Thanks for the answer! That sounds similar to what I was thinking. The table is in the same database, so I have no problems with security access to it.
Now - Since each forumid has information in my new datatable, what is the best way to perform the query? Do I pass a forumid in each time, somehow? Or is there some way I should structure it so that I can immediately pull out the right information. I'm guessing some sort of array with the forumid as the index? $MyInformation(forumid)? That may not be proper php syntax, I'd have to look it up. so - are arrays the best way to do this or parameter passing? If parameter passing, then how would I set that up as a plugin? Thanks sooooo much. --------------- Added [DATE]1229559777[/DATE] at [TIME]1229559777[/TIME] --------------- ok, been trying to accomplish this, but having a difficult go at it. Here is pretty much what I am trying to do: 1. I created a Plugin: Code:
$FDetails=$vbulletin->db->query_read("SELECT `ForumDetails`.`SomeDetail`, FROM `ForumDetails` where `ForumDetails`.`forumid` = ".$forum[forumid]); while ($FDetails_info= $vbulletin->db->fetch_array($FDetails)) { $FDetails_info['MyDetails'] = $FDetails_info['SomeDetail']; } 3. In my template (forumhome_forumbit_level2_post) I put the following as a test: Code:
<!--Testing --> <if condition="$FDetails_info['MyDetails'] == 1"> FOUND! </if> I was hoping that when it got to the forum that I marked 'SomeDetail = 1' in the database, that it would put the text 'FOUND!' in the area of the template I wanted. That didn't happen I got no errors, but I am assuming that I am doing it wrong. Either the wrong hook (I hope it's that simple) or I am just way off base with what I am trying to do. Any help would be appreciated. thanks! --------------- Added [DATE]1229559977[/DATE] at [TIME]1229559977[/TIME] --------------- BTW - That template shows the forums on the homepage. Just an FYI incase it is a custom template (I don't know all about the templates myself) |
#4
|
||||
|
||||
forumdata_start is inside the forum data manager - this is used to edit or create a forum, not fetch data. What you need to do is to find the query where the forum data is being fetched, and alter it.
|
#5
|
|||
|
|||
ooooh. Doesn't that mean that every time I upgraded after that, I would 'break' the code and have to re-do it?
|
#6
|
||||
|
||||
Altering does not necessarily mean "edit the file directly". Say query A has a variable in it, let's call it $hooks_query_join (very big clue! ), and there's a hook right above it. You plug into that hook and change the variable, thereby altering it.
|
#7
|
|||
|
|||
I know what you are saying here So - that is a positive.
Now - I am trying to find where the query is and just can't find the one I want. I'll find it eventually, I think.. Eventually. |
#8
|
||||
|
||||
If you are looking at the forum home page, a good place to start would be index.php.
|
#9
|
|||
|
|||
Been looking in that one a lot along with the functions_forumlist. I must be too dense to find what I am looking for.
The construct_forum_bit looks like it builds the list and shells it out to the correct template (as far as where I know the html is parsed). However, there are no queries in there to note and I am getting a bit lost looking through it. Maybe just more time trying to understand each line of code will help. The other area was the 'cache_ordered_forums', but that has no join (except the already filled tachyjoin), so if that was where I needed to spend my time I guess I would have to add my own joins in there too along with my own table fields. Do you wanna be paid to do a quick example for me of what I want to do? |
#10
|
|||
|
|||
So - I was able to do this for the homepage Thank you for that.
I did use the cache_ordered_forums and I hope that was the correct query. I did have to add my own $hook_query_fields and $hook_query_joins to the functions.php file. Is it better for me to create this as a 'product' or something and would that ensure this update doesn't get written over once a new update comes out? What is the proper procedure for that? Did I do this correctly? It wasn't difficult, really, just took some figuring out. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|