Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 3 Articles
How to update thread field on new post
-=Sniper=-
Join Date: May 2002
Posts: 605

 

Show Printable Version Email this Page Subscription
-=Sniper=- -=Sniper=- is offline 06-28-2006, 10:00 PM

I think this should help someone, I posted this as a question but now have it working.

First add the field foobar to the threads table (as an example). This is true/false based field, you will have to add your own checks, e.g who can update foobar etc

In the quick reply/new reply template/s add this HTML in the thread management area quick reply area

HTML Code:
<label for="qr_foobar"><input type="checkbox" name="foobar" value="1" id="qr_foobar" accesskey="w" tabindex="4" />Please update my Foobar</label>
In threaddata_start

PHP Code:
$this->validfields['foobar'] = array(TYPE_BOOLREQ_NO); 
In newpost_complete

PHP Code:
$set_foobar_status false;
    if (
$vbulletin->GPC['foobar'])
    {
        
$set_foobar_status true;
    }
    if (
$set_foobar_status)
    {
        
$thread =& datamanager_init('Thread'$vbulletinERRTYPE_SILENT'threadpost');
        if (
$type == 'thread')
        {
            
$thread->set_existing($dataman->thread);
        }
        else
        {
            
$thread->set_existing($threadinfo);
        }

        if (
$set_foobar_status)
        {
            
$thread->set('foobar', ($thread->fetch_field('foobar') == 1));
        }
        
        
$thread->save();
    } 
In newreply_post_start

PHP Code:
$vbulletin->input->clean_array_gpc('p', array('foobar' => TYPE_BOOL));
$newpost['foobar'] =& $vbulletin->GPC['foobar']; 
I hope this helps, the advanced coders please improve if needed
Reply With Quote
  #2  
Old 06-29-2006, 04:49 PM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Moved to Articles as a "how to".
Reply With Quote
  #3  
Old 06-30-2006, 11:11 AM
Dean C's Avatar
Dean C Dean C is offline
 
Join Date: Jan 2002
Location: England
Posts: 9,071
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm pretty sure you don't have to instantiate a new instance of the Thread datamanager class.
Reply With Quote
  #4  
Old 06-30-2006, 11:17 AM
-=Sniper=- -=Sniper=- is offline
 
Join Date: May 2002
Posts: 605
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I based the code on how vb deals with openclose/sticky threads, when making a new post, so would be interested if we don't have to instantiate another instance of the thread manager class
Reply With Quote
Reply

Thread Tools

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 08:40 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.04132 seconds
  • Memory Usage 2,229KB
  • Queries Executed 17 (?)
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)bbcode_html
  • (3)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (3)postbit
  • (4)postbit_onlinestatus
  • (4)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