Quote($row->menutype) . ' AND parent = '.(int) $row->parent . ' AND published != -2' . ' ORDER BY ordering'; $order = JHTML::_('list.genericordering', $query ); $ordering = JHTML::_('select.genericlist', $order, 'ordering', 'class="inputbox" size="1"', 'value', 'text', intval( $row->ordering ) ); } else { $ordering = ''. JText::_( 'DESCNEWITEMSLAST' ); } return $ordering; } /** * Build the multiple select list for Menu Links/Pages */ function linkoptions( $all=false, $unassigned=false ) { $db =& JFactory::getDBO(); // get a list of the menu items $query = 'SELECT m.id, m.parent, m.name, m.menutype' . ' FROM #__menu AS m' . ' WHERE m.published = 1' . ' ORDER BY m.menutype, m.parent, m.ordering' ; $db->setQuery( $query ); $mitems = $db->loadObjectList(); $mitems_temp = $mitems; // establish the hierarchy of the menu $children = array(); // first pass - collect children foreach ( $mitems as $v ) { $id = $v->id; $pt = $v->parent; $list = @$children[$pt] ? $children[$pt] : array(); array_push( $list, $v ); $children[$pt] = $list; } // second pass - get an indent list of the items $list = JHTMLMenu::TreeRecurse( intval( $mitems[0]->parent ), '', array(), $children, 9999, 0, 0 ); // Code that adds menu name to Display of Page(s) $mitems_spacer = $mitems_temp[0]->menutype; $mitems = array(); if ($all | $unassigned) { $mitems[] = JHTML::_('select.option', '', JText::_( 'Menus' ) ); if ( $all ) { $mitems[] = JHTML::_('select.option', 0, JText::_( 'All' ) ); } if ( $unassigned ) { $mitems[] = JHTML::_('select.option', -1, JText::_( 'Unassigned' ) ); } $mitems[] = JHTML::_('select.option', '' ); } $lastMenuType = null; $tmpMenuType = null; foreach ($list as $list_a) { if ($list_a->menutype != $lastMenuType) { if ($tmpMenuType) { $mitems[] = JHTML::_('select.option', '' ); } $mitems[] = JHTML::_('select.option', '', $list_a->menutype ); $lastMenuType = $list_a->menutype; $tmpMenuType = $list_a->menutype; } $mitems[] = JHTML::_('select.option', $list_a->id, $list_a->treename ); } if ($lastMenuType !== null) { $mitems[] = JHTML::_('select.option', '' ); } return $mitems; } function treerecurse( $id, $indent, $list, &$children, $maxlevel=9999, $level=0, $type=1 ) { if (@$children[$id] && $level <= $maxlevel) { foreach ($children[$id] as $v) { $id = $v->id; if ( $type ) { $pre = '|_ '; $spacer = '.      '; } else { $pre = '- '; $spacer = '  '; } if ( $v->parent == 0 ) { $txt = $v->name; } else { $txt = $pre . $v->name; } $pt = $v->parent; $list[$id] = $v; $list[$id]->treename = "$indent$txt"; $list[$id]->children = count( @$children[$id] ); $list = JHTMLMenu::TreeRecurse( $id, $indent . $spacer, $list, $children, $maxlevel, $level+1, $type ); } } return $list; } }