Respuesta: Problema Templates Gracias rcarcamonster, lo cambié pero nada.
Te paso el archivo, y te repito gracias. <?php
/**
* @version $Id: md_submenu.php,v 1.2 2005/04/28 04:56:49 rhuk Exp $
* @package Mambo
* @copyright (C) 2000 - 2005 Miro International Pty Ltd
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* Mambo is Free Software
*/
/** ensure this file is being included by a parent file */
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
if (!defined( '_MOS_SUBMENU_MODULE' )) {
/** ensure that functions are declared only once */
define( '_MOS_SUBMENU_MODULE', 1 );
$hilightid = -1;
$menuname = null;
$tab_colors = array();
$tab_color = 'white';
$tab_index = 0;
/**
* Utility function for writing a menu link
*/
function rtGetTabColor() {
global $tab_color;
return $tab_color;
}
function rtGetHilightid() {
global $hilightid;
return $hilightid;
}
function rtGetSubMenuLink( $mitem, $level, $hilight=false , $color_index=false) {
global $Itemid, $mosConfig_live_site, $mainframe, $hilightid, $menuname, $tab_colors, $tab_color, $tab_index, $forcehilite;
$txt = '';
$id = '';
switch ($mitem->type) {
case 'separator':
case 'component_item_link':
break;
case 'content_item_link':
$temp = split("&task=view&id=", $mitem->link);
$mitem->link .= '&Itemid='. $mainframe->getItemid($temp[1]);
break;
case 'url':
if ( eregi( 'index.php\?', $mitem->link ) ) {
if ( !eregi( 'Itemid=', $mitem->link ) ) {
$mitem->link .= '&Itemid='. $mitem->id;
}
}
break;
case 'content_typed':
default:
$mitem->link .= '&Itemid='. $mitem->id;
break;
}
if ($color_index) {
$id .= $tab_colors[($tab_index)%count($tab_colors)];
$tab_index++;
}
// Active Menu highlighting
$current_itemid = trim( mosGetParam( $_REQUEST, 'Itemid', 0 ) );
if ( !$current_itemid && !$hilight ) {
//$id = '';
} else if (($forcehilite && $hilight) || (($current_itemid == $mitem->id || $hilight) && !$forcehilite)) {
if ($level == 0) {
$tab_color = $id;
$menuname = $mitem->name;
$hilightid = $mitem->id;
}
$id .= 'active_menu';
}
$id = ' class="' . $id . '"';
$mitem->link = ampReplace( $mitem->link );
if ( strcasecmp( substr( $mitem->link,0,4 ), 'http' ) ) {
$mitem->link = sefRelToAbs( $mitem->link );
}
switch ($mitem->browserNav) {
// cases are slightly different
case 1:
// open in a new window
$txt = '<li'. $id . '><a href="'. $mitem->link .'" target="_blank">'. $mitem->name ."</a></li>\n";
break;
case 2:
// open in a popup window
$txt = "<li". $id . "><a href=\"#\" onclick=\"javascript: window.open('". $mitem->link ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrol lbars=yes,resizable=yes,width=780,height=550'); return false\">". $mitem->name ."</a></li>\n";
break;
case 3:
// don't link it
$txt = '<li'. $id . '><span class="seperator">'. $mitem->name ."</span></li>\n";
break;
default: // formerly case 2
// open in parent window
$txt = '<li'. $id . '><a href="'. $mitem->link .'">'. $mitem->name ."</a></li>\n";
break;
}
return $txt;
}
function rtShowHorizMenu( $menutype) {
global $database, $my, $cur_template, $Itemid, $hilightid, $forcehilite;
global $mosConfig_absolute_path, $mosConfig_shownoauth;
$topnav = '';
if ($mosConfig_shownoauth) {
$sql = "SELECT m.* FROM #__menu AS m"
. "\nWHERE menutype='". $menutype ."' AND published='1' AND parent=0"
. "\nORDER BY ordering";
} else {
$sql = "SELECT m.* FROM #__menu AS m"
. "\nWHERE menutype='". $menutype ."' AND published='1' AND access <= '$my->gid' AND parent=0"
. "\nORDER BY ordering";
}
$database->setQuery( $sql );
$topmenu = $database->loadObjectList( 'id' );
//work out if this should be highlighted
$sql = "SELECT m.* FROM #__menu AS m"
. "\nWHERE menutype='". $menutype ."' AND published='1'";
$database->setQuery( $sql );
$subrows = $database->loadObjectList( 'id' );
$maxrecurse = 5;
$parentid = $Itemid;
//this makes sure toplevel stays hilighted when submenu active
while ($maxrecurse-- > 0) {
$parentid = getParentRow($subrows, $parentid);
if (isset($parentid) && $parentid >= 0 && $subrows[$parentid]) {
$hilightid = $parentid;
} else {
break;
}
}
$links = array();
$i = 0;
foreach ($topmenu as $menuitem) {
$hilight = false;
if (isset($forcehilite) && $forcehilite && $forcehilite == $i++) {
$hilight = true;
} else {
if ($menuitem->id == $hilightid) {
$hilight = true;
}
}
$links[] = rtGetSubMenuLink( $menuitem, 0, $hilight, true );
}
$menuclass = 'toplevel';
if (count( $links )) {
$topnav .= '<ul id="'. $menuclass .'">';
foreach ($links as $link) {
$topnav .= $link;
}
$topnav .= '</ul>';
}
return $topnav;
}
function getParentRow($rows, $id) {
if (isset($rows[$id]) && $rows[$id]) {
if($rows[$id]->parent > 0) {
return $rows[$id]->parent;
}
}
return -1;
}
/**
* Vertically Indented Menu
*/
function rtShowSubMenu( $menutype, $pre=NULL, $post=NULL ) {
global $database, $my, $cur_template, $Itemid;
global $mosConfig_absolute_path, $mosConfig_live_site, $mosConfig_shownoauth;
$sidenav = '';
/* If a user has signed in, get their user type */
$intUserType = 0;
if($my->gid){
switch ($my->usertype) {
case 'Super Administrator':
$intUserType = 0;
break;
case 'Administrator':
$intUserType = 1;
break;
case 'Editor':
$intUserType = 2;
break;
case 'Registered':
$intUserType = 3;
break;
case 'Author':
$intUserType = 4;
break;
case 'Publisher':
$intUserType = 5;
break;
case 'Manager':
$intUserType = 6;
break;
}
} else {
/* user isn't logged in so make their usertype 0 */
$intUserType = 0;
}
if ($mosConfig_shownoauth) {
$sql = "SELECT m.* FROM #__menu AS m"
. "\nWHERE menutype='". $menutype ."' AND published='1'"
. "\nAND parent > 0"
. "\nORDER BY parent,ordering";
} else {
$sql = "SELECT m.* FROM #__menu AS m"
. "\nWHERE menutype='". $menutype ."' AND published='1' AND access <= '$my->gid'"
. "\nAND parent > 0"
. "\nORDER BY parent,ordering";
}
$database->setQuery( $sql );
$rows = $database->loadObjectList( 'id' );
// establish the hierarchy of the menu
$children = array();
// first pass - collect children
foreach ($rows as $v ) {
$pt = $v->parent;
$list = @$children[$pt] ? $children[$pt] : array();
array_push( $list, $v );
$children[$pt] = $list;
}
// second pass - collect 'open' menus
$open = array( $Itemid );
$count = 20; // maximum levels - to prevent runaway loop
$id = $Itemid;
while (--$count) {
if (isset($rows[$id]) && $rows[$id]->parent > 0) {
$id = $rows[$id]->parent;
$open[] = $id;
} else {
break;
}
}
if (isset($children[$id]) && $children[$id]) {
$sidenav = rtRecurseSubMenu( $id, 1, $children, $open);
}
return $sidenav;
}
/**
* Utility function to recursively work through a vertically indented
* hierarchial menu
*/
function rtRecurseSubMenu( $id, $level, &$children, &$open) {
global $Itemid, $menuname;
$output = "";
$sub_class = "submenu";
if (@$children[$id]) {
//$n = min( $level, count( $indents )-1 );
if ($level == 1 ) {
$output .= "<div class=\"moduletable\"><h3>" . $menuname . " Menu</h3>\n";
$output .= "<ul class=\"" . $sub_class . "\">\n";
} else {
$output .= "<ul>\n";
}
foreach ($children[$id] as $row) {
$output .= rtGetSubMenuLink( $row, $level );
if ( in_array( $row->id, $open )) {
$output .= rtRecurseSubMenu( $row->id, $level+1, $children, $open );
}
}
$output .= "</ul>\n";
if ($level == 1) {
$output .= "</div>\n";
}
}
return $output;
}
function beginsWith( $str, $sub ) {
return ( substr( $str, 0, strlen( $sub )-1 ) == $sub );
}
}
?> |