Пользовательское поле регистрации можно добавить на первой странице, выполнив процедуру (работает с joomla 2.5):
Шаг 1. Вам необходимо добавить поле, чтобы оно отображалось на первой странице (интерфейсная часть)), для этого перейдите в компоненты \ com_community \ templates \ default \ register.index.php
Теперь просто добавьте поле, так как другие поля есть, например (FIELD берется как имя поля, которое будет добавлено)
См. Пример здесь: Нажмите здесь!
Вы можете скопировать и вставить другие данные поля, а затем отредактировать для себя, тег метки показывает, как метка будет отображаться напередний конец, поле ввода показывает поле ввода, вы можете настроить размер, но не следует изменять идентификатор, имя (как это потребуется при сборе данных) и значение (иначе, чем замена предыдущего имени поля новым полемимя, где бы оно ни появлялось!), класс может быть отредактирован по мере необходимости, например, удаление 'required' сделает поле необязательным для заполнения, validate-FIELD используется, если вы хотите to проверить поле, используя некоторый скрипт для введенных значений, span - для отображения сообщения об ошибке ... теперь, когда вы добавили поле, чтобы оно появилось на первой странице, вам придется проделать некоторую работу, чтобы данные действительнозаносится в базу данных при отправке формы!Итак, перейдем к ---
Шаг 2: когда форма отправлена, данные не сохраняются в таблице prefix_users, но создается объект, который хранит временную информацию, а затем она сохраняется в com_community \ models\ register.php, теперь чтобы изменить объект и добавить еще одно поле, чтобы объект также содержал значение нашего поля, мы должны добавить в него одну строку, вы увидите код типа
$obj = new stdClass();
$obj->name = $data['jsname'];
$obj->firstname = isset( $data['jsfirstname'] ) ? $data['jsfirstname'] : '';
$obj->lastname = isset( $data['jslastname'] ) ? $data['jslastname'] : '';
$obj->token = $token;
$obj->username = $data['jsusername'];
$obj->FIELD = $data['jsFIELD'];
$obj->email = $data['jsemail'];
$obj->password = $data['jspassword'];
$obj->created = $nowDate;
$obj->ip = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ?
в приведенном выше коде, в 7-й строке я добавил свое поле, чтобы объект также сохранял наше поле при отправке формы, теперь мы должны добавить одно поле в таблицу, где этот объект фактически хранится на мгновение, эта таблицаprefix_community_register
Таблица похожа на -
1 id int(10)
2 token varchar(200)
3 name varchar(255)
4 firstname varchar(180)
5 lastname varchar(180)
6 username varchar(150)
7 email varchar(100)
8 password varchar(100)
9 created datetime
10 ip varchar(25)
11 FIELD int(11)
11-е поле таблицы - это поле, которое мы добавляем, оно должно иметь то же имя, что и поле внутри объекта (например, если объектимеет $ obj-> age, имя поля в таблице тоже должно быть 'age'!), так что теперь, наконец, нам нужно постоянно хранить одни и те же данные в таблице prefix_users, so создать поле в таблице с тем же именем и атрибутами, когда регистрация будет завершена, значение будет также сохранено в таблице пользователей, тогда вы можете использовать это поле где угодно;)