Posted Вторник в 03:415 дн Приветствую обитателей и посетителей IPBMafia!Перед началом сообщу, что, оформляя эту тему, я принял окончательное решение никогда не переезжать на пятую версию ввиду абсолютной неудобности и утери разработчиками одного из наилучших качеств, а именно - интуитивно понятный интерфейс.Итак-с, приступим.Нижеописанные улучшения предназначены для тех, кто хочет каким-либо образом придать индивидуальности своим пользователям, однако, стоит предупредить, что чрезмерное использование может превратить ваш форум в "ёлку", мигающая совершенно разными цветами, и каждая лампочка мигает разным темпом, что может вызвать астенопию (шутка).Что вообще представляет из себя украшение аватарки:Мы рассмотрим три вариации вывода украшений:По ID пользователя;По ID группы;По дополнительному полю профиля.Начнём по порядку.ID пользователяПереходим по следующему пути: АЦ -> Темы -> Редактировать HTML и CSS -> userPhoto/ProfileHeader.В userPhoto и ProfileHeader, в контейнере с аватаркой, нужно применить следующий код:{{if $member->member_id == ID}}<img src="/uploads/images/image.png" alt="CharonSix" loading="lazy" style="position: absolute; left: 40%; z-index: 1; width: 75%; height: 60%; top: 55%; pointer-events: none;">{{endif}}Для новичков - разбираем:{{if $member->member_id == ID}} - условие со значением, при соответствии которому выводится код на следующей строке.ID - ID пользователя, например - 2.<img src="/uploads/images/image.png" alt="CharonSix" loading="lazy" style="position: absolute; left: 40%; z-index: 1; width: 75%; height: 60%; top: 55%; pointer-events: none;">Оранжевый - путь до файла, выводящийся при соответствии вышеупомянутому условию со значением.Жёлтый - описание выводимого файла.Зелёный - позволяет использовать "ленивую" загрузку, рекомендуется использовать, если рассчитываете на многочисленный вывод украшений.Синий - стиль выводимого файла. Настроить можете по своему вкусу. Для достижения желанного эффекта, используйте pointer-events.ID группыПереходим по следующему пути: АЦ -> Темы -> Редактировать HTML и CSS -> userPhoto/ProfileHeader.В userPhoto и ProfileHeader, в контейнере с аватаркой, нужно применить следующий код:{{if $member->member_group_id == ID}}<img src="/uploads/images/image.png" alt="CharonSix" loading="lazy" style="position: absolute; left: 40%; z-index: 1; width: 75%; height: 60%; top: 55%; pointer-events: none;">{{endif}}Краткий разбор:{{if $member->member_group_id == ID}} - на этот раз, указывается ID группы.Дополнительные поля профиляДанный пункт состоит из нескольких этапов. Разбираем.Первый этап: Переходим в АЦ -> Пользователи -> Профили -> Добавить поле профиля.В "Тип поля" важно выбрать либо Набор чекбоксов (не рекомендую), либо Радиокнопку, так как код "заточен" конкретно под них.Далее, в "Опции", добавляем одну, две или более пунктов, именуя их как душе угодно. Обязательно указываем пункты "Показывать всем", иначе украшения выводиться не будут.Сделали. Сохранили. Отлично. Двигаемся далее.Второй этап: Переходим по следующему пути: АЦ -> Темы -> Редактировать HTML и CSS -> userPhoto/ProfileHeader.В userPhoto и ProfileHeader, в контейнере с аватаркой, нужно применить следующий код:{{$param = \IPS\Member::load( $member->member_id );}}{{foreach $param->contentProfileFields() as $group => $fields}}{{foreach $fields as $field => $value}}{{if $field =='core_pfield_10' }}{{ $pos = strripos($value, 'Листья осени'); }}{{if $pos !== false }} <img src="/uploads/images/image.png" alt="CharonSix" loading="lazy" style="position: absolute; left: 40%; z-index: 1; width: 75%; height: 60%; top: 55%; pointer-events: none;">{{endif}}{{endif}}{{endforeach}}{{endforeach}}Краткий разбор:{$param = \IPS\Member::load( $member->member_id );}}{{foreach $param->contentProfileFields() as $group => $fields}}{{foreach $fields as $field => $value}}{{if $field =='core_pfield_10' }}{{ $pos = strripos($value, 'Листья осени'); }}{{if $pos !== false }} <img src="/uploads/images/image.png" alt="CharonSix" loading="lazy" style="position: absolute; left: 40%; z-index: 1; width: 75%; height: 60%; top: 55%; pointer-events: none;">{{endif}}{{endif}}{{endforeach}}{{endforeach}}Индиго - ID дополнительного поля профиля.Фиолетовый - наименование одной из строк, ранее указанных в "Опции" при создании дополнительного поля.Если имеется желание, можете оптимизировать/переписать код под себя. Мне без разницы.Аналогичным методом, вы можете вывести украшения профиля в hoverCard и profile, что используются в том же Discord.Обратите внимание, что файлы формата GIF, будут отображать чёрный бэкграунд на пустых участках изображения, поэтому наиболее подходящими являются PNG и SVG.Вот и вся инструкция. Надеюсь, кому-нибудь пригодится. Желаю удачи. Edited Вторник в 03:425 дн by CharonSix fix.
Вторник в 09:375 дн Не надо плодить лишние переменные, особенно в шаблонах.{{$param = \IPS\Member::load( $member->member_id );}}{{foreach $param->contentProfileFields() as $group => $fields}}Заменяется на{{foreach \IPS\Member::load( $member->member_id )->contentProfileFields() as $group => $fields}}а это{{ $pos = \strripos($value, 'Листья осени'); }}{{if $pos !== false }}на{{ if \strripos($value, 'Листья осени'); }}и не надо забывать обратный слеш перед функциями Edited Вторник в 09:385 дн by Desti
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.