Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 06-19-2006, 07:43 AM
Fidox Fidox is offline
 
Join Date: May 2006
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Please help me with this code

In my php application I got this function

Code:
require_once('./global.htm');
require_once('./includes/class_dm.htm');
require_once('./includes/class_dm_threadpost.htm');

function update_thread($title, $pagetext, $threadid) {
  global $vbulletin;
  $postdm =& datamanager_init('Post', $vbulletin, ERRTYPE_ARRAY, 'threadpost');
  $threadinfo = fetch_threadinfo($threadid); 
  $foruminfo = fetch_foruminfo($threadinfo['forumid']); 
  $postinfo = fetch_postinfo($threadinfo['firstpostid']);
  $userinfo = fetch_userinfo($postinfo['userid']);
  $postdm->set_info('forum', $foruminfo); 
  $postdm->set_info('thread', $threadinfo);
  $postdm->set_info('post', $postinfo);
  $postdm->set_info('user', $userinfo);
  $postdm->set('title', $title); 
  $postdm->set('pagetext', $pagetext);
  $postdm->pre_save(); 
  if (count($postdm->errors) > 0) { 
    print_r($postdm->errors);
    return FALSE;
  } else { 
    print_r($postdm->errors);
    echo $postdm->save();
    return TRUE;
  }
}
Function update_thread should find thread by its id and update title and pagetext of its first post. The problem is that at the end I am getting error "You did not specify a username for your post.". I would highly appreciate if you could help me to solve it or at least point me to the direction where I can find more samples how to use datamanager (it looks to be almost undocumented). Thank you.
Reply With Quote
  #2  
Old 06-21-2006, 03:20 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Check whether the following is actually set:
Code:
$threadinfo['firstpostid']
If not look into using something like follows:
Code:
$postdm->fetch_field('firstpostid');
Reply With Quote
  #3  
Old 06-21-2006, 04:38 PM
Fidox Fidox is offline
 
Join Date: May 2006
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by calorie
Check whether the following is actually set:
Code:
$threadinfo['firstpostid']
Thank you, calorie, but $threadinfo['firstpostid'] is set to correct thread id. Don't you see any other problem?
Reply With Quote
  #4  
Old 06-21-2006, 05:12 PM
Alan @ CIT Alan @ CIT is offline
 
Join Date: Nov 2004
Location: South UK
Posts: 625
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It thinks your trying to save a new thread. You need to use the set_existing() method to tell it your working on an existing thread.

Docs for the datamanagers can be found here: http://www.vbulletin.com/docs/html/data_managers

Thanks,
Alan.
Reply With Quote
  #5  
Old 06-21-2006, 05:14 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Look in the class_dm_threadpost.php file for the following bit of code:
Code:
			if ($this->fetch_field('userid', 'post') == 0 AND $this->fetch_field('username', 'post') == '')
			{
				$this->error('nousername');
				return false;
			}
That is where the "you did not specify a username for your post" error is being created.
Reply With Quote
  #6  
Old 06-21-2006, 05:33 PM
Fidox Fidox is offline
 
Join Date: May 2006
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Alan @ CIT
It thinks your trying to save a new thread. You need to use the set_existing() method to tell it your working on an existing thread.

Docs for the datamanagers can be found here: http://www.vbulletin.com/docs/html/data_managers

Thanks,
Alan.
EXACTLY! After replacing set_info with set_existing it works great. Thank you both for your help, you saved me a lot of time!
Reply With Quote
  #7  
Old 06-21-2006, 05:34 PM
Alan @ CIT Alan @ CIT is offline
 
Join Date: Nov 2004
Location: South UK
Posts: 625
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Your welcome

Thanks,
Alan.
Reply With Quote
Reply


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:48 PM.


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.04103 seconds
  • Memory Usage 2,219KB
  • Queries Executed 13 (?)
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)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (5)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (7)post_thanks_box
  • (7)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (7)post_thanks_postbit_info
  • (7)postbit
  • (7)postbit_onlinestatus
  • (7)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