Saturday, 2 May 2026
above article banner area

Perbaikan pada masalah status aktif submenu

Pada joomla 1.0.x terdapat masalah status aktif submenu yang tidak bisa tampil, and here is how to fix it :

1. Buka /modules/mod_mainmenu.php

2. Edit :

/**
* Utility function for writing a menu link
*/
function mosGetMenuLink( $mitem, $level=0, &$params, $open=null ) {
global $Itemid, $mosConfig_live_site, $mainframe;

$txt = ”;

switch ($mitem->type) {
case ‘separator’:
case ‘component_item_link’:
break;

case ‘url’:
if ( eregi( ‘index.php\?’, $mitem->link ) ) {
if ( !eregi( ‘Itemid=’, $mitem->link ) ) {
$mitem->link .= ‘&Itemid=’. $mitem->id;
}
}
break;

case ‘content_item_link’:
case ‘content_typed’:
// load menu params
$menuparams = new mosParameters( $mitem->params, $mainframe->getPath( ‘menu_xml’, $mitem->type ), ‘menu’ );

$unique_itemid = $menuparams->get( ‘unique_itemid’, 1 );

if ( $unique_itemid ) {
$mitem->link .= ‘&Itemid=’. $mitem->id;
} else {
$temp = split(‘&task=view&id=’, $mitem->link);

if ( $mitem->type == ‘content_typed’ ) {
$mitem->link .= ‘&Itemid=’. $mainframe->getItemid($temp[1], 1, 0);
} else {
$mitem->link .= ‘&Itemid=’. $mainframe->getItemid($temp[1], 0, 1);
}
}
break;

default:
$mitem->link .= ‘&Itemid=’. $mitem->id;
break;
}

// Active Menu highlighting
$current_itemid = $Itemid;
if ( !$current_itemid ) {
$id = ”;
} else if ( $current_itemid == $mitem->id ) {
//—Sal
if ($level > 0 ) {
$id = ‘id=”active_submenu’. $params->get( ‘class_sfx’ ) .'”‘;
} else {
$id = ‘id=”active_menu’. $params->get( ‘class_sfx’ ) .'”‘;
}
//—
} else if( $params->get( ‘activate_parent’ ) && isset( $open ) && in_array( $mitem->id, $open ) )  {
//—Sal
if ($level > 0 ) {
$id = ‘id=”active_submenu’. $params->get( ‘class_sfx’ ) .'”‘;
} else {
$id = ‘id=”active_menu’. $params->get( ‘class_sfx’ ) .'”‘;
}
//—
} else {
$id = ”;
}

if ( $params->get( ‘full_active_id’ ) ) {
// support for `active_menu` of ‘Link – Component Item’   
if ( $id == ” && $mitem->type == ‘component_item_link’ ) {
parse_str( $mitem->link, $url );
if ( $url[‘Itemid’] == $current_itemid ) {
//—Sal
if ($level > 0 ) {
$id = ‘id=”active_submenu’. $params->get( ‘class_sfx’ ) .'”‘;
} else {
$id = ‘id=”active_menu’. $params->get( ‘class_sfx’ ) .'”‘;
}
//—
}
}

// support for `active_menu` of ‘Link – Url’ if link is relative
if ( $id == ” && $mitem->type == ‘url’ && strpos( ‘http’, $mitem->link ) === false) {
parse_str( $mitem->link, $url );
if ( isset( $url[‘Itemid’] ) ) {
if ( $url[‘Itemid’] == $current_itemid ) {
$id = ‘id=”active_menu’. $params->get( ‘class_sfx’ ) .'”‘;
}
}
}
}

// replace & with amp; for xhtml compliance
$mitem->link = ampReplace( $mitem->link );

// run through SEF convertor
$mitem->link = sefRelToAbs( $mitem->link );

$menuclass = ‘mainlevel’. $params->get( ‘class_sfx’ );
if ($level > 0) {
$menuclass = ‘sublevel’. $params->get( ‘class_sfx’);
}

// replace & with amp; for xhtml compliance
// remove slashes from excaped characters
$mitem->name = stripslashes( ampReplace($mitem->name) );

switch ($mitem->browserNav) {
// cases are slightly different
case 1:
// open in a new window
$txt = ‘<a href=”‘. $mitem->link .'” target=”_blank” class=”‘. $menuclass .'” ‘. $id .’>’. $mitem->name .'</a>’;
break;

case 2:
// open in a popup window
$txt = “<a href=\”#\” onclick=\”javascript: window.open(‘”. $mitem->link .”‘, ”, ‘toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550’); return false\” class=\”$menuclass\” “. $id .”>”. $mitem->name .”</a>\n”;
break;

case 3:
// don’t link it
$txt = ‘<span ‘. $id .’>’. $mitem->name .'</span>’;
break;

default:   
// open in parent window
$txt = ‘<a href=”‘. $mitem->link .'” ‘. $id .’>’. $mitem->name .'</a>’;
break;
}

if ( $params->get( ‘menu_images’ ) ) {
$menu_params = new stdClass();
$menu_params = new mosParameters( $mitem->params );
$menu_image = $menu_params->def( ‘menu_image’, -1 );
if ( ( $menu_image != ‘-1’ ) && $menu_image ) {
$image = ‘<img src=”‘. $mosConfig_live_site .’/images/stories/’. $menu_image .'” border=”0″ alt=”‘. $mitem->name .'”/>’;
if ( $params->get( ‘menu_images_align’ ) ) {
$txt = $txt .’ ‘. $image;
} else {
$txt = $image .’ ‘. $txt;
}
}
}

return $txt;
}

3. Ubah CSS :

a.sublevel#active_submenu{
color:#D96D6D; (or whatever you want)
}

Share
below article banner

Leave a Reply

Your email address will not be published. Required fields are marked *