PDA

View Full Version : Private messaging - additional fields in pm and pmtext tables


waherne
11-24-2005, 10:23 PM
Hi all,

Could anyone give me some guidance on how to insert data in extra fields that I created in the above tables when posting a new pm?

Many thanks,

W.

merk
11-25-2005, 12:51 AM
IIRC private messages have their own datamanager, id take a look at that.

waherne
11-25-2005, 11:47 AM
IIRC private messages have their own datamanager, id take a look at that.

Thanks for the reply. Could you give me more info on how to go about it?

merk
11-26-2005, 09:51 AM
Okay, its slightly complicated, so I hope you know about PHP and vBulletin



the class vB_DataManager_PM is the class that would be used for most interaction with sending private messages and the database. It abstracts the database engine by storing fields in its own method and the parent class deals with putting the data into the database.



Basically what you'll need to do is add a field to the datamanagers $validfields array (which has a special format which you can find in the vBulletin manual). You will also need to create the same field in the correct table (pmtext it seems).



You also have the option in the validfields array to specify if the field will be subject to verification of some kind, which it will explain the method of doing so.



An example of the validfields hook would be something like (youll have to find the right hook)



$validfields['newfield'] = array(TYPE_STR, REQ_NO);



From that point, you'll need to add the appropriate HTML elements to the correct template (i think its pm_newpm), and then using a hook into the private_insertpm_process hook, you will need to GPC the variables passed on via the form elements you added, and then add them to the "extended" datamanger $pmdm using either set() (passed by value) or setr() (passed by reference)



An example of the above hook would look like



$newfield = $vbulletin->input->clean_gpc('p', 'newfield', TYPE_STR);

$pmdm->setr('newfield', $newfield);





Thats basically it for the "input" side of things, and im pretty sure to change the display of the PM it would be as simple as adding the proper variable to the templates (it should already be picked up in the query).

waherne
11-26-2005, 11:27 AM
Merk,

Thank you very much for this. I will try this out later today and will let you know how I get on.

W.