Бейджи самообслуживания?

Я пытаюсь добавить в Discourse значки с местоимениями для самообслуживания, но не уверен, какой способ будет лучшим. Похоже, что значки для самообслуживания пока не существуют, поэтому мне, возможно, придется что-то изобрести.

С точки зрения UX лучшей идеей может быть создание специального сообщения, к которому пользователи смогут отвечать, указывая предпочитаемые ими местоимения, а затем SQL-запрос будет находить эти ответы и назначать соответствующий значок.

Есть ли что-то более простое, что я упустил?

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

Что вы имеете в виду под «значком»? В Discourse есть значки, но, думаю, вы не это имели в виду, или, может быть, именно это. Если вы действительно имеете в виду значки, то вы можете включить SQL для значков и настроить их автоматическое присвоение, когда кто-то заполнит поле с местоимениями в своём профиле.

Ах, пользовательское поле для местоимений в профиле — хорошее начало. Проблема в том, что я обычно не захожу в профиль человека перед тем, как ответить ему.

Я думал сделать это в виде бейджа, чтобы это было более заметно… Есть опция «Разрешить использовать бейдж в качестве заголовка»… Я полагаю, это означает, что его можно отображать рядом с именем пользователя, но, возможно, нет?

Вы можете настроить отображение поля с местоимениями на их карточке, что гораздо удобнее, чем переходить прямо в профиль.

Приложив некоторые усилия, вы можете заставить компонент темы отображать их поле с местоимениями… где-нибудь.

Хм, да, я попробовал на карточке, выглядит неплохо. Я думал разместить это после основной группы пользователя, но беспокоюсь, что строка получится слишком перегруженной. К тому же мне не очень хочется править тему.

Это и есть моя главная озабоченность. Действительно ли все ваши пользователи хотят кричать о своих местоимениях в каждом. отдельном. сообщении? И создание групп сопряжено со своими собственными проблемами, так как вы неизбежно ограничите набор местоимений, которые люди могут использовать. Решение с помощью CSS могло бы добавить значение из пользовательского поля после имени и/или основной группы. Я тоже не в восторге от работы с CSS, но, думаю, кто-то здесь сможет подсказать, как это сделать. В худшем случае это обойдется в несколько сотен долларов, как мне кажется.

В этой теме показано, как добавить пользовательское поле пользователя после имени автора поста: Ability to place custom fields in post header?

Ха. Я был прав, и им даже не пришлось спрашивать! :wink:

Спасибо!!! :slight_smile:

Мне нужно создать плагин, чтобы добавить этот скрипт?

Нет, просто создайте компонент темы, добавьте этот код (с учётом вашей пользовательской переменной) и включите его в секцию <head> компонента темы. Затем добавьте этот компонент темы к используемой вами теме (или темам).

Для тех, кто, как и я, не знал, как создать компонент темы, это можно сделать прямо на вашем сайте: перейдите в раздел «Темы» в настройках, откройте вкладку «Компоненты», нажмите «Установить», а затем «Создать». Готово.

(Нажатие на «Установить» для создания нового компонента показалось странным, но я разобрался).

Ладно, ну, есть какой-то трюк, чтобы заставить это… работать? При нажатии на preview всё выглядит правильно, но на сайте в целом это не применяется. Не понимаю, в чём разница? Я создал это, и система пишет, что включено. В исходном коде обеих страниц я не вижу самого скрипта, но полагаю, это какая-то магия HTML/JavaScript.

Убедитесь, что вы добавили компонент в тему вашего сайта. Подробнее об этом здесь: Installing a theme or theme component. Также рекомендую ознакомиться с этим материалом: Developing Discourse Themes & Theme Components.

Всё получилось. Спасибо, я не понимал, что нужно добавить это и в тему, но это логично.

Взяв пример с социальных сетей, почему бы просто не добавить предпочитаемые местоимения в верхней части вашего профиля?