Меню Скрытной Наны.

Организация меню.

Поскольку у Скрытной Наны есть целых три дискретных состояния (просмотр неавторизованным пользователем, авторизованным пользователем, администратором), навигация должна подстраиваться под эти состояния, и сама собой видоизменяться. Тут очень ценна поддержка PHP инструкций любым файлом Наны, в том числе и файлом меню, что в данном случае позволяет добиться необходимого функционала простым кодом:

<?php /* Выше этой строки в файле ничего не должно быть */

   
if (isset($_s['loc']['fold'])) {
      if (
is_admin()) get_menu_html_code(
         
$_s['des'],
         array(
            
'Администратору:'=>array(
               
$_s['loc']['fold'].'control_admin'.$_s['ext']=>'Админка МемберЗоны',
            )
         )
      );
      
get_menu_html_code(
         
$_s['des'],
         ((!
function_exists('h_access') or false===h_access()) ?
            array(
               
'Мой аккаунт:'=>array(
                  
$_s['loc']['fold'].'control'.$_s['ext']=>'Войти в МемберЗону',
               )
            ):
            array(
               
'Мембер Зона:'=>array(
                  
$_s['loc']['fold'].'control'.$_s['ext']=>'Покинуть МемберЗону',
                  
$_s['loc']['fold'].'index'.  $_s['ext']=>'Морда МемберЗоны',
               )
            )
         )
      );
   }
   
   
get_menu_html_code(
      
$_s['des'],
      array(
         
'Контакт с нами:' => array(
            
$_s['loc']['base'].'admin/connect'.$_s['ext']=>'Наши контакты',
         ),
      )
   );

/* Ниже этой строки в файле ничего не должно быть. */ ?>

Итого мы имеем четыре секции, которые далее можно наполнять ссылками. При этом последняя секция показывается всегда, а первые три - в зависимости от режима просмотра.

Варианты меню в зависимости от статуса пользователя.

  1. Пользователь не авторизован ни Администратором, ни в Закрытой Зоне:

  2. Пользователь авторизован только в качестве Администратора:

  3. Пользователь авторизован в Закрытой Зоне, но не Администратором:

  4. Пользователь авторизован и Администратором, и в Закрытой Зоне:

Это список минимально необходимых кнопок, стадо которых в каждой секции далее можно наращивать. В какую именно секцию следует пихать кнопку в зависимости от её назначения, должно быть понятно из данного наглядного примера.