Go Back   vb.org Archive > vBulletin 5 Connect Discussion > vB5 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 12-05-2016, 12:45 AM
Necrophyte Necrophyte is offline
 
Join Date: Jul 2014
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Creating a new poll post with php? Ideas?

I know how to create a normal post with php, but I'm searching through the code and haven't yet figured out how to do it.
Thought someone here might be able to point me in the right direction.

I use this as a function to deal with creating and editing posts.
Code:
function node_handler($userid, $title, $postmsg, $nodeid, $parentid, $channelid){
	global $vbulletin;
	
	$options = [];
	$input = array(
		'title'		=>  $title,
		'rawtext'   =>  $postmsg,
		'nodeid'    =>  $nodeid,
		'parentid'  =>  $parentid,
		'channelid' =>  $channelid,
		'ret'       =>  '',
		'tags'      =>  '',
		'reason'    =>  '',
		'iconid'    =>  '',
		'prefixid'  =>  '',
		'hvinput'   =>  '',
		'subtype'   =>  '',
		'userid'    =>  $userid,
		'username'  =>  'User',
		'nl2br'     => 	false,
	);

	$api = Api_InterfaceAbstract::instance();
	$user  = $api->callApi('user', 'fetchUserinfo', array($userid));
	$time = vB5_Request::get('timeNow');

	$textData = array(
		'title'   	=>	$input['title'],
		'parentid'	=>	$input['parentid'],
		'prefixid'	=>	$input['prefixid'],
		'iconid'	=>	$input['iconid']
	);

	$options = array();
	if ($input['nodeid'] > 0){ //If we're here. We are to edit a post.
		$result = array();
		if ($user['userid'] < 1){
			return 0;
		}
		$textData['rawtext'] = $input['rawtext'];
		$textData['reason'] = $input['reason'];
			// We need to convert WYSIWYG html here and run the img check
		if (isset($textData['rawtext'])){
			$tmpText = $api->callApi('bbcode', 'convertWysiwygTextToBbcode', array($textData['rawtext'], $options));
			vB5_Frontend_Controller_Bbcode::verifyImgCheck($tmpText);
		}
		if ($input['nl2br']){ // not using ckeditor (on edit, 'nl2br' goes in the data array)
			$textData['nl2br'] = true;
		}
		$nodeId = $api->callApi('content_text', 'update', [$input['nodeid'], $textData, $options]);
		$tags = !empty($input['tags']) ? explode(',', $input['tags']) : array();
		$tagRet = $api->callApi('tags', 'updateUserTags', array($input['nodeid'], $tags));
	}
	else{ //Here we start a new post/thread
		$nodeId = $api->callApi('content_text', 'add', [$input, $options]);
	}
	return $nodeId;
}
Is this something that is just an option. As I'm looking I'm not seeing any options. I've looked through the API:
http://vb5support.com/resources/api/...tent_Poll.html
Its unclear how to add a poll and what options would be in the poll. Or I'm blind. Could be either. I just need a Yes/No Poll.

I can't explain why I can't use jquery to do this, but I need this to if possible work with the above function.

Ideas? Suggestions?
Glenn!! I know you've got someway to tell me I've screwed up and its right there!

I've tried adding 'polloptions' =>array('Yes', 'No') to both options and input array, but come up with nothing but a normal post.
Gotta be missing something.
Reply With Quote
  #2  
Old 12-05-2016, 04:23 AM
noypiscripter's Avatar
noypiscripter noypiscripter is offline
 
Join Date: Jul 2013
Posts: 468
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Take a look at actionPoll() function in createcontent.php frontend controller. Try creating a poll and inspect the ajax call to see the options passed.

You call the content_poll api not content_text. Based on content type, you call content_<type> api. The types are text, poll, gallery, video and link.
Reply With Quote
Благодарность от:
Necrophyte
  #3  
Old 12-05-2016, 06:30 PM
Necrophyte Necrophyte is offline
 
Join Date: Jul 2014
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

So here's what worked for me in the end.
I tried using actionpoll() function as a guide but it threw me off. Also tried looking at the ajax requested/sent info which again. Threw me off. The api looks for different data.
Traced content_text to poll.php in api folder. Led me to what it was looking for so I could give it the info. 'polloptions' needed to actually be called 'options' in a multi-dimensional array with 'titles'.
This is what worked for me in case someone comes to see this.
Code:
function startpoll($userid, $forum_id, $postmsg, $title){
	global $vbulletin;
	
	$api = Api_InterfaceAbstract::instance();
	$user  = $api->callApi('user', 'fetchUserinfo', array($userid));

	$input = array(
		'title'			=>  $title,
		'authorname'    => 	$user['username'],
		'rawtext'   	=>  $postmsg,
		'nodeid'    	=>  0,
		'parentid'  	=>  $forum_id,
		'channelid' 	=>  $forum_id,
		'ret'       	=>  '',
		'tags'      	=>  '',
		'reason'    	=>  '',
		'iconid'    	=>  0,
		'prefixid'  	=>  '',
		'hvinput'   	=>  '',
		'subtype'   	=>  '',
		'userid'    	=>  $userid,
		'username'  	=>  'User',
		'nl2br'     	=> 	false,
		'options' 		=> 	array(array ('title' => 'Yes, I support.'), array ('title' => 'No, I do not support.')),
		'timeout'		=> 	0,
		'multiple'      =>	 false,
		'ret'           =>	 '',
		'public'        => 	false,
		'parseurl'      => 	false,
	);
	
	$options = array(
		'skipDupCheck' => true
	);
	
	$nodeId = $api->callApi('content_poll', 'add', [$input, $options]);
	return $nodeId;
}
Thanks to Glenn for pointing me in the right direction.
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 06:11 AM.


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.03530 seconds
  • Memory Usage 2,190KB
  • 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
  • (2)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (1)post_thanks_box_bit
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)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_postinfo_query
  • fetch_postinfo
  • 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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete