Практически нет документации по этому вопросу, а в файле API плагина отсутствует комментарий, объясняющий назначение этой функции. Кроме того, я вижу, что она используется только в плагинах, а не в ядре. Так что же именно делает api.addSaveableUserOptionField()? Требуется ли дополнительная конфигурация для её использования?
Не знаю, но вот что, по-моему, я выяснил.
Но сначала — мой вопрос: почему это для вас важно? Есть ли что-то, что вы пытаетесь сделать? Возможно, если вы пытаетесь создать плагин с пользовательскими настройками, то вот как это делается. В ядре это не используется, так как это хук, предназначенный специально для плагинов, чтобы они могли иметь свои собственные пользовательские настройки.
Похоже, это используется в плагине Chat, например здесь:
Похоже, что если ваш плагин имеет пользовательские настройки, то вы используете это, чтобы указать, что это пользовательская настройка, с помощью UserUpdater.
Да, я планирую добавить настройку пользователя в плагин. Ранее я видел, что Chat и, если не ошибаюсь, AI использовали эту функцию для добавления настроек пользователя, поэтому я хотел узнать, есть ли документированный способ сделать это.
Возвращаясь к этому вопросу, похоже, что появилась дополнительная информация.
Теперь здесь перечислены три функции: addSaveableUserField(), addSaveableUserOption() и addSaveableCustomFields().
Похоже, что первая из них относится к добавлению и сохранению пользовательских полей профиля, определённых администратором. Однако две следующие не столь очевидны. Требуется ли для них плагин, чтобы использовать register_custom_user_field :... на стороне бэкенда? Нужно ли сделать что-то ещё, или это может работать в TC?
Спасибо.
Похоже, это работает как для пользовательских полей, добавленных через интерфейс, так и через плагин. Для пользовательских полей, я почти уверен, имена выглядят как user_field_1. Вы можете проверить это в таблице с помощью Data Explorer, например. Или, возможно, речь идет только о полях, добавленных через интерфейс («поля профиля, определенные администратором»), в этом случае вы будете использовать имя, которое вы задали при создании. Я бы просто попробовал оба варианта.
И GitHub сейчас недоступен, поэтому я не могу посмотреть код там.