Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
Register FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 09-07-2011, 04:54 AM
TeknoSounds TeknoSounds is offline
 
Join Date: Nov 2006
Location: TX
Posts: 435
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Attempting Create Thread outside of vB using Data Manager, error with bootstrap

Greetings,
I have a script that's trying to create a new thread from a page outside vBulletin.

The error I'm getting is from global.php on line 20 when its storing $specialtemplates in bootstrap: [Notice] Undefined variable: specialtemplates

Code:
Source

11 \*======================================================================*/
12 
13 error_reporting(E_ALL & ~E_NOTICE);
14 
15 require('./includes/class_bootstrap.php');
16 
17 define('VB_AREA', 'Forum');
18 
19 $bootstrap = new vB_Bootstrap_Forum();
20 $bootstrap->datastore_entries = $specialtemplates;
21 $bootstrap->cache_templates = vB_Bootstrap::fetch_required_template_list(
22 	empty($_REQUEST['do']) ? '' : $_REQUEST['do'],
23 	$actiontemplates, $globaltemplates
24 );
25 
26 $bootstrap->bootstrap();
Here is the code that's calling it:
PHP Code:
        //Create New VB Thread from Event Info
    public function CreateNewVBThread($date, $name, $venue, $city, $state) {
        $forumdir = "/mysite.com/messageboard";
        $currentdir = getcwd();
        chdir($forumdir);
        require_once($forumdir . '/global.php');
        require_once($forumdir . '/includes/class_dm.php');
        require_once($forumdir . '/includes/class_dm_threadpost.php');
        require_once($forumdir . '/includes/functions_databuild.php');

         //Variables
        $postip = "127.0.0.1";
        $userid = 243;
        $username = 'Events Announcer';
        $title = ($date . ' - ' . $name . ' @ ' . $venue . ' - ' . $city . ', ' . $state);
        $threadinfo = array();
        
        //Determine City/Forum
        if ($state = "TX") {
            switch ($city) {
                case "Austin":
                    $forumid = 70;
                    break;
                case "Dallas":
                    $forumid = 77;
                    break;
                case "Houston":
                    $forumid = 78;
                    break;
                case "San Antonio":
                    $forumid = 79;
                    break;
                default:
                    $forumid = 80;
                    break;
            }
        }
        else {
            $forumid = 81;
        }
        
        
        //Connect to VB DB
        DB::connect($databaseVB);
        
        //Create new thread given info below
        $threaddm =& datamanager_init('Thread_FirstPost', $vbulletin, ERRTYPE_ARRAY, 'threadpost');

        $foruminfo = fetch_foruminfo($forumid);
        $threaddm->set_info('forum', $foruminfo);
        $threaddm->set_info('thread', $threadinfo);
        $threaddm->setr('forumid', $forumid);
        $threaddm->setr('userid', $userid);
        $threaddm->setr('title', $title);
        $threaddm->set('username', $username);
        $threaddm->set('pagetext', 'This is a test');
        $threaddm->set('allowsmilie', 1);
        $threaddm->set('visible', 1);
        $threaddm->set('ipaddress', $postip);
        $threaddm->set('dateline', TIMENOW);
                
        $threaddm->pre_save();
        if(count($threaddm->errors) < 1)
        {
            $threadid = $threaddm->save();
            unset($threaddm);
            build_thread_counters($threadid);
        }
        else 
        {
            print "Error making new thread! " . $threaddm->errors[0] . $threaddm->errors[1] . $threaddm->errors[2] ;
        }
        
        build_forum_counters($forumid);
        
        //Reconnect to SS DB & change back working directories
        chdir($currentdir);
        DB::connect($databaseConfig);
    
    }  //end CreateNewVBThread() 
Reply With Quote
  #2  
Old 09-07-2011, 07:01 AM
souperman souperman is offline
 
Join Date: Mar 2011
Posts: 131
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

and what's the error?
Reply With Quote
  #3  
Old 09-07-2011, 09:02 AM
TeknoSounds TeknoSounds is offline
 
Join Date: Nov 2006
Location: TX
Posts: 435
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Whoops....

[Notice] Undefined variable: specialtemplates
Reply With Quote
  #4  
Old 09-07-2011, 11:28 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You can get rid of those by defining the variable:

PHP Code:
$specialtemplates = array(); 

before including global.php. (It looks like you'll get the same message for $actiontemplates and $globaltemplates, and maybe some others).

Those variables control which templates and datastore values are cached. You can look at som of the vb scripts to see how they're used. (e.g. showthread.php).
Reply With Quote
  #5  
Old 09-09-2011, 02:18 AM
TeknoSounds TeknoSounds is offline
 
Join Date: Nov 2006
Location: TX
Posts: 435
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks That worked!

Now having an issue with the code no seeming to execute, at least it isn't making a thread, nothing in the database, no errors appear via the page or in the error_log. Unsure whats going on at this point. I just don't think my function is getting called. I think.
Reply With Quote
  #6  
Old 09-09-2011, 02:39 AM
HMBeaty's Avatar
HMBeaty HMBeaty is offline
 
Join Date: Sep 2005
Posts: 4,141
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hopefully this helps you out a bit

This is from one of my modifications (Staff Application) where it creates the threads

PHP Code:
                require_once(DIR . '/includes/functions_newpost.php');

                $forumid = $vbulletin->options['usml_staffapp_forumid'];
                $user_id = $vbulletin->userinfo['userid'];
                $username = $vbulletin->userinfo['username'];
                $target_foruminfo = fetch_foruminfo($forumid);
                $newpost = array(
                    'userid'        => $user_id,
                    'username'      => $username,
                    'message'       => $postappmsg,
                    'title'         => $subject,
                    'poststarttime' => TIMENOW,
                    'emailupdate'   => 0
                );

                build_new_post('thread', $target_foruminfo, array(), array(), $newpost, $errors);

                if (sizeof($errors) > 0) { $error_info = construct_errors($errors); }

                require_once(DIR . '/includes/functions_databuild.php');
                build_forum_counters($forumid); 
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 01:52 PM.


Powered by vBulletin® Version 3.9.0
Copyright ©2000 - 2017, vBulletin Solutions Inc.