Дополнительные поля профиля отображаются не везде, почему?

Список разделов phpBBex 1.x (поддерживается) Поддержка 1.x

Описание: У вас проблемы с phpBBex 1.x и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть вопроса. Подробно описывайте проблему. Не забудьте указать версию phpBBex и какие моды установлены, по возможности добавьте скриншоты проблемы или ссылку на страницу с проблемой.
Модератор: Поддержка

Сообщение #1 Алексей » 30.11.2012, 13:41

Хочу настроить, чтобы доп. поля всех пользователей отображались для администраторов и модераторов, а пользователю только свои доп.поля.
Настройки в админке:
Поле_нагр.JPG
Поле_нагр.JPG (24.4 КБ) Просмотров: 3311

Поле_настр.JPG


Для администратора в темах доп.поля у других пользователей отображаются:
Поле_админ.JPG
Поле_админ.JPG (24.83 КБ) Просмотров: 3311

Для пользователя Тест свои доп.поля в темах не отображается:
Поле_юзер.JPG

почему?

Также не отображаются доп.поля в списке пользователей для администраторов:
Поле_спис.JPG
Алексей M
Автор темы
Аватара
Репутация: 19
С нами: 11 лет 6 месяцев

Сообщение #2 VEG » 30.11.2012, 14:01

Я уже отвечал на аналогичный вопрос. Это стандартная логика работы с дополнительными полями в phpBB 3 и я её не изменял.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #3 Алексей » 30.11.2012, 14:16

VEG, спасибо.
Чтобы отображать свои доп.поля для самого пользователя в темах, надо где-то править код в viewtopic.php, так как в шаблоне viewtopic_body.html никаких условий нет, что сообщение от самого пользователя:
Код: Выделить всё
<!-- BEGIN custom_fields -->
    <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
<!-- END custom_fields -->

Добавлено спустя 1 час 27 минут 8 секунд:
Вообщем, для отображения пользователю своих доп. полей сделал следующие прваки.

В functions_profile_fields.php
Нашёл
Код: Выделить всё
 ' .
            ((!$auth->acl_gets('a_', 'm_') && !$auth->acl_getf_global('m_')) ? '   AND f.field_hide = 0 ' : '') . '
и удалил.

В viewtopic.php
Нашёл
Код: Выделить всё
'TOPIC_POSTER'   => $topic_data['topic_poster'],
Добавил после
Код: Выделить всё
'USER_ID'         => $user->data['user_id'],

В viewtopic_body.html
Нашёл
Код: Выделить всё
         <!-- BEGIN custom_fields -->
            <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
         <!-- END custom_fields -->
Заменил на
Код: Выделить всё
         <!-- IF U_ACP or U_MCP or (postrow.POSTER_ID == USER_ID and USER_ID > 67) -->
            <!-- BEGIN custom_fields -->
               <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
            <!-- END custom_fields -->
         <!-- ENDIF -->


Для memberlist.php и memberlist_view.html надо сделать что-то подобное.
Как сделать проще не знаю.

Ещё вопрос по дополнительным полям - могу ли я добавить доп.поле в админке, значение которого считается от другого поля в таблице users?
Например, нужно доп.поле account = user_id + 1000. Пока это сделал только правкой кода, а хотелось бы проще это сделать - в админке.
Алексей M
Автор темы
Аватара
Репутация: 19
С нами: 11 лет 6 месяцев

Сообщение #4 VEG » 01.12.2012, 00:00

Алексей:Ещё вопрос по дополнительным полям - могу ли я добавить доп.поле в админке, значение которого считается от другого поля в таблице users?
Например, нужно доп.поле account = user_id + 1000. Пока это сделал только правкой кода, а хотелось бы проще это сделать - в админке.
Нет, стандартными средствами это сделать нельзя. Система дополнительных полей в phpBB 3 очень проста и подходит только для простых случаев.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев


Вернуться в Поддержка 1.x