Scriptlog Docs

Scriptlog Documentation

Code reference for the Scriptlog codebase

User Tools

Site Tools


scriptlog:lib:dao:languagedao

This is an old revision of the document!


LanguageDao

Layer: DAO · Source: lib/dao/LanguageDao.php:22 (lines 22–198)


class LanguageDao extends Dao

LanguageDao

Data Access Object for the `tbl_languages` table. Handles CRUD for the supported languages (en, ar, zh, fr, ru, es, id), the active/default language lookups, and language code uniqueness checks.

Docblock Metadata

^ Tag ^ Value ^
| ''@category'' | DAO Class |
| ''@author'' | M.Noermoehammad |
| ''@license'' | MIT |
| ''@version'' | 1.0 |
| ''@since'' | Since Release 1.0 |

Inheritance

^ Relation ^ Type ^ Meaning ^
| extends | [[scriptlog:lib:core:dao|''Dao'']] | parent class/interface |

Constants (0)

None.

Properties (0)

None declared.

Methods (11)

^ Visibility ^ Method ^ Summary ^ Line ^
| public | ''createLanguage()'' | Create a new language record. | 44 |
| public | ''findById()'' | Find a language record by its primary key. | 66 |
| public | ''findLanguageByCode()'' | Find a language record by its unique language code. | 79 |
| public | ''findActiveLanguages()'' | Find all active language records. | 94 |
| public | ''findDefaultLanguage()'' | Find the default language record. | 108 |
| public | ''updateLanguage()'' | Update an existing language record. | 125 |
| public | ''setDefaultLanguage()'' | Mark a language as the site's default. | 140 |
| public | ''deleteLanguage()'' | Delete a language record by its primary key. | 152 |
| public | ''countLanguages()'' | Count all language records. | 162 |
| public | ''codeExists()'' | Check whether a language code already exists. | 177 |
| public | ''findAllLanguages()'' | Find all language records, active or not. | 192 |

createLanguage()

public function createLanguage(array $data): int

lines 44–58 (15)

Create a new language record.

The `lang_code` value is normalized to lowercase before persistence. Optional keys fall back to sensible defaults when omitted: `lang_locale` (null), `lang_direction` ('ltr'), `lang_sort` (0), `lang_is_default` (0), `lang_is_active` (1).

^ Parameter ^ Type ^ Default ^ Description ^
| ''$data'' | ''array'' | //required// | //none// |

Returns: int — int The ID of the newly created language record

findById()

public function findById(int $id): ?array

lines 66–71 (6)

Find a language record by its primary key.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$id'' | ''int'' | //required// | The language ID |

Returns: ?array — array<string, mixed>&#124;null The language row, or null when not found

findLanguageByCode()

public function findLanguageByCode(string $code): ?array

lines 79–84 (6)

Find a language record by its unique language code.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$code'' | ''string'' | //required// | The language code, e.g. 'en' or 'ar' |

Returns: ?array — array<string, mixed>&#124;null The language row, or null when not found

findActiveLanguages()

public function findActiveLanguages(): array

lines 94–101 (8)

Find all active language records.

Results are ordered by `lang_sort` ascending, then by `lang_name` ascending. Only languages with `lang_is_active = 1` are returned.

Takes no parameters.

Returns: array — array<int, array<string, mixed» List of active language rows

findDefaultLanguage()

public function findDefaultLanguage(): ?array

lines 108–113 (6)

Find the default language record.

Takes no parameters.

Returns: ?array — array<string, mixed>&#124;null The language marked as default, or null when none exists

updateLanguage()

public function updateLanguage(int $id, array $data): void

lines 125–128 (4)

Update an existing language record.

Only the columns present in `$data` are modified; unknown keys are ignored by the database wrapper.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$id'' | ''int'' | //required// | The language ID to update |
| ''$data'' | ''array'' | //required// | //none// |

Returns: void — void

setDefaultLanguage()

public function setDefaultLanguage(int $id): void

lines 140–144 (5)

Mark a language as the site's default.

This is a two-step operation: first the `lang_is_default` flag is cleared on every language record, then it is set to 1 for the given language ID, guaranteeing exactly one default at a time.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$id'' | ''int'' | //required// | The language ID to promote to default |

Returns: void — void

deleteLanguage()

public function deleteLanguage(int $id): void

lines 152–155 (4)

Delete a language record by its primary key.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$id'' | ''int'' | //required// | The language ID to delete |

Returns: void — void

countLanguages()

public function countLanguages(): int

lines 162–167 (6)

Count all language records.

Takes no parameters.

Returns: int — int The total number of languages

codeExists()

public function codeExists(string $code): bool

lines 177–182 (6)

Check whether a language code already exists.

Useful for uniqueness validation before insert or update operations.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$code'' | ''string'' | //required// | The language code to check, e.g. 'en' |

Returns: bool — bool True when the code already exists, false otherwise

findAllLanguages()

public function findAllLanguages(): array

lines 192–197 (6)

Find all language records, active or not.

Results are ordered by `lang_sort` ascending, then by `lang_name` ascending. This is the admin-panel counterpart of `findActiveLanguages()`.

Takes no parameters.

Returns: array — array<int, array<string, mixed» List of all language rows

Imports

^ Alias ^ Fully-qualified name ^
| ''Dao'' | [[scriptlog:lib:core:dao&#124;''Scriptlog\Core\Dao'']] |

This page is generated from source by 'tools/gendoc'. Edits will be overwritten.

scriptlog/lib/dao/languagedao.1790413760.txt.gz · Last modified: by admin