PDA

View Full Version : Fatal error: Call to a member function on a non-object


l3vi
12-15-2005, 07:26 PM
Im working on a plugin that is part of postbit under postbit_display_complete.

Each time I call any of the objects below I get member function on a non-object error.

Fatal error: Call to a member function on a non-object in …../includes/class_postbit.php(279) : eval()'d code on line 1

I know what the error means, but I can not figure why its calling this error when I look at the source for showthread.php everything looks right. I even ran some test without the obj calls and it runs fine, except no data. The only thing that I have found is if I have any of them in they give the error.

$db->query_read("..")

$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());

$vbulletin->options['maxrepgv']

$db->fetch_array($post_query)

$bbcode_parser->parse($reputation['reputation '])

Any ideas?

merk
12-15-2005, 08:24 PM
postbit_display_complete is not in the normal context of most hooks (it is inside the postbit class). You will not be able to use $vbulletin or $db.

Most vBulletin classes still have access to $vbulletin through $this->registry though (and you should use $vbulletin->db, not $db.)


$this->registry->db->query_read("..")

$bbcode_parser =& new vB_BbCodeParser($this->registry, fetch_tag_list()); #have you require_once()'d the correct bbcode files?

$this->registry->options['maxrepgv']

$this->registry->db->fetch_array($post_query)

$bbcode_parser->parse($reputation['reputation '])

l3vi
12-15-2005, 09:18 PM
Thanks man that did it!

I have another question;
On my $post_reputations_bit = $this->registry->db->query_read it should only work under post_bit_complete in the forums.

var $post_reputations_bit was $post_reputations and I had changed it becuase I now get an error in the message area when I try and view a message that has text in it.

When you go to view a message in private.php it uses the same query that my script is using under postbit_complete do I need to clean out(unset) a var in db or registry?

EDIT: I think I got what I need to do. postbit_complete is also ran in the PM system, so I need to find something like threadid and do a if. ;p