PDA

View Full Version : Administrative and Maintenance Tools - Advanced BBCode (Use conditionals in BBCodes)


harmor19
06-06-2007, 10:00 PM
It kind of bothered me that you couldn't use vBulletin conditionals in the BBCodes. For example you couldn't use <if condition="$bbuserinfo[usergroupid] == {option}">{param}</if>.

With this small hack you can customize your BBCodes by using vBulletin's own conditionals.

Installing
Download the plugin XML. Go into to your ACP --> Plugins & Products --> Download / Upload Plugins. Scroll to the bottom of the page. Browse to vbulletin-plugins_adv_bbcodes.xml and click "Import".

View the screenshot for an example BBCode you can use.

harmor19
06-07-2007, 05:03 AM
I hope you like this hack.

Subah
06-07-2007, 08:27 AM
Thanks :)

Benj
06-07-2007, 08:36 AM
sweet

harmor19
06-07-2007, 06:32 PM
Thanks you two.

Muellmann
06-07-2007, 08:50 PM
Superb! This opens much more possibilities - thanks. :up:

RMS-Chef
06-07-2007, 09:14 PM
Great idea.
Anyway to set it to use an array for multiple groups?

Muellmann
06-07-2007, 09:52 PM
Can you make it such, that it doesn't ignore the "<else />" statement?
Sometimes the "<else />" works one time and then not. This would be very helpful if you could fix that.

harmor19
06-07-2007, 09:58 PM
What replacement code are you using?

harmor19
06-07-2007, 10:01 PM
Great idea.
Anyway to set it to use an array for multiple groups?
I tried and couldn't get it to work.

Muellmann
06-07-2007, 10:51 PM
For example:
<if condition="$bbuserinfo['userid']>0">{param}<else />This code is not visible for Guests</if>

or:
<if condition="$bbuserinfo['reputation']>=100">{param}<else />This code is only visible for reputation points.</if>

Other question security related:
I found out that it would parse vb variables directly in the post.
The question is if there is a security matter / issue or not?!
For example I can write in my post $bbuserinfo[reputation] and it would
directly in my post show my reputation value. So I am afraid it could be used by
members for malicious actions or is this impossible?

harmor19
06-07-2007, 11:09 PM
The conditionals work for me.

It's not really a security risk but you may have data you don't want them to see.

Murty
06-07-2007, 11:54 PM
Could you use this to specify the bbcode to only be used in a particular forum? If so, what code would you use?

AzzidReign
06-08-2007, 02:01 AM
Hmmm, interesting. I'm going to click install for now and download and install this to my site later!

harmor19
06-08-2007, 03:24 AM
There are a two problems with this mod. One is where a member can type $bbuserinfo[var] and it will output the value in the database but only for their userid. I used preg_replace to fix the problem.
Another is when someone types an array with either single or double quotes $var['foo'] or $var["foo"].
Can anybody help with the second problem?

mhmd1983
06-08-2007, 08:10 AM
Great mod , even with the simple example you wrote it'll be much fun to use it

WAR
06-15-2007, 04:42 PM
Did you include the fix for the first problem in the plugin yet?

For restricting multiple usergroups, can you use the is_member_of() function instead of the boolean operator? (I know that this works in templates, not sure about here)

Example:

<if condition="is_member_of($bbuserinfo,{option})">{param}</if>

visible to mods and admins only

or you might need quotes, depending on how things are parsed, and whether or not this is related to problem #2 above:

'[/COLOR]5,6']visible to mods and admins only

I am concerned about the security risk, because I have a ton of private/hidden profile fields with personal information about my users that I wouldn't want people to have access to

raywjohnson
08-05-2007, 12:52 AM
Other question security related:
I found out that it would parse vb variables directly in the post.
The question is if there is a security matter / issue or not?!
For example I can write in my post $bbuserinfo[reputation] and it would
directly in my post show my reputation value. So I am afraid it could be used by
members for malicious actions or is this impossible?


Installed and working great! But, is there any security/abuse concern here? Can this be exploited?

--RayJ

raywjohnson
08-05-2007, 01:27 AM
There are a two problems with this mod. One is where a member can type $bbuserinfo[var] and it will output the value in the database but only for their userid. I used preg_replace to fix the problem.
Another is when someone types an array with either single or double quotes $var['foo'] or $var["foo"].
Can anybody help with the second problem?

I have some concern about this, could you give an example of the preg_replace regex and where to put it? I would guess it would go in the plugin, but before or after the eval('$text = "' . compile_template($text) . '" ;'); ?

Thanks for any info!

--RayJ

PS: My failed attempt: eval(preg_replace('/(\$)(show|stylevar|userinfo|vboptions|vbphrase)(\[.+\])/i',"$1 $2 $3",$text));

raywjohnson
08-05-2007, 09:03 PM
It seems as if this only works on new/updates posts. It fails to function for bbcodes in the post-cache. Any info on how to fix this?

Thanx, RayJ

punchbowl
02-20-2008, 02:08 PM
this could be* exactly what I'm looking for! I love this site!

Thanks

*or not

DragonBlade
10-17-2008, 11:26 AM
When I created a post, it worked great!

After a few minutes, I guess the post-cache kicked in or something, and it displayed the <if> and <else> tags as regular HTML tags.

After disabling post-caching, it seems to work fine.

Any way I could have this AND have post-caching, or does it just not work that way?

mmoore5553
05-24-2009, 05:32 PM
any updates on this and post caching ? any other security flaws ?

BirdOPrey5
10-08-2010, 12:20 AM
Any chance of getting this fixed and working for 3.8?

Scanu
02-26-2011, 06:45 PM
Please make a new version of this plugin for vb 4.1
Is fantastic. Please help me :)

dutchbb
02-17-2013, 11:34 AM
Can someone make this work with post caching and <else /> statements in vb3.8 please, thanks.

Tyran1
03-08-2013, 12:00 AM
,.......

ExcelFox
04-13-2013, 02:34 PM
If you can have a look at this.. would be great

https://vborg.vbsupport.ru/showthread.php?p=2416099