The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
||||
|
||||
Modifying functions_forumhome using a product file without hacking php
Code:
// ###################### 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); // 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 == 1 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; } |
#2
|
||||
|
||||
If it will only be used in the forumdisplay.php pages, then use one of the hooks available on that page.
|
#3
|
||||
|
||||
As Lynne suggested - find a hook that you can work around with. But if you really want to just edit the file without really editing it, it's called SVN - you use .diff files to patch your original files.
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|