XF 2.2 Как делать такие же плашки в сообщении?

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.2.9

Tommi365

Проверенные
Сообщения
391
Решения
4
Реакции
151
Баллы
105
upload_2022_06_08_20_03_22_944.jpg
Хотел бы узнать, как это реализовать. Только распишите подробно.
 
Подробно я сейчас не распишу, но суть в том что создается простое дополнительное поле такого вида
1654710882758.png

Потом в нужном вам месте выводите его как хотите
HTML:
<xf:if is="$xf.visitor.Profile.custom_fields.fieldId == 'allowed'">
    <span class="label label--lightGreen label--smallest">{{ phrase('wow') }}</span>
<xf:elseif is="$xf.visitor.Profile.custom_fields.fieldId == 'disallowed'" /> 
    <span class="label label--red label--smallest">{{ phrase('nowow') }}</span>
</xf:if>
Это пример кода, который я сейчас накидал. Выводить можно как угодно, на данном форуме немного по другому сделано, скорее всего. Может быть Mirovinger распишет, если захочет

$xf.visitor меняется на переменную, которая достанет юзера в текущем контексте. В контексте поста это, скорее всего, $post.User
fieldId заменить на айди созданного вами дополнительного поля
Ну и значения там могут быть не только allowed / disallowed, а любые, которые вам нужны
 
Касательно места вывода "как здесь": TMS-ка по шаблону post_macros. Я делал нечто схожее, но статичное: в обсуждении ресурса у сообщений авторов вывожу "Автор ресурса". Для примера думаю сойдёт. Выглядит так же:
1654711726738.png

Найти: <xf:if is="$post.isUnread()">
В "Заменить" вставляете, соответственно, свой кусок кода выше, который Matew приводит. Пользователя там можно достать через $post.User.

Конкретно если рассматривать, опять же, мой пример, то в "Заменить" у меня воткнуто такое:
HTML:
<xf:if is="$thread.discussion_type == 'resource' && $__globals.resource.user_id == $post.user_id">
    <li><span class="message-newIndicator message-resourceAuthorIndicator">{{ phrase('hlmod_resource_author') }}</span></li>
</xf:if>

$0

Т.к. ресурс не торчит в этом макросе, то я его выдёргиваю через $__globals. message-newIndicator использую чисто чтобы брать и другие параметры оформления, навешиваемые на такого же рода плашку в сообщениях, сообщающую о том, что сообщение - новое.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу