нужно сделать небольшую информационную страничку для фирмы, группы...
пара рубрик, галлерея, контакт...
(пользователи кроме редактора и администратора не нужны)
одна кнопка "логин"
- если пользователь редактор, он видит кнопки "создать материал" и "логоут",
- если пользователь администратор, он видит кнопки "администрация" и "логоут",
сначала оба не видят меню, только при нажатии соответствующе кнопки...
пытался сделать такое под 4.7 с помощью манипуляции с меню и ролями пользователей, были проблемы, которые не смог решить. на 5.1 еще не пробовал.
Может существует такой модуль?
Кто уже решал подобную задачу и как?
Комментарии
На таких сайтах я обычно вообще убираю блок "Логин". Редакторы и администратор вполне могут зайти через http://ваш_сайт/user
по моему, это удобно, если ты предлагаешь человеку создавать стати для ресурса, то не грузишь его видом сложного меню, а имеется просто кнопка - создать статью...
или допустим, администратор видит изначально две кнопки - создать статью и администрировать...
но конечно это зависит от задачи и личных предпочтений
Одно - с командами Редактора, другое - Администратора.
Показывайте блоки с этими меню в соответствии с ролями.
- да, вы правы, у редактора и администратора разные команды
- мне хотелось бы не показывать блоки, когда в них нет необходимости
позвольте мне еще раз описать мои представления:
1. на страничке вместо блока "Вход для пльзователя", незаметная ссылка "login"
2. по ссылке "login" попадаем на страничку типа "/user" где видим форму с полями "login" и "password"
3. после входа в систему как редактор, вместо ссылки "login", две ссылки - "создать материал" и "logout"
4. после входа в систему как администратор, вместо ссылки "login", две ссылки - "администрировать" и "logout"
как я это сделал:
1,2. отключил блок "Вход для пользователя", в меню "primary links" добавил пункт "login", который ссылается на адрес "user"
недостатки: пункт меню "login" после захода на сайт превращается в "Мои учетные данные" (мне бы хотелось, чтоб он превращался в "logout")
3,4 добавил в меню "primary links" пункты "администрировать" и "создать материал"
недостатки: администратору и редактору показываются обе ссылки (хотелось бы, что бы пункт "администрировать" видел только администратор, а пункт "создать материал" видел только редактор.)
Вопросы:
- как можно реализовать это по другому?
- существует ли модуль который реализует эти функции?
<div><div class="form-item">
<label for="edit-name"><?php print t('Username') ?>: <span class="form-required" title="This field is required.">*</span></label>
<input maxlength="60" name="name" id="edit-name" size="15" value="" class="form-text required" type="text">
</div>
<div class="form-item">
<label for="edit-pass"><?php print t('Password') ?>: <span class="form-required" title="This field is required.">*</span></label>
<input name="pass" id="edit-pass" maxlength="60" size="15" class="form-text required" type="password">
</div>
<input name="op" id="edit-submit" value="<?php print t('Log in') ?>" class="form-submit" type="submit">
</form>
Этот код, кстати, можно скопировать с любой страницы, содержащей форму для входа.
Это все будет в блоке "Навигация", в зависимости от назначенных прав будут видны/скрыты разные пункты.
мне кажется, я не совсем это имел ввиду...
выше я попытался еще раз сформулировать свой вопрос
Такого модуля точно нет, слишком простая задача.
Если хотите, чтоб это было на каждой странице, то редактируйте файлы темы (конкретно page.tpl.php)
в том месте где Вы хотите все это видеть пишете:
global $user;
if (!$user->uid):
// дня незалогиненных пользователей
?>
<a href="/?q=user"><?php print t('Login') ?></a>
<?php
elseif (in_array('admin', $user->roles)) :
// для админа (роль admin)
?>
<a href="/?q=admin"><?php print t('administer') ?></a>
<a href="/?q=logout"><?php print t('Logout') ?></a>
<?php
elseif (in_array('editor', $user->roles)) :
// Для редактора (роль называется editor)
?>
<a href="/?q=node/add"><?php print t('add node') ?></a>
<a href="/?q=logout"><?php print t('Logout') ?></a>
<?php
endif;
?>
Тока роли в этом случае лучше называть по английски во избежании проблем с UTF-8 или использовать ютф-ный редактор.
Если знакомы с HTML/CSS то можете темизировать всю эту галиматью.
Если нужны конкретно "кнопки", то вместо
пишете
<form action="/?q=logout">
<button type=submit value="<?php print t('Logout') ?>">
</form>
ну или нечто подобное.
Спасибо! Это то что нужно!
Работает? Я код писал 'наглазок' и не тестил.