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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14475
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 346 раз
Поблагодарили: 1544 раза
Контактная информация:

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

Сообщение rxu » 13.04.2013 9:14

Как отобразить дополнительные поля профиля на страницах 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
Зарегистрирован: 10.03.2018 12:56

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

Сообщение snbilyuk » 10.03.2018 13:39

В версии 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
Поддержка
Поддержка
Сообщения: 3452
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 38 раз
Поблагодарили: 925 раз

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

Сообщение LavIgor » 11.03.2018 0:46

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

Ответить

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