Здравствуйте!
Описываю задачу:
1) на главной странице сайта разместить форму регистрации
2) в этой форме чтобы юзер вводил только емаил и кликал кнопку "войти"
При этом значение для поля логина приравнивается к емаилу
Я подумал что это можно сделать темизацией по примеру с формой авторизации. Пример для формы авторизации у меня есть. Вот такой:
<input class="field" type="text" name="name" id="edit-name" value="Ваш Логин">
Пароль: <input class="field" type="password" name="pass" id="edit-pass">
<input type="hidden" value="" name="form_build_id">
<input type="hidden" value="user_login_block" name="form_id">
<input type="submit" class="submit" value="Войти" name="op" id="edit-submit" OnClick="SetCookie()">
<a href="/user/register">Регистрация</a> / <a href="/user/password">Забыли пароль?</a>
</form>
А вот для формы регистрации не нашел ничего подобного.
Подскажите пожалуйста, возможно ли также просто создать в шалоне форму для регистрации?
или я вообще не туда думаю?
я не программист, поэтому огромная просьба подсказывать человеческим языком :).
(основы php представляю, поэтому хочу сам разобраться как сделать)
Итого, задача решена
- для организации "входной страницы" на сайт, где висит только форма регистрации и фоновая картинка я сделал:
1) шаблон главной страницы page--front.tpl.php;
2) модулем formblock вывел форму регистрации в блок на главную страницу;
3) модулем email_registration сделал регистрацию пользователя только вводом одного емаила (логин создается автоматом из первой части емаила, а пароль юзер создает сам при первом входе на сайт);
4) также, в этом созданном шаблоне поставил проверку - еслю юзер авторизован, то переадресовываю его на нужную страницу, если нет - то показывать контент этой.
(ссылки на указанные модули в комментариях к этой статье. Сюда вывел только итоговое решение)
вот код такой проверки:
<?php if(!empty($user) && $user->uid != 0) {
// Если пользователь авторизован, то переадресация на нужную страницу, иначе показывать форму регистрации
header('Location: http://сайт.ру/news');
exit;
} else { ?>
// здесь код самого шаблона. Взял его из обычного шаблона page.tpl.php и закоментировал ненужные блоки - боковые колонки, шапку и т.п. Оставил только вывод самого контента.
<?php } ?>
Я не пограммист. Если сделал грубые ошибки - пожалуйста укажите, постараюсь исправится
Комментарии
https://drupal.org/project/email_registration
о, по описанию то, что нужно. Спасибо, буду пробовать!
Отлично! Модуль подходит. Все просто.
остался один непонятный момент - мне же надо чтобы форма регистрации была главной страницей сайта. Для этого я просто в Конфигурация-Система-Информация о сайте указал что главная страница будет:
user/register
И это работает.
Но! теперь все ссылки на главную страницу (логотип, хлебные крошки и т.п.) ведут на страницу регистрации. А если пользователь уже авторизовался - открывается его профиль.
В шаблоне дизайна у логотипа я поставл нужный мне урл - так сказать вторую главную страницу - которую должны видеть авторизованные. Но как подправить это для хлебных крошек?
Я попробовал создать шаблон для главной страницы и в начале код проверять что есть авторизованный юзер и редиректить - но по-видимому, друпал раньше шаблона определяет что авторизованный юзер пытается зайти на страницу регистрации и отправляет его в редактирование профиля.
что можно с этим сделать? как для уже авторизованных пользователей показывать некую страницу, а не редактирование его профиля при клике на "главная" в хлебных крошках и т.п.?
Зачем вам делать главной страницу регистрации? Просто выведите форму входа/регистрации на главную.
Если этого недостаточно, то можно осуществлять редирект пользователя в зависимости от роли либо с помощью https://drupal.org/project/login_destination или модуля rules.
Извините, может я тормозу сижу.. но как вывести форму регистрации? Блок авторизации я могу вывести в блоках. А именно форму регистрации как выводить на главную?
Я и придумал указать в качестве главной страници - регистрационную..
За ссылку на модуль спасибо - попробую.
Кстати, тут еще мне подсказали способ, вроде бы интерсный, может кому пригодиться:
- я бы просто сделал отдельную форму в которой были-бы нужные поля, при отправки этой формы автоматически регистрировать пользователя, саму форму выводитьв блок.
еще одно решение описано здесь: http://www.drupal.ru/node/55173
- в кратце - можно сделать шаблон и вывести в нем форму регистрации так:
<?php
print drupal_render(drupal_get_form('user_register_form'));
?>
- мне не помогло - ибо на странице вывелась форма регистрации со всеми полями из профиля, включая два поля для пароля (ввести пароль и повторить ввод пароля). А мне нужно чтобы один емаил спрашивался при регистрации с юзера (Я организовал регистрацию путем ввода одного только емаила с помощью модуля https://drupal.org/project/email_registration)
И еще добрые люди подсказали:
Устанавливаете модуль https://drupal.org/project/formblock
В блоках появляется форма регистрации, выводиться как надо(с включенным модулем email_registration) , только если пользователь авторизирован, форма не выводится
Этот модуль действительно очень удобен. На данный момент доступна только дев-версия его, но у меня в друпал-7 работает.
Итого, задача решена:
- для организации "входной страницы" на сайт, где висит только форма регистрации и фоновая картинка я сделал шаблон главной страницы, модулем formblock вывел форму регистрации в блок на главную страниу, модулем email_registration регистрацию пользователя только вводом одного емаила (логин создается автоматом из первой части емаила, а пароль юзер создает сам при первом входе на сайт).
Также, в этом созданном шаблоне поставил проверку - еслю юзер авторизован, то переадресовываю его на нужную страницу, если нет - то показывать контент этой.