Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[FAQ] Дополнительные поля профиля

Темы по наиболее часто задаваемым вопросам без привязки к версии phpBB. Читать в первую очередь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x/3.3.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

[FAQ] Дополнительные поля профиля

Сообщение rxu »

Как отобразить дополнительные поля профиля на страницах phpBB и внешних страницах?

Источник: Tutorial.Custom profile fields.

Для отображения полей профиля на внешних страницах необходимо добавить следующий код (предполагается, что сессия phpBB уже интегрирована в скрипт).
В данном примере отображение дополнительных полей профиля не будет зависеть от соответствующих настроек отображения в администраторском разделе, т.е. поля отображаются в любом случае.

Код: Выделить всё

// Get custom profile fields functions
include_once($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);

// Initialize custon profile field store array and class object
$profile_fields = array();
$cp = new custom_profile();

// Get custom profile fields data for current user
$profile_fields = $cp->generate_profile_fields_template('grab', $user->data['user_id']);

// Assign the data to the template
$profile_fields = (isset($profile_fields[$user->data['user_id']])) ? $cp->generate_profile_fields_template('show', false, $profile_fields[$user->data['user_id']]) : array();

// Send vars to template
$template->assign_vars(array(
	'S_CUSTOM_FIELDS2'        => (isset($profile_fields['row']) && sizeof($profile_fields['row'])) ? true : false,
));

if (!empty($profile_fields['row']))
{
    $template->assign_vars($profile_fields['row']);
}

if (!empty($profile_fields['blockrow']))
{
    foreach ($profile_fields['blockrow'] as $field_data)
    {
        $template->assign_block_vars('custom_fields2', $field_data);
    }
}
После этого можно использовать в шаблоне подобную конструкцию для вывода всех дополнительных полей профиля текущего пользователя:

Код: Выделить всё

<!-- BEGIN custom_fields2 --><dt>{custom_fields2.PROFILE_FIELD_NAME}:</dt> <dd>{custom_fields2.PROFILE_FIELD_VALUE}</dd><!-- END custom_fields2 -->
Если необходимо вывести только определенное поле, код должен быть следующим (здесь для примера взято имя/заголовок поля - test):

Код: Выделить всё

<!-- BEGIN custom_fields2 -->
	<!-- IF custom_fields2.PROFILE_FIELD_NAME eq "test" -->
		<dt>{custom_fields2.PROFILE_FIELD_NAME}:</dt> <dd>{custom_fields2.PROFILE_FIELD_VALUE}</dd>
	<!-- ENDIF -->
<!-- END custom_fields2 -->
Изображение
Перенесено из форума FAQ (phpBB 3.0.x) в форум FAQ 28.09.2016 15:02 модератором rxu

snbilyuk
phpBB 1.0.0
Сообщения: 1
Стаж: 6 лет

Re: [FAQ] Дополнительные поля профиля

Сообщение snbilyuk »

В версии phpBB3.2.2 эта конструкция не работает. Отсутствует файл 'includes/functions_profile_fields.' . $phpEx); Видимо его перенесли в другой файл. да и $cp = new custom_profile(); не инициализируется.
Не подскажете где искать подобную информацию о выводе дополнительных полей профиля на страницах форума?
Вкраце могу сказать так: создал отдельную страницу, что бы пользователь мог посмотреть свою информацию по всем дополнительным полям. Но , ни как не могу этого сделать. Все фаги найденные в инете ни чего не дали. Прочитал ваш, и понял, что это наиболее приемлимое решение, но не могу реализовать. Тупая подстановка:

Код: Выделить всё

<!-- BEGIN custom_fields -->
            <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
<!-- END custom_fields -->
ничего не дает. Видимо нужна процедура вытаскивания данных из профиля и занесения в какой-то массив данных. Если сможете, то подскажите как.
Последний раз редактировалось Sheer 10.03.2018 14:06, всего редактировалось 1 раз.
Причина: bb-код. Когда же вы наконец научитесь пользоваться bb-кодами!!!
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: [FAQ] Дополнительные поля профиля

Сообщение LavIgor »

snbilyuk писал(а): 10.03.2018 13:39 Видимо его перенесли в другой файл.
Да, функции переехали сюда.
Суть примерно та же, но методы чуть другие.
Ответить

Вернуться в «FAQ»