this is my complete function to post adding:
PHP Code:
public function addPost($forum_id, $thread_id, $post_data = array())
{
global $vbulletin;
require_once(CWD . '/includes/init.php');
require_once(CWD . '/includes/functions_misc.php');
require_once(CWD . '/includes/functions_databuild.php');
$foruminfo = fetch_foruminfo($forum_id);
$threadinfo = fetch_threadinfo($thread_id);
$postdm =& datamanager_init('Post', $vbulletin, ERRTYPE_ARRAY, 'threadpost');
//$postdm = new vB_DataManager_Post($vbulletin, ERRTYPE_STANDARD);
// set options
//$postdm->setr('showsignature', $post_data['signature']);
$postdm->setr('allowsmilie', $post_data['enablesmilies']);
//$postdm->setr('htmlstate', $post['htmlstate']);
// set data
$postdm->setr('userid', $post_data['userid']);
$postdm->setr('threadid', $post_data['threadid']);
$postdm->setr('parentid', $post_data['parentid']);
//$postdm->set('username', $post_data['username']);
$postdm->setr('title', $post_data['title']);
$postdm->setr('pagetext', $post_data['pagetext']);
$postdm->setr('iconid', $post_data['iconid']);
$postdm->setr('visible', $post_data['visible']);
$postdm->setr('dateline', time());
$postdm->set_info('forum', $foruminfo);
$postdm->set_info('thread', $threadinfo);
$postdm->pre_save();
if(!empty($postdm->errors))
{
return $postdm->errors;
}
else
{
$post_id = $postdm->save();
build_thread_counters($threadinfo);
build_forum_counters($foruminfo);
return $thread_id;
}
}
and this function is called by:
PHP Code:
protected function processForm(sfWebRequest $request, sfForm $form)
{
$form_name = $form->getName();
$form->bind($request->getParameter($form_name), $request->getFiles($form->getName()));
if ($form->isValid())
{
// start vbulletin add thread part
if(sfConfig::get('app_vbulletin_use'))
{
$user_id = $this->getUser()->getGuardUser()->getId();
$values = $this->form->getValues();
if($form_name == 'post')
{
$vb = new vbConnector();
$post_data = array( 'threadid' => $this->thread_id,
'title' => $values['title'],
'pagetext' => $values['message'],
'userid' => $user_id,
'open' => 1,
'visible' => 1,
'allowsmilie' => 1,
'parentid' => 0,
'iconid' => 1,
'signature' => 0
);
$this->errors = $vb->addPost($this->forum_id, $this->thread_id, $post_data);
}
else
{
$vb = new vbConnector();
$thread_data = array( 'forumid' => $this->forum_id,
'title' => $values['title'],
'pagetext' => $values['message'],
'userid' => $user_id,
'open' => 1,
'visible' => 1,
'allowsmilie' => 1
);
$this->errors = $vb->addThread($this->forum_id, $thread_data);
}
if(!is_array($this->errors))
{
$this->redirect('@forum_thread?forum_id='.$this->forum_id.'&slug='.$this->errors);
}
}
// end vbulletin add thread part
}
}
about error screen. there is only blank page with Access denied. message in top-right corner. nothing more.