WordListService
in package
Service class for managing word list operations.
Handles filtering, pagination, bulk operations on words list.
Tags
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
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