Требуется сделать свои страницы, либо отредактировать существующие.
и добавить несколько полей, например на странице регистрации сейчас логин\мыло, а хотелось бы добавить чтоб было:
логин
пароль
подтверждение пароля
мыло
подтверждение мыла
год рождения
и галочку типа согласен с правилами.
Нашёл модуль Registration blocks, подойдёт ли он для этих целей? и не понятно как им пользоваться.
ещё нашёл вот эту тему
http://www.drupal.ru/node/31493
ниже там описан пример реализации этого в двух пунктах.
первым пунктом создаётся своё меню user login.
я просто добавил его в Page.tpl.php, у меня оно такое:
<?php
global $user;
if (!$user->uid) {
$message .= '<div id="my-account">' . t('<a href="view">МОЙ АККАУНТ</a>', array('view' => url('user/' .
$user->uid), 'edit' => url('user/' . $user->uid . '/edit'))) . '</div>';
$message .= '<div id="username">' . t('<a href="login">Войти</a>или<a href="register">Создать аккаунт</a>',
array(
'login' =>
url('user/login'), 'register' => url('user/register'))) . '</div><img class="leftcap"
src="/images/top_box_lt.png"/>'
;
}
else {
$message .= '<div id="my-account">' . t('<a href="view">МОЙ АККАУНТ</a>', array('view' => url('user/' .
$user->uid), 'edit' => url('user/' . $user->uid . '/edit'))) . '</div>';
$message .= '<div id="username">' . t('<span><b>user</b></span> > ', array('user' => $user->name));
$message .= t('<a href="logout">Выход</a>', array('view' => url('user/' .
$user->uid), 'edit' => url('user/' . $user->uid . '/edit'), 'logout' => url('logout'))) . '</div><img
class="leftcap" src="S/images/top_box_lt.png"/>'
;
}
echo $message;
?>
подойдёт ли к нему второй пункт описаный в той теме?
Если нет то как переделать?
Комментарии
Хочешь так просто отделаться?
Вставка своих полей с валидацией + отсутствующих в БД (год рождения)(или там достаточно на совершеннолетие проверить?)
Ищи модуль, или пиши свой (
ну пусть будет без дополнительных полей пока и достаточно совершеннолетие проверить, простая арифметика
Хотябы просто изменить общее оформление и добавить пару ссылок\картинок рядом..
Оформление - это css.
добавление элементов - hook_form_user_login_alter, hook_form_user_register_alter, hook_form_user_login_block_alter
Где-то так.
Кстати, в той теме, ссылку на которую ты давал, есть ссылка http://drupaldance.com/blog/%D1%82%D0%B5%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D...
Цитата оттуда:
Однако, существуют два случая, когда придется реализовать изменения через модуль:
Если нужно дополнить функционал формы (навешивание дополнительной валидации и обработчиков и т.п.)
а кто-нибудь знает в каких файлах хранится вывод этих страниц в оригинале и как изменять их вывод используя тот описанный метод по пунктам? Хотя бы посмотреть каким образом выводятся уже существующие поля и элементы, ну и может я прям там изменения бы сделал.
Также мне нужно изменить страницу профиля пользователя, в часности убрать заголовок (имя пользователя сверху) кнопки view\edit и чтоб выводилось сразу, то что на странице edit, убрать часовой пояс и выбор темы, ну выбор темы наверно в другом месте уберается. Убрать поле с именем пользовател и в будущем добавить поле старый пароль, для смены пароля.
Ну ты и крут. Думаешь, ядро правильнее ломать, чем написать функцию в пяток строчек?
Да ломай на здоровье: модуль user.
Да я сам уже нашёл, спасибо.
Да конечно это не правильно, но я думаю так можно быстрее добиться нужного результата, чем сначала разбираться в функциях, узнавать чё такое апи или сск. Я знаю как создать свой модуль, но не знаю как создать в нём функции регистрации. Если бы здесь был гайд "как создать свои страницы регистрации\логина поэтапно", но темы которые здесь есть, практически содержат просто коды, нет чёткого расписания по пунктам, типа:
1. создайте такой-то файл с таким расширением,в такой папке.
2. запишите в нём такие-то функции, наподобие вот этой, сохраните в utf-8,
3. а в таком-то файле сделайте объявление этих функций таким вот образом..
Здешние темы, в основном, состоят просто из каких-то кусков, кусков с кодами, коментов с кодами, сложно найти элементарное пояснение. Да и сами пользователи не особо стараются помогать. Изменение страниц логина\регистрации - это очень актуальная тема, но нет никакого нормального гайда, понятного начинающему пользователю друпал. Это похоже на нежелание помогать и делиться знаниями за бесплатно.
Вот даже твой комент "ломай на здоровье: модуль user"
хоть бы сказал в каких именно файлах этого модуля, про функции я уж не говорю..
А у меня без того, работа+учёба. На лыжах некогда покататься!
Вот и получается что нужно идти изучать апи и доучивать английский паралельно, а для этого надо бросить всё и засесть у компа, по меньшей мере, на пол года. А мне надо всего-то изменить 4 странички. И не известно стоит ли оно того, стоит ли тратить жизнь на это? Может через год я ваще заброшу всю эту компьютерную херню, со всем этим железом, сетями, серваками, адинэсами, тупыми юзверями и стану каким-нить рекламщиком или ваще строителем.
Так что пожалуй я выберу более простой вариант, может и не правильный, но для начала пойдёт и если я буду и дальше интересоваться друпалом, то и функции изучу по ходу дела..
Фухх.. ну, вроде всё..
Ладно.. пойду я, ато ещё ядро ломать очередной раз..
Да там реально все просто.
1. создаешь модуль. Инфы море. Все просто. Всего 2 файла .info и .module
2. hook_menu()
http://api.drupal.ru/api/function/hook_menu/6
3. hook_form_alter(). Проверяешь (case, if) на form_id = 'user_login' и т.п.
http://api.drupal.ru/api/function/hook_form_alter/6
4. Создаешь свой элемент формы типа
<?php $user_email = array(#type =>'textfield'.....) ?>
http://api.drupal.ru/api/file/developer/topics/forms_api_reference.html/6
5. вставляешь его в массив $form в нужное место функцией array_splice(). Чтобы посмотреть куда - используй
<?php print_r($form); ?>
прямо в тексте функции, потом закомментируешь или удалишь.Все!
Ах да, еще валидация.
http://xandeadx.ru/blog/drupal/122
<?php$form['#validate'][] = 'mymodule_node_form_validate';?>
- этот в текст hook_form_alterИ функция проверки типа:
<?phpfunction mymodule_node_form_validate($form, &$form_state) {
if (is_numeric($form_state['values']['title'])) {
form_set_error('title', 'Заголовок из одних лишь цифр недопустим');
}
}
?>
При изменении ядра тебе все равно придется разбираться и делать большую часть из вышеописанного. За исключением обертки модуля, но самое сложное - п 4. и валидацию - точно.
какие лыжи под дождем ?
А по теме -установи д7 и profile2 ,там то ты выведешь все что надо и не надо лезть в ядро ,а то обновишься и всё пропало .
http://drupal.org/project/content_profile
и добавляете какие хотите поля к форме регистрации!
Ну как, получилось изуродовать ядро? ))
Выдалась минутка, решил проверить, правильно ли я тебе написал. Мало ли, упустил чего, или соврал.
Оказалось, нет, все верно.
Вот полный текст модуля. Единственное, что он делает - выводит дополнительное поле в форму логина между логином и паролем. Без валидации.
<?php
$form[] = array_splice($form, 5, 0, $a);
function mylogin_form_alter(&$form, $form_state, $form_id) {
$user_login_forms = array('user_login', 'user_login_block');
if (in_array($form_id, $user_login_forms)) {
$a['new_field_login'] = array(
'#type' => 'textfield',
'#title' => 'Test',
'#maxlength' => 60,
'#size' => 15,
'#required' => 0,
'#attributes' => array('tabindex' => 1)
);
}
}
?>
Вот результат: