Скрипт hvScriptSet
version 1.0.9
Скрипт для изменения профиля юзера в рамках одного сообщения.
Автор: Человек-Шаман
Платформа: MyBB
Аналоги: Смена имиджа в текущем посте (MyBB) [Deff]
Что может:
• Заменить ник юзера, статус, аватар, подпись в рамках одного сообщения (маска профиля). Всё вместе или по отдельности – выбирает сам юзер в рамках заданных администратором форума настроек.
• Администратор может позволить юзерам изменять дополнительные поля профиля (личное звание) в рамках форумных bb-тегов. Тут же можно добавить автовставляемый шаблон для заполнения.
• Хранить до шести последних использованных масок профиля для каждого профиля. Маски хранятся в хранилище форума и доступны из любого браузера.
• Имеет удобное диалоговое окно для редактирования и предпросмотра маски профиля.
• Администратор сам выбирает, в каких разделах его форума и каким группам юзеров можно использовать скрипт.
• Кроме "полной" маски (разрешено менять все поля) существует "частичная", в которой можно изменять только аватар. Рамки её использования определяются администратором.
• Использует свой собственный набор bb-тегов (а также поддерживает создание собственных для дополнительных полей), но кроме того работает и с общеупотребительными [AVA], [STA] и [SGN].Что добавилось (18.03.2017):
• Появился особый css-класс для профилей под маской. Теперь можно выделить их через стили.
• Диалог маски скрывается по нажатию esc.
• Есть возможность удалить из хранилища сразу все маски.
• Кроме текстовых и html кастомных полей появился тип bbcode. Теперь можно ограничить возможность пользователей в редактировании ЛЗ одними bb-кодами. В предпросмотре маски основные bb-теги отображаются корректно.
• По отдельной просьбе выложен исходный неминифицированный и неоптимизированный под ES5 код.
Как поставить?
1. Настроить скрипт для своего форума. Выбирайте, в каких разделах, кому и что можно. Группы Администраторов и Модераторов можно не указывать: им по умолчанию доступна полная маска везде.
2. Здесь же можно добавить возможность менять дополнительные поля профиля.
3. В нижней части страницы настроек сгенерируйте код скрипта.
4. Вставьте полученный код в поле html-низ в разделе форума "Администрирование » Настройки".
5. Проверьте работу скрипта с аккаунта пользователя. Это важно: администраторам и модераторам по умолчанию доступна полная маска везде, без ограничений в настройках.
Как использовать?
1. Над формой ответа найти кнопку вызова диалога маски.
2. В открывшемся диалоговом окне следуйте подсказкам. Предпросмотр маски обновляется автоматически при потере фокуса на полях профиля.
3. В правой части диалога отображаются использованные ранее маски. Их можно использовать ещё раз, нажав на миниатюру аватарки, или удалить из этого списка. Удаление необратимо.
Если что-то не получается?
Скрипт поддерживается пользователем Человек-Шаман на Едином форуме техподдержки mybb (http://forum.mybb.ru/) или через почту homoveneficus@gmail.com
• А если у меня уже установлен другой скрипт смены профиля?
Пока не было обращений, что скрипты друг с другом как-то конфликтуют, но я бы всё равно не советовал ставить их вместе. Теги [AVA], [SGN], [STA] и [NIC] также понимаются этим скриптом, маски со старых постов не слетят.
• В скрипте всё страшно и непонятно, всё сплошным текстом, а вдруг там что плохое?
Читаемый код скрипта для разбора доступен по ссылке: http://f.etrin.ru/hvss/hvss-latest.js
Минимизированная версия всего лишь подверглась обработке javascript-minifier для более быстрой загрузки. Можно подключить на форум несжатую версию, ничего особенно не изменится.
• Куда вставлять скрипты? Как вставлять скрипты? В каком порядке?
Скрипт и его настройки вставляются в поля html-верх или html-низ в разделе «Администрирование > Настройки» вашего форума: сначала скрипт, потом его настройки. Должно получиться как-то так так:Код:<script src="http://f.etrin.ru/hvss/hvss.min.js"></script> <script> hvScriptSet.addMask(...); </script>• У меня маска вставляет ЛЗ/аватар куда попало в профиле.
Обратите внимание на настройку userFields, она должна в обязательном порядке содержать классы всех видимых полей профиля (а не только тех, которые меняются) в том порядке, в каком они есть. Для удобства пользуйтесь генератором, он не позволит вам ошибиться.• После изменения прав доступа к форумам всё перестало работать.
Внимательно проверьте, чтобы в названиях форумов и групп были правильно расставлены запятые, а одинарные кавычки в названиях были заменены на \' — это важно для работы скрипта.
Воспользуйтесь генератором, он аккуратно расставить всё за вас.• Я заметил ошибку!
Автор скрипта доступен для фидбека по электронному адресу homoveneficus@gmail.com.
• Хочу поставить другой фон для диалога маски.
Стили диалога маски можно прописывать в настройках стиля форума: «Администрирование > Свой стиль».
Например, для задания заднего фона окошку нужно прописать в "своём стиле" в любом из полей:Код:#mask_dialog .inner { background: url('ваша картинка фона'); }• Игрок поставил большую картинку как аватар, и профиль разнесло =(
Чтобы такого не случалось, пропишите в «Администрирование > Свой стиль» в конце любого из полей следующее:Код:.pa-avatar img { max-width: 180px; max-height: 180px; }180px можно заменить на свои значения, в пикселах, за границы которых не позволено выходить аватарам.
Настройка
Значение по умолчанию
Описание
buttonImage
Картинка bb-кнопки замены (вместо дефолтной можно ставить свою: просто замените ссылку на картинку)
showPreview
true
Подключает (оставьте true) и отключает (замените на false) превью при создании маски.
defaultAvatar
Добавляет картинку, которая будет видна при заполнении маски в превью, если у игрока нет своей аватарки, а временную он по какой-то причине не подгрузил.
guestAccess
Сюда нужно вводить в виде ["Название форума 1", "Название форума 2"] названия форумов, в которых будут продолжать отображаться маски удаленных профилей.
Полезно для игровых архивов.
Гости пользоваться масками не могут.forumAccess
Открывает группам пользователей частичный доступ к скрипту – дает менять только аватар. Если удалить это значение, то делать это смогут все игроки во всех форумах без ограничений.
Чтобы разрешить смену аватаров в отдельных форумах только некоторым группам, вводите их названия в виде ‘Название форума’: ['Название группы 1', 'Название группы 2'].
Чтобы запретить частичную маску везде, пропишите в названии форума несуществующее у вас название.
В полной маске аватару менять всё ещё будет можно.
ВАЖНО! Если в названиях групп или форума есть апостроф, поставьте перед ним обратный слэш: '
Это важно для работы скрипта.forumAccessExtended
Открывает группам пользователей доступ к использованию полной маски. Если удалить это значение, то никто, кроме администратора и модераторов, не сможет использовать весь функционал маски.
Чтобы открыть полный доступ к маске, вводите названия групп в виде ‘Название форума’: ['Название группы 1', 'Название группы 2'].
ВАЖНО! Если в названиях групп или форума есть апостроф, поставьте перед ним обратный слэш: '
Это важно для работы скрипта.changeList
Позволят добавлять собственные поля для заполнения маски. Например, поля личных званий.
Составляющие настройки с пояснением:
'info': { — название для работы скрипта: произвольное, пишется латиницей и слитно
title: 'Личное звание', — или любое другое понятное игрокам название нового поля.
description: 'Принимает HTML', — описание и пояснение к новому полю, которое даст понять при заполнении маски, что это за поле и как его заполнять.
tag: 'info', — тег, который будет использоваться для вставки изменений, [info]изменение[/info], вместо 'info' можно использовать любое латинское слово или сочетание символов без пробелов, кроме уже существующих bb-тегов.
class: 'pa-fld1', — класс поля в профиле, который вы планируете заменить.
defaultCode: '<b>Имя Фамилия, возраст<sup>y.o.</sup></a></b><br><i>сфера деятельности</i>,' — факультативный пункт, необязательный для заполнения: шаблон личного звания, чтобы облегчить игрокам работу с масками. Вставляется по нажатию на кнопку.
type: 'html' — параметр, который позволяет использовать html- и bb-теги. Можно вместо 'html' использовать 'text' – тогда скрипт не будет воспринимать теги и вставит их как текст.
}
ВАЖНО! Если в если в любом из полей встречается апостроф, поставьте перед ним обратный слэш: '
Это важно для работы скрипта.userFields
['pa-author', 'pa-title', 'pa-avatar', 'pa-fld1','pa-reg','pa-posts','pa-respect', 'pa-positive', 'pa-awards', 'pa-gifts']
Классы полей профиля – обязательно в том порядке, в котором они отображаются в профиле. Тогда скрипт будет работать, даже если требуемого поля в профиле нет (удален аватар, нет ЛЗ, а у вас нестандартный порядок полей профиля).
Указывать нужно обязательно все отображаемые (даже неизменяемые) поля, по порядку, в кавычках, через запятую.
- Подпись автора
Герду как-то спросили:
— Вот вы писали, что "Среди разработчиков - я разработчица, среди дизайнеров - я веб-дизайнер." А кто вы среди ролевиков?
Герда не растерялась и ответила:
— Иди на**й.