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

user id

Вопросы без привязки к версии. Установлена авточистка (2 года).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
php_bb
phpBB 1.4.2
Сообщения: 72
Стаж: 3 года 9 месяцев
Благодарил (а): 35 раз

user id

Сообщение php_bb »

hi,

file: listener.php,

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

static public function getSubscribedEvents()
{
	return array(
		'core.viewtopic_modify_post_row'	=> 'viewtopic_modify_post_row', 
	);
}

public function viewtopic_modify_post_row($event)
{
	$row = $event['row'];
	$poster_id = (int) $row['user_id'];

	$this->template->assign_vars([
		'POST_USER_ID'		=> $poster_id,
	]);
}

file: vendorname/extensionname/styles/all/template/event/viewtopic_body_postrow_custom_fields_after.html

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

{%- if POST_USER_ID -%}<dd><strong>{{ lang('POST_USER_ID') }}{{ lang('COLON') }}</strong> {{ POST_USER_ID }}</dd>{%- endif -%}

now on viewtopic.php, all the different user's posts show the same POST_USER_ID.
it shows the user-id of the last post of each page for all the posts.
why? and how can i fix this to show the exact user-id of each post?

thank you,
Regards
php_bb
phpBB 1.4.2
Сообщения: 72
Стаж: 3 года 9 месяцев
Благодарил (а): 35 раз

Re: user id

Сообщение php_bb »

this supposed to get the user-id of each post right?

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

$row = $event['row'];
$poster_id = (int) $row['user_id'];
Regards
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 5 месяцев
Благодарил (а): 37 раз
Поблагодарили: 261 раз

Re: user id

Сообщение Pazh »

php_bb писал(а): 22.01.2021 8:01 this supposed to get the user-id of each post right?
yes, but to show poster's user_id you don't need any code to listener.php at all. poster_id (it is user_id of post author) already exist in postrow array in viewtopic.php file.

You must create template event file in any extention, for example: vendorname/extensionname/styles/all/template/event/viewtopic_body_postrow_custom_fields_after.html
and put in it this code

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

{% if postrow.POSTER_ID %}<dd><strong>{{ lang('POST_USER_ID') }}{{ lang('COLON') }}</strong> {{ postrow.POSTER_ID }}</dd>{% endif %}
Помощь в ЛС/email только за WM или ЮMoney
php_bb
phpBB 1.4.2
Сообщения: 72
Стаж: 3 года 9 месяцев
Благодарил (а): 35 раз

Re: user id

Сообщение php_bb »

@Pazh
I wanna get the user-id of a poster and then get some info of that user from database and print the data on viewtopic.
I could do this on user profile and UCP.
But on viewtopic, i can't get the user-id with core.viewtopic_modify_post_row event.
Regards
php_bb
phpBB 1.4.2
Сообщения: 72
Стаж: 3 года 9 месяцев
Благодарил (а): 35 раз

Re: user id

Сообщение php_bb »

Pazh писал(а): 22.01.2021 11:00yes,
If yes, why it dosen't show the correct user-id?
With this code, it shows the last post's user-id for all the posts of topic.

For example:
Topic-A has 3 pages.
Last post of page one is user20
Last post of page two is user35
Last post of page three is user50

With the code above in listener.php:
All the posts of page one, POST_USER_ID is user20
All the posts of page two, POST_USER_ID is user35
All the posts of page three, POST_USER_ID is user50

Why POST_USER_ID gets the last post's user-id instead of getting each post's user-id?

Thank you,
Regards
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12427
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2478 раз

Re: user id

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

Последнее значение одной и той же переменной POST_USER_ID перезаписывает все предыдущие
php_bb
phpBB 1.4.2
Сообщения: 72
Стаж: 3 года 9 месяцев
Благодарил (а): 35 раз

Re: user id

Сообщение php_bb »

Татьяна5 писал(а): 23.01.2021 13:16 Последнее значение одной и той же переменной POST_USER_ID перезаписывает все предыдущие
How can i fix it?
Regards
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12427
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2478 раз

Re: user id

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

Собрать все poster_id в массив
И выводить потом другие полученные данные о пользователях в массиве postrow, а не отдельными переменными
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 5 месяцев
Благодарил (а): 37 раз
Поблагодарили: 261 раз

Re: user id

Сообщение Pazh »

file: listener.php,

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

static public function getSubscribedEvents()
{
	return array(
		'core.viewtopic_modify_post_row'	=> 'viewtopic_modify_post_row', 
	);
}
 
public function viewtopic_modify_post_row($event)
{
	$row = $event['row'];
	$poster_id = (int) $row['user_id']; // you get poster_id
 
 	//any you need actions with $poster_id, for example - get new data from db throuw poster_id (for example put it in variable $new_value_var)
 	....
 	
 	// save $new_value_var to the array post_row
 	$post_row= $event['post_row'];
	$post_row['NEW_VALUE'] = $new_value_var;
	$event['post_row'] = $post_row;
}
file: vendorname/extensionname/language/en/common.php add row in array

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

'NEW_VALUE_LANG' => 'This is new value',
output NEW_VALUE in template on viewtopic page:
file: vendorname/extensionname/styles/all/template/event/viewtopic_body_postrow_custom_fields_after.html

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

{% if postrow.NEW_VALUE %}<dd><strong>{{ lang('NEW_VALUE_LANG') }}{{ lang('COLON') }}</strong> {{ postrow.NEW_VALUE }}</dd>{% endif %}
this is very rough code, read comments in code
Помощь в ЛС/email только за WM или ЮMoney
php_bb
phpBB 1.4.2
Сообщения: 72
Стаж: 3 года 9 месяцев
Благодарил (а): 35 раз

Re: user id

Сообщение php_bb »

Pazh писал(а): 23.01.2021 16:44 this is very rough code, read comments in code
Thank you very much. it worked now :)
Regards

Вернуться в «phpBB-пространство»