PDA

View Full Version : Unknown Function in class_postbit.php


pyro.699
07-03-2006, 01:10 PM
Hello,

I am making a new hack, based off of the ucash and ushop modification from scratch. As you would guess, there is a postbit modification for when the user posts. It will display his/her current points. Here is the plugin that i used:


Hook Location: postbit_display_complete

$result = $vbulletin->db->query_write("SELECT points FROM user WHERE userid = ".$post['userid']."");
while ($row = mysql_fetch_assoc($result))
{
$this->post['posts'] .= '<div>'.
$vbphrase['point_name'].': '.$row[points].'
</div>';
}

This avoids template editing.

Now, another portion of my script involves giving out elaborate pm's to users. When you go to view the pm, i get this error message:

Fatal error: Call to a member function query_write() on a non-object in X:\xampp\htdocs\mixed\includes\class_postbit.php(2 79) : eval()'d code on line 1


Line 279:

($hook =& vBulletinHook::fetch_hook('postbit_display_complet e')) ? eval($hook) : false;

is including the hook 'postbit_display_complete' which is where my plugin is.

I believe that there is something wrong with me adding on to the variable which probably doesn't exist, since its not a post, but a pm. I need a way to tell if it is making a post or viewing a pm!

(also, i do not know what the variable is, inside of $this->X['posts'] to add under the post count of a pm)

If you have any ideas, please let me know!
~Cody Woolaver

Adrian Schneider
07-03-2006, 02:52 PM
This will add a query for each post displayed... (bad idea)

Use $this->registry->db instead of $vbulletin->db, as $vbulletin isn't available inside of classes. Don't use mysql_fetch_array; instead, use $this->registry->fetch_array()

You are probably better off editing the template cache dynamically rather than modifying the post count value, because from the looks of it now this will break your HTML a little...

tonjohn
02-02-2012, 03:46 PM
This will add a query for each post displayed... (bad idea)
I assume the better idea is to hook showthread_query?

Except in pyro.699's case, there is no need to alter the query or add another as the showthread_query selects all columns from the user table already.