Получение ID автора сообщения

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
2Merlin
phpBB 1.0.0
Сообщения: 5
Стаж: 15 лет 10 месяцев

Получение ID автора сообщения

Сообщение 2Merlin »

Здравствуйте, требуется, чтобы в сообщении пользователя была ссылка, которая содержит ID, пользователя. Т.е, например: http://test.ru/template.php?search=ID. Во viewtopic.php, собственно ссылка на профиль генерируется функцией:get_username_string, но во первых она возвращает строку, а во вторых я не нашел, где она описана. И может быть есть более простой вариант?
Аватара пользователя
FladeX
Former team member
Сообщения: 1935
Стаж: 19 лет 3 месяца
Откуда: Саранск
Благодарил (а): 7 раз
Поблагодарили: 59 раз

Re: Получение ID автора сообщения

Сообщение FladeX »

Там есть такая ссылка, она ведёт на профиль автора сообщения. Вид:
memberlist.php?mode=viewprofile&u=42

Если вы не про то, поясните подробнее, что нужно.
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
2Merlin
phpBB 1.0.0
Сообщения: 5
Стаж: 15 лет 10 месяцев

Re: Получение ID автора сообщения

Сообщение 2Merlin »

Да, ссылка есть, но мне нужен только ID, чтобы подставить его в другую ссылку. Ссылка на профиль генерируется функцией get_username_string, но она только строки генерирует, а ID не отдается.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Получение ID автора сообщения

Сообщение Nekstati »

Используйте в шаблоне переменную {postrow.POSTER_ID}. Или смотрите, как генерируются ссылки в viewtopic.php (строки 1524 и далее) и делайте свою соответственно.
2Merlin
phpBB 1.0.0
Сообщения: 5
Стаж: 15 лет 10 месяцев

Re: Получение ID автора сообщения

Сообщение 2Merlin »

POSTER_ID указывает на последнее сообщение в топике. Я пробовал уже).
А про генерацию, я уже смотрел и чуть выше описал свои мысли по этому поводу. Кроме, как дописывать функцию никаких вариантов нет? И где описана эта функция? Судя по аргументам, тип итоговой ссылки определяется первым параметром, т.е можно добавить еще один вариант.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Получение ID автора сообщения

Сообщение MIT »

2Merlin писал(а):POSTER_ID указывает на последнее сообщение в топике. Я пробовал уже).
С какого это вдруг перепугу? POSTER_ID — идентификатор пользователя, оставившего сообщение и ничто иное.
2Merlin
phpBB 1.0.0
Сообщения: 5
Стаж: 15 лет 10 месяцев

Re: Получение ID автора сообщения

Сообщение 2Merlin »

Хм, окей.
Что я делаю не так:
viewtopic.php

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

		$template->assign_vars(array(
			'U_USER_LINK'		=> append_sid("{$phpbb_root_path}search&u=" . $poster_id),
Шаблон:
После:

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

				<!-- IF postrow.POSTER_AVATAR -->
					<!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a><!-- ELSE -->{postrow.POSTER_AVATAR}<!-- ENDIF --><br />
				<!-- ENDIF -->
Вставляю:

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

<a href="{U_USER_LINK}">WHAT???</a>
Ссылка у всех сообщений одна:search&u=ID_ПОСЛЕДНЕГО_ЮЗЕРА_КОТОРЫЙ_ОСТАВИЛ_ПОСЛЕДНЕЕ_СООБЩЕНИЕ_В_ТЕМЕ.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Получение ID автора сообщения

Сообщение MIT »

Начнём с того, что если ты хочешь выводить во viewtopic.php какие-то свои значения, то делать это надо в блоке, начинающимся со строк

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

// Send vars to template
$template->assign_vars(array( 
и нигде в другом месте, если не понимаешь, зачем в этом самом другом месте производится вывод данных в шаблон.
Но это только для единичных переменных! Которые назначаются только один раз.

Если тебе надо выводить дополнительные данные к каждому посту, то делать это уже надо в блоке, начинающимся с

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

    $postrow = array( 
и, опять же, никак иначе.

Дальше. Если ты вставил переменную первым способом, то обращатся к ней надо {ПЕРЕМЕННАЯ}, а вот если вторым — {postrow.ПЕРЕМЕННАЯ}, причём работать такая запись в шаблоне будет только между <!-- BEGIN postrow --> и <!-- END postrow -->.

Ну и последнее: $poster_id будет иметь верное значение только при использовании его во втором описанном мной случае. В любом другом месте ты можешь с лёгкостью нарваться на неверное или даже неопределённое значение.
2Merlin
phpBB 1.0.0
Сообщения: 5
Стаж: 15 лет 10 месяцев

Re: Получение ID автора сообщения

Сообщение 2Merlin »

Большое спасибо, сделал работает)

Есть ли какое нибудь руководство для разработчиков модов? Чтобы подробнее про это почитать.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Получение ID автора сообщения

Сообщение MIT »

Вернуться в «Для авторов (phpBB 3.0.x)»