StarterVocabController
extends BaseController
in package
Controller for the starter vocabulary import flow.
Shown after language creation to offer importing common words from the FrequencyWords project, with optional enrichment from Wiktionary sources.
Table of Contents
Constants
- ALLOWED_COUNTS = [500, 1000, 2000, 5000]
- ALLOWED_MODES = ['translation', 'definition']
Properties
- $enrichmentService : WiktionaryEnrichmentService
- $frequencyImportService : FrequencyImportService
- $languageFacade : LanguageFacade
Methods
- __construct() : mixed
- Initialize controller.
- enrich() : JsonResponse
- Enrich next batch of words (AJAX, called repeatedly).
- import() : JsonResponse
- Import frequency words (AJAX).
- show() : void
- Show the starter vocabulary offer page.
- skip() : void
- Skip starter vocab and go to text creation.
- endRender() : void
- End page rendering with standard LWT footer.
- execute() : int
- Execute an INSERT/UPDATE/DELETE query.
- get() : string
- Get a string GET parameter.
- getMarkedIds() : array<string|int, int>
- Get IDs from marked checkboxes.
- getValue() : mixed
- Get a single value from the database.
- hasParam() : bool
- Check if a parameter exists in the request.
- isGet() : bool
- Check if the request is a GET request.
- isPost() : bool
- Check if the request is a POST request.
- json() : JsonResponse
- Return JSON response.
- message() : void
- Display a message (success/error) to the user using Bulma notifications.
- param() : string
- Get a string request parameter (GET, POST, or REQUEST).
- paramArray() : array<string|int, mixed>
- Get an array request parameter.
- paramInt() : int|null
- Get an integer request parameter.
- post() : string
- Get a string POST parameter.
- query() : mysqli_result|bool
- Execute a database query using the LWT query wrapper.
- redirect() : RedirectResponse
- Redirect to another URL.
- render() : void
- Start page rendering with standard LWT header.
- requireInt() : int
- Get a required integer request parameter.
Constants
ALLOWED_COUNTS
private
mixed
ALLOWED_COUNTS
= [500, 1000, 2000, 5000]
ALLOWED_MODES
private
mixed
ALLOWED_MODES
= ['translation', 'definition']
Properties
$enrichmentService
private
WiktionaryEnrichmentService
$enrichmentService
$frequencyImportService
private
FrequencyImportService
$frequencyImportService
$languageFacade
private
LanguageFacade
$languageFacade
Methods
__construct()
Initialize controller.
public
__construct(LanguageFacade $languageFacade, FrequencyImportService $frequencyImportService, WiktionaryEnrichmentService $enrichmentService) : mixed
Parameters
- $languageFacade : LanguageFacade
- $frequencyImportService : FrequencyImportService
- $enrichmentService : WiktionaryEnrichmentService
enrich()
Enrich next batch of words (AJAX, called repeatedly).
public
enrich(int $id) : JsonResponse
Route: POST /languages/{id}/starter-vocab/enrich
Each call processes ~20 words. The client polls until remaining === 0 or the user stops manually.
Parameters
- $id : int
Return values
JsonResponseimport()
Import frequency words (AJAX).
public
import(int $id) : JsonResponse
Route: POST /languages/{id}/starter-vocab/import
Parameters
- $id : int
Return values
JsonResponseshow()
Show the starter vocabulary offer page.
public
show(int $id) : void
Route: GET /languages/{id}/starter-vocab
Parameters
- $id : int
skip()
Skip starter vocab and go to text creation.
public
skip(int $id) : void
Route: GET /languages/{id}/starter-vocab/skip
Parameters
- $id : int
endRender()
End page rendering with standard LWT footer.
protected
endRender() : void
execute()
Execute an INSERT/UPDATE/DELETE query.
protected
execute(string $sql) : int
Parameters
- $sql : string
-
SQL query
Tags
Return values
int —Number of affected rows
get()
Get a string GET parameter.
protected
get(string $key[, string $default = '' ]) : string
Parameters
- $key : string
-
Parameter name
- $default : string = ''
-
Default value if not set
Return values
string —Parameter value or default
getMarkedIds()
Get IDs from marked checkboxes.
protected
getMarkedIds(string|array<string|int, mixed> $marked) : array<string|int, int>
Parameters
- $marked : string|array<string|int, mixed>
-
The 'marked' request parameter value
Tags
Return values
array<string|int, int> —Array of integer IDs
getValue()
Get a single value from the database.
protected
getValue(string $sql) : mixed
Parameters
- $sql : string
-
SQL query (should return single value as 'value')
Return values
mixed —The value or null
hasParam()
Check if a parameter exists in the request.
protected
hasParam(string $key) : bool
Parameters
- $key : string
-
Parameter name
Return values
bool —True if the parameter exists
isGet()
Check if the request is a GET request.
protected
isGet() : bool
Return values
boolisPost()
Check if the request is a POST request.
protected
isPost() : bool
Return values
booljson()
Return JSON response.
protected
json(mixed $data[, int $status = 200 ]) : JsonResponse
Return this from a controller method; the router will send it.
Parameters
- $data : mixed
-
Data to encode as JSON
- $status : int = 200
-
HTTP status code (default: 200)
Return values
JsonResponsemessage()
Display a message (success/error) to the user using Bulma notifications.
protected
message(string $message[, bool $autoHide = true ]) : void
Parameters
- $message : string
-
The message to display
- $autoHide : bool = true
-
Whether to auto-hide the message (default: true)
param()
Get a string request parameter (GET, POST, or REQUEST).
protected
param(string $key[, string $default = '' ]) : string
Parameters
- $key : string
-
Parameter name
- $default : string = ''
-
Default value if not set
Return values
string —Parameter value or default
paramArray()
Get an array request parameter.
protected
paramArray(string $key[, array<string|int, mixed> $default = [] ]) : array<string|int, mixed>
Parameters
- $key : string
-
Parameter name
- $default : array<string|int, mixed> = []
-
Default value if not set
Return values
array<string|int, mixed> —Parameter value or default
paramInt()
Get an integer request parameter.
protected
paramInt(string $key[, int|null $default = null ][, int|null $min = null ][, int|null $max = null ]) : int|null
Parameters
- $key : string
-
Parameter name
- $default : int|null = null
-
Default value if not set
- $min : int|null = null
-
Minimum allowed value
- $max : int|null = null
-
Maximum allowed value
Return values
int|null —Parameter value or default
post()
Get a string POST parameter.
protected
post(string $key[, string $default = '' ]) : string
Parameters
- $key : string
-
Parameter name
- $default : string = ''
-
Default value if not set
Return values
string —Parameter value or default
query()
Execute a database query using the LWT query wrapper.
protected
query(string $sql) : mysqli_result|bool
Parameters
- $sql : string
-
SQL query
Return values
mysqli_result|bool —Query result
redirect()
Redirect to another URL.
protected
redirect(string $url[, int $statusCode = 302 ]) : RedirectResponse
Return this from a controller method; the router will send it.
Parameters
- $url : string
-
URL to redirect to
- $statusCode : int = 302
-
HTTP status code (default: 302)
Return values
RedirectResponserender()
Start page rendering with standard LWT header.
protected
render(string $title[, bool $showMenu = true ]) : void
Parameters
- $title : string
-
Page title
- $showMenu : bool = true
-
Whether to show navigation menu (default: true)
requireInt()
Get a required integer request parameter.
protected
requireInt(string $key[, int|null $min = null ][, int|null $max = null ]) : int
Parameters
- $key : string
-
Parameter name
- $min : int|null = null
-
Minimum allowed value
- $max : int|null = null
-
Maximum allowed value
Tags
Return values
int —Parameter value