×
HeadHunter and Superjob rezume updater on Ruby on Rails (21 авг 2017)

Практикуемся в написании кода под rails.

Вопрос Дополнительное поле в форме регистрации

Больше
6 года 7 мес. назад - 6 года 7 мес. назад #1 от Aleksej
Aleksej создал эту тему: Дополнительное поле в форме регистрации
Как добавить запись в базу mySQL в Joomla 1.5 при регистрации пользователя?

Понадобилось добавить дополнительное поле в форму регистрации пользователей стандартными средствами (бывает полезно, и не только для SEO оптимизации Joomla). Как выяснилось, это совсем несложно.

Добавляем поле city (текстового типа)

Выполняем SQL запрос в нашу базу данных:
ALTER TABLE `jos_users` ADD `city` VARCHAR( 250 ) NOT NULL ;

Если необходимо - заменяем префикс jos на используемый.

Добавляем поле в форму регистрации:
Файл components\com_user\views\register\tmpl\default.php - в таблицу с формой добавляем новую строку после Username.
<tr>
         <td height="40">
                <label id="citymsg" for="city">
                        <?php echo JText::_( 'City' ); ?>:
                </label>
         </td>
         <td>
                <input type="text" id="city" name="city" size="40" 

value="<?php echo $this->user->get( 'city' );?>" class="inputbox required validate-city" maxlength="25" /> *
         </td>
 </tr>
Добавляем возможность просмотра и редактирования нового поля в панели администрирования.
Файл administrator\components\com_users\views\user\tmpl\form.php - добавляем в таблицу новую ячейку после username.
<tr>
  <td class="key">
    <label for="city">
            <?php echo JText::_( 'City' ); ?>
        </label>
    </td>
   <td>
     <input type="text" name="city" id="city" class="inputbox" size="40" 

value="<?php echo $this->user->get('city'); ?>" autocomplete="off" />
    </td>
                                </tr>
Главное действие:
файл libraries\joomla\database\table\user.php в класс class JTableUser
после строки
var $username          = null;

добавляем
var $city              = null;

В этом же файле находим функцию function check() и добавляем проверку на наше поле (если нужно) - данная проверка отрабатывается при отключенном JS в браузере и никогда не помешает
               if (trim( $this->city ) == ) {
                        $this->setError( JText::_( 'Please enter a city.') );
                        return false;
                }

Вот и все, в результате получаем обязательное при регистрации поле City, доступно для просмотра и редактирования в административной панели, доступно на фронтенде через объект $user
$user =& JFactory::getUser();
 echo $user->city;

Не забываем делать копии редактируемых файлов!
Последнее редактирование: 6 года 7 мес. назад от Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.