Добавлен с согласия автора.

Скрипт hvScriptSet
version 1.0.12

Скрипт для изменения профиля юзера в рамках одного сообщения.

Что может:
► Заменить ник юзера, статус, аватар, подпись в рамках одного сообщения (маска профиля). Всё вместе или по отдельности – выбирает сам юзер в рамках заданных администратором форума настроек.
► Администратор может позволить юзерам изменять дополнительные поля профиля (личное звание) и настроить способ вставки: html, bb-коды или простой текст.
► Администратор может создать один или несколько шаблонов для предзаполнения поля.
► Хранить до шести последних использованных масок профиля для каждого профиля. Маски хранятся в хранилище форума и доступны из любого браузера.
► Имеет удобное диалоговое окно для редактирования и предпросмотра маски профиля.
► Администратор сам выбирает, в каких разделах его форума и каким группам юзеров можно использовать скрипт.
► Кроме "полной" маски (разрешено менять все поля) существует "частичная", в которой можно изменять только аватар. Рамки её использования определяются администратором.
► Использует свой собственный набор bb-тегов (а также поддерживает создание собственных для дополнительных полей), но кроме того работает и с общеупотребительными [AVA], [STA] и [SGN].

Как поставить?
1. Настроить скрипт для своего форума. Выбирайте, в каких разделах, кому и что можно. Группы Администраторов и Модераторов можно не указывать: им по умолчанию доступна полная маска везде.
2. Здесь же можно добавить возможность менять дополнительные поля профиля.
3. В нижней части страницы настроек сгенерируйте код скрипта.
4. Вставьте полученный код в поле html-низ в разделе форума "Администрирование » Настройки".
5. Проверьте работу скрипта с аккаунта пользователя. Это важно: администраторам и модераторам по умолчанию доступна полная маска везде, без ограничений в настройках.

Как использовать?
1. Над формой ответа найти кнопку вызова диалога маски.
https://i.gyazo.com/054aa9601bb7157bfc563ea65847a729.png
2. В открывшемся диалоговом окне следуйте подсказкам. Предпросмотр маски обновляется автоматически при потере фокуса на полях профиля.
http://i.imgur.com/f9S7SHD.png
3. В правой части диалога отображаются использованные ранее маски. Их можно использовать ещё раз, нажав на миниатюру аватарки,  или удалить из этого списка. Удаление необратимо.

Если что-то не получается?
Скрипт поддерживается пользователем Человек-Шаман на Едином форуме техподдержки mybb (http://forum.mybb.ru/) или через почту homoveneficus@gmail.com

FAQ по использованию

А если у меня уже установлен другой скрипт смены профиля?
Пока не было обращений, что скрипты друг с другом как-то конфликтуют, но я бы всё равно не советовал ставить их вместе. Теги [AVA], [SGN], [STA] и [NIC] также понимаются этим скриптом, маски со старых постов не слетят.

В скрипте всё страшно и непонятно, всё сплошным текстом, а вдруг там что плохое?
Читаемый код скрипта для разбора доступен по ссылке: http://f.etrin.ru/hvss/hvss-latest.js
Минимизированная версия всего лишь подверглась обработке javascript-minifier для более быстрой загрузки. Можно подключить на форум несжатую версию, ничего особенно не изменится.

FAQ по настройке

Куда вставлять скрипты? Как вставлять скрипты? В каком порядке?
Скрипт и его настройки вставляются в поля html-верх или html-низ в разделе «Администрирование > Настройки» вашего форума: сначала скрипт, потом его настройки. Должно получиться как-то так так:

Код:
<script src="http://f.etrin.ru/hvss/hvss.min.js"></script>
<script>
hvScriptSet.addMask(...);
</script>


• У меня маска вставляет ЛЗ/аватар куда попало в профиле.
Обратите внимание на настройку userFields, она должна в обязательном порядке содержать классы всех видимых полей профиля (а не только тех, которые меняются) в том порядке, в каком они есть. Для удобства пользуйтесь генератором, он не позволит вам ошибиться.

• После изменения прав доступа к форумам всё перестало работать.
Внимательно проверьте, чтобы в названиях форумов и групп были правильно расставлены запятые, а одинарные кавычки в названиях были заменены на \' — это важно для работы скрипта.
Воспользуйтесь генератором, он аккуратно расставит всё за вас.

• Я заметил ошибку!
Автор скрипта доступен для фидбека по электронному адресу homoveneficus@gmail.com.

FAQ по стилизации CSS

• Хочу поставить другой фон для диалога маски.
Стили диалога маски можно прописывать в настройках стиля форума: «Администрирование > Свой стиль».

Например, для задания заднего фона окошку нужно прописать в "своём стиле" в любом из полей:

Код:
#mask_dialog .inner {
    background: url('ваша картинка фона');
}


• Игрок поставил большую картинку как аватар, и профиль разнесло =(
Чтобы такого не случалось, пропишите в «Администрирование > Свой стиль» в конце любого из полей следующее:

Код:
.pa-avatar img {
    max-width: 180px;
    max-height: 180px;
}


180px можно заменить на свои значения, в пикселах, за границы которых не позволено выходить аватарам.

• Расширенное описание настроек по порядку:

Настройка

Значение по умолчанию

Описание

buttonImage

http://i.imgur.com/ONu0llO.png

Картинка bb-кнопки замены (вместо дефолтной можно ставить свою: просто замените ссылку на картинку)

showPreview

true

Подключает (оставьте true) и отключает (замените на false) превью при создании маски.

defaultAvatar

http://i.imgur.com/bQuC3S1.png

Добавляет картинку, которая будет видна при заполнении маски в превью, если у игрока нет своей аватарки, а временную он по какой-то причине не подгрузил.

guestAccess

Сюда нужно вводить в виде  ["Название форума 1", "Название форума 2"] названия форумов, в которых будут продолжать отображаться маски удаленных профилей.
Полезно для игровых архивов.
Гости пользоваться масками не могут.

forumAccess

Открывает группам пользователей частичный доступ к скрипту – дает менять только аватар. Если удалить это значение, то делать это смогут все игроки во всех форумах без ограничений.

Чтобы разрешить смену аватаров в отдельных форумах только некоторым группам, вводите их названия в виде ‘Название форума’: ['Название группы 1', 'Название группы 2'].
Чтобы запретить частичную маску везде, пропишите в названии форума несуществующее у вас название.
В полной маске аватару менять всё ещё будет можно.
ВАЖНО! Если в названиях групп или форума есть апостроф, поставьте перед ним обратный слэш: '
Это важно для работы скрипта.

forumAccessExtended

Открывает группам пользователей доступ к использованию полной маски. Если удалить это значение, то никто, кроме администратора и модераторов, не сможет использовать весь функционал маски.

Чтобы открыть полный доступ к маске, вводите названия групп в виде ‘Название форума’: ['Название группы 1', 'Название группы 2'].
ВАЖНО! Если в названиях групп или форума есть апостроф, поставьте перед ним обратный слэш: '
Это важно для работы скрипта.

changeList

Позволят добавлять собственные поля для заполнения маски. Например, поля личных званий.

Составляющие настройки с пояснением:

'info': { — название для работы скрипта: произвольное, пишется латиницей и слитно
            title: 'Личное звание', — или любое другое понятное игрокам название нового поля.
            description: 'Принимает HTML', — описание и пояснение к новому полю, которое даст понять при заполнении маски, что это за поле и как его заполнять.
            tag: 'info', — тег, который будет использоваться для вставки изменений, [info]изменение[/info], вместо 'info' можно использовать любое латинское слово или сочетание символов без пробелов, кроме уже существующих bb-тегов.
            class: 'pa-fld1', — класс поля в профиле, который вы планируете заменить.
            defaultCode: [ //факультативное поле сюда можно по аналогии вводить шаблоны ЛЗ. Они отобразятся выпадающим меню около поля и при выборе предзаполнят поле нужными тегами / bb-кодами
                {
                    name: 'Первый шаблон',
                    template: '<div>Код первого шаблона</div>'
                },
                {
                    name: 'Второй шаблон',
                    template: '<div>Код второго шаблона</div>'
                }
            ],
            type: 'bbcode' — параметр, который позволяет использовать html- и bb-теги. Можно вместо 'bbcode' использовать 'html' или 'text' – тогда скрипт будет вставлять вставлять значение поля как html или как простой текст.
        }
ВАЖНО! Если в если в любом из полей встречается апостроф, поставьте перед ним обратный слэш: '
Это важно для работы скрипта.

userFields

['pa-author', 'pa-title', 'pa-avatar', 'pa-fld1','pa-reg','pa-posts','pa-respect', 'pa-positive', 'pa-awards', 'pa-gifts']

Классы полей профиля – обязательно в том порядке, в котором они отображаются в профиле. Тогда скрипт будет работать, даже если требуемого поля в профиле нет (удален аватар, нет ЛЗ, а у вас нестандартный порядок полей профиля).

Указывать нужно обязательно все отображаемые (даже неизменяемые) поля, по порядку, в кавычках, через запятую.