Блог старого компьютера

Блог старого компьютера


Главная Joomla Добавить поле в форму регистрации Joomla

Добавить поле в форму регистрации Joomla

30.05.2012 06:55 Администратор Joomla
Печать PDF
И так сегодня мне потребовалось реализовать возможность регистрации на сайте только по приглашениям, для этого необходимо добавить новое поле в форму регистрации. Вот именно об этом мы и поговорим, как добавить новое поле в форму регистрации движка joomla. Как сделать регистрации по приглашения на joomla это опишу в другой статье.

И так за регистрацию на сайте joomla отвечает стандартный компонент com_user вот его нам и предстоит несколько доработать.

Первым делом нужно добавить в форму регистрации необходимое поле. Для этого открываем следующий файл components/com_user/views/register/tmpl/default.php и вставляем код представленный ниже в таблицу в зависисмости от того где мы хотим видеть наше новое поле.

<tr>
<td height="40">
<label id="invitemsg" for="invite">
Invite:
</label>
</td>
<td>
<input type="text" name="invite" id="invite" size="40" value="" class="inputbox" maxlength="100" />
</td>
</tr>

 Так же слово Invite: желательно заменить на вывод php кода echo JText::_( 'Invite' ); (как сделано ниже), но в этом случае нам необходимо в языковом файле ru-RU.com_user.ini добавить строчку (INVITE=Код приглашения) и присвоить ей русское  значение

На этом само собой не все, далее нам предстоит внести еще некоторые изменения.

Во первых информация введенная в только что добавленное нам поле должна где то хранится, а следовательно нам необходимо добавить новую ячейку в mysql базу данных в таблицу sdf345e5_users (префикс sdf345e5_ является дефолтным и может быть другим если при установке joomla вы его изменили).

Для этого идем в phpmyadmin в таблицу sdf345e5_users и нажимаем кнопку там выбираем куда вставлять новую ячейку и жмем кнопку "Пошел". (картинка ниже)

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

Далее необходимо добавить возможность редактирования и отображение поля в админке для этого идем в файл /administrator/components/com_users/views/user/tmpl/form.php  и там добавляем новое поле, для добавления можно взять код от любого поля и вставить ниже переименовав его name, id и вывод из базы через функцию getVar() на название нашего поля или ячейки, оно у нас одно (картинка ниже).

 Идем далее в файл /libraries/joomla/database/table/user.php там добавляем новое свойство класса.

/**
* The login name
*
* @var string
*/
var $username = null;
var $invite = null;

Так же ниже если данное поле должно быть обязательным необходимо добавить в функцию check() условие проверки.

if (trim( $this->invite ) == '') {
$this->setError( JText::_( 'Please enter invite.') );
return false;
}

 Соответственно если мы использовали JText:_() то для него нам необходимо добавить в языковой файл новое значение с опцией, иначе сообщение о не заполненном поле будет пустым.

Вот вроде и все, проверяем пользуемся, задаем вопросы.

Комментарии  

 
-2 #3 Pharaoh 27.10.2013 01:27
Изменить форму регистрации новых пользователей позволяет компонент расширенной регистрации для Joomla 2.5 http://www.joomlaplus.ru/manual/use/reg
Цитировать
 
 
0 #2 Administrator 21.08.2012 05:07
Цитирую Антон:
Очень интересует продолжение статьи, а именно "Как сделать регистрации по приглашения на joomla"

Теория описана тут http://wemarus.ru/joomla/158-registracziya-po-invajtam-joomla-teoriya.html
Цитировать
 
 
0 #1 Антон 18.08.2012 22:23
Очень интересует продолжение статьи, а именно "Как сделать регистрации по приглашения на joomla"
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?
 

Все материалы раздела