Изменение отображаемых данных пользователя (правка функции/правка шаблона)

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Maanse
phpBB 1.0.0
Сообщения: 5
Зарегистрирован: 07.12.2017 23:12

Изменение отображаемых данных пользователя (правка функции/правка шаблона)

Сообщение Maanse » 27.03.2018 18:25

Была тема, тему закрыли, туда ей и дорога
Тема следующая.
Нужно переделать шаблон отображения данных о пользователе на страницах тем (стиль prosilver, большую часть решил изменением шаблона viewtopic_body.html). В частности нужно заменить отображение логина со ссылкой на профиль пользователя на отображение доп поле, содержащего ФИО, при этом сохранить ссылку на профиль.

Вот код который отвечает за вывод логина:

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

<!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF -->
Эта штука выводит <a href="./memberlist.php?mode=viewprofile&amp;u=60" class="username">TestUser01</a> т.е. готовую ссылку на профиль.
Вот задача заменить в готовой ссылке TestUser01 на данные из дополнительного поля.
POST_AUTHOR_FULL встречается в: viewtopic.php, includes\functipost_posting.php, includes\mcp\mcp_pm_reports.php, includes\mcp\mcp_post.php, includes\mcp\mcp_queue.php, includes\mcp\mcp_reports.php

Все эти файлы содержат похожий код вида:
'POST_AUTHOR_FULL' => get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']),

Все они ссылаются на функцию get_username_string живущую в includes\functions_content.php которую очень не хочется попортить.
Подскажите как ее модифицировать, чтобы вместо логина светилось доп. поле.

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9749
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2715 раз
Контактная информация:

Re: Изменение отображаемых данных пользователя (правка функции/правка шаблона)

Сообщение Татьяна5 » 27.03.2018 20:07

Для вывода именно допполя отдельно в viewtopic_body есть пример кода

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

		<!-- IF postrow.S_PROFILE_FIELD1 -->
			<!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
			<dd><strong>{postrow.PROFILE_FIELD1_NAME}{L_COLON}</strong> {postrow.PROFILE_FIELD1_VALUE}</dd>
		<!-- ENDIF -->
Значение поля оттуда получить можно, а дальше дело техники

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11485
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2576 раз
Контактная информация:

Re: Изменение отображаемых данных пользователя (правка функции/правка шаблона)

Сообщение Sheer » 27.03.2018 20:14

Maanse писал(а):
27.03.2018 18:25
как ее модифицировать
В phpBB3.2 не принятом модифицировать код движка. Создавайте расширение.
Maanse писал(а):
27.03.2018 18:25
туда ей и дорога
И эту бы закрыл, ибо темы следует создавать в соответствующих форумах. Для этой темы наиболее подходящий Для авторов
Перенесено.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Перенесено из форума Поддержка phpBB 3.2.x в форум Для авторов 27.03.2018 20:14 модератором Sheer

Maanse
phpBB 1.0.0
Сообщения: 5
Зарегистрирован: 07.12.2017 23:12

Re: Изменение отображаемых данных пользователя (правка функции/правка шаблона)

Сообщение Maanse » 28.03.2018 2:10

Татьяна5 писал(а):
27.03.2018 20:07
Значение поля оттуда получить можно, а дальше дело техники
Значение PROFILE_FIELD1_VALUE возвращает данные столбца FIELD1 из таблицы profile_fields_data. Но где из PROFILE_FIELD1_VALUE выбирается значение FIELD1 я пока не разобрался. Если знаете, подскажите.
Sheer писал(а):
27.03.2018 20:14
И эту бы закрыл, ибо темы следует создавать в соответствующих форумах. Для этой темы наиболее подходящий Для авторов
Перенесено.
Спасибо.

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9749
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2715 раз
Контактная информация:

Re: Изменение отображаемых данных пользователя (правка функции/правка шаблона)

Сообщение Татьяна5 » 28.03.2018 2:34

{postrow.PROFILE_FIELD1_VALUE} ничего не выбирает, это и есть само значение. Уже выбранное

Maanse
phpBB 1.0.0
Сообщения: 5
Зарегистрирован: 07.12.2017 23:12

Re: Изменение отображаемых данных пользователя (правка функции/правка шаблона)

Сообщение Maanse » 28.03.2018 10:12

Татьяна5 писал(а):
28.03.2018 2:34
{postrow.PROFILE_FIELD1_VALUE} ничего не выбирает, это и есть само значение. Уже выбранное
{postrow.PROFILE_FIELD1_VALUE} ничего не выбирает, оно содержит значение которое в него записывает некоторая функция (которую не могу найти), определяющая, что стоит вместо field1 PROFILE_FIELD1_VALUE
вместо FIELD1 вписывается названия столбцов которые сделал я
т.е. например PROFILE_MYFIELD_VALUE выдаст значение из столбца MYFIELD таблицы profile_fields_data

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9749
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2715 раз
Контактная информация:

Re: Изменение отображаемых данных пользователя (правка функции/правка шаблона)

Сообщение Татьяна5 » 28.03.2018 15:00

В viewtopic.php это $cp_row, копать можно оттуда

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11485
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2576 раз
Контактная информация:

Re: Изменение отображаемых данных пользователя (правка функции/правка шаблона)

Сообщение Sheer » 28.03.2018 15:17

Maanse писал(а):
28.03.2018 10:12
{postrow.PROFILE_FIELD1_VALUE} ничего не выбирает, оно содержит значение которое в него записывает некоторая функция
Оно ничего не с одержит, поскольку туда некоторая функция (которая находится в \phpbb\profilefields\manager.php) ничего не записывает.

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

		<!-- IF postrow.S_PROFILE_FIELD1 -->
			<!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
			<dd><strong>{postrow.PROFILE_FIELD1_NAME}{L_COLON}</strong> {postrow.PROFILE_FIELD1_VALUE}</dd>
		<!-- ENDIF -->
Это всего лишь пример, там написано
Use a construct like this
то есть Используйте конструкцию, наподобие этой
Чтобы реализовать вашу (бредовую абсолютно) задумку, нужно создавать расширение, использующее событие 'core.viewtopic_modify_post_row' чтобы изменить массив $post_row, переопределив в нем значение элемента с индексом 'POST_AUTHOR_FULL'
Но на мой взгляд достаточно вывести в минипрофиле данные из дополнительного поля. Это достигается штатными возможностями движка - нужно просто настроить дополнительное поле соответствующим образом.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Ответить

Вернуться в «Для авторов»