качество и надёжность с 2008 года

8 (800) 200-25-11

Техническая поддержка support@komtet.ru —

круглосуточно и без выходных дней

load-whois

Онлайн-касса

для интернет-магазина

Подключите ваш интернет-магазин

к онлайн-кассе в соответствии с 54-ФЗ

 
Главная Техническая библиотека CMS Joomla! Дополнительные поля пользователя в Joomla

Дополнительные поля пользователя в Joomla

Принцип добавления дополнительных полей для пользователей сайта на Joomla.

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

Итак, к примеру, мы имеем сайт на Joomla, неважно "чистый движок" или с уже имеющейся базой пользователей. Задача: в дополнение стандартным полям (имя, ник, e-mail и т.д.) добавить поля - icq и jabber. Решение будет следующим:

  1. Добавляем необходимые дополнительные поля в файлы:
    \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>
    Важно отметить, что добавлять можно неограниченное количество полей различных типов. Все значения полей будут хранится в поле params таблицы jos_users.
  2. Теперь необходимо скопировать форму регистрации, скрипт которой находится:
    /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
  3. Редактируем файл default.php на добавление в форму дополнительных полей. Например, мы добавим наши поля после поля ввода данных о e-mail:
    ...
    <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>
    ...
  4. Все, готово:

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

Другие документы на эту тему

Автоматическая установка Joomla! (APS-пакет)

В статье описывается процесс установки Joomla! из хранилища веб-приложений хостинга — в два клика.

Основы работы с Joomla

Знакомство с панелью администрирования Joomla

Изменение базовой страницы Joomla

При смене имени сайта (домена) Joomla все ссылки указывают на старый адрес сайта — что делать?

Редактирование заголовка Joomla-сайта

Почему заголовком сайта является надпись <title>Welcome to the Frontpage</title>, хотя в Joomla прописано «Лучший Joomla-сайт!»?

Клиентам — домены в подарок!
Бесплатный тест виртуального хостинга
Перенос сайта — бесплатно
Все акции
На сайте КОМТЕТ используются cookie-файлы, данные о IP-адресе и местоположении посетителей. Если, прочитав это сообщение, вы остаетесь на нашем сайте, это означает, что вы не возражаете против использования этих технологий.