Joomla. Добавляем дополнительные поля
- Aleksej
-
Автор темы
- Не в сети
- Модератор
-
Less
Больше
15 года 3 мес. назад - 15 года 3 мес. назад #1
от Aleksej
Aleksej создал тему: Joomla. Добавляем дополнительные поля
Как добавить дополнительные поля в форму регистрации?
Разумеется, самое простое, что можно придумать - это установка соответствующего расширения... но не всегда под рукой именно тот модуль, который предлагает необходимое.
Порой удобнее сделать дополнительные поля своими руками.
Итак, добавляем два поля - icq и jabber, одинаково редактируя
/administrator/components/com_users/models/user.xml
и
/administrator/components/com_users/models/registered.xml
следующим образом:
Далее - копируем форму регистрации, скрипт которой находится:
/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:
Как видите - несложно. Подобным образом возможно добавить любое необходимое количество полей в форму авторизации.
Разумеется, самое простое, что можно придумать - это установка соответствующего расширения... но не всегда под рукой именно тот модуль, который предлагает необходимое.
Порой удобнее сделать дополнительные поля своими руками.
Итак, добавляем два поля - icq и jabber, одинаково редактируя
/administrator/components/com_users/models/user.xml
и
/administrator/components/com_users/models/registered.xml
следующим образом:
Code:
<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:
Code:
...
<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>
...
Как видите - несложно. Подобным образом возможно добавить любое необходимое количество полей в форму авторизации.
Последнее редактирование: 15 года 3 мес. назад пользователем Aleksej.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- RomanA
- Не в сети
- Новый участник
-
Less
Больше
- Сообщений: 14
- Спасибо получено: 0
13 года 10 мес. назад - 13 года 10 мес. назад #2
от RomanA
RomanA ответил в теме Re: Joomla. Добавляем дополнительные поля
Спасибо, сделал так, всё получилось. Почти.
Подскажите, пожалуйста, как сделать новые поля обязательными для заполнения?
Пытался ещё сделать по аналогии со строками имевшихся ранее полей формы в файле /html/com_user/register/default.php :
, но новые поля остались пустыми в профиле пользователя.
Подскажите, пожалуйста, как сделать новые поля обязательными для заполнения?
Пытался ещё сделать по аналогии со строками имевшихся ранее полей формы в файле /html/com_user/register/default.php :
Code:
<tr>
<td width="30%" height="40">
<label id="countrymsg" for="country">
<?php echo JText::_( 'Страна' ); ?>:
</label>
</td>
<td>
<input type="text" name="country" id="country" size="40" value="<?php echo $this->escape($this->user->get( 'country' ));?>" class="inputbox required" maxlength="50" /> *
</td>
</tr>
Последнее редактирование: 13 года 10 мес. назад пользователем Aleksej.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Aleksej
-
Автор темы
- Не в сети
- Модератор
-
13 года 10 мес. назад #3
от Aleksej
Aleksej ответил в теме Re: Joomla. Добавляем дополнительные поля
С какой именно версией Joomla вы экспериментировали?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- RomanA
- Не в сети
- Новый участник
-
Less
Больше
- Сообщений: 14
- Спасибо получено: 0
13 года 10 мес. назад #4
от RomanA
RomanA ответил в теме Re: Joomla. Добавляем дополнительные поля
1.5.22 Rus
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Aleksej
-
Автор темы
- Не в сети
- Модератор
-
13 года 10 мес. назад #5
от Aleksej
Aleksej ответил в теме Re: Joomla. Добавляем дополнительные поля
Признаться, не помню.
И нет уже под рукой J1.5, чтобы взглянуть.
Да и что толку? Поддержка J1.5 уже, можно сказать, закончена. А внесенные изменения вам все одно не перетащить на актуальную версию при помощи jUpgrade или иным способом; это все придется делать на новом месте заново.
Старая статья, неактуально.
И нет уже под рукой J1.5, чтобы взглянуть.
Да и что толку? Поддержка J1.5 уже, можно сказать, закончена. А внесенные изменения вам все одно не перетащить на актуальную версию при помощи jUpgrade или иным способом; это все придется делать на новом месте заново.
Старая статья, неактуально.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- spadyn
- Не в сети
- Новый участник
-
Less
Больше
- Сообщений: 2
- Спасибо получено: 0
11 года 4 мес. назад #6
от spadyn
spadyn ответил в теме Joomla. Добавляем дополнительные поля
Как эти поля привязать к Kunena в default_profile_vertical.php?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- serge
-
- Не в сети
- Модератор
-
Less
Больше
- Сообщений: 1011
- Спасибо получено: 150
11 года 4 мес. назад #7
от serge
А я смогу! - А поглядим! - А я упрямый!
serge ответил в теме Joomla. Добавляем дополнительные поля
Думаю, "эти" - уже никак. Очень давно была J1.5.
У вас какая хоть джумла?
У вас какая хоть джумла?
А я смогу! - А поглядим! - А я упрямый!
Спасибо сказали: spadyn
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- spadyn
- Не в сети
- Новый участник
-
Less
Больше
- Сообщений: 2
- Спасибо получено: 0
11 года 4 мес. назад #8
от spadyn
1.5
Я в базу jos_users добавил поле city, как его привязать к default_profile_vertical.php, чтоб это поле выводил под аватаркой в kunena?
spadyn ответил в теме Joomla. Добавляем дополнительные поля
serge пишет: Думаю, "эти" - уже никак. Очень давно была J1.5.
У вас какая хоть джумла?
1.5
Я в базу jos_users добавил поле city, как его привязать к default_profile_vertical.php, чтоб это поле выводил под аватаркой в kunena?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- serge
-
- Не в сети
- Модератор
-
Less
Больше
- Сообщений: 1011
- Спасибо получено: 150
11 года 4 мес. назад #9
от serge
А я смогу! - А поглядим! - А я упрямый!
serge ответил в теме Joomla. Добавляем дополнительные поля
Вот отличный скрипт, позволяющий вывести произвольные данные из таблицы MySQL - в HTML (for example - имя, телефон, e-mail). Почему бы не пойти этим путем? Все вроде вполне прозрачно, не? Попробуйте по аналогии. Как получить значения одной из таблиц - вполне понятно из комментов, как это сделать именно для авторизованного юзверя - примеры кода можно глянуть
в этой статье
.
Code:
<?php
// определяем начальные данные
$db_host = 'localhost';
$db_name = 'mydatabase';
$db_username = 'admin';
$db_password = 'admin09876';
$db_table_to_show = 'Contacts';
// соединяемся с сервером базы данных
$connect_to_db = mysql_connect($db_host, $db_username, $db_password)
or die("Could not connect: " . mysql_error());
// подключаемся к базе данных
mysql_select_db($db_name, $connect_to_db)
or die("Could not select DB: " . mysql_error());
// выбираем все значения из таблицы "Contacts"
$qr_result = mysql_query("select * from " . $db_table_to_show)
or die(mysql_error());
// выводим на страницу сайта заголовки HTML-таблицы
echo '<table border="1">';
echo '<thead>';
echo '<tr>';
echo '<th>Имя</th>';
echo '<th>Телефон</th>';
echo '<th>E-Mail</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
// выводим в HTML-таблицу все данные клиентов из таблицы MySQL
while($data = mysql_fetch_array($qr_result)){
echo '<tr>';
echo '<td>' . $data['Name'] . '</td>';
echo '<td>' . $data['Phone'] . '</td>';
echo '<td>' . $data['eMail'] . '</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
// закрываем соединение с сервером базы данных
mysql_close($connect_to_db);
?>
А я смогу! - А поглядим! - А я упрямый!
Спасибо сказали: spadyn
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.