I ran into this requirement myself a few days ago, and needed to hack the menu plugin gently to prevent certain topics from showing up in the topics list. It was better to explicitly specify which topics should be excluded (because I would include explicit hyperlinks to them elsewhere in the menu) than which ones should be included, as that would change often over time.
Here's the additional line in menu/config.php:
Text Formatted Code
// Array of topic id's to exclude from the topics list menu
$CONFIG_MENU['excludedtopics'] = array('Topic1','Topic2');
and here's the hack to the menu/functions.inc file: in the MNU_showTopics() function, the first for loop should get the following extra line:
Text Formatted Code
if (in_array($A['tid'],$CONFIG_MENU['excludedtopics'])) continue;
Here's what the beginning of the for loop looks like with this line added:
Text Formatted Code
for( $i = 0; $i < $nrows; $i++ ) {
$A = DB_fetchArray( $result );
if (in_array($A['tid'],$CONFIG_MENU['excludedtopics'])) continue;
if( SEC_hasAccess( $A['owner_id'], $A['group_id'], $A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon']) > 0 )
{
$labela = array();
$labela = explode('_',$A['tid']);
$lsz = sizeof($labela);