Go Back   vb.org Archive > vBulletin 5 Connect Discussion > vB5 Design and Graphics Discussions

Reply
 
Thread Tools Display Modes
  #1  
Old 12-26-2017, 04:40 AM
Anton Rahman Anton Rahman is offline
 
Join Date: Nov 2014
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Vbulletin 5, how to hide forum sub-categories on home page ?

Good day to all vbulletin geeks

Any idea on how to hide all forum sub-categories and their sub-categories from the home page ?

We are using Vbulletin 5 default style.

We will answer the funny unintuitive question before someone will have the first honor ;
AND WHY WOULD WE WANT TO DO THAT ?
Well of course you must have guessed it :
We simply have too many sub-categories which makes the main page look too long

This is the case scenario :
We have 5 main categories ACTING AS CATEGORIES “not channels”
Under each we have about 5 sub-categories , also ACTING AS CATEGORIES “not channels”
Then finally under each we have about 5 sub categories, those are already ACTING AS CHANNELS “meaning user can post”

So again to further clarify “we want to hide all sub-categories and their sub-categories from the main or home page, thus leaving only the main categories to display on the home page, so the rest of sub-categories and their sub-categories and channels are viewable only when the user clicks any of the main categories URLS thus navigating to that particular main category forum URL

Any ideas ? most importantly not a JAVA SCRIPT because it wouldn’t be compatible with some browsers
Also hopefully a direct edit to the vB5 DEFAULT STYLE templates and not a css_additional.css ?
Reply With Quote
  #2  
Old 12-26-2017, 07:52 AM
Seven Skins's Avatar
Seven Skins Seven Skins is offline
 
Join Date: Sep 2008
Location: London, UK
Posts: 1,481
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

May be you are looking for this ...

edit display_Forums_list template and comment out this block of code. This code is from vb 5.3.4

HTML Code:
        <vb:if condition="!empty($forum['subchannels'])">
            <!-- Sub-Forums -->
            <tr class="subforum-list"><td colspan="4">
                <div class="subforum-header h-clear">{vb:rawphrase sub_forums}:</div>
                <table>
                {vb:set cols, 1}
                <vb:each from="forum.subchannels" value="subforum">
                    <vb:if condition="(($cols - 1) % $subChannelsPerRow == 0)">
                        <tr>
                    </vb:if>
                    {vb:set colspan, ''}
                    <vb:if condition="($cols == count($forum['subchannels'])) AND (($remaining = ($cols % $subChannelsPerRow)) != 0)">
                        {vb:set colspan, {vb:concat 'colspan="', {vb:math {vb:raw subChannelsPerRow} - {vb:raw remaining} + 1}, '"'}}
                    </vb:if>
                            <td class="subforum-item" data-lastcontent="{vb:raw subforum.lastcontent.created}" data-channel-id="{vb:raw subforum.nodeid}" {vb:raw colspan}>
                                <div class="subforum-info">
                                    <span class="icon<vb:if condition="!empty($subforum['is_new'])"> new</vb:if>"></span>
                                    <a href="{vb:url {vb:raw subforum.routeid}}" class="subforum-title">{vb:raw subforum.title}</a>
                                    <span class="counts">({vb:number {vb:raw subforum.topics}}/{vb:number {vb:raw subforum.posts}})</span>
                                </div>
                            </td>
                    <vb:if condition="($cols % $subChannelsPerRow == 0) OR $cols == count($forum['subchannels'])">
                        </tr>
                    </vb:if>
                    {vb:set cols, {vb:math {vb:var cols} + 1}}
                </vb:each>
                </table>
            </td></tr>
        </vb:if>
Reply With Quote
  #3  
Old 12-26-2017, 09:07 AM
Anton Rahman Anton Rahman is offline
 
Join Date: Nov 2014
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

For the 3rd time on the row , thanks again SVENSKINS
Your solution is simple, intuitive and verily worked like a charm
BUT in our case we have 2 levels under each category such as
MAIN CATEGORY “no post”, which leads to several SUB CATEGORIES “no post” , which finally leads to the last level SUB CATEGORIES “acting as channel and users may post only at that level”
So your solution is brilliant and reliable at hiding the last most SUB CATEGORY “that is acting as channel and at which users may post”
But it left behind the MIDDLE SUB CATEGORY which is after from the MAIN CATEGORY and before to the last most SUB CATEGORY “that is acting as channel and at which users may post”
So we wanted to leave behind in the home page only the MAIN CATEGORIES and hide ALL SUB CATEGORIES that are dependent on the MAIN CATEGORY
In other words on the home page we will keep only parent MAIN CATEGORIES, and hide all CHILDREN /SUB CATEGORIES, because anyway when the user will click on any of the MAIN MOST CATEGORIES it will lead him to the next page showing now all the children categories!
Any thoughts pls ?
Reply With Quote
  #4  
Old 12-26-2017, 09:14 AM
Seven Skins's Avatar
Seven Skins Seven Skins is offline
 
Join Date: Sep 2008
Location: London, UK
Posts: 1,481
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

PM me the link to your site ... as I don't have the categories set up like you have, on my dev site.
Reply With Quote
  #5  
Old 12-26-2017, 10:11 AM
Anton Rahman Anton Rahman is offline
 
Join Date: Nov 2014
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

sorry forgot all about it , since the site is under development so the forums are off

anyway what we have is absolutely all the defaults of vBulletin even mods are also totally off and we are using default style as well.
our forum topics hierarchy is as follows:

MAIN CATEGORY "acts as category so no post" -------> SUB CATEGORY "also acts as category so no post" and this SUB CATEGORY is the children of the MAIN CATEGORY which we still need to hide from forum home page -------> then a final SUB CATEGORY "where users may post " which is the children of the above mentioned SUB CATEGORY of the MAIN CATEGORY and which with your advice we were able to hide from home page
Reply With Quote
  #6  
Old 12-26-2017, 10:21 AM
In Omnibus's Avatar
In Omnibus In Omnibus is offline
 
Join Date: Apr 2010
Location: Inside A Blade Server
Posts: 840
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You can either hide channels by setting the display order to "0" or you can hide channels by changing the usergroup permissions for each channel. Everything is node-based. There really aren't any "sub-forums" in vB5.
Reply With Quote
  #7  
Old 12-26-2017, 10:44 AM
Anton Rahman Anton Rahman is offline
 
Join Date: Nov 2014
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

tnx for the contribution but this suggestion is out of the context of the topic

when you set display to 0 the topic disappears from all pages, we need to hide only "in the main page" all the children of the MAIN CATEGORIES , basically leaving in the MAIN PAGE only the MAIN CATEGORIES

But when you navigate through any of the MAIN CATEGORIES into their respective URLS's you should be able to see again all the children of the MAIN CATEGORY !

This is done to shorten and tidy up the view of the home page especially when the SUB CATEGORIES "children" of your MAIN CATEGORIES and also the "children" of those SUB CATEGORIES are quite many.
Reply With Quote
  #8  
Old 12-26-2017, 12:33 PM
Seven Skins's Avatar
Seven Skins Seven Skins is offline
 
Join Date: Sep 2008
Location: London, UK
Posts: 1,481
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Here we go .. edit display_Forums_item template

Add this .. edit node ID

Code:
<vb:if condition="$page['channelid'] != 2">

Above this line ....
Code:
    <tr class="forum-item {vb:raw forumCssPrefix} forum-item{vb:raw forumStatus}" id="forum{vb:raw forum.nodeid}" data-channel-id="{vb:raw forum.nodeid}" data-lastcontent="{vb:raw forum.lastcontent.created}" data-readtime="{vb:raw forum.readtime}">

Add this below last line in the template ...
HTML Code:
</vb:if>
Reply With Quote
  #9  
Old 12-27-2017, 11:53 AM
Anton Rahman Anton Rahman is offline
 
Join Date: Nov 2014
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks again for your valued assistance, this vb:if condition you suggested is interesting and seems to have an actual effect on the 1st generation children of the main forum categories, so when we tried it with "$page['channelid'] != 1" the effect is it remove all formatting and also the thumbnail icons next to each of the 1st generation children of the main forum + it creates a duplicate of each and puts it right under each of itself
So among the so many things it does IT DID'T hide neither 1st generation children of the main forum nor the 1st generation children of the main forum "i.e the channels where user can post"

and when we tried it with any other number for ['channelid'] ! , like lets say 2 or 3 or even 20 and 20 in particular is the node ID of one of the 1st generation children categories we intend to hide off of the home page NOTHING HAPPENS

What did we miss pls ??
Also as we described earlier in this post we have X PARENT CATEGORIES under which we have X children CATEGORIES of the X PARENT CATEGORIES then finally X CHANNELS that are the children of the children of the parent categories so what are the node id we will use in "$page['channelid'] != "? those of the parent categories ? or the 1st generation children or the 2nd generation children ?
is there a vb code that targets channels ACTING AS CATEGORIES AND ARE NOT CHILDREN OF ANOTHER ? ie root CATEGORIES ? cz more or less in the course of your brilliant suggestions we may have bumped into something that looks like that in display_Forums_list template when you helped us improving that vb template earlier

--------------- Added [DATE]1514388394[/DATE] at [TIME]1514388394[/TIME] ---------------

An interesting follow through on you post


Quote:
Originally Posted by Seven Skins View Post
May be you are looking for this ...

edit display_Forums_list template and comment out this block of code. This code is from vb 5.3.4

HTML Code:
        <vb:if condition="!empty($forum['subchannels'])">
            <!-- Sub-Forums -->
            <tr class="subforum-list"><td colspan="4">
                <div class="subforum-header h-clear">{vb:rawphrase sub_forums}:</div>
                <table>
                {vb:set cols, 1}
                <vb:each from="forum.subchannels" value="subforum">
                    <vb:if condition="(($cols - 1) % $subChannelsPerRow == 0)">
                        <tr>
                    </vb:if>
                    {vb:set colspan, ''}
                    <vb:if condition="($cols == count($forum['subchannels'])) AND (($remaining = ($cols % $subChannelsPerRow)) != 0)">
                        {vb:set colspan, {vb:concat 'colspan="', {vb:math {vb:raw subChannelsPerRow} - {vb:raw remaining} + 1}, '"'}}
                    </vb:if>
                            <td class="subforum-item" data-lastcontent="{vb:raw subforum.lastcontent.created}" data-channel-id="{vb:raw subforum.nodeid}" {vb:raw colspan}>
                                <div class="subforum-info">
                                    <span class="icon<vb:if condition="!empty($subforum['is_new'])"> new</vb:if>"></span>
                                    <a href="{vb:url {vb:raw subforum.routeid}}" class="subforum-title">{vb:raw subforum.title}</a>
                                    <span class="counts">({vb:number {vb:raw subforum.topics}}/{vb:number {vb:raw subforum.posts}})</span>
                                </div>
                            </td>
                    <vb:if condition="($cols % $subChannelsPerRow == 0) OR $cols == count($forum['subchannels'])">
                        </tr>
                    </vb:if>
                    {vb:set cols, {vb:math {vb:var cols} + 1}}
                </vb:each>
                </table>
            </td></tr>
        </vb:if>

if you move the comment two lines up , thus commenting as well the following :

{vb:template display_Forums_item, forum={vb:raw forum}, forumLevel={vb:raw forumLevel}, isSubcategory={vb:raw isSubcategory}, avatar={vb:raw userThumbAvatars}}

the result on home page is EXACTLY what we needed i.e only topmost parents are shown and any children of that are perfectly hidden on home page

caves eat is : they are all the way hidden , meaning you cant navigate through clicking the main parents to to open the children in the next page !!

so simply the children became hidden all the way !
Reply With Quote
  #10  
Old 12-27-2017, 02:58 PM
Seven Skins's Avatar
Seven Skins Seven Skins is offline
 
Join Date: Sep 2008
Location: London, UK
Posts: 1,481
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is what I had ...


Code:
User:
Pass:
Use Temp style once logged in
Reply With Quote
Reply

Thread Tools
Display Modes

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 01:51 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05902 seconds
  • Memory Usage 2,273KB
  • 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
  • (3)bbcode_html
  • (1)bbcode_quote
  • (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
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (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
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete