MemberSetting
Reference for the MemberSetting module: register the per-member settings a module offers, grouped into named categories, then read and write each member's values. Setting values are immutable, so every change writes a new record and the latest record for a setting wins.
This page is a pure reference. For how the framework fits together, see the Guide.
MemberSettingConfig- register the settings and category titles a module offers.MemberSettingData- immutable data for one member's setting value.MemberSettingDatabase- read and create a member's stored setting values.MemberSettingFormUi- render a settings form for a category of settings.
MemberSettingConfig
Register the settings a module offers, grouped by category, along with category titles for display. Registrations are held in the static properties below and read back through the getter functions.
Properties
| Property | Type | Description |
|---|---|---|
MemberSettingConfig::$settings | array | The registered setting objects. |
MemberSettingConfig::$categoryTitles | array | The registered category titles, keyed by module and category. |
AddBoolean
MemberSettingConfig::AddBoolean(string $moduleIdentifier, string $categoryIdentifier, string $settingIdentifier, bool $defaultValue, string $label = ''): void
Register a setting of type bool. The default is stored as '1' or '0'.
| Name | Type | Description |
|---|---|---|
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
$settingIdentifier | string | Setting identifier. |
$defaultValue | bool | Default value for the setting. |
$label | string | Human-readable label; defaults to the setting identifier. |
Returns void
AddCategoryTitle
MemberSettingConfig::AddCategoryTitle(string $moduleIdentifier, string $categoryIdentifier, string $title): void
Register a category title for display in the UI.
| Name | Type | Description |
|---|---|---|
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
$title | string | Human-readable title for the category. |
Returns void
AddInteger
MemberSettingConfig::AddInteger(string $moduleIdentifier, string $categoryIdentifier, string $settingIdentifier, int $defaultValue, string $label = ''): void
Register a setting of type integer. The default is stored as its string form.
| Name | Type | Description |
|---|---|---|
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
$settingIdentifier | string | Setting identifier. |
$defaultValue | int | Default value for the setting. |
$label | string | Human-readable label; defaults to the setting identifier. |
Returns void
AddSetting
MemberSettingConfig::AddSetting(string $moduleIdentifier, string $categoryIdentifier, string $settingIdentifier, string $defaultValue, string $type = 'string', string $label = ''): void
Register a setting that can be configured by modules. The type must be one of 'string', 'bool' or 'integer'.
| Name | Type | Description |
|---|---|---|
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
$settingIdentifier | string | Setting identifier. |
$defaultValue | string | Default value for the setting. |
$type | string | Setting type: 'string', 'bool' or 'integer'. |
$label | string | Human-readable label; defaults to the setting identifier. |
Returns void
AddString
MemberSettingConfig::AddString(string $moduleIdentifier, string $categoryIdentifier, string $settingIdentifier, string $defaultValue, string $label = ''): void
Register a setting of type string.
| Name | Type | Description |
|---|---|---|
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
$settingIdentifier | string | Setting identifier. |
$defaultValue | string | Default value for the setting. |
$label | string | Human-readable label; defaults to the setting identifier. |
Returns void
GetAllSettings
MemberSettingConfig::GetAllSettings(): array
All configured settings, each an object with moduleIdentifier, categoryIdentifier, settingIdentifier, defaultValue, type and label.
Returns array The registered setting objects.
GetCategoryTitle
MemberSettingConfig::GetCategoryTitle(string $moduleIdentifier, string $categoryIdentifier): string
The registered title for a category, or the category identifier when none was registered.
| Name | Type | Description |
|---|---|---|
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
Returns string The category title, or the category identifier when not set.
GetSettingsByCategory
MemberSettingConfig::GetSettingsByCategory(string $moduleIdentifier, string $categoryIdentifier): array
The registered setting objects for one module and category.
| Name | Type | Description |
|---|---|---|
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
Returns array The matching setting objects.
MemberSettingData
Immutable data for one member's setting value. Fields, a constructor, and JSON conversion.
Properties
| Property | Type | Description |
|---|---|---|
$data->id | int | Record id (readonly). |
$data->memberId | int | The member the value belongs to (readonly). |
$data->moduleIdentifier | string | Module identifier (readonly). |
$data->categoryIdentifier | string | Category identifier (readonly). |
$data->settingIdentifier | string | Setting identifier (readonly). |
$data->value | string | The stored setting value (readonly). |
$data->addedTimestamp | CalendarDateTimeData | When the record was written (readonly). |
__construct
new MemberSettingData(int $id = 0, int $memberId = 0, string $moduleIdentifier = '', string $categoryIdentifier = '', string $settingIdentifier = '', string $value = '', CalendarDateTimeData $addedTimestamp = new CalendarDateTimeData())
Create a setting value from its fields.
| Name | Type | Description |
|---|---|---|
$id | int | Record id. |
$memberId | int | The member the value belongs to. |
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
$settingIdentifier | string | Setting identifier. |
$value | string | The stored setting value. |
$addedTimestamp | CalendarDateTimeData | When the record was written. |
Returns MemberSettingData
FromJson
MemberSettingData::FromJson(string $json): MemberSettingData
Build a setting value from its JSON form, as produced by ToJson.
| Name | Type | Description |
|---|---|---|
$json | string | The JSON string. |
Returns MemberSettingData The decoded setting value.
ToJson
$data->ToJson(): string
The setting value as a JSON string, with the timestamp as a Unix timestamp.
Returns string The JSON form.
MemberSettingDatabase
Read a member's stored setting values and create new ones. Records are immutable, so create writes a new record and the reads return the latest record for each setting.
Create
MemberSettingDatabase::Create(int $memberId, string $moduleIdentifier, string $categoryIdentifier, string $settingIdentifier, string $value): void
Create a new setting value for a member. Records are immutable, so each change creates a new record.
| Name | Type | Description |
|---|---|---|
$memberId | int | The member id. |
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
$settingIdentifier | string | Setting identifier. |
$value | string | Setting value. |
Returns void
fromRow
MemberSettingDatabase::fromRow(stdClass $row): MemberSettingData
Map a database row to a MemberSettingData.
| Name | Type | Description |
|---|---|---|
$row | stdClass | The member_setting row. |
Returns MemberSettingData The mapped setting value.
GetByModule
MemberSettingDatabase::GetByModule(int $memberId, string $moduleIdentifier): array
Every latest setting value for a member within one module, across all its categories.
| Name | Type | Description |
|---|---|---|
$memberId | int | The member id. |
$moduleIdentifier | string | Module identifier. |
Returns array A list of MemberSettingData.
GetByModuleAndCategory
MemberSettingDatabase::GetByModuleAndCategory(int $memberId, string $moduleIdentifier, string $categoryIdentifier): array
Every latest setting value for a member within one module and category.
| Name | Type | Description |
|---|---|---|
$memberId | int | The member id. |
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
Returns array A list of MemberSettingData.
GetById
MemberSettingDatabase::GetById(int $id): MemberSettingData
One setting record by its id.
| Name | Type | Description |
|---|---|---|
$id | int | Setting id. |
Returns MemberSettingData The setting value.
GetOptionalBySetting
MemberSettingDatabase::GetOptionalBySetting(int $memberId, string $moduleIdentifier, string $categoryIdentifier, string $settingIdentifier): MemberSettingData|null
The latest setting value for a member by full setting details, or null when none exists.
| Name | Type | Description |
|---|---|---|
$memberId | int | The member id. |
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
$settingIdentifier | string | Setting identifier. |
Returns MemberSettingData|null The setting value, or null.
MemberSettingFormUi
Render a settings form for the logged-in member. Displays the settings of one category as form fields and saves the submitted values.
Category
MemberSettingFormUi::Category(string $moduleIdentifier, string $categoryIdentifier, string $title = '', string $description = '', string $successUrl = '', string $successMessage = 'Settings saved successfully'): void
Display an action form for a category of settings for the logged-in member, and save the submitted values as new records.
| Name | Type | Description |
|---|---|---|
$moduleIdentifier | string | Module identifier. |
$categoryIdentifier | string | Category identifier. |
$title | string | Form title; defaults to the category title from config. |
$description | string | Optional description text. |
$successUrl | string | URL to redirect to after a successful save. |
$successMessage | string | Success message to display. |
Returns void