Saturday 27 February 2010 - 17:40
migliorare le funzioni che creano i menu: Volevo suggerire anche di inserire una riga di codice nelle funzioni che creano i menu (sia laterale sia orizzontale) per nascondere all'utente le sezioni a cui non è abilitato. Ho notato infatti che di default sono sempre visibili, e quando un utente non abilitato ci clicca sopra riceve il messaggio "Non sei abilitato a questa sezione" o cosa del genere. Io credo che sia meglio nasconderlo del tutto a chi non è abilitato. Ho risolto modificando le funzioni che creano i menu in "/include/theme.php" aggiungengo una semplice riga che sfrutta la funzione di flatnux "user_can_view_section()":
ORIGINALE:
function create_menu() { global $_FN; $title = "Menu"; OpenBlock ( "themes/{$_FN['theme']}/images/menu.png", $title ); $modlist = list_sections_translated ( "sections" ); // return array width title - link
$tl = ""; if ($_FN ['lang'] != $_FN ['lang_default']) $tl = "&lang={$_FN['lang']}"; foreach ( $modlist as $modl ) { $link = get_section_id($modl ['link']); $title = $modl ['title']; $accesskey = $modl ['accesskey']; if ($accesskey != "") $accesskey = "accesskey='$accesskey'"; echo "<a $accesskey href='".fn_rewritelink("index.php?mod=$link$tl")."'>$title</a><br />\n"; } CloseBlock (); echo "<br />"; }
MIO CODICE:
function create_menu() { global $_FN; $title = "Menu"; OpenBlock ( "themes/{$_FN['theme']}/images/menu.png", $title ); $modlist = list_sections_translated ( "sections" ); // return array width title - link
$tl = ""; if ($_FN ['lang'] != $_FN ['lang_default']) $tl = "&lang={$_FN['lang']}"; foreach ( $modlist as $modl ) { if ( user_can_view_section($modl ['link'],$_FN['user']) ){ $link = get_section_id($modl ['link']); $title = $modl ['title']; $accesskey = $modl ['accesskey']; if ($accesskey != "") $accesskey = "accesskey='$accesskey'"; echo "<a $accesskey href='".fn_rewritelink("index.php?mod=$link$tl")."'>$title</a><br />\n"; } } CloseBlock (); echo "<br />"; }
Fai la stessa cosa con "function create_h_menu()" e con "function FN_CreateSubmenu()".
|