Регистрация
Вход через соцсети
Восстановление пароля

Разные меню для разных групп пользователей

Новый топик
08.04.2015, 15:23
Ответить | Цитировать
Коваль Виталий

Зарегистрирован:
2015-02-01
Сообщений: 24

Как сделать так что бы для гостей было одно меню разделов например (Главная, контакты, о компании), а для зарегистрированных добавлялся еще пункт с вложенными.
В классе навигации вроде нет такого. А если выводить через класс и проверять пустоту массива $perm (у группы "гость" он пуст) то нужно еще для пункта меню (раздела) сделать уникальный идентификатор. Как это сделать?
08.04.2015, 21:48
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Я бы создал цикл в котором проверил если пользователь зарегистрирован то добавить еще один пункт (если он всегда будет один например от личного кабинета).

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
09.04.2015, 11:05
Ответить | Цитировать
Коваль Виталий

Зарегистрирован:
2015-02-01
Сообщений: 24

МНе интересно как можно сделать так что бы при выводе пункта можно было проверить его на какой либо параметр который можно в админке извменить.
Так бы енапример всем пунктам для только гостя я указал бы значение 1, а для зареганных 2. Остальные пункты 0 - показывать всем.
09.04.2015, 16:39
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Я в таких ситуациях строю свои циклы к примеру. (Вы можете использовать класс $nav. У меня он не работает не на одном сайте. Может руки кривые)
Код:
$Subdivisions = $nc_core->db->get_results("SELECT `Subdivision_ID`, `Subdivision_Name`, `Read_Access_ID` FROM `Subdivision` WHERE `Parent_Sub_ID` = 0", ARRAY_A );
foreach($Subdivisions as $Subdivision){
if(is_object($perm) AND $perm->isSubdivision($Subdivision['Subdivision_ID'], MASK_READ)) echo "<li><a href='".nc_folder_path($Subdivision['Subdivision_ID'])."'>".$Subdivision['Subdivision_Name']."</a></li>";
}

http://netcat.ru/developers/docs/users-and-rights/permission/

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
10.04.2015, 08:38
Ответить | Цитировать
Коваль Виталий

Зарегистрирован:
2015-02-01
Сообщений: 24

У меня работает класс, но не знаю как к разделу привязать поле для идентификации его при выводе в меню. Что бы определять их не по ИД, а разделить на группы доступа и что бы это можно было делать при создании пункта меню(раздела).

Вот пример работы класса nav
Код:
<div class="b-header__row">
<ul class='b-nav'>
<?
$its_sub_item=false;
?>
<? foreach ($nc_core->nav->get_by_level(1) as $sd): /*Цикл проверки открыт пункт подменю или нет*/?>
<? if ($sd->active): ?>
<?
$its_sub_item=true; /*если хоть 1 открыть то тру*/
?>
<? endif ?>
<? endforeach ?>
<?php
$count_nav=0;/*счетчик пунктов меню*/
?>
<? foreach ($nc_core->nav->get_sub() as $sd): ?>
<?php if($count_nav!=0):?><li class="b-nav__item b-nav_separator"></li><?php endif;/*Разделитель пунктов меню*/?>
<? if ($sd->active): /* если активный пункт меню */?>
<li class="b-nav__item">
<? if( $its_sub_item!=true):/*если это не пункт подменю то, а родительский пункт выводим надписью */?>
<b class="b-nav__item__a b-nav__item__a--check"><?= $sd->name ?></b>
<? else: /*иначе это пункт подменю, родительский пункт ссылка*/?>
<a class="b-nav__item__a b-nav__item__a--check" href='<?= $sd->url ?>'><?= $sd->name ?></a>
<? endif; ?>
<? if(count($nc_core->nav->get_by_level(1))>0): /* Проверка есть ли подпункты */?>
<div style="display: block;" class="b-header__row b-header__row--step2">
<ul class='b-nav b-nav--step2'>
<?php
$count_sub=0;/*Счетчик подпунктов*/
?>
<? foreach ($nc_core->nav->get_by_level(1) as $sd): /*Вывод подпунктов активного родительского пункта*/ ?>
<?php if($count_sub!=0):?><li class="b-nav__item b-nav_separator b-nav_separator--step2"></li><?php endif;/*вывод разделителя подпунктов*/?>
<? if ($sd->active): /*Если подпункт активен выводим как надпись*/?>
<li class="b-nav__item b-nav__item--step2">
<b class="b-nav__item__a b-nav__item__a--step2 b-nav__item__a--step2--checked"><?= $sd->name ?></b>
</li>
<? else: /*Если подпункт не активен выводим как ссылку*/?>
<li class="b-nav__item b-nav__item--step2">
<a class="b-nav__item__a b-nav__item__a--step2" href='<?= $sd->url ?>'><?= $sd->name ?></a>
</li>
<? endif ?>
<?php
$count_sub++;/*Счетчик подпунктов*/
?>
<? endforeach ?>
</ul>
</div>
<?php endif;?>
</li>
<?else: /* если неактивный пункт меню выводим ссылкой*/?>
<li class="b-nav__item">
<a class="b-nav__item__a" href='<?= $sd->url ?>'><?= $sd->name ?></a>
</li>
<? endif ?>
<?php
$count_nav++;/*счетчик пунктов меню*/
?>
<? endforeach ?>
</ul>
</div>
198 196 2015-04-10 08:38:58 14107
Описание проекта