Как добавить дополнительные поля в форму регистрации?
Разумеется, самое простое, что можно придумать - это установка соответствующего расширения... но не всегда под рукой именно тот модуль, который предлагает необходимое.
Порой удобнее сделать дополнительные поля своими руками.
Итак, добавляем два поля -
icq и
jabber, одинаково редактируя
/administrator/components/com_users/models/user.xml
и
/administrator/components/com_users/models/registered.xml
следующим образом:
<params>
<param name="language" type="languages" client="site" default="" label="Front-end Language" description="paramLanguage" />
<param name="timezone" type="timezones" default="" label="Time Zone" description="Time Zone for this User" />
//Создаваемые поля
<param name="icq" type="text" label="Аська" size="60" />
<param name="jabber" type="text" label="Джаббер" size="60" />
</params>
Далее - копируем форму регистрации, скрипт которой находится:
/components/com_user/views/register/tmpl/default.php
в соответствующий каталог нашего шаблона сайта:
/templates/НАШ_ШАБЛОН/html/com_user/register
Предположим, используется по умолчанию стандартный шаблон
rhuk_milkyway. Так как в
/templates/rhuk_milkyway/html отсутствуют вложенные каталоги
/com_user/register - сделаем их вручную, после чего скопируем из
/components/com_user/views/register/tmpl/ в
/templates/rhuk_milkyway/html/com_user/register файл
default.php.
И - отредактируем файл
default.php:
...
<tr>
<td height="40">
<label id="emailmsg" for="email">
<?php echo JText::_( 'Email' ); ?>:
</label>
</td>
<td>
<input type="text" id="email" name="email" size="40" value="<?php echo $this->escape($this->user->get( 'email' ));?>" class="inputbox required validate-email" maxlength="100" /> *
</td>
</tr>
/////////// НОВЫЕ ПОЛЯ В ФОРМЕ /////////////
<tr>
<td>
<label type="text" size="40">Здесь писать свой ICQ</label>
</td>
<td>
<input type="text" name="params[icq]" maxlength="100" />
</td>
</tr>
<tr>
<td>
<label type="text" size="40">Здесь писать свой JABBER</label>
</td>
<td>
<input type="text" name="params[jabber]" maxlength="100" />
</td>
</tr>
...
Как видите - несложно. Подобным образом возможно добавить любое необходимое количество полей в форму авторизации.