XF 2.2 Как убрать аватар в постбите !?

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

oljarose

Проверенные
Сообщения
85
Решения
2
Реакции
11
Баллы
65
Доброго времени суток всем! 🖐️

Подскажите, пожалуйста🤓, как отключить аватар для тех пользователей, кто не загрузил ещё свой кастомный аватар!?
Просто чтобы то место в постбите, которое занимает автар, исчезло и высота уменьшилась..
 
Решение
Найти:
HTML:
/(\t+<div class="message-avatar .+(?=\s+<div class="message-userDetails))(.*<h4 class="message-name">)(.*<\/h4>)/Uism
Заменить:
Код:
        <xf:if is="$user.avatar_date">
$1
        </xf:if>
$2
                <xf:if is="!$user.avatar_date && $xf.options.showMessageOnlineStatus && $user && $user.isOnline()">
                    <span class="c-message-online" tabindex="0" data-xf-init="tooltip" data-trigger="auto" title="{{ phrase('online_now')|for_attr }}"></span>
                </xf:if>
                $3
В extra.less:
Less:
.c-message-online
{  
    &:before
    {
        .m-faBase();
        .m-faContent(@fa-var-user-circle, .969em);
        line-height: 1;
        font-weight: bold;
        color: rgb(127, 185...
Less:
.message
{
    .message-avatar:has(.avatar--default)
    {
        display: none;
    }
}

Код сработал, но он, 😔 к сожалению, убрал статус "online".
возможно ли статус онлайн оставить в то время как аватара нет!?
 

Вложения

  • 1723658827456.png
    1723658827456.png
    13.1 KB · Просмотры: 0
Шаблон: message_macros.
Найти:
HTML:
        <div class="message-avatar {{ ($xf.options.showMessageOnlineStatus && $user && $user.isOnline()) ? 'message-avatar--online' : '' }}">
            <div class="message-avatar-wrapper">
                <xf:avatar user="$user" size="m" defaultname="{$fallbackName}" itemprop="{{ $includeMicrodata ? 'image' : '' }}" />
                <xf:if is="$xf.options.showMessageOnlineStatus && $user && $user.isOnline()">
                    <span class="message-avatar-online" tabindex="0" data-xf-init="tooltip" data-trigger="auto" title="{{ phrase('online_now')|for_attr }}"></span>
                </xf:if>
            </div>
        </div>
Заменить:
HTML:
        <xf:if is="$user.avatar_date">
$0
        <xf:else />
            <xf:if is="$xf.options.showMessageOnlineStatus && $user && $user.isOnline()">
                <span class="c-message-online" tabindex="0" data-xf-init="tooltip" data-trigger="auto" title="{{ phrase('online_now')|for_attr }}"></span>
            </xf:if>
        </xf:if>
В extra.less:
Less:
.c-message-online
{
    display: block;
    text-align: center;
    
    &:before
    {
        .m-faBase();
        .m-faContent(@fa-var-user-circle, .969em);
        line-height: 1;
        font-weight: bold;
        color: rgb(127, 185, 0);
        background: @xf-messageUserBlock--background-color;
        border: @xf-messageUserBlock--background-color solid 2px;
        border-radius: 50%;
        display: inline-block;
    }
}

Предыдущий код можно удалить.
 
Шаблон: message_macros.
Найти:
HTML:
        <div class="message-avatar {{ ($xf.options.showMessageOnlineStatus && $user && $user.isOnline()) ? 'message-avatar--online' : '' }}">
            <div class="message-avatar-wrapper">
                <xf:avatar user="$user" size="m" defaultname="{$fallbackName}" itemprop="{{ $includeMicrodata ? 'image' : '' }}" />
                <xf:if is="$xf.options.showMessageOnlineStatus && $user && $user.isOnline()">
                    <span class="message-avatar-online" tabindex="0" data-xf-init="tooltip" data-trigger="auto" title="{{ phrase('online_now')|for_attr }}"></span>
                </xf:if>
            </div>
        </div>
Заменить:
HTML:
        <xf:if is="$user.avatar_date">
$0
        <xf:else />
            <xf:if is="$xf.options.showMessageOnlineStatus && $user && $user.isOnline()">
                <span class="c-message-online" tabindex="0" data-xf-init="tooltip" data-trigger="auto" title="{{ phrase('online_now')|for_attr }}"></span>
            </xf:if>
        </xf:if>
В extra.less:
Less:
.c-message-online
{
    display: block;
    text-align: center;
   
    &:before
    {
        .m-faBase();
        .m-faContent(@fa-var-user-circle, .969em);
        line-height: 1;
        font-weight: bold;
        color: rgb(127, 185, 0);
        background: @xf-messageUserBlock--background-color;
        border: @xf-messageUserBlock--background-color solid 2px;
        border-radius: 50%;
        display: inline-block;
    }
}

Предыдущий код можно удалить.

Почему-то пропали аватары у всех, и и у тех, у кого они были загружены теперь стоит $0.
A у тех, у кого не было кастомного аватара - всё как надо.
1723745924738.png
 
oljarose, это код для модификаций шаблона, а не для прямой правки.
/admin.php?template-modifications/add&type=public.
🤔Хм, поменяла в модификациях шаблона, но теперь аватар вернулся для тех пользователей, которые не загрузили аватар.
Может замена не произошла!? в чём может быть причина!?
1723748429707.png
 
oljarose, в списке модификаций рядом с каждой есть информация о применении. Если стиль нестандартный, может потребоваться адаптация модификации под его шаблон.
 
oljarose, в списке модификаций рядом с каждой есть информация о применении. Если стиль нестандартный, может потребоваться адаптация модификации под его шаблон.

Эта информаци!?

1723748946210.png

Число применений 0 - значит не работает!?
 
oljarose, попробуйте этот код поиска. Вероятно, я посмотрел на шаблон для XenForo 2.3.
HTML:
        <div class="message-avatar {{ ($xf.options.showMessageOnlineStatus && $user && $user.isOnline()) ? 'message-avatar--online' : '' }}">
            <div class="message-avatar-wrapper">
                <xf:avatar user="$user" size="m" defaultname="{$fallbackName}" itemprop="image" />
                <xf:if is="$xf.options.showMessageOnlineStatus && $user && $user.isOnline()">
                    <span class="message-avatar-online" tabindex="0" data-xf-init="tooltip" data-trigger="auto" title="{{ phrase('online_now')|for_attr }}"></span>
                </xf:if>
            </div>
        </div>
 
oljarose, попробуйте этот код поиска. Вероятно, я посмотрел на шаблон для XenForo 2.3.
HTML:
        <div class="message-avatar {{ ($xf.options.showMessageOnlineStatus && $user && $user.isOnline()) ? 'message-avatar--online' : '' }}">
            <div class="message-avatar-wrapper">
                <xf:avatar user="$user" size="m" defaultname="{$fallbackName}" itemprop="image" />
                <xf:if is="$xf.options.showMessageOnlineStatus && $user && $user.isOnline()">
                    <span class="message-avatar-online" tabindex="0" data-xf-init="tooltip" data-trigger="auto" title="{{ phrase('online_now')|for_attr }}"></span>
                </xf:if>
            </div>
        </div>

😬 Поменяла на этот код, но ничего не изменилось. Аватау тех пользователей всё ещё есть.
Информация о модификации показывает то же самое

1723750088875.png
1723750115601.png
 
Сделаем проще. Измените тип поиска на «Регулярное выражение» и замените код поиска.
HTML:
/<div class="message-avatar .+(?=\s+<div class="message-userDetails)/Uism
Если не сработает — покажите ваш шаблон.
 
Сделаем проще. Измените тип поиска на «Регулярное выражение» и замените код поиска.
HTML:
/<div class="message-avatar .+(?=\s+<div class="message-userDetails)/Uism
Если не сработает — покажите ваш шаблон.

🙇‍♀️ Этот последний код сработал!!!
1723761610191.png

Но есть ещё один последний вопрос по этой теме у меня 😇 помогите, пожалуйста.
А как поставить статус онлайн перед ником на одну строчку!?
 
Найти:
HTML:
/(\t+<div class="message-avatar .+(?=\s+<div class="message-userDetails))(.*<h4 class="message-name">)(.*<\/h4>)/Uism
Заменить:
Код:
        <xf:if is="$user.avatar_date">
$1
        </xf:if>
$2
                <xf:if is="!$user.avatar_date && $xf.options.showMessageOnlineStatus && $user && $user.isOnline()">
                    <span class="c-message-online" tabindex="0" data-xf-init="tooltip" data-trigger="auto" title="{{ phrase('online_now')|for_attr }}"></span>
                </xf:if>
                $3
В extra.less:
Less:
.c-message-online
{  
    &:before
    {
        .m-faBase();
        .m-faContent(@fa-var-user-circle, .969em);
        line-height: 1;
        font-weight: bold;
        color: rgb(127, 185, 0);
        background: @xf-messageUserBlock--background-color;
        border: @xf-messageUserBlock--background-color solid 2px;
        border-radius: 50%;
    }
}
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу