Documentation

SettingDefinitions
in package

FinalYes

Application setting definitions.

Provides default values and validation rules for all application settings.

Tags
since
3.0.0

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}|null

getAdminKeys()

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

Return values
bool

        
On this page

Search results