![]() |
On/off or yes/no conditional help, please.
I'm trying to set a simple conditional to allow my members to enable/disable a sidebar based on usergroup permissions.
I have a CPF (field18), Single-Selection Radio Buttons, with the options being "Yes" and "No". In the user's profile options page, is an option: "Display the sidebar? (o) Yes ( ) No". If the YES button is checked, I want a conditional to display the respective code. From what I can tell by hunting around vb.com, this should work: <if condition="$post[field18] == 'Yes'"> But it doesn't. :\ What would the proper yes/no (or on/off) conditional syntax be? Thanks! |
What template are you using that condition in? I think that particular one - $post[field18] - is only available on the showthread page (and, I think it has to do with the poster, not the viewer, and you want the viewer, yes?). Have you tried $vbulletin->userinfo[field18] ?
|
That first part would certainly explain a lot, this is driving me nuts.
So what you're saying is: <if condition="$userinfo[field18] == 'Yes'"> Correct? /me goes off to try that |
The values are returned as 1 and 2, it's a number that is returned, not the text.
HTML Code:
</fieldset><fieldset class="fieldset"> |
This is what I tried, which didn't do it. I'm doing it on Forumhome:
Code:
<if condition="THIS_SCRIPT == 'index'"> |
Quote:
HTML Code:
<if condition="$vbulletin->userinfo[field13] <> 'Yes'"> |
Quote:
Code:
<if condition="THIS_SCRIPT == 'index'"> --------------- Added [DATE]1223488271[/DATE] at [TIME]1223488271[/TIME] --------------- Quote:
--------------- Added [DATE]1223488339[/DATE] at [TIME]1223488339[/TIME] --------------- While I'm at it (though I should probably start a new thread) - how would I go about setting usergroup permissions on my shiny new on/off CPF? :D The idea here is that contributers can turn something on/off, whilst regular registered users cannot. |
You need a hook after the userinfo is sorted out, yes.
Ok, it's passed from the form as 1 and 2 and stored for comparison in the field as the text, so go with that when comparing. Secondly. until you go to the profile page and click yes, the field will be blank. eg, the comparison will always fail. |
Quote:
Quote:
HTML Code:
<if condition="$vbulletin->userinfo[field18] == 'Yes' AND is_member_of($bbuserinfo,5,6)"> |
Quote:
|
Hmm, that sort of works, I see what you mean. If I just add that in there like this:
<if condition="$vbulletin->userinfo[field18] <> 'No' AND is_member_of($bbuserinfo,5,6)"> (sidebar code) then If it's set to Yes, and I'm in the right group, it shows the code. But if someone NOT in that usergroup has it set, then the conditional isn't matched and the code doesn't show. I might need to use a bunch of else's here, eh? --------------- Added [DATE]1223489616[/DATE] at [TIME]1223489616[/TIME] --------------- [high]* Guest210212002 hasn't had enough coffee [/high] What I need here is a conditional to ignore the yes/no conditional for everyone BUT contributors. That way the code is shown to everyone who does NOT have permission to use the yes/no thing. Does that make sense? |
I don't understand what you are saying.... If someone not in the usergroup (right now with your statement, only usergroup 5 and 6 which are admins/super mods) sets field18, it should not do a thing for them. Isn't that what you want?
|
My head hurts. :D
Here's my layout. Without conditionals, I have sidebar code for everyone. Then I want to only show it on the index, so I added this: <if condition="THIS_SCRIPT == 'index'"> Then I want it to show or not show, based on the CPF, so I added this: <if condition="$vbulletin->userinfo[field18] <> 'No'"> That works right now, for everyone - they can all show or hide the sidebar (huzzah!). So my code looks like: Code:
<if condition="THIS_SCRIPT == 'index'"> Code:
<if condition="THIS_SCRIPT == 'index'"> Unfortunately that didn't work. :( With that setup, the sidebar always shows. Basically what I need is for it to show to everyone, unless they are in group 5/6, and if they are in group 5/6, only if the on/off conditional is set to Yes. |
Let me get this straight..... You want "Hooray, this is my sidebar" (using the example) to show for everyone *unless* they are in group 5/6, and if they are in group 5/6, only if the on/off conditional is set to Yes.
HTML Code:
<if condition="THIS_SCRIPT == 'index'"> |
I am so sorry. :D
Yes, you have it right. That conditional gives me a malformed error though, but I think that's the right idea. --------------- Added [DATE]1223492073[/DATE] at [TIME]1223492073[/TIME] --------------- I think I finally got it! Your conditional was just missin' one closing parenthesis (or my browser is bad at copy/paste) Code:
<if condition="(in_array($bbuserinfo['usergroupid'], array(5, 6)) AND $vbulletin->userinfo[field18] <> 'No') OR !in_array($bbuserinfo['usergroupid'], array(5, 6))"> |
You must have grabbed my condition as soon as I posted it cuz I modified it less than a minute later to add the closing parenthesis!
|
All times are GMT. The time now is 02:21 AM. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|