The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
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); } ?> 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 |
#2
|
|||
|
|||
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'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). |
Благодарность от: | ||
ravel123 |
#4
|
|||
|
|||
thank you both! everything is working right now =)
|
#5
|
|||
|
|||
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 |
#6
|
||||
|
||||
Take a look at the code above your post. What's not ok with it?
|
#7
|
|||
|
|||
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'; |
#8
|
||||
|
||||
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/ |
#9
|
||||
|
||||
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. |
#10
|
|||
|
|||
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.
|
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|