Здраствуйте!
У меня такой вопрос, можно ли при просмотре профиля пользователя для разных ролей создать разные наборы табов?
Например у меня на сайте две роли, заказчик и исполнитель, соответственно хочу заказчику добавить таб проекты, а исполнителю портфолио. Можно ли это реализовать?
Комментарии
смотря о каких табов идет речь если через вьюху то можно (не подскажу как но можно, код нужно куда то вставить)
а если в ноду свои табы делаешь то там проверку делаешь на роли и все...
как то так . информации море в инете
Не очень понял ответ... Есть модуль с кодом
<?php
$items['user/%user/projects'] = array(
function mymod_menu() {
$items = array();
'title' => 'Projects',
'page callback' => 'mymod_user_projects',
'page arguments' => array(1),
'access arguments' => array('access user profiles'),
'type' => MENU_LOCAL_TASK,
'weight' => 5,
);
$items['user/%user/portfolio'] = array(
'title' => 'Portfolio',
'page callback' => 'mymod_user_portfolio',
'page arguments' => array(1),
'access arguments' => array('access user profiles'),
'type' => MENU_LOCAL_TASK,
'weight' => 5,
);
return $items;
}
?>
Как вот тут сделать проверку на роль пользователя, чей профиль просматриваем?
Господа, не ужели никто не знает? Может я что то не правильно говорю?
http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hoo...
я сегодня за поиск
Вы меня конечно извените за тугость, но... Задача заключается не в том, чтобы ограничить доступ к просмотру пользователю, который в данный момент просматривает профиль... Задача состоит в том, чтобы на странице пользователя была видна закладка "проекты" только в том случае, если пользователь (чью страницу в данный момент просмартивают) имеет роль заказчика.
нет прав = нет вкладки ?
есть роль заказчик? => есть доступ к проектам => есть вкладка проекты
иначе нет вкладки проекты )
Ну я уже совсем ничего не понимаю... Если у меня есть роль заказчика, то Вы просматривая мой профиль дожны видеть вкладку "проекты", при нажатию на которую можно увидеть все мои проекты. Если возможно, подправьте код приведенный выше, чтобы я понял.
$items['user/%user/portfolio'] = array(
'title' => 'Portfolio',
'page callback' => 'mymod_user_portfolio',
'page arguments' => array(1),
'access callback' => 'your_module_access',
'type' => MENU_LOCAL_TASK,
'weight' => 5,
);
function your_module_access(){
return true если у global $user роль заказчика а у %user роль исполнителя
}
У меня все равно еще пару вопросов.
Во-первых, как в функцию передать %user? т.е. как мне закрузить $user = user_load(%user), через аргумент arg(1)?
Во-вторых, я написал следующее, и все равно вижу вкладку "Портфолио"
<?php
function your_module_access(){
$user = user_load(15); //15 - это пользователь, у которого есть роль заказчик (3)
if (array_key_exists(4, $user->roles)) { //а тут я проверяю, есть ли у пользователя роль 4, т.е. исполнитель
return true;
} else {
return false;
}
}
?>
Все, разобрался! Спс!
ну и каково решение?
Вот так и заработало!
ох какая у меня интуиция в субботу )))