vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Private messaging - additional fields in pm and pmtext tables (https://vborg.vbsupport.ru/showthread.php?t=101490)

waherne 11-24-2005 10:23 PM

Private messaging - additional fields in pm and pmtext tables
 
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

Quote:

Originally Posted by merk
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)

PHP Code:


$validfields
['newfield'] = array(TYPE_STRREQ_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

PHP Code:


$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.


All times are GMT. The time now is 03:44 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01018 seconds
  • Memory Usage 1,724KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete