Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 07-25-2008, 03:08 AM
StepOnFrog StepOnFrog is offline
 
Join Date: Apr 2006
Location: The Pub
Posts: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Queries and Hooks...?

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,
Code:
$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
Reply With Quote
  #2  
Old 07-25-2008, 03:54 AM
Adrian Schneider's Avatar
Adrian Schneider Adrian Schneider is offline
 
Join Date: Jul 2004
Posts: 2,528
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
  #3  
Old 07-25-2008, 06:43 AM
StepOnFrog StepOnFrog is offline
 
Join Date: Apr 2006
Location: The Pub
Posts: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't suppose you know where I can find a list of functions and their usages, do you?

thx
Reply With Quote
  #4  
Old 07-25-2008, 07:41 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

<a href="http://members.vbulletin.com/api/" target="_blank">vBulletin API Documentation</a>
Reply With Quote
  #5  
Old 07-25-2008, 09:03 AM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

<a href="https://vborg.vbsupport.ru/forumdisplay.php?f=184" target="_blank">Articles</a>
Reply With Quote
  #6  
Old 07-25-2008, 11:05 PM
StepOnFrog StepOnFrog is offline
 
Join Date: Apr 2006
Location: The Pub
Posts: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dismounted View Post
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.

Quote:
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:
Reply With Quote
Reply

Thread Tools
Display Modes

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 06:04 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.04139 seconds
  • Memory Usage 2,206KB
  • Queries Executed 11 (?)
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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (6)post_thanks_postbit_info
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)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
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete