1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Аватары в цитатах

Тема в разделе "Модификации шаблонов", создана пользователем CyberAP, 05.12.2011.

Загрузка
  1. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Эта модификация шаблонов добавит аватар автора цитаты в сообщения на форуме.

    Выглядит это вот так:
    example.PNG

    Шаг первый:
    Откройте шаблон bb_code_tag_quote и замените всё содержимое на:
    Код:
    <xen:require css="bb_code.css" />
     
    <xen:if is="{$attributes.member}">
    <div class="quote_with_avatar">
    </xen:if>
     
    <xen:if is="{$attributes.member}">
        <xen:set var="$avaUser.user_id">{$attributes.member}</xen:set>
        <xen:set var="$avaUser.username">{$nameHtml}</xen:set>
        <xen:set var="$avaUser.avatar_date">1</xen:set>
     
        <xen:avatar user="$avaUser" size="s" class="QuoteAvatar" />
    </xen:if>
     
    <xen:comment><!-- content is escaped via parser --></xen:comment>
    <div class="bbCodeBlock bbCodeQuote{xen:if $ignored, ' ignored'}"{xen:if $nameHtml, ' data-author="{$nameHtml}"'}>
        <aside>
            <xen:if is="{$nameHtml}">
                <div class="attribution type">{xen:phrase x_said, 'name={xen:raw $nameHtml}'}:
                    <xen:if is="{$source}">
                        <a href="{xen:link 'goto/{$source.type}', '', 'id={$source.id}'}#{$source.type}-{$source.id}" class="AttributionLink">&uarr;</a>
                    </xen:if>
                </div>
            </xen:if>
            <blockquote>{xen:raw $content}</blockquote>
        </aside>
        <span class="arrow"></span>
    </div>
     
    <xen:if is="{$attributes.member}">
    </div>
    </xen:if>
    Шаг второй:
    Откройте шаблон extra.css и вставьте туда следующий код:
    Код:
    html body .pageContent .messageText .quote_with_avatar
    {
        margin-top: 10px;
        {xen:if '@bbCodeBlock.margin-right', 'margin-right: @bbCodeBlock.margin-right;', 'margin-right: 40px;'}
        overflow: hidden;
    }
     
    body .messageText .quote_with_avatar .QuoteAvatar
    {
        border: none;
        float: left;
        margin-left: 10px;
        margin-right: 0;
        margin-bottom: 10px;
        padding: 0;
        box-shadow: 0 2px 3px rgba(0,0,0,0.15);
        box-shadow: 0 1px 2px rgba(0,0,0,0.1);
    }
    body .messageText .quote_with_avatar .QuoteAvatar:active
    {
        position: relative;
        top: 1px;
        box-shadow: none;
    }
     
    .messageText .quote_with_avatar .QuoteAvatar .img.s
    {
        background-color: #eee;
        background-position: 0% 0%;
        background-size: 60px;
        border: none;
        padding: 0;
        width: 60px;
        height: 60px;
        box-shadow: inset 0 0 0 1px rgba(0,0,0,0.1);
    }
     
    .messageText .quote_with_avatar .QuoteAvatar:active .img.s
    {
        box-shadow: inset 0 0 0 1px rgba(0,0,0,0.04), inset 0 2px 4px rgba(0,0,0,0.4);
    }
     
    body .messageText .quote_with_avatar .bbCodeQuote
    {
        margin: 0;
        margin-left: 85px;
        position: relative;
        box-shadow: 0 1px 2px rgba(0,0,0,0.1);
    }
     
    .messageText .quote_with_avatar .bbCodeQuote .arrow
    {
        border-radius: 0;
        height: 20px;
        width: 10px;
        position: absolute;
        left: -11px;
        top: 2px;
        overflow: hidden;
    }
    .messageText .quote_with_avatar .bbCodeQuote .arrow:after
    {
        content: " ";
        background: @bbCodeQuote.border-color;
        height: 9px;
        width: 9px;
        top: 5px;
        left: 5px;
        position: absolute;
        box-shadow: 1px 1px 2px rgba(0,0,0,0.1);
        transform: rotate(45deg);
        -o-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -webkit-transform: rotate(45deg);
    }
    У данной модификации есть 2 минуса:
    1. Она не поддерживает gravatar. Вместо аватара будет показан сплошной цвет. Это значит что отображаться будут только аватары которые залиты на форум.
    2. Отображается всегда текущая аватарка, загруженная автором.
    Реализовать данную модификацию помогли:
    infis и Pepelac, за что им огромное спасибо!
     
    Z7ian, lik20041986, maxon и 11 другим нравится это.
  2. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Можно конечно чтобы аватарки последние + граватары отображались - но медленно это все будет ... :(
     
  3. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Я написал разработчикам с просьбой добавить необходимые переменные в этот шаблон. Жду ответа.
     
  4. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    В ксене хорошо используются индексы. Поэтому сам поиск врядли будет долгим. Напрягает то, что потребуется создавать объект $user для каждой цитаты. Добавление переменных в этот шаблон по этим причинам разработчики не будут приветствовать :)
     
  5. spy

    spy ИнквизитоР

    Регистрация:
    04.03.11
    Сообщения:
    373
    Симпатии:
    191
    В каком смысле:
    ???
     
  6. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    Хм, проверил. Отображается всегда текущая аватарка. Загружал новую без удаления старой аватарки и с удалением - всегда текущая.
     
    CyberAP нравится это.
  7. spy

    spy ИнквизитоР

    Регистрация:
    04.03.11
    Сообщения:
    373
    Симпатии:
    191
    Вот по этому и я спросил, так как аватарка всегда последнея
     
  8. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Пост поправил.
     
  9. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Первый пост обновился. Советую обновить модификацию у себя. Пофикшено несколько серьёзных багов, но с аватарками пока вопрос не решён.
     
  10. Flanker

    Flanker Местный

    Регистрация:
    19.05.11
    Сообщения:
    155
    Симпатии:
    27
    Версия XF:
    1.2.2
    Не работает 1.1.0... Стиль дефолтный
     
  11. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    Ищите проблему на своём форуме. Всё прекрасно работает.
     
    sandis нравится это.
  12. Flanker

    Flanker Местный

    Регистрация:
    19.05.11
    Сообщения:
    155
    Симпатии:
    27
    Версия XF:
    1.2.2
    Огромное спасибо за помощь.

    Разобрался. Оказывается эта фишка работает только для новых сообщений... Даже наверно правильней сказать, эта фишка стала возможной с версии 1.1.0. Потому что в 1.1.0 в цитату добавляется member: %memberid%
    Код:
    [quote="%username%, post: %postid%, member: %memberid%"][/quote]

    А в Firefox'e у всех всё хорошо? У меня аватарка с окошка съезжает влево и вверх на 12 пикселей. В Хроме, Опере не съезжает.
     
  13. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    В FF 8.0 всё хорошо. Такой проблемы не наблюдаю.
     
    Flanker нравится это.
  14. Дмитрий Артёменко

    Дмитрий Артёменко Местный

    Регистрация:
    26.09.11
    Сообщения:
    195
    Симпатии:
    3
    Версия XF:
    1.3.1
    Подскажите, делал все как в первом посту написано, и нет не чего, процитировал (ответил на сообщение) с другого аккаунта. Нет аваторки.
     
  15. Flanker

    Flanker Местный

    Регистрация:
    19.05.11
    Сообщения:
    155
    Симпатии:
    27
    Версия XF:
    1.2.2
    12 пост в этой теме прочитайте. Если версия 1.0.4, то там эта фишка при цитировании не работает.
     
  16. spy

    spy ИнквизитоР

    Регистрация:
    04.03.11
    Сообщения:
    373
    Симпатии:
    191
    Как исправить? вот пример кагда аватарка загружена и когда ее нет тоесть стандартные ксеновские значки пола.

    2.PNG

    1.PNG
     
  17. Aksim

    Aksim Местный

    Регистрация:
    15.09.12
    Сообщения:
    312
    Симпатии:
    89
    Читать что пишет Топикстартер уже не модно?
     
  18. spy

    spy ИнквизитоР

    Регистрация:
    04.03.11
    Сообщения:
    373
    Симпатии:
    191
    а тупить модно?
    еще раз перечитай пост Топикстартера и мой!
     
  19. Aksim

    Aksim Местный

    Регистрация:
    15.09.12
    Сообщения:
    312
    Симпатии:
    89
    Судя по всему тупить и выеживатся модно.
    цитирую еще раз, в принципе об этом и идет вся тема.
    Для любителей потупить разжовываю на пальцах

    стандартные ксеновские значки пола = gravatar

    Еще что то непонятно? или и дальше продолжить тупить ? Пожалуй продолжу, а то очень не тупяшие видимо не понимают.
    Этот хак будет отображать только те аватары, которые загружены пользователем
    не отображались, не отображаются, и врятли будут когда либо отображаться из за возникновения ошутимых нагрузок

    Впринципе, особо не тупящим, перечтение первого топика не поможет, советую перечитать еще пару раз всю тему.
     
  20. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    полный бред. Если не разбираетесь - то не вводите других в заблуждение

    насчет нагрузок тоже бред

    Чтобы расставить все точки над i
    Данный топик посвящен модификации шаблона для добавления аватарки. И это не хак. Поэтому есть свои ограничения.
    ограничения связанные с тем что при отображении цитаты не известен ни пол, ни почта цитируемого, поэтому gravatar, ни аватарку пола отобразить нельзя.
    Но это никак не связано с тем что значек пола равен граватару или что это нельзя сделать, т.к. сильно увеличит нагрузку. Надо просто писать хак и если он будет правильно написан, то нагрузки большой не будет.

    И еще добавлю насчет данной модификации - вместо отображения сплошного цвета можно было бы сделать аватарку по умолчанию при невозможности отобразить граватар:
    добавить
    Код:
    <xen:set var="$avaUser.gender"></xen:set>
    в описание генератора аватара. Аватар пола не подставит, но не будет пустого фона, а будет аватар по умолчанию вопросом

    P.S. Рекомендацию насчет добавления сам не тестировал - просто посмотрел код. Может еще что-то добавить/именить надо. По идее шаблонный генератор аватарок и так должен иконку по умолчанию подставлять, почему не подставляет в данной модификации - могу только гадать, а чтобы сказать точно надо эту модификацию ставить себе и детально разбираться
     
    spy нравится это.

Поделиться этой страницей