Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 07-05-2013, 02:39 AM
Revenga Revenga is offline
 
Join Date: Mar 2012
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default 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
Reply With Quote
  #2  
Old 07-05-2013, 03:49 AM
nerbert nerbert is offline
 
Join Date: May 2008
Posts: 784
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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);
                }
        }
}
You can play with the styling if mine is too obnoxious. I haven't tested this much so give it a good testing.
Reply With Quote
Благодарность от:
tbworld
  #3  
Old 07-05-2013, 01:52 PM
Revenga Revenga is offline
 
Join Date: Mar 2012
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Only problem is when someone quotes the post, they can see what's inside the restricted part.

- Revenga
Reply With Quote
  #4  
Old 07-05-2013, 02:04 PM
nerbert nerbert is offline
 
Join Date: May 2008
Posts: 784
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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
Reply With Quote
  #5  
Old 07-05-2013, 02:27 PM
Revenga Revenga is offline
 
Join Date: Mar 2012
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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
Reply With Quote
  #6  
Old 07-05-2013, 07:11 PM
nerbert nerbert is offline
 
Join Date: May 2008
Posts: 784
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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);
}
See if the restricted text is completely cut out for regular members. I'll get back later with more for quick editing.
Reply With Quote
  #7  
Old 07-05-2013, 07:44 PM
Revenga Revenga is offline
 
Join Date: Mar 2012
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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
Reply With Quote
  #8  
Old 07-05-2013, 07:53 PM
nerbert nerbert is offline
 
Join Date: May 2008
Posts: 784
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
  #9  
Old 07-05-2013, 10:47 PM
Revenga Revenga is offline
 
Join Date: Mar 2012
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nope, everything looks correct. Same issues exist.

- Revenga
Reply With Quote
  #10  
Old 07-06-2013, 12:56 AM
nerbert nerbert is offline
 
Join Date: May 2008
Posts: 784
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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);
}
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 12:31 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
  • Page Generation 0.15797 seconds
  • Memory Usage 2,264KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (10)post_thanks_box
  • (1)post_thanks_box_bit
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete