<{php}> //********************* custom main menu *********************// // There must be an easier way to achieve this but this is what I // // came up with. Smarty programming seems to be acting wierd in a // // template so i have to do it the old fashioned way: straight PHP // // Broke up the menu building into simple functions to keep HTML // // tags out of the menu code. ONLY EDIT THE $htmlcode="..."; LINES // // It's dirty but it works. // // -xoopstuner // //*****************************************************************// //mini template for custom main menu function xtnrMenu($Menu,$activeModuleName,$activeModuleLink,$activeModuleSublinks){ $htmlcode=""; return $htmlcode; } //mini template for menu link and sublinks placement function xtnrMenuLink($linktitle,$link,$sublinks){ $htmlcode="
  • $linktitle
  • "; return $htmlcode; } //mini template for menu link when there are no sublinks, active takes precidence function xtnrMenuLinkEmpty($linktitle,$link){ $htmlcode="
  • $linktitle
  • "; return $htmlcode; } //mini template for menu link and sublinks placement for currently selected module function xtnrMenuLinkActive($linktitle,$link,$sublinks){ $htmlcode="
  • $linktitle
  • "; return $htmlcode; } //mini template for sublinks function xtnrMenuSublink($linktitle,$link){ $htmlcode=" ---$linktitle
    "; return $htmlcode; } //mini template for sublinks of currently active module function xtnrMenuSublinkActive($linktitle,$link){ $htmlcode=" ---$linktitle-active
    "; return $htmlcode; } //modified main menu block code global $xoopsUser,$xoopsModule,$customMainMenu,$activeModuleName,$activeModuleLink,$activeModuleSublinks,$temp; $block = array(); $block['lang_home'] = _MB_SYSTEM_HOME; $block['lang_close'] = _CLOSE; $module_handler =& xoops_gethandler('module'); $criteria = new CriteriaCompo(new Criteria('hasmain', 1)); $criteria->add(new Criteria('isactive', 1)); $criteria->add(new Criteria('weight', 0, '>')); $modules =& $module_handler->getObjects($criteria, true); $moduleperm_handler =& xoops_gethandler('groupperm'); $groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS; $read_allowed =& $moduleperm_handler->getItemIds('module_read', $groups); foreach (array_keys($modules) as $i) { if (in_array($i, $read_allowed)) { $modulesname = $modules[$i]->getVar('name'); $moduledirectory = $modules[$i]->getVar('dirname'); $sublinks =& $modules[$i]->subLink(); $sublinkshtmlout = ''; if (empty($xoopsModule)) { //system module; fill in defaults $mid=-1; $activeModuleName="Home"; $activeModuleLink=XOOPS_URL; $activeModuleSublinks=''; } else { $mid=$xoopsModule->getVar('mid'); } //build sublinks for module if ((count($sublinks) > 0)) { if ($i == $mid) { foreach($sublinks as $sublink){ //current active module $sublinkshtmlout =$sublinkshtmlout.xtnrMenuSublinkActive ($sublink['name'],XOOPS_URL.'/modules/'.$modules[$i]->getVar('dirname').'/'.$sublink['url'] ); $activeModuleSublinks =$activeModuleSublinks.xtnrMenuSublinkActive ($sublink['name'],XOOPS_URL.'/modules/'.$modules[$i]->getVar('dirname').'/'.$sublink['url'] ); } } else { foreach($sublinks as $sublink){ //not current active module $sublinkshtmlout =$sublinkshtmlout.xtnrMenuSublink ($sublink['name'],XOOPS_URL.'/modules/'.$modules[$i]->getVar('dirname').'/'.$sublink['url'] ); } } } else { $block['modules'][$i]['sublinks'] = array(); } // Build Main Menu Link From mini template if ($i == $mid) { //current active module $activeModuleName = $modulesname; $customMainMenu = $customMainMenu.xtnrMenuLinkActive($modulesname, XOOPS_URL.'/modules/'.$moduledirectory, $sublinkshtmlout); $activeModuleLink = $activeModuleLink.xtnrMenuLinkActive($modulesname, XOOPS_URL.'/modules/'.$moduledirectory, $sublinkshtmlout); } else { //not current active module if ($sublinkshtmlout==''){ $customMainMenu =$customMainMenu.xtnrMenuLinkEmpty($modulesname, XOOPS_URL.'/modules/'.$moduledirectory); } else { $customMainMenu =$customMainMenu.xtnrMenuLink($modulesname, XOOPS_URL.'/modules/'.$moduledirectory, $sublinkshtmlout); } } } } $customMainMenu = xtnrMenu($customMainMenu,$activeModuleName,$activeModuleLink,$activeModuleSublinks); //no output if no modules if (count(array_keys($modules))==0) {$customMainMenu ='';} <{/php}> <{$xoops_sitename}> - <{$xoops_pagetitle}> <{$xoops_module_header}>
     
    <{$xoops_sitename}>
       
     
     
     

    <{$xoops_banner}>
    <{if $xoops_showcblock == 1}>
    <{foreach item=block from=$xoops_ccblocks}> <{include file="refresh/theme_blockcenter_c.html"}> <{/foreach}>
    <{foreach item=block from=$xoops_clblocks}> <{include file="refresh/theme_blockcenter_l.html"}> <{/foreach}> <{foreach item=block from=$xoops_crblocks}> <{include file="refresh/theme_blockcenter_r.html"}> <{/foreach}>
    <{/if}>
    <{$xoops_contents}>
    <{if $xoBlocks.page_bottomleft or $xoBlocks.page_bottomright or $xoBlocks.page_bottomcenter}> <{if $xoBlocks.page_bottomcenter}> <{/if}> <{if $xoBlocks.page_bottomleft or $xoBlocks.page_bottomright}> <{/if}>
    <{foreach from=$xoBlocks.page_bottomcenter item=block}><{include file="refresh/theme_blockcenter_c.html"}><{/foreach}>
    <{foreach from=$xoBlocks.page_bottomleft item=block}><{include file="refresh/theme_blockcenter_l.html"}><{/foreach}> <{foreach from=$xoBlocks.page_bottomright item=block}><{include file="refresh/theme_blockcenter_r.html"}><{/foreach}>
    <{/if}>