Diskuse

Téma: Skrytá položka v menu

Ahoj,
je možné zařídit, aby se určitá položka v boxu menu zobrazovala jen např. adminům? Když zatrhnu atribut "neveřejné" tak v menu položka zůstane, jen je skrytý obsah (HCM modul).

Mimochodem SunLight je fakt dobrej...

Díky za pomoc.
postZaslat odpověď
v souboru function-template.php nahradit funkci _templateMenu takto:function _templateMenu($ord_start=null, $ord_end=null){
global $__shid_total;
$output="";
if(defined("_indexOutput_pid")){$pid=_indexOutput_pid;}else{$pid=-1;}
if(!_notpublicsite or _loginindicator){

//limit
if($ord_start===null or $ord_end===null){$ord_limit="";}
else{$ord_limit=" AND ord>=".intval($ord_start)." AND ord<=".intval($ord_end);}
$public=(_loginright_level>=100 ? 'AND public=1':'');

//obsah menu
$query=mysql_query("SELECT id,type,title,var1,var2 FROM `"._mysql_prefix."-root` WHERE visible=1 AND intersection=-1 AND type!=4".$ord_limit." ".$public." ORDER BY ord");
$output.="<"._template_menu_parent." class='menu'>\n";
$firstclass=" class='first'";
while($item=mysql_fetch_array($query)){

if(!($item['type']==7 and $item['var2']==1)){
if($item['id']==$pid){$class=" class='act'";}else{$class="";}
if($item['type']==6 and $item['var1']==1){$target=" target='_blank'";}else{$target="";}
$link="<a href='"._linkRoot($item['id'])."'".$class.$target.">".$item['title']."</a>";
}
else{
$__shid_total+=1;
$shid=$__shid_total;
$iquery=mysql_query("SELECT id,type,title,var1 FROM `"._mysql_prefix."-root` WHERE intersection=".$item['id']." AND visible=1 ".$public." ORDER BY ord");
$childactive=false;

$link_sublistitems='';
while($iitem=mysql_fetch_array($iquery)){
if($iitem['id']==$pid){$class=" class='act'"; $childactive=true;}else{$class="";}
if($iitem['type']==6 and $iitem['var1']==1){$target=" target='_blank'";}else{$target="";}
$link_sublistitems.="<li><a href='"._linkRoot($iitem['id'])."'".$class.$target.">".$iitem['title']."</a></li>";
}
if(!$childactive and $item['id']==$pid){$childactive=true;}
$link="<a href='"._linkRoot($item['id'])."' class='hs_".($childactive?'opened':'closed').(($item['id']==$pid)?' act':'')."' onclick=\"return _sysHideShow('sh".$shid."', this)\">".$item['title']."</a>
<ul class='hs_content".($childactive?'':' hs_hidden')."' id='sh".$shid."'>
".$link_sublistitems."
</ul>\n";
}

$output.="<"._template_menu_child.$firstclass.">".$link."</"._template_menu_child.">\n";
if($firstclass!=""){$firstclass="";}
}

$output.="</"._template_menu_parent.">";

}

return $output;

}
s tim, ze v tomto radku:$public=(_loginright_level>=100 ? 'AND public=1':'');nastavis level podle toho jak mas nastavene uzivatelske skupiny.
Super díky,
funguje to ----- jen ale naopak. Když se přihlásím jako obyč uživatel, položka v menu viditelná je (obsah dostupný není). Když se přihlásím jako admin, položka v menu zmizne (ale obsah dostupný je, pokud jsem před přihlášením byl na příslušné stránce).

Potřeboval bych to naopak. Asi to bude nějaká drobnost v kódu...

moc díky!!!
Tato úprava skvěle funguje ve verzi 7.4.4, jak ale udělat tu samou úpravu ve verzi 7.5.0 ?
Programovat v php neumím, proto bych byl vděčný za radu.
V nové verzi už ideálně pluginem http://sunlight.shira.cz/dokumentace-extend#a_cat_tpl, kde by se položky které jsou neveřejné skryli.
Díky moc za radu. Hned si to jdu prostudovat a vyzkoušet.
Tak už jsi to prostudoval a vyzkoušel? Hodilo by se mi to také, ale jak jsem na to koukal, nejsem z toho moudrej. Zůstanu raději tedy u staré verze. Nebo poraď, jestli jsi tomu už přišel na kloub?
Ano, už jsem to prostudoval. Ale jak jsem psal výše, neumím programovat. jval mi odpověděl odkazem na tvorbu extend rozšíření a to je vlastně celé o programování. Má však pravdu a mě to aspoň donutí naučit se programovat.
Zatím mám ty neveřejné sekce viditelné, ale přístupné jen osobám s určitým levelem skupiny. Trošku to sice kazí vzhled, ale dá se s tím žít (aspoň zatím, než se naučím něco s tím udělat).