vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4.x Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=245)
-   -   Forum Home Enhancements - VSa - Sub-Forum Manager (https://vborg.vbsupport.ru/showthread.php?t=236960)

iiioroh 01-29-2012 05:53 AM

Thank you! very much!

JVSP 01-30-2012 08:19 AM

Quote:

Originally Posted by Fuzzy Orange (Post 2281071)
Well spotted!

The styling isn't being applied if it's the last forum in a list

I moved that forum up one in the sort order and now it looks fine
Definitely a bug

Any fix to this?

Fuzzy Orange 01-31-2012 08:43 AM

Quote:

Originally Posted by fxlr8 (Post 2294121)
Any fix to this?

Nope :(

I gave up waiting for a fix

If I get chance I might have a go at fixing it myself and post a patch up

emperatour 02-01-2012 02:59 PM

Would be great to have an option for excluding some forums.

Thanks anyway .. This is the only mod for subforum display control that works with 4.1.10.

Valter 02-02-2012 09:22 AM

Set "Forum is Active" to "No" for sub-forums you wish to hide.

TiKu 02-04-2012 12:34 AM

I have improved the mod a bit. I've added an option to exclude forums from the changes and I've tweaked the CSS a bit. I hope these changes can be integrated into the next official release.

To add the setting for excluding forums, add this to settinggroup name="VSa_SFA":
Code:

<setting varname="vsasfm_excludedforums" displayorder="12">
        <datatype>free</datatype>
</setting>

You also need this phrase in vBulletin Settings group:
Code:

<phrase name="setting_vsasfm_excludedforums_desc" date="1328301371" username="TiKu" version=""><![CDATA[Leave alone sub-forums in these forums (comma separated ID list)]]></phrase>
This is the updated MN hook:
Code:

                if ($vbulletin->options['vsasfm_enable'] AND ($vbulletin->options['vsasfm_coltarget']>0))
                {
                        if (!function_exists('vsa_construct_subforumbit'))
                        {
                                function vsa_construct_subforumbit($parentid, $cancontainthreads, $output = '', $depthmark = '--', $depth = 0)
                                {
                                        global $vbulletin, $vbphrase;
                                        global $lastpostinfo, $lastpostarray;
                                        static $splitter;

                                        if ($cancontainthreads)
                                        {
                                                $canpost = true;
                                        }
                                        else
                                        {
                                                $canpost = false;
                                        }

                                        if (!isset($vbulletin->iforumcache["$parentid"]))
                                        {
                                                return $output;
                                        }

                                        foreach($vbulletin->iforumcache["$parentid"] AS $forumid)
                                        {
                                                $forum = $vbulletin->forumcache["$forumid"];
                                                $forumperms = $vbulletin->userinfo['forumpermissions']["$forumid"];
                                                if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == 1 OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND !$vbulletin->options['showprivateforums'])))
                                                {
                                                        continue;
                                                }

                                                if (!$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active']))
                                                {
                                                        continue;
                                                }
                                                else
                                                {
                                                        $lastpostinfo = $vbulletin->forumcache["$lastpostarray[$forumid]"];
                                                        $forum['statusicon'] = fetch_forum_lightbulb($forumid, $lastpostinfo, $forum);
                                                        $show['newposticon'] = ($forum['statusicon'] ? true : false);

                                                        switch ($vbulletin->options['vsasfm_tr_counts'])
                                                        {
                                                                case 1: $vsasfm_trcounts = ' ('.$forum['threadcount'].')'; $vsasfm_trcounttitle = $vbphrase['threads']; break;
                                                                case 2: $vsasfm_trcounts = ' ('.$forum['replycount'].')'; $vsasfm_trcounttitle = $vbphrase['posts']; break;
                                                                case 3: $vsasfm_trcounts = ' ('.$forum['threadcount'].'/'.$forum['replycount'].')'; $vsasfm_trcounttitle = $vbphrase['threads'].'/'.$vbphrase['posts']; break;
                                                        }
                                                        if ($vbulletin->options['vsasfm_csscounts']!='')
                                                        {
                                                                $vsasfm_trcounts = '<span class="shade" style="'.$vbulletin->options[vsasfm_csscounts].'" title="'.$vsasfm_trcounttitle.'">'.$vsasfm_trcounts.'</span>';
                                                        }
                                                        $vsasfm_blankline = $vsasfm_trcount = $vsasfm_change = false;
                                                        eval('$vsasfm_blanklinesub = in_array($forum[forumid], array(' . $vbulletin->options['vsasfm_blankline_subs'] . '));');
                                                        if (in_array($forum['forumid'], array($vsasfm_blanklinesub)))
                                                        {
                                                                $vsasfm_blankline = '<br /><br />';
                                                                $vsasfm_change = true;
                                                        }
                                                        if (($vbulletin->options['vsasfm_tr_counts']>0) AND ($forum['threadcount']>0))
                                                        {
                                                                $vsasfm_trcount = $vsasfm_trcounts;
                                                                $vsasfm_change = true;
                                                        }
                                                        if ($vsasfm_change)
                                                        {
                                                                $forum[title] .= '</a>'.$vsasfm_trcount.$vsasfm_blankline.'VSa';
                                                        }

                                                        $templater = vB_Template::create("vsa_sfm_subforumbit");
                                                                $templater->register('forum', $forum);
                                                                $templater->register('canpost', $canpost);
                                                                $templater->register('depth', $depth+1);
                                                        $subforum = $templater->render();

                                                        if ($depth < $vbulletin->options['subforumdepth'])
                                                        {
                                                                $output .= vsa_construct_subforumbit($forumid, $cancontainthreads, $subforum, $depthmark . '--', $depth + 1);
                                                        }
                                                }
                                        }
                                        return $output;
                                }
                        }
                       
                        // ---- START inserted by TiKu ----
                        $affectforum = !in_array($forum['forumid'], explode(',', $vbulletin->options['vsasfm_excludedforums']));
                        // ---- END inserted by TiKu ----

                        if (($subsonly OR $depth == MAXFORUMDEPTH) AND $vbulletin->options['subforumdepth'] > 0)
                        {
                                $vsasfm_subforumdata = vsa_construct_subforumbit($forumid, ($forum['options'] & $vbulletin->bf_misc_forumoptions['cancontainthreads'] ) );
                        }
                        else
                        {
                                $vsasfm_subforumdata = '';
                        }

                        $vsasfm_reqcol = $vbulletin->options['vsasfm_coltarget'];
                        $vsasfm_colwid = round(100 / $vbulletin->options['vsasfm_coltarget']);

                        if ($vbulletin->options['vsasfm_csstable']!='')
                        {
                                $vsasfm_css_table = $vbulletin->options[vsasfm_csstable];
                        }
                        if ($vbulletin->options['vsasfm_csscell']!='')
                        {
                                $vsasfm_css_cell = $vbulletin->options[vsasfm_csscell];
                        }
                        unset($vsasfm_cols, $vsasfm_subf, $vsasfm_table);
                        $vsasfm_left = vB_Template_Runtime::fetchStyleVar('left');

                        // ---- START inserted by TiKu ----
                        $subforumstitle = '<h4 class="subforumlistlabel"';
                        if($vbulletin->options['vsasfm_subphrase'])
                                $subforumstitle .= ' style="display:none;"';
                        $subforumstitle .= '>' . $vbphrase['subforums'] . ':</h4>';
                        // ---- END inserted by TiKu ----
                        // ---- START changed by TiKu (width of 100%) ----
                        $vsasfm_table = '<div style="width:100%;">';
                        // ---- END changed by TiKu (width of 100%) ----

                        if ($vbulletin->options['templateversion'] >= '4.1.8')
                        {
                                // ---- START changed by TiKu (width of 100%, Padding, use $subforumstitle) ----
                                $vsasfm_table .= '<div class="subforums" style="width:100%;padding-left:5px;">' . $subforumstitle . '<ol class="subforumlist commalist" style="width:100%;padding-bottom:3px;">';
                                // ---- END changed by TiKu (width of 100%, Padding, use $subforumstitle) ----
                        }

                        // ---- START inserted by TiKu (if clause) ----
                        if($affectforum)
                        {
                                $vsasfm_table .= '<div style="width:100%;'.$vsasfm_css_table.'"><div style="vertical-align:top;clear:both;">';
                        }
                        // ---- END inserted by TiKu (if clause) ----
                        $vsasfm_getsubs = explode("<li",ltrim($vsasfm_subforumdata,"<li"));
                        foreach ($vsasfm_getsubs AS $vsasfm_subf)
                        {
                                $vsasfm_cols++;
                                // ---- START inserted by TiKu (if clause + else branch) ----
                                if($affectforum)
                                {
                                        if ($vsasfm_cols % $vsasfm_reqcol == 0)
                                        {
                                                $vsasfm_table .= '<div style="float:'.$vsasfm_left.';width:'.$vsasfm_colwid.'%;text-align:'.$vsasfm_left.';'.$vsasfm_css_cell.'"><ul><li'.$vsasfm_subf.'</ul></div></div><div style="vertical-align:top;clear:both;">';
                                        }
                                        else
                                        {
                                                $vsasfm_table .= '<div style="float:'.$vsasfm_left.';width:'.$vsasfm_colwid.'%;text-align:'.$vsasfm_left.';'.$vsasfm_css_cell.'"><ul><li'.$vsasfm_subf.'</ul></div>';
                                        }
                                }
                                else
                                {
                                        $vsasfm_table .= '<li ' . $vsasfm_subf;
                                }
                                // ---- END inserted by TiKu (if clause + else branch) ----
                        }
                        // ---- START inserted by TiKu (if clause) ----
                        if($affectforum)
                        {
                                $vsasfm_table .= '</div></div>';
                        }
                        // ---- END inserted by TiKu (if clause) ----

                        if ($vbulletin->options['templateversion'] >= '4.1.8')
                        {
                                $vsasfm_table .= '</ol></div>';
                        }

                        $vsasfm_table .= '</div>';

                        $vsasfm_table = str_ireplace('<li<', '<', $vsasfm_table);
                        $vsasfm_table = str_ireplace('VSa</a>', '', $vsasfm_table);
                        $vsasfm_table = trim(preg_replace('/-\s*\([^)]*\)VSa/', '', $vsasfm_table));

                        $forum['subforums'] = $vsasfm_table;

                        // ---- START removed by TiKu ----
                        /*if ($vbulletin->options['vsasfm_subphrase'])
                        {
                                $forumbits = str_ireplace('class="subforumlistlabel"', 'style="display:none;"', $forumbits);
                                $childforumbits = str_ireplace('class="subforumlistlabel"', 'style="display:none;"', $childforumbits);
                        }

                        $forumbits = str_ireplace(' commalist', '', $forumbits);
                        $childforumbits = str_ireplace(' commalist', '', $childforumbits);*/
                        // ---- END removed by TiKu ----
                }

Regards
TiKu

durruti 02-09-2012 05:15 PM

Quote:

Originally Posted by Kraxell (Post 2288080)
Is it possible to show the latest threads on the right side of [all] subforums?
Maybe like this

I second this.

insidegames 02-10-2012 04:10 AM

Great mod, but can you integrate, that are the subforums are collapseble?

emperatour 02-11-2012 02:57 AM

Even though the Hide "Sub-Forums:" title is set to no, I don't see the sub-forums text above my sub forums.

Any idea what might be wrong ?

Thanks,

JVSP 02-11-2012 05:25 PM

Bump

Style changes are not being applied to the last forums on the list.


All times are GMT. The time now is 03:49 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.01605 seconds
  • Memory Usage 1,806KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete