Вопрос 2.x Дополнительные поля пользователя настройка

  • Автор темы Ttt
  • Дата создания

Ttt

Проверенный
Сообщения
70
Репутация
4
Баллы
8
Приветствую всех.
Хочу сделать 2 поля в одну строчку, то есть, поле Местоположение и пользовательское поле. Пример: Россия, Москва
Где Россия это местоположение, а Москва это пользовательское свойство.

Пробовал через шаблоны по разному, не получается сделать отдельный шаблон для свойства город.

Можно сделать чтобы свойство отображалось, в независимости от опции: "Видимо в блоке информации о пользователе в сообщениях, если его вставить отдельно от всех custom_fields

Или как лучше это сделать? Заранее благодарен всем.

В шаблоне message_macros такой код:

PHP:
<xf:if is="$extras.location && $user.Profile.location">
                                        <dl class="pairs pairs--justified">
                                            <dt>
                                                <xf:if is="property('uix_postBitIcons')">
                                                    <xf:macro name="icon" template="uix_icons.less" arg-icon="location" />
                                                <xf:else />
                                                    {{ phrase('location') }}
                                                </xf:if>
                                            </dt>
                                            <dd><a href="{{ link('misc/location-info', '', {'location': $user.Profile.location}) }}" rel="nofollow" target="_blank" class="u-concealed">{$user.Profile.location}</a></dd>
                                        </dl>
                                    </xf:if>           
                                            
                                    <xf:if is="$extras.custom_fields">
                                        <xf:macro template="custom_fields_macros" name="custom_fields_values"
                                            arg-type="users"
                                            arg-group="personal"
                                            arg-set="{$user.Profile.custom_fields}"
                                            arg-additionalFilters="{{ ['message'] }}"
                                            arg-valueClass="pairs pairs--justified"
                                        />
                                        <xf:if is="$user.canViewIdentities()">
                                            <xf:macro template="custom_fields_macros" name="custom_fields_view"
                                                arg-type="users"
                                                arg-group="contact"
                                                arg-set="{$user.Profile.custom_fields}"
                                                arg-additionalFilters="{{ ['message'] }}"
                                                arg-valueClass="pairs pairs--justified"
                                            />
                                        </xf:if>
                                    </xf:if>


В шаблоне custom_fields_macros убрал вывод названия Дополнительного поля

PHP:
<xf:foreach loop="$xf.app.getCustomFields({$type}, {$group}, {$onlyInclude}, {$additionalFilters})" key="$fieldId" value="$fieldDefinition">
        <xf:if is="$fieldDefinition.hasValue({$set.{$fieldDefinition.field_id}})">
            <dl class="{$valueClass}">
                
                <dd>
                    <xf:macro name="custom_field_value"
                        arg-definition="{$fieldDefinition}"
                        arg-value="{$set.{$fieldDefinition.field_id}}" />
                </dd>
            </dl>
        </xf:if>
    </xf:foreach>
 

Unsubdued

Администратор
Сообщения
4 483
Репутация
8 781
Баллы
266
На сколько я помню, это поле "Местоположение", так и заполняется "Россия, Москва" и ничего лишнего не надо.

Ну да, так и есть. Поставил себе в профиле и все работает.
 
  • Мне нравится
Реакции: SOUL

Ttt

Проверенный
Сообщения
70
Репутация
4
Баллы
8
Перешёл с VB3 и уже эти поля заполнены у всех, раньше они были обязательные к заполнению.

И хотелось бы сделать как было на старом форуме, ещё пример:

Авто: Форд Эскейп 2010

Где форд это марка, Эскейп модель, и год выпуска. Эти поля заполнены уже у импортированных пользователей. Но и сделать их в одно свойства не получится. А если делать 3 свойства, они выводятся каждое в новой строке.

Ещё было бы хорошо сделать ссылку свойству "город", как у свойства местоположение.

HTML:
<a href="{{ link('misc/location-info', '', {'location': $user.Profile.location}) }}" rel="nofollow" target="_blank" class="u-concealed">{$user.Profile.location}</a>

Забыл добавить, что эти поля выбираются из выпадающего списка.
 
Последнее редактирование модератором:

Ttt

Проверенный
Сообщения
70
Репутация
4
Баллы
8
Строчку <dt>{$fieldDefinition.title}</dt> из шаблона custom_fields_macros убирать нельзя, в профиле пользователя не будет отображаться название полей, в пользовательских полях тем название тоже исчезнут.
 

Ttt

Проверенный
Сообщения
70
Репутация
4
Баллы
8
В vb3 была возможность добавить обязательное дополнительное поле пользователя, но с уведомлением каждому пользователю, у кого не заполнено это поле, должны были его заполнить. На XF тоже есть опция, обязательное поле, но получается оно работает только для того, кто регистрируется... а как сделать, чтобы все пользователи заполнили это поле?
 

Unsubdued

Администратор
Сообщения
4 483
Репутация
8 781
Баллы
266
Ttt, скорее всего, писать дополнение, а штатными средствами этого не сделать. Рассылка вряд ли поможет.
 

REZON

Забаненный
Сообщения
235
Репутация
12
Баллы
18
А мне подскажите как делать элементарные для вас вещи! 555.png
 

REZON

Забаненный
Сообщения
235
Репутация
12
Баллы
18
Unsubdued спасибо! Сам бы искал долго! Да изучаю админку..но охоао быстрей проект замутить..вроде норм идейка)
 

esfront

Новичок
Проверенный
Сообщения
16
Репутация
15
Баллы
3
Добавил кнопку YouTube канала через доп поля, с возможностью установки пользователям своего канала через {$value}, но вот незадача не могу никак убрать заголовок этого поля. Подскажите пожалуйста как это сделать!? В extra.less что только не пихал - не выходит...
--- Сообщение автоматически объединено: ---

Проблему решил написал Мануальчик, где и решил проблему со скрытием заголовка поля:
Дополнительное поле пользователей. Кнопочка YouTube в постбите
 

Вложения

  • 6,4 КБ Просмотров: 5
Последнее редактирование:

Ttt

Проверенный
Сообщения
70
Репутация
4
Баллы
8
Как правильно добавить иконку к дополнительным полям, чтобы на странице сообщений в информации пользователя показывал не название доп. поля а иконку... стиль U.I.X, есть опция показывать иконки, показывает но на стандартные поля...
Как то я переделывал по по моему в шаблонах макросах, но после обновлений прозевал и объединил как то не так, короче слетело, а сейчас опять решил заморочиться.

Подскажите как правильно это сделать, кто уже делал ?


Либо сделать так, это правильно? Иконку показывает.
333.png
--- Сообщение автоматически объединено: ---

Не удобен этот вариант, при регистрации будет показывать икноку, в профиле пользователя тоже будет иконка вместо названия...
 

sonic

[KST]
Администратор
Сообщения
2 179
Репутация
3 854
Баллы
153
ну блин по аналогии же, вот кусок с иконкой или текстом в зависимости от настроек, для сообщения.. шаблон message_macros
Код для вывода или иконки или текста в зависимости от настроек:
<xf:if is="$extras.message_count">
    <dl class="pairs pairs--justified">
        <xf:if is="property('uix_postBitIcons')">
            <dt>
                <span data-xf-init="tooltip" title="{{ phrase('messages') }}">
                    <xf:fa icon="fa-comments" class=" uix_icon uix_icon--messages" />
                </span>
            </dt>
        <xf:else />
            <dt>{{ phrase('messages') }}</dt>
        </xf:if>
        <dd>{$user.message_count|number}</dd>
    </dl>
</xf:if>
вот с 3 по 11 строчку проверяет и выводит или иконку или текст в постбите
 

sonic

[KST]
Администратор
Сообщения
2 179
Репутация
3 854
Баллы
153
и да если бы ты это делал через модификации, а не прямой правкой то вот этого бы не случилось..
но после обновлений прозевал и объединил как то не так, короче слетело, а сейчас опять решил заморочиться.
 

Ttt

Проверенный
Сообщения
70
Репутация
4
Баллы
8
sonic, Благодарю за наводку.

Вставляем в шаблон message_macros это код, а лучше делаем через модификации. Вставляем ID вашего поля {$user.Profile.custom_fields.ID_вашего_поля}

Пример:
PHP:
<dl class="pairs pairs--justified">
                                            <dt>
                                                <span data-xf-init="tooltip" title="{{ phrase('vehicle_make_new') }}">
                                                <i class="uix_icon uix_icon--car"></i>
                                            </dt>
                                            <dd>{$user.Profile.custom_fields.vehicle_make_new}</dd>
</dl>
 
Последнее редактирование:

sonic

[KST]
Администратор
Сообщения
2 179
Репутация
3 854
Баллы
153
код не правильный, правильней будет так
HTML:
<dl class="pairs pairs--justified">
        <xf:if is="property('uix_postBitIcons')">
            <dt>
                тут код иконки
            </dt>
        <xf:else />
            <dt>{{ phrase('user_field_title.ID_вашего_поля') }}</dt>
        </xf:if>
        <dd>{$user.Profile.custom_fields.ID_вашего_поля}</dd>
</dl>
и тогда если в настройках стиля стоит отображать иконку будет отображать иконку, если стоит отображать текст будет отображать название поля
 
Сверху Снизу