SettingDefinitions
in package
FinalYes
Application setting definitions.
Provides default values and validation rules for all application settings.
Tags
Table of Contents
Constants
- SCOPE_ADMIN = 'admin'
- Setting scope: admin-only (server-wide).
- SCOPE_USER = 'user'
- Setting scope: user preference (per-user in multi-user mode).
- DEFINITIONS = [ // User preferences: reading 'set-words-to-do-buttons' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER], 'set-tooltip-mode' => ["dft" => '2', "num" => 0, "scope" => self::SCOPE_USER], 'set-display-text-frame-term-translation' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER], 'set-text-frame-annotation-position' => ["dft" => '2', "num" => 0, "scope" => self::SCOPE_USER], 'set-text-visit-statuses-via-key' => ["dft" => '', "num" => 0, "scope" => self::SCOPE_USER], 'set-show-text-word-counts' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER], // User preferences: review 'set-test-main-frame-waiting-time' => ["dft" => '0', "num" => 1, "min" => 0, "max" => 9999, "scope" => self::SCOPE_USER], 'set-test-edit-frame-waiting-time' => ["dft" => '500', "num" => 1, "min" => 0, "max" => 99999999, "scope" => self::SCOPE_USER], 'set-test-sentence-count' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER], 'set-term-sentence-count' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER], 'set-similar-terms-count' => ["dft" => '0', "num" => 1, "min" => 0, "max" => 9, "scope" => self::SCOPE_USER], 'set-term-translation-delimiters' => ["dft" => '/;|', "num" => 0, "scope" => self::SCOPE_USER], // User preferences: TTS 'set-tts' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER], 'set-hts' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER], // User preferences: pagination 'set-archived_texts-per-page' => ["dft" => '100', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER], 'set-texts-per-page' => ["dft" => '10', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER], 'set-terms-per-page' => ["dft" => '100', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER], 'set-tags-per-page' => ["dft" => '100', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER], 'set-articles-per-page' => ["dft" => '10', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER], 'set-feeds-per-page' => ["dft" => '50', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER], 'set-ggl-translation-per-page' => ["dft" => '100', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER], 'set-regex-mode' => ["dft" => '', "num" => 0, "scope" => self::SCOPE_USER], // User preferences: reading layout 'set-reader-width' => ["dft" => '100', "num" => 1, "min" => 40, "max" => 100, "scope" => self::SCOPE_USER], 'set-reader-text-size' => ["dft" => '0', "num" => 1, "min" => 0, "max" => 300, "scope" => self::SCOPE_USER], // User preferences: appearance 'set-theme-dir' => ["dft" => 'themes/default/', "num" => 0, "scope" => self::SCOPE_USER], // Admin settings: feed limits 'set-max-articles-with-text' => ["dft" => '100', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_ADMIN], 'set-max-articles-without-text' => ["dft" => '250', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_ADMIN], 'set-max-texts-per-feed' => ["dft" => '20', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_ADMIN], // Admin settings: multi-user 'set-allow-registration' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_ADMIN], ]
- Setting definitions with defaults, validation rules, and scope.
Methods
- get() : array{dft: string, num: int, min?: int, max?: int, scope: string}|null
- Get a specific setting definition.
- getAdminKeys() : array<string|int, string>
- Get all admin-scoped setting keys.
- getAll() : array<string, array{dft: string, num: int, min?: int, max?: int, scope: string}>
- Get all setting definitions.
- getDefault() : string|null
- Get the default value for a setting.
- getKeys() : array<string|int, string>
- Get all setting keys.
- getScope() : string
- Get the scope of a setting.
- getUserKeys() : array<string|int, string>
- Get all user-scoped setting keys.
- has() : bool
- Check if a setting is defined.
Constants
SCOPE_ADMIN
Setting scope: admin-only (server-wide).
public
mixed
SCOPE_ADMIN
= 'admin'
SCOPE_USER
Setting scope: user preference (per-user in multi-user mode).
public
mixed
SCOPE_USER
= 'user'
DEFINITIONS
Setting definitions with defaults, validation rules, and scope.
private
array<string, array{dft: string, num: int, min?: int, max?: int, scope: string}>
DEFINITIONS
= [
// User preferences: reading
'set-words-to-do-buttons' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER],
'set-tooltip-mode' => ["dft" => '2', "num" => 0, "scope" => self::SCOPE_USER],
'set-display-text-frame-term-translation' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER],
'set-text-frame-annotation-position' => ["dft" => '2', "num" => 0, "scope" => self::SCOPE_USER],
'set-text-visit-statuses-via-key' => ["dft" => '', "num" => 0, "scope" => self::SCOPE_USER],
'set-show-text-word-counts' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER],
// User preferences: review
'set-test-main-frame-waiting-time' => ["dft" => '0', "num" => 1, "min" => 0, "max" => 9999, "scope" => self::SCOPE_USER],
'set-test-edit-frame-waiting-time' => ["dft" => '500', "num" => 1, "min" => 0, "max" => 99999999, "scope" => self::SCOPE_USER],
'set-test-sentence-count' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER],
'set-term-sentence-count' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER],
'set-similar-terms-count' => ["dft" => '0', "num" => 1, "min" => 0, "max" => 9, "scope" => self::SCOPE_USER],
'set-term-translation-delimiters' => ["dft" => '/;|', "num" => 0, "scope" => self::SCOPE_USER],
// User preferences: TTS
'set-tts' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER],
'set-hts' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_USER],
// User preferences: pagination
'set-archived_texts-per-page' => ["dft" => '100', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER],
'set-texts-per-page' => ["dft" => '10', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER],
'set-terms-per-page' => ["dft" => '100', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER],
'set-tags-per-page' => ["dft" => '100', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER],
'set-articles-per-page' => ["dft" => '10', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER],
'set-feeds-per-page' => ["dft" => '50', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER],
'set-ggl-translation-per-page' => ["dft" => '100', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_USER],
'set-regex-mode' => ["dft" => '', "num" => 0, "scope" => self::SCOPE_USER],
// User preferences: reading layout
'set-reader-width' => ["dft" => '100', "num" => 1, "min" => 40, "max" => 100, "scope" => self::SCOPE_USER],
'set-reader-text-size' => ["dft" => '0', "num" => 1, "min" => 0, "max" => 300, "scope" => self::SCOPE_USER],
// User preferences: appearance
'set-theme-dir' => ["dft" => 'themes/default/', "num" => 0, "scope" => self::SCOPE_USER],
// Admin settings: feed limits
'set-max-articles-with-text' => ["dft" => '100', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_ADMIN],
'set-max-articles-without-text' => ["dft" => '250', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_ADMIN],
'set-max-texts-per-feed' => ["dft" => '20', "num" => 1, "min" => 1, "max" => 9999, "scope" => self::SCOPE_ADMIN],
// Admin settings: multi-user
'set-allow-registration' => ["dft" => '1', "num" => 0, "scope" => self::SCOPE_ADMIN],
]
Each setting has:
- dft: Default value (string)
- num: Whether it's numeric (0 = no, 1 = yes)
- min: Minimum value (for numeric settings)
- max: Maximum value (for numeric settings)
- scope: 'admin' or 'user' (defaults to 'user' if not set)
Methods
get()
Get a specific setting definition.
public
static get(string $key) : array{dft: string, num: int, min?: int, max?: int, scope: string}|null
Parameters
- $key : string
-
Setting key
Return values
array{dft: string, num: int, min?: int, max?: int, scope: string}|nullgetAdminKeys()
Get all admin-scoped setting keys.
public
static getAdminKeys() : array<string|int, string>
Return values
array<string|int, string>getAll()
Get all setting definitions.
public
static getAll() : array<string, array{dft: string, num: int, min?: int, max?: int, scope: string}>
Return values
array<string, array{dft: string, num: int, min?: int, max?: int, scope: string}>getDefault()
Get the default value for a setting.
public
static getDefault(string $key) : string|null
Parameters
- $key : string
-
Setting key
Return values
string|null —Default value or null if not defined
getKeys()
Get all setting keys.
public
static getKeys() : array<string|int, string>
Return values
array<string|int, string>getScope()
Get the scope of a setting.
public
static getScope(string $key) : string
Parameters
- $key : string
-
Setting key
Return values
string —Scope ('admin' or 'user')
getUserKeys()
Get all user-scoped setting keys.
public
static getUserKeys() : array<string|int, string>
Return values
array<string|int, string>has()
Check if a setting is defined.
public
static has(string $key) : bool
Parameters
- $key : string
-
Setting key