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

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

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

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

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

Сообщение Maanse »

Была тема, тему закрыли, туда ей и дорога
Тема следующая.
Нужно переделать шаблон отображения данных о пользователе на страницах тем (стиль 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
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

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

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

Для вывода именно допполя отдельно в 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
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

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

Сообщение Sheer »

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
Стаж: 6 лет 3 месяца

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

Сообщение Maanse »

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

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

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

{postrow.PROFILE_FIELD1_VALUE} ничего не выбирает, это и есть само значение. Уже выбранное
Maanse
phpBB 1.0.0
Сообщения: 5
Стаж: 6 лет 3 месяца

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

Сообщение Maanse »

Татьяна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
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

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

Сообщение Sheer »

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 г.
Ответить

Вернуться в «Для разработчиков»