Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 General Discussions

Reply
 
Thread Tools Display Modes
  #1  
Old 07-13-2011, 06:22 PM
ravel123 ravel123 is offline
 
Join Date: Feb 2011
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Create a new thread via vBulletin API

Hi,

iam trying to use this code to create a thread via vBulletin cron job:

Code:
<?php
/*======================================================================*\
|| #################################################################### ||
|| # Create a new thread                                              # ||
|| # ---------------------------------------------------------------- # ||
|| # Hopefully this will help some of you people who are needing to   # ||
|| # create a new thread externally using vBulletins API. Good luck!  # ||
|| #################################################################### ||
\*======================================================================*/

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE & ~8192);

// Include vBulletin runtime files
require_once('./global.php');
require_once('./includes/functions_databuild.php');

// Create a new datamanager for posting
$threaddm =& datamanager_init('Thread_FirstPost', $vbulletin, ERRTYPE_ARRAY, 'threadpost');

// Set some variable and information
$forumid = 7;                                                                  // The id of the forum we are posting to
$userid = 1;                                                                 // The user id of the person posting
$title = addslashes($_POST["test title bla bla test"]);                                           // The title of the thread
$pagetext = addslashes($_POST["test content bla bla test 123 this is long enough"]);                                      // The content of the thread
$allowsmilie = '1';                                                             // Are we allowing smilies in our post
$visible = '1';                                                                 // If the post visible (ie, moderated or not)

// Parse, retrieve and process the information we need to post
$foruminfo = fetch_foruminfo($forumid);
$threadinfo = array();
$user = htmlspecialchars_uni( fetch_userinfo($userid) );

$threaddm->set_info('forum', $foruminfo);
$threaddm->set_info('thread', $threadinfo);
$threaddm->setr('forumid', $forumid);
$threaddm->setr('userid', $userid);
$threaddm->setr('pagetext', $pagetext);
$threaddm->setr('title', $title);
$threaddm->set('allowsmilie', $allowsmilie);
$threaddm->set('visible', $visible);

// Lets see what happens if we save the page
$threaddm->pre_save();
if(count($threaddm->errors) < 1) {
    // Basically if the page will save without errors then let do it for real this time
    $threadid = $threaddm->save();
    unset($threaddm);
} else {
    // There was errors in the practice run, so lets display them
    var_dump ($threaddm->errors);
}

?>
It always return that the message is too short. I has to be at least 10 characters long.

Exact error message (in german): "array(2) { [0]=> string(110) "Der Text, den du eingegeben hast, ist zu kurz. Bitte erweitere den Text auf die minimale L?nge von 10 Zeichen." [1]=> string(49) "Bitte f?lle das Titel- und das Nachrichtfeld aus." } "

What am I doing wrong?

Edit: I would like to create a query to my database in this script with "$db->query_first" but there is no $db-object so i get an error. can i get the db-object from vbulletin somehow?

Thanks in advance
Reply With Quote
  #2  
Old 07-13-2011, 06:43 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I think your problem is with these two lines:

Code:
$title = addslashes($_POST["test title bla bla test"]);                                           // The title of the thread
$pagetext = addslashes($_POST["test content bla bla test 123 this is long enough"]);
I don't think you want the $_POST[] in there.

I'm not sure why you had trouble with the $db object, it should be defined (unless you had your code inside a function, then you'd need a global statement).
Reply With Quote
Благодарность от:
ravel123
  #3  
Old 07-13-2011, 06:51 PM
Disasterpiece's Avatar
Disasterpiece Disasterpiece is offline
 
Join Date: Apr 2007
Location: GER
Posts: 765
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You can use $vbulletin->db, in some scripts $db is just a reference to $vbulletin->db
Reply With Quote
Благодарность от:
ravel123
  #4  
Old 07-13-2011, 07:10 PM
ravel123 ravel123 is offline
 
Join Date: Feb 2011
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thank you both! everything is working right now =)
Reply With Quote
  #5  
Old 07-27-2011, 04:19 AM
radiofranky radiofranky is offline
 
Join Date: Jun 2011
Posts: 149
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi,
I would like to import threads from a csv file and I was wondering what is the best way to do it?

It contains the following columns "forum id", "user name", "title", "post text", "post date"

thanks
Reply With Quote
  #6  
Old 07-27-2011, 01:56 PM
Disasterpiece's Avatar
Disasterpiece Disasterpiece is offline
 
Join Date: Apr 2007
Location: GER
Posts: 765
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by radiofranky View Post
Hi,
I would like to import threads from a csv file and I was wondering what is the best way to do it?

It contains the following columns "forum id", "user name", "title", "post text", "post date"

thanks
Take a look at the code above your post. What's not ok with it?
Reply With Quote
  #7  
Old 07-27-2011, 03:53 PM
radiofranky radiofranky is offline
 
Join Date: Jun 2011
Posts: 149
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks. How do I replace my .csv with the following fields. I mean how do I read from my csv and insert into those variables?
For +10000 thread, do I just create a loop and let looping the entire code for the number of threads?

Code:
$forumid = 7;                                                                  // The id of the forum we are posting to
$userid = 1;                                                                 // The user id of the person posting
$title = addslashes($_POST["test title bla bla test"]);                                           // The title of the thread
$pagetext = addslashes($_POST["test content bla bla test 123 this is long enough"]);                                      // The content of the thread
$allowsmilie = '1';                                                             // Are we allowing smilies in our post
$visible = '1';
Reply With Quote
  #8  
Old 07-27-2011, 08:19 PM
Disasterpiece's Avatar
Disasterpiece Disasterpiece is offline
 
Join Date: Apr 2007
Location: GER
Posts: 765
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, that's more of a php-related problem...

How is your knowledge in php?

basically all you need is fopen, fread, fclose, foreach/while and preg_match if you're good with regex, otherwise explode and trim.
All those functions can be looked-up here: http://php.net/
Reply With Quote
  #9  
Old 08-16-2011, 02:19 PM
Scalemotorcars's Avatar
Scalemotorcars Scalemotorcars is offline
 
Join Date: Mar 2006
Location: NC
Posts: 619
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can this be turned into a widget for any registered member to use.

Something like "Post a Question" and have it show up in a specific forum or thread.
Reply With Quote
  #10  
Old 08-16-2011, 03:58 PM
vbresults vbresults is offline
 
Join Date: Apr 2009
Posts: 687
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Scalemotorcars View Post
Can this be turned into a widget for any registered member to use.

Something like "Post a Question" and have it show up in a specific forum or thread.
I do not mean to promote my product in any way, but do you mean like the question box on lancerforhire.com? If my assumption is correct regarding what you are looking for, you do not need to use the data manager.
Reply With Quote
Reply

Thread Tools
Display Modes

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 05:31 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.07690 seconds
  • Memory Usage 2,259KB
  • Queries Executed 11 (?)
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
  • (3)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (10)post_thanks_box
  • (2)post_thanks_box_bit
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)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
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete