View Single Post
  #309  
Old 04-20-2007, 02:30 AM
BoNeS42 BoNeS42 is offline
 
Join Date: Oct 2006
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Help me please. I get this error Fatal error: Cannot redeclare construct_forum_columns() (previously declared in /public_html/forum/includes/functions_forumlist.php:192) in /public_html/forum/includes/functions_forumlist.php on line 192

Here's my code. :erm:
PHP Code:
<?php
/*======================================================================*\
|| #################################################################### ||
|| # vBulletin 3.6.2 - Licence Number 
|| # ---------------------------------------------------------------- # ||
|| # Copyright ?2000-2006 Jelsoft Enterprises Ltd. All Rights Reserved. ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| #################################################################### ||
\*======================================================================*/

// ###################### Start getimodcache #######################
function cache_moderators($userid null)
{
    global 
$vbulletin$imodcache$mod;

    
$imodcache = array();
    
$mod = array();

    
$forummoderators $vbulletin->db->query_read_slave("
        SELECT moderator.*, user.username,
        IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid, infractiongroupid
        FROM " 
TABLE_PREFIX "moderator AS moderator
        INNER JOIN " 
TABLE_PREFIX "user AS user USING(userid)
        " 
. ($userid != null "WHERE moderator.userid = " intval($userid) : "") . "
    "
);
    while (
$moderator $vbulletin->db->fetch_array($forummoderators))
    {
        
fetch_musername($moderator);
        
$imodcache["$moderator[forumid]"]["$moderator[userid]"] = $moderator;
        
$mod["$moderator[userid]"] = 1;
    }
    
$vbulletin->db->free_result($forummoderators);
}

// ###################### Start getlastpostinfo #######################
// this function creates a lastpostinfo array that tells makeforumbit which forum
// each forum should grab its last post info from.
// it also tots up the thread/post totals for each forum. - PERMISSIONS are taken into account.
function fetch_last_post_array()
{
    global 
$vbulletin$lastpostarray$counters;

    
$cannotView = array();
    
$children = array();

    
// loop through the vbulletin->iforumcache
    
foreach ($vbulletin->iforumcache AS $moo)
    {
        foreach (
$moo AS $forumid)
        {
            
$forum $vbulletin->forumcache["$forumid"];

            
// if we have no permission to view the forum's parent
            // set cannotView permissions cache for this forum and continue
            
if (!empty($cannotView["$forum[parentid]"]))
            {
                
$cannotView["$forumid"] = 1;
            }
            else
            {

                
$forumperms $vbulletin->userinfo['forumpermissions']["$forumid"];

                
// if we have no permissions for this forum, set the cannotView permissions cache
                // so that we don't have to check its child forums
                //if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) OR !($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers'])
                
if ((!($forumperms $vbulletin->bf_ugp_forumpermissions['canview']) AND (($vbulletin->forumcache["$forumid"]['showprivate'] AND $vbulletin->forumcache["$forumid"]['showprivate'] != 3) OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND $vbulletin->options['showprivateforums'] != 2))) OR ($forum['password'] AND !verify_forum_password($forum['forumid'], $forum['password'], false)))
                {
                    
$cannotView["$forumid"] = 1;
                }
                else
                {
                    if (!isset(
$lastpostarray["$forumid"]))
                    {
                        
$lastpostarray["$forumid"] = $forumid;
                    }
                    
$parents explode(','$forum['parentlist']);
                    foreach (
$parents AS $parentid)
                    {
                        
// for each parent, set an array entry containing this forum's number of posts & threads
                        
$children["$parentid"]["$forumid"] = array('threads' => $forum['threadcount'], 'posts' => $forum['replycount']);

                        if (
$parentid == -OR !isset($vbulletin->forumcache["$parentid"]))
                        {
                            continue;
                        }

                        
// compare the date for the last post info with the last post date
                        // for the parent forum, and if it's greater, set the last post info
                        // array for this forum to point to that forum... (erm..)
                        
if ($forum['lastpost'] > $vbulletin->forumcache["$parentid"]['lastpost'])
                        {
                            
$lastpostarray["$parentid"] = $forumid;
                            
$vbulletin->forumcache["$parentid"]['lastpost'] = $forum['lastpost'];
                        }
                    } 
// end foreach($parents)
                
// end can view
            
// end can view parent
        
}
    }

    
$counters = array();
    if (
is_array($vbulletin->forumcache))
    {
        foreach(
$vbulletin->forumcache AS $forum)
        {
            
$this_forum =& $counters["$forum[forumid]"];
            
$this_forum['threadcount'] = 0;
            
$this_forum['replycount'] = 0;
            if (
is_array($children["$forum[forumid]"]))
            {
                foreach(
$children["$forum[forumid]"] AS $id => $info)
                {
                    
$this_forum['threadcount'] += $info['threads'];
                    
$this_forum['replycount'] += $info['posts'];
                }
            }
        }
    }

}

// ###################### Start makeforumbit #######################
// this function returns the properly-ordered and formatted forum lists for forumhome,
// forumdisplay and usercp. Of course, you could use it elsewhere too..
function construct_forum_bit($parentid$depth 0$subsonly 0)
{
    global 
$vbulletin$stylevar$vbphrase$show;
    global 
$imodcache$lastpostarray$counters$inforum;

    
// this function takes the constant MAXFORUMDEPTH as its guide for how
    // deep to recurse down forum lists. if MAXFORUMDEPTH is not defined,
    // it will assume a depth of 2.

    // call fetch_last_post_array() first to get last post info for forums
    
if (!is_array($lastpostarray))
    {
        
fetch_last_post_array();
    }

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

    if (!
defined('MAXFORUMDEPTH'))
    {
        
define('MAXFORUMDEPTH'1);
    }

    
$forumbits '';
    
$depth++;

    foreach (
$vbulletin->iforumcache["$parentid"] AS $forumid)
    {
        
// grab the appropriate forum from the $vbulletin->forumcache
        
$forum $vbulletin->forumcache["$forumid"];
        
$lastpostforum $vbulletin->forumcache["$lastpostarray[$forumid]"];
        if (!
$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active']))
        {
            continue;
        }

        
$forumperms $vbulletin->userinfo['forumpermissions']["$forumid"];
        
$lastpostforumperms $vbulletin->userinfo['forumpermissions']["$lastpostarray[$forumid]"];
        if (!(
$forumperms $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND !$vbulletin->options['showprivateforums'])))
        { 
// no permission to view current forum
            
continue;
        }

        if (
$vbulletin->userinfo['fieldxx'] == 'Yes'  AND THIS_SCRIPT == 'index' AND $forum['subforumcolumns'] != AND ($subsonly OR $depth MAXFORUMDEPTH))
        {
            
$childforumbits construct_forum_columns($forum['forumid'], $forum['subforumcolumns']);
        }
        else if (
$subsonly)
        {
            
$childforumbits construct_forum_bit($forum['forumid'], 1$subsonly);
        }
        else if (
$depth MAXFORUMDEPTH)
        {
            
$childforumbits construct_forum_bit($forum['forumid'], $depth$subsonly);
        }
        else
        {
            
$childforumbits '';
        }


// ###################### Start construct_forum_columns ####################### 
function construct_forum_columns($parentid$columncount

    global 
$vbulletin$stylevar$vbphrase$show
    global 
$imodcache$lastpostarray$counters$inforum

    
// this function takes the constant MAXFORUMDEPTH as its guide for how 
    // deep to recurse down forum lists. if MAXFORUMDEPTH is not defined, 
    // it will assume a depth of 2. 

    
if ($columncount == 0
    { 
        
// 0 Columns means don't show subforums at all 
        
return ''
    } 

    
// call fetch_last_post_array() first to get last post info for forums 
    
if (!is_array($lastpostarray)) 
    { 
        
fetch_last_post_array(); 
    } 

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

    if (!
defined(MAXFORUMDEPTH)) 
    { 
        
define('MAXFORUMDEPTH'1); 
    } 

    
$forumbits ''

    
$counter 0
    foreach (
$vbulletin->iforumcache["$parentid"] AS $forumid
    { 
        
// grab the appropriate forum from the $vbulletin->forumcache 
        
$forum $vbulletin->forumcache["$forumid"]; 
        
$lastpostforum $vbulletin->forumcache["$lastpostarray[$forumid]"]; 
        if (!
$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active'])) 
        { 
            continue; 
        } 

        
$forumperms $vbulletin->userinfo['forumpermissions']["$forumid"]; 
        
$lastpostforumperms $vbulletin->userinfo['forumpermissions']["$lastpostarray[$forumid]"]; 
        if (!(
$forumperms $vbulletin->bf_ugp_forumpermissions['canview']) AND !$vbulletin->options['showprivateforums']) 
        { 
// no permission to view current forum 
            
continue; 
        } 

        if (
$subsonly
        { 
            
$childforumbits construct_forum_bit($forum['forumid'], 1$subsonly); 
        } 
        else if (
$depth MAXFORUMDEPTH
        { 
            
$childforumbits construct_forum_bit($forum['forumid'], $depth$subsonly); 
        } 
        else 
        { 
            
$childforumbits ''
        } 

        
// do stuff if we are not doing subscriptions only, or if we ARE doing subscriptions, 
        // and the forum has a subscribedforumid 
        
if (!$subsonly OR ($subsonly AND !empty($forum['subscribeforumid']))) 
        { 

            
$GLOBALS['forumshown'] = true// say that we have shown at least one forum 

            
if (($forum['options'] & $vbulletin->bf_misc_forumoptions['cancontainthreads'])) 
            { 
// get appropriate suffix for template name 
                
$tempext '_post'
            } 
            else 

            { 
                
$tempext '_nopost'
            } 

            if (!
$vbulletin->options['showforumdescription']) 
            { 
// blank forum description if set to not show 
                
$forum['description'] = ''
            } 

            
// dates & thread title 
            
$lastpostinfo $vbulletin->forumcache["$lastpostarray[$forumid]"]; 

            
// compare last post time for this forum with the last post time specified by 
            // the $lastpostarray, and if it's less, use the last post info from the forum 
            // specified by $lastpostarray 
            
if ($vbulletin->forumcache["$lastpostarray[$forumid]"]['lastpost'] > 0
            { 
                if (!(
$lastpostforumperms $vbulletin->bf_ugp_forumpermissions['canview']) OR (!($lastpostforumperms $vbulletin->bf_ugp_forumpermissions['canviewothers']) AND $lastpostinfo['lastposter'] != $vbulletin->userinfo['username'])) 
                { 
                    
$forum['lastpostinfo'] = $vbphrase['private']; 
                } 
                else 
                { 
                    
$lastpostinfo['lastpostdate'] = vbdate($vbulletin->options['dateformat'], $lastpostinfo['lastpost'], 1); 
                    
$lastpostinfo['lastposttime'] = vbdate($vbulletin->options['timeformat'], $lastpostinfo['lastpost']); 
                    
$lastpostinfo['trimthread'] = fetch_trimmed_title($lastpostinfo['lastthread']); 

                    if (
$icon fetch_iconinfo($lastpostinfo['lasticonid'])) 
                    { 
                        
$show['icon'] = true
                    } 
                    else 
                    { 
                        
$show['icon'] = false
                    } 

                    
$show['lastpostinfo'] = (!$lastpostforum['password'] OR verify_forum_password($lastpostforum['forumid'], $lastpostforum['password'], false)); 

                    eval(
'$forum[\'lastpostinfo\'] = "' fetch_template('forumhome_lastpostby') . '";'); 
                } 
            } 
            else if (!(
$forumperms $vbulletin->bf_ugp_forumpermissions['canview'])) 
            { 
                
$forum['lastpostinfo'] = $vbphrase['private']; 
            } 
            else 
            { 
                
$forum['lastpostinfo'] = $vbphrase['never']; 
            } 

            
// do light bulb 
            
$forum['statusicon'] = fetch_forum_lightbulb($forumid$lastpostinfo$forum); 
             
$show['customstatusicon'] = false
if (
$forum['hasstatusicons']) 

    
$show['customstatusicon'] = true
    if (
$forum['statusicon'] == 'new'
    { 
        
$forum['customicon'] = $forum['statusiconon']; 
    } 
    if (
$forum['statusicon'] == 'new_lock'
    { 
        
$forum['customicon'] = $forum['statusiconlockon']; 
    } 
    if (
$forum['statusicon'] == 'old'
    { 
        
$forum['customicon'] = $forum['statusiconoff']; 
    } 
    if (
$forum['statusicon'] == 'old_lock'
    { 
        
$forum['customicon'] = $forum['statusiconlockoff']; 
    } 
    if (
$forum['statusicon'] == 'link'
    { 
        
$forum['customicon'] = $forum['statusiconlink']; 
    } 


            
// add lock to lightbulb if necessary 
            
if ((!($forumperms $vbulletin->bf_ugp_forumpermissions['canpostnew']) OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['allowposting'])) AND $vbulletin->options['showlocks'] AND !$forum['link']) 
            { 
                
$forum['statusicon'] .= '_lock'
            } 

            
// get counters from the counters cache ( prepared by fetch_last_post_array() ) 
            
$forum['threadcount'] = $counters["$forum[forumid]"]['threadcount']; 
            
$forum['replycount'] = $counters["$forum[forumid]"]['replycount']; 

            
// get moderators ( this is why we needed cache_moderators() ) 
            
if ($vbulletin->options['showmoderatorcolumn']) 
            { 
                
$showmods = array(); 
                
$listexploded explode(','$forum['parentlist']); 
                foreach (
$listexploded AS $parentforumid
                { 
                    if (!isset(
$imodcache["$parentforumid"])) 
                    { 
                        continue; 
                    } 
                    foreach(
$imodcache["$parentforumid"] AS $moderator
                    { 
                        if (isset(
$showmods["$moderator[userid]"])) 
                        { 
                            continue; 
                        } 

                        (
$hook vBulletinHook::fetch_hook('forumbit_moderator')) ? eval($hook) : false

                        
$showmods["$moderator[userid]"] = true
                        if (!isset(
$forum['moderators'])) 
                        { 
                            eval(
'$forum[\'moderators\'] = "' fetch_template('forumhome_moderator') . '";'); 
                        } 
                        else 
                        { 
                            eval(
'$forum[\'moderators\'] .= ", ' fetch_template('forumhome_moderator') . '";'); 
                        } 
                    } 
                } 
                if (!isset(
$forum['moderators'])) 
                { 
                    
$forum['moderators'] = ''
                } 
            } 

            if (
$forum['link']) 
            { 
                
$forum['replycount'] = '-'
                
$forum['threadcount'] = '-'
                
$forum['lastpostinfo'] = '-'
            } 
            else 
            { 
                
$forum['replycount'] = vb_number_format($forum['replycount']); 
                
$forum['threadcount'] = vb_number_format($forum['threadcount']); 
            } 

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

            
$children explode(','$forum['childlist']); 
            foreach(
$children AS $childid
            { 
                
$forum['browsers'] += ($inforum["$childid"] ? $inforum["$childid"] : 0); 
            } 

            if (
$depth == AND $tempext == '_nopost'
            { 
                global 
$vbcollapse
                
$collapseobj_forumid =& $vbcollapse["collapseobj_forumbit_$forumid"]; 
                
$collapseimg_forumid =& $vbcollapse["collapseimg_forumbit_$forumid"]; 
                
$show['collapsebutton'] = true
            } 
            else 
            { 
                
$show['collapsebutton'] = false
            } 

            
$show['forumsubscription'] = ($subsonly true false); 
            
$show['forumdescription'] = ($forum['description'] != '' true false); 
            
$show['subforums'] = ($forum['subforums'] != '' true false); 
            
$show['browsers'] = ($vbulletin->options['displayloggedin'] AND !$forum['link'] AND $forum['browsers'] ? true false); 

            
// build the template for the current forum 
            
$column_width intval(100 $columncount) . '%'
            eval(
'$column = "' fetch_template("forumhome_forumbit_columncell") . '";'); 
             
            
// do the columnstuff 
            
if ($counter $columncount == 0
            { 
                
// Begin a new row 
                
$forumbits .= "\t<tr>\n"
            } 
            
$forumbits .= $column
            if (
$counter $columncount == $columncount 1
            { 
                
// End row 
                
$forumbits .= "\t</tr>\n"
            } 
            
$counter++; 
        } 
    } 

    
// prevent unclosed <tr> tags 
    
if ($counter $columncount != 0
    { 
        
$forumbits .= "\t</tr>\n"
    } 
     
    return 
$forumbits
}
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02118 seconds
  • Memory Usage 2,148KB
  • 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_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