Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 07-20-2010, 10:46 AM
calwebsnc calwebsnc is offline
 
Join Date: Dec 2009
Posts: 11
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Data Manager Programming Problems

Hi,
I'm trying to develop a class to write new threads on vbulletin.

This is my code
PHP Code:
<?php 

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');


    class 
codeigniter_bridge{
        
        function 
codeigniter_bridge(){
            
            echo 
"Create Object <br/>";
            
            
$this->threaddm =& datamanager_init('Thread'$vbulletinERRTYPE_ARRAY'threadpost'); 
            
            echo 
"Object Created<br/>";
        }
        
        
        function 
postThread(){
            echo 
"Call Prova<br/>";
            
$class_methods get_class_methods($this->threaddm);

            foreach (
$class_methods as $method_name) {
                echo 
"$method_name\n";
            }
            
        }
    }

    
$vb = new codeigniter_bridge();
    
$vb->postThread();
?>
and this is what appens:
http://www.cyberludus.com/forum/codeigniter_bridge.php

Where I do wrong?

Thank you!
Reply With Quote
  #2  
Old 07-21-2010, 06:58 PM
Guest190829
Guest
 
Posts: n/a
Default

You need to pass a valid vBulletin registry object to the datamanager; in your script, $vbulletin doesn't have the proper scope in your method.

Pass $vbulletin through the constructor:

PHP Code:
function codeigniter bridge(&$registry) {
    
$this->registry =& $registry;
}

// *** .....

 
$vb =& new codeigniter_bridge($vbulletin); 
Reply With Quote
  #3  
Old 07-21-2010, 07:11 PM
James Birkett James Birkett is offline
 
Join Date: Jun 2009
Posts: 633
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Danny.VBT View Post
You need to pass a valid vBulletin registry object to the datamanager; in your script, $vbulletin doesn't have the proper scope in your method.

Pass $vbulletin through the constructor:

PHP Code:
function codeigniter bridge(&$registry) {
    
$this->registry =& $registry;
}

// *** .....

 
$vb =& new codeigniter_bridge($vbulletin); 
Wouldn't you consider it bad practice to pass the variables via referencing considering it's deprecated in 5.3?
Reply With Quote
  #4  
Old 07-21-2010, 07:21 PM
Guest190829
Guest
 
Posts: n/a
Default

Quote:
Originally Posted by James Birkett View Post
Wouldn't you consider it bad practice to pass the variables via referencing considering it's deprecated in 5.3?
Well I saw he had PHP 4 specific syntax (such as the constructor), so I provided my code with the same OO flavor. If you are running < PHP 5, you have to explicitly pass by reference or else you'll get some funky results.
Reply With Quote
  #5  
Old 07-21-2010, 07:46 PM
calwebsnc calwebsnc is offline
 
Join Date: Dec 2009
Posts: 11
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, now it works!
Thank you.

Code:
<?php 

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');


	class codeigniter_bridge{
		
		function codeigniter_bridge(&$registry){
			
			echo "Create Registry <br/>";
			
			$this->Registry =& $registry;
			
			echo "Is registry an object? ".is_object($this->Registry)."<br/>";
			
			echo "Create Object <br/>";
			
			$this->threaddm =& datamanager_init('Thread', $this->Registry, ERRTYPE_ARRAY, 'threadpost'); 
			
			echo "Object Created<br/>";
		}
		
		
		function postThread(){
			echo "Call Prova<br/>";
			$class_methods = get_class_methods($this->threaddm);

			foreach ($class_methods as $method_name) {
			    echo "$method_name<br/>\n";
			}
			
		}
	}

	$vb =& new codeigniter_bridge($vbulletin);
	$vb->postThread();
?>
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:26 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04074 seconds
  • Memory Usage 2,211KB
  • 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
  • (1)bbcode_code
  • (3)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (3)postbit_onlinestatus
  • (5)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
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete