The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Create new BB Code only viewable by Super Moderators and Administrators
Hi, I'm running a vBulletin 3.8.7 forum and basically what I'm looking for is how to go about creating a code such as:
[restricted]this text here should only be viewable by Super Moderators and Administrators.[/restricted] I want to be able to use that in posts to make comments to only my admins and super mods. I also want only the admin and super mod usergroups to have permission to use that BB Code - No one else. How do I accomplish this? - Revenga |
#2
|
|||
|
|||
Conditionals just don't work inside bb codes; they don't execute at all. Maybe what you could do is have something like this
<div style="display:none" name="restricted">{param}</div> Then up in the <head> have a script that changes the display to "block" for admins and supers for window.onload. The trouble is this will be visible in the source code to anyone who looks. Actually I don't think there's any direct way to do it with the bbcode system, you would have to do it with php in a plugin in showthread.php and have regular expression matching chop the text out for registered members --------------- Added [DATE]1373001216[/DATE] at [TIME]1373001216[/TIME] --------------- I'm going to work on this. Check back in an hour or so. --------------- Added [DATE]1373005186[/DATE] at [TIME]1373005186[/TIME] --------------- Make a plugin for showhread_complete and an identical one for showpost-complete with this code: Code:
$test = preg_match_all('#\[restricted\]([\s\S]*?)\[/restricted\]#i', $postbits, $matches); $style = " background:#ffffcc; border:1px solid black; padding:6px; color:red; "; $open_tag ='<div style="' . $style . '">'; $close_tag = '</div>'; if($test) { for($i = 0; $i < count($matches[0]); $i++) { if(is_member_of($vbulletin->userinfo, array(6,7))) { $postbits = preg_replace('#' . preg_quote($matches[0][$i], '#') . '#', $open_tag . $matches[1][$i] . $close_tag, $postbits); } else { $postbits = preg_replace('#' . preg_quote($matches[0][$i], '#') . '#', '', $postbits); } } } |
Благодарность от: | ||
tbworld |
#3
|
|||
|
|||
Only problem is when someone quotes the post, they can see what's inside the restricted part.
- Revenga |
#4
|
|||
|
|||
You mean they can see it in the reply editor or it shows up in the finished post? Or both?
I'll try to figure this out. Will get back later |
#5
|
|||
|
|||
They can see it in the reply editor. Also when you go to advanced reply and scroll toward the bottom where it has some of the previous posts, it shows up for them there too. That's all I noticed atm.
- Revenga |
#6
|
|||
|
|||
I'm not finished yet, I still have to work on quick editing but for now I think I have this fixed for new replies .
make a new plugin for newreply_form_complete with this code; Code:
$test = preg_match_all('#\[restricted\]([\s\S]*?)\[/restricted\]#i', $threadreviewbits, $matches); $style = " background:#ffffcc; border:1px solid black; padding:6px; color:red; "; $open_tag ='<div style="' . $style . '">'; $close_tag = '</div>'; if($test) { for($i = 0; $i < count($matches[0]); $i++) { if(is_member_of($vbulletin->userinfo, array(6,7))) { $threadreviewbits = preg_replace('#' . preg_quote($matches[0][$i]) . '#', $open_tag . $matches[1][$i] . $close_tag, $threadreviewbits); } else { $threadreviewbits = preg_replace('#' . preg_quote($matches[0][$i]) . '#', '', $threadreviewbits); } } } $test = preg_match_all('#\[restricted\]([\s\S]*?)\[/restricted\]#i', $postpreview, $matches);//was $postpreview $style = " background:#ffffcc; border:1px solid black; padding:6px; color:red; "; $open_tag ='<div style="' . $style . '">'; $close_tag = '</div>'; if($test) { for($i = 0; $i < count($matches[0]); $i++) { if(is_member_of($vbulletin->userinfo, array(6,7))) { $postpreview = preg_replace('#' . preg_quote($matches[0][$i]) . '#', $open_tag . $matches[1][$i] . $close_tag, $postpreview); } else { $postpreview = preg_replace('#' . preg_quote($matches[0][$i]) . '#', '', $postpreview); } } } if(!is_member_of($vbulletin->userinfo, array(6,7))) { $messagearea = preg_replace('#\[restricted\][\s\S]*?\[/restricted\]#i', '', $messagearea); } |
#7
|
|||
|
|||
Nope, still the same problem: the [restricted] tags are still showing up for regular members in the reply editor and where it shows the previous posts on the newreply.php page.
- Revenga |
#8
|
|||
|
|||
I'll transfer this project over to my dev site and see what I can do. I'm working in vB 4.2.0, I doubt there would be any major differences in any vB 3 version.
--------------- Added [DATE]1373061935[/DATE] at [TIME]1373061935[/TIME] --------------- When I moved the plugins over to my dev site I mistakenly put the last plugin in newthread_form_complete instead of newreply_form _complete. Is it possible you did the same? And another correction: Move the plugin for showthread to showthread_complete. |
#9
|
|||
|
|||
Nope, everything looks correct. Same issues exist.
- Revenga |
#10
|
|||
|
|||
OK, I found one error in the last plugin. The preview and reviewed posts were working right but the editor text wasn't. Here's the corrected code:
Code:
//ini_set('display_errors', '1'); $test = preg_match_all('#\[restricted\]([\s\S]*?)\[/restricted\]#i', $threadreviewbits, $matches); $style = " background:#ffffcc; border:1px solid black; padding:6px; color:red; "; $open_tag ='<div style="' . $style . '">'; $close_tag = '</div>'; if($test) { for($i = 0; $i < count($matches[0]); $i++) { if(is_member_of($vbulletin->userinfo, array(6,7))) { $threadreviewbits = preg_replace('#' . preg_quote($matches[0][$i]) . '#', $open_tag . $matches[1][$i] . $close_tag, $threadreviewbits); } else { $threadreviewbits = preg_replace('#' . preg_quote($matches[0][$i]) . '#', '', $threadreviewbits); } } } $test = preg_match_all('#\[restricted\]([\s\S]*?)\[/restricted\]#i', $postpreview, $matches);//was $postpreview $style = " background:#ffffcc; border:1px solid black; padding:6px; color:red; "; $open_tag ='<div style="' . $style . '">'; $close_tag = '</div>'; if($test) { for($i = 0; $i < count($matches[0]); $i++) { if(is_member_of($vbulletin->userinfo, array(6,7))) { $postpreview = preg_replace('#' . preg_quote($matches[0][$i]) . '#', $open_tag . $matches[1][$i] . $close_tag, $postpreview); } else { $postpreview = preg_replace('#' . preg_quote($matches[0][$i]) . '#', '', $postpreview); } } } if(!is_member_of($vbulletin->userinfo, array(6,7))) { $messagearea = preg_replace('#\[restricted\]([\s\S]*?)\[/restricted\]#i', '', $messagearea); } |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|