Как выборочно вывести доп поля профиля определенных юзеров

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Как выборочно вывести доп поля профиля определенных юзеров

Сообщение alcash »

Добрый день, не подскажите, как можно вывести значения некоторых доп полей профиля некоторых пользователей (выбранных по идентификатору пользователя) в каком-то месте главной страницы, например в боковом блоке портала, при чем, чтобы они были видны всем без исключения.
те
для user_id=1, 4, 34...
показать доп поле профиля
можно как-то реализовать?

Добавлено спустя 2 часа 53 минуты 59 секунд:
Спасибо, замечательная поддержка! :lol:

Добавлено спустя 1 час 15 минут 44 секунды:
up

Добавлено спустя 36 минут 31 секунду:
up
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1097
Стаж: 17 лет 8 месяцев
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение Garret_Dark »

alcash писал(а):Спасибо, замечательная поддержка!
Этой фразой Вы точно не ускорите решение своего вопроса.
К тому же в регламент поддержки не входит написание модов, чем Ваш запрос и является... и чаще всего остается без внимания. Особенно учитывая специфичность запроса (вряд ли кому-нибудь она пригодится еще).

Вот выводить вы хотите на портале в некоем месте, некие данные.
Но даже не пояснили, какой портал и его версию.
Не уточнили какие именно это поля должны быть, т.е. заранее известные и неизменяемые или периодически нужно что-то добавлять/удалять.
Собственно даже какие данные в блоке, помимо содержимого полей (например ник/аватара владельца этих записей) нужно показывать и в каком порядке.

Потому отвечаю на ваш конкретный вопрос:
alcash писал(а):подскажите, как можно вывести значения некоторых доп полей профиля некоторых пользователей (выбранных по идентификатору пользователя) в каком-то месте главной страницы, например в боковом блоке портала, при чем, чтобы они были видны всем без исключения.
Можно.
Посредством запроса к таблице с данными доп.полей из файла portal.php (судя по всему) и вывод этих данных в файл шаблона портала отвечающего за боковой блок.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение Sheer »

Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение alcash »

Sheer писал(а):alcash
Правила, пункт: 3.5
Ознакомился! Спасибо!
Garret_Dark писал(а):Но даже не пояснили, какой портал и его версию.
Версия форума 3.0.11, последняя, портал Board3 Portal 2.0.х , собственно там есть блоки http://forum.alconar.ru/ , например "Самые активные форумчане" (топ флудеров) - выводится ник и кол-во постов, дни рождения итд, хотелка такая: сделать блок, в котором выводилась бы инфа не только из стандартных полей профиля, (например кол-во сообщений), но и из дополнительных, из специфики моего форума, статус форумчанина и его срок трезвости. Если это несложно, подскажите как сделать.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение rxu »

Изображение
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение alcash »

rxu,
После этого можно использовать в шаблоне подобную конструкцию для вывода всех дополнительных полей профиля текущего пользователя:
спасибо, но немного не то, что изначально спрашивал:
как можно вывести значения некоторых доп полей профиля некоторых пользователей (выбранных по идентификатору пользователя) в каком-то месте главной страницы, например в боковом блоке портала, при чем, чтобы они были видны всем без исключения.
те
для user_id=1, 4, 34...
показать доп поле профиля
можно как-то реализовать?
то есть, блин, не знаю как объяснить, для пользователя Иванова и Петрова вывести их ники и рядом допполя!
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение rxu »

alcash
Попробуйте вместо $user->data['user_id'] использовать идентификаторы нужных пользователей (списком или массивом), например

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

$cp->generate_profile_fields_template('grab', array(51, 52));
Должны быть выведены поля для пользователей с user_id 51 и 52.
Это надо сделать в двух местах, где вызывается данная функция.
Изображение
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение alcash »

rxu, а как именно заменить, если тупо меняю $cp->generate_profile_fields_template('grab', $user->data['user_id']); на $cp->generate_profile_fields_template('grab', array(51, 52));, у меня дримвивер показывает ошибку. Я в php ноль.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение rxu »

Какую ошибку конкретно показывает?
Изображение
Аватара пользователя
alcash
phpBB 1.4.4
Сообщения: 184
Стаж: 14 лет 4 месяца
Откуда: примосковье
Благодарил (а): 83 раза
Поблагодарили: 1 раз
Забанен: Бессрочно

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение alcash »

А кто его знает, просто номер строки слева подсвечивается красным:

Изображение

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

// 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
$cp->generate_profile_fields_template('grab', array(51, 52));

// 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);
    }
}

?>
В одном месте меняется один в один, а в этой конструкции непонятно где чего менять!

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

// 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();
Как не меняй, получается ошибка!
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение rxu »

С массивом пользователей выходит посложнее. Можно попробовать так:

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

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

// Set users to display CPFs
$users_array = array(2, 54);

// Get custom profile fields data for current user
$profile_fields_data = $cp->generate_profile_fields_template('grab', $users_array);

// Assign the data to the template
foreach ($profile_fields_data as $user_id => $cpf_data)
{
	$profile_fields = $cp->generate_profile_fields_template('show', false, $cpf_data);

	// 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);
		}
	}
}
Здесь $users_array = array(2, 54); - это идентификаторы тех пользователей, чьи ДПП выводятся, замените своими нужными.
Изображение
Аватара пользователя
Webliberty
phpBB 2.0.5
Сообщения: 473
Стаж: 14 лет 9 месяцев
Благодарил (а): 161 раз
Поблагодарили: 66 раз

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение Webliberty »

А у меня такая проблема: создал дополнительное поле, не обязательное для заполнения. В настройках указал чтобы оно показывалось на страницах тем под аватарами, но оно так и не появилось... Кэш числил, в чем может быть причина?
Начинал с phpBB 3.0.9, закончил на phpBB 3.3.11 и продал форум...
Подпись заверена нотариусом :P
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13159
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Как выборочно вывести доп поля профиля определенных юзер

Сообщение Татьяна5 »

Вернуться в «Поддержка phpBB 3.0.х»