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

Reply
 
Thread Tools Display Modes
  #1  
Old 10-09-2014, 07:49 AM
fxdigi-cash fxdigi-cash is offline
 
Join Date: Jul 2012
Posts: 674
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default hide a specific block from the sidebar

Hi,

I want to know how to hide a certain block from the sidebar because I'm trying to test hiding blocks from a specific style using this:

Code:
<vb:if condition="THIS_SCRIPT =='index' AND $bbuserinfo['styleid']==10">
I'm wondering what to do in order to hide a block. I tired to create a new block_html template and then use it as a block in the block adding manager through html/php, but that didn't work...

any idea how to do that??

Reply With Quote
  #2  
Old 10-09-2014, 09:39 AM
Disco_Stu Disco_Stu is offline
 
Join Date: Apr 2012
Posts: 305
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Just enclose your block of code within a span or division and then toggle the display from NONE to BLOCK whenever you want to hide or display your code:

Here the span is hidden via the style attribute of "display:none"

Code:
<span id="myspan" style="display:none;">
and here it is displayed:

Code:
<span id="myspan" style="display:block;">
To change it I created two functions LoadElement and HideElement which accepts the name of a span or division as the parm.

Code:
function LoadElement(eid)
{
  var element = document.getElementById(eid);
  element.style.display = 'block';
}
Code:
function HideElement(eid)
{
  var element = document.getElementById(eid);
  element.style.display = 'none';
}

Then to display the span:

Code:
LoadElement('myspan');

and to hide the span:

Code:
HideElement('myspan');
That's how I do it. Of course you still need the code to test for a specific user , group or style that you want to show/hide the block for
Reply With Quote
  #3  
Old 10-09-2014, 02:19 PM
fxdigi-cash fxdigi-cash is offline
 
Join Date: Jul 2012
Posts: 674
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks @Disco_Stu

The solution is good, but not recommended by vbulletin. I have tried similar solution in the past using display:none property, but I was told to avoid such thing for some reason.

I'm still looking for a plugin type solution to make things easier
Reply With Quote
  #4  
Old 10-09-2014, 03:04 PM
Disco_Stu Disco_Stu is offline
 
Join Date: Apr 2012
Posts: 305
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm not sure why you were told to avoid using what is a standard style attribute used by millions of web sites but to each their own.
Reply With Quote
  #5  
Old 10-09-2014, 03:49 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The only reason I can think you were told that is because the block will still actually be in the source code of the page. So, if you had information in there that you didn't want others to see, they could still see it in the page source. Or, if the reason you don't want to block is to save resources (queries, etc), then hiding the block won't do that either.
Reply With Quote
  #6  
Old 10-09-2014, 04:15 PM
Disco_Stu Disco_Stu is offline
 
Join Date: Apr 2012
Posts: 305
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

if you are trying to hide a display due to a security issue then an easy way to do that is to store the code in a DB table and then when you want to display it just read each line of code and populate a span or division with the contents of the DB table.

For example, let's say you have some code that only user 123 should see.

1) Test for user 123

2) If user 123 then load up a variable called myhiddencode with some code read from a DB table. Then populate a division with that code

Code:
 document.getElementById(mydivision').innerHTML = '<div >' + myhiddencode + '</div>' ;
3) If not user 123 then

Code:
 document.getElementById(mydivision').innerHTML = '<div > </div>' ;

Then only user 123 will see the code and it will not be part of the page source for any other user so they cannot see it even if they dump the entire page source.
Reply With Quote
  #7  
Old 10-09-2014, 07:21 PM
tbworld tbworld is offline
 
Join Date: Oct 2008
Posts: 2,126
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by fxdigi-cash View Post
Hi,

I want to know how to hide a certain block from the sidebar because I'm trying to test hiding blocks from a specific style using this:

Code:
<vb:if condition="THIS_SCRIPT =='index' AND $bbuserinfo['styleid']==13">
I'm wondering what to do in order to hide a block. I tired to create a new block_html template and then use it as a block in the block adding manager through html/php, but that didn't work...

any idea how to do that??

I think you were on the right track.

So create a new template for "block_html", lets call it "block_html_new" and then insert your conditional. I placed optional conditionals in the two most likely positions, for reference, in the markup below. (I know you tried this, but I think you missed a step.)


Contents of newly created template "block_html_new"
Code:
<!-- HTML/Template Wrapper Conditional - START -->
<vb:if condition="THIS_SCRIPT =='index' AND $bbuserinfo['styleid']==3">

<li>
    <div class="block smaller">
        <div class="blocksubhead">
            <a class="collapse" id="collapse_block_html_{vb:raw blockinfo.blockid}" href="{vb:raw relpath}#top"><img alt="" src="{vb:stylevar imgdir_button}/collapse_40b.png" id="collapseimg_html_{vb:raw blockinfo.blockid}"/></a>
            <span class="blocktitle">{vb:raw blockinfo.title}</span>
        </div>
        <div class="widget_content blockbody floatcontainer">
        <div id="block_html_{vb:raw blockinfo.blockid}" class="blockrow">


<!-- Block content only conditional - START -->
   <vb:if condition="THIS_SCRIPT =='index' AND $bbuserinfo['styleid']==13">
      Styleid: {vb:raw bbuserinfo['styleid']}
   </vb:if>
<!-- Block content only conditional - END -->


            {vb:raw content}  <!-- In this example, the variable will return "<dummy></dummy>"  -->
        </div>
        </div>
    </div>
    <div class="underblock"></div>
</li>
</vb:if>
<!-- HTML/Template Wrapper Conditional - END -->



IMPORTANT
!!!
-------------------
1.) Make sure you insert text or some dummy tag in the "content" box in the "Block Manager" --> "Edit Box" dialogue. If the text-box is empty the block will not be processed. [NOTE: vb-conditionals will not work in this text-box -- the HTML dialog box on Block Manager --> Edit.
Code:
  <dummy></dummy>
or
  <!-- comment -->  
or
  <div>actual content</div>
2.) When testing, set the cache time to '0', but set it back to a higher number for production.

Reply With Quote
  #8  
Old 10-09-2014, 08:00 PM
cellarius's Avatar
cellarius cellarius is offline
 
Join Date: Aug 2005
Posts: 1,987
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Disco_Stu View Post
I'm not sure why you were told to avoid using what is a standard style attribute used by millions of web sites but to each their own.
I like to not render what I don't want to show, instead of first rendering and then hiding it
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 02:12 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.03770 seconds
  • Memory Usage 2,239KB
  • 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
  • (12)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (8)post_thanks_box
  • (8)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (8)post_thanks_postbit_info
  • (8)postbit
  • (8)postbit_onlinestatus
  • (8)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
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete