View Single Post
  #4  
Old 11-26-2005, 09:51 AM
merk merk is offline
 
Join Date: Nov 2001
Location: Canberra, Australia
Posts: 601
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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).
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01392 seconds
  • Memory Usage 1,767KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete