PDA

View Full Version : How to use ajax in vb4


NetSlider
05-26-2014, 09:28 AM
Hello,
i start programming my first own Addon/Mod for vbulletin4.2 and i have an ajax question:

How can i use ajax with vbulletin, means: how to program the server-side backend with security-token and DB-access? How to creat an ajax-request with javascript is not the problem, the serverside is the problem.

I try to understand the modules/quellcodes of DBTECH Shoutbox but I failed.

I hope you can help me with this.

kh99
05-26-2014, 11:26 AM
Look at the vb file ajax.php. In fact if you're doing something simple you could create a plugin using hook ajax_start or ajax_complete instead of creating your own script.

NetSlider
05-26-2014, 01:40 PM
Look at the vb file ajax.php. In fact if you're doing something simple you could create a plugin using hook ajax_start or ajax_complete instead of creating your own script.

okay, thank you.
Must i observe any special rules or can i send a request to ajax.php?mycustomvar=mycustomvalue

greetings

Edit:
i try to use the given "verifyusername"-funtion of ajax.php, but i got a securitytoken-error.
how can i get the right securitytoken?

kh99
05-26-2014, 04:18 PM
okay, thank you.
Must i observe any special rules or can i send a request to ajax.php?mycustomvar=mycustomvalue

greetings

I guess you figured out that you'd want to post a unique value for 'do' and check for it in your plugin, and if it matches, echo some xml (or whatever you want to return). I don't think you should exit (in case there are are plugins on that hook).

Edit:
i try to use the given "verifyusername"-funtion of ajax.php, but i got a securitytoken-error.
how can i get the right securitytoken?

That's the value of $vbulletin->userinfo['securitytoken']. If the html page with the js that's making the ajax call is a vb page (or includes global.php) then you're set, you can just use hat value. Otherwise you probably have to figure out how to get it. I noticed just now that's there's a function in ajax.php that returns it, so maybe you could make an initial call to get the value. I think another way would be to write your own script (maybe start by copying ajax.php and delete the stuff you don't need), and in the new script define CSRF_PROTECTION as false.