PDA

View Full Version : Bitfield permissions in plugin


toonysnn
06-06-2008, 11:45 PM
I cannot seem to get a plugin to work properly with bitfield permissions, how can I do this? My PHP file (irc.php) seems to run just fine with the same code.
Here's my plugin:

$ezirc_title = $vbulletin->options[ezirc_title];
if($vbulletin->options[ed_irc] == 1) {

if(($permissions['ezircpermissions'] & $vbulletin->bf_ugp['ezircpermissions']['canviewirc'])) {
if($vbulletin->options[ezirc_navbar_on] == 1) {
$template_hook[navbar_buttons_right] .= "
<td class=\"vbmenu_control\"><a href=\"./irc.php\">".$ezirc_title."</a></td>";
}
$ezirc_ui = $vbulletin->userinfo;
$ezirc[hostname] = $vbulletin->options[ezirc_server];
$ezirc[channels] = $vbulletin->options[ezirc_channel];
$ezirc[quitmsg] = $vbulletin->options[ezirc_quitmsg];
$ezirc_global = <<<EOF
<div align="center">
<applet codebase="./irc/" code="IRCApplet.class" archive="irc.jar,pixx.jar" width=640 height=400>
<param name="CABINETS" value="irc.cab,securedirc.cab,pixx.cab">
<param name="nick" value="$ezirc_ui[username]">
<param name="alternatenick" value="$ezirc_ui[username]???">
<param name="quitmessage" value="$ezirc[quitmsg]">
<param name="name" value="Live Chat">
<param name="host" value="$ezirc[hostname]">
<param name="useidentserver" value="true">
<param name="gui" value="pixx">
<param name="command1" value="join $ezirc[channels]">
</applet>
</div>
EOF;

}
}
}

Dismounted
06-07-2008, 06:33 AM
Make sure all variables exist ;).

toonysnn
06-07-2008, 09:20 AM
They should exist. I created them and tested it with the PHP file itself and it worked, but now I'm trying to get it for the navbar (since it has auto-template features).

Opserty
06-07-2008, 09:37 AM
Are you sure the $permissions variable exists? (Run var_dump() on it if you need to)

Also, array keys should be enclosed in single quotes when writing PHP Code.

toonysnn
06-07-2008, 09:41 AM
Are you sure the $permissions variable exists? (Run var_dump() on it if you need to)

Also, array keys should be enclosed in single quotes when writing PHP Code.
Hmm...looks like it doesn't. I did global $permissions, expecting it's the same as the php files, didn't work.

That reminds me, I was going to move those to an array().

Opserty
06-07-2008, 09:44 AM
Thought so ;)

You'll need to pull the permissions from the usergroup (if they are not set in the $vbulletin->userinfo array). var_dump() $vbulletin->userinfo and see if there is anything about permissions. Else you will have to use $vbulletin->usergroupcache & $vbulletin->userinfo to get the correct permissions for the usergroup.

toonysnn
06-07-2008, 09:50 AM
Could it possibly be because it was in global_start? I just moved it to global_setup_complete and it works as it should..and the var_dump worked.

I feel dumb again. Lol. Especially when the obvious is right in front of you...

Opserty
06-07-2008, 10:17 AM
I find that global_start always seems to act a bit odd when it comes to debugging, must be due to the output buffering or something. Glad you got it working though ;)

Dismounted
06-07-2008, 12:14 PM
global_start, as it's name suggests, is run before (basically) anything runs. So not much "advanced" variables exist there.

And yes, Opserty, global_start is in an output buffer.