PDA

View Full Version : Custom Plugin Help- Why isn't this working?


BirdOPrey5
07-23-2010, 09:10 PM
First I know for a fact I had this working 2 days ago... I don't know what I changed
but now it's not working at all... What this used to do is IF the system was turned on it would display a custom signature template... the custom signature template (hidden_sigs) is my working template modification that puts the signature in a 'spoiler' box to hide it from display unless someone clicks on the spoiler button.

The plugin code is:


global $vbulletin;
if ($vbulletin->options['hiddensigson'])
{
require_once(DIR . '/includes/class_bbcode.php');
$bbcode_parser =& new vB_BbCodeParser($GLOBALS['vbulletin'], fetch_tag_list(),true);
$post['signature'] = $bbcode_parser->parse($post['signature'],$vbulletin->options['validfid'],true);
eval('$template_hook[postbit_signature_start] .= " ' . fetch_template('hidden_sigs') . '";');
$post['signature'] = '';
}


Two problems... first is the eval() function line gives me the following error on top of a page when I view a post:
Warning: Missing argument 2 for is_member_of(), called in [path]/includes/class_postbit.php(265) : eval()'d code(8) : eval()'d code on line 6 and defined in [path]/includes/functions.php on line 470

When I comment out that line I don't get the error so I'm sure that line is the cause but I've checked in literally 10 times and it looks exactly right to me.

Second, and possibly the bigger issue, for some reason this code is no longer working at all, I know I had this hiding sigs the other day just fine- then I tried to add a new option to it and it all went to hell... now I've been dissecting this line by line to see what I changed but everything looks right... I've commented out the IF statement but it still doesn't work.

FYI the last line of the plugin changes the sig to an empty string because the custom template already displays the sig.

The plugin is on postbit_display_start

Does anyone see what I'm missing here? In english the code is basically:
IF the system is enabled
{
Turn on BBCode Parser
Sig = The parsed Sig code
Display 'hidden_sigs' template
Sig = Blank
}
:confused:

kh99
07-23-2010, 10:20 PM
The eval code is fetching the template "hidden_sigs", so I'd guess that maybe the error is in there. Does that template use "is_member_of()"?

BirdOPrey5
07-23-2010, 10:37 PM
no the template is just an if conditional, if the signature exists display it in the spoiler box... the is_memeber_of is something I was going to add but never got that far.

Template:


<if condition="$post[signature]">
<!-- sig -->
<div>
__________________<br />
<if condition="is_member_of($hiddensiggroups)">
<div style="margin:20px; margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">
<input type="button" value="Show Signature"
style="font- size:10px;margin:0px;padding:0px;"
onClick="if (this.parentNode.parentNode.getElementsByTagName
('div')[1].getElementsByTagName('div')[0].style.display != '')
{ this.parentNode.parentNode.getElementsByTagName(
'div')[1].getElementsByTagName('div')[0].style.display = '';
this.innerText = ''; this.value = 'Hide Signature'; } else
{ this.parentNode.parentNode.getElementsByTagName('d iv')
[1].getElementsByTagName('div')[0].style.display = 'none';
this.innerText = ''; this.value = 'Show Signature'; }">
</div> <div style="margin: 0px; padding: 6px; border:
1px inset;"> <div style="display: none;">
$post[signature]
</div></div></div>
<else />
$post[signature]
</if>
</div>
<!-- / sig -->
</if>


EDIT- hmmm.. yeah I guess I did add the is_memeber_of... must have been so late I forgot about it- ok well that explains why the sig isn't working... I guess this is the cause of both errors... Thanks.