PDA

View Full Version : How do I remove certain cats from navbits?


Jakeman
08-17-2002, 06:50 AM
Christophe_O says:

Originally posted by smachol
$navbits... is in functions.php... :)

Am I correct in saying, then, that to modify the navbar requires PhP coding---therefore this would be a "hack" and not a template modification?

What I want to do is remove the forum category from the navbar.

I did look in functions.php, and found "$navbits=makenav" So I went farther down to "function makenav"----but well, I don't know PhP......

Well, maybe this is beyond the scope of this forum.... but anyway here is the makenav. Can someone tell me what to remove to take out the forum category from the navbar? Just copy and paste in your reply what to remove.... That is, IF this is the right function and IF it's easy for an experienced programmer to spot...


function makenav($id,$idtype="forum",$highlightlast=1) {
global $DB_site,$nav_url,$nav_title,$session,$threadcache ;
$code = "";
if ($id!=-1) {
if ($idtype=="thread") {
if ( !isset($threadcache["$id"]) ) {
$getforumid=$DB_site->query_first("SELECT forumid FROM thread WHERE threadid=$id");
} else {
$getforumid['forumid'] = $threadcache["$id"]['forumid'];
}
$code=makenav($getforumid['forumid'],"forum",1);

if ($highlightlast) {
$templatename="nav_linkon";
} else {
$templatename="nav_linkoff";
}

if (strlen($code)>0) {
$code.=gettemplate("nav_joiner",0);
}

$threadinfo=getthreadinfo($id);
$nav_url="showthread.php?s=$session[sessionhash]&threadid=$id";
$nav_title=$threadinfo[title];

eval("\$code .= \"".gettemplate("$templatename")."\";");
} else {
$foruminfo=getforuminfo($id);
if ($foruminfo[parentid]!=-1) {
$code=makenav($foruminfo[parentid],$idtype,1);
}

if (strlen($code)>0) {
$code.=gettemplate("nav_joiner",0);
}

$nav_url="forumdisplay.php?s=$session[sessionhash]&forumid=$id";
$nav_title=$foruminfo[title];

if ($highlightlast) {
eval("\$code .= \"".gettemplate('nav_linkon')."\";");
} else {
eval("\$code .= \"".gettemplate('nav_linkoff')."\";");
}

}
}
return $code;

}

Jakeman
08-17-2002, 06:53 AM
i just did that on my forums. here is my makenavbar function for my 2.2.5 forums:


// ###################### Start makenavbar #######################
$altnavbar = 0;
function makenavbar($id,$idtype="forum",$highlightlast=1) {
global $header,$footer,$headinclude,$toplinks,$forumjump, $timezone,$bbtitle,
$hometitle,$bburl,$homeurl,$copyrighttext,$privacy url,$contactuslink,
$webmasteremail,$technicalemail,$faxnumber,$addres s,$companyname,$titleimage,
$replyimage,$newthreadimage,$closedthreadimage,$la stvisitdate,$timenow,$navbits,
$templateversion,$session,$altnavbar;

$navbits=makenav($id,$idtype,$highlightlast);

if ($altnavbar) {
$navbits = explode(gettemplate("nav_joiner"),$navbits);
while (list($key,$val)=each($navbits)) {
$altnavbits .= "<br>$altnavprefix<img src=\"{imagesfolder}/cascade/casendline.gif\"><img src=\"{imagesfolder}/cascade/casicon.gif\">&nbsp;&nbsp;$val\n";
$altnavprefix .= "<img src=\"{imagesfolder}/cascade/casvertline.gif\">";
}
eval("\$navbar = \"".gettemplate("navbaralt")."\";");
} else {
eval("\$navbar = \"".gettemplate("navbar")."\";");
}

return $navbar;
}

function makenav($id,$idtype="forum",$highlightlast=1) {
global $DB_site,$nav_url,$nav_title,$session,$threadcache ;
$code = "";
if ($id!=-1) {
if ($idtype=="thread") {
if ( !isset($threadcache["$id"]) ) {
$getforumid=$DB_site->query_first("SELECT forumid FROM thread WHERE threadid=$id");
} else {
$getforumid['forumid'] = $threadcache["$id"]['forumid'];
}
$code=makenav($getforumid['forumid'],"forum",1);

if ($highlightlast) {
$templatename="nav_linkon";
} else {
$templatename="nav_linkoff";
}

if (strlen($code)>0) {
$code.=gettemplate("nav_joiner",0);
}

$threadinfo=getthreadinfo($id);
$nav_url="showthread.php?s=$session[sessionhash]&threadid=$id";
$nav_title=$threadinfo[title];

eval("\$code .= \"".gettemplate("$templatename")."\";");
} else {
$foruminfo=getforuminfo($id);
if ($foruminfo[parentid]!=-1) {
$code=makenav($foruminfo[parentid],$idtype,1);
}

//MOVED DOWN
// if (strlen($code)>0) {
// $code.=gettemplate("nav_joiner",0);
// }
//MOVED DOWN

$nav_url="forumdisplay.php?s=$session[sessionhash]&forumid=$id";
$nav_title=$foruminfo[title];

//CERTAIN CATS DON'T SHOW

if ($id == 50 || $id == 28 || $id == 21 || $id == 23 || $id == 46 || $id == 48 || $id == 49) {

} else {

if (strlen($code)>0) {
$code.=gettemplate("nav_joiner",0);
}

//END HACK
if ($highlightlast) {
eval("\$code .= \"".gettemplate('nav_linkon')."\";");
} else {
eval("\$code .= \"".gettemplate('nav_linkoff')."\";");
}

//CERTAIN CATS DON'T SHOW

}

//END HACK

}
}
return $code;

}


you need to manually add the forumids of your categories you don't want to show in this line:


if ($id == 50 || $id == 28 || $id == 21 || $id == 23 || $id == 46 || $id == 48 || $id == 49)

Boofo
08-17-2002, 07:18 AM
Is there a way to take just the thread title out of the navbar?

Christophe_O
08-17-2002, 07:19 AM
Thank you, Jake, this looks do-able.

A minute ago, I also happened to notice there are 2 references to a "nav_joiner"----and of course there are 2 ">" joiners in the navbar-----so I was thinking, maybe just remove most of the section above the first reference to a "nav_joiner".....

.......well, guess that won't do..... heh....

Jakeman
08-17-2002, 07:27 AM
Originally posted by Christophe_O
Thank you, Jake, this looks do-able.

A minute ago, I also happened to notice there are 2 references to a "nav_joiner"----and of course there are 2 ">" joiners in the navbar-----so I was thinking, maybe just remove most of the section above the first reference to a "nav_joiner".....

.......well, guess that won't do..... heh....

notice i completely commented out the original instance of:


if (strlen($code)>0) {
$code.=gettemplate("nav_joiner",0);
}


make sure you comment out that one and add the one within the if statement. if the makenavbits function hasn't changed between 2.2.5 and 2.2.6 then you can just copy and paste my whole function and put in your own forumids in the if statement.

Jakeman
08-17-2002, 07:30 AM
Originally posted by Boofo
Is there a way to take just the thread title out of the navbar?

sure. i will test it and post the code when i make sure it's working. i'm going to sleep right now.

Boofo
08-17-2002, 07:35 AM
Thank you very much. I will be looking forward to this. :)

Originally posted by Jakeman


sure. i will test it and post the code when i make sure it's working. i'm going to sleep right now.

Christophe_O
08-17-2002, 02:19 PM
Originally posted by Boofo
Is there a way to take just the thread title out of the navbar?

I have sort of the opposite question: is there a way to state ONLY the title of the current page.

I am coming along nicely with a new "framed" version of vB---I can put all necessary links into a banner frame---so I actually don't need a Navbar at all---just need a way to "name the current page..."

Jakeman
08-18-2002, 07:48 AM
i haven't had a chance to look at this yet. :(

@Christophe_O - the page title is already in the... title tag, right? :p wouldn't you just remove the navbits completely then?

Christophe_O
08-18-2002, 05:56 PM
Well, maybe so, Jake. Anyway, the hack that you kindly have supplied here also is very do-able. Thank you.

Christophe_O
08-24-2002, 05:32 AM
Just discovered this prints the page title: $foruminfo[title]

Now if only I can figure out how to get the navbar links in the thread display to use the action <target="left"> ......

PsyBlast
12-10-2002, 01:24 PM
is there an easy way to make all of the navbits a certain format without having to go through every single template?

I dont want them to be these big bulky long sentances, i ant them divided up like this:

VB icon here Forum name here
--2nd line here
--3rd line here
-- etc. etc. etc.