Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Последние сообщения
Ответить
1

Сниппеты - Динамическое меню

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#1
По умолчанию в DrunyaCMS меню статическое и если, Вы решите отключить какой-то модуль, ссылка на него в меню, все равно, останется. Сейчас я поведаю как легко и просто сделать меню, которое само поймет, что выводить, а что нет.

Рассказывать теорию не буду - в коде много коментов, все легко понять:

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
<?php echo '<ul class="uMenuRoot">';
//получаем пути ко всем модулям
$modules glob('modules/*');
if (!empty(
$modules)) {
  
//перебираем модули
    
foreach($modules as $module) {
        
//получаем название каждого модуля
        
$module substr(strrchr($module'/'), 1);
           
//системные модули...
        
$unuseable = array(
            
'statistics',
            
'pages',
        );
        
//нам не нужны в меню
        
if (in_array($module$unuseable)) continue;
        
//теперь проверяем настройки модулей - выводим только те, которые активны
        
if (get_set('active'$module) == 1) {
           
//для чата делаем блатную ссылку жабаскриптом
            
if ($module == 'chat') {
                echo 
'<li><div class="uMenuItem"><a href="javascript://" onclick="window.open(\'/chat/\', \'chat\', \'resizable=0, location=0, width=210, height=620\')">' get_set('title'$module) . '</a></div></li>';
                continue;
            }
            
//для остальных обычные ссылки
            
echo '<li><div class="uMenuItem"><a href="/' $module '/">' get_set('title'$module) . '</a></div></li>';
        }
    }
}
echo 
'</ul>';?>

Как видите, если немного знать архитектуру DrunyaCMS, при помощи сниппетов, можно делать очень интересные вещи. Это меню еще цветочки....:)
Вывести меню можно прописав в шаблоне {[menu]}, если Вы назвали сниппет menu.

Отредактировано автором 23 Июн 2010
Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)
1
Сейчас online: 145. Зарегистрированных: 0. Гостей: 145.