Log in

View Full Version : QUERIES in plugins/hooks


edbri871
07-23-2005, 11:58 PM
Whenever I add a query to the php code in a plugin my page just loads blank whenever it calls that code.
Like there's an error in my php code, but teh query is fine...

I saved my code inside a file (quickmod.php) instead of in a plugin, and put "include('quickmod.php');" right under the hook's placement in it's file, and the query can run just fine.

Are queries in plugins not supported? I would really like to get this mod working as a plugin. :(

Here is some code incase you see something:

//Posts and Threads to moderate
if (can_moderate(0, 'canmoderateposts'))
{
$posts = $db->query_first("SELECT COUNT(*) AS count FROM " . TABLE_PREFIX . "moderation WHERE type = 'reply'");
$posts['count'] = vb_number_format($posts['count']);
$show['posts'] = true;

$threads = $db->query_first("SELECT COUNT(*) AS count FROM " . TABLE_PREFIX . "moderation WHERE type = 'thread'");
$threads['count'] = vb_number_format($threads['count']);
$show['threads'] = true;
}

If i remove the 2 queries the page will load fine.


edit: also, seems I can't fetch a template either?

eval('$moderate = "' . fetch_template('navbar_moderation') . '";');
If i put $moderate in my code, it just does nothing.

Marco van Herwaarden
07-24-2005, 05:09 AM
Very difficult to answer from only this small piece of code, but try the following:

To include your script, use 'require_once' instead of 'include'. Put all logic of your script into a function. Return the value of $moderate like with the following in the end of your new function:
return eval('$moderate = "' . fetch_template('navbar_moderation') . '";');
Then in your plugin call that function with:
$moderate = my_function();

PS I haven't finished my coffee, so the above will be full of errors. :D

edbri871
07-24-2005, 03:26 PM
I really don't need to show any more code.
What is there works fine if i comment out the query, once it's uncommented like in the above code it wont work.


edit:

here's what's ive tried to do with the fetch template:

require_once('includes/quickmod.php');
$moderate = quick_mod_template();
That is the plugin.

This is the code in quickmod.php:

function quick_mod_template()
{
return eval('$moderate = "' . fetch_template('navbar_moderation') . '";');
}


nothing. :(

edit2: I just noticed that even if (altho it's very stupid, but i'm only testing here) I just put "$moderate = 'test';" into my plugin, and remove all other code, then put $moderate in a template, it won't show... :S

rossco_2005
07-25-2005, 12:00 AM
It seems I was just using the wrong hook, i was using global_complete when I should have been using global_start. :P

If anyone is interested here is the full mod I was working on:
https://vborg.vbsupport.ru/showthread.php?p=741226#post741226


ps. this is the person using the account edbri871 for this thread, i decided to create my own account because I will be releasing a few mods.