Documentation

WordListService

Service class for managing word list operations.

Handles filtering, pagination, bulk operations on words list.

Tags
category

Lwt

author

HugoFara hugo.farajallah@protonmail.com

license

Unlicense http://unlicense.org/

link
https://hugofara.github.io/lwt/docs/php/
since
3.0.0

Table of Contents

Methods

buildLangCondition()  : string
Build query condition for language filter.
buildQueryCondition()  : string
Build query condition for search query with prepared statement parameters.
buildStatusCondition()  : string
Build query condition for status filter.
buildTagCondition()  : string
Build tag filter condition.
capitalizeByIdList()  : string
Capitalize words in ID list.
countWords()  : int
Count words matching the filter criteria.
deleteByIdList()  : string
Delete multiple words by ID list.
deleteSentencesByIdList()  : string
Delete sentences for words in ID list.
deleteSingleWord()  : void
Delete a single word by ID.
getAnkiExportSql()  : string
Get Anki export SQL for selected words.
getEditFormData()  : array<string|int, mixed>|null
Get word data for edit form.
getFilteredWordIds()  : array<string|int, int>
Get word IDs matching filter criteria (for 'all' actions).
getFlexibleExportSql()  : string
Get flexible export SQL for selected words.
getNewTermFormData()  : array<string|int, mixed>
Get word data for new term form.
getTestWordIdsSql()  : string
Get test SQL for selected words.
getTsvExportSql()  : string
Get TSV export SQL for selected words.
getWordsList()  : mysqli_result|bool
Get words list for display.
saveNewWord()  : int
Save a new word.
toLowercaseByIdList()  : string
Convert words to lowercase in ID list.
updateStatusByIdList()  : string
Update status for words in ID list.
updateStatusDateByIdList()  : string
Update status date to NOW for words in ID list.
updateWord()  : string
Update an existing word.
validateRegexPattern()  : bool
Validate a regex pattern.
getWordsListWithWordCount()  : mysqli_result|bool
Get words list with word count (for sort option 7).

Methods

buildLangCondition()

Build query condition for language filter.

public buildLangCondition(string $langId) : string
Parameters
$langId : string

Language ID

Return values
string

SQL condition

buildQueryCondition()

Build query condition for search query with prepared statement parameters.

public buildQueryCondition(string $query, string $queryMode, string $regexMode[, array<string|int, mixed>|null &$params = null ]) : string

NOTE: When upgrading calling code, pass a $params array by reference to get parameterized queries. For backward compatibility, if $params is null, this returns old-style SQL with embedded values (using mysqli_real_escape_string).

Parameters
$query : string

Search query

$queryMode : string

Query mode (term, rom, transl, etc.)

$regexMode : string

Regex mode ('' or 'r')

$params : array<string|int, mixed>|null = null

Optional: Reference to params array for prepared statements

Return values
string

SQL condition (with ? placeholders if $params provided, or embedded values if not)

buildStatusCondition()

Build query condition for status filter.

public buildStatusCondition(string $status) : string
Parameters
$status : string

Status code

Return values
string

SQL condition

buildTagCondition()

Build tag filter condition.

public buildTagCondition(string $tag1, string $tag2, string $tag12) : string
Parameters
$tag1 : string

First tag ID (must be numeric or empty)

$tag2 : string

Second tag ID (must be numeric or empty)

$tag12 : string

Tag logic (0=OR, 1=AND)

Return values
string

SQL HAVING clause

capitalizeByIdList()

Capitalize words in ID list.

public capitalizeByIdList(string $idList) : string
Parameters
$idList : string

SQL IN clause with IDs

Return values
string

Result message

countWords()

Count words matching the filter criteria.

public countWords(string $textId, string $whLang, string $whStat, string $whQuery, string $whTag) : int
Parameters
$textId : string

Text ID filter

$whLang : string

Language condition

$whStat : string

Status condition

$whQuery : string

Query condition

$whTag : string

Tag condition

Return values
int

Number of matching words

deleteByIdList()

Delete multiple words by ID list.

public deleteByIdList(string $idList) : string
Parameters
$idList : string

SQL IN clause with IDs (e.g., "(1,2,3)")

Return values
string

Result message

deleteSentencesByIdList()

Delete sentences for words in ID list.

public deleteSentencesByIdList(string $idList) : string
Parameters
$idList : string

SQL IN clause with IDs

Return values
string

Result message

deleteSingleWord()

Delete a single word by ID.

public deleteSingleWord(int $wordId) : void
Parameters
$wordId : int

Word ID

getAnkiExportSql()

Get Anki export SQL for selected words.

public getAnkiExportSql(string $idList, string $textId, string $whLang, string $whStat, string $whQuery, string $whTag) : string
Parameters
$idList : string

SQL IN clause with IDs

$textId : string

Text ID filter (empty for no filter)

$whLang : string

Language condition

$whStat : string

Status condition

$whQuery : string

Query condition

$whTag : string

Tag condition

Return values
string

SQL query for export

getEditFormData()

Get word data for edit form.

public getEditFormData(int $wordId) : array<string|int, mixed>|null
Parameters
$wordId : int

Word ID

Return values
array<string|int, mixed>|null

Word data for form or null if not found

getFilteredWordIds()

Get word IDs matching filter criteria (for 'all' actions).

public getFilteredWordIds(string $textId, string $whLang, string $whStat, string $whQuery, string $whTag) : array<string|int, int>
Parameters
$textId : string

Text ID filter

$whLang : string

Language condition

$whStat : string

Status condition

$whQuery : string

Query condition

$whTag : string

Tag condition

Return values
array<string|int, int>

Array of word IDs

getFlexibleExportSql()

Get flexible export SQL for selected words.

public getFlexibleExportSql(string $idList, string $textId, string $whLang, string $whStat, string $whQuery, string $whTag) : string
Parameters
$idList : string

SQL IN clause with IDs

$textId : string

Text ID filter (empty for no filter)

$whLang : string

Language condition

$whStat : string

Status condition

$whQuery : string

Query condition

$whTag : string

Tag condition

Return values
string

SQL query for export

getNewTermFormData()

Get word data for new term form.

public getNewTermFormData(int $langId) : array<string|int, mixed>
Parameters
$langId : int

Language ID

Return values
array<string|int, mixed>

Language data for form

getTestWordIdsSql()

Get test SQL for selected words.

public getTestWordIdsSql(string $idList, string $textId, string $whLang, string $whStat, string $whQuery, string $whTag) : string
Parameters
$idList : string

SQL IN clause with IDs

$textId : string

Text ID filter (empty for no filter)

$whLang : string

Language condition

$whStat : string

Status condition

$whQuery : string

Query condition

$whTag : string

Tag condition

Return values
string

SQL query for test word IDs

getTsvExportSql()

Get TSV export SQL for selected words.

public getTsvExportSql(string $idList, string $textId, string $whLang, string $whStat, string $whQuery, string $whTag) : string
Parameters
$idList : string

SQL IN clause with IDs

$textId : string

Text ID filter (empty for no filter)

$whLang : string

Language condition

$whStat : string

Status condition

$whQuery : string

Query condition

$whTag : string

Tag condition

Return values
string

SQL query for export

getWordsList()

Get words list for display.

public getWordsList(array{whLang?: string, whStat?: string, whQuery?: string, whTag?: string, textId?: string} $filters, int $sort, int $page, int $perPage) : mysqli_result|bool
Parameters
$filters : array{whLang?: string, whStat?: string, whQuery?: string, whTag?: string, textId?: string}

Filter parameters

$sort : int

Sort column index

$page : int

Page number

$perPage : int

Items per page

Return values
mysqli_result|bool

Query result

saveNewWord()

Save a new word.

public saveNewWord(array<string, mixed> $data) : int
Parameters
$data : array<string, mixed>

Form data

Tags
throws
RuntimeException

If word could not be saved

Return values
int

Word ID of the created word

toLowercaseByIdList()

Convert words to lowercase in ID list.

public toLowercaseByIdList(string $idList) : string
Parameters
$idList : string

SQL IN clause with IDs

Return values
string

Result message

updateStatusByIdList()

Update status for words in ID list.

public updateStatusByIdList(string $idList, int $newStatus, bool $relative, string $actionType) : string
Parameters
$idList : string

SQL IN clause with IDs

$newStatus : int

New status value

$relative : bool

If true, change by +1 or -1

$actionType : string

Type of action (spl1, smi1, s5, s1, s99, s98)

Return values
string

Result message

updateStatusDateByIdList()

Update status date to NOW for words in ID list.

public updateStatusDateByIdList(string $idList) : string
Parameters
$idList : string

SQL IN clause with IDs

Return values
string

Result message

updateWord()

Update an existing word.

public updateWord(array<string, mixed> $data) : string
Parameters
$data : array<string, mixed>

Form data

Return values
string

Result message

validateRegexPattern()

Validate a regex pattern.

public validateRegexPattern(string $pattern) : bool
Parameters
$pattern : string

The regex pattern to validate

Return values
bool

True if valid, false otherwise

getWordsListWithWordCount()

Get words list with word count (for sort option 7).

private getWordsListWithWordCount(array{whLang?: string, whStat?: string, whQuery?: string, whTag?: string, textId?: string} $filters, string $sortExpr, string $limit) : mysqli_result|bool
Parameters
$filters : array{whLang?: string, whStat?: string, whQuery?: string, whTag?: string, textId?: string}

Filter parameters

$sortExpr : string

Sort expression

$limit : string

LIMIT clause

Return values
mysqli_result|bool

Query result


        
On this page

Search results