Log in

View Full Version : Queries and Hooks...?


StepOnFrog
07-25-2008, 03:08 AM
Hi all,

These following questions *might* make some people's eyeballs jump out from shock when reading them (I expect my questions are a bit noob-like)!

I have taken a big interest in messing around with vBulletin style & code since I first bought the package, it was vB 3.5.4 (possibly about 2 or 3 years ago). From then I was getting to grips with MySQL and PHP too.

I'm now at the stage of learning where I want to write MODs for vBulletin, but I have come across a few stumbling blocks, and is probably the place where your eyeballs jump out in shock!

I've searched all over for tutorials on what I want to know, but haven't found much, really. My searches brought me to this board, where I found a tutorial on the datastore, but, as I understand it, the datastore is for data that isn't updated that often, so not much need for my MOD...

I would like to know about writing queries through vBulletin, for example,
$query = $db-> blah blah blah blah and so on...
what is the $db-> part of the code, and why not just use a straight forward query for MySQL? Particularly, I'd like to know about the functions in vBulletin that allow us to access, write to and update the database, please?????

Also, I believe it is necessary to learn about the HOOKs in vBulletin, how they are used and why, so any help here would be great too!

I feel daft asking for this help, but have a look around yourselves, see if you can find anything with regards the essential parts of vBulletin programming (IMO, the basics would be the database queries and the HOOK system - the stuff that enables your code to run with vBulletin).

I'm running vBulletin 3.7.2.

Any help and/or advice is greatly received,
Thanks in advance,
Step
;-D

Adrian Schneider
07-25-2008, 03:54 AM
The vB_Database class (Usually $db, $vbulletin->db or $this->registry->db) instead of the raw functions, because it will automate a lot of the tedious work like error checking. It also abstracts the functions away, so if you were to switch database engines (within the same syntax) it would call the approriate functions based on your configuration.

The plugin/hook system is pretty simple. Each "hook" is a spot in the code where you can inject your own code (a "plugin"). The plugin code is eval()'d at the hook spot, so all the nearby code is in scope. Why? So admins and add-on developers can modify vB or create new features without having to edit files. When upgrades come around, you don't want to have too many file edits. :)

StepOnFrog
07-25-2008, 06:43 AM
I don't suppose you know where I can find a list of functions and their usages, do you?

thx

Dismounted
07-25-2008, 07:41 AM
<a href="http://members.vbulletin.com/api/" target="_blank">vBulletin API Documentation</a>

Opserty
07-25-2008, 09:03 AM
<a href="https://vborg.vbsupport.ru/forumdisplay.php?f=184" target="_blank">Articles</a>

StepOnFrog
07-25-2008, 11:05 PM
vBulletin API Documentation (http://members.vbulletin.com/api/)

Where the bloody hell did that materialise from? I swear I've never seen this API doc before; I'd searched the whole length and bredth of vBulletin, to no avail...! Although, this API doc explains the functions and classes of vB, for which you should have a good understanding of Object Orientated Programming, and should have an idea of the functions and classes before you go looking for them, (ie. which came first, the chicken or the egg; which to look at first, the document or the code...?)

There's nothing that simply tells you 'this is blah blah function, it does blah blah, you use it in blah blah way and it is possibly one of a handful of functions that should be learnt as a basic number of functions so that you may be able to look at some snippets of code and have a general gist of what the code is doing.' The god of all books... 'vBulletin coding for Dummies.

Articles

And, I suppose it's just a matter of asking for help in Articles forums, but what I thought there might be in these forums is an article just explaining the very basics of the functions regarding the vBdatabse and Hooks....?

Thanks all; this is great!
It's a step closer to that very basic document I, and a huge amount of other people, are after. :up: :D