Как сделать "логин" для информационной странички?

Главные вкладки

Аватар пользователя streptokok streptokok 7 февраля 2007 в 10:41

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

одна кнопка "логин"
- если пользователь редактор, он видит кнопки "создать материал" и "логоут",
- если пользователь администратор, он видит кнопки "администрация" и "логоут",
сначала оба не видят меню, только при нажатии соответствующе кнопки...

пытался сделать такое под 4.7 с помощью манипуляции с меню и ролями пользователей, были проблемы, которые не смог решить. на 5.1 еще не пробовал.

Может существует такой модуль?
Кто уже решал подобную задачу и как?

Комментарии

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 7 февраля 2007 в 12:20

На таких сайтах я обычно вообще убираю блок "Логин". Редакторы и администратор вполне могут зайти через http://ваш_сайт/user


Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы? Smile Полный русский перевод Drupal 5.x и еще некоторых модулей.

Аватар пользователя streptokok streptokok 7 февраля 2007 в 20:54

по моему, это удобно, если ты предлагаешь человеку создавать стати для ресурса, то не грузишь его видом сложного меню, а имеется просто кнопка - создать статью...
или допустим, администратор видит изначально две кнопки - создать статью и администрировать...

но конечно это зависит от задачи и личных предпочтений

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 7 февраля 2007 в 21:19

Одно - с командами Редактора, другое - Администратора.
Показывайте блоки с этими меню в соответствии с ролями.


Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы? Smile Полный русский перевод Drupal 5.x и еще некоторых модулей.

Аватар пользователя streptokok streptokok 8 февраля 2007 в 0:44

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

позвольте мне еще раз описать мои представления:

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" пункты "администрировать" и "создать материал"

недостатки: администратору и редактору показываются обе ссылки (хотелось бы, что бы пункт "администрировать" видел только администратор, а пункт "создать материал" видел только редактор.)

Вопросы:
- как можно реализовать это по другому?
- существует ли модуль который реализует эти функции?

Аватар пользователя seaji seaji 7 февраля 2007 в 21:40


> одна кнопка "логин"

<form action="" method="post" id="user-login-form">
<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>

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

> - если пользователь редактор, он видит кнопки "создать материал" и "логоут",
> - если пользователь администратор, он видит кнопки "администрация" и "логоут",

Это все будет в блоке "Навигация", в зависимости от назначенных прав будут видны/скрыты разные пункты.

Аватар пользователя seaji seaji 8 февраля 2007 в 11:43

Такого модуля точно нет, слишком простая задача.
Если хотите, чтоб это было на каждой странице, то редактируйте файлы темы (конкретно page.tpl.php)
в том месте где Вы хотите все это видеть пишете:

<?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 то можете темизировать всю эту галиматью.
Если нужны конкретно "кнопки", то вместо

<a href="/?q=logout"><?php print t('Logout') ?></a>
пишете
<form action="/?q=logout">
<button type=submit value="<?php print t('Logout') ?>">
</form>

ну или нечто подобное.