Мы находимся тут
Меню сайта
Мы находимся тут
Главная » Статьи » Web Мастеру » Joomla Манулы

ДОБАВЛЯЕМ В ФОРМУ РЕГИСТРАЦИИ ПОЛЕ ДАТА РОЖДЕНИЯ

Периодически на форуме спрашивают, как добавить то или иное поле в форму регистрации пользователей Joomla. И почти всегда их отправляют читать разделы и документацию по компоненту CommunityBuilder — действительно мощному решению для расширения профайлов пользователей Joomla. Однако не всегда это нужно. Иногда требуется всего одно-два поля, а приходится ставить целый компонент. В этой статье я хочу рассказать, как вручную добавить поле в форуму регистрации пользователей.

Перед началом модификаций рекомендую создать резервную копию изменяемых файлов. Если у вас вдруг что-то не получится наличие резервной копии позволит вам откатить изменения и восстановить работоспособность сайта.

Для начала необходимо добавить такое поле в таблицу jos_users, чтобы можно было хранить введенную пользователем информацию. Для этого выполним в phpMyAdmin следующий запрос:

ALTER TABLE `jos_users` ADD `birthDate` DATETIME NOT NULL default '0000-00-00 00:00:00';

После этого расширим набор полей класса mosUser, чтобы данные о дате рождения автоматически попадали в базу при регистрации пользователя.

  1. Открываем файл /includes/joomla.php
  2. Находим в нем строчки:
     var $params = null;
     
     /**
     * @param database A database connector object
     */
     function mosUser( &$database ) {
    и заменяем их на
     var $params = null;
     var $birthDate = null;
     
     /**
     * @param database A database connector object
     */
     function mosUser( &$database ) {
  3. Сохраняем изменения в файле

Первая часть подготовки выполнена, теперь необходимо добавить непосредственно поле на форму, и подправить функцию сохранения нового пользователя.

  1. Открываем файл /components/com_registration/registration.html.php
  2. Находим в нем строчки:
     <input type="text" name="name" size="40" value="" class="inputbox" maxlength="50" />
     </td>
     </tr>
    и вставляем после них код:
     <tr>
     <td>
     Дата рождения
     </td>
     <td>
     <select name="birthDate_d">
     <option value=""></option>
    <?php
     for($i=1; $i<=31; $i++) {
    ?> 
     <option value="">echo str_pad($i, 2, "0", STR_PAD_LEFT); ?></option>
    <?php
     }
    ?> 
     </select>
     <select name="birthDate_m">
     <option value=""></option>
    <?php
     for($i=1; $i<=12; $i++) {
    ?> 
     <option value="">echo str_pad($i, 2, "0", STR_PAD_LEFT); ?></option>
    <?php
     }
    ?> 
     </select>
     <select name="birthDate_y">
     <option value=""></option>
    <?php
     for($i=date("Y"), $n=date("Y")-70; $i>=$n; $i--) {
    ?> 
     <option value="">echo $i; ?></option>
    <?php
     }
    ?> 
     </select>
     </td>
     </tr>
  3. Сохраняем изменения в файле

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

  1. Открываем файл /components/com_registration/registration.php
  2. Находим в нем строчку:
    $row->registerDate = date( 'Y-m-d H:i:s' );
    и вставляем после нее код:
     $birthD = intval( mosGetParam( $_POST, 'birthDate_d', 0 ) );
     $birthM = intval( mosGetParam( $_POST, 'birthDate_m', 0 ) );
     $birthY = intval( mosGetParam( $_POST, 'birthDate_y', 0 ) );
     if ($birthD != 0 && $birthM != 0 & $birthY != 0) {
     $row->birthDate = date( 'Y-m-d H:i:s', mktime (0,0,0,$birthM,$birthD,$birthY) ); 
     }
  3. Сохраняем изменения в файле

Небольшое примечание от yAnTar: для того, чтобы дата рождения пользователя была доступна из глобальной переменной $myнеобходимо сделать еще одну правку:

  1. Открываем файл /includes/joomla.php
  2. Находим в нем строчку:
    $query = "SELECT id, name, email, block, sendEmail, registerDate, lastvisitDate, activation, params"
    и заменяем ее на:
    $query = "SELECT id, name, email, block, sendEmail, registerDate, lastvisitDate, activation, params, birthDate"
  3. Затем чуть ниже находим строчку:
    $user->activation = $my->activation;
    и после нее добавляем:
    $user->birthDate = $my->birthDate;
  4. Сохраняем изменения в файле

Ну вот вроде бы и все, осталось только проверить на деле.

Категория: Joomla Манулы | Добавил: Belfis (25.07.2011)
Просмотров: 1464 | Теги: поле, рождения, Tamara Buciuceanu, регистрации, رمضانيات, добавляем | Рейтинг: 0.0/0
Похожие материалы:
Всего комментариев: 0




Поделись ссылкой

- Ссылка - BBCode - HTML

Имя *:
Email *:
Код *:
Поиск
Полезное

Ключи для Файлообменников
Авторизация
Случайная статья
Полный гайд по установке сервера AION.

SQL запрос для антидюпа

[Мануал] Название клана в титуле вступившего в него

Новые параметры командной строки для defrag.exe в Windows 7

Установка My SQL

СОЗДАНИЕ КНОПКИ ДЛЯ ВИЗУАЛЬНОГО РЕДАКТОРА В JOOMLA 1.5

[Мануал] PM при входе в игру

Свободный полёт везде для ГМов

ВСТАВКА ССЫЛОК НА МАТЕРИАЛЫ С ПОМОЩЬЮ КОМПОНЕНТА LINKR

ДОБАВЛЯЕМ В ФОРМУ РЕГИСТРАЦИИ ПОЛЕ ДАТА РОЖДЕНИЯ

Случайный фаил
AionCP 1.1 Beta — Русская версия панели управления сервером Aion

Aion OpenX Emu 2.5 rev.65

Текстовый редактор Notepad++

[SW11] RIP Шаблона Asthus World

Dle Shop 2.5 Premium and Electro бесплатно модуль для DLE

DLE Forum 2.6 Nulled Финальная версия форума нулл

2.4.3 PVP-FUN-Server by Evrial (OregonCore)

MuServer 97d99i - без багов

Navicat Premium 9.0.6

Invision Power Board 3.2.3 RUS Nulled форум русскоязычный

Инфо


Belfis Project © 2025