Forums in columns + Custom forum images

KillaStaff

New Member
work for me

great mod, thx for share betrocker ;)

@ pmt & Moegames

<-- Censored --> you guy's all thx and coder are in txt, if you don't like, don't post

@ dxbstars & nitins60 & HAiDER

it works, after modification, go to admincp -> Forums & Moderators -> Forum Manager (option "edit forum") and /!\ JUST FOR CATEGORY ( NOT FORUMS)/!\, at the bottom of the page, option " Show Subforums in # of columns " , change the " 1 " by " 2 " (for two columns, or " 3 " for three columns, but two is recomanded lol)

after this it works well, Njoy :p

@ Dutchwii

replace :
Code:
<img src="$stylevar[imgdir_statusicon]/$forumid.png" alt="" class="ForumImages" />

by :
Code:
<img src="$stylevar[imgdir_statusicon]/$forum[imageprefix]forum_$forum[statusicon].gif" alt="" border="0" id="forum_statusicon_$forum[forumid]" />


Many thx betrocker ;) (just review your code of template, because is really not good lol (not valid xhtml))

i post my template modif tomrrow :)

(and sorry for my english :s)
 

betrocker

New Member
No problem man...it's possible that code is not good,even tho i didnt write anything,i just put two mods together and change it a little bit...but thanks anyway for corecting mistakes :) and thanks for saving my time to reply to dutchwii.
 

SirGarfield

New Member
Moegames said:
Its pretty lame when someone takes another person's mod from years ago and makes it as his own..lame, lame, lame

I used this EXACT mod years ago.. i know, because i remember using the coding for many hours trying to make it work.

He just converted it and made it his own.. besides, never use a mod from a person with terrible grammer. This mod does work but its poorly made and work is needed to "MAKE" it work.

That explains why the poster scatted off and has since hid like a little mouse. :D

Peace

Silly boy, check your own grammar and structure sweetie!


betrocker, this looks very interesting, I'm really looking forward to trying this out myself, thank you very much for sharing this with us darling :-x
 

Moegames

New Member
Umm, i dont know how to say this but i made a very very BAD mistake. I didnt mean to post my comment in this post..i had two browsers opened up and i put my reply in the wrong post..im sincerely sorry for this to the OP, my mistake and im just being man enough to admit that mistake..as its only right i do so

Again, my reply was ment for another person and entirely diffrent post.

EDIT: I just wanted to add one more thing, i have a huge problem with people taking hacks from someone elses hard work and claiming it as their own, thats why i sounded all amped up but i screwed up by hitting the reply button on the wrong post when i had two windows opened up to vbteam.. i feel like an idiot now, i made a mistake, nothing else i can do about it..i already did the damage to someone's feelings already...again, sorry for that. Im not a mean guy..i just stick up for those that deserve their credit
 

SakuraKaze

New Member
hi betrocker, the plugin doesnt work for me :(

first i import the plugin, then

i go to functions_forumlist.php to replace the code as the guide says.

where should i put the instruction:

then add this new function to the file:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ###################### Start construct_forum_columns #######################
function construct_forum_columns($parentid, $columncount)
{
global $vbulletin, $stylevar, $vbphrase, $show;

etc
 

Geo91

New Member
when i edited the php
my forum is showing error and its not working
so i reveresed the code
help please
 

TML

New Member
This is what I did, and I got it working:

<?php
/*======================================================================*\
|| #################################################################### ||
|| # vBulletin 3.7.3 Patch Level 1 - Licence Number DGT-SERIAL
|| # ---------------------------------------------------------------- # ||
|| # Copyright ©2000-2008 Jelsoft Enterprises Ltd. All Rights Reserved. ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # vBulletin® - Instant Community | 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($root_forumid = -1)
{
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 (!$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active']))
{
if ($root_forumid == -1 OR !in_array($root_forumid, explode(',', $forum['childlist'])))
{
// only going to show below this part of the tree if we're already there
$cannotView["$forumid"] = 1;
}
continue;
}

// 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"];

// can view and validated password OR show counters for private forums -> show post count
if (
($forumperms & $vbulletin->bf_ugp_forumpermissions['canview'] AND (!$forum['password'] OR verify_forum_password($forum['forumid'], $forum['password'], false)))
OR ($vbulletin->forumcache["$forumid"]['showprivate'] AND $vbulletin->forumcache["$forumid"]['showprivate'] == 3)
OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND $vbulletin->options['showprivateforums'] == 2)
)
{
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 == -1 OR !isset($vbulletin->forumcache["$parentid"]))
{
continue;
}

if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) AND $vbulletin->forumcache["$forumid"]['lastposter'] != $vbulletin->userinfo['username'])
{
// can't view others threads in this forum and the last post isn't by us
// so don't try to traverse up the tree
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'];
}
}
}
else
{
$cannotView["$forumid"] = 1;
}

} // 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($parentid);
}

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

if (!defined('MAXFORUMDEPTH'))
{
define('MAXFORUMDEPTH', 2);
}

$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]"];
$lastpostforum = (empty($lastpostarray[$forumid]) ? array() : $vbulletin->forumcache["$lastpostarray[$forumid]"]);

if (!$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active']))
{
continue;
}

$forumperms = $vbulletin->userinfo['forumpermissions']["$forumid"];
$lastpostforumperms = (empty($lastpostarray[$forumid]) ? 0 : $vbulletin->userinfo['forumpermissions']["$lastpostarray[$forumid]"]);
if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == 1 OR (!$vbulletin->forumcache["$forumid"]['showprivate'] 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 = (empty($lastpostarray[$forumid]) ? array() : $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 (!empty($lastpostinfo) AND $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(fetch_censored_text($lastpostinfo['lastthread']));

if ($lastpostinfo['lastprefixid'] AND $vbulletin->options['showprefixlastpost'])
{
$lastpostinfo['prefix'] = ($vbulletin->options['showprefixlastpost'] == 2 ?
$vbphrase["prefix_$lastpostinfo[lastprefixid]_title_rich"] :
htmlspecialchars_uni($vbphrase["prefix_$lastpostinfo[lastprefixid]_title_plain"])
);
}
else
{
$lastpostinfo['prefix'] = '';
}

if ($vbulletin->forumcache["$lastpostforum[forumid]"]['options'] & $vbulletin->bf_misc_forumoptions['allowicons'] AND $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
// from 3.6.9 & 3.7.0 we now show locks only if a user can not post AT ALL
// previously it was just if they could not create new threads
if (
$vbulletin->options['showlocks'] // show locks to users who can't post
AND !$forum['link'] // forum is not a link
AND
(
!($forum['options'] & $vbulletin->bf_misc_forumoptions['allowposting']) // forum does not allow posting
OR
(
!($forumperms & $vbulletin->bf_ugp_forumpermissions['canpostnew']) // can't post new threads
AND !($forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyown']) // can't reply to own threads
AND !($forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyothers']) // can't reply to others' threads
)
)
)
{
$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"]) OR $parentforumid == -1)
{
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;

$show['comma_leader'] = isset($forum['moderators']);
if (!isset($forum['moderators']))
{
$forum['moderators'] = '';
}

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'] = '';
}

$forum['browsers'] = 0;
$children = explode(',', $forum['childlist']);
foreach($children AS $childid)
{
$forum['browsers'] += (isset($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

($hook = vBulletinHook::fetch_hook('forumbit_display')) ? eval($hook) : false;

eval('$forumbits .= "' . fetch_template("forumhome_forumbit_level$depth$tempext") . '";');

} // end if (!$subsonly OR ($subsonly AND !empty($forum['subscribeforumid'])))
else
{
$forumbits .= $childforumbits;
}
}

return $forumbits;
}

// ###################### Start getforumlightbulb #######################
// returns 'on' or 'off' depending on last post info for a forum
function fetch_forum_lightbulb(&$forumid, &$lastpostinfo, &$foruminfo)
{

global $bb_view_cache, $vbulletin;

if (is_array($foruminfo) AND !empty($foruminfo['link']))
{ // see if it is a redirect
return 'link';
}
else
{
if ($vbulletin->userinfo['lastvisitdate'] == -1)
{
return 'new';
}
else
{
if ($vbulletin->options['threadmarking'] AND $vbulletin->userinfo['userid'])
{
$userlastvisit = (!empty($foruminfo['forumread']) ? $foruminfo['forumread'] : (TIMENOW - ($vbulletin->options['markinglimit'] * 86400)));
}
else
{
$forumview = intval(fetch_bbarray_cookie('forum_view', $foruminfo['forumid']));

//use which one produces the highest value, most likely cookie
$userlastvisit = ($forumview > $vbulletin->userinfo['lastvisit'] ? $forumview : $vbulletin->userinfo['lastvisit']);
}

if ($lastpostinfo['lastpost'] AND $userlastvisit < $lastpostinfo['lastpost'])
{
return 'new';
}
else
{
return 'old';
}
}
}
}

// ###################### Start makesubforumbit #######################
// gets a list of a forum's children and returns it
// based on the forumhome_subforumbit template
function construct_subforum_bit($parentid, $cancontainthreads, $output = '', $depthmark = '--', $depth = 0)
{
global $vbulletin, $stylevar, $vbphrase;
global $lastpostinfo, $lastpostarray;
static $splitter;

if ($cancontainthreads)
{
$canpost = 'post';
}
else
{
$canpost = 'nopost';
}

// get the splitter template
if (!isset($splitter["$canpost"]))
{
eval('$splitter[$canpost] = "' . fetch_template("forumhome_subforumseparator_$canpost") . '";');
}

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'])))
{ // no permission to view current forum
continue;
}

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

($hook = vBulletinHook::fetch_hook('forumbit_subforumbit')) ? eval($hook) : false;

eval('$subforum = "' . fetch_template("forumhome_subforumbit_$canpost") . '";');
if (!empty($output))
{
$subforum = $splitter["$canpost"] . $subforum;
}
if ($depth < $vbulletin->options['subforumdepth'])
{
$output .= construct_subforum_bit($forumid, $cancontainthreads, $subforum, $depthmark . '--', $depth + 1);
}

($hook = vBulletinHook::fetch_hook('forumbit_subforumbit2')) ? eval($hook) : false;
}
}

return $output;

}

// ###################### Start geticoninfo #######################
function fetch_iconinfo($iconid = 0)
{
global $vbulletin, $stylevar, $vbphrase, $vbulletin;

$iconid = intval($iconid);

switch($iconid)
{
case -1:
DEVDEBUG('returning poll icon');
return array('iconpath' => "$stylevar[imgdir_misc]/poll_posticon.gif", 'title' => $vbphrase['poll']);
case 0:
if (!empty($vbulletin->options['showdeficon']))
{
DEVDEBUG("returning default icon");
return array('iconpath' => $vbulletin->options['showdeficon'], 'title' => '');
}
else
{
return false;
}
default:
if ($vbulletin->iconcache !== null)
{ // we can get the icon info from the template cache

DEVDEBUG("returning iconid:$iconid from the template cache");
return $vbulletin->iconcache["$iconid"];
}
else
{ // we have to get the icon from a query
DEVDEBUG("QUERYING iconid:$iconid)");
return $vbulletin->db->query_first_slave("
SELECT title, iconpath
FROM " . TABLE_PREFIX . "icon
WHERE iconid = $iconid
");
}
}
}

// ###################### 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;
}

/*======================================================================*\
|| ####################################################################
|| # Downloaded: DGT-DATE
|| # CVS: $RCSfile$ - $Revision: 26194 $
|| ####################################################################
\*======================================================================*/
?>

If you want to get this running, copy and paste that.
 

El Intocable

New Member
betrocker said:
@ Moegames

you say that you use this mod years ago...can you give me the link to that EXACT mod?!

Btw,i can't see that you have done anything to help people on this forum...have you?

The forums in colums is an old Mod made for vb3.5 and is not been supported since then. I think that is what Moegames ment
 

p.n.c

New Member
El Intocable said:
The forums in colums is an old Mod made for vb3.5 and is not been supported since then. I think that is what Moegames ment

dont u ppl read propperly ? the guy sed he took 2 mods and combined them to make things easier for you guys, and this the thanks he gets? disappointing
i wudnt blame him if he decide not to share anything anymore
--------------------------

My brother, the hack works sweet as sugar, fine work bro

but i have a question though
see i want to remove the description under the name of the subforum
for example i have this

Mixtapes
Last Post:
Posted by - -
Forum Info: Topic: - Post: -


i want to remove last post, posted by, ...etc under Mixtapes


thanks


EDIT: Nvm i figured it out, all i had to do it edit the forumhome_forumbit_columncell to what i see to be suitable
 

chakru

New Member
seems lots of people are not successful in making this mod work! I really want to try it out, let me see if it works for me, I am taking a back up anyways for safety lol..
 

chakru

New Member
I dont know why this mod is not working for others its working like a magic!! thank you dude for this mod!!
 

betrocker

New Member
I'm guesing that people dont make modifications in right way or not following the instructions complitely.

Have in mind that new function in function_forumlist.php needs to be added at the bigining of the file....maybe that will help...
 

Moegames

New Member
This mod works perfectly fine ...i dont see how people are having issues... i think people should just make sure they are not making mistaks..i have installed this mod on a handful of fresh vb installs already..never a problem
 

CrazyFrog

New Member
Moegames said:
This mod works perfectly fine ...i dont see how people are having issues... i think people should just make sure they are not making mistaks..i have installed this mod on a handful of fresh vb installs already..never a problem

With a bit of tweaking, it works great mate on 3.7.3!

Thankyou very much, ive been trying this for a while now. I would love to know how i can make a small icon change beside the image when there is a new post, as the postmarker function does.

Thanks again

shot1.jpg
 

betrocker

New Member
In template forumhome_forumbit_level2_post

Find:

Code:
<a href="forumdisplay.php?$session[sessionurl]f=$forum[forumid]">$forum[title]</a>

Add after:

Code:
<if condition="$forum[statusicon]=='new'"><img src="[color=Red]path to ur image[/color]" /></if>

Replace code in red with url for your image for new posts.(ex. images/new_post.gif)

NOTICE: This will add image beside forum name when there is new post in thread...you can add this code where ever you want!
 
Top