Joomla 4. Компонент K2 и форк K2ForJ4 (18 янв 2024)

Если вас, как и меня, достало выслушивать (вычитывать) бесконечные обещания разработчика K2 опубликовать версию компонента K2 под Joomla 4 (без чего невозможно реализовать апгрейд from Joomla 3 to Joomla 4) - воспользуйтесь форком K2ForJ4. Который в данный момент установлен и без каких-либо проблем работает на этом веб-сайте.

Joomla. Добавляем дополнительные поля

Больше
13 года 7 мес. назад - 13 года 7 мес. назад #1 от Aleksej
Как добавить дополнительные поля в форму регистрации?

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

Порой удобнее сделать дополнительные поля своими руками.
Итак, добавляем два поля - 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> ...

Как видите - несложно. Подобным образом возможно добавить любое необходимое количество полей в форму авторизации.
Последнее редактирование: 13 года 7 мес. назад пользователем Aleksej.

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

Dev banner 1
Больше
12 года 3 мес. назад - 12 года 3 мес. назад #2 от RomanA
Спасибо, сделал так, всё получилось. Почти.
Подскажите, пожалуйста, как сделать новые поля обязательными для заполнения?
Пытался ещё сделать по аналогии со строками имевшихся ранее полей формы в файле /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>
, но новые поля остались пустыми в профиле пользователя.
Последнее редактирование: 12 года 3 мес. назад пользователем Aleksej.

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

Больше
12 года 3 мес. назад #3 от Aleksej
С какой именно версией Joomla вы экспериментировали?

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

Больше
12 года 3 мес. назад #4 от RomanA
1.5.22 Rus

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

Больше
12 года 3 мес. назад #5 от Aleksej
Признаться, не помню.
И нет уже под рукой J1.5, чтобы взглянуть.
Да и что толку? Поддержка J1.5 уже, можно сказать, закончена. А внесенные изменения вам все одно не перетащить на актуальную версию при помощи jUpgrade или иным способом; это все придется делать на новом месте заново.
Старая статья, неактуально.

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

Больше
9 года 8 мес. назад #6 от spadyn
Как эти поля привязать к Kunena в default_profile_vertical.php?

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

Больше
9 года 8 мес. назад #7 от serge
Думаю, "эти" - уже никак. Очень давно была J1.5.
У вас какая хоть джумла?

А я смогу! - А поглядим! - А я упрямый!
Спасибо сказали: spadyn

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

Больше
9 года 8 мес. назад #8 от spadyn

serge пишет: Думаю, "эти" - уже никак. Очень давно была J1.5.
У вас какая хоть джумла?


1.5

Я в базу jos_users добавил поле city, как его привязать к default_profile_vertical.php, чтоб это поле выводил под аватаркой в kunena?

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

Больше
9 года 8 мес. назад #9 от serge
Вот отличный скрипт, позволяющий вывести произвольные данные из таблицы 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

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

Работает на Kunena форум