Fork me on GitHub

Rapport de message :*
 

Re: Home Menu et $xoopsDB

Titre du sujet : Re: Home Menu et $xoopsDB
par Kris sur 14/04/2010 16:13:41

En vrac une solution que j'utilise pour faire un menu horizontal "automatique"
<?php
function get_system_main_menu_show()
{
    global 
$xoopsUser,$xoopsModule;
    
$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($criteriatrue);
    
$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)) {
            
$block['modules'][$i]['name'] = $modules[$i]->getVar('name');
            
$block['modules'][$i]['directory'] = $modules[$i]->getVar('dirname');
            
$sublinks $modules[$i]->subLink();
            if ((
count($sublinks) > 0) ) {
                foreach(
$sublinks as $sublink){
                    
$block['modules'][$i]['sublinks'][] = array('name' => $sublink['name'], 'url' => XOOPS_URL.'/modules/'.$modules[$i]->getVar('dirname').'/'.$sublink['url']);
                }
            } else {
                
$block['modules'][$i]['sublinks'] = array();
            }
        }
    }
    return 
$block;
}

$MainMenu get_system_main_menu_show();
$this->assign'ex_mainmenu'$MainMenu );
if ( 
is_object($xoopsModule) ) {
    
$this->assign('ex_moduledir'$xoopsModule->getVar('dirname'));
    
$this->assign('ex_module_name'$xoopsModule->getVar('name') );
}
?>

<ul id="default_nav">
<
li class="default_top">
<{if ! 
$ex_moduledir || $xoops_dirname == "pm" }>
    <
a href="<{$xoops_url}>" class="default_top_link default_selected" alt="<{$smarty.const._MB_SYSTEM_HOME}>" title="<{$smarty.const._MB_SYSTEM_HOME}>">
<{else}>
    <
a href="<{$xoops_url}>" class="default_top_link" alt="<{$smarty.const._MB_SYSTEM_HOME}>" title="<{$smarty.const._MB_SYSTEM_HOME}>">
<{/if}>
    <
span> <{$smarty.const._MB_SYSTEM_HOME}> </span>
</
a>
</
li>
    <{foreach 
item=module from=$ex_mainmenu.modules }> 
    <
li class="default_top">
        <{if 
$module.directory == $ex_moduledir }>
        <
a href="<{$xoops_url}>/modules/<{$module.directory}>/" class="default_top_link default_selected" alt="<{$module.name}>" title="<{$module.name}>" >
        <{if 
$module.sublinks }>
            <
span class="default_down"> <{$module.name}> </span> </a>
            <
ul class="default_sub">
                <{foreach 
item=sublink from=$module.sublinks}> 
                <
li >
                <
a href="<{$sublink.url}>" alt="<{$sublink.name}>" title="<{$sublink.name}>"><{$sublink.name}></a>
                </
li>
                <{/foreach}> 
            </
ul>
        <{else}>
            <
span> <{$module.name}> </span> </a>
        <{/if}>
    <{else}>
        <
a href="<{$xoops_url}>/modules/<{$module.directory}>/" class="default_top_link" alt="<{$module.name}>" title="<{$module.name}>" >
        <{if 
$module.sublinks }>
            <
span class="default_down"> <{$module.name}> </span> </a>
            <
ul class="default_sub">
                <{foreach 
item=sublink from=$module.sublinks}> 
                <
li >
                <
a href="<{$sublink.url}>" alt="<{$sublink.name}>" title="<{$sublink.name}>"><{$sublink.name}></a>
                </
li>
                <{/foreach}> 
            </
ul>
        <{else}>
            <
span> <{$module.name}> </span> </a>
        <{/if}>
    <{/if}>
    </
li>
    <{/foreach}> 
</
ul>

Pour afficher ou non le module, tu peux mettre "0" en poids (ou ordre) dans l'administration des modules

@+
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

42 Personne(s) en ligne (35 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 42 | Plus ...