View Single Post
  #1  
Old 12-07-2007, 07:17 PM
ChurchMedia's Avatar
ChurchMedia ChurchMedia is offline
 
Join Date: Dec 2002
Location: Las Cruces, NM
Posts: 473
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Need help finishing menu hack

I use a CSS menu system. I don't like having to manually modify the code when I add/delete/move forums. I've figured out that the code that generates the archive site map could be modified to work for me, but I'm not completely sure how to pull it off. Thanks for any help anyone could give.

The output code needs to be like this:

Code:
<li><a href="http://www.domain.com/forums/showforum.php?f=$forumid">PARENT Forum Name</a>

<ul> <li><a href="http://www.domain.com/forums/showforum.php?f=$forumid">SUB Forum Name</a></li>

</ul></li>
Here is the code that could be modified to make it work:

PHP Code:
// #########################################################################################
// ###################### ARCHIVE FUNCTIONS ################################################

// function to list forums in their correct order and nesting
function print_archive_forum_list($parentid = -1$indent '')
{
    global 
$vbulletin;

    
$output '';

    if (empty(
$vbulletin->iforumcache))
    {
        
$forums $vbulletin->db->query_read_slave("
            SELECT forumid, title, link, parentid, displayorder, title_clean, description, description_clean,
            (options & " 
$vbulletin->bf_misc_forumoptions['cancontainthreads'] . ") AS cancontainthreads
            FROM " 
TABLE_PREFIX "forum AS forum
            WHERE displayorder <> 0 AND
            password = '' AND
            (options & " 
$vbulletin->bf_misc_forumoptions['active'] . ")
            ORDER BY displayorder
        "
);
        
$vbulletin->iforumcache = array();
        while (
$forum $vbulletin->db->fetch_array($forums))
        {
            
$vbulletin->iforumcache["$forum[parentid]"]["$forum[displayorder]"]["$forum[forumid]"] = $forum;
        }
        unset(
$forum);
        
$vbulletin->db->free_result($forums);
    }
    
    if (
is_array($vbulletin->iforumcache["$parentid"]))
    {
        
$output "\n$indent<ul>\n";
    
        foreach(
$vbulletin->iforumcache["$parentid"] AS $x)
        {
            foreach(
$x AS $forumid => $forum)
            {
                (
$hook vBulletinHook::fetch_hook('archive_forum')) ? eval($hook) : false;

                if (!(
$vbulletin->userinfo['forumpermissions']["$forumid"] & $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND !$vbulletin->options['showprivateforums'])))
                {
                    continue;
                }
                else
                {
                    if (
$forum['link'] !== '')
                    {
                        
$forum_link "<a href=\"$forum[link]\">";
                    }
                    else if (
$forum['cancontainthreads'])
                    {
                        
$forum_link "<a href=\"" . (!SLASH_METHOD 'index.php?' '') . "f-$forumid.html\">";
                    }
                    else
                    {
                        
$forum_link "<a style=\"font-weight:bold\">";
                    }
                    
$output .= "$indent\t<li>$forum_link$forum[title_clean]</a>" print_archive_forum_list($forumid"\t$indent") . "</li>\n";
                }
            }
        }
        
        
$output .= "$indent</ul>\n$indent";
    }

    return 
$output;

Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01288 seconds
  • Memory Usage 1,822KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete